医院废弃物信息化管理平台
“mitao”
2025-12-24 3763145f34d7706923d55edc32f5cfbc8bc08b92
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package cn.besteam.modules.medical.service.impl;
 
import cn.besteam.common.constant.ErrorCode;
import cn.besteam.common.constant.MedicalWasteEnum;
import cn.besteam.common.exception.BusinessException;
import cn.besteam.modules.medical.dto.MwWarningRecordHandleDTO;
import cn.besteam.modules.medical.entity.MwWarningRecord;
import cn.besteam.modules.medical.entity.MwWarningRecordHandle;
import cn.besteam.modules.medical.mapper.MwWarningRecordHandleMapper;
import cn.besteam.modules.medical.service.IMwWarningRecordHandleService;
import cn.besteam.modules.medical.service.IMwWarningRecordService;
import cn.besteam.modules.medical.vo.MwWarningRecordHandleVO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * @Description: 预警消息-处理记录
 * @author: besteam
 * @date: 2020-07-17
 * @version: V1.0
 */
@Service
public class MwWarningRecordHandleServiceImpl extends ServiceImpl<MwWarningRecordHandleMapper, MwWarningRecordHandle> implements IMwWarningRecordHandleService {
 
    @Autowired
    private IMwWarningRecordService mwWarningRecordService;
 
    @Override
    public List<MwWarningRecordHandleVO> listByWarningRecord(Integer warningRecordId) {
 
        return baseMapper.listByWarningRecord(warningRecordId);
    }
 
    @Transactional
    @Override
    public boolean handle(MwWarningRecordHandleDTO dto) {
 
        MwWarningRecord warningRecord = mwWarningRecordService.getById(dto.getWarningRecordId());
        if (warningRecord == null) {
            throw new BusinessException(ErrorCode.ERR_500, "预警信息不存在");
        }
        if (warningRecord.getStatus().equals(MedicalWasteEnum.WarningRecordStatusEnum.PASS.getStatus())) {
            throw new BusinessException(ErrorCode.ERR_500, "预警信息已通过,不能重复提交");
        }
        warningRecord.setStatus(dto.getStatus());
        mwWarningRecordService.updateById(warningRecord);
        //
        MwWarningRecordHandle mwWarningRecordHandle = new MwWarningRecordHandle();
        mwWarningRecordHandle.setWarningRecordId(warningRecord.getId());
        mwWarningRecordHandle.setContent(dto.getContent());
        mwWarningRecordHandle.setStatus(dto.getStatus());
        return save(mwWarningRecordHandle);
    }
 
    @Transactional
    @Override
    public boolean batchHandle(List<MwWarningRecordHandleDTO> list, String content, Integer status) {
 
        List<MwWarningRecord> warningRecordList = mwWarningRecordService.listByIds(list.stream().map(MwWarningRecordHandleDTO::getWarningRecordId).collect(Collectors.toList()));
        if (CollectionUtils.isEmpty(warningRecordList)) {
            throw new BusinessException(ErrorCode.ERR_500, "预警信息列表不能为空");
        }
        long count = warningRecordList.stream().map(MwWarningRecord::getType).collect(Collectors.toSet()).size();
        if (count > 1) {
            throw new BusinessException(ErrorCode.ERR_500, "只能选择同一类型的预警信息");
        }
        List<MwWarningRecordHandle> mwWarningRecordHandleList = new ArrayList<>(warningRecordList.size());
        for (MwWarningRecord warningRecord : warningRecordList) {
            if (warningRecord.getStatus().equals(MedicalWasteEnum.WarningRecordStatusEnum.PASS.getStatus())) {
                throw new BusinessException(ErrorCode.ERR_500, "预警信息已通过,不能重复提交");
            }
            warningRecord.setStatus(status);
            //;
            MwWarningRecordHandle mwWarningRecordHandle = new MwWarningRecordHandle();
            mwWarningRecordHandle.setWarningRecordId(warningRecord.getId());
            mwWarningRecordHandle.setContent(content);
            mwWarningRecordHandle.setStatus(status);
            mwWarningRecordHandleList.add(mwWarningRecordHandle);
        }
        mwWarningRecordService.updateBatchById(warningRecordList);
        return saveBatch(mwWarningRecordHandleList);
    }
 
}