xiejun
2023-08-30 db5ed49b5473b63bf08c4e0c7ffa752ed35a3a95
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
@@ -222,76 +222,85 @@
    */
   @Transactional(rollbackFor = Exception.class)
   @Override
   public boolean editSave(DockingSystemConfigDTO dockingSystemConfigDTO) {
   public boolean editSave(DockingSystemConfigDTO dockingSystemConfigDTO) throws Throwable {
      VciBaseUtil.alertNotNull(dockingSystemConfigDTO,"数据对象",dockingSystemConfigDTO.getOid(),"系统集成基础信息主键");
      String sourcesystemoid = dockingSystemConfigDTO.getSourceSystemOid();//.getSourcesystemoid();
      DockingSystem dockingSystem = dockingSystemMapper.selectById(sourcesystemoid);
      dockingSystemConfigDTO.setSysBaseOid(sourcesystemoid);
      dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
      dockingSystemConfigDTO.setBtmname(dockingSystem.getName());
      //将DTO转换为DO
      DockingSystemConfig dockingSystemConfig = dockingSystemConfigMapper.selectById(dockingSystemConfigDTO.getOid());
      revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
      String sysInfoOid=dockingSystemConfigDTO.getOid();
      List<DockingSysIntParamDTO> dockingSysIntParamDTOS=  dockingSystemConfigDTO.getSysIntParamDTOS();
      List<DockingSysIntParam> dockingSysIntParamList=new ArrayList<>();
      if(!CollectionUtils.isEmpty(dockingSysIntParamDTOS)) {
         dockingSysIntParamDTOS.stream().forEach(dockingSysIntParamDTO -> {
            DockingSysIntParam dockingSysIntParam = new DockingSysIntParam();
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingSysIntParamDTO, dockingSysIntParam);
            dockingSysIntParamList.add(dockingSysIntParam);
         });
      String systemOid ="";
      if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.PUSH.getValue())) {
         systemOid = dockingSystemConfigDTO.getTargetSystemOid();
      }else{
         systemOid = dockingSystemConfigDTO.getSourceSystemOid();
      }
      List<DockingSysIntHeaderDTO> dockingSysIntHeaderDTOS= dockingSystemConfigDTO.getSysIntHeaderDTOS();
      List<DockingSysIntHeader> dockingSysIntHeaderList = new ArrayList<>();
      if(!CollectionUtils.isEmpty(dockingSysIntHeaderDTOS)) {
         dockingSysIntHeaderDTOS.stream().forEach(dockingSysIntHeaderDTO -> {
            DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingSysIntHeaderDTO, dockingSysIntHeader);
            dockingSysIntHeaderList.add(dockingSysIntHeader);
         });
      }
      DockingSystem dockingSystem = dockingSystemMapper.selectById(systemOid);
      if(dockingSystem!=null) {
         dockingSystemConfigDTO.setSysBaseOid(dockingSystem.getOid());
         dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
         dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
         //将DTO转换为DO
         DockingSystemConfig dockingSystemConfig = dockingSystemConfigMapper.selectById(dockingSystemConfigDTO.getOid());
         revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO, dockingSystemConfig);
         String sysInfoOid = dockingSystemConfigDTO.getOid();
         List<DockingSysIntParamDTO> dockingSysIntParamDTOS = dockingSystemConfigDTO.getSysIntParamDTOS();
         List<DockingSysIntParam> dockingSysIntParamList = new ArrayList<>();
         if (!CollectionUtils.isEmpty(dockingSysIntParamDTOS)) {
            dockingSysIntParamDTOS.stream().forEach(dockingSysIntParamDTO -> {
               DockingSysIntParam dockingSysIntParam = new DockingSysIntParam();
               BeanUtilForVCI.copyPropertiesIgnoreCase(dockingSysIntParamDTO, dockingSysIntParam);
               dockingSysIntParamList.add(dockingSysIntParam);
            });
         }
         List<DockingSysIntHeaderDTO> dockingSysIntHeaderDTOS = dockingSystemConfigDTO.getSysIntHeaderDTOS();
         List<DockingSysIntHeader> dockingSysIntHeaderList = new ArrayList<>();
         if (!CollectionUtils.isEmpty(dockingSysIntHeaderDTOS)) {
            dockingSysIntHeaderDTOS.stream().forEach(dockingSysIntHeaderDTO -> {
               DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
               BeanUtilForVCI.copyPropertiesIgnoreCase(dockingSysIntHeaderDTO, dockingSysIntHeader);
               dockingSysIntHeaderList.add(dockingSysIntHeader);
            });
         }
      //批量处理保存header对象
      if(!CollectionUtils.isEmpty(dockingSysIntHeaderList)) {
         List<String> idList=new ArrayList<>();
         List<DockingSysIntHeader> headers_old =this.dockingSysIntHeaderService.list(Wrappers.<DockingSysIntHeader>query().lambda().eq(DockingSysIntHeader::getInfoOid,sysInfoOid));;
         for (DockingSysIntHeader sysIntHeader:headers_old){
            sysIntHeader.setUsedFlag(FLAG_FAIL);
            idList.add(sysIntHeader.getOid());
         }
         if(idList.size()!=0){
            boolean res=dockingSysIntHeaderService.removeBatchByIds(idList);
         }
         //再新增headers
         for(DockingSysIntHeader sysIntHeader:dockingSysIntHeaderList){
            sysIntHeader.setUsedFlag(FLAG_TRUE);
            sysIntHeader.setInfoOid(dockingSystemConfig.getOid());
         //批量处理保存header对象
         if (!CollectionUtils.isEmpty(dockingSysIntHeaderList)) {
            List<String> idList = new ArrayList<>();
            List<DockingSysIntHeader> headers_old = this.dockingSysIntHeaderService.list(Wrappers.<DockingSysIntHeader>query().lambda().eq(DockingSysIntHeader::getInfoOid, sysInfoOid));
            ;
            for (DockingSysIntHeader sysIntHeader : headers_old) {
               sysIntHeader.setUsedFlag(FLAG_FAIL);
               idList.add(sysIntHeader.getOid());
            }
            if (idList.size() != 0) {
               boolean res = dockingSysIntHeaderService.removeBatchByIds(idList);
            }
            //再新增headers
            for (DockingSysIntHeader sysIntHeader : dockingSysIntHeaderList) {
               sysIntHeader.setUsedFlag(FLAG_TRUE);
               sysIntHeader.setInfoOid(dockingSystemConfig.getOid());
            }
            boolean res = dockingSysIntHeaderService.saveBatch(dockingSysIntHeaderList);
         }
         boolean res= dockingSysIntHeaderService.saveBatch(dockingSysIntHeaderList);
         //批量处理保存Param对象
         if (!CollectionUtils.isEmpty(dockingSysIntParamList)) {
            //先删除params_old
            List<String> idList = new ArrayList<>();
            List<DockingSysIntParam> params_old = this.dockingSysIntParamService.list(Wrappers.<DockingSysIntParam>query().lambda().eq(DockingSysIntParam::getInfoOid, sysInfoOid));
            for (DockingSysIntParam sysIntParamDO : params_old) {
               sysIntParamDO.setUsedFlag(FLAG_FAIL);
               idList.add(sysIntParamDO.getOid());
            }
            if (idList.size() != 0) {
               boolean res = dockingSysIntParamService.removeBatchByIds(idList);
            }
            //再新增params
            for (DockingSysIntParam sysIntParamDOi : dockingSysIntParamList) {
               sysIntParamDOi.setUsedFlag(FLAG_TRUE);
               sysIntParamDOi.setInfoOid(dockingSystemConfig.getOid());
            }
            dockingSysIntParamService.saveBatch(dockingSysIntParamList);
         }
         this.dockingSystemConfigMapper.updateById(dockingSystemConfig);
      }else{
         throw new Throwable("根据选择的集成系统未校验到系统中存在此集成系统,请核对!");
      }
      //批量处理保存Param对象
      if(!CollectionUtils.isEmpty(dockingSysIntParamList)) {
         //先删除params_old
         List<String> idList=new ArrayList<>();
         List<DockingSysIntParam> params_old =this.dockingSysIntParamService.list(Wrappers.<DockingSysIntParam>query().lambda().eq(DockingSysIntParam::getInfoOid,sysInfoOid));
         for (DockingSysIntParam sysIntParamDO:params_old){
            sysIntParamDO.setUsedFlag(FLAG_FAIL);
            idList.add(sysIntParamDO.getOid());
         }
         if(idList.size()!=0){
            boolean res= dockingSysIntParamService.removeBatchByIds(idList);
         }
         //再新增params
         for(DockingSysIntParam sysIntParamDOi:dockingSysIntParamList){
            sysIntParamDOi.setUsedFlag(FLAG_TRUE);
            sysIntParamDOi.setInfoOid(dockingSystemConfig.getOid());
         }
         dockingSysIntParamService.saveBatch(dockingSysIntParamList);
      }
      this.dockingSystemConfigMapper.updateById(dockingSystemConfig);
      //return changeoDckingSystemEntityVOs(dockingSystemConfig,dockingSysIntHeaderList,dockingSysIntParamList);
      return true;
   }
   /***