From 91b0f36ffb6f75bc4f4845b48e836550a1d251da Mon Sep 17 00:00:00 2001 From: lishiwei <3230787218@qq.com> Date: Thu, 11 Jun 2026 17:46:21 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E6=94=AF=E6=8C=81=E9=87=8D=E7=82=B9?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=B1=9E=E6=80=A7=E7=B1=BB=E5=9E=8B=E5=A4=9A?= =?UTF-8?q?=E9=80=89=E5=92=8C=E5=BC=80=E5=B7=A5=E7=94=B3=E8=AF=B7=E9=A9=B3?= =?UTF-8?q?=E5=9B=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../convertor/project/KeyProjectCoConvertor.java | 7 ++++++- .../command/project/KeyProjectAddExe.java | 7 +++++++ .../command/project/KeyProjectUpdateExe.java | 16 +++++++++++++++- .../dto/clientobject/project/KeyProjectCO.java | 11 +++++++---- .../project/dto/project/KeyProjectAddCmd.java | 10 ++++------ .../project/dto/project/KeyProjectUpdateCmd.java | 10 ++++------ .../dto/project/KeyProjectUpdateStatusCmd.java | 5 ++++- .../domain/config/MessageTemplateConfig.java | 2 ++ .../domain/enums/KeyProjectApplyStatusEnum.java | 3 ++- .../domain/model/project/KeyProjectE.java | 4 +++- .../dataobject/project/KeyProjectDO.java | 7 +++++-- .../main/resources/mapper/KeyProjectMapper.xml | 8 ++++---- 12 files changed, 63 insertions(+), 27 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/key/project/command/convertor/project/KeyProjectCoConvertor.java b/web-app/src/main/java/com/zcloud/key/project/command/convertor/project/KeyProjectCoConvertor.java index 8219664..5b41d78 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/convertor/project/KeyProjectCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/convertor/project/KeyProjectCoConvertor.java @@ -28,6 +28,8 @@ public interface KeyProjectCoConvertor { */ List converDOsToCOs(List keyProjectDOs); + @Mapping(source = "projectType", target = "projectType", qualifiedByName = "stringToList") + @Mapping(source = "projectTypeName", target = "projectTypeName", qualifiedByName = "stringToList") KeyProjectCO converDOToCO(KeyProjectDO keyProjectDO); @@ -54,7 +56,10 @@ public interface KeyProjectCoConvertor { @Named("stringToList") default List stringToList(String str) { - return null; + if (str == null || str.isEmpty()) { + return null; + } + return Arrays.asList(str.split(",")); } List converXgfCorpDOsToCOs(List xgfCorpDOList); diff --git a/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectAddExe.java b/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectAddExe.java index f50519f..444d792 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectAddExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectAddExe.java @@ -1,5 +1,6 @@ package com.zcloud.key.project.command.project; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.exception.BizException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zcloud.gbscommon.utils.Tools; @@ -58,6 +59,12 @@ public class KeyProjectAddExe { KeyProjectE keyProjectE = new KeyProjectE(); BeanUtils.copyProperties(cmd, keyProjectE); + if (CollUtil.isNotEmpty(cmd.getProjectType())) { + keyProjectE.setProjectType(String.join(",", cmd.getProjectType())); + } + if (CollUtil.isNotEmpty(cmd.getProjectTypeName())) { + keyProjectE.setProjectTypeName(String.join(",", cmd.getProjectTypeName())); + } boolean res = false; try { res = keyProjectGateway.add(keyProjectE); diff --git a/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectUpdateExe.java b/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectUpdateExe.java index 726f738..244707d 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectUpdateExe.java @@ -70,12 +70,18 @@ public class KeyProjectUpdateExe { } KeyProjectE keyProjectE = new KeyProjectE(); BeanUtils.copyProperties(keyProjectUpdateCmd, keyProjectE); + if (CollUtil.isNotEmpty(keyProjectUpdateCmd.getProjectType())) { + keyProjectE.setProjectType(String.join(",", keyProjectUpdateCmd.getProjectType())); + } + if (CollUtil.isNotEmpty(keyProjectUpdateCmd.getProjectTypeName())) { + keyProjectE.setProjectTypeName(String.join(",", keyProjectUpdateCmd.getProjectTypeName())); + } boolean res = keyProjectGateway.update(keyProjectE); if (!res) { throw new BizException("修改失败"); } - keyProjectCameraRepository.deleteByKeyProjectId(keyProjectE.getKeyProjectId()); if(keyProjectUpdateCmd.getKeyProjectCameraAddCmdList()!=null){ + keyProjectCameraRepository.deleteByKeyProjectId(keyProjectE.getKeyProjectId()); List keyProjectCameraAddCmdList = keyProjectUpdateCmd.getKeyProjectCameraAddCmdList(); List keyProjectCameraDOList =keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList); keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> { @@ -137,6 +143,14 @@ public class KeyProjectUpdateExe { keyProjectE.setCompletedConfirmDateTime(LocalDateTime.now()); messageNoticeExe.sendMessageCompleteEvent(byId.getId()); } + if(KeyProjectApplyStatusEnum.START_APPLY_REJECT.getCode().equals(keyProjectUpdateStatusCmd.getApplyStatus())){ + keyProjectE.setRejectReason(keyProjectUpdateStatusCmd.getRejectReason()); + messageNoticeExe.sendMessageCompleteEvent(byId.getId()); + Map sendParams = new HashMap<>(); + sendParams.put("keyProject", byId.getProjectName()); + messageNoticeExe.messageNotice(byId.getXgfMasterUserId(), messageTemplateConfig.getRelatedPartyUnitLeaderApplyStartWorkReject(), sendParams); + messageNoticeExe.sendMessageAddEvent(byId.getXgfMasterUserId(), "您有一条【重点作业】待处理","开工申请驳回", byId.getId(), byId.getId()); + } boolean res = keyProjectGateway.update(keyProjectE); if (!res) { throw new BizException("修改失败"); diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectCO.java index ee7997e..82c5f3b 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectCO.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectCO.java @@ -51,10 +51,10 @@ public class KeyProjectCO extends ClientObject { private String projectName; //涉及重点作业属性类型 @ApiModelProperty(value = "涉及重点作业属性类型") - private String projectType; + private List projectType; //涉及重点作业属性类型名称 @ApiModelProperty(value = "涉及重点作业属性类型名称") - private String projectTypeName; + private List projectTypeName; //计划工期开始时间 @ApiModelProperty(value = "计划工期开始时间") @JsonFormat(pattern = "yyyy-MM-dd") @@ -107,8 +107,11 @@ public class KeyProjectCO extends ClientObject { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime completedConfirmDateTime; - //状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工 - @ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工") + //驳回原因 + @ApiModelProperty(value = "驳回原因") + private String rejectReason; + //状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工,7:开工申请驳回 + @ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工,7:开工申请驳回") private Integer applyStatus; //经度 @ApiModelProperty(value = "经度") diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectAddCmd.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectAddCmd.java index 4d4d70b..f2bb285 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectAddCmd.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectAddCmd.java @@ -52,13 +52,11 @@ public class KeyProjectAddCmd implements Serializable { @NotEmpty(message = "重点作业名称不能为空") private String projectName; - @ApiModelProperty(value = "涉及重点作业属性类型", name = "projectType", required = true) - @NotEmpty(message = "涉及重点作业属性类型不能为空") - private String projectType; + @ApiModelProperty(value = "涉及重点作业属性类型(多选)", name = "projectType") + private List projectType; - @ApiModelProperty(value = "涉及重点作业属性类型名称", name = "projectTypeName", required = true) - @NotEmpty(message = "涉及重点作业属性类型名称不能为空") - private String projectTypeName; + @ApiModelProperty(value = "涉及重点作业属性类型名称(多选)", name = "projectTypeName") + private List projectTypeName; @ApiModelProperty(value = "计划工期开始时间", name = "planWorkStartDate", required = true) @NotNull(message = "计划工期开始时间不能为空") diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectUpdateCmd.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectUpdateCmd.java index cbca57c..8487d8a 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectUpdateCmd.java @@ -53,13 +53,11 @@ public class KeyProjectUpdateCmd implements Serializable { @NotEmpty(message = "重点作业名称不能为空") private String projectName; - @ApiModelProperty(value = "涉及重点作业属性类型", name = "projectType", required = true) - @NotEmpty(message = "涉及重点作业属性类型不能为空") - private String projectType; + @ApiModelProperty(value = "涉及重点作业属性类型(多选)", name = "projectType") + private List projectType; - @ApiModelProperty(value = "涉及重点作业属性类型名称", name = "projectTypeName", required = true) - @NotEmpty(message = "涉及重点作业属性类型名称不能为空") - private String projectTypeName; + @ApiModelProperty(value = "涉及重点作业属性类型名称(多选)", name = "projectTypeName") + private List projectTypeName; @ApiModelProperty(value = "计划工期开始时间", name = "planWorkStartDate", required = true) @NotNull(message = "计划工期开始时间不能为空") diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectUpdateStatusCmd.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectUpdateStatusCmd.java index ee20289..89aff2a 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectUpdateStatusCmd.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectUpdateStatusCmd.java @@ -29,10 +29,13 @@ public class KeyProjectUpdateStatusCmd implements Serializable { @ApiModelProperty(value = "纬度", name = "latitude") private String latitude; - @ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工", name = "applyStatus", required = true) + @ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工,7:开工申请驳回", name = "applyStatus", required = true) @NotNull(message = "状态不能为空") private Integer applyStatus; + @ApiModelProperty(value = "驳回原因") + private String rejectReason; + @ApiModelProperty(value = "重点作业摄像头信息", name = "keyProjectCameraAddCmdList") private List keyProjectCameraAddCmdList; } diff --git a/web-domain/src/main/java/com/zcloud/key/project/domain/config/MessageTemplateConfig.java b/web-domain/src/main/java/com/zcloud/key/project/domain/config/MessageTemplateConfig.java index 5f7ccaa..fd97dbe 100644 --- a/web-domain/src/main/java/com/zcloud/key/project/domain/config/MessageTemplateConfig.java +++ b/web-domain/src/main/java/com/zcloud/key/project/domain/config/MessageTemplateConfig.java @@ -27,6 +27,8 @@ public class MessageTemplateConfig { private String xqUnitLeaderConfirmFinishWork; // 重点作业-相关方单位负责人-开工申请通过 private String relatedPartyUnitLeaderApplyStartWorkPass; + // 重点作业-相关方单位负责人-开工申请驳回 + private String relatedPartyUnitLeaderApplyStartWorkReject; // 重点作业-相关方单位负责人-完工申请通过 private String relatedPartyUnitLeaderApplyFinishWorkPass; // 重点作业-检查发起人-发起检查不通过 diff --git a/web-domain/src/main/java/com/zcloud/key/project/domain/enums/KeyProjectApplyStatusEnum.java b/web-domain/src/main/java/com/zcloud/key/project/domain/enums/KeyProjectApplyStatusEnum.java index c2cfa27..54be9d7 100644 --- a/web-domain/src/main/java/com/zcloud/key/project/domain/enums/KeyProjectApplyStatusEnum.java +++ b/web-domain/src/main/java/com/zcloud/key/project/domain/enums/KeyProjectApplyStatusEnum.java @@ -13,7 +13,8 @@ public enum KeyProjectApplyStatusEnum { OVERDUE(3, "已超期"), IN_PROGRESS(4, "进行中"), FINISH_APPLY(5, "完工申请中"), - FINISHED(6, "已完工"); + FINISHED(6, "已完工"), + START_APPLY_REJECT(7, "开工申请驳回"); ; diff --git a/web-domain/src/main/java/com/zcloud/key/project/domain/model/project/KeyProjectE.java b/web-domain/src/main/java/com/zcloud/key/project/domain/model/project/KeyProjectE.java index ef2cd78..6b6ff80 100644 --- a/web-domain/src/main/java/com/zcloud/key/project/domain/model/project/KeyProjectE.java +++ b/web-domain/src/main/java/com/zcloud/key/project/domain/model/project/KeyProjectE.java @@ -64,8 +64,10 @@ public class KeyProjectE extends BaseE { private LocalDateTime completedDateTime; //确认时间 private LocalDateTime completedConfirmDateTime; - //状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工 + //状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工,7:开工申请驳回 private Integer applyStatus; + //驳回原因 + private String rejectReason; //经度 private String longitude; //纬度 diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectDO.java index b582289..eb7782f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectDO.java @@ -104,8 +104,11 @@ public class KeyProjectDO extends BaseDO { //确认时间 @ApiModelProperty(value = "完工确认时间") private LocalDateTime completedConfirmDateTime; - //状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工 - @ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工") + //驳回原因 + @ApiModelProperty(value = "驳回原因") + private String rejectReason; + //状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工,7:开工申请驳回 + @ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工,7:开工申请驳回") private Integer applyStatus; //经度 @ApiModelProperty(value = "经度") diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index d07e529..2c04b75 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -84,7 +84,7 @@ - AND kp.project_type = #{params.projectType} + AND FIND_IN_SET(#{params.projectType}, kp.project_type) GROUP BY kp.key_project_id @@ -176,7 +176,7 @@ - AND kp.project_type = #{params.projectType} + AND FIND_IN_SET(#{params.projectType}, kp.project_type) GROUP BY kp.id @@ -453,7 +453,7 @@ - AND kp.project_type = #{projectType} + AND FIND_IN_SET(#{projectType}, kp.project_type) GROUP BY kp.key_project_id @@ -530,7 +530,7 @@ - AND kp.project_type = #{projectType} + AND FIND_IN_SET(#{projectType}, kp.project_type)