master
tianxinlei 2026-05-27 16:28:38 +08:00
parent 58516ab64a
commit b6b8a98676
5 changed files with 49 additions and 45 deletions

View File

@ -3,14 +3,13 @@ package com.zcloud.safetyDutyList.command.query.tasklist;
import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.zcloud.safetyDutyList.domain.enums.FeedbackCycleEnum;
import com.zcloud.safetyDutyList.domain.gateway.tasklist.FeedbackGateway;
import com.zcloud.safetyDutyList.domain.gateway.tasklist.TaskDetailGateway;
import com.zcloud.safetyDutyList.domain.model.tasklist.FeedbackE;
import com.zcloud.safetyDutyList.domain.model.tasklist.TaskDetailE;
import com.zcloud.safetyDutyList.dto.clientobject.tasklist.*; import com.zcloud.safetyDutyList.dto.clientobject.tasklist.*;
import com.zcloud.safetyDutyList.dto.tasklist.FeedbackListQry; import com.zcloud.safetyDutyList.dto.tasklist.FeedbackListQry;
import com.zcloud.safetyDutyList.dto.tasklist.FeedbackPeriodGroupQry; import com.zcloud.safetyDutyList.dto.tasklist.FeedbackPeriodGroupQry;
import com.zcloud.safetyDutyList.persistence.dataobject.tasklist.FeedbackDO;
import com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskDetailDO;
import com.zcloud.safetyDutyList.persistence.repository.tasklist.FeedbackRepository;
import com.zcloud.safetyDutyList.persistence.repository.tasklist.TaskDetailRepository;
import jodd.util.StringUtil; import jodd.util.StringUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -21,29 +20,21 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/**
*
* <p>
*
* -
* -
* -
*/
@Component @Component
@AllArgsConstructor @AllArgsConstructor
public class FeedbackQueryExe { public class FeedbackQueryExe {
private final FeedbackGateway feedbackGateway; private final FeedbackRepository feedbackRepository;
private final TaskDetailGateway taskDetailGateway; private final TaskDetailRepository taskDetailRepository;
public MultiResponse<FeedbackPeriodGroupCO> periodGroupList(FeedbackPeriodGroupQry qry) { public MultiResponse<FeedbackPeriodGroupCO> periodGroupList(FeedbackPeriodGroupQry qry) {
List<FeedbackE> feedbackList = feedbackGateway.listByTaskDetailId(qry.getTaskDetailId()); List<FeedbackDO> feedbackList = feedbackRepository.listByTaskDetailId(qry.getTaskDetailId());
if (feedbackList == null || feedbackList.isEmpty()) { if (feedbackList == null || feedbackList.isEmpty()) {
return MultiResponse.of(new ArrayList<>()); return MultiResponse.of(new ArrayList<>());
} }
Map<String, List<FeedbackE>> groupedByPeriod = feedbackList.stream() Map<String, List<FeedbackDO>> groupedByPeriod = feedbackList.stream()
.filter(f -> f.getFeedbackPeriodFlag() != null) .filter(f -> f.getFeedbackPeriodFlag() != null)
.collect(Collectors.groupingBy(FeedbackE::getFeedbackPeriodFlag)); .collect(Collectors.groupingBy(FeedbackDO::getFeedbackPeriodFlag));
List<FeedbackPeriodGroupCO> result = new ArrayList<>(); List<FeedbackPeriodGroupCO> result = new ArrayList<>();
groupedByPeriod.forEach((periodFlag, feedbacks) -> { groupedByPeriod.forEach((periodFlag, feedbacks) -> {
@ -52,10 +43,10 @@ public class FeedbackQueryExe {
co.setFeedbackPeriodFlag(periodFlag); co.setFeedbackPeriodFlag(periodFlag);
co.setFeedbackCount(feedbacks.size()); co.setFeedbackCount(feedbacks.size());
if (!feedbacks.isEmpty()) { if (!feedbacks.isEmpty()) {
FeedbackE first = feedbacks.get(0); FeedbackDO first = feedbacks.get(0);
co.setFeedbackPeriodStartTime(first.getFeedbackPeriodStartTime()); co.setFeedbackPeriodStartTime(first.getFeedbackPeriodStartTime());
co.setFeedbackPeriodEndTime(first.getFeedbackPeriodEndTime()); co.setFeedbackPeriodEndTime(first.getFeedbackPeriodEndTime());
co.setFeedbackUserName(first.getCreateName()); co.setFeedbackUserName(first.getFeedbackUserName());
} }
result.add(co); result.add(co);
}); });
@ -63,34 +54,34 @@ public class FeedbackQueryExe {
} }
public MultiResponse<FeedbackCO> feedbackList(FeedbackListQry qry) { public MultiResponse<FeedbackCO> feedbackList(FeedbackListQry qry) {
List<FeedbackE> feedbackList = feedbackGateway.listByTaskDetailId(qry.getTaskDetailId()); List<FeedbackDO> feedbackList = feedbackRepository.listByTaskDetailId(qry.getTaskDetailId());
if (feedbackList == null || feedbackList.isEmpty()) { if (feedbackList == null || feedbackList.isEmpty()) {
return MultiResponse.of(new ArrayList<>()); return MultiResponse.of(new ArrayList<>());
} }
List<FeedbackCO> coList = new ArrayList<>(); List<FeedbackCO> coList = new ArrayList<>();
for (FeedbackE feedbackE : feedbackList) { for (FeedbackDO feedbackDO : feedbackList) {
if (!StringUtil.isEmpty(qry.getFeedbackPeriodFlag()) && !qry.getFeedbackPeriodFlag().equals(feedbackE.getFeedbackPeriodFlag())) { if (!StringUtil.isEmpty(qry.getFeedbackPeriodFlag()) && !qry.getFeedbackPeriodFlag().equals(feedbackDO.getFeedbackPeriodFlag())) {
continue; continue;
} }
FeedbackCO co = new FeedbackCO(); FeedbackCO co = new FeedbackCO();
BeanUtils.copyProperties(feedbackE, co); BeanUtils.copyProperties(feedbackDO, co);
coList.add(co); coList.add(co);
} }
return MultiResponse.of(coList); return MultiResponse.of(coList);
} }
public SingleResponse<FeedbackInfoCO> getByFeedbackId(String feedbackId) { public SingleResponse<FeedbackInfoCO> getByFeedbackId(String feedbackId) {
FeedbackE feedbackE = feedbackGateway.getByFeedbackId(feedbackId); FeedbackDO feedbackDO = feedbackRepository.getByFeedbackId(feedbackId);
if (feedbackE == null) { if (feedbackDO == null) {
throw new BizException("反馈记录不存在"); throw new BizException("反馈记录不存在");
} }
FeedbackInfoCO co = new FeedbackInfoCO(); FeedbackInfoCO co = new FeedbackInfoCO();
BeanUtils.copyProperties(feedbackE, co); BeanUtils.copyProperties(feedbackDO, co);
TaskDetailE detailE = taskDetailGateway.getByTaskDetailId(feedbackE.getTaskDetailId()); TaskDetailDO detailDO = taskDetailRepository.getByTaskDetailId(feedbackDO.getTaskDetailId());
if (detailE != null) { if (detailDO != null) {
co.setExecuteContent(detailE.getExecuteContent()); co.setExecuteContent(detailDO.getExecuteContent());
co.setFeedbackCycleType(detailE.getFeedbackCycleType()); co.setFeedbackCycleType(detailDO.getFeedbackCycleType());
} }
return SingleResponse.of(co); return SingleResponse.of(co);
} }

View File

@ -1,6 +1,8 @@
package com.zcloud.safetyDutyList.command.tasklist; package com.zcloud.safetyDutyList.command.tasklist;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.zcloud.safetyDutyList.domain.gateway.tasklist.TaskDetailGateway; import com.zcloud.safetyDutyList.domain.gateway.tasklist.TaskDetailGateway;
import com.zcloud.safetyDutyList.domain.model.tasklist.TaskDetailE; import com.zcloud.safetyDutyList.domain.model.tasklist.TaskDetailE;
import com.zcloud.safetyDutyList.dto.tasklist.TaskDetailUpdateScoreCmd; import com.zcloud.safetyDutyList.dto.tasklist.TaskDetailUpdateScoreCmd;
@ -23,6 +25,11 @@ public class TaskDetailUpdateScoreExe {
private final TaskDetailGateway taskDetailGateway; private final TaskDetailGateway taskDetailGateway;
public void execute(TaskDetailUpdateScoreCmd cmd) { public void execute(TaskDetailUpdateScoreCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
if (ssoUser == null) {
throw new BizException("用户未登录");
}
TaskDetailE detailE = taskDetailGateway.getByTaskDetailId(cmd.getTaskDetailId()); TaskDetailE detailE = taskDetailGateway.getByTaskDetailId(cmd.getTaskDetailId());
if (detailE == null) { if (detailE == null) {
throw new BizException("任务不存在"); throw new BizException("任务不存在");
@ -38,8 +45,10 @@ public class TaskDetailUpdateScoreExe {
} }
detailE.setTaskRating(cmd.getTaskRating()); detailE.setTaskRating(cmd.getTaskRating());
detailE.setRatingTime(LocalDateTime.now()); detailE.setRatingTime(LocalDateTime.now());
detailE.setRatingDepartmentId(cmd.getRatingDeptId());
detailE.setRatingUserId(cmd.getRatingUserId()); detailE.setRatingDepartmentId(ssoUser.getOrgId());
detailE.setRatingUserId(ssoUser.getUserId());
boolean res = taskDetailGateway.update(detailE); boolean res = taskDetailGateway.update(detailE);
if (!res) { if (!res) {
throw new BizException("评分失败"); throw new BizException("评分失败");

View File

@ -1,5 +1,6 @@
package com.zcloud.safetyDutyList.dto.tasklist; package com.zcloud.safetyDutyList.dto.tasklist;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -11,7 +12,7 @@ import javax.validation.constraints.NotEmpty;
* *
*/ */
@Data @Data
public class FeedbackListQry { public class FeedbackListQry extends PageQuery {
@ApiModelProperty(value = "任务ID", required = true) @ApiModelProperty(value = "任务ID", required = true)
@NotEmpty(message = "任务ID不能为空") @NotEmpty(message = "任务ID不能为空")
private String taskDetailId; private String taskDetailId;

View File

@ -26,12 +26,4 @@ public class TaskDetailUpdateScoreCmd implements Serializable {
@ApiModelProperty(value = "分数(不能超过任务分值)", required = true) @ApiModelProperty(value = "分数(不能超过任务分值)", required = true)
@NotNull(message = "分数不能为空") @NotNull(message = "分数不能为空")
private BigDecimal taskRating; private BigDecimal taskRating;
@ApiModelProperty(value = "评分部门ID", required = true)
@NotNull(message = "评分部门ID不能为空")
private Long ratingDeptId;
@ApiModelProperty(value = "评分人员ID", required = true)
@NotNull(message = "评分人员ID不能为空")
private Long ratingUserId;
} }

View File

@ -42,9 +42,20 @@
</select> </select>
<select id="listByTaskDetailId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.FeedbackDO"> <select id="listByTaskDetailId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.FeedbackDO">
SELECT * FROM safety_accountability_feedback SELECT f.*,
WHERE task_detail_id = #{taskDetailId} AND delete_enum = 'FALSE' td.execute_content AS executeContent,
ORDER BY feedback_time DESC tl.task_list_name AS taskListName,
fb_user.name AS feedbackUserName,
fb_dept.name AS feedbackDepartmentName,
fb_corp.corp_name AS feedbackCorpName
FROM safety_accountability_feedback f
LEFT JOIN safety_accountability_task_detail td ON f.task_detail_id = td.task_detail_id AND td.delete_enum = 'FALSE'
LEFT JOIN safety_accountability_task_list tl ON f.task_list_id = tl.task_list_id AND tl.delete_enum = 'FALSE'
LEFT JOIN user fb_user ON f.feedback_user_id = fb_user.id
LEFT JOIN department fb_dept ON f.feedback_department_id = fb_dept.id
LEFT JOIN corp_info fb_corp ON f.feedback_corp_id = fb_corp.id
WHERE f.task_detail_id = #{taskDetailId} AND f.delete_enum = 'FALSE'
ORDER BY f.feedback_time DESC
</select> </select>
<select id="getByFeedbackId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.FeedbackDO"> <select id="getByFeedbackId" resultType="com.zcloud.safetyDutyList.persistence.dataobject.tasklist.FeedbackDO">