feat: 外标授权部门刷数据接口
This commit is contained in:
+17
@@ -200,4 +200,21 @@ public class OldSystemController {
|
|||||||
oldSystemService.dataFileFix(response);
|
oldSystemService.dataFileFix(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/fbDataFix")
|
||||||
|
@AutoLog(value = "老法规系统-海外标准数据修复")
|
||||||
|
@ApiOperation(value="老法规系统-海外标准数据修复", notes="老法规系统-海外标准数据修复")
|
||||||
|
@ApiOperationSupport(order = 16)
|
||||||
|
public void fbDataFix(HttpServletResponse response) {
|
||||||
|
oldSystemService.fbDataFix(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/fbAuthDeptDataFix")
|
||||||
|
@AutoLog(value = "老法规系统-外标授权部门数据修复")
|
||||||
|
@ApiOperation(value="老法规系统-外标授权部门数据修复", notes="老法规系统-外标授权部门数据修复")
|
||||||
|
@ApiOperationSupport(order = 100)
|
||||||
|
public Result<?> fbAuthDeptDataFix() {
|
||||||
|
return Result.OK(oldSystemDeptRelationService.fbAuthDeptDataFix());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -23,4 +23,6 @@ public interface OldSystemDepartRelationService extends IService<OldSystemDepart
|
|||||||
void importDepartRelationData(MultipartFile file, HttpServletResponse response);
|
void importDepartRelationData(MultipartFile file, HttpServletResponse response);
|
||||||
|
|
||||||
String esAuthDeptDataFix();
|
String esAuthDeptDataFix();
|
||||||
|
|
||||||
|
String fbAuthDeptDataFix();
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -119,4 +119,10 @@ public interface OldSystemService {
|
|||||||
* @param response
|
* @param response
|
||||||
*/
|
*/
|
||||||
void dataFileFix(HttpServletResponse response);
|
void dataFileFix(HttpServletResponse response);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 海外标准数据修复
|
||||||
|
* @param response
|
||||||
|
*/
|
||||||
|
void fbDataFix(HttpServletResponse response);
|
||||||
}
|
}
|
||||||
|
|||||||
+70
@@ -19,7 +19,9 @@ import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptServic
|
|||||||
import com.jero.modules.laws.oldSystem.entity.OldSystemDepartRelation;
|
import com.jero.modules.laws.oldSystem.entity.OldSystemDepartRelation;
|
||||||
import com.jero.modules.laws.oldSystem.service.OldSystemDepartRelationService;
|
import com.jero.modules.laws.oldSystem.service.OldSystemDepartRelationService;
|
||||||
import com.jero.modules.laws.oldSystem.mapper.OldSystemDepartRelationMapper;
|
import com.jero.modules.laws.oldSystem.mapper.OldSystemDepartRelationMapper;
|
||||||
|
import com.jero.modules.laws.standard.entity.LawsOverseasStandard;
|
||||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||||
|
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
|
||||||
import com.jero.modules.system.entity.SysDepart;
|
import com.jero.modules.system.entity.SysDepart;
|
||||||
import com.jero.modules.system.service.ISysDepartService;
|
import com.jero.modules.system.service.ISysDepartService;
|
||||||
import lombok.Cleanup;
|
import lombok.Cleanup;
|
||||||
@@ -79,6 +81,9 @@ public class OldSystemDepartRelationServiceImpl extends ServiceImpl<OldSystemDep
|
|||||||
@Resource
|
@Resource
|
||||||
private EnterpriseStandardAuthDeptMapper esAdMapper;
|
private EnterpriseStandardAuthDeptMapper esAdMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ILawsOverseasStandardService fbService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void importDepartRelationData(MultipartFile file, HttpServletResponse response) {
|
public void importDepartRelationData(MultipartFile file, HttpServletResponse response) {
|
||||||
List<OldSystemDepartRelation> errImportList = new ArrayList<>();
|
List<OldSystemDepartRelation> errImportList = new ArrayList<>();
|
||||||
@@ -255,6 +260,71 @@ public class OldSystemDepartRelationServiceImpl extends ServiceImpl<OldSystemDep
|
|||||||
return "修复完成,共修复数据" + distinctData.size() + "条";
|
return "修复完成,共修复数据" + distinctData.size() + "条";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String fbAuthDeptDataFix() {
|
||||||
|
List<EnterpriseStandardAuthDept> needSaveAllData = new ArrayList<>();
|
||||||
|
// 获取所有没有被删除的部门
|
||||||
|
LambdaQueryWrapper<SysDepart> departWrapper = new LambdaQueryWrapper<>();
|
||||||
|
departWrapper.eq(SysDepart::getDelFlag, YesOrNoEnum.NO.getValue());
|
||||||
|
List<SysDepartTreeModel> departListTree = departService.queryTreeList();
|
||||||
|
// 找到所有外标
|
||||||
|
List<LawsOverseasStandard> fbList = fbService.list();
|
||||||
|
List<String> allFbIdList = fbList.stream().map(LawsOverseasStandard::getId).collect(Collectors.toList());
|
||||||
|
// 找到所有已有授权部门权限
|
||||||
|
LambdaQueryWrapper<EnterpriseStandardAuthDept> esAdWrapper = new LambdaQueryWrapper<>();
|
||||||
|
esAdWrapper.in(!allFbIdList.isEmpty(), EnterpriseStandardAuthDept::getStandardId, allFbIdList);
|
||||||
|
esAdWrapper.isNull(EnterpriseStandardAuthDept::getAuthExpireDate);
|
||||||
|
List<EnterpriseStandardAuthDept> adList = esAdService.list(esAdWrapper);
|
||||||
|
Map<String, List<EnterpriseStandardAuthDept>> esAdMap = adList.stream()
|
||||||
|
.collect(Collectors.groupingBy(EnterpriseStandardAuthDept::getStandardId));
|
||||||
|
List<String> fbIdList = adList.stream()
|
||||||
|
.map(EnterpriseStandardAuthDept::getStandardId).distinct().collect(Collectors.toList());
|
||||||
|
// 找到所有授权部门不为空的企标
|
||||||
|
List<LawsOverseasStandard> lawsOverseasStandards = fbService.listByIds(fbIdList);
|
||||||
|
// 遍历企标数据的现有授权部门
|
||||||
|
for (LawsOverseasStandard fb : lawsOverseasStandards) {
|
||||||
|
String curStandardId = fb.getId();
|
||||||
|
Set<String> authDeptIdList = esAdMap.get(fb.getId()).stream()
|
||||||
|
.map(EnterpriseStandardAuthDept::getAuthDept)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
// 创建一个部门Id Set 根据现有授权部门的部门Id找到所有子部门Id
|
||||||
|
Set<String> childDeptIdSet = new HashSet<>();
|
||||||
|
// 根据现有授权部门的部门Id找到所有子部门Id
|
||||||
|
for (String authDeptId : authDeptIdList) {
|
||||||
|
List<String> childDeptIdList = this.queryChildDeptIdList(authDeptId, departListTree);
|
||||||
|
if (childDeptIdList.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
childDeptIdSet.addAll(childDeptIdList);
|
||||||
|
}
|
||||||
|
// 根据authDeptIdList去重
|
||||||
|
childDeptIdSet.removeAll(authDeptIdList);
|
||||||
|
// 构造需要保存的数据
|
||||||
|
for (String childDeptId : childDeptIdSet) {
|
||||||
|
EnterpriseStandardAuthDept esAd = new EnterpriseStandardAuthDept();
|
||||||
|
esAd.setId(IdWorker.getIdStr());
|
||||||
|
esAd.setStandardId(curStandardId);
|
||||||
|
esAd.setAuthDept(childDeptId);
|
||||||
|
needSaveAllData.add(esAd);
|
||||||
|
}
|
||||||
|
if (childDeptIdSet.isEmpty()) {
|
||||||
|
log.info("外标编号为{}的企标没有需要修复的数据", fb.getStandardNumber());
|
||||||
|
} else {
|
||||||
|
log.info("外标编号为{}的企标需要修复的数据条数为:{}", fb.getStandardNumber(), childDeptIdSet.size());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (needSaveAllData.isEmpty()) {
|
||||||
|
return "没有需要修复的数据";
|
||||||
|
}
|
||||||
|
// 根据standardId和authDept去重
|
||||||
|
List<EnterpriseStandardAuthDept> distinctData = needSaveAllData.stream()
|
||||||
|
.collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
|
||||||
|
new TreeSet<>(Comparator.comparing(o -> o.getStandardId() + ";" + o.getAuthDept()))), ArrayList::new));
|
||||||
|
log.info("需要保存的数据条数为:{}", distinctData.size());
|
||||||
|
esAdService.batchInsertWithTransaction(needSaveAllData, 5000);
|
||||||
|
return "修复完成,共修复数据" + distinctData.size() + "条";
|
||||||
|
}
|
||||||
|
|
||||||
// 递归查询所有子部门Id
|
// 递归查询所有子部门Id
|
||||||
private List<String> queryChildDeptIdList(String parentId, List<SysDepartTreeModel> departListTree) {
|
private List<String> queryChildDeptIdList(String parentId, List<SysDepartTreeModel> departListTree) {
|
||||||
List<String> childDeptIdList = new ArrayList<>();
|
List<String> childDeptIdList = new ArrayList<>();
|
||||||
|
|||||||
+32
@@ -71,6 +71,9 @@ import java.util.stream.Collectors;
|
|||||||
@Transactional(rollbackFor = JeroBootException.class)
|
@Transactional(rollbackFor = JeroBootException.class)
|
||||||
public class OldSystemServiceImpl implements OldSystemService {
|
public class OldSystemServiceImpl implements OldSystemService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ILawsTreeNodeService lawsTreeNodeService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private LawsEnterpriseStandardMapper esMapper;
|
private LawsEnterpriseStandardMapper esMapper;
|
||||||
|
|
||||||
@@ -449,6 +452,35 @@ public class OldSystemServiceImpl implements OldSystemService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fbDataFix(HttpServletResponse response) {
|
||||||
|
LambdaQueryWrapper<LawsTreeNode> treeNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
treeNodeLambdaQueryWrapper.eq(LawsTreeNode::getNodeName, "引进标准");
|
||||||
|
treeNodeLambdaQueryWrapper.eq(LawsTreeNode::getModuleCode, TableNameEnum.FOREIGN_REGULATIONS.getValue());
|
||||||
|
LawsTreeNode node = lawsTreeNodeService.getOne(treeNodeLambdaQueryWrapper);
|
||||||
|
// 获取引进标准的id
|
||||||
|
LambdaQueryWrapper<LawsNodeRelation> nodeRelationLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
nodeRelationLambdaQueryWrapper.eq(LawsNodeRelation::getNodeId, node.getId());
|
||||||
|
List<LawsNodeRelation> fbList = lawsNodeRelationService.list(nodeRelationLambdaQueryWrapper);
|
||||||
|
List<String> fbIdList = fbList.stream().map(LawsNodeRelation::getUniqueRelationFlag).collect(Collectors.toList());
|
||||||
|
// 给外标添加汽车研究总院的权限
|
||||||
|
LambdaQueryWrapper<SysDepart> departLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
departLambdaQueryWrapper.eq(SysDepart::getDepartName, "汽车研究总院");
|
||||||
|
SysDepart depart = departService.getOne(departLambdaQueryWrapper);
|
||||||
|
List<EnterpriseStandardAuthDept> esAdList = new ArrayList<>();
|
||||||
|
for (String fbId : fbIdList) {
|
||||||
|
EnterpriseStandardAuthDept ad = new EnterpriseStandardAuthDept();
|
||||||
|
ad.setAuthDept(depart.getId());
|
||||||
|
ad.setStandardId(fbId);
|
||||||
|
esAdList.add(ad);
|
||||||
|
log.info("新增海外标准id为{}的权限", fbId);
|
||||||
|
}
|
||||||
|
if (!esAdList.isEmpty()) {
|
||||||
|
log.info("共新增{}条权限数据", esAdList.size());
|
||||||
|
esAuthDeptService.saveBatch(esAdList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void oldSysFBDataFileDocPath(List<OldSystemImportDTO> allDatalist, List<OldSystemImportDTO> errImportList) {
|
private void oldSysFBDataFileDocPath(List<OldSystemImportDTO> allDatalist, List<OldSystemImportDTO> errImportList) {
|
||||||
List<OldSystemImportDTO> fbDatalist = allDatalist.stream().filter(o -> o.getBzfl().contains("ISO") ||
|
List<OldSystemImportDTO> fbDatalist = allDatalist.stream().filter(o -> o.getBzfl().contains("ISO") ||
|
||||||
o.getBzfl().contains("引进") ||
|
o.getBzfl().contains("引进") ||
|
||||||
|
|||||||
Reference in New Issue
Block a user