feat(): 完善检查发起隐患处罚数据存储、优化处罚查询逻辑
parent
879ac8e8a5
commit
0ab2942367
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.key.project.command.inspection;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.cola.exception.BizException;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||
|
|
@ -21,17 +22,21 @@ import com.zcloud.key.project.dto.hidden.HiddenAddCmd;
|
|||
import com.zcloud.key.project.dto.inspection.*;
|
||||
import com.zcloud.key.project.persistence.dataobject.hidden.HiddenDO;
|
||||
import com.zcloud.key.project.persistence.dataobject.hidden.HiddenFindUserDO;
|
||||
import com.zcloud.key.project.persistence.dataobject.hidden.HiddenPenaltyDO;
|
||||
import com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmentalInspectionContentDO;
|
||||
import com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmentalInspectionDO;
|
||||
import com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmentalInspectionDefendDO;
|
||||
import com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmentalInspectionUserDO;
|
||||
import com.zcloud.key.project.persistence.dataobject.project.KeyProjectDO;
|
||||
import com.zcloud.key.project.persistence.dataobject.project.KeyProjectPenaltyPersonnelDO;
|
||||
import com.zcloud.key.project.persistence.repository.hidden.HiddenFindUserRepository;
|
||||
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.SafetyEnvironmentalInspectionContentRepository;
|
||||
import com.zcloud.key.project.persistence.repository.inspection.SafetyEnvironmentalInspectionDefendRepository;
|
||||
import com.zcloud.key.project.persistence.repository.inspection.SafetyEnvironmentalInspectionRepository;
|
||||
import com.zcloud.key.project.persistence.repository.inspection.SafetyEnvironmentalInspectionUserRepository;
|
||||
import com.zcloud.key.project.persistence.repository.project.KeyProjectPenaltyPersonnelRepository;
|
||||
import com.zcloud.key.project.persistence.repository.project.KeyProjectRepository;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -65,6 +70,8 @@ public class SafetyEnvironmentalInspectionUpdateExe {
|
|||
private final HiddenRepository hiddenRepository;
|
||||
private final HiddenFindUserRepository hiddenFindUserRepository;
|
||||
private final KeyProjectRepository keyProjectRepository;
|
||||
private final KeyProjectPenaltyPersonnelRepository keyProjectPenaltyPersonnelRepository;
|
||||
private final HiddenPenaltyRepository hiddenPenaltyRepository;
|
||||
private final MessageNoticeExe messageNoticeExe;
|
||||
private final MessageTemplateConfig messageTemplateConfig;
|
||||
|
||||
|
|
@ -133,6 +140,14 @@ public class SafetyEnvironmentalInspectionUpdateExe {
|
|||
params.put("eqForeignKey", safetyEnvironmentalInspectionE.getInspectionId());
|
||||
// 删除隐患
|
||||
List<HiddenDO> deleteHiddenList = hiddenRepository.listAll(params);
|
||||
// 删除旧的处罚记录
|
||||
if (CollUtil.isNotEmpty(deleteHiddenList)) {
|
||||
List<String> deletedHiddenIds = deleteHiddenList.stream()
|
||||
.map(HiddenDO::getHiddenId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
hiddenPenaltyRepository.deleteByHiddenIds(deletedHiddenIds);
|
||||
}
|
||||
List<String> hiddenVideoFile = deleteHiddenList.stream().map(HiddenDO::getVideoUrl).collect(Collectors.toList());
|
||||
// zcloudImgFilesFacade.deleteFileList(hiddenVideoFile);
|
||||
hiddenRepository.deleteBatch(params);
|
||||
|
|
@ -195,6 +210,44 @@ public class SafetyEnvironmentalInspectionUpdateExe {
|
|||
hiddenRepository.batchInsert(BeanUtil.copyToList(hiddenList, HiddenDO.class));
|
||||
// 新增隐患发现人
|
||||
hiddenFindUserRepository.batchInsert(BeanUtil.copyToList(hiddenFindUserList, HiddenFindUserDO.class));
|
||||
|
||||
// 根据重点作业配置的处罚人员,为每个隐患初始化处罚记录
|
||||
List<KeyProjectPenaltyPersonnelDO> personnelList =
|
||||
keyProjectPenaltyPersonnelRepository.getListByProjectId(cmd.getKeyProjectId());
|
||||
if (CollUtil.isNotEmpty(personnelList)) {
|
||||
QueryWrapper<KeyProjectDO> projectQuery = new QueryWrapper<>();
|
||||
projectQuery.eq("key_project_id", cmd.getKeyProjectId());
|
||||
projectQuery.eq("delete_enum", "FALSE");
|
||||
projectQuery.orderByDesc("create_time");
|
||||
projectQuery.last("limit 1");
|
||||
KeyProjectDO projectDO = keyProjectRepository.getOne(projectQuery);
|
||||
|
||||
List<HiddenPenaltyDO> penaltyList = new ArrayList<>();
|
||||
hiddenAddCmdList.forEach(hiddenAddCmd -> personnelList.forEach(person -> {
|
||||
HiddenPenaltyDO penalty = new HiddenPenaltyDO();
|
||||
penalty.setHiddenPenaltyId(Tools.get32UUID());
|
||||
penalty.setHiddenId(hiddenAddCmd.getHiddenId());
|
||||
penalty.setKeyProjectId(cmd.getKeyProjectId());
|
||||
penalty.setPenalizedCorpId(safetyEnvironmentalInspectionE.getInspectedCorpinfoId());
|
||||
penalty.setPenalizedUserId(person.getUserId());
|
||||
penalty.setFineFlag(0);
|
||||
penalty.setFeedbackStatus(0);
|
||||
penalty.setEditFlag(0);
|
||||
penaltyList.add(penalty);
|
||||
}));
|
||||
hiddenPenaltyRepository.saveBatch(penaltyList);
|
||||
|
||||
String projectName = projectDO != null ? projectDO.getProjectName() : "";
|
||||
Map<String, Object> sendParams = new HashMap<>();
|
||||
sendParams.put("keyProject", projectName);
|
||||
personnelList.forEach(person -> {
|
||||
messageNoticeExe.messageNotice(person.getUserId(),
|
||||
messageTemplateConfig.getHiddenDangerPenaltyPersonApplyPenalty(), sendParams);
|
||||
messageNoticeExe.sendMessageAddEvent(person.getUserId(),
|
||||
"您有一条待处罚隐患,请及时发起处罚。", "待处罚",
|
||||
safetyEnvironmentalInspectionE.getId(), safetyEnvironmentalInspectionE.getId());
|
||||
});
|
||||
}
|
||||
}
|
||||
//TODO 站内信
|
||||
// 发送站内信和待办
|
||||
|
|
|
|||
|
|
@ -25,4 +25,6 @@ public interface HiddenPenaltyRepository extends BaseRepository<HiddenPenaltyDO>
|
|||
Long countByUserId(Long userId);
|
||||
|
||||
Long countFeedbackByUserId(Long userId);
|
||||
|
||||
void deleteByHiddenIds(List<String> hiddenIds);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.key.project.persistence.repository.impl.hidden;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
|
|
@ -68,4 +69,13 @@ public class HiddenPenaltyRepositoryImpl
|
|||
public Long countFeedbackByUserId(Long userId) {
|
||||
return hiddenPenaltyMapper.countFeedbackByUserId(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByHiddenIds(List<String> hiddenIds) {
|
||||
UpdateWrapper<HiddenPenaltyDO> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.in("hidden_id", hiddenIds);
|
||||
updateWrapper.eq("delete_enum", "FALSE");
|
||||
updateWrapper.set("delete_enum", "TRUE");
|
||||
hiddenPenaltyMapper.update(null, updateWrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,14 +121,23 @@
|
|||
LEFT JOIN user xmu ON xmu.id = kp.xgf_master_user_id
|
||||
LEFT JOIN user xmu2 ON xmu2.id = kp2.xgf_master_user_id
|
||||
WHERE hp.hidden_penalty_id = #{hiddenPenaltyId} AND hp.delete_enum = 'FALSE'
|
||||
GROUP BY hp.id
|
||||
</select>
|
||||
|
||||
<select id="feedbackListPage" resultType="com.zcloud.key.project.persistence.dataobject.hidden.HiddenPenaltyFeedbackDO">
|
||||
SELECT hpf.*,
|
||||
hp.penalty_desc as penalty_desc,
|
||||
hp.feedback_status as feedback_status,
|
||||
kp.project_name as project_name,
|
||||
xci.corp_name as xgf_corpinfo_name,
|
||||
SELECT hp.id AS id,
|
||||
hp.hidden_penalty_id AS hidden_penalty_id,
|
||||
hp.penalty_desc AS penalty_desc,
|
||||
hp.feedback_status AS feedback_status,
|
||||
hp.penalized_user_id AS penalized_user_id,
|
||||
hpf.hidden_penalty_feedback_id AS hidden_penalty_feedback_id,
|
||||
hpf.feedback_user_id AS feedback_user_id,
|
||||
hpf.feedback_time AS feedback_time,
|
||||
hpf.fine_payment_receipt AS fine_payment_receipt,
|
||||
hpf.create_time AS create_time,
|
||||
hpf.update_time AS update_time,
|
||||
kp.project_name AS project_name,
|
||||
xci.corp_name AS xgf_corpinfo_name,
|
||||
u.name AS feedback_user_name,
|
||||
h.id AS hidden_table_id,
|
||||
h.hidden_id AS hidden_id,
|
||||
|
|
@ -136,23 +145,22 @@
|
|||
h.create_name AS find_user_name,
|
||||
h.foreign_key AS foreign_key,
|
||||
h.source AS hidden_source
|
||||
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'
|
||||
FROM hidden_penalty hp
|
||||
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)
|
||||
LEFT JOIN key_project kp ON kp.key_project_id = i.key_project_id
|
||||
LEFT JOIN ai_alarm aa ON h.foreign_key = aa.ai_alarm_id AND h.source = 1
|
||||
LEFT JOIN key_project kp2 ON kp2.key_project_id = aa.key_project_id
|
||||
LEFT JOIN corp_info xci ON xci.id = IFNULL(kp.xgf_corpinfo_id, kp2.xgf_corpinfo_id)
|
||||
LEFT JOIN hidden_penalty_feedback hpf ON hpf.hidden_penalty_id = hp.hidden_penalty_id
|
||||
AND hpf.delete_enum = 'FALSE'
|
||||
AND hpf.id = (
|
||||
SELECT MAX(id) FROM hidden_penalty_feedback
|
||||
WHERE hidden_penalty_id = hp.hidden_penalty_id AND delete_enum = 'FALSE'
|
||||
)
|
||||
LEFT JOIN user u ON u.id = hpf.feedback_user_id AND u.delete_enum = 'FALSE'
|
||||
<where>
|
||||
hpf.delete_enum = 'FALSE'
|
||||
hp.delete_enum = 'FALSE'
|
||||
AND hp.fine_flag = 1
|
||||
AND (h.source NOT IN (2, 3) OR i.inspection_id IS NOT NULL)
|
||||
<if test="params.xgfCorpinfoName != null and params.xgfCorpinfoName != ''">
|
||||
|
|
@ -188,8 +196,8 @@
|
|||
AND hp.penalty_desc LIKE CONCAT('%', #{params.penaltyDesc}, '%')
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY hpf.id
|
||||
ORDER BY hpf.feedback_time DESC, hpf.create_time DESC, hpf.id DESC
|
||||
GROUP BY hp.id
|
||||
ORDER BY hpf.feedback_time DESC, hp.create_time DESC, hpf.id DESC
|
||||
</select>
|
||||
|
||||
<select id="getFeedbackByPenaltyId" resultType="com.zcloud.key.project.persistence.dataobject.hidden.HiddenPenaltyFeedbackDO">
|
||||
|
|
|
|||
Loading…
Reference in New Issue