From 8fcab674e4781dafc9c4b9d2973ced5f952726f3 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 25 十一月 2021 09:15:08 +0800
Subject: [PATCH] 优化代码

---
 service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java |   63 ++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 11 deletions(-)

diff --git a/service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java b/service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java
index 6eaf520..ed5e4cb 100644
--- a/service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java
+++ b/service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java
@@ -23,7 +23,6 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
-import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -253,14 +252,14 @@
 
         long count = oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatasCount(oaWorkflowDataDto);
 
-        List<JSONObject> datas = null;
-
+        List<JSONObject> datas = new ArrayList<>();
         if (count > 0) {
-            datas = BeanConvertUtil.covertBeanList(oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatas(oaWorkflowDataDto), JSONObject.class);
+            List<OaWorkflowDataDto> oaWorkflowDataDtos = oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatas(oaWorkflowDataDto);
+            for (OaWorkflowDataDto oaWorkflowDataDto1 : oaWorkflowDataDtos) {
+                datas.add(BeanConvertUtil.beanCovertJson(oaWorkflowDataDto1));
+            }
             //鍒锋柊 琛ㄥ崟鏁版嵁
             freshFormData(datas, paramIn, oaWorkflowFormDtos.get(0));
-        } else {
-            datas = new ArrayList<>();
         }
 
         ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) paramIn.getInteger("row")), count, datas);
@@ -301,7 +300,8 @@
         reqJson.put("startUserId", formDatas.get(0).get("create_user_id"));
 
         //涓氬姟鍔炵悊
-        if ("1100".equals(reqJson.getString("auditCode"))) { //鍔炵悊鎿嶄綔
+        if ("1100".equals(reqJson.getString("auditCode"))
+                || "1500".equals(reqJson.getString("auditCode"))) { //鍔炵悊鎿嶄綔
             reqJson.put("nextUserId", reqJson.getString("staffId"));
             boolean isLastTask = oaWorkflowUserInnerServiceSMOImpl.completeTask(reqJson);
             if (isLastTask) {
@@ -335,6 +335,24 @@
 
     @Override
     public ResponseEntity<String> getNextTask(JSONObject reqJson) {
+//娴佺▼琛ㄥ崟鏄惁瀛樺湪
+        OaWorkflowFormDto oaWorkflowFormDto = new OaWorkflowFormDto();
+        oaWorkflowFormDto.setFlowId(reqJson.get("flowId").toString());
+        oaWorkflowFormDto.setStoreId(reqJson.get("storeId").toString());
+        oaWorkflowFormDto.setRow(1);
+        oaWorkflowFormDto.setPage(1);
+        List<OaWorkflowFormDto> oaWorkflowFormDtos = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowForms(oaWorkflowFormDto);
+        Assert.listOnlyOne(oaWorkflowFormDtos, "鏈寘鍚祦绋嬭〃鍗曪紝璇峰厛璁剧疆琛ㄥ崟");
+
+        Map paramMap = new HashMap();
+        paramMap.put("storeId", reqJson.getString("storeId"));
+        paramMap.put("id", reqJson.getString("id"));
+        paramMap.put("tableName", oaWorkflowFormDtos.get(0).getTableName());
+        paramMap.put("page", 1);
+        paramMap.put("row", 1);
+        List<Map> formDatas = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDatas(paramMap);
+        Assert.listOnlyOne(formDatas, "琛ㄥ崟鏁版嵁涓嶅瓨鍦�");
+        reqJson.put("startUserId", formDatas.get(0).get("create_user_id"));
         List<JSONObject> tasks = oaWorkflowUserInnerServiceSMOImpl.nextAllNodeTaskList(reqJson);
         return ResultVo.createResponseEntity(tasks);
     }
@@ -364,14 +382,15 @@
 
         long count = oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatasCount(oaWorkflowDataDto);
 
-        List<JSONObject> datas = null;
+        List<JSONObject> datas = new ArrayList<>();
 
         if (count > 0) {
-            datas = BeanConvertUtil.covertBeanList(oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatas(oaWorkflowDataDto), JSONObject.class);
+            List<OaWorkflowDataDto> oaWorkflowDataDtos = oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatas(oaWorkflowDataDto);
+            for (OaWorkflowDataDto oaWorkflowDataDto1 : oaWorkflowDataDtos) {
+                datas.add(BeanConvertUtil.beanCovertJson(oaWorkflowDataDto1));
+            }
             //鍒锋柊 琛ㄥ崟鏁版嵁
             freshFormData(datas, paramIn, oaWorkflowFormDtos.get(0));
-        } else {
-            datas = new ArrayList<>();
         }
 
         ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) paramIn.getInteger("row")), count, datas);
@@ -387,8 +406,12 @@
      */
     private void freshFormData(List<JSONObject> datas, JSONObject paramIn, OaWorkflowFormDto oaWorkflowFormDto) {
         List<String> ids = new ArrayList<>();
+        List<String> userIds = new ArrayList<>();
         for (JSONObject data : datas) {
             ids.add(data.getString("id"));
+            if (!StringUtil.isEmpty(data.getString("staffId"))) {
+                userIds.add(data.getString("staffId"));
+            }
         }
         if (ids.size() < 1) {
             return;
@@ -423,6 +446,24 @@
                 data.put("duration", getCostTime(duration));
             }
         }
+
+        if (userIds.size() < 1) {
+            return;
+        }
+
+        //鍒峰叆鍛樺伐淇℃伅
+        UserDto userDto = new UserDto();
+        userDto.setUserIds(userIds.toArray(new String[userIds.size()]));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getStaffs(userDto);
+
+        for (JSONObject data : datas) {
+            for (UserDto userDto1 : userDtos) {
+                if (data.getString("staffId").equals(userDto1.getUserId())) {
+                    data.put("orgName", userDto1.getOrgName());
+                    data.put("staffName", userDto1.getUserName());
+                }
+            }
+        }
     }
 
     public String getCostTime(Long time) {

--
Gitblit v1.8.0