项目库--项目未符合性跟踪
This commit is contained in:
+54
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+18
@@ -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);
|
||||
}
|
||||
+46
@@ -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>
|
||||
+17
@@ -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);
|
||||
}
|
||||
+226
@@ -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;
|
||||
}
|
||||
}
|
||||
+10
@@ -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;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user