From 59f36e2501b2a4713a0cdf118e4736de77003511 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 25 八月 2021 11:32:12 +0800
Subject: [PATCH] 优化代码

---
 service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java |  229 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 229 insertions(+), 0 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 1b637e3..2c6895e 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
@@ -1,8 +1,18 @@
 package com.java110.oa.bmo.oaWorkflowForm.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.oaWorkflow.OaWorkflowDto;
 import com.java110.dto.oaWorkflowForm.OaWorkflowFormDto;
+import com.java110.dto.user.UserDto;
+import com.java110.entity.audit.AuditUser;
+import com.java110.intf.common.IOaWorkflowUserInnerServiceSMO;
 import com.java110.intf.oa.IOaWorkflowFormInnerServiceSMO;
+import com.java110.intf.oa.IOaWorkflowInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.oa.bmo.oaWorkflowForm.IGetOaWorkflowFormBMO;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -10,13 +20,24 @@
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service("getOaWorkflowFormBMOImpl")
 public class GetOaWorkflowFormBMOImpl implements IGetOaWorkflowFormBMO {
 
     @Autowired
     private IOaWorkflowFormInnerServiceSMO oaWorkflowFormInnerServiceSMOImpl;
+
+    @Autowired
+    private IOaWorkflowInnerServiceSMO oaWorkflowInnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+    @Autowired
+    private IOaWorkflowUserInnerServiceSMO oaWorkflowUserInnerServiceSMOImpl;
 
     /**
      * @param oaWorkflowFormDto
@@ -41,4 +62,212 @@
         return responseEntity;
     }
 
+    /**
+     * {"schemaVersion":1,"exporter":{"name":"form-js","version":"0.1.0"},
+     * "components":[{"text":"# Text","type":"text"},{"key":"textfield2","label":"鏂囨湰妗�","type":"textfield"},{"key":"number2","label":"Number","type":"number"},
+     * {"key":"checkbox2","label":"Checkbox","type":"checkbox"},
+     * {"key":"radio2","label":"Radio","type":"radio","values":[{"label":"Value","value":"value"}]},
+     * {"key":"select2","label":"Select","type":"select","values":[{"label":"Value","value":"value"}]},
+     * {"text":"# Text","type":"text"},{"key":"textarea1","label":"澶氳鏂囨湰妗�","type":"textarea"},
+     * {"key":"textdate1","label":"鏃ユ湡","type":"textdate"},
+     * {"key":"textdatetime1","label":"鏃堕棿","type":"textdatetime"},
+     * {"action":"submit","key":"button1","label":"Button","type":"button"}],"type":"default"}
+     *
+     * @param paramIn
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> queryOaWorkflowFormData(Map paramIn) {
+
+        OaWorkflowFormDto oaWorkflowFormDto = new OaWorkflowFormDto();
+        oaWorkflowFormDto.setFlowId(paramIn.get("flowId").toString());
+        oaWorkflowFormDto.setStoreId(paramIn.get("storeId").toString());
+        oaWorkflowFormDto.setRow(1);
+        oaWorkflowFormDto.setPage(1);
+        List<OaWorkflowFormDto> oaWorkflowFormDtos = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowForms(oaWorkflowFormDto);
+
+        Assert.listOnlyOne(oaWorkflowFormDtos, "鏈寘鍚祦绋嬭〃鍗曪紝璇峰厛璁剧疆琛ㄥ崟");
+
+        paramIn.put("tableName", oaWorkflowFormDtos.get(0).getTableName());
+
+        int count = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDataCount(paramIn);
+
+        List<Map> datas = null;
+        if (count > 0) {
+            datas = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDatas(paramIn);
+        } else {
+            datas = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) oaWorkflowFormDto.getRow()), count, datas);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    /**
+     * 淇濆瓨琛ㄥ崟鏁版嵁
+     *
+     * @param reqJson
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> saveOaWorkflowFormData(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, "鏈寘鍚祦绋嬭〃鍗曪紝璇峰厛璁剧疆琛ㄥ崟");
+
+        //
+        OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+        oaWorkflowDto.setStoreId(reqJson.getString("storeId"));
+        oaWorkflowDto.setFlowId(reqJson.getString("flowId"));
+        List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+        Assert.listOnlyOne(oaWorkflowDtos, "娴佺▼涓嶅瓨鍦�");
+
+        if (!OaWorkflowDto.STATE_COMPLAINT.equals(oaWorkflowDtos.get(0).getState())) {
+            throw new IllegalArgumentException(oaWorkflowDtos.get(0).getFlowName() + "娴佺▼鏈儴缃�");
+        }
+
+        if (StringUtil.isEmpty(oaWorkflowDtos.get(0).getProcessDefinitionKey())) {
+            throw new IllegalArgumentException(oaWorkflowDtos.get(0).getFlowName() + "娴佺▼鏈儴缃�");
+        }
+
+        //鏌ヨ鐢ㄦ埛鍚嶇О
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "鐢ㄦ埛涓嶅瓨鍦�");
+
+        //淇濆瓨琛ㄥ崟鏁版嵁
+        reqJson.put("id", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_flowId));
+        reqJson.put("state", "1001");
+        reqJson.put("createUserId", reqJson.getString("userId"));
+        reqJson.put("createUserName", userDtos.get(0).getUserName());
+        reqJson.put("tableName", oaWorkflowFormDtos.get(0).getTableName());
+
+        int flag = oaWorkflowFormInnerServiceSMOImpl.saveOaWorkflowFormData(reqJson);
+        if (flag < 1) {
+            throw new IllegalArgumentException("淇濆瓨澶辫触");
+        }
+
+        reqJson.put("processDefinitionKey", oaWorkflowDtos.get(0).getProcessDefinitionKey());
+        oaWorkflowUserInnerServiceSMOImpl.startProcess(reqJson);
+
+        return ResultVo.success();
+    }
+
+    /**
+     * 鏌ヨ宸ヤ綔娴佸緟鍔�
+     *
+     * @param paramIn
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> queryOaWorkflowUserTaskFormData(JSONObject paramIn) {
+
+        OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+        oaWorkflowDto.setStoreId(paramIn.getString("storeId"));
+        oaWorkflowDto.setFlowId(paramIn.getString("flowId"));
+        List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+        Assert.listOnlyOne(oaWorkflowDtos, "娴佺▼涓嶅瓨鍦�");
+
+        AuditUser auditUser = new AuditUser();
+        auditUser.setProcessDefinitionKey(oaWorkflowDtos.get(0).getProcessDefinitionKey());
+        auditUser.setUserId(paramIn.getString("userId"));
+        auditUser.setStoreId(paramIn.getString("storeId"));
+        auditUser.setPage(paramIn.getInteger("page"));
+        auditUser.setRow(paramIn.getInteger("row"));
+
+        long count = oaWorkflowUserInnerServiceSMOImpl.getUserTaskCount(auditUser);
+
+        List<JSONObject> datas = null;
+
+        if (count > 0) {
+            datas = oaWorkflowUserInnerServiceSMOImpl.getUserTasks(auditUser);
+            //鍒锋柊 琛ㄥ崟鏁版嵁
+            freshFormData(datas, paramIn);
+        } else {
+            datas = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) paramIn.getInteger("row")), count, datas);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        return responseEntity;
+    }
+
+    /**
+     * 鏌ヨ宸ヤ綔娴佸緟鍔�
+     *
+     * @param paramIn
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> queryOaWorkflowUserHisTaskFormData(JSONObject paramIn) {
+
+        OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+        oaWorkflowDto.setStoreId(paramIn.getString("storeId"));
+        oaWorkflowDto.setFlowId(paramIn.getString("flowId"));
+        List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+        Assert.listOnlyOne(oaWorkflowDtos, "娴佺▼涓嶅瓨鍦�");
+
+        AuditUser auditUser = new AuditUser();
+        auditUser.setProcessDefinitionKey(oaWorkflowDtos.get(0).getProcessDefinitionKey());
+        auditUser.setUserId(paramIn.getString("userId"));
+        auditUser.setStoreId(paramIn.getString("storeId"));
+        auditUser.setPage(paramIn.getInteger("page"));
+        auditUser.setRow(paramIn.getInteger("row"));
+
+        long count = oaWorkflowUserInnerServiceSMOImpl.getUserHistoryTaskCount(auditUser);
+
+        List<JSONObject> datas = null;
+
+        if (count > 0) {
+            datas = oaWorkflowUserInnerServiceSMOImpl.getUserHistoryTasks(auditUser);
+            //鍒锋柊 琛ㄥ崟鏁版嵁
+            freshFormData(datas, paramIn);
+        } else {
+            datas = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) paramIn.getInteger("row")), count, datas);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        return responseEntity;
+    }
+
+    /**
+     * 鍒峰叆琛ㄥ崟鏁版嵁
+     *
+     * @param datas
+     */
+    private void freshFormData(List<JSONObject> datas, JSONObject paramIn) {
+        List<String> ids = new ArrayList<>();
+        for (JSONObject data : datas) {
+            ids.add(data.getString("id"));
+        }
+        if (ids.size() < 1) {
+            return;
+        }
+
+        Map paramMap = new HashMap();
+        paramMap.put("storeId", paramIn.getString("storeId"));
+        paramMap.put("ids", ids.toArray(new String[ids.size()]));
+        List<Map> formDatas = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDatas(paramMap);
+
+        for (JSONObject data : datas) {
+            for (Map form : formDatas) {
+                if (data.getString("id").equals(form.get("id"))) {
+                    data.putAll(form);
+                }
+            }
+        }
+    }
+
 }

--
Gitblit v1.8.0