From c7e9e47f7b75dd0a88c929d7fb0713e5f638fdf1 Mon Sep 17 00:00:00 2001
From: jiazx0107 <jiazx0107@163.com>
Date: 星期日, 08 二月 2026 19:08:11 +0800
Subject: [PATCH] 调整工单审核功能,调整出入库工单排序

---
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java |  200 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 145 insertions(+), 55 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
index ba1ea5f..b75fd4d 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -3,9 +3,9 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fzzy.igds.constant.Constant;
-import com.fzzy.igds.constant.InoutConstant;
 import com.fzzy.igds.mapper.InoutNoticeInMapper;
 import com.fzzy.igds.mapper.InoutNoticeOutMapper;
+import com.fzzy.igds.service.InoutNoticeService;
 import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.igds.utils.DateUtil;
 import com.fzzy.work.data.WorkNode;
@@ -18,11 +18,10 @@
 
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 import javax.annotation.Resource;
 
@@ -31,14 +30,13 @@
  * @Author: Andy.jia
  * @Date: 2025/12/19
  */
+@Slf4j
 @Service
 public class WorkOrderService {
     @Resource
     private WorkOrderMapper workOrderMapper;
     @Resource
-    private InoutNoticeInMapper noticeInMapper;
-    @Resource
-    private InoutNoticeOutMapper noticeOutMapper;
+    private InoutNoticeService noticeService;
 
 
     public void addData(WorkOrder data) {
@@ -60,43 +58,12 @@
         //鑾峰彇褰撳墠鐧诲綍浜�
         SysUser user = ContextUtil.getLoginUser();
         QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("company_id", user.getCompanyId());
 
         String scope = param.getScope();
         if (StringUtils.isEmpty(scope)) scope = WorkOrderParam.SCOPE_SELF;
 
-        //鐩戠鐢ㄦ埛-鏌ョ湅鎵�鏈夊簱鍖哄拰寰呭姙
-        if (Constant.USER_TYPE_10.equals(user.getUserType())) {
-
-            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
-                queryWrapper.eq("node", WorkNode.NODE2.getCode());
-            }
-        }
-
-        //搴撳尯鐢ㄦ埛锛屽鏋滄槸鍏徃鐢ㄦ埛鍙互鏌ョ湅鍏徃涓嬪睘鎵�鏈夊簱鍖猴紝濡傛灉涓哄綋鍓嶅簱鍖哄彧鏌ヨ褰撳墠搴撳尯
-        if (Constant.USER_TYPE_30.equals(user.getUserType())) {
-            if (ContextUtil.isDepotUser(user.getDeptId() + "")) {
-                queryWrapper.eq("dept_id", user.getDeptId() + "");
-            } else {
-                queryWrapper.likeRight("dept_id", user.getDeptId() + "");
-            }
-            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
-                queryWrapper.eq("node", WorkNode.NODE1.getCode());
-            }
-
-        }
-
-        //閾惰鐢ㄦ埛锛屾牴鎹悎鍚屾煡璇㈤摱琛屼笅鎵�鏈夊簱鍖�
-        if (Constant.USER_TYPE_20.equals(user.getUserType())) {
-            //濡傛灉娌℃湁閰嶇疆閾惰锛岃缃竴涓笉瀛樺湪鐨勯摱琛屽彿
-            if (StringUtils.isBlank(user.getUserData())) user.setUserData("9");
-
-            queryWrapper.eq("bank_id", user.getUserData());
-
-            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
-                queryWrapper.eq("node", WorkNode.NODE3.getCode());
-            }
-        }
+        //鏇存柊鏌ヨ鏉′欢
+        this.updateQueryWrapper(queryWrapper, user, scope);
 
         queryWrapper.eq(null != param.getDeptId(), "dept_id", param.getDeptId());
         queryWrapper.like(null != param.getName(), "title", param.getName());
