lighter пре 2 година
родитељ
комит
bed18f3f4e

+ 2 - 2
src/main/java/thyyxxk/webserver/dao/his/reports/IllegalChargesAnalysisDao.java

@@ -49,8 +49,8 @@ public interface IllegalChargesAnalysisDao {
     @Update("update t_illegal_charge_template set label=#{label}, value=#{value},attribute=#{attribute} where id=#{id}")
     void updateTemplate(IllegalChargeTemplate template);
 
-    @Select("select a.inpatient_no,a.admiss_times,rtrim(a.exec_unit) as execUnit,rtrim(c.name) as name, " +
-            "b.med_type,rtrim(a.ward_code) as deptName,rtrim(a.dept_code) wardName, " +
+    @Select("select rtrim(a.inpatient_no) as inpatientNo,a.admiss_times,rtrim(a.exec_unit) as execUnit, " +
+            "rtrim(c.name) as name,b.med_type,rtrim(a.ward_code) as deptName,rtrim(a.dept_code) wardName, " +
             "diag=(select rtrim(d.dis_diag_comment) from zy_dis_diag_yb d where d.inpatient_no=a.inpatient_no " +
             "and d.admiss_times=a.admiss_times and d.dis_diag_no=1),a.detail_sn,a.charge_date, " +
             "rtrim(a.charge_code_mx) as chargeCode, " +

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/reports/illegalchargesanalysis/IllegalChargeData.java

@@ -62,5 +62,9 @@ public class IllegalChargeData {
 
     private String responceType;
     private String responceTypeName;
+    private Boolean alreadyUsed;
 
+    public Boolean getAlreadyUsed() {
+        return null != alreadyUsed && alreadyUsed;
+    }
 }

+ 36 - 19
src/main/java/thyyxxk/webserver/service/reports/IllegalChargesAnalysisService.java

@@ -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);