|
|
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.coffee.bus.entity.BusClinicEntity;
|
|
|
import com.coffee.bus.service.LocalBusClinicService;
|
|
|
+import com.coffee.bus.service.LocalBusInfusionHistoryService;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
@@ -26,6 +27,7 @@ import java.util.*;
|
|
|
@AllArgsConstructor
|
|
|
public class MoreToLessHisStrategyHandler implements HisAllStrategyHandler {
|
|
|
private final LocalBusClinicService clinicService;
|
|
|
+ private final LocalBusInfusionHistoryService infusionHistoryService;
|
|
|
@Override
|
|
|
public String getId() {
|
|
|
return "more-to-less";
|
|
|
@@ -43,26 +45,41 @@ public class MoreToLessHisStrategyHandler implements HisAllStrategyHandler {
|
|
|
return;
|
|
|
}
|
|
|
log.info("拉取his数据多于数据库数据,拉取手术信息{},数据库数据{}", JSONUtil.toJsonStr(source),JSONUtil.toJsonStr(target));
|
|
|
- //所有按照从小到大排序
|
|
|
- source.sort(Comparator.comparing(BusClinicEntity::getStartTime));
|
|
|
+ //按照开始时间从大到小排序
|
|
|
+ source.sort((t1,t2)->t2.getStartTime().compareTo(t1.getStartTime()));
|
|
|
List<BusClinicEntity> insert=new LinkedList<>();
|
|
|
+ int subSize = CollectionUtil.size(source) - CollectionUtil.size(target);
|
|
|
if (CollectionUtil.isEmpty(target)) {
|
|
|
//所有的source都为新增
|
|
|
insert.addAll(source);
|
|
|
}else {
|
|
|
- target.sort(Comparator.comparing(BusClinicEntity::getStartTime));
|
|
|
+ target.sort((t1,t2)->t2.getStartTime().compareTo(t1.getStartTime()));
|
|
|
+ List<BusClinicEntity> compareSub = source.subList(subSize,CollectionUtil.size(source));
|
|
|
+ if(timeRefresh(compareSub,target)){
|
|
|
+ infusionHistoryService.resetClinicStartTime(CollectionUtil.getFirst(compareSub.iterator()).getTenantId(),CollectionUtil.getFirst(compareSub.iterator()).getPatientCode());
|
|
|
+ }
|
|
|
//对比修改临床信息
|
|
|
int start=0;
|
|
|
- for (; start < target.size(); start++) {
|
|
|
- clinicService.compareFromHis(source.get(start),target.get(start));
|
|
|
+ for (; start < compareSub.size(); start++) {
|
|
|
+ BusClinicEntity targetClinic = target.get(start);
|
|
|
+ targetClinic.setFinished(true);
|
|
|
+ clinicService.compareFromHis(compareSub.get(start),targetClinic);
|
|
|
}
|
|
|
- insert.addAll(source.subList(start,source.size()));
|
|
|
- }
|
|
|
- //按照开始时间从大到小排序
|
|
|
- CollectionUtil.reverse(insert);
|
|
|
+ insert.addAll(source.subList(0,subSize));}
|
|
|
//新增临床信息
|
|
|
+ for (int i = 0; i < insert.size(); i++) {
|
|
|
+ if(i!=0){
|
|
|
+ insert.get(i).setFinished(true);
|
|
|
+ }else {
|
|
|
+ insert.get(i).setFinished(false);
|
|
|
+ }
|
|
|
+ insert.get(i).setMonitorType(true);
|
|
|
+ }
|
|
|
insert.forEach(clinicService::insertFromHis);
|
|
|
- clinicService.setCurrentClinicByHis(insert.get(0));
|
|
|
+ clinicService.setCurrentClinicByHis( CollectionUtil.getFirst(insert.iterator()));
|
|
|
+ System.out.println(1 / 0);
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|