|
|
@@ -3,7 +3,11 @@ package cn.iocoder.yudao.module.iscs.service.workdesign;
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknode.vo.ApprovalNodeReqVO;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workhandle.vo.*;
|
|
|
+import cn.iocoder.yudao.module.iscs.dal.dataobject.key.KeyDO;
|
|
|
+import cn.iocoder.yudao.module.iscs.dal.dataobject.lock.LockDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.*;
|
|
|
+import cn.iocoder.yudao.module.iscs.service.key.KeyService;
|
|
|
+import cn.iocoder.yudao.module.iscs.service.lock.LockService;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
@@ -43,6 +47,10 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
|
|
|
private WorkflowWorkService workflowWorkService;
|
|
|
@Autowired
|
|
|
private WorkflowWorkNodeService workflowWorkNodeService;
|
|
|
+ @Autowired
|
|
|
+ private KeyService isKeyService;
|
|
|
+ @Autowired
|
|
|
+ private LockService iscsLockService;
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -99,49 +107,122 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public Boolean updatePointLock(KeyBackVO keyBackVO) {
|
|
|
+ public BackDataVO updatePointLock(KeyBackVO keyBackVO) {
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
List<PointLockVO> list = keyBackVO.getList();
|
|
|
- if (!list.isEmpty()) {
|
|
|
- Long nodeId = list.get(0).getNodeId();
|
|
|
- Assert.notNull(nodeId, "nodeId不可为空");
|
|
|
- for (PointLockVO vo : list) {
|
|
|
- Assert.notBlank(vo.getPointNfc(), "pointNfc不可为空");
|
|
|
- Assert.notBlank(vo.getLockNfc(), "lockNfc不可为空");
|
|
|
- pointService.update(Wrappers.<WorkflowWorkPointDO>lambdaUpdate()
|
|
|
- .eq(WorkflowWorkPointDO::getNodeId, vo.getNodeId())
|
|
|
- .eq(WorkflowWorkPointDO::getPointNfc, vo.getPointNfc())
|
|
|
- .set(WorkflowWorkPointDO::getLockNfc, vo.getLockNfc())
|
|
|
- .set(WorkflowWorkPointDO::getLockTime, now)
|
|
|
- .set(WorkflowWorkPointDO::getStatus, "1"));
|
|
|
+ Long nodeId = null;
|
|
|
+ try {
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ nodeId = list.get(0).getNodeId();
|
|
|
+ Assert.notNull(nodeId, "nodeId不可为空");
|
|
|
+ for (PointLockVO vo : list) {
|
|
|
+ Assert.notBlank(vo.getPointNfc(), "pointNfc不可为空");
|
|
|
+ Assert.notBlank(vo.getLockNfc(), "lockNfc不可为空");
|
|
|
+ pointService.update(Wrappers.<WorkflowWorkPointDO>lambdaUpdate()
|
|
|
+ .eq(WorkflowWorkPointDO::getNodeId, vo.getNodeId())
|
|
|
+ .eq(WorkflowWorkPointDO::getPointNfc, vo.getPointNfc())
|
|
|
+ .set(WorkflowWorkPointDO::getLockNfc, vo.getLockNfc())
|
|
|
+ .set(WorkflowWorkPointDO::getLockTime, now)
|
|
|
+ .set(WorkflowWorkPointDO::getStatus, "1"));
|
|
|
+ }
|
|
|
+ // 检测上锁完成,更改上锁人状态
|
|
|
+ List<WorkflowWorkPointDO> unclockPoints = pointService.list(Wrappers.<WorkflowWorkPointDO>lambdaQuery()
|
|
|
+ .eq(WorkflowWorkPointDO::getNodeId, nodeId)
|
|
|
+ .eq(WorkflowWorkPointDO::getStatus, "0"));
|
|
|
+ if (unclockPoints.isEmpty()) {
|
|
|
+ // 说明全部点位上锁完成,可以更新上锁人状态
|
|
|
+ nodeUserService.update(Wrappers.<WorkflowWorkNodeUserDO>lambdaUpdate()
|
|
|
+ .eq(WorkflowWorkNodeUserDO::getNodeId, nodeId)
|
|
|
+ .eq(WorkflowWorkNodeUserDO::getType, "jtlocker")
|
|
|
+ .set(WorkflowWorkNodeUserDO::getStatus, "1")
|
|
|
+ .set(WorkflowWorkNodeUserDO::getLockTime, now));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 帮助归还钥匙
|
|
|
+ String keyNfc = keyBackVO.getKeyNfc();
|
|
|
+ if (StringUtils.isNotBlank(keyNfc)) {
|
|
|
+ // 开始归还钥匙
|
|
|
+ keyService.update(Wrappers.<WorkflowWorkTicketKeyDO>lambdaUpdate()
|
|
|
+ .eq(WorkflowWorkTicketKeyDO::getNodeId, nodeId)
|
|
|
+ .eq(WorkflowWorkTicketKeyDO::getKeyNfc, keyNfc)
|
|
|
+ .set(WorkflowWorkTicketKeyDO::getKeyStatus, "2")
|
|
|
+ .set(WorkflowWorkTicketKeyDO::getToHardwareCode, keyBackVO.getHardwareCode()));
|
|
|
+ }
|
|
|
}
|
|
|
- // 检测上锁完成,更改上锁人状态
|
|
|
- List<WorkflowWorkPointDO> unclockPoints = pointService.list(Wrappers.<WorkflowWorkPointDO>lambdaQuery()
|
|
|
- .eq(WorkflowWorkPointDO::getNodeId, nodeId)
|
|
|
- .eq(WorkflowWorkPointDO::getStatus, "0"));
|
|
|
- if (unclockPoints.isEmpty()) {
|
|
|
- // 说明全部点位上锁完成,可以更新上锁人状态
|
|
|
- nodeUserService.update(Wrappers.<WorkflowWorkNodeUserDO>lambdaUpdate()
|
|
|
- .eq(WorkflowWorkNodeUserDO::getNodeId, nodeId)
|
|
|
- .eq(WorkflowWorkNodeUserDO::getType, "jtlocker")
|
|
|
- .set(WorkflowWorkNodeUserDO::getStatus, "1")
|
|
|
- .set(WorkflowWorkNodeUserDO::getLockTime, now));
|
|
|
+ } catch (Exception e) {
|
|
|
+ Assert.isTrue(false, e.getMessage());
|
|
|
+ } finally {
|
|
|
+ BackDataVO backDataVO = new BackDataVO();
|
|
|
+ // backDataVO.setWorkName();
|
|
|
+ // backDataVO.setNodeName();
|
|
|
+ // backDataVO.setOrderNo();
|
|
|
+ // backDataVO.setInitiatorName();
|
|
|
+ // backDataVO.setHardwareDataList();
|
|
|
+ List<HardwareDataVO> hardwareDataVOS = new ArrayList<>();
|
|
|
+ HardwareDataVO hardwareDataVO = new HardwareDataVO();
|
|
|
+
|
|
|
+ if (nodeId == null && StringUtils.isNotBlank(keyBackVO.getKeyNfc())) {
|
|
|
+ // 百分百没有作业直接返回钥匙返还成功
|
|
|
+ KeyDO keyDO = isKeyService.getOne(Wrappers.<KeyDO>lambdaQuery().eq(KeyDO::getKeyNfc, keyBackVO.getKeyNfc()));
|
|
|
+ if (keyDO != null) {
|
|
|
+ hardwareDataVO.setHardwareName(keyDO.getKeyName());
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还成功");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ } else {
|
|
|
+ hardwareDataVO.setHardwareName("无法识别钥匙");
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还失败");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ }
|
|
|
+
|
|
|
+ backDataVO.setWorkName("无作业任务");
|
|
|
+ backDataVO.setNodeName("无关联作业");
|
|
|
+ // backDataVO.setOrderNo();
|
|
|
+ // backDataVO.setInitiatorName();
|
|
|
+ hardwareDataVOS.add(hardwareDataVO);
|
|
|
+ backDataVO.setHardwareDataList(hardwareDataVOS);
|
|
|
}
|
|
|
|
|
|
- // 帮助归还钥匙
|
|
|
- String keyNfc = keyBackVO.getKeyNfc();
|
|
|
- if (StringUtils.isNotBlank(keyNfc)) {
|
|
|
- // 开始归还钥匙
|
|
|
- keyService.update(Wrappers.<WorkflowWorkTicketKeyDO>lambdaUpdate()
|
|
|
- .eq(WorkflowWorkTicketKeyDO::getNodeId, nodeId)
|
|
|
- .eq(WorkflowWorkTicketKeyDO::getKeyNfc, keyNfc)
|
|
|
- .set(WorkflowWorkTicketKeyDO::getKeyStatus, "2")
|
|
|
- .set(WorkflowWorkTicketKeyDO::getToHardwareCode, keyBackVO.getHardwareCode()));
|
|
|
+ if (nodeId != null && StringUtils.isNotBlank(keyBackVO.getKeyNfc())) {
|
|
|
+ WorkflowWorkNodeDO nodeDO = workflowWorkNodeService.getById(nodeId);
|
|
|
+ KeyDO keyDO = isKeyService.getOne(Wrappers.<KeyDO>lambdaQuery().eq(KeyDO::getKeyNfc, keyBackVO.getKeyNfc()));
|
|
|
+ if (nodeDO != null) {
|
|
|
+ WorkflowWorkDO workflowWorkDO = workflowWorkService.getById(nodeDO.getWorkId());
|
|
|
+ if (keyDO != null) {
|
|
|
+ hardwareDataVO.setHardwareName(keyDO.getKeyName());
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还成功");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ } else {
|
|
|
+ hardwareDataVO.setHardwareName("无法识别钥匙");
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还失败");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ }
|
|
|
+ backDataVO.setWorkName(workflowWorkDO.getName());
|
|
|
+ backDataVO.setNodeName(nodeDO.getNodeName());
|
|
|
+ backDataVO.setOrderNo(workflowWorkDO.getOrderNo());
|
|
|
+ backDataVO.setInitiatorName(workflowWorkDO.getInitiatorName());
|
|
|
+ } else {
|
|
|
+ if (keyDO != null) {
|
|
|
+ hardwareDataVO.setHardwareName(keyDO.getKeyName());
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还成功");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ } else {
|
|
|
+ hardwareDataVO.setHardwareName("无法识别钥匙");
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还失败");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ }
|
|
|
+ backDataVO.setWorkName("无作业任务");
|
|
|
+ backDataVO.setNodeName("无关联作业");
|
|
|
+ // backDataVO.setOrderNo();
|
|
|
+ // backDataVO.setInitiatorName();
|
|
|
+ hardwareDataVOS.add(hardwareDataVO);
|
|
|
+ backDataVO.setHardwareDataList(hardwareDataVOS);
|
|
|
+ }
|
|
|
}
|
|
|
+ return backDataVO;
|
|
|
}
|
|
|
- return true;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public Boolean updateUserLock(UserLockVO vo) {
|
|
|
@@ -239,69 +320,125 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public Boolean updatePointUnlock(KeyBackVO keyBackVO) {
|
|
|
+ public BackDataVO updatePointUnlock(KeyBackVO keyBackVO) {
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
- if (!keyBackVO.getList().isEmpty()) {
|
|
|
- Long nodeId = keyBackVO.getList().get(0).getNodeId();
|
|
|
- Long fatherNodeId = 0L;
|
|
|
- Assert.notNull(nodeId, "nodeId不可为空");
|
|
|
- WorkflowWorkNodeDO byId = workflowWorkNodeService.getById(nodeId);
|
|
|
- if (StringUtils.isNotBlank(byId.getIsolationNodeUuid())) {
|
|
|
- // 如果是解除节点的查询操作,则查询对应隔离节点的数据
|
|
|
- WorkflowWorkNodeDO one = workflowWorkNodeService.getOne(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
|
|
|
- .eq(WorkflowWorkNodeDO::getWorkId, byId.getWorkId())
|
|
|
- .eq(WorkflowWorkNodeDO::getUuid, byId.getIsolationNodeUuid()));
|
|
|
- fatherNodeId = one.getId();
|
|
|
+ Long nodeId = null;
|
|
|
+ try{
|
|
|
+ if (!keyBackVO.getList().isEmpty()) {
|
|
|
+ nodeId = keyBackVO.getList().get(0).getNodeId();
|
|
|
+ Long fatherNodeId = 0L;
|
|
|
+ Assert.notNull(nodeId, "nodeId不可为空");
|
|
|
+ WorkflowWorkNodeDO byId = workflowWorkNodeService.getById(nodeId);
|
|
|
+ if (StringUtils.isNotBlank(byId.getIsolationNodeUuid())) {
|
|
|
+ // 如果是解除节点的查询操作,则查询对应隔离节点的数据
|
|
|
+ WorkflowWorkNodeDO one = workflowWorkNodeService.getOne(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
|
|
|
+ .eq(WorkflowWorkNodeDO::getWorkId, byId.getWorkId())
|
|
|
+ .eq(WorkflowWorkNodeDO::getUuid, byId.getIsolationNodeUuid()));
|
|
|
+ fatherNodeId = one.getId();
|
|
|
+ }
|
|
|
+ // 检查是不是所有人都已经解除共锁
|
|
|
+ pointUnlockCheck(fatherNodeId);
|
|
|
+ for (PointLockVO vo : keyBackVO.getList()) {
|
|
|
+ Assert.notBlank(vo.getPointNfc(), "pointNfc不可为空");
|
|
|
+ pointService.update(Wrappers.<WorkflowWorkPointDO>lambdaUpdate()
|
|
|
+ .eq(WorkflowWorkPointDO::getNodeId, fatherNodeId)
|
|
|
+ .eq(WorkflowWorkPointDO::getPointNfc, vo.getPointNfc())
|
|
|
+ .set(WorkflowWorkPointDO::getUnlockTime, now)
|
|
|
+ .set(WorkflowWorkPointDO::getStatus, "2"));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检测解除共锁(未解除不可解锁,前面pointUnlockCheck判断了现在不用判断了)和点位解锁是否完成
|
|
|
+ checkBackAutoApproval(nodeId, fatherNodeId);
|
|
|
+
|
|
|
+ // 帮助归还钥匙
|
|
|
+ String keyNfc = keyBackVO.getKeyNfc();
|
|
|
+ if (StringUtils.isNotBlank(keyNfc)) {
|
|
|
+ // 开始归还钥匙
|
|
|
+ keyService.update(Wrappers.<WorkflowWorkTicketKeyDO>lambdaUpdate()
|
|
|
+ .eq(WorkflowWorkTicketKeyDO::getNodeId, nodeId)
|
|
|
+ .eq(WorkflowWorkTicketKeyDO::getKeyNfc, keyNfc)
|
|
|
+ .set(WorkflowWorkTicketKeyDO::getKeyStatus, "2")
|
|
|
+ .set(WorkflowWorkTicketKeyDO::getToHardwareCode, keyBackVO.getHardwareCode()));
|
|
|
+ }
|
|
|
}
|
|
|
- // 检查是不是所有人都已经解除共锁
|
|
|
- pointUnlockCheck(fatherNodeId);
|
|
|
- for (PointLockVO vo : keyBackVO.getList()) {
|
|
|
- Assert.notBlank(vo.getPointNfc(), "pointNfc不可为空");
|
|
|
- pointService.update(Wrappers.<WorkflowWorkPointDO>lambdaUpdate()
|
|
|
- .eq(WorkflowWorkPointDO::getNodeId, fatherNodeId)
|
|
|
- .eq(WorkflowWorkPointDO::getPointNfc, vo.getPointNfc())
|
|
|
- .set(WorkflowWorkPointDO::getUnlockTime, now)
|
|
|
- .set(WorkflowWorkPointDO::getStatus, "2"));
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ } finally {
|
|
|
+ BackDataVO backDataVO = new BackDataVO();
|
|
|
+ // backDataVO.setWorkName();
|
|
|
+ // backDataVO.setNodeName();
|
|
|
+ // backDataVO.setOrderNo();
|
|
|
+ // backDataVO.setInitiatorName();
|
|
|
+ // backDataVO.setHardwareDataList();
|
|
|
+ List<HardwareDataVO> hardwareDataVOS = new ArrayList<>();
|
|
|
+ HardwareDataVO hardwareDataVO = new HardwareDataVO();
|
|
|
+
|
|
|
+ if (nodeId == null && StringUtils.isNotBlank(keyBackVO.getKeyNfc())) {
|
|
|
+ // 百分百没有作业直接返回钥匙返还成功
|
|
|
+ KeyDO keyDO = isKeyService.getOne(Wrappers.<KeyDO>lambdaQuery().eq(KeyDO::getKeyNfc, keyBackVO.getKeyNfc()));
|
|
|
+ if (keyDO != null) {
|
|
|
+ hardwareDataVO.setHardwareName(keyDO.getKeyName());
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还成功");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ } else {
|
|
|
+ hardwareDataVO.setHardwareName("无法识别钥匙");
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还失败");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ }
|
|
|
+
|
|
|
+ backDataVO.setWorkName("无作业任务");
|
|
|
+ backDataVO.setNodeName("无关联作业");
|
|
|
+ // backDataVO.setOrderNo();
|
|
|
+ // backDataVO.setInitiatorName();
|
|
|
+ hardwareDataVOS.add(hardwareDataVO);
|
|
|
+ backDataVO.setHardwareDataList(hardwareDataVOS);
|
|
|
}
|
|
|
|
|
|
- // 检测解除共锁(未解除不可解锁,前面pointUnlockCheck判断了现在不用判断了)和点位解锁是否完成
|
|
|
- checkBackAutoApproval(nodeId, fatherNodeId);
|
|
|
- /*List<WorkflowWorkPointDO> unlockPoints = pointService.list(Wrappers.<WorkflowWorkPointDO>lambdaQuery()
|
|
|
- .eq(WorkflowWorkPointDO::getNodeId, fatherNodeId)
|
|
|
- .ne(WorkflowWorkPointDO::getStatus, "2"));
|
|
|
- if (unlockPoints.isEmpty()) {
|
|
|
- // 全部解锁完成开始审批
|
|
|
- ApprovalNodeReqVO approvalNodeReqVO = new ApprovalNodeReqVO();
|
|
|
- approvalNodeReqVO.setNodeId(nodeId);
|
|
|
- approvalNodeReqVO.setApprovalStatus("approved");
|
|
|
- approvalNodeReqVO.setApprovalOpinion("approved");
|
|
|
- workflowWorkService.updateNodeApproval(approvalNodeReqVO);
|
|
|
-
|
|
|
- // 同时更新上锁人解锁完成状态
|
|
|
- nodeUserService.update(Wrappers.<WorkflowWorkNodeUserDO>lambdaUpdate()
|
|
|
- .eq(WorkflowWorkNodeUserDO::getNodeId, fatherNodeId)
|
|
|
- .eq(WorkflowWorkNodeUserDO::getType, "jtlocker")
|
|
|
- .set(WorkflowWorkNodeUserDO::getStatus, "2")
|
|
|
- .set(WorkflowWorkNodeUserDO::getUnlockTime, now));
|
|
|
- }*/
|
|
|
-
|
|
|
- // 帮助归还钥匙
|
|
|
- String keyNfc = keyBackVO.getKeyNfc();
|
|
|
- if (StringUtils.isNotBlank(keyNfc)) {
|
|
|
- // 开始归还钥匙
|
|
|
- keyService.update(Wrappers.<WorkflowWorkTicketKeyDO>lambdaUpdate()
|
|
|
- .eq(WorkflowWorkTicketKeyDO::getNodeId, nodeId)
|
|
|
- .eq(WorkflowWorkTicketKeyDO::getKeyNfc, keyNfc)
|
|
|
- .set(WorkflowWorkTicketKeyDO::getKeyStatus, "2")
|
|
|
- .set(WorkflowWorkTicketKeyDO::getToHardwareCode, keyBackVO.getHardwareCode()));
|
|
|
+ if (nodeId != null && StringUtils.isNotBlank(keyBackVO.getKeyNfc())) {
|
|
|
+ WorkflowWorkNodeDO nodeDO = workflowWorkNodeService.getById(nodeId);
|
|
|
+ KeyDO keyDO = isKeyService.getOne(Wrappers.<KeyDO>lambdaQuery().eq(KeyDO::getKeyNfc, keyBackVO.getKeyNfc()));
|
|
|
+ if (nodeDO != null) {
|
|
|
+ WorkflowWorkDO workflowWorkDO = workflowWorkService.getById(nodeDO.getWorkId());
|
|
|
+ if (keyDO != null) {
|
|
|
+ hardwareDataVO.setHardwareName(keyDO.getKeyName());
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还成功");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ } else {
|
|
|
+ hardwareDataVO.setHardwareName("无法识别钥匙");
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还失败");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ }
|
|
|
+ backDataVO.setWorkName(workflowWorkDO.getName());
|
|
|
+ backDataVO.setNodeName(nodeDO.getNodeName());
|
|
|
+ backDataVO.setOrderNo(workflowWorkDO.getOrderNo());
|
|
|
+ backDataVO.setInitiatorName(workflowWorkDO.getInitiatorName());
|
|
|
+ } else {
|
|
|
+ if (keyDO != null) {
|
|
|
+ hardwareDataVO.setHardwareName(keyDO.getKeyName());
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还成功");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ } else {
|
|
|
+ hardwareDataVO.setHardwareName("无法识别钥匙");
|
|
|
+ hardwareDataVO.setBackDesc("钥匙归还失败");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ }
|
|
|
+ backDataVO.setWorkName("无作业任务");
|
|
|
+ backDataVO.setNodeName("无关联作业");
|
|
|
+ // backDataVO.setOrderNo();
|
|
|
+ // backDataVO.setInitiatorName();
|
|
|
+ hardwareDataVOS.add(hardwareDataVO);
|
|
|
+ backDataVO.setHardwareDataList(hardwareDataVOS);
|
|
|
+ }
|
|
|
}
|
|
|
+ return backDataVO;
|
|
|
}
|
|
|
- return true;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 检测是不是钥匙和锁都还完,如果是,自动审批当前节点
|
|
|
- * @param nodeId 解除隔离节点的nodeId
|
|
|
+ *
|
|
|
+ * @param nodeId 解除隔离节点的nodeId
|
|
|
* @param fatherNodeId 隔离节点的nodeId
|
|
|
* @return
|
|
|
*/
|
|
|
@@ -358,32 +495,76 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
|
|
|
@Override
|
|
|
public Boolean updateBackLock(List<HandleLockVO> list) {
|
|
|
// 直接还
|
|
|
- // LocalDateTime now = LocalDateTime.now();
|
|
|
- if (!list.isEmpty()) {
|
|
|
- Long nodeId = list.get(0).getNodeId();
|
|
|
- Assert.notNull(nodeId, "nodeId不能为空!");
|
|
|
- WorkflowWorkNodeDO byId = workflowWorkNodeService.getById(nodeId);
|
|
|
-
|
|
|
- for (HandleLockVO vo : list) {
|
|
|
- Assert.notNull(vo.getLockNfc(), "lockNfc不可为空");
|
|
|
- Assert.notNull(vo.getHardwareCode(), "hardwareCode不可为空");
|
|
|
- lockService.update(Wrappers.<WorkflowWorkTicketLockDO>lambdaUpdate()
|
|
|
- .eq(WorkflowWorkTicketLockDO::getLockNfc, vo.getLockNfc())
|
|
|
- .set(WorkflowWorkTicketLockDO::getLockStatus, "5")
|
|
|
- .set(WorkflowWorkTicketLockDO::getToHardwareCode, vo.getHardwareCode()));
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ Long nodeId = null;
|
|
|
+ try {
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ nodeId = list.get(0).getNodeId();
|
|
|
+ Assert.notNull(nodeId, "nodeId不能为空!");
|
|
|
+ WorkflowWorkNodeDO byId = workflowWorkNodeService.getById(nodeId);
|
|
|
+
|
|
|
+ for (HandleLockVO vo : list) {
|
|
|
+ Assert.notNull(vo.getLockNfc(), "lockNfc不可为空");
|
|
|
+ Assert.notNull(vo.getHardwareCode(), "hardwareCode不可为空");
|
|
|
+ lockService.update(Wrappers.<WorkflowWorkTicketLockDO>lambdaUpdate()
|
|
|
+ .eq(WorkflowWorkTicketLockDO::getLockNfc, vo.getLockNfc())
|
|
|
+ .set(WorkflowWorkTicketLockDO::getLockStatus, "5")
|
|
|
+ .set(WorkflowWorkTicketLockDO::getToHardwareCode, vo.getHardwareCode()));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(byId.getIsolationNodeUuid())) {
|
|
|
+ // 如果是解除节点的查询操作,则查询对应隔离节点的数据
|
|
|
+ WorkflowWorkNodeDO one = workflowWorkNodeService.getOne(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
|
|
|
+ .eq(WorkflowWorkNodeDO::getWorkId, byId.getWorkId())
|
|
|
+ .eq(WorkflowWorkNodeDO::getUuid, byId.getIsolationNodeUuid()));
|
|
|
+ Long fatherNodeId = one.getId();
|
|
|
+
|
|
|
+ // 检测是不是都已经
|
|
|
+ checkBackAutoApproval(nodeId, fatherNodeId);
|
|
|
+ }
|
|
|
}
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ } finally {
|
|
|
+ BackDataVO backDataVO = new BackDataVO();
|
|
|
+ List<HardwareDataVO> hardwareDataVOS = new ArrayList<>();
|
|
|
+ if (nodeId == null) {
|
|
|
+ for (HandleLockVO vo : list) {
|
|
|
+ LockDO lockDO = iscsLockService.getOne(Wrappers.<LockDO>lambdaUpdate()
|
|
|
+ .eq(LockDO::getLockNfc, vo.getLockNfc()));
|
|
|
+ HardwareDataVO hardwareDataVO = new HardwareDataVO();
|
|
|
+ hardwareDataVO.setHardwareName(lockDO != null ? lockDO.getLockName() : "无挂锁信息");
|
|
|
+ hardwareDataVO.setBackDesc(lockDO != null ? "钥匙归还成功" : "钥匙归还失败");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ hardwareDataVOS.add(hardwareDataVO);
|
|
|
+ }
|
|
|
+ backDataVO.setWorkName("无作业任务");
|
|
|
+ backDataVO.setNodeName("无关联作业");
|
|
|
+ backDataVO.setHardwareDataList(hardwareDataVOS);
|
|
|
|
|
|
- if (StringUtils.isNotBlank(byId.getIsolationNodeUuid())) {
|
|
|
- // 如果是解除节点的查询操作,则查询对应隔离节点的数据
|
|
|
- WorkflowWorkNodeDO one = workflowWorkNodeService.getOne(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
|
|
|
- .eq(WorkflowWorkNodeDO::getWorkId, byId.getWorkId())
|
|
|
- .eq(WorkflowWorkNodeDO::getUuid, byId.getIsolationNodeUuid()));
|
|
|
- Long fatherNodeId = one.getId();
|
|
|
+ } else {
|
|
|
+ WorkflowWorkNodeDO workflowWorkNode = workflowWorkNodeService.getWorkflowWorkNode(nodeId);
|
|
|
+ WorkflowWorkDO workflowWorkDO = workflowWorkService.getById(workflowWorkNode.getWorkId());
|
|
|
+
|
|
|
+ for (HandleLockVO vo : list) {
|
|
|
+ LockDO lockDO = iscsLockService.getOne(Wrappers.<LockDO>lambdaUpdate()
|
|
|
+ .eq(LockDO::getLockNfc, vo.getLockNfc()));
|
|
|
+ WorkflowWorkTicketLockDO ticketLockDO = lockService.getOne(Wrappers.<WorkflowWorkTicketLockDO>lambdaQuery()
|
|
|
+ .eq(WorkflowWorkTicketLockDO::getNodeId, nodeId)
|
|
|
+ .eq(WorkflowWorkTicketLockDO::getLockNfc, vo.getLockNfc()));
|
|
|
+ HardwareDataVO hardwareDataVO = new HardwareDataVO();
|
|
|
+ hardwareDataVO.setHardwareName(lockDO != null ? lockDO.getLockName() : "无挂锁信息");
|
|
|
+ hardwareDataVO.setBackDesc(lockDO != null ? "钥匙归还成功" : "钥匙归还失败");
|
|
|
+ hardwareDataVO.setOperationTime(now);
|
|
|
+ hardwareDataVOS.add(hardwareDataVO);
|
|
|
+ }
|
|
|
+ backDataVO.setWorkName("无作业任务");
|
|
|
+ backDataVO.setNodeName("无关联作业");
|
|
|
+ backDataVO.setHardwareDataList(hardwareDataVOS);
|
|
|
|
|
|
- // 检测是不是都已经
|
|
|
- checkBackAutoApproval(nodeId, fatherNodeId);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|