diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java index a1cb94ee..f3cfe90c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java @@ -42,6 +42,18 @@ public class DataSyncController { private IDataSyncService iDataSyncService; + @ApiOperation("国内外标准库代替被代替 数据补全") + @PostMapping("/dtAndBdtToStandData") + public void dtAndBdtToStandData() { + iDataSyncService.dtAndBdtToStandData(); + } + + @ApiOperation("企业标准库代替被代替 数据补全") + @PostMapping("/dtAndBdtToBussData") + public void dtAndBdtToBussData() { + iDataSyncService.dtAndBdtToBussData(); + } + @ApiOperation("同步用户数据") @PostMapping("/importUserData") public String importUserData() throws Exception { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/IDataSyncService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/IDataSyncService.java index 986f24ed..8091c730 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/IDataSyncService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/IDataSyncService.java @@ -2,6 +2,9 @@ package com.adc.da.slrs.DataSync.service; public interface IDataSyncService { + void dtAndBdtToStandData(); + void dtAndBdtToBussData(); + public String dataSync(); public String orgDataSync(); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java index b1e8cbd9..8855c313 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/service/impl/DataSyncServiceImpl.java @@ -2,10 +2,19 @@ package com.adc.da.slrs.DataSync.service.impl; import com.adc.da.login.util.UserUtils; import com.adc.da.slrs.DataSync.service.IDataSyncService; +import com.adc.da.slrs.sarBussStandAttrInfo.dao.SarBussStandAttrInfoDao; +import com.adc.da.slrs.sarBussStandAttrInfo.service.ISarBussStandAttrInfoService; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; import com.adc.da.slrs.sarInstitution.entity.TsInstitution; import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService; import com.adc.da.slrs.sarPosition.entity.TsPosition; import com.adc.da.slrs.sarPosition.service.ITsPositionService; +import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao; +import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo; +import com.adc.da.slrs.sarStandAttrInfo.service.ISarStandAttrInfoService; +import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; +import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; import com.adc.da.slrs.sarUser.entity.TsUser; import com.adc.da.slrs.sarUser.service.ITsUserService; import com.adc.da.sync.service.SyncUserService; @@ -14,18 +23,22 @@ import com.adc.da.sys.entity.UserOrgEO; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.extern.log4j.Log4j; +import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.jdbc.Null; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.sql.Timestamp; import java.util.*; +import java.util.stream.Collectors; @Service public class DataSyncServiceImpl implements IDataSyncService { @@ -37,10 +50,206 @@ public class DataSyncServiceImpl implements IDataSyncService { ITsUserService tsUserService; @Autowired ITsInstitutionService tsInstitutionService; + @Autowired + private ISarStandardsInfoService iSarStandardsInfoService; + @Autowired + private ISarBussionessStandService iSarBussionessStandService; + + @Autowired + private SarStandAttrInfoDao sarStandAttrInfoEODao; + + @Autowired + private ISarStandAttrInfoService iSarStandAttrInfoService; + + @Autowired + private SarBussStandAttrInfoDao sarBussStandAttrInfoEODao; + + @Autowired + private ISarBussStandAttrInfoService iSarBussStandAttrInfoService; + + private static Logger logger = LoggerFactory.getLogger(DataSyncServiceImpl.class); + @Transactional(rollbackFor = {RuntimeException.class,Exception.class}) + @Async + public void dtAndBdtToStandData(){ + QueryWrapper wrapper = new QueryWrapper(); + wrapper.select("sar_standards_info.*, r.DTBJH AS dtbzh, r.BDTBZH"); + wrapper.last("LEFT JOIN sar_stand_attr_info r ON r.STAND_ID = sar_standards_info.ID WHERE sar_standards_info.VALID_FLAG = '0'"); + List standardsInfos = iSarStandardsInfoService.list(wrapper); + + if(!standardsInfos.isEmpty()){ + + // 1. 遍历全部数据 + standardsInfos.forEach(info -> { + // 1.1 判断代替标准号 + if(StringUtils.isNotBlank(info.getDtbzh())){ + // 1.1.1 找出当前代替标准版所有被代替标准 + List dtList = Arrays.stream(info.getDtbzh().split(",")).map(String::trim).collect(Collectors.toList()); + if(!dtList.isEmpty()){ + for (String s : dtList) { + + if(s.contains("null")){ + continue; + } + List bdtList = standardsInfos.stream().filter(info1 -> { + if(StringUtils.isNotBlank(info1.getDtbzh()) && info1.getDtbzh().contains(s)){ + return true; + } + return false; + }).collect(Collectors.toList()); + // 1.1.1.1合并被代替标准 + if(!bdtList.isEmpty()){ + // 1.1.1.1.1 获取需要更新的代替标准 + List updInfo = standardsInfos.stream().filter(info1 -> { + String addStrandNumber = ""; + if (StringUtils.isNotEmpty(info1.getStandYear())) { + addStrandNumber = info1.getStandSort() + " " + info1.getStandNumber() + "-" + info1.getStandYear(); + } else { + addStrandNumber = info1.getStandSort() + " " + info1.getStandNumber(); + } + if(StringUtils.isNotBlank(addStrandNumber) && s.trim().equals(addStrandNumber.trim())){ + return true; + } + return false; + }).collect(Collectors.toList()); + + + // 1.1.1.1.2 是否存在需要更新的代替标准 + if(!updInfo.isEmpty()){ + // 1.1.1.1.2.1 拼接 被代替标准号 + String btd = bdtList.stream().map(info1 -> { + String addStrandNumber = ""; + if (StringUtils.isNotEmpty(info1.getStandYear())) { + addStrandNumber = info1.getStandSort() + " " + info1.getStandNumber() + "-" + info1.getStandYear(); + } else { + addStrandNumber = info1.getStandSort() + " " + info1.getStandNumber(); + } + return addStrandNumber; + }).collect(Collectors.joining(",")); + System.out.println(btd); + + // 1.1.1.1.2.2 找出已存在的被代替标准 及 去重, 如没找出,则使用最新被代替 + List notExBtdList = Arrays.stream(btd.split(",")).map(String::trim).collect(Collectors.toList()); + if(StringUtils.isNotBlank(updInfo.get(0).getBDTBZH())){ + List exBdtList = Arrays.stream(updInfo.get(0).getBDTBZH().split(",")).map(String::trim).collect(Collectors.toList()); + if(!exBdtList.isEmpty()){ + exBdtList = exBdtList.stream().filter(String -> { + if(StringUtils.isNotBlank(String) && !String.contains("null")){ + return true; + } + return false; + }).collect(Collectors.toList()); + notExBtdList.addAll(exBdtList); + notExBtdList = notExBtdList.stream().distinct().collect(Collectors.toList()); + } + } + String btdStr = notExBtdList.stream().map(String::toString).collect(Collectors.joining(",")); + + // 1.1.1.1.2.3 更新 + UpdateWrapper updateWrapper = new UpdateWrapper(); + updateWrapper.eq("STAND_ID",updInfo.get(0).getId()); + updateWrapper.set("BDTBZH",btdStr); + iSarStandAttrInfoService.update(updateWrapper); + } + } + } + } + } + }); + + } + + } + + @Transactional(rollbackFor = {RuntimeException.class,Exception.class}) + public void dtAndBdtToBussData(){ + QueryWrapper wrapper = new QueryWrapper(); + wrapper.select("sar_bussioness_stand.*, r.DTQBBHBUSS, r.BDTQBBHBUSS"); + wrapper.last("LEFT JOIN sar_buss_stand_attr_info r ON r.STAND_ID = sar_bussioness_stand.ID WHERE sar_bussioness_stand.VALID_FLAG = '0' and sar_bussioness_stand.id in ('021b0c0c9e774ba9a76abbf923d59f5','jdmygltv37qvyb5s87ea')"); + List bussionessStands = iSarBussionessStandService.list(wrapper); + + if(!bussionessStands.isEmpty()){ + + + + // 1. 遍历全部数据 + bussionessStands.forEach(info -> { + // 1.1 判断代替标准号 + if(StringUtils.isNotBlank(info.getDTQBBHBUSS())){ + // 1.1.1 找出当前代替标准版所有被代替标准 + List dtList = Arrays.stream(info.getDTQBBHBUSS().split(",")).map(String::trim).collect(Collectors.toList()); + if(!dtList.isEmpty()){ + for (String s : dtList) { + + if(s.contains("null")){ + continue; + } + List bdtList = bussionessStands.stream().filter(info1 -> { + if(StringUtils.isNotBlank(info1.getDTQBBHBUSS()) && info1.getDTQBBHBUSS().contains(s)){ + return true; + } + return false; + }).collect(Collectors.toList()); + // 1.1.1.1合并被代替标准 + if(!bdtList.isEmpty()){ + // 1.1.1.1.1 获取需要更新的代替标准 + List updInfo = bussionessStands.stream().filter(info1 -> { + if(StringUtils.isNotBlank(info1.getStandCode()) && s.trim().equals(info1.getStandCode().trim())){ + return true; + } + return false; + }).collect(Collectors.toList()); + + + // 1.1.1.1.2 是否存在需要更新的代替标准 + if(!updInfo.isEmpty()){ + // 1.1.1.1.2.1 拼接 被代替标准号 + String btd = bdtList.stream().map(info1 -> { + String addStrandNumber = ""; + if (StringUtils.isNotEmpty(info1.getStandYear())) { + addStrandNumber = info1.getStandSort() + " " + info1.getStandNumber() + "-" + info1.getStandYear(); + } else { + addStrandNumber = info1.getStandSort() + " " + info1.getStandNumber(); + } + return addStrandNumber; + }).collect(Collectors.joining(",")); + System.out.println(btd); + + // 1.1.1.1.2.2 找出已存在的被代替标准 及 去重, 如没找出,则使用最新被代替 + List notExBtdList = Arrays.stream(btd.split(",")).map(String::trim).collect(Collectors.toList()); + if(StringUtils.isNotBlank(updInfo.get(0).getBDTQBBHBUSS())){ + List exBdtList = Arrays.stream(updInfo.get(0).getBDTQBBHBUSS().split(",")).map(String::trim).collect(Collectors.toList()); + if(!exBdtList.isEmpty()){ + exBdtList = exBdtList.stream().filter(String -> { + if(StringUtils.isNotBlank(String) && !String.contains("null")){ + return true; + } + return false; + }).collect(Collectors.toList()); + notExBtdList.addAll(exBdtList); + notExBtdList = notExBtdList.stream().distinct().collect(Collectors.toList()); + } + } + String btdStr = notExBtdList.stream().map(String::toString).collect(Collectors.joining(",")); + + // 1.1.1.1.2.3 更新 + UpdateWrapper updateWrapper = new UpdateWrapper(); + updateWrapper.eq("STAND_ID",updInfo.get(0).getId()); + updateWrapper.set("BDTQBBHBUSS",btdStr); + iSarBussStandAttrInfoService.update(updateWrapper); + } + } + } + } + } + }); + + } + + } @Transactional(rollbackFor = {RuntimeException.class,Exception.class}) public String dataSync(){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/ISarBussionessStandService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/ISarBussionessStandService.java index 1ab4392a..2806da9e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/ISarBussionessStandService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/ISarBussionessStandService.java @@ -20,6 +20,8 @@ import java.util.List; */ public interface ISarBussionessStandService extends IService { + void updateCiteStand(SarBussionessStand sarBussionessStandEO, SarBussionessStand beforeSarStandardsInfo, String upField, String beUpedField); + SarBussionessStand getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId); void attrInfoDetails (SarBussionessStand row) throws Exception; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java index 3aca0cb5..0efa0b7a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java @@ -757,7 +757,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl queryByList(SarBussionessStandEOPage sarBussionessStandEOPage){ + sarBussionessStandEOPage.setValidFlag("0"); return this.baseMapper.queryByList(sarBussionessStandEOPage); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java index f8cdc983..85d0593e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java @@ -19,6 +19,8 @@ import java.util.Map; */ public interface ISarStandardsInfoService extends IService { + void updateCiteStand(SarStandardsInfo sarStandardsInfoEO, SarStandardsInfo beforeSarStandardsInfo, String upField, String beUpedField); + // void reverseQueryStand(List ids, String standName,String type); List getSarStandardsInfoPage(SarStandardsInfoEOPage page) throws Exception; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index 1cbb819b..331cbcc8 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -1538,7 +1538,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl - and stand_code ${standCodeOperator} #{standCode} + and trim(replace(stand_code,' ','')) ${standCodeOperator} trim(replace(#{standCode},' ','')) and id ${idOperator} #{id}