|
|
|
|
@ -68,18 +68,24 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
|
|
|
|
|
@Override
|
|
|
|
|
public OffsetLimitPage selectByColumn(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) {
|
|
|
|
|
PageHelper.offsetPage(offset, limit);
|
|
|
|
|
//查询出院集合
|
|
|
|
|
List<Archive_Master_Vo> list = selectByColumn(archiveMasterVo);
|
|
|
|
|
//组织完整性字段
|
|
|
|
|
//list集合的分组分类集合
|
|
|
|
|
if(!CollectionUtils.isEmpty(list)){
|
|
|
|
|
List<Archive_Detail> details = getArchiveDetailsByMasterIds(list);
|
|
|
|
|
//获取masterIds
|
|
|
|
|
String masterIds = getMasterIdsByList(list);
|
|
|
|
|
//查询缺少检验检查报告masterId集合
|
|
|
|
|
List<Archive_Detail> selectNotInspectionList = detailMapper.selectNotInspectionList(masterIds);
|
|
|
|
|
//查询需要校验完整性的患者的分类集合
|
|
|
|
|
List<Archive_Detail> details = detailMapper.selectAssortIdsByMasterIds(masterIds);
|
|
|
|
|
if(!CollectionUtils.isEmpty(details)){
|
|
|
|
|
//查询需要校验完整性的分类集合
|
|
|
|
|
Zd_Assort assort = new Zd_Assort();
|
|
|
|
|
assort.setIsCheck(1);
|
|
|
|
|
List<Zd_Assort> assortList = assortMapper.selectAll(assort);
|
|
|
|
|
//循环遍历list集合判断是否完整,完整isCheck赋值1,且批量更新LockInfo字段为完整
|
|
|
|
|
updateMasterBySuccess(list, details, assortList);
|
|
|
|
|
updateMasterBySuccess(list, selectNotInspectionList,details, assortList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new OffsetLimitPage((Page) list);
|
|
|
|
|
@ -88,42 +94,57 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
|
|
|
|
|
/**
|
|
|
|
|
* //循环遍历list集合判断是否完整,完整isCheck赋值1,且批量更新LockInfo字段为完整
|
|
|
|
|
* @param list
|
|
|
|
|
* @param selectNotInspectionList
|
|
|
|
|
* @param details
|
|
|
|
|
* @param assortList
|
|
|
|
|
*/
|
|
|
|
|
private void updateMasterBySuccess(List<Archive_Master_Vo> list, List<Archive_Detail> details, List<Zd_Assort> assortList) {
|
|
|
|
|
private void updateMasterBySuccess(List<Archive_Master_Vo> list,List<Archive_Detail> selectNotInspectionList, List<Archive_Detail> details, List<Zd_Assort> assortList) {
|
|
|
|
|
//循环遍历list集合判断是否完整,完整isCheck赋值1,且批量更新LockInfo字段为完整
|
|
|
|
|
//定义通过完整性校验的masterIds
|
|
|
|
|
StringBuilder masterIds = new StringBuilder();
|
|
|
|
|
for(Archive_Master_Vo master : list){
|
|
|
|
|
//定义匹配分类成功次数
|
|
|
|
|
int successCount = 0;
|
|
|
|
|
for(Zd_Assort assortFor : assortList){
|
|
|
|
|
//定义无匹配的分类
|
|
|
|
|
boolean flag = false;
|
|
|
|
|
for(Archive_Detail detail : details){
|
|
|
|
|
//判断主键相同且分类id相同
|
|
|
|
|
if(master.getId().equals(detail.getMasterid()) && assortFor.getAssortId().equals(detail.getAssortid())){
|
|
|
|
|
successCount++;
|
|
|
|
|
flag = true;
|
|
|
|
|
//定义检验检查报告分类是完整的
|
|
|
|
|
boolean inspectionFlag = true;
|
|
|
|
|
//判断是否存在缺少校验检查分类
|
|
|
|
|
if(!CollectionUtils.isEmpty(selectNotInspectionList)){
|
|
|
|
|
for (Archive_Detail detail : selectNotInspectionList) {
|
|
|
|
|
if (master.getId().equals(detail.getMasterid())) {
|
|
|
|
|
inspectionFlag = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//该分类无匹配直接跳出循环,改主键不完整
|
|
|
|
|
if(!flag){
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//如果成功匹配个数和需校验分类个数相等,全部匹配
|
|
|
|
|
if(successCount == assortList.size()){
|
|
|
|
|
//list的isSuccess字段值赋值1
|
|
|
|
|
master.setIsSuccess("1");
|
|
|
|
|
//不完整的批量更新为完整
|
|
|
|
|
if(!"完整".equals(master.getLockinfo())) {
|
|
|
|
|
if (StringUtils.isBlank(masterIds)) {
|
|
|
|
|
masterIds.append("'").append(master.getId()).append("'");
|
|
|
|
|
} else {
|
|
|
|
|
masterIds.append(",'").append(master.getId()).append("'");
|
|
|
|
|
//检验检查报告分类完整才判断需要校验的分类是否完整
|
|
|
|
|
if(inspectionFlag) {
|
|
|
|
|
//定义匹配分类成功次数
|
|
|
|
|
int successCount = 0;
|
|
|
|
|
for (Zd_Assort assortFor : assortList) {
|
|
|
|
|
//定义无匹配的分类
|
|
|
|
|
boolean flag = false;
|
|
|
|
|
for (Archive_Detail detail : details) {
|
|
|
|
|
//判断主键相同且分类id相同
|
|
|
|
|
if (master.getId().equals(detail.getMasterid()) && assortFor.getAssortId().equals(detail.getAssortid())) {
|
|
|
|
|
successCount++;
|
|
|
|
|
flag = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//该分类无匹配直接跳出循环,改主键不完整
|
|
|
|
|
if (!flag) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//如果成功匹配个数和需校验分类个数相等,全部匹配
|
|
|
|
|
if (successCount == assortList.size()) {
|
|
|
|
|
//list的isSuccess字段值赋值1
|
|
|
|
|
master.setIsSuccess("1");
|
|
|
|
|
//不完整的批量更新为完整
|
|
|
|
|
if (!"完整".equals(master.getLockinfo())) {
|
|
|
|
|
if (StringUtils.isBlank(masterIds)) {
|
|
|
|
|
masterIds.append("'").append(master.getId()).append("'");
|
|
|
|
|
} else {
|
|
|
|
|
masterIds.append(",'").append(master.getId()).append("'");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -135,11 +156,11 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据masterIds查询分组的需要校验完整性的detail分类集合
|
|
|
|
|
* 组织masterIds集合
|
|
|
|
|
* @param list
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private List<Archive_Detail> getArchiveDetailsByMasterIds(List<Archive_Master_Vo> list) {
|
|
|
|
|
private String getMasterIdsByList(List<Archive_Master_Vo> list) {
|
|
|
|
|
StringBuilder masterIds = new StringBuilder();
|
|
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
|
|
if(i == 0){
|
|
|
|
|
@ -148,8 +169,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
|
|
|
|
|
masterIds.append(",'").append(list.get(i).getId()).append("'");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//根据id集合查detail明细表分组分类集合
|
|
|
|
|
return detailMapper.selectAssortIdsByMasterIds(masterIds.toString());
|
|
|
|
|
return masterIds.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -735,7 +755,10 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
|
|
|
|
|
private List<Archive_Master_Vo> selectUnSuccessAssortByMasterIds(StringBuilder masterIds) {
|
|
|
|
|
List<Archive_Master_Vo> list = new ArrayList<>();
|
|
|
|
|
if(StringUtils.isNotBlank(masterIds)){
|
|
|
|
|
//按masterId分组查询需要已采集的分类集合
|
|
|
|
|
List<Archive_Detail> details = detailMapper.selectAssortIdsByMasterIds(masterIds.toString());
|
|
|
|
|
//按masterId分组查询是否存在缺少检验检查报告单的masterId集合
|
|
|
|
|
List<Archive_Detail> inspectionList = detailMapper.selectNotInspectionList(masterIds.toString());
|
|
|
|
|
//查询需要校验完整性的分类集合
|
|
|
|
|
Zd_Assort assort = new Zd_Assort();
|
|
|
|
|
assort.setIsCheck(1);
|
|
|
|
|
@ -764,6 +787,23 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//判断是否缺少检验检查报告单
|
|
|
|
|
if(!CollectionUtils.isEmpty(inspectionList)){
|
|
|
|
|
//定义存在缺少检验检查报告
|
|
|
|
|
boolean inspectionFlag = true;
|
|
|
|
|
for(Archive_Detail detail:inspectionList){
|
|
|
|
|
if(masterId.equals(detail.getMasterid())){
|
|
|
|
|
inspectionFlag = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!inspectionFlag){
|
|
|
|
|
if(StringUtils.isNotBlank(unSuccessAssortNames)){
|
|
|
|
|
unSuccessAssortNames.append(",");
|
|
|
|
|
}
|
|
|
|
|
unSuccessAssortNames.append("检验检查报告单");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
master.setId(masterId);
|
|
|
|
|
master.setUnSuccessAssortNames(unSuccessAssortNames.toString());
|
|
|
|
|
list.add(master);
|
|
|
|
|
|