feat(): 支持重点作业属性类型多选和开工申请驳回功能

dev
lishiwei 2026-06-11 17:46:21 +08:00
parent 864d139081
commit 91b0f36ffb
12 changed files with 63 additions and 27 deletions

View File

@ -28,6 +28,8 @@ public interface KeyProjectCoConvertor {
*/
List<KeyProjectCO> converDOsToCOs(List<KeyProjectDO> 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<String> stringToList(String str) {
return null;
if (str == null || str.isEmpty()) {
return null;
}
return Arrays.asList(str.split(","));
}
List<XgfCorpCO> converXgfCorpDOsToCOs(List<XgfCorpDO> xgfCorpDOList);

View File

@ -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);

View File

@ -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<KeyProjectCameraAddCmd> keyProjectCameraAddCmdList = keyProjectUpdateCmd.getKeyProjectCameraAddCmdList();
List<KeyProjectCameraDO> 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<String, Object> 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("修改失败");

View File

@ -51,10 +51,10 @@ public class KeyProjectCO extends ClientObject {
private String projectName;
//涉及重点作业属性类型
@ApiModelProperty(value = "涉及重点作业属性类型")
private String projectType;
private List<String> projectType;
//涉及重点作业属性类型名称
@ApiModelProperty(value = "涉及重点作业属性类型名称")
private String projectTypeName;
private List<String> 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 = "经度")

View File

@ -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<String> projectType;
@ApiModelProperty(value = "涉及重点作业属性类型名称", name = "projectTypeName", required = true)
@NotEmpty(message = "涉及重点作业属性类型名称不能为空")
private String projectTypeName;
@ApiModelProperty(value = "涉及重点作业属性类型名称(多选)", name = "projectTypeName")
private List<String> projectTypeName;
@ApiModelProperty(value = "计划工期开始时间", name = "planWorkStartDate", required = true)
@NotNull(message = "计划工期开始时间不能为空")

View File

@ -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<String> projectType;
@ApiModelProperty(value = "涉及重点作业属性类型名称", name = "projectTypeName", required = true)
@NotEmpty(message = "涉及重点作业属性类型名称不能为空")
private String projectTypeName;
@ApiModelProperty(value = "涉及重点作业属性类型名称(多选)", name = "projectTypeName")
private List<String> projectTypeName;
@ApiModelProperty(value = "计划工期开始时间", name = "planWorkStartDate", required = true)
@NotNull(message = "计划工期开始时间不能为空")

View File

@ -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<KeyProjectCameraAddCmd> keyProjectCameraAddCmdList;
}

View File

@ -27,6 +27,8 @@ public class MessageTemplateConfig {
private String xqUnitLeaderConfirmFinishWork;
// 重点作业-相关方单位负责人-开工申请通过
private String relatedPartyUnitLeaderApplyStartWorkPass;
// 重点作业-相关方单位负责人-开工申请驳回
private String relatedPartyUnitLeaderApplyStartWorkReject;
// 重点作业-相关方单位负责人-完工申请通过
private String relatedPartyUnitLeaderApplyFinishWorkPass;
// 重点作业-检查发起人-发起检查不通过

View File

@ -13,7 +13,8 @@ public enum KeyProjectApplyStatusEnum {
OVERDUE(3, "已超期"),
IN_PROGRESS(4, "进行中"),
FINISH_APPLY(5, "完工申请中"),
FINISHED(6, "已完工");
FINISHED(6, "已完工"),
START_APPLY_REJECT(7, "开工申请驳回");
;

View File

@ -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;
//纬度

View File

@ -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 = "经度")

View File

@ -84,7 +84,7 @@
<!-- projectType 判空 -->
<if test="params.projectType != null and params.projectType != ''">
AND kp.project_type = #{params.projectType}
AND FIND_IN_SET(#{params.projectType}, kp.project_type)
</if>
</where>
GROUP BY kp.key_project_id
@ -176,7 +176,7 @@
<!-- projectType 判空 -->
<if test="params.projectType != null and params.projectType != ''">
AND kp.project_type = #{params.projectType}
AND FIND_IN_SET(#{params.projectType}, kp.project_type)
</if>
</where>
GROUP BY kp.id
@ -453,7 +453,7 @@
<!-- projectType 判空 -->
<if test="projectType != null and projectType != ''">
AND kp.project_type = #{projectType}
AND FIND_IN_SET(#{projectType}, kp.project_type)
</if>
</where>
GROUP BY kp.key_project_id
@ -530,7 +530,7 @@
<!-- projectType 判空 -->
<if test="projectType != null and projectType != ''">
AND kp.project_type = #{projectType}
AND FIND_IN_SET(#{projectType}, kp.project_type)
</if>
</where>