소스 검색

优化门诊报表

hurugang 2 년 전
부모
커밋
bb29559c77

+ 20 - 20
src/main/java/cn/hnthyy/thmz/controller/mz/ChargeFeeVoController.java

@@ -116,7 +116,7 @@ public class ChargeFeeVoController {
                 }
             }
             Map<String, String> chequeTypeMap = chequeTypes.stream().collect(Collectors.toMap(ZdChequeType::getCode, ZdChequeType::getName));
-            Map<String, List<ChargeFeeVo>> chargeFeeMap = new HashMap();
+          //  Map<String, List<ChargeFeeVo>> chargeFeeMap = new HashMap();
             for (ChargeFeeVo co : chargeFeeVos) {
                 PayMarkEnum payMark = PayMarkEnum.getPayMarkByCode(co.getPayMark());
                 co.setPayMark(payMark == null ? co.getPayMark() : payMark.name);
@@ -131,25 +131,25 @@ public class ChargeFeeVoController {
                 if (YesNoEnum.YES.equals(fitEmpName)) {
                     co.setOpId(employeeMap.get(co.getOpId()));
                 }
-                List<ChargeFeeVo> tempList = chargeFeeMap.get(co.getSerialNo());
-                if (tempList == null) {
-                    tempList = new ArrayList<>();
-                    chargeFeeMap.put(co.getSerialNo(), tempList);
-                }
-                tempList.add(co);
-            }
-            for (String key : chargeFeeMap.keySet()) {
-                if (StringUtils.isNotBlank(key)) {
-                    List<ChargeFeeVo> tempList = chargeFeeMap.get(key);
-                    if (tempList.size() > 1) {
-                        for (ChargeFeeVo co : tempList) {
-                            if ((Constants.BYJZ_NAME.equals(co.getChequeType()) && StringUtils.isNotBlank(co.getReceiptBill())) || (!Constants.BYJZ_NAME.equals(co.getChequeType()) && StringUtils.isBlank(co.getReceiptBill()))) {
-                                chargeFeeVos.remove(co);
-                            }
-                        }
-                    }
-                }
-            }
+               // List<ChargeFeeVo> tempList = chargeFeeMap.get(co.getSerialNo());
+//                if (tempList == null) {
+//                    tempList = new ArrayList<>();
+//                    chargeFeeMap.put(co.getSerialNo(), tempList);
+//                }
+//                tempList.add(co);
+            }
+//            for (String key : chargeFeeMap.keySet()) {
+//                if (StringUtils.isNotBlank(key)) {
+//                    List<ChargeFeeVo> tempList = chargeFeeMap.get(key);
+//                    if (tempList.size() > 1) {
+//                        for (ChargeFeeVo co : tempList) {
+//                            if ((Constants.BYJZ_NAME.equals(co.getChequeType()) && StringUtils.isNotBlank(co.getReceiptBill())) || (!Constants.BYJZ_NAME.equals(co.getChequeType()) && StringUtils.isBlank(co.getReceiptBill()))) {
+//                                chargeFeeVos.remove(co);
+//                            }
+//                        }
+//                    }
+//                }
+//            }
         }
     }
 

+ 14 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/mz/MzChargeDetailMapper.java

@@ -1152,4 +1152,18 @@ public interface MzChargeDetailMapper {
      */
     @Select("select count(1) from  mz_charge_detail where patient_id=#{patientId} and charge_item_code =#{chargeItemCode} and pay_mark = 0 and confirm_flag<>4 and DateDiff(dd,charge_date,getDate()) =0 ")
     int select24HourReqByCode(@Param("patientId") String patientId,@Param("chargeItemCode") String chargeItemCode);
+
+
+
+
+    /**
+     * 根据病人id和次数及缴费次数查询退费记录
+     *
+     * @param patientId
+     * @param times
+     * @param receiptNo
+     * @return
+     */
+    @Select("select count(1) from dbo.mz_charge_detail WITH(NOLOCK)  where  patient_id =#{patientId,jdbcType=CHAR} and times =#{times} and receipt_no =-#{receiptNo} ")
+    int selectRufundNumberByPatientIdAndTimesAndReceiptNo(@Param("patientId") String patientId, @Param("times") Integer times, @Param("receiptNo") Integer receiptNo);
 }

+ 12 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzChargeDetailServiceImpl.java

@@ -185,12 +185,21 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
         mzChargeDetailPageDto.setTableName("mz_charge_detail");
         String receiptSerialTableName = "mz_receipt_serial";
         List<MzChargeDetail> mzChargeDetailList = mzChargeDetailMapper.selectMzChargeDetailWithPage(mzChargeDetailPageDto);
+        List<MzChargeDetail> removeList=null;
         for (MzChargeDetail mzChargeDetail : mzChargeDetailList) {
             MzChargeDetail temp = mzChargeDetailMapper.selectWarnDeptAndDoctor(mzChargeDetail.getPatientId(), mzChargeDetail.getTimes(), mzChargeDetailPageDto.getTableName());
             mzChargeDetail.setWarnDept(temp.getWarnDept());
             mzChargeDetail.setDoctorCode(temp.getDoctorCode());
             mzChargeDetail.setPrintFlag(temp.getPrintFlag());
             if (PayMarkEnum.CHARGED.code.equals(mzChargeDetailPageDto.getMzChargeDetail().getPayMark())) {
+               int num=mzChargeDetailMapper.selectRufundNumberByPatientIdAndTimesAndReceiptNo(mzChargeDetail.getPatientId(), mzChargeDetail.getTimes(), mzChargeDetail.getReceiptNo());
+               if(num>0){
+                   if(removeList==null){
+                       removeList=new ArrayList<>();
+                   }
+                   removeList.add(mzChargeDetail);
+                   continue;
+               }
                 List<MzReceiptSerial> mzReceiptSerials = mzReceiptSerialMapper.selectReceiptDetails(mzChargeDetail.getPatientId(), mzChargeDetail.getTimes(), mzChargeDetail.getReceiptNo(), receiptSerialTableName);
                 if (mzReceiptSerials != null && mzReceiptSerials.size() > 0) {
                     MzReceiptSerial mzReceiptSerial = mzReceiptSerials.get(0);
@@ -219,6 +228,9 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
                 mzChargeDetail.setCountYbZf(mzPatientMiMapper.countYbZf(mzChargeDetail.getPatientId(), mzChargeDetail.getTimes()));
             }
         }
+        if(removeList!=null){
+            mzChargeDetailList.removeAll(removeList);
+        }
         return mzChargeDetailList;
 
     }