法规清单关联平台件

This commit is contained in:
zhn
2023-09-19 14:51:06 +08:00
parent 0a3ca20261
commit 889b1c786b
4 changed files with 105 additions and 2 deletions
@@ -62,6 +62,19 @@ public class ProjectLibraryBaseController extends JeroController<ProjectLibraryB
return Result.OK(params.get("cut").toString(),pages);
}
/**
* 法规清单关联平台件
*
* @return
*/
@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);
}
/**
* 列表查询
*
@@ -1,12 +1,10 @@
package com.jero.modules.project.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -538,4 +536,7 @@ public class ProjectLawsInventoryEO implements Serializable {
/**一级责任领域**/
@TableField(exist = false)
private String firstLevelDutyTerritory;
@TableField(exist = false)
private String projectName;//项目名称
}
@@ -85,6 +85,13 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
* @return
*/
List<ProjectLibraryBase> queryPageList(Map<String, Object> params);
/**
* 法规清单关联平台件
* @param params
* @return
*/
List<Map<String,Object>> listPlatform(Map<String, Object> params);
// IPage<ProjectLibraryBase> queryPageList(Map<String, Object> params);
/**
@@ -1261,6 +1261,88 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
hearSort(params, resultLast);
return resultLast;
}
/**
* 法规清单关联平台件
*
* @return
*/
@Override
public List<Map<String,Object>> listPlatform(Map<String,Object> params) {
String cut = (String) params.get("cut");//法规清单id
String ids = (String) params.get("ids");//法规清单id
String projectLibraryIds = (String) params.get("projectLibraryIds");//平台件项目id
//法规清单数据
LambdaQueryWrapper<ProjectLawsInventoryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ProjectLawsInventoryEO::getId,Arrays.asList(ids.split(",")));
List<ProjectLawsInventoryEO> lawsInventoryEOList = projectLawsInventoryEOService.list(wrapper);
//平台件项目对应的法规清单数据
LambdaQueryWrapper<ProjectLawsInventoryEO> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(ProjectLawsInventoryEO::getProjectLibraryId,Arrays.asList(projectLibraryIds.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<>();
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();
//责任领域
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()){
map.put("title",serialNumber+" "+dutyTerritoryNew+"在平台件项目中包含多条匹配内容,请选择关联");
map.put("result",projectLawsInventoryEOS);
mapList.add(map);
}
}
return mapList;
}
private void hearSort(Map<String, Object> params, List<ProjectLibraryBase> resultLast) {
if(ObjectUtils.isNotEmpty(params.get("orderByField"))){