From 2330e34c1d0f8a3c58a729eaee8e9987f612d83d Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 12 十二月 2024 10:51:27 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- business/src/main/java/com/ycl/domain/query/PlanQuery.java | 6 ++ business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java | 2 start/src/main/resources/application.yml | 4 + business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml | 2 business/src/main/resources/mapper/PlanMapper.xml | 42 ++++++++----- business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java | 3 business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java | 3 common/src/main/java/com/ycl/common/enums/business/ProjectStatusEnum.java | 9 +++ business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java | 28 ++++++--- business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java | 17 +++++ business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java | 10 +++ common/src/main/java/com/ycl/common/enums/business/ProjectTypeEnum.java | 9 +++ business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java | 18 ++++-- 13 files changed, 118 insertions(+), 35 deletions(-) diff --git a/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java b/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java index 4711d1b..2ec3caf 100644 --- a/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java +++ b/business/src/main/java/com/ycl/controller/ProjectPlanInfoController.java @@ -90,7 +90,7 @@ } @PostMapping("/resubmitPlanInfo") - public Result resubmitPlanInfo(@RequestBody ProjectPlanInfoForm form) { + public Result resubmitPlanInfo(@RequestBody @Validated(Add.class) ProjectPlanInfoForm form) { return projectPlanInfoService.resubmitPlanInfo(form); } diff --git a/business/src/main/java/com/ycl/domain/query/PlanQuery.java b/business/src/main/java/com/ycl/domain/query/PlanQuery.java index b75fc38..78d9857 100644 --- a/business/src/main/java/com/ycl/domain/query/PlanQuery.java +++ b/business/src/main/java/com/ycl/domain/query/PlanQuery.java @@ -13,5 +13,11 @@ @Data @ApiModel(value = "Plan鏌ヨ鍙傛暟", description = "椤圭洰璁″垝琛ㄦ煡璇㈠弬鏁�") public class PlanQuery extends AbsQuery { + private String projectName; + private String projectCode; + private Integer reportStatus; + private Integer yearStatus; + private Integer seasonStatus; + private Integer monthStatus; } diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java index e5ed1df..038caec 100644 --- a/business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java +++ b/business/src/main/java/com/ycl/domain/vo/ProjectPlanResponseVO.java @@ -13,10 +13,11 @@ private Integer reportStatus; private String projectCode; private String projectType; - private Integer projectPhase; + private String projectPhase; private Integer monthStatus; private Integer seasonStatus; private Integer yearStatus; private String projectStatus; private String investType; + private String projectColorCode; } diff --git a/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java index 092592c..5b307f2 100644 --- a/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/PlanServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.common.base.Result; +import com.ycl.common.enums.business.ProjectStatusEnum; +import com.ycl.common.enums.business.ProjectTypeEnum; import com.ycl.domain.entity.Plan; import com.ycl.domain.vo.ProjectPlanResponseVO; import com.ycl.framework.utils.PageUtil; @@ -90,6 +92,14 @@ public Result page(PlanQuery query) { IPage<ProjectPlanResponseVO> page = PageUtil.getPage(query, ProjectPlanResponseVO.class); baseMapper.getPage(page, query); + // 瀵瑰垎椤靛悗鐨勫睘鎬ц繘琛屽鐞� + List<ProjectPlanResponseVO> records = page.getRecords(); + for (ProjectPlanResponseVO record : records) { + record.setProjectType(ProjectTypeEnum.getDescByType(record.getProjectType())); + record.setProjectStatus(ProjectStatusEnum.getDescByType(record.getProjectStatus())); + record.setProjectColorCode("green"); + } + return Result.ok().data(page.getRecords()).total(page.getTotal()); } 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 21740bb..afe0041 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.ycl.domain.entity.*; import com.ycl.domain.excel.ProjectExcelTemplate; import com.ycl.domain.form.DocumentInfoForm; +import com.ycl.domain.form.PlanForm; import com.ycl.domain.form.ProjectInfoForm; import com.ycl.domain.query.ProjectExportQuery; import com.ycl.domain.query.ProjectInfoQuery; @@ -70,6 +71,7 @@ private final ProjectUnitRegistrationInfoMapper unitRegistrationInfoMapper; private final FileService fileService; private final FileMapper fileMapper; + private final PlanMapper planMapper; /** * 娣诲姞 @@ -86,6 +88,7 @@ entity.setCreateBy(userId); entity.setUpdateBy(userId); baseMapper.insert(entity); + addPlan(entity.getId()); //娣诲姞璁″垝琛� //娣诲姞鏂囦欢 List<File> fileList = form.getFileList(); fileList.forEach(item -> { @@ -94,6 +97,17 @@ }); fileService.saveBatch(fileList); return Result.ok("娣诲姞鎴愬姛").data(entity.getId()); + } + + public void addPlan(Long projectInfoId) { + Plan plan = new Plan(); + plan.setProjectInfoId(projectInfoId); + plan.setReportStatus(1); + plan.setMonthStatus(1); + plan.setSeasonStatus(1); + plan.setYearStatus(1); + plan.setDeleted(0); + planMapper.insert(plan); } /** @@ -390,6 +404,9 @@ ProjectInfo projectInfo = baseMapper.selectById(recordId); // 鍒ゆ柇褰撳墠鐢ㄦ埛id鏄惁鍦ㄤ富绠″垪琛ㄤ腑 String competentDepartment = projectInfo.getCompetentDepartment(); + if (StringUtils.isEmpty(competentDepartment)){ + return Result.ok().data(false); + } List<String> list = Arrays.asList(competentDepartment.split(",")); // 鑾峰緱褰撳墠鐢ㄦ埛id Long userId = SecurityUtils.getUserId(); diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java index ac099d8..6e189bc 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanInfoServiceImpl.java @@ -202,16 +202,28 @@ .set(ProjectPlanInfo::getStartTime, request.getStartTime()) .set(ProjectPlanInfo::getEndTime, request.getEndTime()) .update(); + // 鏌ヨ鍑哄師鏉ョ殑瀹℃牳璁板綍 + ProjectPlanExamineRecord item = new LambdaQueryChainWrapper<>(projectPlanExamineRecordMapper) + .eq(ProjectPlanExamineRecord::getProjectPlanInfoId, request.getId()) + .eq(ProjectPlanExamineRecord::getProjectPlanRecordId, request.getProjectPlanRecordId()) + .ne(ProjectPlanExamineRecord::getEventType, 2) + .eq(ProjectPlanExamineRecord::getDeleted, 0) // 鏈垹闄� + .orderByDesc(ProjectPlanExamineRecord::getGmtCreate) + .last("LIMIT 1") + .one(); // 鏂板涓�鏉″鏍歌褰� - ProjectPlanExamineRecord item = new ProjectPlanExamineRecord(); - item.setProjectPlanRecordId(request.getProjectPlanRecordId().longValue()); - item.setProjectPlanInfoId(request.getId().longValue()); +// item.setId(null); +// item.setEventType(1); +// item.setDelayStartTime(request.getStartTime()); +// item.setDelayEndTime(request.getEndTime()); +// item.setGmtCreate(null); +// item.setGmtUpdate(null); +// projectPlanExamineRecordMapper.insertOne(item); + // 鏇存柊鍘熸潵鐨勫鏍歌褰� item.setEventType(1); item.setDelayStartTime(request.getStartTime()); item.setDelayEndTime(request.getEndTime()); - item.setGmtCreate(new Date()); - item.setDeleted(0); - projectPlanExamineRecordMapper.insertOne(item); + projectPlanExamineRecordMapper.updateById(item); return Result.ok("寤舵湡鎴愬姛"); } @@ -231,11 +243,9 @@ item.setProjectPlanRecordId(form.getProjectPlanRecordId().longValue()); item.setProjectPlanInfoId(form.getId().longValue()); item.setEventType(0); // 璁″垝涓婃姤 - item.setDelayStartTime(form.getStartTime()); - item.setDelayEndTime(form.getEndTime()); item.setGmtCreate(new Date()); item.setDeleted(0); // 鏈垹闄� - projectPlanExamineRecordMapper.insertOne(item); + projectPlanExamineRecordMapper.insert(item); return Result.ok("閲嶆柊涓婃姤鎴愬姛"); } } diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java index 58300ba..a8f7e24 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java @@ -59,18 +59,24 @@ @Transactional(rollbackFor = Exception.class) @Override public Result add(ProgressReportResponseVO form) { - ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport(); - projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue()); - projectPlanProgressReport.setStartTime(form.getActualStartTime()); - projectPlanProgressReport.setEndTime(form.getActualEndTime()); - projectPlanProgressReport.setProgressStatus(form.getProgressStatusStr()); - projectPlanProgressReport.setActualInvest(form.getActualInvest()); // 鍒ゆ柇涓婃姤鐘舵�� if (form.getProgressStatusInt() == 0) { // 鏈紑濮� 涓婃姤杩涘害 + ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport(); + projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue()); + projectPlanProgressReport.setStartTime(form.getActualStartTime()); + projectPlanProgressReport.setEndTime(form.getActualEndTime()); + projectPlanProgressReport.setProgressStatus(form.getProgressStatusStr()); + projectPlanProgressReport.setActualInvest(form.getActualInvest()); // 鏂板杩涘害涓婃姤鍐呭 baseMapper.insert(projectPlanProgressReport); }else if (form.getProgressStatusInt() == 2) { // 宸查┏鍥� 閲嶆柊涓婃姤 + ProjectPlanProgressReport projectPlanProgressReport = baseMapper.selectById(form.getProgressReportId()); + projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue()); + projectPlanProgressReport.setStartTime(form.getActualStartTime()); + projectPlanProgressReport.setEndTime(form.getActualEndTime()); + projectPlanProgressReport.setProgressStatus(form.getProgressStatusStr()); + projectPlanProgressReport.setActualInvest(form.getActualInvest()); // 鏇存柊杩涘害涓婃姤鍐呭 baseMapper.updateById(projectPlanProgressReport); } diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java index d4875bb..b4eb25f 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanRecordServiceImpl.java @@ -55,8 +55,9 @@ @Override public Result add(ProjectPlanRecordAddRequest request) { ProjectPlanRecord item = new ProjectPlanRecord(); + Plan one = new LambdaQueryChainWrapper<>(planMapper).eq(Plan::getProjectInfoId, request.getProjectInfoId()).one(); // 鏌ヨ椤圭洰璁″垝id - item.setPlanId(new LambdaQueryChainWrapper<>(planMapper).eq(Plan::getProjectInfoId, request.getProjectInfoId()).one().getId().longValue()); + item.setPlanId(new LambdaQueryChainWrapper<>(planMapper).eq(Plan::getProjectInfoId, request.getProjectInfoId()).one().getId()); // 鍒ゆ柇鏍囧織浣嶆槸鍚︿负0锛屽鏋滀负0锛屽垯涓烘湀搴﹁鍒掞紝1涓哄搴﹁鍒掞紝2涓哄勾搴﹁鍒� if (request.getPlanTimeFlag() == MONTH_FLAG) { // 鍒ゆ柇id鏄惁涓�0 diff --git a/business/src/main/resources/mapper/PlanMapper.xml b/business/src/main/resources/mapper/PlanMapper.xml index b69243e..85d57c7 100644 --- a/business/src/main/resources/mapper/PlanMapper.xml +++ b/business/src/main/resources/mapper/PlanMapper.xml @@ -29,11 +29,6 @@ </resultMap> - - - - - <select id="getById" resultMap="BaseResultMap"> SELECT TP.project_info_id, @@ -59,19 +54,34 @@ pi.project_code, pi.project_type, pi.project_phase, - IFNULL((select report_status from t_project_plan_record - WHERE plan_time_flag = 0 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as month_status, - IFNULL((select report_status from t_project_plan_record - WHERE plan_time_flag = 1 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as season_status, - IFNULL((select report_status from t_project_plan_record - WHERE plan_time_flag = 2 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as year_status, + p.month_status, + p.season_status, + p.year_status, pi.project_status, pi.invest_type - FROM t_plan AS p - INNER JOIN t_project_info AS pi ON p.project_info_id = pi.id - INNER JOIN t_project_plan_record AS ppr ON p.id = ppr.plan_id - WHERE - p.deleted = 0 + FROM t_project_info AS pi + LEFT JOIN t_plan AS p ON p.project_info_id = pi.id + <where> + pi.deleted = 0 + <if test="query.projectName!= null and query.projectName!= ''"> + AND pi.project_name LIKE CONCAT('%', #{query.projectName}, '%') + </if> + <if test="query.projectCode!= null and query.projectCode!= ''"> + AND pi.project_code LIKE CONCAT('%', #{query.projectCode}, '%') + </if> + <if test="query.reportStatus!= null"> + AND p.report_status = #{query.reportStatus} + </if> + <if test="query.monthStatus!= null"> + AND p.month_status = #{query.monthStatus} + </if> + <if test="query.seasonStatus!= null"> + AND p.season_status = #{query.seasonStatus} + </if> + <if test="query.yearStatus!= null"> + AND p.year_status = #{query.yearStatus} + </if> + </where> </select> </mapper> diff --git a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml index 379a5f0..414d5e7 100644 --- a/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml +++ b/business/src/main/resources/mapper/ProjectPlanExamineRecordMapper.xml @@ -179,7 +179,7 @@ FROM t_project_plan_examine_record AS pper WHERE pper.project_plan_record_id = #{projectPlanRecordId} - AND pper.event_type = 0 + AND pper.event_type != 2 AND pper.deleted = 0 ORDER BY gmt_update DESC </select> diff --git a/common/src/main/java/com/ycl/common/enums/business/ProjectStatusEnum.java b/common/src/main/java/com/ycl/common/enums/business/ProjectStatusEnum.java index 10e57fe..e597e37 100644 --- a/common/src/main/java/com/ycl/common/enums/business/ProjectStatusEnum.java +++ b/common/src/main/java/com/ycl/common/enums/business/ProjectStatusEnum.java @@ -27,4 +27,13 @@ this.type = type; this.desc = desc; } + + public static String getDescByType(String type) { + for (ProjectStatusEnum status : ProjectStatusEnum.values()) { + if (status.type.equals(type)) { + return status.desc; + } + } + return null; // 濡傛灉娌℃湁鎵惧埌瀵瑰簲鐨勭被鍨嬶紝鍙互杩斿洖 null 鎴栬�呮姏鍑哄紓甯� + } } diff --git a/common/src/main/java/com/ycl/common/enums/business/ProjectTypeEnum.java b/common/src/main/java/com/ycl/common/enums/business/ProjectTypeEnum.java index 2e1a9fa..d186a2e 100644 --- a/common/src/main/java/com/ycl/common/enums/business/ProjectTypeEnum.java +++ b/common/src/main/java/com/ycl/common/enums/business/ProjectTypeEnum.java @@ -29,4 +29,13 @@ this.type = type; this.desc = desc; } + + public static String getDescByType(String type) { + for (ProjectTypeEnum projectType : ProjectTypeEnum.values()) { + if (projectType.type.equals(type)) { + return projectType.desc; + } + } + return null; // 濡傛灉娌℃湁鎵惧埌瀵瑰簲鐨則ype锛屽彲浠ヨ繑鍥瀗ull鎴栨姏鍑哄紓甯� + } } diff --git a/start/src/main/resources/application.yml b/start/src/main/resources/application.yml index 4aab901..462aa1d 100644 --- a/start/src/main/resources/application.yml +++ b/start/src/main/resources/application.yml @@ -72,6 +72,10 @@ restart: # 鐑儴缃插紑鍏� enabled: false + # 鏃ユ湡鏍煎紡 + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 # token閰嶇疆 token: -- Gitblit v1.8.0