|
|
@@ -4,6 +4,7 @@ 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.mappoint.workdesign.WorkflowWorkLogService;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.*;
|
|
|
import cn.iocoder.yudao.module.iscs.service.key.KeyService;
|
|
|
@@ -463,5 +464,76 @@ public class PDAHandleServiceImpl implements PDAHandleService {
|
|
|
return keyStatusVOS;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<UsageStatusVO> getStatusByNfc(List<String> nfcList) {
|
|
|
+ if (nfcList.isEmpty()) {
|
|
|
+ return new ArrayList<UsageStatusVO>();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<UsageStatusVO> usageStatusVOS = new ArrayList<>();
|
|
|
+ for (String nfc : nfcList) {
|
|
|
+ UsageStatusVO usageStatusVO = new UsageStatusVO();
|
|
|
+ usageStatusVO.setNfc(nfc);
|
|
|
+ usageStatusVOS.add(usageStatusVO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 因为可能包含钥匙和挂锁的nfc,所以需要分类查询
|
|
|
+ // 1.开始查询钥匙
|
|
|
+ List<KeyDO> keyDOList = iscsKeyService.list(Wrappers.<KeyDO>lambdaQuery()
|
|
|
+ .in(KeyDO::getKeyNfc, nfcList));
|
|
|
+ // 1.1如果有钥匙数据,查下使用状态吧
|
|
|
+ if (!keyDOList.isEmpty()) {
|
|
|
+ List<String> keyNfcs = keyDOList.stream().map(KeyDO::getKeyNfc).toList();
|
|
|
+ List<WorkflowWorkTicketKeyDO> ticketKeyDOS = keyService.list(Wrappers.<WorkflowWorkTicketKeyDO>lambdaQuery()
|
|
|
+ .in(WorkflowWorkTicketKeyDO::getKeyNfc, keyNfcs)
|
|
|
+ .eq(WorkflowWorkTicketKeyDO::getKeyStatus, "1"));
|
|
|
+ for (UsageStatusVO usageStatusVO : usageStatusVOS) {
|
|
|
+ for (KeyDO keyDO : keyDOList) {
|
|
|
+ if (usageStatusVO.getNfc().equals(keyDO.getKeyNfc())) {
|
|
|
+ usageStatusVO.setId(keyDO.getId());
|
|
|
+ usageStatusVO.setType(0);
|
|
|
+ usageStatusVO.setCode(keyDO.getKeyCode());
|
|
|
+ usageStatusVO.setName(keyDO.getKeyName());
|
|
|
+ usageStatusVO.setMacAddress(keyDO.getMacAddress());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (WorkflowWorkTicketKeyDO ticketKeyDO : ticketKeyDOS) {
|
|
|
+ if (usageStatusVO.getNfc().equals(ticketKeyDO.getKeyNfc())) {
|
|
|
+ usageStatusVO.setUsageStatus("1");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2.开始查询挂锁
|
|
|
+ List<LockDO> lockDOList = iscsLockService.list(Wrappers.<LockDO>lambdaQuery()
|
|
|
+ .in(LockDO::getLockNfc, nfcList));
|
|
|
+ // 2.1如果有挂锁数据,查下使用状态吧
|
|
|
+ if (!lockDOList.isEmpty()) {
|
|
|
+ List<String> lockNfcs = lockDOList.stream().map(LockDO::getLockNfc).toList();
|
|
|
+ List<WorkflowWorkTicketLockDO> ticketLockDOS = lockService.list(Wrappers.<WorkflowWorkTicketLockDO>lambdaQuery()
|
|
|
+ .in(WorkflowWorkTicketLockDO::getLockNfc, lockNfcs)
|
|
|
+ .eq(WorkflowWorkTicketLockDO::getLockStatus, "1"));
|
|
|
+ for (UsageStatusVO usageStatusVO : usageStatusVOS) {
|
|
|
+ for (LockDO lockDO : lockDOList) {
|
|
|
+ if (usageStatusVO.getNfc().equals(lockDO.getLockNfc())) {
|
|
|
+ usageStatusVO.setId(lockDO.getId());
|
|
|
+ usageStatusVO.setType(0);
|
|
|
+ usageStatusVO.setCode(lockDO.getLockCode());
|
|
|
+ usageStatusVO.setName(lockDO.getLockName());
|
|
|
+ // usageStatusVO.setMacAddress(lockDO.get());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (WorkflowWorkTicketLockDO ticketLockDO : ticketLockDOS) {
|
|
|
+ if (usageStatusVO.getNfc().equals(ticketLockDO.getLockNfc())) {
|
|
|
+ usageStatusVO.setUsageStatus("1");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return usageStatusVOS;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|