From 1fa310ba69d04cd92cdaf3fefa8a3153055d499c Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 30 八月 2021 15:17:38 +0800
Subject: [PATCH] 加入查询下一节点数
---
service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java | 273 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 266 insertions(+), 7 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 e12b567..0c4515b 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,10 +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;
@@ -21,6 +29,15 @@
@Autowired
private IOaWorkflowFormInnerServiceSMO oaWorkflowFormInnerServiceSMOImpl;
+
+ @Autowired
+ private IOaWorkflowInnerServiceSMO oaWorkflowInnerServiceSMOImpl;
+
+ @Autowired
+ private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+ @Autowired
+ private IOaWorkflowUserInnerServiceSMO oaWorkflowUserInnerServiceSMOImpl;
/**
* @param oaWorkflowFormDto
@@ -55,19 +72,23 @@
* {"key":"textdate1","label":"鏃ユ湡","type":"textdate"},
* {"key":"textdatetime1","label":"鏃堕棿","type":"textdatetime"},
* {"action":"submit","key":"button1","label":"Button","type":"button"}],"type":"default"}
- * @param oaWorkflowFormDto
+ *
+ * @param paramIn
* @return
*/
@Override
- public ResponseEntity<String> queryOaWorkflowFormData(OaWorkflowFormDto oaWorkflowFormDto) {
+ 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, "鏈寘鍚祦绋嬭〃鍗曪紝璇峰厛璁剧疆琛ㄥ崟");
- String formJson = oaWorkflowFormDtos.get(0).getFormJson();
-
- JSONObject formObj = JSONObject.parseObject(formJson);
- Map paramIn = new HashMap();
+ paramIn.put("tableName", oaWorkflowFormDtos.get(0).getTableName());
int count = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDataCount(paramIn);
@@ -78,11 +99,249 @@
datas = new ArrayList<>();
}
- ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) oaWorkflowFormDto.getRow()), count, datas);
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (int) paramIn.get("row")), 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, "娴佺▼涓嶅瓨鍦�");
+
+ 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, "鏈寘鍚祦绋嬭〃鍗曪紝璇峰厛璁剧疆琛ㄥ崟");
+
+ AuditUser auditUser = new AuditUser();
+ auditUser.setProcessDefinitionKey(oaWorkflowDtos.get(0).getProcessDefinitionKey());
+ auditUser.setFlowId(paramIn.getString("flowId"));
+ 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, oaWorkflowFormDtos.get(0));
+ } 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, "娴佺▼涓嶅瓨鍦�");
+
+ 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, "鏈寘鍚祦绋嬭〃鍗曪紝璇峰厛璁剧疆琛ㄥ崟");
+
+ AuditUser auditUser = new AuditUser();
+ auditUser.setProcessDefinitionKey(oaWorkflowDtos.get(0).getProcessDefinitionKey());
+ auditUser.setFlowId(paramIn.getString("flowId"));
+ 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, oaWorkflowFormDtos.get(0));
+ } 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;
+ }
+
+ @Override
+ public ResponseEntity<String> auditOaWorkflow(JSONObject reqJson) {
+ OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+ oaWorkflowDto.setStoreId(reqJson.getString("storeId"));
+ oaWorkflowDto.setFlowId(reqJson.getString("flowId"));
+ List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+ Assert.listOnlyOne(oaWorkflowDtos, "娴佺▼涓嶅瓨鍦�");
+
+ 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, "鏈寘鍚祦绋嬭〃鍗曪紝璇峰厛璁剧疆琛ㄥ崟");
+
+ //涓氬姟鍔炵悊
+ if ("1100".equals(reqJson.getString("auditCode"))) {
+ reqJson.put("nextUserId", reqJson.getString("staffId"));
+ boolean isLastTask = oaWorkflowUserInnerServiceSMOImpl.completeTask(reqJson);
+ if (isLastTask) {
+ reqJson.put("state", "1005");
+ } else {
+ reqJson.put("state", "1002");
+ }
+ reqJson.put("tableName", oaWorkflowFormDtos.get(0).getTableName());
+ oaWorkflowFormInnerServiceSMOImpl.updateOaWorkflowFormData(reqJson);
+ } else if ("1300".equals(reqJson.getString("auditCode"))) {
+ reqJson.put("nextUserId", reqJson.getString("staffId"));
+ oaWorkflowUserInnerServiceSMOImpl.changeTaskToOtherUser(reqJson);
+ reqJson.put("state", "1004");
+ reqJson.put("tableName", oaWorkflowFormDtos.get(0).getTableName());
+ oaWorkflowFormInnerServiceSMOImpl.updateOaWorkflowFormData(reqJson);
+ } else if ("1200".equals(reqJson.getString("auditCode"))) {
+ reqJson.put("curUserId", reqJson.getString("curUserId"));
+ oaWorkflowUserInnerServiceSMOImpl.goBackTask(reqJson);
+ reqJson.put("state", "1003");
+ reqJson.put("tableName", oaWorkflowFormDtos.get(0).getTableName());
+ oaWorkflowFormInnerServiceSMOImpl.updateOaWorkflowFormData(reqJson);
+ } else {
+ throw new IllegalArgumentException("涓嶆敮鎸佺殑绫诲瀷");
+ }
+
+
+ return ResultVo.success();
+ }
+
+ @Override
+ public ResponseEntity<String> getNextTask(JSONObject reqJson) {
+ List<JSONObject> tasks = oaWorkflowUserInnerServiceSMOImpl.nextAllNodeTaskList(reqJson);
+ return ResultVo.createResponseEntity(tasks);
+ }
+
+ /**
+ * 鍒峰叆琛ㄥ崟鏁版嵁
+ *
+ * @param datas
+ */
+ private void freshFormData(List<JSONObject> datas, JSONObject paramIn, OaWorkflowFormDto oaWorkflowFormDto) {
+ 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()]));
+ paramMap.put("tableName", oaWorkflowFormDto.getTableName());
+ paramMap.put("page", 1);
+ paramMap.put("row", 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