From 5c64323154fa3a0ec7ce3189044483883720e6ce Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 29 八月 2023 12:06:34 +0800
Subject: [PATCH] 优化采购流程

---
 service-common/src/main/java/com/java110/common/cmd/auditUser/ListAuditHistoryOrdersCmd.java |  133 ++++++++++++++++++++++++++++++++------------
 1 files changed, 97 insertions(+), 36 deletions(-)

diff --git a/service-common/src/main/java/com/java110/common/cmd/auditUser/ListAuditHistoryOrdersCmd.java b/service-common/src/main/java/com/java110/common/cmd/auditUser/ListAuditHistoryOrdersCmd.java
index be2738f..95b6879 100644
--- a/service-common/src/main/java/com/java110/common/cmd/auditUser/ListAuditHistoryOrdersCmd.java
+++ b/service-common/src/main/java/com/java110/common/cmd/auditUser/ListAuditHistoryOrdersCmd.java
@@ -5,12 +5,19 @@
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.itemRelease.ItemReleaseDto;
+import com.java110.dto.oaWorkflow.OaWorkflowDto;
+import com.java110.dto.oaWorkflow.WorkflowDto;
 import com.java110.dto.purchase.PurchaseApplyDto;
 import com.java110.dto.audit.AuditUser;
+import com.java110.intf.common.IOaWorkflowActivitiInnerServiceSMO;
 import com.java110.intf.common.IResourceEntryStoreInnerServiceSMO;
+import com.java110.intf.oa.IOaWorkflowInnerServiceSMO;
+import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
 import com.java110.vo.api.resourceOrder.ApiResourceOrderDataVo;
 import com.java110.vo.api.resourceOrder.ApiResourceOrderVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +33,15 @@
     @Autowired
     private IResourceEntryStoreInnerServiceSMO resourceEntryStoreInnerServiceSMOImpl;
 
+
+    @Autowired
+    private IOaWorkflowActivitiInnerServiceSMO oaWorkflowUserInnerServiceSMOImpl;
+
+    @Autowired
+    private IOaWorkflowInnerServiceSMO oaWorkflowInnerServiceSMOImpl;
+
+    @Autowired
+    private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl;
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         Assert.hasKeyAndValue(reqJson, "storeId", "蹇呭~锛岃濉啓鍟嗘埛ID");
@@ -38,50 +54,95 @@
 
     @Override
     public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
-        AuditUser auditUser = new AuditUser();
-        auditUser.setUserId(reqJson.getString("userId"));
-        auditUser.setPage(reqJson.getInteger("page"));
-        auditUser.setRow(reqJson.getInteger("row"));
-        auditUser.setStoreId(reqJson.getString("storeId"));
-        //閲囪喘宸插姙锛堥粯璁ゅ彧鏌ヨ鍜屽綋鍓嶇櫥褰曠敤鎴风浉鍏冲苟涓旀槸鍙備笌娴佺▼瀹℃壒鎴栬�呰嚜宸辨彁浜ゅ凡缁忕粨鏉熺殑瀹℃壒鏁版嵁锛�
-        long count = resourceEntryStoreInnerServiceSMOImpl.getUserHistoryTaskCount(auditUser);
 
-        List<ApiResourceOrderDataVo> auditOrders = null;
 
