不勾选法规清单进行关联平台件

This commit is contained in:
zhn
2023-09-20 16:45:00 +08:00
parent c68e0d946d
commit 46fc2db7a5
3 changed files with 135 additions and 5 deletions
@@ -63,17 +63,29 @@ public class ProjectLibraryBaseController extends JeroController<ProjectLibraryB
}
/**
* 法规清单关联平台件
* 勾选法规清单进行关联平台件
*
* @return
*/
@AutoLog(value = "法规清单关联平台件")
@ApiOperation(value="法规清单关联平台件", notes="法规清单关联平台件")
@AutoLog(value = "勾选法规清单进行关联平台件")
@ApiOperation(value="勾选法规清单进行关联平台件", notes="勾选法规清单进行关联平台件")
@PostMapping(value = "/listPlatform")
public Result<?> listPlatform(@RequestBody Map<String,Object> params) {
List<Map<String, Object>> mapList = projectLibraryBaseService.listPlatform(params);
return Result.OK(params.get("cut").toString(),mapList);
}
/**
* 不勾选法规清单进行关联平台件
*
* @return
*/
@AutoLog(value = "不勾选法规清单进行关联平台件")
@ApiOperation(value="不勾选法规清单进行关联平台件", notes="不勾选法规清单进行关联平台件")
@PostMapping(value = "/listPlatformAll")
public Result<?> listPlatformAll(@RequestBody Map<String,Object> params) {
List<Map<String, Object>> mapList = projectLibraryBaseService.listPlatformAll(params);
return Result.OK(params.get("cut").toString(),mapList);
}
/**
* 列表查询
@@ -87,11 +87,18 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
List<ProjectLibraryBase> queryPageList(Map<String, Object> params);
/**
* 法规清单关联平台件
* 勾选法规清单进行关联平台件
* @param params
* @return
*/
List<Map<String,Object>> listPlatform(Map<String, Object> params);
/**
* 不勾选法规清单进行关联平台件
* @param params
* @return
*/
List<Map<String,Object>> listPlatformAll(Map<String, Object> params);
// IPage<ProjectLibraryBase> queryPageList(Map<String, Object> params);
/**
@@ -1265,7 +1265,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
return resultLast;
}
/**
* 法规清单关联平台件
* 勾选法规清单进行关联平台件
*
* @return
*/
@@ -1340,6 +1340,117 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
if(!projectLawsInventoryEOS.isEmpty() && projectLawsInventoryEOS.size() > 1){
map.put("lawsInventoryId",projectLawsInventoryEO.getId());
map.put("title",serialNumber+" "+dutyTerritoryNew+" "+subtitle+"在平台件项目中包含多条匹配内容,请选择关联");
map.put("result",projectLawsInventoryEOS);
mapList.add(map);
}else if(!projectLawsInventoryEOS.isEmpty() && projectLawsInventoryEOS.size() == 1){
Map<String,Object> mapTemp = new HashMap<>();
mapTemp.put("lawsInventoryId",projectLawsInventoryEO.getId());
mapTemp.put("result",projectLawsInventoryEOS);
mapListOne.add(mapTemp);
}
}
if(!mapListOne.isEmpty()){
//匹配一条平台件时直接新增
List<LawsInventoryPlatformEO> lawsInventoryPlatformEOS = new ArrayList<>();
for (Map<String, Object> map : mapListOne) {
LawsInventoryPlatformEO inventoryPlatformEO = new LawsInventoryPlatformEO();
inventoryPlatformEO.setCreateTime(new Date());
inventoryPlatformEO.setUpdateTime(new Date());
inventoryPlatformEO.setLawsInventoryId((String) map.get("lawsInventoryId"));
List<ProjectLawsInventoryEO> projectLawsInventoryEOS = (List<ProjectLawsInventoryEO>) map.get("result");
inventoryPlatformEO.setPlatformLawsInventoryId(projectLawsInventoryEOS.get(0).getId());
lawsInventoryPlatformEOS.add(inventoryPlatformEO);
}
if (!lawsInventoryPlatformEOS.isEmpty()) {
lawsInventoryPlatformEOService.saveBatch(lawsInventoryPlatformEOS);
}
}
return mapList;
}
/**
* 不勾选法规清单进行关联平台件
*
* @return
*/
@Override
public List<Map<String,Object>> listPlatformAll(Map<String,Object> params) {
String cut = (String) params.get("cut");//
String projectLibraryIds = (String) params.get("projectLibraryIds");//法规清单id
String platformProjectLibraryIds = (String) params.get("platformProjectLibraryIds");//平台件法规id
//法规清单数据
LambdaQueryWrapper<ProjectLawsInventoryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ProjectLawsInventoryEO::getId,Arrays.asList(projectLibraryIds.split(",")));
List<ProjectLawsInventoryEO> lawsInventoryEOList = projectLawsInventoryEOService.list(wrapper);
//只有法规的设计符合性确认和验证符合性确认中的流程状态均为清单待发布的时候,才能关联平台件数据
lawsInventoryEOList = lawsInventoryEOList.stream()
.filter(e->ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue().equals(e.getDesignFlowStatus())
&& ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue().equals(e.getVerifyFlowStatus())).collect(Collectors.toList());
//平台件项目对应的法规清单数据
LambdaQueryWrapper<ProjectLawsInventoryEO> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(ProjectLawsInventoryEO::getId,Arrays.asList(platformProjectLibraryIds.split(",")));
List<ProjectLawsInventoryEO> lawsInventoryEOS = projectLawsInventoryEOService.list(wrapper1);
//平台件项目信息
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
if(!lawsInventoryEOList.isEmpty()){
List<String> projectIdList = lawsInventoryEOS.stream().map(ProjectLawsInventoryEO::getProjectLibraryId).distinct().collect(Collectors.toList());
LambdaQueryWrapper<ProjectLibraryBase> wrapper2 = new LambdaQueryWrapper<>();
wrapper2.in(ProjectLibraryBase::getId,projectIdList);
projectLibraryBaseList = this.list(wrapper2);
}
//普通数据字典
List<SysDictItem> sysDictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
List<Map<String,Object>> mapList = new ArrayList<>();
List<Map<String,Object>> mapListOne = new ArrayList<>();
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = new ArrayList<>();
for (ProjectLawsInventoryEO projectLawsInventoryEO : lawsInventoryEOList) {
Map<String,Object> map = new HashMap<>();
List<ProjectLawsInventoryEO> projectLawsInventoryEOS = new ArrayList<>();
//serialNumber dutyTerritory
String serialNumber = projectLawsInventoryEO.getSerialNumber();
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
String subtitle = projectLawsInventoryEO.getSubtitle();
//责任领域
List<String> list = new LinkedList<>();
if(StringUtils.isNotBlank(dutyTerritory)){
for (String s : dutyTerritory.split(",")) {
List<SysDictItem> collect = sysDictItemList.stream().filter(e -> e.getItemValue().equals(s)).collect(Collectors.toList());
if(CutEnum.CN.getValue().equals(cut) && !collect.isEmpty()){
list.add(collect.get(0).getItemText());
}else if(CutEnum.EN.getValue().equals(cut) && !collect.isEmpty()){
list.add(collect.get(0).getEnName());
}
}
}
String dutyTerritoryNew = "";
if(!list.isEmpty()){
dutyTerritoryNew = StringUtils.join(list, ",");
}
for (ProjectLawsInventoryEO lawsInventoryEO : lawsInventoryEOS) {
String serialNumberTemp = lawsInventoryEO.getSerialNumber();
String dutyTerritoryTemp = lawsInventoryEO.getDutyTerritory();
if(serialNumber.equals(serialNumberTemp) && StringUtils.isNotBlank(dutyTerritory) && dutyTerritory.equals(dutyTerritoryTemp)){
List<ProjectLibraryBase> projectLibraryBases = projectLibraryBaseList.stream().filter(e -> e.getId().equals(lawsInventoryEO.getProjectLibraryId())).collect(Collectors.toList());
if(!projectLibraryBases.isEmpty()){
lawsInventoryEO.setProjectName(projectLibraryBases.get(0).getProjectNameId());
}
if(!list.isEmpty()){
lawsInventoryEO.setDutyTerritory_dictText(dutyTerritoryNew);
}
projectLawsInventoryEOS.add(lawsInventoryEO);
}
}
if(!projectLawsInventoryEOS.isEmpty() && projectLawsInventoryEOS.size() > 1){
map.put("lawsInventoryId",projectLawsInventoryEO.getId());
map.put("title",serialNumber+" "+dutyTerritoryNew+" "+subtitle+"在平台件项目中包含多条匹配内容,请选择关联");