From 4f365007869668ee035dc44ca98263b85ced8d8a Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 25 二月 2025 21:18:05 +0800
Subject: [PATCH] 处理完成工单评分

---
 service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.java |  121 ++++++++++++++++++++++------------------
 1 files changed, 66 insertions(+), 55 deletions(-)

diff --git a/service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.java b/service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.java
index e7a0168..cbcef6e 100644
--- a/service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.java
+++ b/service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.java
@@ -24,22 +24,21 @@
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.data.DatabusDataDto;
 import com.java110.dto.user.UserDto;
-import com.java110.dto.workCopy.WorkCopyDto;
-import com.java110.dto.workCycle.WorkCycleDto;
-import com.java110.dto.workPool.WorkPoolDto;
-import com.java110.dto.workPoolFile.WorkPoolFileDto;
-import com.java110.dto.workTask.WorkTaskDto;
-import com.java110.intf.job.IDataBusInnerServiceSMO;
+import com.java110.dto.work.WorkCopyDto;
+import com.java110.dto.work.WorkCycleDto;
+import com.java110.dto.work.WorkPoolDto;
+import com.java110.dto.work.WorkPoolFileDto;
+import com.java110.dto.work.WorkTaskDto;
 import com.java110.intf.oa.*;
 import com.java110.intf.user.IUserV1InnerServiceSMO;
-import com.java110.po.workCopy.WorkCopyPo;
-import com.java110.po.workCycle.WorkCyclePo;
+import com.java110.po.workPool.WorkCopyPo;
+import com.java110.po.workPool.WorkCyclePo;
 import com.java110.po.workPool.WorkPoolPo;
-import com.java110.po.workPoolContent.WorkPoolContentPo;
-import com.java110.po.workPoolFile.WorkPoolFilePo;
-import com.java110.po.workTask.WorkTaskPo;
+import com.java110.po.workPool.WorkPoolContentPo;
+import com.java110.po.workPool.WorkPoolFilePo;
+import com.java110.po.workPool.WorkTaskPo;
+import com.java110.po.workPool.WorkTaskItemPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.*;
 import com.java110.vo.ResultVo;
@@ -88,7 +87,8 @@
     @Autowired
     private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
 
-
+    @Autowired
+    private IWorkTaskItemV1InnerServiceSMO workTaskItemV1InnerServiceSMOImpl;
 
     /**
      * {"workName":"鍏充簬鎵洩浠诲姟","workTypes":[],"wtId":"102023122586210045",
@@ -104,22 +104,29 @@
      */
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
-        Assert.hasKeyAndValue(reqJson, "wtId", "璇锋眰鎶ユ枃涓湭鍖呭惈wtId");
-        Assert.hasKeyAndValue(reqJson, "workName", "璇锋眰鎶ユ枃涓湭鍖呭惈workName");
-        Assert.hasKeyAndValue(reqJson, "workCycle", "璇锋眰鎶ユ枃涓湭鍖呭惈workCycle");
-        Assert.hasKeyAndValue(reqJson, "startTime", "璇锋眰鎶ユ枃涓湭鍖呭惈startTime");
-        Assert.hasKeyAndValue(reqJson, "endTime", "璇锋眰鎶ユ枃涓湭鍖呭惈endTime");
+        Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈灏忓尯");
+        Assert.hasKeyAndValue(reqJson, "wtId", "璇锋眰鎶ユ枃涓湭鍖呭惈宸ヤ綔绫诲瀷");
+        Assert.hasKeyAndValue(reqJson, "workCycle", "璇锋眰鎶ユ枃涓湭鍖呭惈宸ュ崟鏍囪瘑");
+        Assert.hasKeyAndValue(reqJson, "startTime", "璇锋眰鎶ユ枃涓湭鍖呭惈寮�濮嬫椂闂�");
+        Assert.hasKeyAndValue(reqJson, "endTime", "璇锋眰鎶ユ枃涓湭鍖呭惈瀹屾垚鏃堕棿");
         String storeId = CmdContextUtils.getStoreId(cmdDataFlowContext);
         reqJson.put("storeId", storeId);
-
         if (!reqJson.containsKey("staffs")) {
             throw new CmdException("鏈寘鍚鐞嗕汉");
         }
-
         JSONArray staffs = reqJson.getJSONArray("staffs");
