Эх сурвалжийг харах

调整锁柜和还锁业务

车车 2 сар өмнө
parent
commit
bfc87a0d7e

+ 5 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/lockcabinet/vo/LockCabinetSaveReqVO.java

@@ -1,9 +1,7 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.lockcabinet.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import jakarta.validation.constraints.*;
+import lombok.Data;
 
 @Schema(description = "管理后台 - 锁控机柜新增/修改 Request VO")
 @Data
@@ -42,4 +40,7 @@ public class LockCabinetSaveReqVO {
     @Schema(description = "备注", example = "你说的对")
     private String remark;
 
-}
+    @Schema(description = "设备序列号", example = "1024")
+    private String serialNumber;
+
+}

+ 14 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workdesign/workhandle/vo/WorkflowWorkPointRespVO.java

@@ -52,4 +52,18 @@ public class WorkflowWorkPointRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    /**
+     * 隔离点名称
+     */
+    private String pointName;
+
+    /**
+     * 隔离点图标
+     */
+    private String pointIcon;
+    /**
+     * 隔离点图片
+     */
+    private String pointPicture;
+
 }

+ 9 - 6
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/dataobject/lockcabinet/LockCabinetDO.java

@@ -1,11 +1,10 @@
 package cn.iocoder.yudao.module.iscs.dal.dataobject.lockcabinet;
 
-import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
 
 /**
  * 锁控机柜 DO
@@ -67,6 +66,10 @@ public class LockCabinetDO extends BaseDO {
      * 备注
      */
     private String remark;
+    /**
+     * 设备序列号
+     */
+    private String serialNumber;
 
 
-}
+}

+ 17 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/lockcabinet/LockCabinetServiceImpl.java

@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -42,6 +43,13 @@ public class LockCabinetServiceImpl extends ServiceImpl<LockCabinetMapper, LockC
         List<LockCabinetDO> list1 = list(Wrappers.<LockCabinetDO>lambdaQuery()
                 .eq(LockCabinetDO::getCabinetName, createReqVO.getCabinetName()));
         Assert.isTrue(list1.isEmpty(), "该名称已被使用,请更换!");
+        // 判断序列号是否重复
+        if (StringUtils.isNotBlank(createReqVO.getSerialNumber())) {
+            List<LockCabinetDO> list2 = list(Wrappers.<LockCabinetDO>lambdaQuery()
+                    .eq(LockCabinetDO::getSerialNumber, createReqVO.getSerialNumber()));
+            Assert.isTrue(list2.isEmpty(), "该序列号已被使用,请更换!");
+        }
+
         // 插入
         LockCabinetDO lockCabinet = BeanUtils.toBean(createReqVO, LockCabinetDO.class);
         lockCabinetMapper.insert(lockCabinet);
@@ -58,6 +66,15 @@ public class LockCabinetServiceImpl extends ServiceImpl<LockCabinetMapper, LockC
                 .eq(LockCabinetDO::getCabinetName, updateReqVO.getCabinetName())
                 .ne(LockCabinetDO::getId, updateReqVO.getId()));
         Assert.isTrue(list1.isEmpty(), "该名称已被使用,请更换!");
+        // 判断序列号是否重复
+        if (StringUtils.isNotBlank(updateReqVO.getSerialNumber())) {
+            List<LockCabinetDO> list2 = list(Wrappers.<LockCabinetDO>lambdaQuery()
+                    .eq(LockCabinetDO::getSerialNumber, updateReqVO.getSerialNumber())
+                    .ne(LockCabinetDO::getId, updateReqVO.getId()));
+            Assert.isTrue(list2.isEmpty(), "该序列号已被使用,请更换!");
+        } else {
+            updateReqVO.setSerialNumber("");
+        }
         // 校验存在
         validateLockCabinetExists(updateReqVO.getId());
         // 更新

+ 2 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkHandleServiceImpl.java