-        if (count > 0) {
-            List<PurchaseApplyDto> purchaseApplyDtos = resourceEntryStoreInnerServiceSMOImpl.getUserHistoryTasks(auditUser);
-            auditOrders = BeanConvertUtil.covertBeanList(purchaseApplyDtos, ApiResourceOrderDataVo.class);
-            for (ApiResourceOrderDataVo apiResourceOrderDataVo : auditOrders) {
-                switch (apiResourceOrderDataVo.getState()) {
-                    case "1000":
-                        apiResourceOrderDataVo.setStateName("鏈鏍�");
-                        break;
-                    case "1001":
-                        apiResourceOrderDataVo.setStateName("瀹℃牳涓�");
-                        break;
-                    case "1002":
-                        apiResourceOrderDataVo.setStateName("宸插鏍�");
-                        break;
-                }
-                if (apiResourceOrderDataVo.getResOrderType().equals("10000")) {
-                    apiResourceOrderDataVo.setResOrderTypeName("閲囪喘鐢宠");
-                } else {
-                    apiResourceOrderDataVo.setResOrderTypeName("鍑哄簱鐢宠");
-                }
+        String userId = context.getReqHeaders().get("user-id");
+        String storeId = context.getReqHeaders().get("store-id");
 
-            }
-        } else {
-            auditOrders = new ArrayList<>();
+        OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+        oaWorkflowDto.setState(OaWorkflowDto.STATE_COMPLAINT);
+        oaWorkflowDto.setFlowType(OaWorkflowDto.FLOW_TYPE_PURCHASE_APPLY);
+        List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+
+        if (oaWorkflowDtos == null || oaWorkflowDtos.size() < 1) {
+            return;
+        }
+        List<String> flowIds = new ArrayList<>();
+        for (OaWorkflowDto tmpOaWorkflowDto : oaWorkflowDtos) {
+            flowIds.add(WorkflowDto.DEFAULT_PROCESS + tmpOaWorkflowDto.getFlowId());
         }
 
-        ApiResourceOrderVo apiResourceOrderVo = new ApiResourceOrderVo();
+        AuditUser auditUser = new AuditUser();
+        auditUser.setProcessDefinitionKeys(flowIds);
+        auditUser.setUserId(userId);
+        auditUser.setStoreId(storeId);
+        auditUser.setPage(reqJson.getInteger("page"));
+        auditUser.setRow(reqJson.getInteger("row"));
 
-        apiResourceOrderVo.setTotal((int) count);
-        apiResourceOrderVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
-        apiResourceOrderVo.setResourceOrders(auditOrders);
+        long count = oaWorkflowUserInnerServiceSMOImpl.getDefinitionKeysUserHistoryTaskCount(auditUser);
 
-        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiResourceOrderVo), HttpStatus.OK);
+        List<JSONObject> datas = null;
 
+        if (count > 0) {
+            datas = oaWorkflowUserInnerServiceSMOImpl.getDefinitionKeysUserHistoryTasks(auditUser);
+            //鍒锋柊 琛ㄥ崟鏁版嵁
+            refreshFormData(datas, reqJson,storeId);
+        } else {
+            datas = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, datas);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
         context.setResponseEntity(responseEntity);
     }
+
+    private void refreshFormData(List<JSONObject> datas, JSONObject paramIn,String storeId) {
+
+        List<String> ids = new ArrayList<>();
+        for (JSONObject data : datas) {
+            ids.add(data.getString("id"));
+        }
+        if (ids.size() < 1) {
+            return;
+        }
+
+        //鏌ヨ 鎶曡瘔淇℃伅
+        PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
+        purchaseApplyDto.setStoreId(storeId);
+        purchaseApplyDto.setApplyOrderIds(ids.toArray(new String[ids.size()]));
+        List<PurchaseApplyDto> tmpPurchaseApplyDtos = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplyAndDetails(purchaseApplyDto);
+
+        if (tmpPurchaseApplyDtos == null || tmpPurchaseApplyDtos.size() < 1) {
+            return;
+        }
+
+        for (PurchaseApplyDto tmpPurchaseApplyDto : tmpPurchaseApplyDtos) {
+            switch (tmpPurchaseApplyDto.getState()) {
+                case "1000":
+                    tmpPurchaseApplyDto.setStateName("寰呭鏍�");
+                    break;
+                case "1001":
+                    tmpPurchaseApplyDto.setStateName("瀹℃牳涓�");
+                    break;
+                case "1002":
+                    tmpPurchaseApplyDto.setStateName("宸插鏍�");
+                    break;
+            }
+            if (tmpPurchaseApplyDto.getResOrderType().equals("10000")) {
+                tmpPurchaseApplyDto.setResOrderTypeName("閲囪喘鐢宠");
+            } else {
+                tmpPurchaseApplyDto.setResOrderTypeName("鍑哄簱鐢宠");
+            }
+
+
+        }
+        for (JSONObject data : datas) {
+            for (PurchaseApplyDto form : tmpPurchaseApplyDtos) {
+                if (data.getString("id").equals(form.getApplyOrderId())) {
+                    data.putAll(BeanConvertUtil.beanCovertJson(form));
+                }
+            }
+        }
+    }
 }

--
Gitblit v1.8.0