ludc
2023-12-05 b40cd8c94978d43f9d13ba9ee93a4164b68a8165
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
@@ -9,7 +9,7 @@
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.dto.DockingSysIntHeaderDTO;
import com.vci.ubcs.code.dto.DockingSystemConfigDTO;
import com.vci.ubcs.code.dto.DockingSysIntParamDTO;
@@ -25,7 +25,7 @@
import com.vci.ubcs.code.enumpack.*;
import com.vci.ubcs.code.mapper.*;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.util.HttpUtils;
import com.vci.ubcs.starter.util.HttpUtils;
import com.vci.ubcs.code.util.WsErpClientUtil;
import com.vci.ubcs.code.vo.pagemodel.*;
import com.vci.ubcs.code.wrapper.DockingSysIntHeaderWrapper;
@@ -34,6 +34,8 @@
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.web.pagemodel.PageHelper;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
@@ -95,11 +97,11 @@
    */
   @Autowired(required = false)
   private DockingSystemMapper dockingSystemMapper;
   /***
    * 任务生成服务
    */
   @Autowired( required = false)
   private IDockingTaskService dockingTaskService;
//   /***
//    * 任务生成服务
//    */
//   @Resource
//   private IDockingTaskService dockingTaskService;
   /**
@@ -134,9 +136,9 @@
   private IDockingLogeService dockingLogeService;
   @Override
   public IPage<DockingSystemConfigVO> page(DockingSystemConfig DockingSystemConfig, Query query) {
   public IPage<DockingSystemConfigVO> page(Map<String,String>codtionMap, Query query) {
      IPage<DockingSystemConfig> pages = page(Condition.getPage(query), Condition.getQueryWrapper(DockingSystemConfig));
      IPage<DockingSystemConfig> pages = page(Condition.getPage(query), UBCSSqlKeyword.buildConditionByMapString(codtionMap));
      List<DockingSystemConfig>  dockingSystemConfigList= pages.getRecords();
      dockingSystemConfigList.stream().forEach(dockingSystemConfig -> {
         dockingSystemConfig.setDataFlowTypeText(SysIntegrationDataFlowTypeEnum.getTextByValue(dockingSystemConfig.getDataFlowType()));
@@ -160,51 +162,58 @@
    */
   @Transactional(rollbackFor = Exception.class)
   @Override
   public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) {
   public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) throws Throwable {
      log.info(" 增加系统集成的接口管理信息:"+dockingSystemConfigDTO.toString());
      VciBaseUtil.alertNotNull(dockingSystemConfigDTO, "需要添加的数据对象");
      checkColumnNotNull(dockingSystemConfigDTO);
      String sourcesystemoid = dockingSystemConfigDTO.getSourceSystemOid();
      DockingSystem dockingSystem = dockingSystemMapper.selectById(sourcesystemoid);
      dockingSystemConfigDTO.setSysBaseOid(sourcesystemoid);
      dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
      dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
      dockingSystemConfigDTO.setUsedFlag("true");//设置默认启用状态
      //将DTO转换为DO
      DockingSystemConfig dockingSystemConfig = new DockingSystemConfig();
      revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
      List<DockingSysIntParamDTO> sysIntParamDTOList=  dockingSystemConfigDTO.getSysIntParamDTOS();
      List<DockingSysIntParam> sysIntParamList=new ArrayList<>();
      if(!CollectionUtils.isEmpty(sysIntParamDTOList)) {
         sysIntParamDTOList.stream().forEach(sysIntParamDTO -> {
            DockingSysIntParam sysIntParamDO = new DockingSysIntParam();
            sysIntParamDTO.setInfoOid(dockingSystemConfigDTO.getOid());
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
            DefaultAttrAssimtUtil.addDefaultAttrAssimt(sysIntParamDO,MdmBtmTypeConstant.SYS_INT_PARAMTERY);
            sysIntParamList.add(sysIntParamDO);
         });
      String systemOid ="";
      if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.PUSH.getValue())) {
         systemOid = dockingSystemConfigDTO.getTargetSystemOid();
      }else{
         systemOid = dockingSystemConfigDTO.getSourceSystemOid();
      }
      List<DockingSysIntHeaderDTO> sysIntHeaderDTOs= dockingSystemConfigDTO.getSysIntHeaderDTOS();
      List<DockingSysIntHeader> sysIntHeaderList = new ArrayList<>();
      if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
         sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
            DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
            sysIntHeaderDTO.setInfoOid(dockingSystemConfigDTO.getOid());
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, dockingSysIntHeader);
            DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSysIntHeader,MdmBtmTypeConstant.SYS_INT_HEADER);
            sysIntHeaderList.add(dockingSysIntHeader);
         });
      }
      dockingSysIntParamService.saveBatch(sysIntParamList);
      dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
      DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO);
      dockingSystemConfigMapper.insert(dockingSystemConfig);
      DockingSystem dockingSystem = dockingSystemMapper.selectById(systemOid);
      if(dockingSystem!=null) {
         dockingSystemConfigDTO.setSysBaseOid(systemOid);
         dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
         dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
         dockingSystemConfigDTO.setUsedFlag("true");//设置默认启用状态
         //将DTO转换为DO
         DockingSystemConfig dockingSystemConfig = new DockingSystemConfig();
         revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
         List<DockingSysIntParamDTO> sysIntParamDTOList=  dockingSystemConfigDTO.getSysIntParamDTOS();
         List<DockingSysIntParam> sysIntParamList=new ArrayList<>();
         if(!CollectionUtils.isEmpty(sysIntParamDTOList)) {
            sysIntParamDTOList.stream().forEach(sysIntParamDTO -> {
               DockingSysIntParam sysIntParamDO = new DockingSysIntParam();
               sysIntParamDTO.setInfoOid(dockingSystemConfigDTO.getOid());
               BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(sysIntParamDO, MdmBtmTypeConstant.SYS_INT_PARAMTERY,null);
               sysIntParamList.add(sysIntParamDO);
            });
         }
         List<DockingSysIntHeaderDTO> sysIntHeaderDTOs= dockingSystemConfigDTO.getSysIntHeaderDTOS();
         List<DockingSysIntHeader> sysIntHeaderList = new ArrayList<>();
         if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
            sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
               DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
               sysIntHeaderDTO.setInfoOid(dockingSystemConfigDTO.getOid());
               BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, dockingSysIntHeader);
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSysIntHeader,MdmBtmTypeConstant.SYS_INT_HEADER,null);
               sysIntHeaderList.add(dockingSysIntHeader);
            });
         }
         dockingSysIntParamService.saveBatch(sysIntParamList);
         dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
         DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO,null);
         dockingSystemConfigMapper.insert(dockingSystemConfig);
      }else{
         throw new Throwable("根据选择的集成系统未校验到系统中存在此集成系统,请核对!");
      }
      return true;
   }
   /**
@@ -214,76 +223,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;
   }
   /***
@@ -359,7 +377,10 @@
   @Override
   public boolean deleteDataById(String oids) {
      return false;
      VciBaseUtil.alertNotNull(oids, "数据主键为空");
      List<String> oidList=VciBaseUtil.str2List(oids);
      int i=dockingSystemConfigMapper.deleteBatchIds(oidList);
      return i>0?true:false;
   }
   /**
@@ -450,7 +471,7 @@
               dockingTaskDO_insert.add(dockingTaskDO);
            });
         }
         dockingTaskService.saveBatch(dockingTaskDO_insert);
//         dockingTaskService.saveBatch(dockingTaskDO_insert);
      }catch (Throwable e){
         msg="数据推送到定时任务失败!";
         log.error("数据推送到定时任务失败!"+e);
@@ -550,7 +571,7 @@
               String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString;
               //拼接param
               for (DockingSysIntParamDTO sysIntParamVO : sysIntParamVOList) {
                  sendurl = sendurl + "&" + sysIntParamVO.getParamkey() + "=" + sysIntParamVO.getParamvalue();
                  sendurl = sendurl + "&" + sysIntParamVO.getParamKey() + "=" + sysIntParamVO.getParamValue();
               }
               paramString = sendurl;
               backString = HttpUtils.get(sendurl);
@@ -558,7 +579,7 @@
               MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
               if(!CollectionUtils.isEmpty(sysIntParamVOList)) {
                  for (DockingSysIntParamDTO sysIntParamVO : sysIntParamVOList) {
                     params.add(sysIntParamVO.getParamkey(), sysIntParamVO.getParamvalue());
                     params.add(sysIntParamVO.getParamKey(), sysIntParamVO.getParamValue());
                  }
               }
               params.add(DATA_PARAM_NAME,sendString);
@@ -588,7 +609,7 @@
         }else if (type.equals(URLTYPE_WEBSERVICE)) {//webserver请求
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            for (DockingSysIntParamDTO sysIntParamVO : sysIntParamVOList) {
               params.add(sysIntParamVO.getParamkey(), sysIntParamVO.getParamvalue());
               params.add(sysIntParamVO.getParamKey(), sysIntParamVO.getParamValue());
            }
            paramString = sendString;
            MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
@@ -624,7 +645,7 @@
         resultNodeObjectDTO.setErroid("1");
         resultNodeObjectDTO.setMsg(msg);
         resultNodeObjectDTO.setCode(dockingSystemConfigDTO.getClassifyId());
         resultNodeObjectDTO.setOid(dockingSystemConfigDTO.getClassifyOid());
         resultNodeObjectDTO.setItemid(dockingSystemConfigDTO.getClassifyOid());
         resultNodeObjectDTOS.add(resultNodeObjectDTO);
      }finally {
         boolean isSend = false;