-        if (staffs == null || staffs.isEmpty()) {
+        if (ListUtil.isNull(staffs)) {
             throw new CmdException("鏈寘鍚鐞嗕汉");
+        }
+
+        if (!reqJson.containsKey("contents")) {
+            throw new CmdException("鏈寘鍚伐浣滃崟鍐呭");
+        }
+
+        JSONArray contents = reqJson.getJSONArray("contents");
+
+        if (ListUtil.isNull(contents)) {
+            throw new CmdException("鍐呭涓虹┖");
         }
 
         if (WorkPoolDto.WORK_CYCLE_ONE.equals(reqJson.getString("workCycle"))) {
@@ -127,37 +134,33 @@
         }
         Assert.hasKeyAndValue(reqJson, "period", "鍛ㄦ湡鎬у伐鍗曟湭鍖呭惈鍛ㄦ湡");
         Assert.hasKeyAndValue(reqJson, "hours", "鍛ㄦ湡鎬у伐鍗曟湭鍖呭惈瀹屾垚灏忔椂");
-
         if (WorkCycleDto.PERIOD_MONTH_DAY.equals(reqJson.getString("period"))) {
             JSONArray months = reqJson.getJSONArray("months");
             JSONArray days = reqJson.getJSONArray("days");
-
             if (ListUtil.isNull(months) || ListUtil.isNull(days)) {
                 throw new CmdException("鏈寘鍚湀/澶�");
             }
         }
-
         if (WorkCycleDto.PERIOD_MONTH_WORKDAY.equals(reqJson.getString("period"))) {
             JSONArray workdays = reqJson.getJSONArray("workdays");
             if (ListUtil.isNull(workdays)) {
                 throw new CmdException("鏈寘鍚寜鍛�");
             }
         }
-
-
     }
 
     @Override
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
-
         String userId = CmdContextUtils.getUserId(cmdDataFlowContext);
         UserDto userDto = new UserDto();
         userDto.setUserId(userId);
         List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
-
         Assert.listOnlyOne(userDtos, "鐢ㄦ埛鏈櫥褰�");
-
+        String workName = reqJson.getString("workName");
+        if(StringUtil.isEmpty(workName)){
+            reqJson.put("workName",userDtos.get(0).getName()+"鍙戣捣鐨勫伐浣滃崟");
+        }
         WorkPoolPo workPoolPo = BeanConvertUtil.covertBean(reqJson, WorkPoolPo.class);
         workPoolPo.setWorkId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
         workPoolPo.setCreateUserId(userDtos.get(0).getUserId());
@@ -165,26 +168,17 @@
         workPoolPo.setCreateUserTel(userDtos.get(0).getTel());
         workPoolPo.setState(WorkPoolDto.STATE_WAIT);
         int flag = workPoolV1InnerServiceSMOImpl.saveWorkPool(workPoolPo);
-
         if (flag < 1) {
             throw new CmdException("淇濆瓨鏁版嵁澶辫触");
         }
-
         //todo 淇濆瓨 宸ヤ綔鍗曞唴瀹�
         saveContent(workPoolPo, reqJson, userDtos.get(0));
-
         //todo 淇濆瓨 鎶勯�佷汉
         saveCopyStaff(workPoolPo, reqJson, userDtos.get(0));
-
         //todo 淇濆瓨鍛ㄦ湡
         saveWorkCycle(workPoolPo, reqJson, userDtos.get(0));
-
-
         // todo 淇濆瓨 宸ュ崟浠诲姟
         saveWorkTask(workPoolPo, reqJson, userDtos.get(0));
-
-
-
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
 
@@ -192,12 +186,12 @@
         JSONArray staffs = reqJson.getJSONArray("staffs");
         String startTime = reqJson.getString("startTime");
         String endTime = reqJson.getString("endTime");
-
         if (WorkPoolDto.WORK_CYCLE_CYCLE.equals(workPoolPo.getWorkCycle())) {
             Date sTime = DateUtil.getDateFromStringA(startTime);
             endTime = DateUtil.getAddHoursStringA(sTime, reqJson.getIntValue("hours"));
         }
 
