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