田源
2025-03-05 be30e17e3c7685a54f761bf3a03487308c939270
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
@@ -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;
@@ -35,6 +35,7 @@
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;
@@ -135,9 +136,8 @@
   private IDockingLogeService dockingLogeService;
   @Override
   public IPage<DockingSystemConfigVO> page(DockingSystemConfig DockingSystemConfig, Query query) {
      IPage<DockingSystemConfig> pages = page(Condition.getPage(query), Condition.getQueryWrapper(DockingSystemConfig));
   public IPage<DockingSystemConfigVO> page(Map<String,String>codtionMap, Query query) {
      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()));
@@ -151,7 +151,7 @@
      //   dockingSystemConfig.setSourceSysName("");
         //dockingSystemConfig.setTargetSysName("");
      });
      return  DockingSystemConfigWrapper.build().pageVO(pages);
      return DockingSystemConfigWrapper.build().pageVO(pages);
   }
   /**
@@ -161,51 +161,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);
               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);
               sysIntHeaderList.add(dockingSysIntHeader);
            });
         }
         dockingSysIntParamService.saveBatch(sysIntParamList);
         dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
         DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO);
         dockingSystemConfigMapper.insert(dockingSystemConfig);
      }else{
         throw new Throwable("根据选择的集成系统未校验到系统中存在此集成系统,请核对!");
      }
      return true;
   }
   /**
@@ -215,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;
   }
   /***
@@ -360,7 +376,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;
   }
   /**
@@ -525,7 +544,7 @@
    * @param dockingSystemConfigDTO
    * @throws Throwable
    */
   private void callInterface(String  sendString , DockingSystemConfigDTO dockingSystemConfigDTO) throws  Throwable{
   private void callInterface(String  sendString , DockingSystemConfigDTO dockingSystemConfigDTO) throws Throwable{
      String paramString = "";
      String backString = "";
@@ -551,7 +570,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);
@@ -559,7 +578,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);
@@ -589,7 +608,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<>();
@@ -625,7 +644,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;
@@ -651,6 +670,7 @@
            dockingLog.setClassifyName(dockingSystemConfigDTO.getClassifyName());
            dockingLog.setId(dockingSystemConfigDTO.getId());
            dockingLog.setUniqueCode("");
            dockingLog.setCreateTime(new Date());
            dockingLog.setInterfaceStatus(isSend?"true":"false");
            dockingLog.setParamString(paramString);
            dockingLog.setType(DATA_LOGE_OUT);