From 8033eea1502d4cb0a91aa4b86c848ccb00ba8dc0 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期五, 13 三月 2020 09:31:46 +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