|
|
@ -9,6 +9,7 @@ import com.ccsens.carbasics.bean.po.*; |
|
|
|
import com.ccsens.carbasics.bean.vo.PatientVo; |
|
|
|
import com.ccsens.carbasics.persist.dao.CodeParentDao; |
|
|
|
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.FirstAidRecordLogMapper; |
|
|
@ -49,6 +50,8 @@ public class FirstAidRecordService implements IFirstAidRecordService { |
|
|
|
private CodeParentDao codeParentDao; |
|
|
|
@Resource |
|
|
|
private FirstAidDao firstAidDao; |
|
|
|
@Resource |
|
|
|
private FirstAidLogDao firstAidLogDao; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@ -98,37 +101,8 @@ public class FirstAidRecordService implements IFirstAidRecordService { |
|
|
|
} |
|
|
|
FirstAid firstAid = firstAids.get(0); |
|
|
|
|
|
|
|
|
|
|
|
if (firstAid.getDataStatus() == Constant.DataStatus.Create.status || firstAid.getDataStatus() == Constant.DataStatus.FirstAidRefuse.status) { |
|
|
|
// 创建/急救拒绝 不校验,允许修改
|
|
|
|
log.info("允许修改:{}", firstAid.getDataStatus()); |
|
|
|
} else if (firstAid.getDataStatus() == Constant.DataStatus.FirstAidPass.status) { |
|
|
|
// 急救审核通过,急救不能修改
|
|
|
|
List<String> children = codeParentDao.queryChildren(Constant.QuestionCode.FIRST_AID); |
|
|
|
param.getCodeAndAnswerList().forEach(codeAndAnswer -> { |
|
|
|
if (children.contains(codeAndAnswer.getQuestionCode())) { |
|
|
|
log.info("{}是急救的code,不能修改", codeAndAnswer.getQuestionCode() ); |
|
|
|
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE); |
|
|
|
} |
|
|
|
}); |
|
|
|
} else if (firstAid.getDataStatus() == Constant.DataStatus.DischargeRefuse.status) { |
|
|
|
// 出院审核拒绝,只允许修改出院信息
|
|
|
|
List<String> children = codeParentDao.queryChildren(Constant.QuestionCode.DISCHARGE); |
|
|
|
param.getCodeAndAnswerList().forEach(codeAndAnswer -> { |
|
|
|
if (!children.contains(codeAndAnswer.getQuestionCode())) { |
|
|
|
log.info("{}不是出院的code,不能修改", codeAndAnswer.getQuestionCode() ); |
|
|
|
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE); |
|
|
|
} |
|
|
|
}); |
|
|
|
} else if (firstAid.getDataStatus() == Constant.DataStatus.ApplyFor.status ){ |
|
|
|
// 申请修改/修改拒绝
|
|
|
|
} else { |
|
|
|
// 出院通过
|
|
|
|
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 判断权限状态
|
|
|
|
aidStatus(param, firstAid); |
|
|
|
//遍历传入的code
|
|
|
|
param.getCodeAndAnswerList().forEach(codeAndAnswer -> { |
|
|
|
if(StrUtil.isNotEmpty(codeAndAnswer.getQuestionCode())) { |
|
|
@ -146,7 +120,7 @@ public class FirstAidRecordService implements IFirstAidRecordService { |
|
|
|
if(CollectionUtil.isNotEmpty(codeAndAnswer.getAnswer())){ |
|
|
|
//循环答案
|
|
|
|
codeAndAnswer.getAnswer().forEach(answer -> { |
|
|
|
saveRecord(param.getUserType(), userId, firstAid.getId(), codeAndAnswer.getQuestionCode(), answer,param.getProjectId()); |
|
|
|
saveRecord(param.getUserType(), userId, firstAid.getId(), codeAndAnswer.getQuestionCode(), StrUtil.isBlank(answer) ? "" : answer,param.getProjectId()); |
|
|
|
}); |
|
|
|
}else { |
|
|
|
saveRecord(param.getUserType(), userId, firstAid.getId(), codeAndAnswer.getQuestionCode(), "",param.getProjectId()); |
|
|
@ -156,6 +130,52 @@ public class FirstAidRecordService implements IFirstAidRecordService { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private void aidStatus(PatientDto.SaveAidRecordN param, FirstAid firstAid) { |
|
|
|
if (firstAid.getDataStatus() == Constant.DataStatus.Create.status || firstAid.getDataStatus() == Constant.DataStatus.FirstAidRefuse.status) { |
|
|
|
// 创建/急救拒绝 不校验,允许修改
|
|
|
|
log.info("允许修改:{}", firstAid.getDataStatus()); |
|
|
|
} else if (firstAid.getDataStatus() == Constant.DataStatus.FirstAidPass.status) { |
|
|
|
// 急救审核通过,急救不能修改
|
|
|
|
List<String> children = codeParentDao.queryChildren(Constant.QuestionCode.FIRST_AID); |
|
|
|
param.getCodeAndAnswerList().forEach(codeAndAnswer -> { |
|
|
|
if (children.contains(codeAndAnswer.getQuestionCode())) { |
|
|
|
log.info("{}是急救的code,不能修改", codeAndAnswer.getQuestionCode() ); |
|
|
|
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE); |
|
|
|
} |
|
|
|
}); |
|
|
|
} else if (firstAid.getDataStatus() == Constant.DataStatus.DischargeRefuse.status) { |
|
|
|
// 出院审核拒绝,只允许修改出院信息
|
|
|
|
pageChildCode(param); |
|
|
|
} else if (firstAid.getDataStatus() == Constant.DataStatus.ApplyFor.status |
|
|
|
|| firstAid.getDataStatus() == Constant.DataStatus.ApplyForRefuse.status){ |
|
|
|
// 申请修改/修改拒绝
|
|
|
|
// 出院是否审核通过过
|
|
|
|
FirstAidLogExample logExample = new FirstAidLogExample(); |
|
|
|
logExample.createCriteria().andFirstAidIdEqualTo(firstAid.getId()) |
|
|
|
.andOperationTypeEqualTo(Constant.DataStatus.DischargePass.status); |
|
|
|
long l = firstAidLogDao.countByExample(logExample); |
|
|
|
if (l > 0) { |
|
|
|
// 有,则都不修改
|
|
|
|
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE); |
|
|
|
} else { |
|
|
|
pageChildCode(param); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 出院通过
|
|
|
|
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void pageChildCode(PatientDto.SaveAidRecordN param) { |
|
|
|
List<String> children = codeParentDao.queryChildren(Constant.QuestionCode.DISCHARGE); |
|
|
|
param.getCodeAndAnswerList().forEach(codeAndAnswer -> { |
|
|
|
if (!children.contains(codeAndAnswer.getQuestionCode())) { |
|
|
|
log.info("{}不是出院的code,不能修改", codeAndAnswer.getQuestionCode() ); |
|
|
|
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void saveRecord(byte userType, Long userId, Long firstAidId, String code, String answer,Long projectId) { |
|
|
|
//添加日志表,不管数据是否重复
|
|
|
|
FirstAidRecordLog firstAidRecordLog = new FirstAidRecordLog(); |
|
|
|