Browse Source

费用日结修复

hurugang 5 years ago
parent
commit
cc20dd0598

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

@@ -102,7 +102,7 @@ public interface ChargeFeeVoMapper {
             "  r.receipt_bill," +
             "   receipt_sn=r.receipt_sn , " +
             "   m.cheque_type, " +
-            "   m.op_id from mz_deposit_file  m left join mz_receipt_serial r on m.serial_no =r.serial_no where " +
+            "   m.op_id from mz_deposit_file  m left join mz_receipt_serial r on m.serial_no =r.serial_no where (r.receipt_bill <> '' and r.receipt_bill is not null) and " +
             "   case '1' when #{caseType} then r.charge_date else  m.dcount_date end =#{dcountDate,jdbcType=TIMESTAMP}  " +
             "  and m.pay_mark <> 2 and m.cheque_type <>'Z' " +
             "  group by r.receipt_sn,r.receipt_bill,m.cheque_type,r.pay_mark,m.op_id " +

+ 15 - 14
src/main/java/cn/hnthyy/thmz/service/impl/his/MzChargeDetailServiceImpl.java

@@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -904,8 +905,8 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
                         if (surplus.compareTo(BigDecimal.ZERO) == 1) {
                             temp = CloneUtil.clone(md);
                             temp.setQuantity(surplus.doubleValue());
-                            BigDecimal proportion = BigDecimal.valueOf(md.getQuantity()).divide(BigDecimal.valueOf(md.getSupplyAmount()));
-                            temp.setSupplyAmount(BigDecimal.valueOf(md.getQuantity()).divide(proportion).intValue());
+                            //BigDecimal proportion = BigDecimal.valueOf(md.getQuantity()).divide(BigDecimal.valueOf(md.getSupplyAmount()),2,RoundingMode.HALF_UP);
+                            //temp.setSupplyAmount(BigDecimal.valueOf(md.getQuantity()).divide(proportion).intValue());
                             BigDecimal origPrice = temp.getOrigPrice();
                             origPrice = origPrice == null ? BigDecimal.ZERO : origPrice;
                             BigDecimal unitPrice = temp.getUnitPrice();
@@ -958,19 +959,19 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
         }
         List<MzChargeDetail> supplyFeeMzChargeDetails = new ArrayList<>();
         //重新计算给药方式费用
-        itemNo = formatSupplyFee(supplyFeeMzChargeDetails, newMzChargeDetailList, itemNo);
+     //   itemNo = formatSupplyFee(supplyFeeMzChargeDetails, newMzChargeDetailList, itemNo);
         formatPriceRoundDetail(new MzChargeDetail(mzDepositFileVo.getPatientId(), times), supplyFeeMzChargeDetails, mzPatientMi, newMzChargeDetailList, 127, itemNo, receiptNo);
-        List<String> supplyList = supplyFeeMzChargeDetails.stream().filter(u -> StringUtils.isNotBlank(u.getChargeItemCode())).map(u -> u.getChargeItemCode()).collect(Collectors.toList());
-        List<MzChargeDetail> removeList = new ArrayList<>();
-        for (MzChargeDetail md : newMzChargeDetailList) {
-            if (supplyList.contains(md.getChargeItemCode())) {
-                removeList.add(md);
-                continue;
-            }
-            md.setConfirmFlag(ConfirmFlagEnum.NOT_CONFIRM.code);
-        }
-        newMzChargeDetailList.removeAll(removeList);
-        newMzChargeDetailList.addAll(supplyFeeMzChargeDetails);
+//        List<String> supplyList = supplyFeeMzChargeDetails.stream().filter(u -> StringUtils.isNotBlank(u.getChargeItemCode())).map(u -> u.getChargeItemCode()).collect(Collectors.toList());
+//        List<MzChargeDetail> removeList = new ArrayList<>();
+//        for (MzChargeDetail md : newMzChargeDetailList) {
+//            if (supplyList.contains(md.getChargeItemCode())) {
+//                removeList.add(md);
+//                continue;
+//            }
+//            md.setConfirmFlag(ConfirmFlagEnum.NOT_CONFIRM.code);
+//        }
+//        newMzChargeDetailList.removeAll(removeList);
+//        newMzChargeDetailList.addAll(supplyFeeMzChargeDetails);
         removeOnlyTcItem(newMzChargeDetailList);
         return newMzChargeDetailList;
     }