|
|
@@ -1,5 +1,6 @@
|
|
|
package thyyxxk.webserver.service.reports;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -194,31 +195,47 @@ public class IllegalChargesAnalysisService {
|
|
|
if (ListUtil.notBlank(template.getMedtypes())) {
|
|
|
cflctList.removeIf(item -> !template.getMedtypes().contains(item.getMedtype()));
|
|
|
}
|
|
|
+ List<Map<String, IllegalChargeData>> mapList = new ArrayList<>();
|
|
|
Map<String, IllegalChargeData> map = new HashMap<>(mainList.size());
|
|
|
+ mapList.add(map);
|
|
|
for (IllegalChargeData item : mainList) {
|
|
|
- String key = item.getInpatientNo() + "_" + item.getChargeDay();
|
|
|
- map.put(key, item);
|
|
|
- }
|
|
|
- for (IllegalChargeData item : cflctList) {
|
|
|
String key = item.getInpatientNo() + "_" + item.getChargeDay();
|
|
|
if (map.containsKey(key)) {
|
|
|
- IllegalChargeData data = map.get(key);
|
|
|
- data.setExecUnit(redis.getDeptName(data.getExecUnit()));
|
|
|
- data.setDeptName(redis.getDeptName(data.getDeptName()));
|
|
|
- data.setWardName(redis.getDeptName(data.getWardName()));
|
|
|
- data.setMedtypeName(MedType.getName(item.getMedtype()));
|
|
|
- data.setConflictChargeCode(item.getChargeCode());
|
|
|
- data.setConflictChargeAmount(item.getChargeAmount());
|
|
|
- data.setConflictChargeDate(item.getChargeDate());
|
|
|
- data.setConflictChargeFee(item.getChargeFee());
|
|
|
- data.setConflictChargeName(item.getChargeName());
|
|
|
- data.setConflictDetailSn(item.getDetailSn());
|
|
|
- data.setConflictOrderNo(item.getOrderNo());
|
|
|
- data.setConflictExecUnit(redis.getDeptName(item.getExecUnit()));
|
|
|
- resultList.add(data);
|
|
|
+ Map<String, IllegalChargeData> tempMap = new HashMap<>();
|
|
|
+ tempMap.put(key, item);
|
|
|
+ mapList.add(tempMap);
|
|
|
+ } else {
|
|
|
+ map.put(key, item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (Map<String, IllegalChargeData> temp : mapList) {
|
|
|
+ for (IllegalChargeData item : cflctList) {
|
|
|
+ String key = item.getInpatientNo() + "_" + item.getChargeDay();
|
|
|
+ if (temp.containsKey(key)) {
|
|
|
+ IllegalChargeData originData = temp.get(key);
|
|
|
+ String ref = JSON.toJSONString(originData);
|
|
|
+ IllegalChargeData data = JSON.parseObject(ref, IllegalChargeData.class);
|
|
|
+ if (item.getAlreadyUsed() && originData.getAlreadyUsed()) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ data.setExecUnit(redis.getDeptName(data.getExecUnit()));
|
|
|
+ data.setDeptName(redis.getDeptName(data.getDeptName()));
|
|
|
+ data.setWardName(redis.getDeptName(data.getWardName()));
|
|
|
+ data.setMedtypeName(MedType.getName(item.getMedtype()));
|
|
|
+ data.setConflictChargeCode(item.getChargeCode());
|
|
|
+ data.setConflictChargeAmount(item.getChargeAmount());
|
|
|
+ data.setConflictChargeDate(item.getChargeDate());
|
|
|
+ data.setConflictChargeFee(item.getChargeFee());
|
|
|
+ data.setConflictChargeName(item.getChargeName());
|
|
|
+ data.setConflictDetailSn(item.getDetailSn());
|
|
|
+ data.setConflictOrderNo(item.getOrderNo());
|
|
|
+ data.setConflictExecUnit(redis.getDeptName(item.getExecUnit()));
|
|
|
+ item.setAlreadyUsed(true);
|
|
|
+ originData.setAlreadyUsed(true);
|
|
|
+ resultList.add(data);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
return ResultVoUtil.success(resultList);
|