Source/UBCS/ubcs-ops-api/ubcs-flow-api/src/main/java/com/vci/ubcs/flow/core/feign/IFlowClient.java
@@ -16,7 +16,9 @@ */ package com.vci.ubcs.flow.core.feign; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.vci.ubcs.flow.core.entity.BladeFlow; import com.vci.ubcs.flow.core.entity.ProcessTemplate; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.tool.api.R; import org.springframework.cloud.openfeign.FeignClient; @@ -25,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; /** @@ -44,6 +47,8 @@ String COMPLETE_TASK = API_PREFIX + "/complete-task"; String TASK_VARIABLE = API_PREFIX + "/task-variable"; String TASK_VARIABLES = API_PREFIX + "/task-variables"; String SELECT_BY_WRAPPER = API_PREFIX + "/select-by-wrapper"; String PROCESS_BATCH_SAVE = API_PREFIX + "/PROCESS-BATCH-SAVE"; /** * 开启流程 @@ -97,4 +102,23 @@ */ @GetMapping(TASK_VARIABLES) R<Map<String, Object>> taskVariables(@RequestParam("taskId") String taskId); /** * 查询数据wrapper方式 * * @param wrapperMap 条件 * @return R */ @PostMapping(SELECT_BY_WRAPPER) R<List<ProcessTemplate>> selectByWrapper(@RequestBody Map<String,Object> wrapperMap); /** * 批量保存流程数据 * * @param listProcessTemplate 保存数据 * @return R */ @PostMapping(PROCESS_BATCH_SAVE) R processBatchSave(@RequestBody List<ProcessTemplate> listProcessTemplate); } Source/UBCS/ubcs-ops-api/ubcs-flow-api/src/main/java/com/vci/ubcs/flow/core/feign/IFlowClientFallback.java
@@ -16,10 +16,13 @@ */ package com.vci.ubcs.flow.core.feign; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.vci.ubcs.flow.core.entity.BladeFlow; import com.vci.ubcs.flow.core.entity.ProcessTemplate; import org.springblade.core.tool.api.R; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; /** @@ -55,4 +58,14 @@ return R.fail("远程调用失败"); } @Override public R<List<ProcessTemplate>> selectByWrapper( Map<String,Object> wrapperMap) { return R.fail("远程调用失败"); } @Override public R processBatchSave(List<ProcessTemplate> listProcessTemplate) { return R.fail("远程调用失败"); } } Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/feign/FlowClient.java
@@ -16,9 +16,12 @@ */ package com.vci.ubcs.flow.business.feign; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.vci.ubcs.flow.core.entity.BladeFlow; import com.vci.ubcs.flow.core.entity.ProcessTemplate; import com.vci.ubcs.flow.core.feign.IFlowClient; import com.vci.ubcs.flow.core.utils.TaskUtil; import com.vci.ubcs.flow.engine.service.ProcessTemplateService; import lombok.AllArgsConstructor; import org.flowable.engine.IdentityService; import org.flowable.engine.RuntimeService; @@ -34,6 +37,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; /** @@ -49,6 +53,7 @@ private final RuntimeService runtimeService; private final IdentityService identityService; private final TaskService taskService; private final ProcessTemplateService processTemplateService; @Override @PostMapping(START_PROCESS_INSTANCE_BY_ID) @@ -104,4 +109,33 @@ return R.data(taskService.getVariables(taskId)); } /** * 查询数据wrapper方式 * * @param wrapperMap 条件 * @return R */ @Override @PostMapping(SELECT_BY_WRAPPER) public R<List<ProcessTemplate>> selectByWrapper(@RequestBody Map<String,Object> wrapperMap){ return R.data(processTemplateService.listByMap(wrapperMap)); } /** * 批量保存流程数据 * * @param listProcessTemplate 保存数据 * @return R */ @Override @PostMapping(PROCESS_BATCH_SAVE) public R processBatchSave(@RequestBody List<ProcessTemplate> listProcessTemplate) { if(listProcessTemplate.size() == 0){ return R.fail("为传入数据,请检查!"); } boolean b = processTemplateService.saveBatch(listProcessTemplate); return R.data(b); } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
@@ -31,6 +31,8 @@ import com.vci.ubcs.code.service.ICodeClstemplateService; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO; import com.vci.ubcs.flow.core.entity.ProcessTemplate; import com.vci.ubcs.flow.core.feign.IFlowClient; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.revision.model.TreeQueryObject; import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; @@ -106,6 +108,8 @@ private CodeClassifyTemplateMapper codeClassifyTemplateMapper; @Autowired(required = false) private CodePhaseAttrServiceImpl codePhaseattrServiceImpl; @Autowired(required = false) private IFlowClient iFlowClient; @Override public IPage<CodeClassifyTemplateVO> selectPlCodeClstemplatePage(IPage<CodeClassifyTemplateVO> page, CodeClassifyTemplateVO plCodeClstemplate) { @@ -545,7 +549,7 @@ } //复制模板流程 List<CodeClassifyProcessTemp> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); List<ProcessTemplate> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); //复制模板阶段,阶段属性 Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid); @@ -557,7 +561,7 @@ //保存模板流程 if(!CollectionUtils.isEmpty(codeClassifyProcessTempDOList)) { codeClsflowtempServiceImpl.saveBatch(codeClassifyProcessTempDOList); iFlowClient.processBatchSave(codeClassifyProcessTempDOList); } //模板阶段 if(!CollectionUtils.isEmpty(codeClassifyPhaseDOList)) { @@ -619,7 +623,7 @@ List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid); //复制模板流程 List<CodeClassifyProcessTemp> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid); List<ProcessTemplate> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid); //复制模板阶段,阶段属性 Map phase_attrMap = copyTemplatePhase_attr(oldOid,newOid); @@ -633,7 +637,7 @@ // baseMapper.insert(codeClassifyTemplateDOList); this.saveBatch(codeClassifyTemplateDOList); codeTempbuttonServiceImpl.saveBatch(codeClassifyTemplateButtonDOList); codeClsflowtempServiceImpl.saveBatch(codeClassifyProcessTempDOList); iFlowClient.processBatchSave(codeClassifyProcessTempDOList); codeClstempattrService.saveBatch(codeClassifyTemplateAttrDOList); codeTempphaseServiceImpl.saveBatch(codeClassifyPhaseDOList); codePhaseattrServiceImpl.saveBatch(codePhaseAttrDOList); @@ -696,22 +700,17 @@ /** * 复制模板流程 */ public List<CodeClassifyProcessTemp> copyTemplateProcess(String templateOldOid,String templateNewOid){ // VciQueryWrapperForDO processWrapper = new VciQueryWrapperForDO(CodeClassifyProcessTempDO.class); // processWrapper.addQueryMap("classifyTemplateOid",templateOldOid); // Map<String,Object> condition = new HashMap<>(1); // condition.put("classifyTemplateOid",templateOldOid); QueryWrapper<CodeClassifyProcessTemp> wrapper = new QueryWrapper<>(); wrapper.eq("classifyTemplateOid",templateOldOid); List<CodeClassifyProcessTemp> codeClsflowtempEntities = codeClsflowtempServiceImpl.list(wrapper); // List<CodeClassifyProcessTempDO> codeClassifyProcessTempDOList = codeClassifyProcessTempDaoI.selectByWrapper(processWrapper);//要保存的新的模板流程 for (CodeClassifyProcessTemp codeClassifyProcessTempDO:codeClsflowtempEntities){ // String newOid = VciBaseUtil.getPk(); codeClassifyProcessTempDO.setOid(null); //codeClassifyProcessTempDO.setCodeClassifyOid(templateNewOid); codeClassifyProcessTempDO.setClassifyTemplateOid(templateNewOid); // codeClsflowtempMapper.insert(codeClassifyProcessTempDO); public List<ProcessTemplate> copyTemplateProcess(String templateOldOid,String templateNewOid){ Map<String,Object> wrapperMap = new HashMap(); wrapperMap.put("template_id",templateOldOid); R<List<ProcessTemplate>> listR = iFlowClient.selectByWrapper(wrapperMap); if(!listR.isSuccess()){ throw new VciBaseException("查询模板流程时出错,请重试!"); } List<ProcessTemplate> codeClsflowtempEntities = listR.getData(); for (ProcessTemplate codeClassifyProcessTempDO:codeClsflowtempEntities){ codeClassifyProcessTempDO.setId(null); codeClassifyProcessTempDO.setTemplateId(templateNewOid); //modify by lihang - @20220406 设置模板主键位置出错,导致升版的模板中的流程是空的。 } return codeClsflowtempEntities; Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -360,15 +360,10 @@ throw new VciBaseException("未查询到相关数据。"); } //还需要修改allCode的生命周期 // Map<String, String> conditionMap = new HashMap<>(); QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>(); allCodeWrapper.eq("createcodebtm", baseModelDTO.getBtmname()); allCodeWrapper.in("createcodeoid", oids); // conditionMap.put("createcodeoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")"); // conditionMap.put("createcodebtm", baseModelDTO.getBtmname()); List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper); // List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap); // 回收需要业务数据删除 List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);// 回收需要业务数据删除 if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) { R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname())); if (!listR.isSuccess() || listR.getData().size() == 0) { Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java
@@ -215,7 +215,7 @@ // 版本规则字段不能为空 // vo.setNullableFlag(false); vo.setAttributeLength(150); if (Arrays.asList("lastr","firstr","lastv","firstv").contains(id)){ if (Arrays.asList("lastr","firstr","lastv","firstv","revisionseq","versionseq").contains(id)){ vo.setAttributeLength(5); vo.setAttrDataType(VciFieldTypeEnum.VTInteger.name()); }