From 9c013c105b46ea0e8cbfbe6e7d32e7bddbdcc1c4 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 31 十月 2024 02:33:22 +0800
Subject: [PATCH] 优化工作单 代码

---
 service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 9 deletions(-)

diff --git a/service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java b/service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java
index 8a6a94b..b429d96 100644
--- a/service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java
+++ b/service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java
@@ -12,15 +12,14 @@
 import com.java110.dto.workPool.WorkPoolDto;
 import com.java110.dto.workPoolFile.WorkPoolFileDto;
 import com.java110.dto.workTask.WorkTaskDto;
-import com.java110.intf.oa.IWorkEventV1InnerServiceSMO;
-import com.java110.intf.oa.IWorkPoolFileV1InnerServiceSMO;
-import com.java110.intf.oa.IWorkPoolV1InnerServiceSMO;
-import com.java110.intf.oa.IWorkTaskV1InnerServiceSMO;
+import com.java110.dto.workTaskItem.WorkTaskItemDto;
+import com.java110.intf.oa.*;
 import com.java110.intf.user.IUserV1InnerServiceSMO;
 import com.java110.po.workEvent.WorkEventPo;
 import com.java110.po.workPool.WorkPoolPo;
 import com.java110.po.workPoolFile.WorkPoolFilePo;
 import com.java110.po.workTask.WorkTaskPo;
+import com.java110.po.workTaskItem.WorkTaskItemPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
@@ -39,6 +38,9 @@
     private IWorkTaskV1InnerServiceSMO workTaskV1InnerServiceSMOImpl;
 
     @Autowired
+    private IWorkTaskItemV1InnerServiceSMO workTaskItemV1InnerServiceSMOImpl;
+
+    @Autowired
     private IWorkEventV1InnerServiceSMO workEventV1InnerServiceSMOImpl;
 
     @Autowired
@@ -54,6 +56,7 @@
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
 
         Assert.hasKeyAndValue(reqJson, "taskId", "鏈寘鍚换鍔�");
+        Assert.hasKeyAndValue(reqJson, "itemId", "鏈寘鍚唴瀹�");
         Assert.hasKeyAndValue(reqJson, "auditCode", "鏈寘鍚姸鎬�");
         Assert.hasKeyAndValue(reqJson, "auditMessage", "鏈寘鍚鏄�");
 
@@ -108,6 +111,7 @@
         workPoolFilePo.setTaskId(workTaskDtos.get(0).getTaskId());
         workPoolFilePo.setPathUrl(reqJson.getString("pathUrl"));
         workPoolFilePo.setStoreId(workTaskDtos.get(0).getStoreId());
+        workPoolFilePo.setItemId(reqJson.getString("itemId"));
         workPoolFileV1InnerServiceSMOImpl.saveWorkPoolFile(workPoolFilePo);
 
     }
@@ -124,20 +128,30 @@
 
         String taskTimeout = "N";
         //todo 宸ュ崟宸茬粡瓒呮椂
-        if(endTime.before(DateUtil.getCurrentDate())){
+        if (endTime.before(DateUtil.getCurrentDate())) {
             taskTimeout = "Y";
         }
+
+        String orderState = WorkPoolDto.STATE_DOING;
+
 
         //todo 瀹屾垚浠诲姟
 
         WorkTaskPo workTaskPo = new WorkTaskPo();
-        workTaskPo.setState(WorkPoolDto.STATE_COMPLETE);
+        workTaskPo.setState(orderState);
         workTaskPo.setTaskId(workTaskDto.getTaskId());
         workTaskPo.setStoreId(workTaskDto.getStoreId());
-        workTaskPo.setFinishTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        workTaskPo.setTaskTimeout(taskTimeout);
+//        workTaskPo.setFinishTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+//        workTaskPo.setTaskTimeout(taskTimeout);
         workTaskV1InnerServiceSMOImpl.updateWorkTask(workTaskPo);
 
+        WorkTaskItemPo workTaskItemPo = new WorkTaskItemPo();
+        workTaskItemPo.setItemId(reqJson.getString("itemId"));
+        workTaskItemPo.setState(WorkTaskDto.STATE_COMPLETE);
+        workTaskItemPo.setTaskId(workTaskDto.getTaskId());
+        workTaskItemPo.setFinishTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+
+        workTaskItemV1InnerServiceSMOImpl.updateWorkTaskItem(workTaskItemPo);
 
         //todo 鏌ヨ 宸ヤ綔鍗�
         WorkPoolDto workPoolDto = new WorkPoolDto();
@@ -174,14 +188,36 @@
         workEventPo.setStaffName(workTaskDto.getStaffName());
         workEventPo.setStoreId(workTaskDto.getStoreId());
         workEventPo.setTaskId(workTaskDto.getTaskId());
+        workEventPo.setItemId(reqJson.getString("itemId"));
         workEventV1InnerServiceSMOImpl.saveWorkEvent(workEventPo);
+
+        // todo 鏌ヨ 浠诲姟鏄庣粏鏄惁澶勭悊瀹屾垚
+        WorkTaskItemDto workTaskItemDto = new WorkTaskItemDto();
+        workTaskItemDto.setTaskId(workTaskDto.getTaskId());
+        workTaskItemDto.setCommunityId(workTaskDto.getCommunityId());
+        workTaskItemDto.setState(WorkTaskDto.STATE_WAIT);
+        int count = workTaskItemV1InnerServiceSMOImpl.queryWorkTaskItemsCount(workTaskItemDto);
+        if (count > 0) {
+            WorkPoolPo workPoolPo = new WorkPoolPo();
+            workPoolPo.setWorkId(workTaskDto.getWorkId());
+            workPoolPo.setState(WorkPoolDto.STATE_DOING);
+            workPoolV1InnerServiceSMOImpl.updateWorkPool(workPoolPo);
+            return;
+        }
+
+        workTaskPo = new WorkTaskPo();
+        workTaskPo.setTaskId(workTaskDto.getTaskId());
+        workTaskPo.setState(WorkTaskDto.STATE_COMPLETE);
+        workTaskPo.setFinishTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        workTaskPo.setTaskTimeout(taskTimeout);
+        workTaskV1InnerServiceSMOImpl.updateWorkTask(workTaskPo);
 
         //todo 鏌ヨ 宸ュ崟浠诲姟
 
         WorkTaskDto tmpWorkTaskDto = new WorkTaskDto();
         tmpWorkTaskDto.setWorkId(workTaskDto.getWorkId());
         tmpWorkTaskDto.setStoreId(workTaskDto.getStoreId());
-        tmpWorkTaskDto.setState(WorkTaskDto.STATE_WAIT);
+        tmpWorkTaskDto.setStates(new String[]{WorkTaskDto.STATE_WAIT,WorkTaskDto.STATE_DOING});
         int waitCount = workTaskV1InnerServiceSMOImpl.queryWorkTasksCount(tmpWorkTaskDto);
         WorkPoolPo workPoolPo = new WorkPoolPo();
         workPoolPo.setWorkId(workTaskDto.getWorkId());
@@ -232,6 +268,7 @@
         workEventPo.setStaffName(workTaskDto.getStaffName());
         workEventPo.setStoreId(workTaskDto.getStoreId());
         workEventPo.setTaskId(workTaskDto.getTaskId());
+        workEventPo.setItemId("-1");
         workEventV1InnerServiceSMOImpl.saveWorkEvent(workEventPo);
     }
 }

--
Gitblit v1.8.0