Преглед на файлове

退费数据需要进行合并

0027005599 преди 2 години
родител
ревизия
dd10b13248
променени са 1 файла, в които са добавени 8 реда и са изтрити 3 реда
  1. 8 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/AfterWaringLogJob.java

+ 8 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/AfterWaringLogJob.java

@@ -250,7 +250,7 @@ public class AfterWaringLogJob implements Job {
         while (hospIterator.hasNext()) {
             HospitalizatioSettleDetail hospitalizatioSettleDetail = hospIterator.next();
             if (hospitalizatioSettleDetail.getNum() < 0) {
-                projectCodeHospMap.put(hospitalizatioSettleDetail.getItemId() + "_" + Math.abs(hospitalizatioSettleDetail.getNum()), hospitalizatioSettleDetail);
+                projectCodeHospMap.put(hospitalizatioSettleDetail.getItemId(), hospitalizatioSettleDetail);
                 hospIterator.remove();
                 haveSubFlag = true;
             }
@@ -259,9 +259,14 @@ public class AfterWaringLogJob implements Job {
             Iterator<HospitalizatioSettleDetail> newHospIterator = detailList.iterator();
             while (newHospIterator.hasNext()) {
                 HospitalizatioSettleDetail hospitalizatioSettleDetail = newHospIterator.next();
-                String itemIdAndNumKey = hospitalizatioSettleDetail.getItemId() + "_" + hospitalizatioSettleDetail.getNum();
+                String itemIdAndNumKey = hospitalizatioSettleDetail.getItemId();
                 if (projectCodeHospMap.containsKey(itemIdAndNumKey)) {
-                    newHospIterator.remove();
+                    HospitalizatioSettleDetail subHospitalizatioSettleDetail = projectCodeHospMap.get(itemIdAndNumKey);
+                    hospitalizatioSettleDetail.setNum(hospitalizatioSettleDetail.getNum() + subHospitalizatioSettleDetail.getNum());
+                    hospitalizatioSettleDetail.setCost(hospitalizatioSettleDetail.getCost() + subHospitalizatioSettleDetail.getCost());
+                    if(hospitalizatioSettleDetail.getNum() == 0){
+                        newHospIterator.remove();
+                    }
                 }
             }
         }