Forráskód Böngészése

解决同一处方有相同药品时退药bug

hurugang 3 éve
szülő
commit
9f08ce4110

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

@@ -346,8 +346,8 @@ public interface MzChargeDetailMapper {
      * @param chargeItemCode
      * @return
      */
-    @Select("select * from mz_charge_detail WITH(NOLOCK) where patient_id =#{patientId,jdbcType=CHAR} and times =#{times,jdbcType=INTEGER} and charge_item_code=#{chargeItemCode,jdbcType=CHAR} and order_no =#{orderNo} and quantity>0")
-    List<MzChargeDetail> selectMzChargeDetailByChargeItemCode(@Param("patientId") String patientId, @Param("times") Integer times, @Param("chargeItemCode") String chargeItemCode, @Param("orderNo") Integer orderNo);
+    @Select("select * from mz_charge_detail WITH(NOLOCK) where patient_id =#{patientId,jdbcType=CHAR} and times =#{times,jdbcType=INTEGER} and charge_item_code=#{chargeItemCode,jdbcType=CHAR} and item_no=#{itemNo} and order_no =#{orderNo} and quantity>0")
+    List<MzChargeDetail> selectMzChargeDetailByChargeItemCode(@Param("patientId") String patientId, @Param("times") Integer times, @Param("chargeItemCode") String chargeItemCode, @Param("orderNo") Integer orderNo,@Param("itemNo") Integer itemNo);
 
     /**
      * 新增收费明细记录

+ 1 - 1
src/main/java/cn/hnthyy/thmz/mapper/his/yp/YpMzFytjMapper.java

@@ -78,7 +78,7 @@ public interface YpMzFytjMapper {
      * @param ypMzFytj
      * @return
      */
-    @Update("update yp_mz_fytj set real_no=#{realNo},serial_no=#{serialNo} where patient_id = #{patientId} and times = #{times} and charge_item_code=#{chargeItemCode}")
+    @Update("update yp_mz_fytj set real_no=#{realNo},serial_no=#{serialNo} where patient_id = #{patientId} and times = #{times} and charge_item_code=#{chargeItemCode} and item_no=#{itemNo}")
     int updateYpMzFytj(YpMzFytj ypMzFytj);
 
 

+ 10 - 7
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzChargeDetailServiceImpl.java

@@ -2895,7 +2895,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
             m.setPayMark(PayMarkEnum.CHARGED.code);
             setChargeDetail(mzDrugWinMap, yffyNoMap, orderNoMap, m);
             mzChargeDetailMapper.updateMzChargeDetail(m);
-            itemNoMap.put(m.getChargeItemCode().trim(), m.getItemNo());
+            itemNoMap.put(m.getItemNo()+"_"+m.getChargeItemCode().trim(), m.getItemNo());
         }
         //收费时药品库存操作
         if (refundTimes == null) {
@@ -2949,7 +2949,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
                     ypMzFytj.setReceiptNo(1);
                     ypMzFytj.setSerialNo(serialNo);
                     ypMzFytj.setRealNo(serialNo);
-                    ypMzFytj.setItemNo(itemNoMap.get(ypMzFytj.getChargeItemCode().trim()));
+                    ypMzFytj.setItemNo(itemNoMap.get(ypMzFytj.getItemNo()+"_"+ypMzFytj.getChargeItemCode().trim()));
                     ypMzFytjMapper.insertYpMzFytj(ypMzFytj);
                 }
             }
@@ -2957,7 +2957,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
             ypMzFytjList = ypMzFytjMapper.selectXyTyYpMzFytj(patientId, refundTimes);
             if (ypMzFytjList != null && ypMzFytjList.size() > 0) {
                 for (YpMzFytj ypMzFytj : ypMzFytjList) {
-                    List<MzChargeDetail> mzChargeDetails = mzChargeDetailMapper.selectMzChargeDetailByChargeItemCode(ypMzFytj.getPatientId(), ypMzFytj.getTimes(), ypMzFytj.getChargeItemCode(), ypMzFytj.getOrderNo());
+                    List<MzChargeDetail> mzChargeDetails = mzChargeDetailMapper.selectMzChargeDetailByChargeItemCode(ypMzFytj.getPatientId(), ypMzFytj.getTimes(), ypMzFytj.getChargeItemCode(), ypMzFytj.getOrderNo(),ypMzFytj.getItemNo());
                     if (mzChargeDetails == null || mzChargeDetails.size() == 0) {
                         continue;
                     }
@@ -2986,7 +2986,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
                         ypMzFytj.setSerialNo(serialNo);
                         ypMzFytj.setConfirmFlag(ConfirmFlagEnum.CONFIRM.code);
                         ypMzFytj.setRealNo(serialNo);
-                        ypMzFytj.setItemNo(itemNoMap.get(ypMzFytj.getChargeItemCode().trim()));
+                        ypMzFytj.setItemNo(itemNoMap.get(ypMzFytj.getItemNo()+"_"+ypMzFytj.getChargeItemCode().trim()));
                         ypMzFytjMapper.insertYpMzFytj(ypMzFytj);
                     }
                 }
