feat(): 添加处罚管理、处罚反馈待办数量统计

dev
lishiwei 2026-06-23 13:37:15 +08:00
parent 3f00d5ab20
commit 8b4024c323
4 changed files with 57 additions and 2 deletions

View File

@ -15,6 +15,7 @@ import com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmen
import com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmentalInspectionUserDO;
import com.zcloud.key.project.persistence.dataobject.project.*;
import com.zcloud.key.project.persistence.repository.CorpInfoRepository;
import com.zcloud.key.project.persistence.repository.hidden.HiddenPenaltyRepository;
import com.zcloud.key.project.persistence.repository.hidden.HiddenRepository;
import com.zcloud.key.project.persistence.repository.inspection.SafetyEnvironmentalInspectionRepository;
import com.zcloud.key.project.persistence.repository.inspection.SafetyEnvironmentalInspectionUserRepository;
@ -48,6 +49,7 @@ public class KeyProjectQueryExe {
private final SafetyEnvironmentalInspectionRepository safetyEnvironmentalInspectionRepository;
private final SafetyEnvironmentalInspectionUserRepository safetyEnvironmentalInspectionUserRepository;
private final HiddenRepository hiddenRepository;
private final HiddenPenaltyRepository hiddenPenaltyRepository;
private final CorpInfoRepository corpInfoRepository;
/**
@ -254,6 +256,11 @@ public class KeyProjectQueryExe {
// 处罚管理数量(相关方未反馈的罚款处罚)
Long penaltyCount = hiddenPenaltyRepository.countByUserId(id);
// 处罚反馈数量
Long feedbackCount = hiddenPenaltyRepository.countFeedbackByUserId(id);
KeyProjectCountCO keyProjectCountCO = new KeyProjectCountCO();
keyProjectCountCO.setZdzyqrCount(zdzyqrCount);
keyProjectCountCO.setJchsCount(jchsCount);
@ -262,6 +269,8 @@ public class KeyProjectQueryExe {
keyProjectCountCO.setYhdzgCount(yhdzgCount);
keyProjectCountCO.setYhdysCount(yhdysCount);
keyProjectCountCO.setZdzysqCount(zdzysqCount);
keyProjectCountCO.setPenaltyCount(penaltyCount);
keyProjectCountCO.setFeedbackCount(feedbackCount);
return keyProjectCountCO;
}
}

View File

@ -38,5 +38,11 @@ public class KeyProjectCountCO extends ClientObject {
@ApiModelProperty(value = "隐患待验收数量")
private Long yhdysCount;
@ApiModelProperty(value = "处罚管理数量")
private Long penaltyCount;
@ApiModelProperty(value = "处罚反馈数量")
private Long feedbackCount;
}

View File

@ -2,6 +2,8 @@ package com.zcloud.key.project.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.key.project.persistence.dataobject.hidden.HiddenPenaltyDO;
import com.zcloud.key.project.persistence.dataobject.hidden.HiddenPenaltyFeedbackDO;
import org.apache.ibatis.annotations.Mapper;
@ -10,6 +12,10 @@ import org.apache.ibatis.annotations.Param;
import java.util.Map;
@Mapper
@DataScopes({
@DataScope(method = "listPage", menuPerms = ""),
@DataScope(method = "feedbackListPage", menuPerms = "")
})
public interface HiddenPenaltyMapper extends BaseMapper<HiddenPenaltyDO> {
IPage<HiddenPenaltyDO> listPage(IPage<HiddenPenaltyDO> iPage, @Param("params") Map<String, Object> params);
@ -21,4 +27,8 @@ public interface HiddenPenaltyMapper extends BaseMapper<HiddenPenaltyDO> {
HiddenPenaltyDO getByPenaltyId(@Param("hiddenPenaltyId") String hiddenPenaltyId);
HiddenPenaltyFeedbackDO getFeedbackByPenaltyId(@Param("hiddenPenaltyId") String hiddenPenaltyId);
Long countByUserId(@Param("userId") Long userId);
Long countFeedbackByUserId(@Param("userId") Long userId);
}

View File

@ -115,6 +115,12 @@
h.create_name AS find_user_name,
h.foreign_key AS foreign_key
FROM hidden_penalty_feedback hpf
INNER JOIN (
SELECT MAX(id) AS id
FROM hidden_penalty_feedback
WHERE delete_enum = 'FALSE'
GROUP BY hidden_penalty_id
) latest_hpf ON latest_hpf.id = hpf.id
LEFT JOIN hidden_penalty hp ON hp.hidden_penalty_id = hpf.hidden_penalty_id AND hp.delete_enum = 'FALSE'
LEFT JOIN hidden h ON hp.hidden_id = h.hidden_id AND h.delete_enum = 'FALSE'
LEFT JOIN safety_environmental_inspection i ON i.inspection_id = h.foreign_key AND h.source IN (2, 3)
@ -160,8 +166,7 @@
AND hp.penalty_desc LIKE CONCAT('%', #{params.penaltyDesc}, '%')
</if>
</where>
GROUP BY hpf.id
ORDER BY hpf.create_time DESC
ORDER BY hpf.feedback_time DESC, hpf.create_time DESC, hpf.id DESC
</select>
<select id="getFeedbackByPenaltyId" resultType="com.zcloud.key.project.persistence.dataobject.hidden.HiddenPenaltyFeedbackDO">
@ -173,4 +178,29 @@
ORDER BY feedback_time DESC, create_time DESC limit 1
</select>
<select id="countByUserId" resultType="java.lang.Long">
SELECT COUNT(DISTINCT h.id)
FROM hidden h
LEFT JOIN safety_environmental_inspection i ON i.inspection_id = h.foreign_key AND h.source IN (2, 3)
LEFT JOIN ai_alarm aa ON h.foreign_key = aa.ai_alarm_id AND h.source = 1
LEFT JOIN key_project_penalty_personnel kpp ON kpp.key_project_id = IFNULL(i.key_project_id, aa.key_project_id)
AND kpp.delete_enum = 'FALSE'
LEFT JOIN hidden_penalty hp ON hp.hidden_id = h.hidden_id AND hp.delete_enum = 'FALSE'
WHERE h.delete_enum = 'FALSE'
AND h.state = 3
AND kpp.user_id = #{userId}
AND (h.source NOT IN (2, 3) OR i.inspection_id IS NOT NULL)
AND (h.source != 1 OR aa.ai_alarm_id IS NOT NULL)
AND hp.id IS NULL
</select>
<select id="countFeedbackByUserId" resultType="java.lang.Long">
SELECT COUNT(DISTINCT hp.id)
FROM hidden_penalty hp
WHERE hp.delete_enum = 'FALSE'
AND hp.fine_flag = 1
AND hp.feedback_status = 0
AND hp.penalized_user_id = #{userId}
</select>
</mapper>