@@ -109,6 +76,7 @@
             queryWrapper.lt("create_time", DateUtil.getCurZero(param.getEnd()));
         }
 
+        queryWrapper.orderByDesc("id");
         workOrderMapper.selectPage(page, queryWrapper);
     }
 
@@ -136,23 +104,140 @@
         return list;
     }
 
-    /**
-     * 鑾峰彇鐢ㄦ埛寰呭鐞嗗伐鍗曟暟
-     * @param status
-     * @param userId
-     * @return
-     */
-    public Integer getNumByUser(String status, String userId) {
+    public List<SysDictData> triggerNode() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (WorkNode w : WorkNode.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+        return list;
+    }
+
+    public WorkOrder selectByBusinessId(String businessId) {
 
         QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
-        if (StringUtils.isBlank(userId) || StringUtils.isBlank(status)) {
-            return 0;
-        }
+        queryWrapper.eq("business_id", businessId);
 
-        queryWrapper.eq("assignee_id", userId);
-        queryWrapper.eq("status", status);
+        List<WorkOrder> list = workOrderMapper.selectList(queryWrapper);
+
+        if (null == list || list.isEmpty()) return null;
+
+        return list.get(0);
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鐢ㄦ埛寰呭姙宸ュ崟锛屾牴鎹敤鎴风被鍨嬫垨鑰呮病鏈夋寚瀹氬鐞嗕汉鎴栬�呮寚瀹氫换鍔″鐞嗕汉鐨勫伐鍗曟暟閲�
+     * @param user
+     * @return
+     */
+    public Integer getTodoNumByUser(SysUser user) {
+
+        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
+
+        this.updateQueryWrapper(queryWrapper, user, WorkOrderParam.SCOPE_SELF);
 
         return workOrderMapper.selectCount(queryWrapper);
+    }
+
+    /**
+     * 鑾峰彇椤甸潰姹囨�荤粺璁★紝鎴戠殑寰呭姙宸ュ崟锛涙垜鐨勬寚娲惧伐鍗曪紱浠婃棩寰呭姙宸ュ崟锛涙�诲緟鍔炲伐鍗�
+     *
+     * 鏌ヨ鎵�鏈夌殑寰呭姙宸ュ崟锛岀劧鍚庤繘琛屾眹鎬荤粺璁�
+     * @return
+     */
+    public Map<String, String> pageSummary() {
+        Map<String, String> result = new HashMap<>();
+
+        //鎴戠殑寰呭姙宸ュ崟
+        result.put("selfTodo", "0");
+        //鎴戠殑鎸囨淳宸ュ崟
+        result.put("assignTodo", "0");
+        //浠婃棩寰呭姙宸ュ崟
+        result.put("todayTodo", "0");
+        //鎬诲緟鍔炲伐鍗曟暟閲�
+        result.put("sumTodo", "0");
+
+        //鑾峰彇鎬诲緟鍔炲伐鍗�
+        SysUser user = ContextUtil.getLoginUser();
+        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
+
+        String scope = WorkOrderParam.SCOPE_SELF;
+        this.updateQueryWrapper(queryWrapper, user, scope);
+
+        //鑾峰彇鎵�鏈夌殑宸ュ崟
+        List<WorkOrder> list = workOrderMapper.selectList(queryWrapper);
+
+        if (null == list || list.isEmpty()) {
+            log.info("---------宸ュ崟姹囨�荤粨鏋�---------{}", result);
+            return result;
+        }
+
+        int selfTodo = 0, assignTodo = 0, todayTodo = 0, sumTodo = list.size();
+        for (WorkOrder work : list) {
+            if (null == work.getAssigneeId()) {
+                selfTodo++;
+            }
+            if (null != work.getAssigneeId() && work.getAssigneeId().equals(user.getLoginName())) {
+                if(!WorkNode.NODE_END.getCode().equals(work.getNode())){
+                    selfTodo++;
+                    assignTodo++;
+                }
+            }
+            if (DateUtil.isToday(work.getCreateTime())) {
+                todayTodo++;
+            }
+        }
+        //鎴戠殑寰呭姙宸ュ崟
+        result.put("selfTodo", selfTodo + "");
+        //鎴戠殑鎸囨淳宸ュ崟
+        result.put("assignTodo", assignTodo + "");
+        //浠婃棩寰呭姙宸ュ崟
+        result.put("todayTodo", todayTodo + "");
+        //鎬诲緟鍔炲伐鍗曟暟閲�
+        result.put("sumTodo", sumTodo + "");
+
+        log.info("---------宸ュ崟姹囨�荤粨鏋�---------{}", result);
+        return result;
+    }
+
+    private void updateQueryWrapper(QueryWrapper<WorkOrder> queryWrapper, SysUser user, String scope) {
+
+        queryWrapper.eq("company_id", user.getCompanyId());
+
+        //鐩戠鐢ㄦ埛-鏌ョ湅鎵�鏈夊簱鍖哄拰寰呭姙
+        if (Constant.USER_TYPE_10.equals(user.getUserType())) {
+            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+                queryWrapper.eq("node", WorkNode.NODE2.getCode());
+            }
+        }
+
+        //搴撳尯鐢ㄦ埛锛屽鏋滄槸鍏徃鐢ㄦ埛鍙互鏌ョ湅鍏徃涓嬪睘鎵�鏈夊簱鍖猴紝濡傛灉涓哄綋鍓嶅簱鍖哄彧鏌ヨ褰撳墠搴撳尯
+        if (Constant.USER_TYPE_30.equals(user.getUserType())) {
+            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+                queryWrapper.eq("node", WorkNode.NODE1.getCode());
+            }
+
+            if (ContextUtil.isDepotUser(user.getDeptId() + "")) {
+                queryWrapper.eq("dept_id", user.getDeptId() + "");
+            } else {
+                queryWrapper.likeRight("dept_id", user.getDeptId() + "");
+            }
+        }
+
+        //閾惰鐢ㄦ埛锛屾牴鎹悎鍚屾煡璇㈤摱琛屼笅鎵�鏈夊簱鍖�
+        if (Constant.USER_TYPE_20.equals(user.getUserType())) {
+            //濡傛灉娌℃湁閰嶇疆閾惰锛岃缃竴涓笉瀛樺湪鐨勯摱琛屽彿
+            if (StringUtils.isBlank(user.getUserData())) user.setUserData("9");
+
+                queryWrapper.eq("bank_id", user.getUserData());
+            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+                queryWrapper.eq("node", WorkNode.NODE3.getCode());
+            }
+        }
+        //濡傛灉鏄釜浜哄伐鍗曪紝澶勭悊浜轰负绌烘垨鑰呬负褰撳墠浜�
+        if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+            queryWrapper.isNull("assignee_id").or().eq("assignee_id", user.getLoginName());
+        }
+
     }
 
 
@@ -167,14 +252,19 @@
 
         //鏇存柊鍏ュ簱閫氱煡鍗曠姸鎬�
         if (work.getBizType().equals(WorkBizType.TYPE_10.getCode())) {
-            noticeInMapper.auditComplete(work.getBusinessId(), work.getStatus());
+            noticeService.updateNoticeInStatus(work.getBusinessId(), work.getStatus());
         }
 
-        //鏇存柊鍏ュ簱閫氱煡鍗曠姸鎬�
+        //鏇存柊鍑哄簱閫氱煡鍗曠姸鎬�
         if (work.getBizType().equals(WorkBizType.TYPE_20.getCode())) {
-            noticeOutMapper.auditComplete(work.getBusinessId(), work.getStatus());
+            noticeService.updateNoticeOutStatus(work.getBusinessId(), work.getStatus());
         }
     }
 
 
+    public void updateData(WorkOrder work) {
+        workOrderMapper.updateById(work);
+    }
+
+
 }

--
Gitblit v1.9.3