问题管理

This commit is contained in:
zhn
2023-12-14 16:20:36 +08:00
parent eac1e31c68
commit 0c92219a15
3 changed files with 201 additions and 0 deletions
@@ -3,7 +3,9 @@ package com.jero.modules.project.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.util.PageUtil;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.project.entity.ProblemManagementEO;
import com.jero.modules.project.service.INcrTrackService;
import com.jero.modules.project.vo.NcrTrackVO;
import io.swagger.annotations.Api;
@@ -63,6 +65,26 @@ public class NcrTrackController {
return Result.OK(ncrTrackVO.getCut(),pages);
}
/**
* 法规清单或者认证清单关联问题管理列表
*
* @param serialNumber
* @return
*/
@AutoLog(value = "法规清单或者认证清单关联问题管理列表")
@ApiOperation(value="法规清单或者认证清单关联问题管理列表", notes="法规清单或者认证清单关联问题管理列表")
@GetMapping(value = "/queryPageProblem")
public Result<?> queryPageProblem(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
String serialNumber,
String cut) {
List<ProblemManagementEO> pageInfo = iNcrTrackService.queryPageProblem(serialNumber,cut);
//表头排序
// orderHeader(ncrTrackVO, pageInfo);
Page pages = PageUtil.getPages(pageNo,pageSize,pageInfo);
return Result.OK(cut,pages);
}
private void orderHeader(NcrTrackVO ncrTrackVO, List<NcrTrackVO> pageInfo) {
String orderBy = ncrTrackVO.getOrderBy();
String orderByField = ncrTrackVO.getOrderByField();
@@ -2,6 +2,7 @@ package com.jero.modules.project.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.project.entity.ProblemManagementEO;
import com.jero.modules.project.vo.NcrTrackVO;
import javax.servlet.http.HttpServletRequest;
@@ -17,6 +18,8 @@ public interface INcrTrackService extends IService<NcrTrackVO> {
List<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO);
List<ProblemManagementEO> queryPageProblem(String serialNumber, String cut);
Page getPages(Integer currentPage, Integer pageSize, List<NcrTrackVO> list);
void exportData(HttpServletResponse response,
@@ -388,6 +388,10 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
return trackVOList;
}
}
public List<ProblemManagementEO> queryPageProblem(String serialNumber,String cut) {
List<ProblemManagementEO> problemManagement = getProblemManagement(serialNumber, cut);
return problemManagement;
}
private void heartSort(NcrTrackVO ncrTrackVO, List<NcrTrackVO> trackVOList) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
@@ -779,6 +783,178 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
}
return ncrTrackVOList;
}
private List<ProblemManagementEO> getProblemManagement(String serialNumber,String cut) {
LambdaQueryWrapper<BussDocumentLibraryEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(BussDocumentLibraryEO::getSerialNumber, serialNumber);
List<BussDocumentLibraryEO> bussDocumentLibraryEOS = bussDocumentLibraryEOService.list(queryWrapper);
if(ObjectUtils.isEmpty(bussDocumentLibraryEOS)){
return new ArrayList<>();
}
//wen4_ti2_lei4_xing2 问题类型
List<DictModel> problemTypeList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_TYPE.getCode());
List<DictModel> dictModelListTemp = problemTypeList.stream().filter(e -> "Lessons Learned".equals(e.getText())).collect(Collectors.toList());
if(ObjectUtils.isEmpty(dictModelListTemp)){
return new ArrayList<>();
}
LambdaQueryWrapper<ProblemManagementEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(ProblemManagementEO::getLawsId,bussDocumentLibraryEOS.get(0).getId());
lambdaQueryWrapper.eq(ProblemManagementEO::getProjectType,dictModelListTemp.get(0).getValue());
lambdaQueryWrapper.orderByDesc(ProblemManagementEO::getCreateTime);
List<ProblemManagementEO> managementEOList = problemManagementEOService.list(lambdaQueryWrapper);
//法规
List<String> lawsIdList = managementEOList.stream()
.filter(e->StringUtils.isNotBlank(e.getLawsId())).map(ProblemManagementEO::getLawsId).collect(Collectors.toList());
//项目
List<String> projectIdList = managementEOList.stream()
.filter(e->StringUtils.isNotBlank(e.getProjectId())).map(ProblemManagementEO::getProjectId).collect(Collectors.toList());
//相关文件
List<String> fileList = managementEOList.stream()
.filter(e -> StringUtils.isNotBlank(e.getFile())).map(ProblemManagementEO::getFile).collect(Collectors.toList());
//审批证据
List<String> approvalEvidenceList = managementEOList.stream()
.filter(e -> StringUtils.isNotBlank(e.getApprovalEvidence())).map(ProblemManagementEO::getApprovalEvidence).collect(Collectors.toList());
List<String> connectList = new ArrayList<>();
if(!fileList.isEmpty()){
connectList.addAll(fileList);
}
if(!approvalEvidenceList.isEmpty()){
connectList.addAll(approvalEvidenceList);
}
List<OSSFile> fileInfoList = new ArrayList<>();
if(!connectList.isEmpty()){
fileInfoList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectList,","));
}
List<BussDocumentLibraryEO> documentLibraryEOList = new ArrayList<>();
if(!lawsIdList.isEmpty()){
Set<String> lawIdSet = new HashSet<>();
for (String lawIds : lawsIdList) {
lawIdSet.addAll(Arrays.asList(lawIds.split(",")));
}
if(!lawIdSet.isEmpty()){
LambdaQueryWrapper<BussDocumentLibraryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(BussDocumentLibraryEO::getId, lawIdSet);
documentLibraryEOList = bussDocumentLibraryEOService.list(wrapper);
}
}
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
if(!projectIdList.isEmpty()){
Set<String> projectIdSet = new HashSet<>();
for (String projectIds : projectIdList) {
projectIdSet.addAll(Arrays.asList(projectIds.split(",")));
}
if(!projectIdSet.isEmpty()){
projectLibraryBaseList = problemManagementEOMapper.queryByIds(StringUtils.join(projectIdSet,","));
}
}
List<DictModel> problemPriorityList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_PRIORITY.getCode());
for (ProblemManagementEO problemManagementEO : managementEOList) {
//问题类型
List<DictModel> dictModelList = problemTypeList.stream().filter(e -> e.getValue().equals(problemManagementEO.getProblemType())).collect(Collectors.toList());
List<DictModel> dictModelListPp = problemPriorityList.stream().filter(e -> e.getValue().equals(problemManagementEO.getProblemPriority())).collect(Collectors.toList());
if(!dictModelList.isEmpty()){
if(CutEnum.CN.getValue().equals(cut)){
problemManagementEO.setProblemType_dictText(dictModelList.get(0).getText());
}else{
problemManagementEO.setProblemType_dictText(dictModelList.get(0).getTextEn());
}
}
if(!dictModelListPp.isEmpty()){
if(CutEnum.CN.getValue().equals(cut)){
problemManagementEO.setProblemPriority_dictText(dictModelListPp.get(0).getText());
}else{
problemManagementEO.setProblemPriority_dictText(dictModelListPp.get(0).getTextEn());
}
}
//相关法规
if(StringUtils.isNotBlank(problemManagementEO.getLawsId())){
if(!documentLibraryEOList.isEmpty()){
List<BussDocumentLibraryEO> documentLibraryEOListTemp = documentLibraryEOList.stream()
.filter(e->StringUtils.isNotBlank(problemManagementEO.getLawsId())
&& problemManagementEO.getLawsId().contains(e.getId())).collect(Collectors.toList());
List<String> serialNumberList = documentLibraryEOListTemp.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList());
problemManagementEO.setLawsName(com.jero.modules.system.util.StringUtils.join(serialNumberList,","));
}
}
//相关项目
if(StringUtils.isNotBlank(problemManagementEO.getProjectId())){
List<ProjectLibraryBase> projectLibraryBaseListTemp = projectLibraryBaseList.stream()
.filter(e->StringUtils.isNotBlank(problemManagementEO.getProjectId())
&& problemManagementEO.getProjectId().contains(e.getId())).collect(Collectors.toList());
//目标市场数据字典
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
List<String> projectNameList = new ArrayList<>();
for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseListTemp) {
//目标市场
String targetMarket = problemManagementEOService.getMarket(cut, targetMarketList, projectLibraryBase);
//主项目的版本号
String projectVersion = "";
if(com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId())){
projectVersion = "00";
}else{
projectVersion = projectLibraryBase.getProjectVersion();
}
projectNameList.add(projectLibraryBase.getProjectName()
+ "-" + projectLibraryBase.getYearName()
+ "-" + targetMarket
+"-"+projectVersion);
}
if(!projectNameList.isEmpty()){
problemManagementEO.setProjectName(StringUtils.join(projectNameList,","));
}
}
//相关文件连接
if(StringUtils.isNotBlank(problemManagementEO.getFileLink())){
List<ProblemManagementVO> list = new ArrayList<>();
for (String fileLink : problemManagementEO.getFileLink().split(",")) {
ProblemManagementVO problemManagementVO = new ProblemManagementVO();
problemManagementVO.setFileLink(fileLink);
list.add(problemManagementVO);
}
problemManagementEO.setFileLinkList(list);
}
//审批证据连接
if(StringUtils.isNotBlank(problemManagementEO.getApprovalEvidenceLink())){
List<ProblemManagementVO> list = new ArrayList<>();
for (String approvalEvidenceLink : problemManagementEO.getApprovalEvidenceLink().split(",")) {
ProblemManagementVO problemManagementVO = new ProblemManagementVO();
problemManagementVO.setApprovalEvidenceLink(approvalEvidenceLink);
list.add(problemManagementVO);
}
problemManagementEO.setApprovalEvidenceLinkList(list);
}
//进度追踪
if(StringUtils.isNotBlank(problemManagementEO.getProgressTracking())){
List<ProblemManagementVO> list = new ArrayList<>();
for (String progressTracking : problemManagementEO.getProgressTracking().split(",")) {
ProblemManagementVO problemManagementVO = new ProblemManagementVO();
problemManagementVO.setProgressTracking(progressTracking);
list.add(problemManagementVO);
}
problemManagementEO.setProgressTrackingList(list);
}
//相关文件
if(StringUtils.isNotBlank(problemManagementEO.getFile())){
List<OSSFile> collect = fileInfoList.stream()
.filter(e -> e.getConnectId().equals(problemManagementEO.getFile())).collect(Collectors.toList());
problemManagementEO.setFileList(collect);
}
//审批证据
if(StringUtils.isNotBlank(problemManagementEO.getApprovalEvidence())){
List<OSSFile> collect = fileInfoList.stream()
.filter(e -> e.getConnectId().equals(problemManagementEO.getApprovalEvidence())).collect(Collectors.toList());
problemManagementEO.setApprovalEvidenceFileList(collect);
}
}
return managementEOList;
}
private String getMarket(List<DictModel> targetMarketList, NcrTrackVO trackVO,String cut) {
//目标市场