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);
|
}
|
|
}
|