田源
2023-08-02 3714d4df9a79814b4f9504173b3984617f3f2815
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;