提交 36e16fd5 authored 作者: zhoushaopan's avatar zhoushaopan

fix(3d模块): 修改库房的时候,3D要随着变动

修改库房的时候,3D要随着变动
上级 a369b33b
......@@ -14,6 +14,7 @@ import com.tykj.dev.device.library.subject.domin.DeviceLibraryPosition;
import com.tykj.dev.device.library.subject.domin.DeviceLog;
import com.tykj.dev.device.library.subject.model.vo.QueryNotOnVo;
import com.tykj.dev.device.library.subject.model.vo.QueryTheWarehouseVo;
import com.tykj.dev.device.library.subject.model.vo.UpdateXyzVo;
import com.tykj.dev.device.library.subject.vo.*;
import com.tykj.dev.device.user.cache.StoreCache;
import com.tykj.dev.device.user.cache.UnitsCache;
......@@ -23,10 +24,7 @@ import com.tykj.dev.device.user.subject.service.UnitsService;
import com.tykj.dev.device.user.util.UserUtils;
//import com.tykj.dev.misc.base.DeviceLifeStatus;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.DeviceModelSort;
import com.tykj.dev.misc.utils.GetTreeUtils;
import com.tykj.dev.misc.utils.PageUtil;
import com.tykj.dev.misc.utils.ResultUtil;
import com.tykj.dev.misc.utils.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.Synchronized;
......@@ -96,8 +94,8 @@ public class DeviceLibraryController {
@Resource
private StoreCache storeCache;
// @Resource
// private DeviceLibraryPositionService deviceLibraryPositionService;
@Resource
private DeviceLibraryPositionService deviceLibraryPositionService;
@ApiOperation(value = "修改装备备注", notes = "修改装备备注")
@PostMapping("/setRecord")
......@@ -820,9 +818,29 @@ public class DeviceLibraryController {
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setStorageLocation(libraryUpdateVo.getStorageLocation());
deviceLibraryEntity.setStorageLocationId(libraryUpdateVo.getStorageLocationId());
//从而修改3D的库房位置
// deviceLibraryPositionService.onlyUpdateStorageLocation(libraryUpdateVo.getStorageLocationId(),
// libraryUpdateVo.getStorageLocation(), libraryUpdateVo.getDeviceId());
//如果库房位置发生改变需要对3D中的位置信息重置
Integer deviceId = deviceEditVo.getDeviceId();
DeviceLibraryPosition position = deviceLibraryPositionService.findByDeviceId(deviceId);
position.setDeviceId(deviceId);
position.setIfCabinet(0);
position.setCabinetPosition(null);
position.setUNum(null);
position.setDeviceLibraryPositionName(null);
RotationVo rotationVo = JacksonUtil.readValue(position.getRotation(), RotationVo.class);
assert rotationVo != null;
rotationVo.setX(null);
rotationVo.setY(null);
rotationVo.setZ(null);
DeviceLibraryPositionMessageVo messageVo =
JacksonUtil.readValue(position.getDeviceLibraryPositionMessage(),
DeviceLibraryPositionMessageVo.class);
assert messageVo != null;
messageVo.setX(null);
messageVo.setY(null);
messageVo.setZ(null);
position.setDeviceLibraryPositionMessage(messageVo.toJson());
position.setRotation(messageVo.toJson());
deviceLibraryPositionService.updateXyz(position);
}
//add 备注
if (libraryUpdateVo.getRecord()!=null && !libraryUpdateVo.getRecord().equals(deviceLibraryEntity.getRecord())){
......
......@@ -22,7 +22,7 @@ public interface DeviceLibraryPositionDao extends JpaRepository<DeviceLibraryPos
void deleteByDeviceId(Integer deviceId);
@Transactional
@Transactional(rollbackOn = Exception.class)
@Modifying
@Query("update DeviceLibraryPosition d set d.deviceLibraryPositionMessage = :deviceLibraryPositionMessage, " +
"d.uNum = :uNum where d.deviceId = :deviceId")
......@@ -30,7 +30,7 @@ public interface DeviceLibraryPositionDao extends JpaRepository<DeviceLibraryPos
@Param("uNum") String uNum,
@Param("deviceId")Integer deviceId);
@Transactional
@Transactional(rollbackOn = Exception.class)
@Modifying
@Query("update DeviceLibraryPosition d set d.deviceLibraryPositionMessage = :deviceLibraryPositionMessage, " +
"d.rotation = :rotation,d.uNum = :uNum ,d.cabinetPosition = null ,d.ifCabinet =0 where d.deviceId in :deviceIds")
......@@ -39,5 +39,16 @@ public interface DeviceLibraryPositionDao extends JpaRepository<DeviceLibraryPos
@Param("uNum") String uNum,
@Param("deviceIds")List<Integer> deviceIds);
// @Transactional(rollbackOn = Exception.class)
// @Modifying
// @Query("update DeviceLibraryPosition d set d.ifCabinet = :ifCabinet,d.cabinetPosition = :cabinetPosition " +
// ",d.deviceLibraryPositionMessage = :deviceLibraryPositionMessage ,d.rotation = :rotation where d.deviceId = :deviceId")
// int updateXyz(@Param("ifCabinet") Integer ifCabinet,
// @Param("cabinetPosition") Integer cabinetPosition,
// @Param("deviceLibraryPositionMessage") String deviceLibraryPositionMessage,
// @Param("rotation") String rotation,
// @Param("deviceId")Integer deviceId);
}
......@@ -2,6 +2,7 @@ package com.tykj.dev.device.library.service;
import com.tykj.dev.device.library.subject.domin.DeviceLibraryPosition;
import com.tykj.dev.device.library.subject.model.vo.UpdatePostionMessageVO;
import com.tykj.dev.device.library.subject.model.vo.UpdateXyzVo;
import java.util.List;
import java.util.Map;
......@@ -72,4 +73,7 @@ public interface DeviceLibraryPositionService {
List<DeviceLibraryPosition> findAll();
void updateXyz(DeviceLibraryPosition deviceLibraryPosition);
}
......@@ -6,6 +6,7 @@ import com.tykj.dev.device.library.repository.DeviceLibraryPositionDao;
import com.tykj.dev.device.library.service.DeviceLibraryPositionService;
import com.tykj.dev.device.library.subject.domin.DeviceLibraryPosition;
import com.tykj.dev.device.library.subject.model.vo.UpdatePostionMessageVO;
import com.tykj.dev.device.library.subject.model.vo.UpdateXyzVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -101,4 +102,10 @@ public class DeviceLibraryPositionServiceImpl implements DeviceLibraryPositionSe
return deviceLibraryPositionList;
}
@Override
public void updateXyz(DeviceLibraryPosition deviceLibraryPosition) {
deviceLibraryPositionDao.save(deviceLibraryPosition);
}
}
......@@ -52,6 +52,7 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -1192,14 +1193,10 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
if (!CollectionUtils.isEmpty(deviceIds)){
//添加装备日志
deviceIds.forEach(integer -> {
// if (updateStorageLocationVo.getStorageLocationId() != (getOne(integer).getStorageLocationId())){
// DeviceLogDto deviceLogDto= new DeviceLogDto(integer,"将存放位置修改为"+
// updateStorageLocationVo.getStorageLocation(),null,userId);
// deviceLogDtos.add(deviceLogDto);
// }});
Integer storageLocationId = updateStorageLocationVo.getStorageLocationId();
//数据库中的库房id
Integer dataStorageLocationId = getOne(integer).getStorageLocationId();
if (storageLocationId == null ? dataStorageLocationId == null : storageLocationId.equals(dataStorageLocationId)){
if (!storageLocationId.equals(dataStorageLocationId)){
DeviceLogDto deviceLogDto= new DeviceLogDto(integer,"将存放位置修改为"+
updateStorageLocationVo.getStorageLocation(),null,userId);
deviceLogDtos.add(deviceLogDto);
......@@ -1211,15 +1208,41 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
deviceLibraryDao.updateStorageLocation(updateStorageLocationVo.getStorageLocation(),
updateStorageLocationVo.getStorageLocationId(),updateStorageLocationVo.getDeviceIds());
//修改3d的部分字段
DeviceLibraryPositionMessageVo deviceLibraryPositionMessageVo = new DeviceLibraryPositionMessageVo();
UpdatePostionMessageVO updatePostionMessageVO = new UpdatePostionMessageVO();
updatePostionMessageVO.setDeviceLibraryPositionMessageVo(deviceLibraryPositionMessageVo);
RotationVo rotationVo = new RotationVo();
updatePostionMessageVO.setRotationVo(rotationVo);
updatePostionMessageVO.setDeviceIds(updateStorageLocationVo.getDeviceIds());
updatePostionMessageVO.setUNum(null);
deviceLibraryPositionService.fnUpdatePostionMessageList(updatePostionMessageVO);
// DeviceLibraryPositionMessageVo deviceLibraryPositionMessageVo = new DeviceLibraryPositionMessageVo();
// UpdatePostionMessageVO updatePostionMessageVO = new UpdatePostionMessageVO();
// updatePostionMessageVO.setDeviceLibraryPositionMessageVo(deviceLibraryPositionMessageVo);
// RotationVo rotationVo = new RotationVo();
// updatePostionMessageVO.setRotationVo(rotationVo);
// updatePostionMessageVO.setDeviceIds(updateStorageLocationVo.getDeviceIds());
// updatePostionMessageVO.setUNum(null);
//
// deviceLibraryPositionService.fnUpdatePostionMessageList(updatePostionMessageVO);
CompletableFuture.runAsync(()->{
deviceIds.forEach(deviceId->{
DeviceLibraryPosition position = deviceLibraryPositionService.findByDeviceId(deviceId);
position.setDeviceId(deviceId);
position.setIfCabinet(0);
position.setCabinetPosition(null);
position.setUNum(null);
position.setDeviceLibraryPositionName(null);
RotationVo rotationVo = JacksonUtil.readValue(position.getRotation(), RotationVo.class);
assert rotationVo != null;
rotationVo.setX(null);
rotationVo.setY(null);
rotationVo.setZ(null);
DeviceLibraryPositionMessageVo messageVo =
JacksonUtil.readValue(position.getDeviceLibraryPositionMessage(),
DeviceLibraryPositionMessageVo.class);
assert messageVo != null;
messageVo.setX(null);
messageVo.setY(null);
messageVo.setZ(null);
position.setDeviceLibraryPositionMessage(messageVo.toJson());
position.setRotation(messageVo.toJson());
deviceLibraryPositionService.updateXyz(position);
});
});
CompletableFuture.runAsync(()->{
deviceLogService.addAllLog(deviceLogDtos);
});
......
package com.tykj.dev.device.library.subject.model.vo;
import com.tykj.dev.device.library.subject.vo.DeviceLibraryPositionMessageVo;
import com.tykj.dev.device.library.subject.vo.RotationVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @author zsp
* @create 2021/12/30 13:05
*/
@Data
@ApiModel("修改3D位置vo")
@AllArgsConstructor
public class UpdateXyzVo {
@ApiModelProperty(value = "是否在机柜中 ",notes = "0 不在 1 在")
private Integer ifCabinet = 0;
@ApiModelProperty(value = "在几号机柜里",notes = "1")
private Integer cabinetPosition;
@ApiModelProperty(value = "位置信息",notes = "{x, y, z}")
private RotationVo rotationVo;
@ApiModelProperty(value = "位置信息vo",notes = "{x, y, z}")
private DeviceLibraryPositionMessageVo deviceLibraryPositionMessageVo;
@ApiModelProperty(value = "装备id")
private Integer deviceId;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论