master
tianxinlei 2026-05-26 17:49:17 +08:00
parent 3bb41be81a
commit 33bfe31895
6 changed files with 81 additions and 16 deletions

View File

@ -48,6 +48,12 @@ public class TaskDetailController {
return taskListService.addTaskDetailBatch(cmds); return taskListService.addTaskDetailBatch(cmds);
} }
@ApiOperation("编辑任务")
@PostMapping("/edit")
public SingleResponse<TaskDetailCO> edit(@Validated @RequestBody TaskDetailEditCmd cmd) {
return taskListService.editTaskDetail(cmd);
}
@ApiOperation("获取任务详情") @ApiOperation("获取任务详情")
@GetMapping("/{detailId}") @GetMapping("/{detailId}")
public SingleResponse<TaskDetailInfoCO> getByDetailId(@PathVariable String detailId) { public SingleResponse<TaskDetailInfoCO> getByDetailId(@PathVariable String detailId) {

View File

@ -43,6 +43,8 @@ public class TaskListServiceImpl implements TaskListServiceI {
private final TaskDetailSaveExe taskDetailSaveExe; private final TaskDetailSaveExe taskDetailSaveExe;
/** 任务详情批量保存执行器 */ /** 任务详情批量保存执行器 */
private final TaskDetailSaveBatchExe taskDetailSaveBatchExe; private final TaskDetailSaveBatchExe taskDetailSaveBatchExe;
/** 任务详情编辑执行器 */
private final TaskDetailEditExe taskDetailEditExe;
/** 任务详情关闭执行器 */ /** 任务详情关闭执行器 */
private final TaskDetailCloseExe taskDetailCloseExe; private final TaskDetailCloseExe taskDetailCloseExe;
/** 任务评分更新执行器 */ /** 任务评分更新执行器 */
@ -128,6 +130,12 @@ public class TaskListServiceImpl implements TaskListServiceI {
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
} }
@Override
public SingleResponse<TaskDetailCO> editTaskDetail(TaskDetailEditCmd cmd) {
TaskDetailCO co = taskDetailEditExe.execute(cmd);
return SingleResponse.of(co);
}
@Override @Override
public SingleResponse<TaskDetailInfoCO> getByTaskDetailId(String detailId) { public SingleResponse<TaskDetailInfoCO> getByTaskDetailId(String detailId) {
return taskDetailQueryExe.getByDetailId(detailId); return taskDetailQueryExe.getByDetailId(detailId);

View File

@ -107,6 +107,14 @@ public interface TaskListServiceI {
*/ */
SingleResponse<TaskDetailCO> addTaskDetailBatch(List<TaskDetailSaveCmd> cmds); SingleResponse<TaskDetailCO> addTaskDetailBatch(List<TaskDetailSaveCmd> cmds);
/**
* 100
*
* @param cmd
* @return
*/
SingleResponse<TaskDetailCO> editTaskDetail(TaskDetailEditCmd cmd);
/** /**
* ID * ID
* *

View File

@ -0,0 +1,34 @@
package com.zcloud.safetyDutyList.dto.tasklist;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TaskDetailEditCmd implements Serializable {
@ApiModelProperty(value = "任务详情UUID", required = true)
@NotEmpty(message = "任务详情ID不能为空")
private String taskDetailId;
@ApiModelProperty(value = "清单表主键ID", required = true)
@NotEmpty(message = "清单ID不能为空")
private String taskListId;
@ApiModelProperty(value = "执行内容")
private String executeContent;
@ApiModelProperty(value = "反馈周期类型1-每月 2-季度 3-半年 4-年", required = true)
@NotNull(message = "反馈周期不能为空")
private Integer feedbackCycleType;
@ApiModelProperty(value = "任务分值")
private BigDecimal taskScore;
}

View File

@ -14,7 +14,7 @@
fb_agg.feedback_count AS feedbackCount, fb_agg.feedback_count AS feedbackCount,
fb_agg.current_period_feedback AS currentPeriodFeedback fb_agg.current_period_feedback AS currentPeriodFeedback
FROM safety_accountability_task_detail td FROM safety_accountability_task_detail td
LEFT JOIN safety_accountability_task_list tl ON td.task_list_id = tl.task_list_id LEFT JOIN safety_accountability_task_list tl ON td.task_list_id = tl.task_list_id AND tl.delete_enum = 'FALSE'
LEFT JOIN department rating_dept ON td.rating_department_id = rating_dept.id LEFT JOIN department rating_dept ON td.rating_department_id = rating_dept.id
LEFT JOIN user rating_user ON td.rating_user_id = rating_user.id LEFT JOIN user rating_user ON td.rating_user_id = rating_user.id
LEFT JOIN ( LEFT JOIN (
@ -22,9 +22,11 @@
COUNT(*) AS feedback_count, COUNT(*) AS feedback_count,
MAX(CASE WHEN feedback_period_flag = DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END) AS current_period_feedback MAX(CASE WHEN feedback_period_flag = DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END) AS current_period_feedback
FROM safety_accountability_feedback FROM safety_accountability_feedback
WHERE delete_enum = 'FALSE'
GROUP BY task_detail_id GROUP BY task_detail_id
) fb_agg ON td.task_detail_id = fb_agg.task_detail_id ) fb_agg ON td.task_detail_id = fb_agg.task_detail_id
<where> <where>
td.delete_enum = 'FALSE'
<if test="params.taskListId != null and params.taskListId != ''"> <if test="params.taskListId != null and params.taskListId != ''">
AND td.task_list_id = #{params.taskListId} AND td.task_list_id = #{params.taskListId}
</if> </if>
@ -34,7 +36,7 @@
<select id="listByTaskListId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskDetailDO"> <select id="listByTaskListId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskDetailDO">
SELECT * FROM safety_accountability_task_detail SELECT * FROM safety_accountability_task_detail
WHERE task_list_id = #{taskListId} WHERE task_list_id = #{taskListId} AND delete_enum = 'FALSE'
ORDER BY id ASC ORDER BY id ASC
</select> </select>
@ -46,10 +48,10 @@
rating_dept.name AS ratingDepartmentName, rating_dept.name AS ratingDepartmentName,
rating_user.name AS ratingUserName rating_user.name AS ratingUserName
FROM safety_accountability_task_detail td FROM safety_accountability_task_detail td
LEFT JOIN safety_accountability_task_list tl ON td.task_list_id = tl.task_list_id LEFT JOIN safety_accountability_task_list tl ON td.task_list_id = tl.task_list_id AND tl.delete_enum = 'FALSE'
LEFT JOIN department rating_dept ON td.rating_department_id = rating_dept.id LEFT JOIN department rating_dept ON td.rating_department_id = rating_dept.id
LEFT JOIN user rating_user ON td.rating_user_id = rating_user.id LEFT JOIN user rating_user ON td.rating_user_id = rating_user.id
WHERE td.task_detail_id = #{taskDetailId} WHERE td.task_detail_id = #{taskDetailId} AND td.delete_enum = 'FALSE'
</select> </select>
<delete id="deleteByTaskListId"> <delete id="deleteByTaskListId">
@ -58,7 +60,7 @@
<select id="listInProgress" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskDetailDO"> <select id="listInProgress" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskDetailDO">
SELECT * FROM safety_accountability_task_detail SELECT * FROM safety_accountability_task_detail
WHERE task_status = 1 WHERE task_status = 1 AND delete_enum = 'FALSE'
</select> </select>
</mapper> </mapper>

View File

@ -22,9 +22,11 @@
COUNT(*) AS task_count, COUNT(*) AS task_count,
SUM(CASE WHEN feedback_status = 2 THEN 1 ELSE 0 END) AS has_abnormal SUM(CASE WHEN feedback_status = 2 THEN 1 ELSE 0 END) AS has_abnormal
FROM safety_accountability_task_detail FROM safety_accountability_task_detail
WHERE delete_enum = 'FALSE'
GROUP BY task_list_id GROUP BY task_list_id
) td_agg ON tl.task_list_id = td_agg.task_list_id ) td_agg ON tl.task_list_id = td_agg.task_list_id
<where> <where>
tl.delete_enum = 'FALSE'
<if test="params.createCorpId != null"> <if test="params.createCorpId != null">
AND tl.create_corp_id = #{params.createCorpId} AND tl.create_corp_id = #{params.createCorpId}
</if> </if>
@ -65,9 +67,10 @@
COUNT(*) AS task_count, COUNT(*) AS task_count,
SUM(CASE WHEN feedback_status = 2 THEN 1 ELSE 0 END) AS has_abnormal SUM(CASE WHEN feedback_status = 2 THEN 1 ELSE 0 END) AS has_abnormal
FROM safety_accountability_task_detail FROM safety_accountability_task_detail
WHERE delete_enum = 'FALSE'
GROUP BY task_list_id GROUP BY task_list_id
) td_agg ON tl.task_list_id = td_agg.task_list_id ) td_agg ON tl.task_list_id = td_agg.task_list_id
WHERE tl.id = #{id} WHERE tl.id = #{id} and tl.delete_enum = 'FALSE'
</select> </select>
<select id="getByTaskListId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO"> <select id="getByTaskListId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO">
@ -88,15 +91,16 @@
COUNT(*) AS task_count, COUNT(*) AS task_count,
SUM(CASE WHEN feedback_status = 2 THEN 1 ELSE 0 END) AS has_abnormal SUM(CASE WHEN feedback_status = 2 THEN 1 ELSE 0 END) AS has_abnormal
FROM safety_accountability_task_detail FROM safety_accountability_task_detail
WHERE delete_enum = 'FALSE'
GROUP BY task_list_id GROUP BY task_list_id
) td_agg ON tl.task_list_id = td_agg.task_list_id ) td_agg ON tl.task_list_id = td_agg.task_list_id
WHERE tl.task_list_id = #{taskListId} WHERE tl.task_list_id = #{taskListId} and tl.delete_enum = 'FALSE'
</select> </select>
<select id="getInfoByTaskListId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO"> <select id="getInfoByTaskListId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO">
SELECT * SELECT *
FROM safety_accountability_task_list FROM safety_accountability_task_list
WHERE task_list_id = #{taskListId} WHERE task_list_id = #{taskListId} and delete_enum = 'FALSE'
</select> </select>
<select id="list" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO"> <select id="list" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO">
@ -117,9 +121,11 @@
COUNT(*) AS task_count, COUNT(*) AS task_count,
SUM(CASE WHEN feedback_status = 2 THEN 1 ELSE 0 END) AS has_abnormal SUM(CASE WHEN feedback_status = 2 THEN 1 ELSE 0 END) AS has_abnormal
FROM safety_accountability_task_detail FROM safety_accountability_task_detail
WHERE delete_enum = 'FALSE'
GROUP BY task_list_id GROUP BY task_list_id
) td_agg ON tl.task_list_id = td_agg.task_list_id ) td_agg ON tl.task_list_id = td_agg.task_list_id
<where> <where>
tl.delete_enum = 'FALSE'
<if test="params.createCorpId != null"> <if test="params.createCorpId != null">
AND tl.create_corp_id = #{params.createCorpId} AND tl.create_corp_id = #{params.createCorpId}
</if> </if>
@ -138,24 +144,25 @@
<select id="listExpiredInProgress" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO"> <select id="listExpiredInProgress" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO">
SELECT * FROM safety_accountability_task_list SELECT * FROM safety_accountability_task_list
WHERE status = 1 AND issue_status = 1 AND (period_end_time IS NOT NULL AND period_end_time &lt; NOW()) WHERE status = 1 AND issue_status = 1 AND (period_end_time IS NOT NULL AND period_end_time &lt; NOW()) AND delete_enum = 'FALSE'
</select> </select>
<select id="listIssuedWithPeriod" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO"> <select id="listIssuedWithPeriod" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskListDO">
SELECT * FROM safety_accountability_task_list SELECT * FROM safety_accountability_task_list
WHERE issue_status = 1 AND period_start_time IS NOT NULL AND period_end_time IS NOT NULL WHERE issue_status = 1 AND period_start_time IS NOT NULL AND period_end_time IS NOT NULL
AND period_end_time > DATE_SUB(NOW(), INTERVAL 1 MONTH) AND period_end_time > DATE_SUB(NOW(), INTERVAL 1 MONTH) AND delete_enum = 'FALSE'
</select> </select>
<select id="corpStatistics" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.CorpStatisticsDO"> <select id="corpStatistics" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.CorpStatisticsDO">
SELECT tl.execute_corp_id AS corpId, SELECT tl.execute_corp_id AS corpId,
ci.corp_name AS corpName, ci.corp_name AS corpName,
COUNT(*) AS totalTaskCount, COUNT(DISTINCT td.task_detail_id) AS totalTaskCount,
SUM(CASE WHEN tl.status = 2 THEN 1 ELSE 0 END) AS completedTaskCount, SUM(CASE WHEN td.task_status = 2 THEN 1 ELSE 0 END) AS completedTaskCount,
SUM(CASE WHEN tl.status = 3 THEN 1 ELSE 0 END) AS closedTaskCount SUM(CASE WHEN td.task_status = 3 THEN 1 ELSE 0 END) AS closedTaskCount
FROM safety_accountability_task_list tl FROM safety_accountability_task_list tl
LEFT JOIN safety_accountability_task_detail td ON tl.task_list_id = td.task_list_id AND td.delete_enum = 'FALSE'
LEFT JOIN corp_info ci ON tl.execute_corp_id = ci.id LEFT JOIN corp_info ci ON tl.execute_corp_id = ci.id
WHERE tl.issue_status = 1 WHERE tl.issue_status = 1 AND tl.delete_enum = 'FALSE'
<if test="params.corpName != null and params.corpName != ''"> <if test="params.corpName != null and params.corpName != ''">
AND ci.corp_name LIKE CONCAT('%', #{params.corpName}, '%') AND ci.corp_name LIKE CONCAT('%', #{params.corpName}, '%')
</if> </if>
@ -169,7 +176,7 @@
COUNT(*) AS listCount COUNT(*) AS listCount
FROM safety_accountability_task_list tl FROM safety_accountability_task_list tl
LEFT JOIN corp_info ci ON tl.execute_corp_id = ci.id LEFT JOIN corp_info ci ON tl.execute_corp_id = ci.id
WHERE tl.issue_status = 1 WHERE tl.issue_status = 1 AND tl.delete_enum = 'FALSE'
<if test="params.corpName != null and params.corpName != ''"> <if test="params.corpName != null and params.corpName != ''">
AND ci.corp_name LIKE CONCAT('%', #{params.corpName}, '%') AND ci.corp_name LIKE CONCAT('%', #{params.corpName}, '%')
</if> </if>
@ -189,7 +196,7 @@
COUNT(*) AS issueCount COUNT(*) AS issueCount
FROM safety_accountability_task_list tl FROM safety_accountability_task_list tl
LEFT JOIN corp_info ci ON tl.execute_corp_id = ci.id LEFT JOIN corp_info ci ON tl.execute_corp_id = ci.id
WHERE tl.issue_status = 1 WHERE tl.issue_status = 1 AND tl.delete_enum = 'FALSE'
<if test="params.corpName != null and params.corpName != ''"> <if test="params.corpName != null and params.corpName != ''">
AND ci.corp_name LIKE CONCAT('%', #{params.corpName}, '%') AND ci.corp_name LIKE CONCAT('%', #{params.corpName}, '%')
</if> </if>