feat: There is no way the, 标准 被代替 补漏。。 详情点击代替、被代替标准效验接口修改

This commit is contained in:
396572590@qq.com
2022-08-10 16:26:36 +08:00
parent 2cd8f5e5fe
commit 43c59e13e5
8 changed files with 232 additions and 3 deletions
@@ -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 {
@@ -2,6 +2,9 @@ package com.adc.da.slrs.DataSync.service;
public interface IDataSyncService {
void dtAndBdtToStandData();
void dtAndBdtToBussData();
public String dataSync();
public String orgDataSync();
@@ -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<SarStandardsInfo> standardsInfos = iSarStandardsInfoService.list(wrapper);
if(!standardsInfos.isEmpty()){
// 1. 遍历全部数据
standardsInfos.forEach(info -> {
// 1.1 判断代替标准号
if(StringUtils.isNotBlank(info.getDtbzh())){
// 1.1.1 找出当前代替标准版所有被代替标准
List<String> 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<SarStandardsInfo> 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<SarStandardsInfo> 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<String> notExBtdList = Arrays.stream(btd.split(",")).map(String::trim).collect(Collectors.toList());
if(StringUtils.isNotBlank(updInfo.get(0).getBDTBZH())){
List<String> 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<SarBussionessStand> bussionessStands = iSarBussionessStandService.list(wrapper);
if(!bussionessStands.isEmpty()){
// 1. 遍历全部数据
bussionessStands.forEach(info -> {
// 1.1 判断代替标准号
if(StringUtils.isNotBlank(info.getDTQBBHBUSS())){
// 1.1.1 找出当前代替标准版所有被代替标准
List<String> 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<SarBussionessStand> 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<SarBussionessStand> 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<String> notExBtdList = Arrays.stream(btd.split(",")).map(String::trim).collect(Collectors.toList());
if(StringUtils.isNotBlank(updInfo.get(0).getBDTQBBHBUSS())){
List<String> 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(){
@@ -20,6 +20,8 @@ import java.util.List;
*/
public interface ISarBussionessStandService extends IService<SarBussionessStand> {
void updateCiteStand(SarBussionessStand sarBussionessStandEO, SarBussionessStand beforeSarStandardsInfo, String upField, String beUpedField);
SarBussionessStand getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId);
void attrInfoDetails (SarBussionessStand row) throws Exception;
@@ -757,7 +757,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
}
// 新增修改标准过程中,根据代替标准号,修改被代替标准号对应的标准
public void updateCiteStand(SarBussionessStand sarBussionessStandEO, SarBussionessStand beforeSarStandardsInfo, String upField, String beUpedField) throws Exception {
public void updateCiteStand(SarBussionessStand sarBussionessStandEO, SarBussionessStand beforeSarStandardsInfo, String upField, String beUpedField){
// 记录要被代替标准号的数据
// SarStandardsInfoEO chageEO= new SarStandardsInfoEO();
SarBussionessStand sarStandardsSelectEO = new SarBussionessStand();
@@ -1734,6 +1734,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
@Override
public List<SarBussionessStand> queryByList(SarBussionessStandEOPage sarBussionessStandEOPage){
sarBussionessStandEOPage.setValidFlag("0");
return this.baseMapper.queryByList(sarBussionessStandEOPage);
}
@@ -19,6 +19,8 @@ import java.util.Map;
*/
public interface ISarStandardsInfoService extends IService<SarStandardsInfo> {
void updateCiteStand(SarStandardsInfo sarStandardsInfoEO, SarStandardsInfo beforeSarStandardsInfo, String upField, String beUpedField);
// void reverseQueryStand(List<String> ids, String standName,String type);
List<SarStandardsInfo> getSarStandardsInfoPage(SarStandardsInfoEOPage page) throws Exception;
@@ -1538,7 +1538,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
}
// 新增修改标准过程中,根据代替标准号,修改被代替标准号对应的标准
public void updateCiteStand(SarStandardsInfo sarStandardsInfoEO, SarStandardsInfo beforeSarStandardsInfo, String upField, String beUpedField) throws Exception {
public void updateCiteStand(SarStandardsInfo sarStandardsInfoEO, SarStandardsInfo beforeSarStandardsInfo, String upField, String beUpedField){
// 记录要被代替标准号的数据
// SarStandardsInfoEO chageEO= new SarStandardsInfoEO();
SarStandardsInfo sarStandardsSelectEO = new SarStandardsInfo();
@@ -141,7 +141,7 @@
and stand_name ${standNameOperator} #{standName}
</if>
<if test="standCode != null" >
and stand_code ${standCodeOperator} #{standCode}
and trim(replace(stand_code,' ','')) ${standCodeOperator} trim(replace(#{standCode},' ',''))
</if>
<if test="id != null" >
and id ${idOperator} #{id}