+        JSONArray contents = reqJson.getJSONArray("contents");
 
         for (int staffIndex = 0; staffIndex < staffs.size(); staffIndex++) {
             WorkTaskPo workTaskPo = new WorkTaskPo();
@@ -213,15 +207,27 @@
             workTaskPo.setOrgStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
             workTaskPo.setOrgStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
             int flag = workTaskV1InnerServiceSMOImpl.saveWorkTask(workTaskPo);
-
             if (flag < 1) {
                 throw new CmdException("淇濆瓨鏁版嵁澶辫触");
             }
-
-            if(StringUtil.isEmpty(reqJson.getString("pathUrl"))){
-                continue;
+            JSONObject content = null;
+            for (int cIndex = 0; cIndex < contents.size(); cIndex++) {
+                content = contents.getJSONObject(cIndex);
+                WorkTaskItemPo workTaskItemPo = new WorkTaskItemPo();
+                workTaskItemPo.setDeductionMoney("0");
+                workTaskItemPo.setContentId(content.getString("contentId"));
+                workTaskItemPo.setStoreId(workPoolPo.getStoreId());
+                workTaskItemPo.setWorkId(workPoolPo.getWorkId());
+                workTaskItemPo.setItemId(GenerateCodeFactory.getGeneratorId("11"));
+                workTaskItemPo.setState(WorkTaskDto.STATE_WAIT);
+                workTaskItemPo.setCommunityId(workPoolPo.getCommunityId());
+                workTaskItemPo.setTaskId(workTaskPo.getTaskId());
+                workTaskItemV1InnerServiceSMOImpl.saveWorkTaskItem(workTaskItemPo);
             }
 
+            if (StringUtil.isEmpty(reqJson.getString("pathUrl"))) {
+                continue;
+            }
             WorkPoolFilePo workPoolFilePo = new WorkPoolFilePo();
             workPoolFilePo.setCommunityId(workPoolPo.getCommunityId());
             workPoolFilePo.setFileType(WorkPoolFileDto.FILE_TYPE_START);
@@ -230,12 +236,13 @@
             workPoolFilePo.setTaskId(workTaskPo.getTaskId());
             workPoolFilePo.setPathUrl(reqJson.getString("pathUrl"));
             workPoolFilePo.setStoreId(workPoolPo.getStoreId());
+            workPoolFilePo.setItemId("-1");
+            workPoolFilePo.setContentId("-1");
             workPoolFileV1InnerServiceSMOImpl.saveWorkPoolFile(workPoolFilePo);
         }
     }
 
     private void saveWorkCycle(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
-
         JSONArray staffs = reqJson.getJSONArray("staffs");
         for (int staffIndex = 0; staffIndex < staffs.size(); staffIndex++) {
             WorkCyclePo workCyclePo = new WorkCyclePo();
@@ -277,7 +284,6 @@
                 throw new CmdException("淇濆瓨鏁版嵁澶辫触");
             }
         }
-
     }
 
     /**
@@ -288,11 +294,9 @@
      * @param userDto
      */
     private void saveCopyStaff(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
-
         if (!reqJson.containsKey("copyStaffs")) {
             return;
         }
-
         JSONArray copyStaffs = reqJson.getJSONArray("copyStaffs");
         if (ListUtil.isNull(copyStaffs)) {
             return;
@@ -320,12 +324,19 @@
      */
     private void saveContent(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
 
-        WorkPoolContentPo workPoolContentPo = new WorkPoolContentPo();
-        workPoolContentPo.setContentId(GenerateCodeFactory.getGeneratorId("11"));
-        workPoolContentPo.setContent(reqJson.getString("content"));
-        workPoolContentPo.setWorkId(workPoolPo.getWorkId());
-        workPoolContentPo.setCommunityId(reqJson.getString("communityId"));
-        workPoolContentPo.setStoreId(reqJson.getString("storeId"));
-        workPoolContentV1InnerServiceSMOImpl.saveWorkPoolContent(workPoolContentPo);
+        JSONArray contents = reqJson.getJSONArray("contents");
+        JSONObject content = null;
+        for (int cIndex = 0; cIndex < contents.size(); cIndex++) {
+            content = contents.getJSONObject(cIndex);
+            WorkPoolContentPo workPoolContentPo = new WorkPoolContentPo();
+            workPoolContentPo.setContentId(GenerateCodeFactory.getGeneratorId("11"));
+            workPoolContentPo.setContent(content.getString("content"));
+            workPoolContentPo.setWorkId(workPoolPo.getWorkId());
+            workPoolContentPo.setCommunityId(reqJson.getString("communityId"));
+            workPoolContentPo.setStoreId(reqJson.getString("storeId"));
+            workPoolContentPo.setSeqNum(cIndex + 1);
+            content.put("contentId", workPoolContentPo.getContentId());
+            workPoolContentV1InnerServiceSMOImpl.saveWorkPoolContent(workPoolContentPo);
+        }
     }
 }

--
Gitblit v1.8.0