feat: 外标授权部门刷数据接口
This commit is contained in:
+17
@@ -200,4 +200,21 @@ public class OldSystemController {
|
||||
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);
|
||||
|
||||
String esAuthDeptDataFix();
|
||||
|
||||
String fbAuthDeptDataFix();
|
||||
}
|
||||
|
||||
+6
@@ -119,4 +119,10 @@ public interface OldSystemService {
|
||||
* @param 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.service.OldSystemDepartRelationService;
|
||||
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.ILawsOverseasStandardService;
|
||||
import com.jero.modules.system.entity.SysDepart;
|
||||
import com.jero.modules.system.service.ISysDepartService;
|
||||
import lombok.Cleanup;
|
||||
@@ -79,6 +81,9 @@ public class OldSystemDepartRelationServiceImpl extends ServiceImpl<OldSystemDep
|
||||
@Resource
|
||||
private EnterpriseStandardAuthDeptMapper esAdMapper;
|
||||
|
||||
@Resource
|
||||
private ILawsOverseasStandardService fbService;
|
||||
|
||||
@Override
|
||||
public void importDepartRelationData(MultipartFile file, HttpServletResponse response) {
|
||||
List<OldSystemDepartRelation> errImportList = new ArrayList<>();
|
||||
@@ -255,6 +260,71 @@ public class OldSystemDepartRelationServiceImpl extends ServiceImpl<OldSystemDep
|
||||
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
|
||||
private List<String> queryChildDeptIdList(String parentId, List<SysDepartTreeModel> departListTree) {
|
||||
List<String> childDeptIdList = new ArrayList<>();
|
||||
|
||||
+32
@@ -71,6 +71,9 @@ import java.util.stream.Collectors;
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public class OldSystemServiceImpl implements OldSystemService {
|
||||
|
||||
@Resource
|
||||
private ILawsTreeNodeService lawsTreeNodeService;
|
||||
|
||||
@Resource
|
||||
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) {
|
||||
List<OldSystemImportDTO> fbDatalist = allDatalist.stream().filter(o -> o.getBzfl().contains("ISO") ||
|
||||
o.getBzfl().contains("引进") ||
|
||||
|
||||
Reference in New Issue
Block a user