From ae6fd06555845067b72a0b094126c858275a5bd9 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 29 十一月 2024 06:54:04 +0800 Subject: [PATCH] 项目分类查询、异常项目 --- business/src/main/resources/mapper/ProjectInfoMapper.xml | 14 ++++-- business/src/main/java/com/ycl/domain/entity/ProjectInfo.java | 6 +- business/src/main/java/com/ycl/controller/ProjectInfoController.java | 1 business/src/main/java/com/ycl/domain/vo/ProjectVO.java | 2 + business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java | 23 +++++++++++ common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java | 51 +++++++++++++++++++++++++ business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java | 2 business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java | 2 + 8 files changed, 92 insertions(+), 9 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/ProjectInfoController.java b/business/src/main/java/com/ycl/controller/ProjectInfoController.java index f66bcc0..768ed26 100644 --- a/business/src/main/java/com/ycl/controller/ProjectInfoController.java +++ b/business/src/main/java/com/ycl/controller/ProjectInfoController.java @@ -120,4 +120,5 @@ ) throws IOException { OutputExcelUtils.export(response, "瀵煎叆妯℃澘", "椤圭洰淇℃伅", null, ProjectExcelTemplate.class ,fieldList); } + } diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java b/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java index d5eec5c..2029fa3 100644 --- a/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java +++ b/business/src/main/java/com/ycl/domain/entity/ProjectInfo.java @@ -49,9 +49,9 @@ /** 鎶曡祫绫诲埆锛�0浼佷笟鎶曡祫锛�1鏀垮簻鎶曡祫锛�2澶栧晢鎶曡祫锛�3澧冨鎶曡祫锛� */ private String investType; - @TableField("project_phase") - /** 椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵) */ - private String projectPhase; +// @TableField("project_phase") +// /** 椤圭洰闃舵(0鍌ㄥ瑙勫垝闃舵, 1椤圭洰鍓嶆湡闃舵, 2瀹炴柦闃舵, 3绔e伐鎶曠敤闃舵) */ +// private String projectPhase; @TableField("tag") /** 鏍囩 */ diff --git a/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java index 334a8db..d3247c9 100644 --- a/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java +++ b/business/src/main/java/com/ycl/domain/query/ProjectInfoQuery.java @@ -47,5 +47,7 @@ private Date projectStartTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date projectEndTime; + //浠庢湁娌℃湁娴佺▼鍒ゆ柇鏄瓨鍌ㄨ繕鏄棭鏈� + private String reserveOrPrevious; } diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java index ee82745..1f73b75 100644 --- a/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java +++ b/business/src/main/java/com/ycl/domain/vo/ProjectInfoVO.java @@ -159,7 +159,7 @@ @ApiModelProperty("鏂囦欢") private List<File> fileList; - + private Long processId; private ProjectInvestmentInfoVO projectInvestmentInfo; private ProjectInvestmentFundingVO projectInvestmentFunding; private ProjectUnitRegistrationInfoVO projectUnitRegistrationInfo; diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectVO.java index 82e1bb6..119abd9 100644 --- a/business/src/main/java/com/ycl/domain/vo/ProjectVO.java +++ b/business/src/main/java/com/ycl/domain/vo/ProjectVO.java @@ -12,4 +12,6 @@ private String projectColorCode; private List<Long> competentDepartmentList; private List<String> managementCentralizationList; + + private Long processId; } diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java index 8c29fb9..3adc8f2 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java @@ -1,10 +1,12 @@ package com.ycl.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.base.Result; import com.ycl.common.enums.business.FileTypeEnum; +import com.ycl.common.enums.business.ProjectCategoryEnum; import com.ycl.common.utils.CopyUtils; import com.ycl.common.utils.DateUtils; import com.ycl.common.utils.SecurityUtils; @@ -140,6 +142,24 @@ if (query.getProjectEndTime() != null) { query.setProjectEndTime(DateUtils.getDayEnd(query.getProjectEndTime())); } + String projectCategory = query.getProjectCategory(); + if (ProjectCategoryEnum.RESERVE.getType().equals(projectCategory)) { + query.setProjectStatus(ProjectCategoryEnum.RESERVE.getStatus()); + query.setReserveOrPrevious(ProjectCategoryEnum.RESERVE.getCode()); + } else if (ProjectCategoryEnum.PREVIOUS.getType().equals(projectCategory)) { + query.setProjectStatus(ProjectCategoryEnum.PREVIOUS.getStatus()); + query.setReserveOrPrevious(ProjectCategoryEnum.PREVIOUS.getCode()); + } else if (ProjectCategoryEnum.FINISH.getType().equals(projectCategory)) { + query.setProjectStatus(ProjectCategoryEnum.FINISH.getStatus()); + } else if (ProjectCategoryEnum.EXCEPTION.getType().equals(projectCategory)) { + //TODO + //鍏堟煡鍑哄紓甯告祦绋嬫垨鑰呭紓甯歌繘搴︽垨鑰呭紓甯歌鍒掔殑projectId鍜屽紓甯哥绫� + //閫氳繃projectId鏌ュ嚭椤圭洰鏁版嵁 + //琛ュ厖鐩稿簲鐨勫紓甯告暟鎹紙寮傚父绉嶇被銆佸紓甯告祦绋嬭妭鐐圭瓑锛� + List<ProjectVO> list = new ArrayList<>(); + return Result.ok().data(list).total(0); + } + IPage<ProjectInfoVO> page = PageUtil.getPage(query, ProjectInfoVO.class); baseMapper.getPage(page, query); List<ProjectInfoVO> records = page.getRecords(); @@ -149,6 +169,9 @@ vo.setProjectColorCode("green"); ProjectVO projectVO = new ProjectVO(); copyToProjectVO(vo,projectVO); + //缈昏瘧椤圭洰闃舵 + String phase = ProjectCategoryEnum.getPhaseByProjectStatus(projectVO.getProjectStatus(), projectVO.getProcessId() != null); + projectVO.setProjectPhase(phase); list.add(projectVO); }); return Result.ok().data(list).total(page.getTotal()); diff --git a/business/src/main/resources/mapper/ProjectInfoMapper.xml b/business/src/main/resources/mapper/ProjectInfoMapper.xml index 251f0c0..0da2550 100644 --- a/business/src/main/resources/mapper/ProjectInfoMapper.xml +++ b/business/src/main/resources/mapper/ProjectInfoMapper.xml @@ -55,7 +55,7 @@ <select id="getPage" resultMap="resultMap"> SELECT - TPI.*, + TPI.*,TPP.process_instance_id as processId, TPIF.total_investment as TPIF_totalInvestment, TPIF.principal as TPIF_principal,TPIF.government_investment_total as TPIF_government_investment_total,TPIF.central_investment_total as TPIF_central_investment_total, TPIF.central_budget_investment as TPIF_central_budget_investment,TPIF.central_fiscal_investment as TPIF_central_fiscal_investment, @@ -101,11 +101,9 @@ LEFT JOIN t_project_investment_info TPII ON TPI.id = TPII.project_id and TPII.deleted = 0 LEFT JOIN t_project_investment_policy_compliance TPIPC ON TPI.id = TPIPC.project_id and TPIPC.deleted = 0 LEFT JOIN t_project_unit_registration_info TPURI ON TPI.id = TPURI.project_id and TPURI.deleted = 0 + LEFT JOIN t_project_process TPP ON TPI.id = TPP.project_id and TPP.deleted = 0 <where> TPI.deleted = 0 - <if test="query.projectCategory !=null and query.projectCategory!=''"> - and TPI.project_phase = #{query.projectCategory} - </if> <if test="query.projectName !=null and query.projectName!=''"> and TPI.project_name like concat('%',#{query.projectName},'%') </if> @@ -145,8 +143,14 @@ <if test="query.projectStartTime !=null and query.projectEndTime !=null"> and TPI.create_project_time between #{query.projectStartTime} and #{query.projectEndTime} </if> + <if test="query.reserveOrPrevious != null and query.reserveOrPrevious == 'reserve'"> + and TPP.process_instance_id is null + </if> + <if test="query.reserveOrPrevious != null and query.reserveOrPrevious == 'previous'"> + and TPP.process_instance_id is not null + </if> </where> - order by gmt_create + order by TPI.gmt_create </select> </mapper> diff --git a/common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java b/common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java new file mode 100644 index 0000000..f152d46 --- /dev/null +++ b/common/src/main/java/com/ycl/common/enums/business/ProjectCategoryEnum.java @@ -0,0 +1,51 @@ +package com.ycl.common.enums.business; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ProjectCategoryEnum { + + RESERVE("1", "pendding", "鍌ㄥ椤圭洰","reserve","鍌ㄥ瑙勫垝闃舵"), + PREVIOUS("2", "pendding","鍓嶆湡椤圭洰","previous","椤圭洰鍓嶆湡闃舵"), + IMPLEMENT("3", "working,stop","瀹炴柦椤圭洰","implement","瀹炴柦闃舵"), + FINISH("4", "finish","绔e伐椤圭洰","finish","绔e伐鎶曠敤闃舵"), + EXCEPTION("5", "","寮傚父椤圭洰","exception",""); + + + private final String type; + private final String status; + private final String name; + private final String code; + private final String desc; + + //鍒ゆ柇浼犲叆鏁版嵁鏄惁瀛樺湪鍥涚椤圭洰鎺ㄨ繘鐘舵�� + public static boolean isValidType(String type) { + for (ProjectCategoryEnum status : ProjectCategoryEnum.values()) { + if (status.getDesc().equals(type) && ObjectUtil.notEqual(type,ProjectCategoryEnum.EXCEPTION.getName())) { + return true; + } + } + return false; + } + + /** + * 鑾峰彇椤圭洰闃舵 + * @param projectStatus + * @param hasProcess 鏄惁鍚姩娴佺▼ + * @return + */ + public static String getPhaseByProjectStatus(String projectStatus, boolean hasProcess) { + for (ProjectCategoryEnum projectCategoryEnum : ProjectCategoryEnum.values()) { + if (hasProcess && PREVIOUS.status.contains(projectStatus)) { + return PREVIOUS.desc; + } + if (projectCategoryEnum.status.contains(projectStatus)) { + return projectCategoryEnum.desc; + } + } + return null; + } +} -- Gitblit v1.8.0