项目库--项目未符合性跟踪

This commit is contained in:
zhn
2022-05-11 18:03:40 +08:00
parent 78978812f3
commit a5c366ccc4
7 changed files with 467 additions and 0 deletions
@@ -0,0 +1,54 @@
package com.jero.modules.project.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.modules.project.service.INcrTrackService;
import com.jero.modules.project.vo.NcrTrackVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* @description
* @date 2022/5/11 9:14
* @auth zhn
*/
@Api(tags="项目未符合项跟踪")
@RestController
@RequestMapping("/project/ncrTrackController")
@Slf4j
public class NcrTrackController {
@Autowired
private INcrTrackService iNcrTrackService;
/**
* 分页列表查询
*
* @param ncrTrackVO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "项目未符合项跟踪-分页列表查询")
@ApiOperation(value="项目未符合项跟踪-分页列表查询", notes="项目未符合项跟踪-分页列表查询")
@GetMapping(value = "/queryPage")
public Result<?> queryPage(NcrTrackVO ncrTrackVO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
Page<NcrTrackVO> page = new Page<NcrTrackVO>(pageNo, pageSize);
IPage<NcrTrackVO> pageList = iNcrTrackService.getPageInfo(ncrTrackVO,pageNo, pageSize);
return Result.OK(pageList);
}
}
@@ -0,0 +1,18 @@
package com.jero.modules.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.project.vo.NcrTrackVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description
* @date 2022/5/11 9:25
* @auth zhn
*/
public interface NcrTrackMapper extends BaseMapper<NcrTrackVO> {
List<NcrTrackVO> getInfoList(@Param("inconformity") String inconformity,
@Param("track") String track);
}
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.project.mapper.NcrTrackMapper">
<resultMap id="NcrTrackVOResultMap" type="com.jero.modules.project.vo.NcrTrackVO">
<id column="serial_number" property="serialNumber" />
<result column="title" property="title" />
<result column="duty_territory" property="dutyTerritory" />
<result column="project_name" property="projectName" />
<result column="target_market" property="targetMarket" />
<result column="design_p_id" property="designPId" />
<result column="prehomo_p_id" property="prehomoPId" />
<result column="verify_p_id" property="verifyPId" />
<result column="design_initiator_id" property="designInitiatorId" />
<result column="prehomo_initiator_id" property="prehomoInitiatorId" />
<result column="verify_initiator_id" property="verifyInitiatorId" />
<result column="design_duty_id" property="designDutyId" />
<result column="prehomo_duty_id" property="prehomoDutyId" />
<result column="verify_duty_id" property="verifyDutyId" />
<result column="design_flow_task_status" property="designFlowTaskStatus" />
<result column="prehomo_flow_task_status" property="prehomoFlowTaskStatus" />
<result column="verify_flow_task_status" property="verifyFlowTaskStatus" />
</resultMap>
<select id="getInfoList" resultMap="NcrTrackVOResultMap">
SELECT
pni.project_name,plb.target_market,
pli.serial_number,pli.title,pli.duty_territory,
pti.design_flow_task_status,pti.prehomo_flow_task_status,pti.verify_flow_task_status,pti.design_p_id,pti.prehomo_p_id,pti.verify_p_id,
pli.design_initiator_id,pli.design_duty_id,pli.prehomo_initiator_id,pli.prehomo_duty_id,pli.verify_initiator_id,pli.verify_duty_id
FROM project_task_inventory pti
left join project_laws_inventory pli on pti.project_laws_inventory_id = pli.id
left join project_library_base plb on plb.id = pli.project_library_id
left join project_name_info pni on pni.id = plb.project_name_id
where
design_flow_task_status =#{inconformity} or design_flow_task_status =#{track}
or prehomo_flow_task_status =#{inconformity} or prehomo_flow_task_status =#{track}
or verify_flow_task_status =#{inconformity} or verify_flow_task_status =#{track}
order by pli.create_time desc
</select>
</mapper>
@@ -0,0 +1,17 @@
package com.jero.modules.project.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.project.vo.NcrTrackVO;
/**
* @description
* @date 2022/5/11 9:24
* @auth zhn
*/
public interface INcrTrackService extends IService<NcrTrackVO> {
IPage<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO,
Integer pageNo,
Integer pageSize);
}
@@ -0,0 +1,226 @@
package com.jero.modules.project.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.CutEnum;
import com.jero.modules.project.enums.ReviewResultEnum;
import com.jero.modules.project.mapper.NcrTrackMapper;
import com.jero.modules.project.service.INcrTrackService;
import com.jero.modules.project.vo.NcrTrackVO;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @description
* @date 2022/5/11 9:24
* @auth zhn
*/
@Service
public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO> implements INcrTrackService {
@Autowired
private NcrTrackMapper ncrTrackMapper;
@Autowired
private ISysUserService sysUserService;
@Override
public IPage<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO, Integer pageNo, Integer pageSize) {
List<SysUser> sysUserList = sysUserService.list();
List<NcrTrackVO> infoList = ncrTrackMapper.getInfoList(ReviewResultEnum.INCONFORMITY.getValue(), ReviewResultEnum.TO_TRACK.getValue());
List<NcrTrackVO> trackVOList = new ArrayList<>();
String designName = "";
String prehomoName = "";
String verifyName = "";
if(CutEnum.CN.getValue().equals(ncrTrackVO.getCut())){
designName = "设计符合性确认";
prehomoName = "PreHomo确认";
verifyName = "验证符合性确认";
}else{
designName = "Confirm design conformance";
prehomoName = "PreHomo confirmation";
verifyName = "Verify conformance validation";
}
for (NcrTrackVO trackVO : infoList) {
//设计符合性确认
String designPId = trackVO.getDesignPId();
//PreHomo确认
String prehomoPId = trackVO.getPrehomoPId();
//验证符合性确认
String verifyPId = trackVO.getVerifyPId();
//设计问题类型
String designFlowTaskStatus = trackVO.getDesignFlowTaskStatus();
String designFlowTaskStatusName = "";
//pre问题类型
String prehomoFlowTaskStatus = trackVO.getPrehomoFlowTaskStatus();
String prehomoFlowTaskStatusName = trackVO.getPrehomoFlowTaskStatus();
//验证问题类型
String verifyFlowTaskStatus = trackVO.getVerifyFlowTaskStatus();
String verifyFlowTaskStatusName = trackVO.getVerifyFlowTaskStatus();
if (StringUtils.isNotBlank(designFlowTaskStatus)) {
designFlowTaskStatusName = cut(ncrTrackVO, designFlowTaskStatus, designFlowTaskStatusName);
}
if (StringUtils.isNotBlank(prehomoFlowTaskStatus)) {
prehomoFlowTaskStatusName = cut(ncrTrackVO, prehomoFlowTaskStatus, prehomoFlowTaskStatusName);
}
if (StringUtils.isNotBlank(verifyFlowTaskStatus)) {
verifyFlowTaskStatusName = cut(ncrTrackVO, verifyFlowTaskStatus, verifyFlowTaskStatusName);
}
//设计符合性确认
if(StringUtils.isNotBlank(designPId)){
NcrTrackVO ncrTrackVOTemp = entityInfo(trackVO.getSerialNumber(),
trackVO.getTitle(),
trackVO.getDesignPId(),
trackVO.getDutyTerritory(),
trackVO.getProjectName(),
designFlowTaskStatusName,
trackVO.getDesignInitiatorId(),
trackVO.getDesignDutyId(),
designName,
sysUserList);
trackVOList.add(ncrTrackVOTemp);
}
//PreHomo确认
if(StringUtils.isNotBlank(prehomoPId)){
NcrTrackVO ncrTrackVOTemp = entityInfo(trackVO.getSerialNumber(),
trackVO.getTitle(),
trackVO.getPrehomoPId(),
trackVO.getDutyTerritory(),
trackVO.getProjectName(),
prehomoFlowTaskStatusName,
trackVO.getPrehomoInitiatorId(),
trackVO.getPrehomoDutyId(),
prehomoName,
sysUserList);
trackVOList.add(ncrTrackVOTemp);
}
//验证符合性确认
if(StringUtils.isNotBlank(verifyPId)){
NcrTrackVO ncrTrackVOTemp = entityInfo(trackVO.getSerialNumber(),
trackVO.getTitle(),
trackVO.getVerifyPId(),
trackVO.getDutyTerritory(),
trackVO.getProjectName(),
verifyFlowTaskStatusName,
trackVO.getVerifyInitiatorId(),
trackVO.getVerifyDutyId(),
verifyName,
sysUserList);
trackVOList.add(ncrTrackVOTemp);
}
}
if(StringUtils.isNotBlank(ncrTrackVO.getFlowType())){
trackVOList = trackVOList.stream().filter(e->ncrTrackVO.getFlowType().equals(e.getFlowType())).collect(Collectors.toList());
}
Page pages = getPages(pageNo, pageSize, trackVOList);
return pages;
}
private String cut(NcrTrackVO trackVO,String designFlowTaskStatus,String flowTaskStatusName) {
if(CutEnum.CN.getValue().equals(trackVO.getCut())){
if(ReviewResultEnum.INCONFORMITY.getValue().equals(designFlowTaskStatus)){
flowTaskStatusName = ReviewResultEnum.INCONFORMITY.getName();
}else if(ReviewResultEnum.TO_TRACK.getValue().equals(designFlowTaskStatus)){
flowTaskStatusName = ReviewResultEnum.TO_TRACK.getName();
}
}else{
if(ReviewResultEnum.INCONFORMITY.getValue().equals(designFlowTaskStatus)){
flowTaskStatusName = ReviewResultEnum.INCONFORMITY.getValue();
}else if(ReviewResultEnum.TO_TRACK.getValue().equals(designFlowTaskStatus)){
flowTaskStatusName = ReviewResultEnum.TO_TRACK.getValue();
}
}
return flowTaskStatusName;
}
private Page getPages(Integer currentPage, Integer pageSize, List<NcrTrackVO> list){
Page page =new Page();
if(list==null){
return null;
}
int size = list.size();
if(pageSize > size){
pageSize = size;
}
if(pageSize!=0){
//求出最⼤页数,防⽌currentPage越界
int maxPage = size % pageSize ==0? size / pageSize : size / pageSize +1;
if(currentPage > maxPage){
currentPage = maxPage;
}
}
//当前页第⼀条数据的下标
int curIdx = currentPage >1?(currentPage -1)* pageSize :0;
List pageList =new ArrayList();
//将当前页的数据放进pageList
for(int i =0; i < pageSize && curIdx + i < size; i++){
pageList.add(list.get(curIdx + i));
}
page.setCurrent(currentPage).setSize(pageSize).setTotal(list.size()).setRecords(pageList);
return page;
}
private NcrTrackVO entityInfo(String serialNumber,
String title,
String flowType,
String dutyTerritory,
String projectName,
String problemType,
String initiator,
String duty,
String name,
List<SysUser> sysUserList){
String initiatorTemp ="";
String dutyTemp ="";
if(StringUtils.isNotBlank(initiator)){
List<SysUser> collect = sysUserList.stream().filter(e -> initiator.equals(e.getId())).collect(Collectors.toList());
if(collect.size() != 0){
initiatorTemp = collect.get(0).getUsername();
}
}
if(StringUtils.isNotBlank(duty)){
List<SysUser> collect = sysUserList.stream().filter(e -> duty.equals(e.getId())).collect(Collectors.toList());
if(collect.size() != 0){
dutyTemp = collect.get(0).getUsername();
}
}
NcrTrackVO ncrTrackVO = new NcrTrackVO();
ncrTrackVO.setSerialNumber(serialNumber);//编号
ncrTrackVO.setTitle(title);//标题
if(StringUtils.isNotBlank(flowType)){
ncrTrackVO.setFlowType(name);//流程类型
}
ncrTrackVO.setDutyTerritory(dutyTerritory);//责任领域
ncrTrackVO.setProjectName(projectName);//相关项目
ncrTrackVO.setProblemType(problemType);//问题类型
ncrTrackVO.setInitiator(initiatorTemp);//发起人
ncrTrackVO.setDuty(dutyTemp);//责任人
return ncrTrackVO;
}
}
@@ -2142,6 +2142,16 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
} else {
if (dataList.size() != 0) {
this.saveBatch(dataList);
//项目任务清单数据初始化。
List<ProjectTaskInventoryEO> projectTaskInventoryEOList = new ArrayList<>();
for (ProjectLawsInventoryEO projectLawsInventoryEO : dataList) {
ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO();
String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", "");
projectTaskInventoryEO.setId(projectTaskInventoryId);
projectTaskInventoryEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId());
projectTaskInventoryEOList.add(projectTaskInventoryEO);
}
this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOList);
}
}
}
@@ -0,0 +1,96 @@
package com.jero.modules.project.vo;
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;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: 法规清单评论表
* @Author: jero-boot
* @Date: 2022-04-29
* @Version: V1.0
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class NcrTrackVO implements Serializable {
//中英文切换
private String cut;
//编号
private String serialNumber;
//标题
private String title;
//流程类型
private String flowType;
//责任领域 duty_territory
@Dict(dicCode ="duty_territory")
private String dutyTerritory;
//相关项目
private String projectName;
//目标市场
private String targetMarket;
//问题类型
private String problemType;
//发起人
private String initiator;
//责任人
private String duty;
//设计符合性确认 design_p_id
private String designPId;
//PreHomo确认 prehomo_p_id
private String prehomoPId;
//验证符合性确认 verify_p_id
private String verifyPId;
//设计发起人 design_initiator_id
private String designInitiatorId;
//pre发起人 prehomo_initiator_id
private String prehomoInitiatorId;
//验证发起人 verify_initiator_id
private String verifyInitiatorId;
//设计责任人 design_duty_id
private String designDutyId;
//pre责任人 prehomo_duty_id
private String prehomoDutyId;
//验证责任人 verify_duty_id
private String verifyDutyId;
//设计问题类型 design_flow_task_status
private String designFlowTaskStatus;
//pre问题类型 prehomo_flow_task_status
private String prehomoFlowTaskStatus;
//验证问题类型 verify_flow_task_status
private String verifyFlowTaskStatus;
}