|
@ -7,17 +7,14 @@ import cn.hutool.core.util.StrUtil; |
|
|
import com.ccsens.carbasics.bean.dto.PatientDto; |
|
|
import com.ccsens.carbasics.bean.dto.PatientDto; |
|
|
import com.ccsens.carbasics.bean.po.*; |
|
|
import com.ccsens.carbasics.bean.po.*; |
|
|
import com.ccsens.carbasics.bean.vo.PatientVo; |
|
|
import com.ccsens.carbasics.bean.vo.PatientVo; |
|
|
import com.ccsens.carbasics.persist.dao.CodeParentDao; |
|
|
import com.ccsens.carbasics.persist.dao.*; |
|
|
import com.ccsens.carbasics.persist.dao.FirstAidDao; |
|
|
|
|
|
import com.ccsens.carbasics.persist.dao.FirstAidLogDao; |
|
|
|
|
|
import com.ccsens.carbasics.persist.dao.PatientDao; |
|
|
|
|
|
import com.ccsens.carbasics.persist.mapper.CodeDictionariesMapper; |
|
|
import com.ccsens.carbasics.persist.mapper.CodeDictionariesMapper; |
|
|
import com.ccsens.carbasics.persist.mapper.FirstAidRecordLogMapper; |
|
|
import com.ccsens.carbasics.persist.mapper.FirstAidRecordLogMapper; |
|
|
import com.ccsens.carbasics.persist.mapper.FirstAidRecordMapper; |
|
|
|
|
|
import com.ccsens.carbasics.util.Constant; |
|
|
import com.ccsens.carbasics.util.Constant; |
|
|
import com.ccsens.carbasics.util.DefaultCodeError; |
|
|
import com.ccsens.carbasics.util.DefaultCodeError; |
|
|
|
|
|
import com.ccsens.util.CodeEnum; |
|
|
|
|
|
import com.ccsens.util.StringUtil; |
|
|
import com.ccsens.util.exception.BaseException; |
|
|
import com.ccsens.util.exception.BaseException; |
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
import org.springframework.transaction.annotation.Propagation; |
|
@ -43,7 +40,7 @@ public class FirstAidRecordService implements IFirstAidRecordService { |
|
|
@Resource |
|
|
@Resource |
|
|
private FirstAidRecordLogMapper firstAidRecordLogMapper; |
|
|
private FirstAidRecordLogMapper firstAidRecordLogMapper; |
|
|
@Resource |
|
|
@Resource |
|
|
private FirstAidRecordMapper firstAidRecordMapper; |
|
|
private FirstAidRecordDao firstAidRecordDao; |
|
|
@Resource |
|
|
@Resource |
|
|
private CodeDictionariesMapper dictionariesMapper; |
|
|
private CodeDictionariesMapper dictionariesMapper; |
|
|
@Resource |
|
|
@Resource |
|
@ -104,16 +101,19 @@ public class FirstAidRecordService implements IFirstAidRecordService { |
|
|
// 判断权限状态
|
|
|
// 判断权限状态
|
|
|
aidStatus(param, firstAid); |
|
|
aidStatus(param, firstAid); |
|
|
//遍历传入的code
|
|
|
//遍历传入的code
|
|
|
|
|
|
// 时间校验
|
|
|
|
|
|
checkTime(param, firstAid); |
|
|
|
|
|
// 保存
|
|
|
param.getCodeAndAnswerList().forEach(codeAndAnswer -> { |
|
|
param.getCodeAndAnswerList().forEach(codeAndAnswer -> { |
|
|
if(StrUtil.isNotEmpty(codeAndAnswer.getQuestionCode())) { |
|
|
if(StrUtil.isNotEmpty(codeAndAnswer.getQuestionCode())) { |
|
|
//添加记录表,需要查找之前的记录,删除后重新添加
|
|
|
//添加记录表,需要查找之前的记录,删除后重新添加
|
|
|
FirstAidRecordExample recordExample = new FirstAidRecordExample(); |
|
|
FirstAidRecordExample recordExample = new FirstAidRecordExample(); |
|
|
recordExample.createCriteria().andFirstAidIdEqualTo(firstAid.getId()).andQuestionCodeEqualTo(codeAndAnswer.getQuestionCode()); |
|
|
recordExample.createCriteria().andFirstAidIdEqualTo(firstAid.getId()).andQuestionCodeEqualTo(codeAndAnswer.getQuestionCode()); |
|
|
List<FirstAidRecord> firstAidRecords = firstAidRecordMapper.selectByExample(recordExample); |
|
|
List<FirstAidRecord> firstAidRecords = firstAidRecordDao.selectByExample(recordExample); |
|
|
if (CollectionUtil.isNotEmpty(firstAidRecords)) { |
|
|
if (CollectionUtil.isNotEmpty(firstAidRecords)) { |
|
|
firstAidRecords.forEach(firstAidRecord -> { |
|
|
firstAidRecords.forEach(firstAidRecord -> { |
|
|
firstAidRecord.setRecStatus((byte) 2); |
|
|
firstAidRecord.setRecStatus((byte) 2); |
|
|
firstAidRecordMapper.updateByPrimaryKeySelective(firstAidRecord); |
|
|
firstAidRecordDao.updateByPrimaryKeySelective(firstAidRecord); |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
//判断答案是否为空
|
|
|
//判断答案是否为空
|
|
@ -130,6 +130,50 @@ public class FirstAidRecordService implements IFirstAidRecordService { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void checkTime(PatientDto.SaveAidRecordN param, FirstAid firstAid) { |
|
|
|
|
|
for (PatientDto.CodeAndAnswerN answer: param.getCodeAndAnswerList()) { |
|
|
|
|
|
// 需要校验的时间
|
|
|
|
|
|
if (!Constant.TimeCheck.compareItems.containsKey(answer.getQuestionCode()) |
|
|
|
|
|
|| CollectionUtil.isEmpty(answer.getAnswer()) |
|
|
|
|
|
|| !StringUtil.checkNum(answer.getAnswer().get(0), false) |
|
|
|
|
|
) { |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
// 要保存的时间
|
|
|
|
|
|
long time = Long.parseLong(answer.getAnswer().get(0)); |
|
|
|
|
|
// 查找需要比较的对象
|
|
|
|
|
|
Map<String, Constant.TimeCheckItem> itemMap = Constant.TimeCheck.compareItems.get(answer.getQuestionCode()); |
|
|
|
|
|
FirstAidRecordExample recordExample = new FirstAidRecordExample(); |
|
|
|
|
|
recordExample.createCriteria().andFirstAidIdEqualTo(firstAid.getId()).andQuestionCodeIn(new ArrayList<>(itemMap.keySet())); |
|
|
|
|
|
List<FirstAidRecord> records = firstAidRecordDao.selectByExample(recordExample); |
|
|
|
|
|
if (CollectionUtil.isEmpty(records)) { |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
for (FirstAidRecord record: records) { |
|
|
|
|
|
if (!StringUtil.checkNum(record.getAnswer(), false)) { |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
long compareTime = Long.parseLong(record.getAnswer()); |
|
|
|
|
|
Constant.TimeCheckItem timeCheckItem = itemMap.get(record.getQuestionCode()); |
|
|
|
|
|
// 0:小于,1小等于 2:等于 3:大于 4:大等于
|
|
|
|
|
|
boolean format; |
|
|
|
|
|
String compare = ""; |
|
|
|
|
|
switch (timeCheckItem.getType()) { |
|
|
|
|
|
case 0: format = time < compareTime; compare = "大等于";break; |
|
|
|
|
|
case 1: format = time <= compareTime; compare = "大于";break; |
|
|
|
|
|
case 2: format = time == compareTime; compare = "等于";break; |
|
|
|
|
|
case 3: format = time > compareTime; compare = "小等于";break; |
|
|
|
|
|
case 4: format = time >= compareTime; compare = "小于";break; |
|
|
|
|
|
default: format = true; |
|
|
|
|
|
} |
|
|
|
|
|
if (!format) { |
|
|
|
|
|
log.info("时间校验不通过:{}:{},{}:{}", answer.getQuestionCode(), time, record.getQuestionCode(), record.getAnswer()); |
|
|
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR.getCode(), "时间"+compare+timeCheckItem.getName()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private void aidStatus(PatientDto.SaveAidRecordN param, FirstAid firstAid) { |
|
|
private void aidStatus(PatientDto.SaveAidRecordN param, FirstAid firstAid) { |
|
|
if (firstAid.getDataStatus() == Constant.DataStatus.Create.status || firstAid.getDataStatus() == Constant.DataStatus.FirstAidRefuse.status) { |
|
|
if (firstAid.getDataStatus() == Constant.DataStatus.Create.status || firstAid.getDataStatus() == Constant.DataStatus.FirstAidRefuse.status) { |
|
|
// 创建/急救拒绝 不校验,允许修改
|
|
|
// 创建/急救拒绝 不校验,允许修改
|
|
@ -196,7 +240,7 @@ public class FirstAidRecordService implements IFirstAidRecordService { |
|
|
firstAidRecord.setSubmitUserType(userType); |
|
|
firstAidRecord.setSubmitUserType(userType); |
|
|
firstAidRecord.setSubmitUserId(userId); |
|
|
firstAidRecord.setSubmitUserId(userId); |
|
|
firstAidRecord.setOperator(userId); |
|
|
firstAidRecord.setOperator(userId); |
|
|
firstAidRecordMapper.insertSelective(firstAidRecord); |
|
|
firstAidRecordDao.insertSelective(firstAidRecord); |
|
|
// //根据code查找字典表
|
|
|
// //根据code查找字典表
|
|
|
// CodeDictionariesExample dictionariesExample = new CodeDictionariesExample();
|
|
|
// CodeDictionariesExample dictionariesExample = new CodeDictionariesExample();
|
|
|
// dictionariesExample.createCriteria().andQuestionCodeEqualTo(code);
|
|
|
// dictionariesExample.createCriteria().andQuestionCodeEqualTo(code);
|
|
|