@@ -582,6 +582,7 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
                     // 查询挂锁信息
                     LockDO lockDO = iscsLockService.getOne(Wrappers.<LockDO>lambdaQuery().eq(LockDO::getLockNfc, vo.getLockNfc()));
                     System.out.println("lockDO------------" + lockDO);
+                    Assert.notNull(lockDO, "无法识别挂锁" + vo.getLockNfc());
                     // 查询该挂锁是不是有已解锁未归还的任务
                     List<WorkflowWorkTicketLockDO> list1 = lockService.list(Wrappers.<WorkflowWorkTicketLockDO>lambdaUpdate()
                             .eq(WorkflowWorkTicketLockDO::getLockNfc, vo.getLockNfc())
@@ -647,6 +648,7 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
             }
         } catch (Exception e) {
             log.error("发生异常{}", e);
+            throw e;
         }
         System.out.println("backDataVOList------------" + backDataVOList);
         return backDataVOList;

+ 18 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkServiceImpl.java

@@ -15,9 +15,11 @@ import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workhandle.vo.Wo
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workhandle.vo.WorkflowWorkTicketKeyRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workhandle.vo.WorkflowWorkTicketLockRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workhandle.vo.WorkflowWorkTicketRespVO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.isolationpoint.IsolationPointDO;
 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.dal.mysql.workdesign.WorkflowWorkMapper;
+import cn.iocoder.yudao.module.iscs.service.isolationpoint.IsolationPointService;
 import cn.iocoder.yudao.module.iscs.utils.MonthTimeUtil;
 import cn.iocoder.yudao.module.iscs.utils.RandomCodeUtil;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
@@ -68,6 +70,8 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
     private WorkflowWorkTicketService workflowWorkTicketService;
     @Resource
     private WorkflowWorkLogService workflowWorkLogService;
+    @Resource
+    private IsolationPointService isolationPointService;
 
 
     @Transactional
@@ -371,6 +375,20 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
         List<WorkflowWorkPointDO> points = workflowWorkPointService.list(Wrappers.<WorkflowWorkPointDO>lambdaQuery()
                 .in(WorkflowWorkPointDO::getNodeId, nodeId));
         bean.setPoints(BeanUtils.toBean(points, WorkflowWorkPointRespVO.class));
+        if (!bean.getPoints().isEmpty()) {
+            List<String> pointNfcList = bean.getPoints().stream().map(WorkflowWorkPointRespVO::getPointNfc).toList();
+            List<IsolationPointDO> list = isolationPointService.list(Wrappers.<IsolationPointDO>lambdaQuery()
+                    .in(IsolationPointDO::getPointNfc, pointNfcList));
+            for (WorkflowWorkPointRespVO point : bean.getPoints()) {
+                for (IsolationPointDO isolationPointDO : list) {
+                    if (point.getPointNfc().equals(isolationPointDO.getPointNfc())) {
+                        point.setPointName(isolationPointDO.getPointName());
+                        point.setPointIcon(isolationPointDO.getPointIcon());
+                        point.setPointPicture(isolationPointDO.getPointPicture());
+                    }
+                }
+            }
+        }
 
         // 4.节点设置的取锁信息
         List<WorkflowWorkTicketLockDO> locks = workflowWorkTicketLockService.list(Wrappers.<WorkflowWorkTicketLockDO>lambdaQuery()

+ 0 - 2
yudao-module-iscs/src/main/resources/mapper/LockCabinetMapper.xml

@@ -13,11 +13,9 @@
             resultType="cn.iocoder.yudao.module.iscs.controller.admin.lockcabinet.vo.LockCabinetRespVO">
         SELECT
         c.*,
-        h.serial_number,
         w.workstation_name
         FROM
         isc_lock_cabinet c
-        LEFT JOIN isc_hardware h ON h.id = c.hardware_id
         LEFT JOIN isc_workstation w ON w.id = c.workstation_id
         <where>
             c.deleted = 0