问题管理
This commit is contained in:
+22
@@ -3,7 +3,9 @@ package com.jero.modules.project.controller;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.aspect.annotation.AutoLog;
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
|
import com.jero.common.util.PageUtil;
|
||||||
import com.jero.modules.dummy.enums.OrderEnum;
|
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.service.INcrTrackService;
|
||||||
import com.jero.modules.project.vo.NcrTrackVO;
|
import com.jero.modules.project.vo.NcrTrackVO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -63,6 +65,26 @@ public class NcrTrackController {
|
|||||||
return Result.OK(ncrTrackVO.getCut(),pages);
|
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) {
|
private void orderHeader(NcrTrackVO ncrTrackVO, List<NcrTrackVO> pageInfo) {
|
||||||
String orderBy = ncrTrackVO.getOrderBy();
|
String orderBy = ncrTrackVO.getOrderBy();
|
||||||
String orderByField = ncrTrackVO.getOrderByField();
|
String orderByField = ncrTrackVO.getOrderByField();
|
||||||
|
|||||||
+3
@@ -2,6 +2,7 @@ package com.jero.modules.project.service;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.jero.modules.project.entity.ProblemManagementEO;
|
||||||
import com.jero.modules.project.vo.NcrTrackVO;
|
import com.jero.modules.project.vo.NcrTrackVO;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@@ -17,6 +18,8 @@ public interface INcrTrackService extends IService<NcrTrackVO> {
|
|||||||
|
|
||||||
List<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO);
|
List<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO);
|
||||||
|
|
||||||
|
List<ProblemManagementEO> queryPageProblem(String serialNumber, String cut);
|
||||||
|
|
||||||
Page getPages(Integer currentPage, Integer pageSize, List<NcrTrackVO> list);
|
Page getPages(Integer currentPage, Integer pageSize, List<NcrTrackVO> list);
|
||||||
|
|
||||||
void exportData(HttpServletResponse response,
|
void exportData(HttpServletResponse response,
|
||||||
|
|||||||
+176
@@ -388,6 +388,10 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
|||||||
return trackVOList;
|
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) {
|
private void heartSort(NcrTrackVO ncrTrackVO, List<NcrTrackVO> trackVOList) {
|
||||||
Collator comparator = Collator.getInstance(Locale.CHINESE);
|
Collator comparator = Collator.getInstance(Locale.CHINESE);
|
||||||
@@ -779,6 +783,178 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
|||||||
}
|
}
|
||||||
return ncrTrackVOList;
|
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) {
|
private String getMarket(List<DictModel> targetMarketList, NcrTrackVO trackVO,String cut) {
|
||||||
//目标市场
|
//目标市场
|
||||||
|
|||||||
Reference in New Issue
Block a user