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 | 189 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 156 insertions(+), 33 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 c8978c5..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
@@ -2,11 +2,13 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fzzy.igds.constant.InoutConstant;
+import com.fzzy.igds.constant.Constant;
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;
import com.fzzy.work.data.WorkStatus;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.data.WorkOrderParam;
@@ -16,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;
@@ -29,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) {
@@ -54,18 +54,16 @@
workOrderMapper.insert(data);
}
- public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
-
+ public void pageQueryByUserType(Page<WorkOrder> page, WorkOrderParam param) {
+ //鑾峰彇褰撳墠鐧诲綍浜�
+ SysUser user = ContextUtil.getLoginUser();
QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
- if (null == param) {
- param = new WorkOrderParam();
+ String scope = param.getScope();
+ if (StringUtils.isEmpty(scope)) scope = WorkOrderParam.SCOPE_SELF;
- }
- if (null == param.getCompanyId()) param.setCompanyId(ContextUtil.getCompanyId());
-
- queryWrapper.eq("company_id", param.getCompanyId());
-
+ //鏇存柊鏌ヨ鏉′欢
+ this.updateQueryWrapper(queryWrapper, user, scope);
queryWrapper.eq(null != param.getDeptId(), "dept_id", param.getDeptId());
queryWrapper.like(null != param.getName(), "title", param.getName());
@@ -78,6 +76,7 @@
queryWrapper.lt("create_time", DateUtil.getCurZero(param.getEnd()));
}
+ queryWrapper.orderByDesc("id");
workOrderMapper.selectPage(page, queryWrapper);
}
@@ -105,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());
+ }
+
}
@@ -131,17 +247,24 @@
}
public void complete(WorkOrder work) {
- //鏇存柊宸ュ崟鐘舵��
- workOrderMapper.updateStatus(work.getId(), work.getStatus());
+ //鏇存柊宸ュ崟
+ workOrderMapper.updateById(work);
//鏇存柊鍏ュ簱閫氱煡鍗曠姸鎬�
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