@@ -3452,7 +3452,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
             mzVisitTableMapper.insertMzVisitTable(newMzVisitTable);
         }
         List<MzChargeDetail> newMzChargeDetailList = new ArrayList<>();
-        Integer itemNo = 100;
+        Integer itemNo = null;
         List<String> billItemCodeList = Arrays.asList(Constants.SSWRF);
         Set<String> tcNos = new HashSet<>();
         int receiptNo = 1;
@@ -3499,7 +3499,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
 //                }
                 temp.setTimes(times);
                 temp.setReceiptNo(receiptNo);
-                temp.setItemNo(itemNo++);
+               // temp.setItemNo(itemNo++);
                 temp.setSerialNo(null);
                 temp.setPayMark(PayMarkEnum.NO_CHARGE.code);
                 temp.setChargeDate(null);
@@ -3516,12 +3516,15 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
                 temp.setPrintFlagYj(null);
                 temp.setConfirmFlagQx(null);
                 newMzChargeDetailList.add(temp);
+                if(itemNo==null || itemNo<temp.getItemNo()){
+                    itemNo=temp.getItemNo();
+                }
             }
         }
         List<MzChargeDetail> supplyFeeMzChargeDetails = new ArrayList<>();
         //重新计算给药方式费用
         //   itemNo = formatSupplyFee(supplyFeeMzChargeDetails, newMzChargeDetailList, itemNo);
-        formatPriceRoundDetail(new MzChargeDetail(mzDepositFileVo.getPatientId(), times), supplyFeeMzChargeDetails, mzPatientMi, newMzChargeDetailList, 127, itemNo, receiptNo, false);
+        formatPriceRoundDetail(new MzChargeDetail(mzDepositFileVo.getPatientId(), times), supplyFeeMzChargeDetails, mzPatientMi, newMzChargeDetailList, 127, ++itemNo, receiptNo, false);
 //        List<String> supplyList = supplyFeeMzChargeDetails.stream().filter(u -> StringUtils.isNotBlank(u.getChargeItemCode())).map-util.js(u -> u.getChargeItemCode()).collect(Collectors.toList());
 //        List<MzChargeDetail> removeList = new ArrayList<>();
 //        for (MzChargeDetail md : newMzChargeDetailList) {

+ 1 - 1
src/main/java/cn/hnthyy/thmz/service/impl/his/yp/YpMzFytjServiceImpl.java

@@ -70,7 +70,7 @@ public class YpMzFytjServiceImpl implements YpMzFytjService {
                 ypMzFytj.setSerialNo(-ypMzFytj.getSerialNo());
                 ypMzFytj.setRealNo(-ypMzFytj.getRealNo());
                 ypMzFytjMapper.updateYpMzFytj(ypMzFytj);
-                String decAmount = chargeItemCodeAndDecAmountMap.get(ypMzFytj.getChargeItemCode().trim());
+                String decAmount = chargeItemCodeAndDecAmountMap.get(ypMzFytj.getItemNo()+"_"+ypMzFytj.getChargeItemCode().trim());
                 if (StringUtils.isNotBlank(decAmount)) {
                     decAmount = decAmount.replace("<br>", "");
                 }

+ 1 - 1
src/main/java/cn/hnthyy/thmz/vo/ChargeFeeParamsVo.java

@@ -56,7 +56,7 @@ public class ChargeFeeParamsVo extends PageBean {
     //就诊次数
     private Integer times;
     /**
-     * 收费编码 与 退药量集合 逗号分割
+     * 药品明细编码_收费编码 与 退药量集合 逗号分割 item_no+'_'+chargeItem_code+",'+dec_amount
      */
     private List<String> chargeItemCodeAndDecAmounts;
 

+ 2 - 1
src/main/resources/static/js/mz/refund_medicine.js

@@ -26,6 +26,7 @@ $(function () {
  * 查询病人缴费记录
  */
 function initChargeListByPatient() {
+    $('#tb_table_right').bootstrapTable("destroy");
     $('#tb_table').bootstrapTable("destroy");
     $('#tb_table').bootstrapTable({
         url: '/thmz/getYfyjl',         //请求后台的URL(*)
@@ -367,7 +368,7 @@ function saveRefundMedicine() {
                 });
                 return;
             }
-            jsonData.chargeItemCodeAndDecAmounts[i] = data[i].charge_item_code+","+dec_amount;
+            jsonData.chargeItemCodeAndDecAmounts[i] = data[i].item_no+"_"+data[i].charge_item_code+","+dec_amount;
         }
     }
     $.ajax({