diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java new file mode 100644 index 000000000..b4d3c618b --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/NcrTrackController.java @@ -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 page = new Page(pageNo, pageSize); + IPage pageList = iNcrTrackService.getPageInfo(ncrTrackVO,pageNo, pageSize); + return Result.OK(pageList); + } + + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java new file mode 100644 index 000000000..8e445b470 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/NcrTrackMapper.java @@ -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 { + + List getInfoList(@Param("inconformity") String inconformity, + @Param("track") String track); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml new file mode 100644 index 000000000..fdb5b4495 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java new file mode 100644 index 000000000..075637c98 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/INcrTrackService.java @@ -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 { + + IPage getPageInfo(NcrTrackVO ncrTrackVO, + Integer pageNo, + Integer pageSize); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java new file mode 100644 index 000000000..6dcc4dc68 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/NcrTrackServiceImpl.java @@ -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 implements INcrTrackService { + + @Autowired + private NcrTrackMapper ncrTrackMapper; + @Autowired + private ISysUserService sysUserService; + + @Override + public IPage getPageInfo(NcrTrackVO ncrTrackVO, Integer pageNo, Integer pageSize) { + List sysUserList = sysUserService.list(); + List infoList = ncrTrackMapper.getInfoList(ReviewResultEnum.INCONFORMITY.getValue(), ReviewResultEnum.TO_TRACK.getValue()); + List 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 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 sysUserList){ + String initiatorTemp =""; + String dutyTemp =""; + if(StringUtils.isNotBlank(initiator)){ + List 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 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; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index c75738012..4564d0cda 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -2142,6 +2142,16 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl 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); } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java new file mode 100644 index 000000000..bcd72ce1e --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/NcrTrackVO.java @@ -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; + + + + + + +}