Bladeren bron

修改sql

车车 3 maanden geleden
bovenliggende
commit
01e08f7607

+ 2 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/isolationpoint/IsolationPointController.java

@@ -15,6 +15,7 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.annotation.Resource;
+import jakarta.annotation.security.PermitAll;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -60,6 +61,7 @@ public class IsolationPointController {
         return success(true);
     }
 
+    @PermitAll
     @GetMapping("/selectIsolationPointById")
     @Operation(summary = "获得隔离点")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")

+ 2 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/key/KeyController.java

@@ -16,6 +16,7 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.annotation.Resource;
+import jakarta.annotation.security.PermitAll;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -91,6 +92,7 @@ public class KeyController {
                         BeanUtils.toBean(list, KeyRespVO.class));
     }
 
+    @PermitAll
     @GetMapping("/selectKeyByNfc")
     @Operation(summary = "通过NFC获取钥匙详细信息-开放不登陆情况下可调用")
     @Parameter(name = "nfc", description = "nfc")

+ 4 - 3
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workdesign/workhandle/WorkflowWorkTicketController.java

@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workhandle;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workhandle.vo.*;
 import cn.iocoder.yudao.module.iscs.service.workdesign.WorkflowWorkHandleService;
-import cn.iocoder.yudao.module.iscs.service.workdesign.WorkflowWorkService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -26,8 +25,6 @@ public class WorkflowWorkTicketController {
 
     @Resource
     private WorkflowWorkHandleService workflowWorkHandleService;
-    @Resource
-    private WorkflowWorkService workflowWorkService;
 
     @PostMapping("/insertWorkTicket")
     @Operation(summary = "下发作业票")
@@ -35,12 +32,14 @@ public class WorkflowWorkTicketController {
         return success(workflowWorkHandleService.insertWorkTicket(vo));
     }
 
+    @PermitAll
     @PostMapping("/updateWorkTicket")
     @Operation(summary = "更新作业票")
     public CommonResult<Boolean> updateWorkTicket(@Valid @RequestBody WorkHandleSaveReqVO vo) {
         return success(workflowWorkHandleService.updateWorkTicket(vo));
     }
 
+    @PermitAll
     @PostMapping("/updatePointLock")
     @Operation(summary = "点位上锁(归还钥匙)")
     public CommonResult<BackDataVO> updatePointLock(@Valid @RequestBody KeyBackVO vo) {
@@ -66,6 +65,7 @@ public class WorkflowWorkTicketController {
         return success(workflowWorkHandleService.insertUnlockKey(vo));
     }*/
 
+    @PermitAll
     @PostMapping("/updatePointUnlock")
     @Operation(summary = "点位解除上锁(归还钥匙)")
     public CommonResult<BackDataVO> updatePointUnlock(@Valid @RequestBody KeyBackVO vo) {
@@ -88,6 +88,7 @@ public class WorkflowWorkTicketController {
 
 
     // 硬件获取作业票
+    @PermitAll
     @GetMapping("/getWorkTicketByNodeId")
     @Operation(summary = "获得作业票通过nodeId")
     @Parameter(name = "nodeId", description = "编号", required = true, example = "1024")

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

@@ -14,6 +14,7 @@ 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;
+import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,6 +61,7 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
     @Autowired
     private WorkflowWorkLogService workflowWorkLogService;
 
+    @Synchronized
     @Transactional
     @Override
     public Boolean insertWorkTicket(WorkHandleSaveReqVO vo) {
@@ -567,6 +569,7 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
 
     @Override
     public List<BackDataVO> updateBackLock(List<HandleLockVO> list) {
+        System.out.println("list------------" + list);
         // 直接还
         List<BackDataVO> backDataVOList = new ArrayList<>();
 
@@ -577,10 +580,12 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
                     Assert.notNull(vo.getHardwareCode(), "hardwareCode不可为空");
                     // 查询挂锁信息
                     LockDO lockDO = iscsLockService.getOne(Wrappers.<LockDO>lambdaQuery().eq(LockDO::getLockNfc, vo.getLockNfc()));
+                    System.out.println("lockDO------------" + lockDO);
                     // 查询该挂锁是不是有已解锁未归还的任务
                     List<WorkflowWorkTicketLockDO> list1 = lockService.list(Wrappers.<WorkflowWorkTicketLockDO>lambdaUpdate()
                             .eq(WorkflowWorkTicketLockDO::getLockNfc, vo.getLockNfc())
                             .eq(WorkflowWorkTicketLockDO::getLockStatus, "4"));
+                    System.out.println("list1------------" + list1);
                     if (lockDO == null || list1.isEmpty()) {
                         // 如果没有任务,则直接返回
                         BackDataVO backDataVO = new BackDataVO();
@@ -642,6 +647,7 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
         } catch (Exception e) {
             log.error("发生异常{}", e);
         }
+        System.out.println("backDataVOList------------" + backDataVOList);
         return backDataVOList;
     }
 
@@ -655,6 +661,7 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
         if (vo.getTarget().equals(1)) {
             backDataVO = updatePointUnlock(vo);
         }
+        System.out.println("backDataVO------------" + backDataVO);
         return backDataVO;
     }
 

+ 38 - 23
yudao-module-iscs/src/main/resources/mapper/workdesign/WorkflowWorkMapper.xml

@@ -12,24 +12,24 @@
     <select id="getMyWorkPage"
             resultType="cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowwork.vo.MyWorkRespVO">
         SELECT
-            work_node.work_id,
-            ww.name,
-            ww.order_no,
-            ww.urgency_level,
-            ww.completion_time,
-            ww.cancellation_time,
-            ww.cancellation_reason,
-            ww.initiator_name,
-            su.nickname as worker_user_name,
-            work_node.id as node_id,
-            work_node.start_time as work_time,
-            work_node.id as current_node_id,
-            work_node.node_name as current_node_name,
-            work_node.approval_status
+        work_node.work_id,
+        ww.name,
+        ww.order_no,
+        ww.urgency_level,
+        ww.completion_time,
+        ww.cancellation_time,
+        ww.cancellation_reason,
+        ww.initiator_name,
+        su.nickname as worker_user_name,
+        work_node.id as node_id,
+        work_node.start_time as work_time,
+        work_node.id as current_node_id,
+        work_node.node_name as current_node_name,
+        work_node.approval_status
         FROM
-            isc_workflow_work_node work_node
-                left join isc_workflow_work ww on ww.id = work_node.work_id
-                left join system_users su on su.id = work_node.worker_user_id
+        isc_workflow_work_node work_node
+        left join isc_workflow_work ww on ww.id = work_node.work_id
+        left join system_users su on su.id = work_node.worker_user_id
         <where>
             work_node.deleted = b'0'
             AND work_node.approval_status != 'pending'
@@ -38,14 +38,29 @@
             AND (
             -- 条件1:节点自身负责人ID匹配
             work_node.worker_user_id = #{vo.loginUserId}
-            -- 条件2:关联表中上锁人ID匹配
-            OR work_node.lock_person = #{vo.loginUserId}
-            -- 条件3:关联表中公锁人ID匹配
-            OR JSON_CONTAINS(CAST(work_node.colock_persons AS JSON), CAST(#{vo.loginUserId} AS JSON), '$') )
+
+            -- 条件2:上锁人ID匹配(根据type添加不同进度限制)
+            OR (
+            work_node.lock_person = #{vo.loginUserId}
+            AND (
+            -- isolation类型:进度大于等于3
+            (work_node.type = 'isolation' AND work_node.node_progress &lt;= 2)
+            -- releaseIsolation类型:进度小于等于2
+            OR (work_node.type = 'releaseIsolation' AND work_node.node_progress &gt;= 2) ) )
+
+            -- 条件3:公锁人ID匹配(仅isolation类型有此条件)
+            OR (
+            JSON_CONTAINS(CAST(work_node.colock_persons AS JSON), CAST(#{vo.loginUserId} AS JSON), '$')
+            AND (
+            -- isolation类型:进度大于等于3
+            (work_node.type = 'isolation' AND work_node.node_progress &gt;= 3)
+            -- releaseIsolation类型:进度小于等于1
+            OR (work_node.type = 'releaseIsolation' AND work_node.node_progress &lt;= 1) ) )
+            )
             <if test="vo.key != null and vo.key.trim != ''">
                 AND (ww.name like concat('%',#{vo.key},'%')
-                        OR ww.order_no like concat('%',#{vo.key},'%')
-                        OR ww.initiator_name like concat('%',#{vo.key},'%'))
+                OR ww.order_no like concat('%',#{vo.key},'%')
+                OR ww.initiator_name like concat('%',#{vo.key},'%'))
             </if>
             <if test="vo.approvalStatus != null and vo.approvalStatus.trim != ''">
                 AND work_node.approval_status = #{vo.approvalStatus}