From 2c43f24c1a778b48ac20b07e17f5da38136cafb4 Mon Sep 17 00:00:00 2001
From: kimi42345 <kimi42345@outlook.com>
Date: 星期三, 11 三月 2020 13:28:10 +0800
Subject: [PATCH] no message

---
 src/main/java/com/highdatas/mdm/service/impl/SysAssembleServiceImpl.java |   77 +++++++++++++++++++++++++++++++++-----
 1 files changed, 67 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/SysAssembleServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/SysAssembleServiceImpl.java
index 0567a31..fc0e092 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/SysAssembleServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/SysAssembleServiceImpl.java
@@ -13,11 +13,13 @@
 import com.highdatas.mdm.util.Constant;
 import com.highdatas.mdm.util.ContentBuilder;
 import com.highdatas.mdm.util.DbUtils;
+import com.highdatas.mdm.util.RuleClient;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.regexp.RE;
+import org.jcodings.util.Hash;
 import org.mybatis.spring.SqlSessionTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -77,11 +79,14 @@
     BigDataDataSourceInfo bigDataDataSourceInfo;
     @Autowired
     MasterDataService masterDataService;
-
+    @Autowired
+    ITUserService userService;
+    @Autowired
+    RuleClient ruleClient;
 
     @Override
     @Transactional(rollbackFor=Exception.class)
-    public Result run(String id, HttpSession session) {
+    public Result run(String id) {
         if (StringUtils.isEmpty(id)) {
             return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
         }
@@ -90,9 +95,17 @@
         if (assemble == null) {
             return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
         }
+        assemble.setPreTime(new Date());
+        assemble.setPreStatus(SysAssembleRunStatus.working);
+        assemble.updateById();
 
         if (!assemble.getStatus().equals(SysAssembleStatus.working)) {
+            assemble.setPreStatus(SysAssembleRunStatus.fail);
+            assemble.setPreCnt(0);
+            assemble.setPreMsg("褰撳墠浠诲姟涓嶅湪宸ヤ綔涓�,鐘舵��:" + assemble.getStatus());
+            assemble.updateById();
             return  Result.error(new CodeMsg(6009,"褰撳墠浠诲姟涓嶅湪宸ヤ綔涓�,鐘舵��:" + assemble.getStatus()));
+
         }
 
         String flowId = assemble.getFlowId();
@@ -101,13 +114,16 @@
             if (flows != null) {
                 ActivitiStatus status = flows.getStatus();
                 if (!status.equals(ActivitiStatus.close) && !status.equals(ActivitiStatus.open)) {
+                    assemble.setPreStatus(SysAssembleRunStatus.fail);
+                    assemble.setPreCnt(0);
+                    assemble.setPreMsg("褰撳墠鏈夋祦绋嬫鍦ㄨ繍琛�,鏆傛椂鏃犳硶姹囬泦涓嬫鏁版嵁:" + status.toString());
+                    assemble.updateById();
                     return  Result.error(new CodeMsg(6009,"褰撳墠鏈夋祦绋嬫鍦ㄨ繍琛�,鏆傛椂鏃犳硶姹囬泦涓嬫鏁版嵁:" + status.toString()));
+
                 }
             }
         }
-        assemble.setPreTime(new Date());
-        assemble.setPreStatus(SysAssembleRunStatus.working);
-        assemble.updateById();
+
 
         Boolean bigData = assemble.getBigdata();
 
@@ -147,7 +163,7 @@
             }
 
             //5 check temp data
-            result = checkTempData(id, assemble.getCheckType(), assemble.getCheckFields());
+            result = checkTempData(assemble);
 
             if (!result.getSuccess()) {
                 assemble.setPreStatus(SysAssembleRunStatus.fail);
@@ -166,7 +182,7 @@
             }
 
             //7 record 閾炬帴 鐗堟湰
-            result = linkMaintain(assemble, session);
+            result = linkMaintain(assemble);
             if (!result.getSuccess()) {
                 assemble.setPreStatus(SysAssembleRunStatus.fail);
                 assemble.setPreMsg("鑱旀帴鐗堟湰鍑虹幇閿欒" );
@@ -196,7 +212,7 @@
         }
     }
 
-    private Result linkMaintain(SysAssemble assemble, HttpSession session) {
+    private Result linkMaintain(SysAssemble assemble) {
         try{
             String menuId = assemble.getMenuId();
             MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", menuId));
@@ -216,7 +232,13 @@
                 audit = true;
             }
             if (audit) {
-                Flows flows = activitiService.start("process", session, maintain.getId(),  ActivitiBusinessType.maintain);
+                String chargeId = menuMapping.getChargeId();
+                TUser user = userService.selectById(chargeId);
+                if (user == null) {
+                    return Result.error(new CodeMsg(6009, "鎵句笉鍒板搴旂殑璐熻矗浜�:" + chargeId));
+                }
+                activitiService.setUser(user);
+                Flows flows = activitiService.start("process", null, maintain.getId(),  ActivitiBusinessType.maintain);
                 assemble.setFlowId(flows.getId()).updateById();
                 maintain.setFlowId(flows.getId());
                 maintain.setDesp("鍚姩姹囬泦娴佺▼");
@@ -486,8 +508,43 @@
         return builder.toString();
     }
 
-    private Result checkTempData(String s,SysAssembleCheckType checkType, String id) {
+    private Result checkTempData(SysAssemble assemble) {
         //TODO
+
+        SysAssembleCheckType checkType = assemble.getCheckType();
+        if (checkType == null) {
+            return Result.error(new CodeMsg(6009,"瑙勫垯鏍¢獙绫诲瀷涓虹┖"));
+        }
+        if (checkType.equals(SysAssembleCheckType.unlimited)) {
+            return Result.success(null);
+        }
+
+        String menuId = assemble.getMenuId();
+        MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", menuId));
+        String tableName = menuMapping.getTableName();
+        String tempTableName = Constant.Temp + tableName;
+        HashMap<String,Boolean> fieldResultSet =  ruleClient.execuImmeForCollect(tempTableName, assemble.getUserId());
+        switch (checkType){
+            case successAdd:
+                String unSuccessFields = fieldResultSet.keySet().stream().filter(s -> !fieldResultSet.get(s)).collect(Collectors.joining(Constant.COMMA));
+                if (fieldResultSet.keySet().contains(false)) {
+                    return Result.error(new CodeMsg(6009,"瑙勫垯鏍¢獙涓嶉�氳繃 瀛楁:" + unSuccessFields));
+                }
+                break;
+            case partSuccessAdd:
+                String checkFields = assemble.getCheckFields();
+                String[] split = checkFields.split(Constant.SEMICOLON);
+                for (String s : split) {
+                    Boolean checked = fieldResultSet.get(s);
+                    if (checked == null || !checked) {
+                        return Result.error(new CodeMsg(6009,"瑙勫垯鏍¢獙涓嶉�氳繃 瀛楁:" + s));
+                    }
+                }
+                break;
+        }
+
+
+
         return Result.success(null);
     }
 

--
Gitblit v1.8.0