浏览代码

开局具有详细费用的发票

‘chenzhilei’ 1 月之前
父节点
当前提交
2a8edaafcd

+ 10 - 1
src/main/java/cn/hnthyy/thmz/Utils/DateTimeUtils.java

@@ -19,6 +19,7 @@ import java.util.Date;
  */
 public class DateTimeUtils {
     public static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+    public static final DateTimeFormatter DATETIME_FORMATTER_FILL = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
     public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
     private static ZoneId shanghaiZoneId = ZoneId.of("Asia/Shanghai");
 
@@ -114,7 +115,7 @@ public class DateTimeUtils {
     public static String getCurrentDateStr() {
         return LocalDate.now().format(DATE_FORMATTER);
     }
- 
+
     /**
      * 返回当前日期时间字符串 yyyyMMddHHmmss
      *
@@ -123,6 +124,14 @@ public class DateTimeUtils {
     public static String getCurrentDateTimeStr() {
         return LocalDateTime.now().format(DATETIME_FORMATTER);
     }
+    /**
+     * 返回当前日期时间字符串 yyyyMMddHHmmss
+     *
+     * @return
+     */
+    public static String getCurrentDateTimeStrFill() {
+        return LocalDateTime.now().format(DATETIME_FORMATTER_FILL);
+    }
  
     public static LocalDate parseLocalDate(String dateStr, String pattern) {
         return LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(pattern));

+ 1 - 0
src/main/java/cn/hnthyy/thmz/entity/mzdzfp/FeeDetl.java

@@ -39,5 +39,6 @@ public class FeeDetl implements Serializable {
    private String chrg_type_name;	//	费用类型名称,例如:床位费、检查费
    private String list_no;	//	医疗清单明细的序号
    private String bill_item_code;	//	收费项目分类
+   private String bill_item_name;	//	收费项目分类名称
 
 }

+ 25 - 2
src/main/java/cn/hnthyy/thmz/entity/mzdzfp/JSMzInvoiceInfo.java

@@ -13,6 +13,7 @@ import java.math.BigDecimal;
 import java.util.Currency;
 import java.util.List;
 import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 /**
  * @Description:
@@ -56,6 +57,7 @@ public class JSMzInvoiceInfo implements Serializable {
         jsMzInvoiceInfo.setRec_name(mzInvoiceInfo.getIssuer());
         HisInfo hisInfo = new HisInfo();
         hisInfo.setPayee(mzInvoiceInfo.getIssuer());
+        hisInfo.setBiztime(DateTimeUtils.getCurrentDateTimeStrFill());
 //        TradeInfo tradeInfo = new TradeInfo();
 //        tradeInfo.setOtherfund_pay(mzInvoiceInfo.getSetlInfo().getOtherPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSetlInfo().getOtherPayAmount());
 //        if (mzInvoiceInfo.getSpecialAttrDTO().getInsureTypeCode() == null) {
@@ -100,7 +102,7 @@ public class JSMzInvoiceInfo implements Serializable {
             return detailItemList;
         }).collect(Collectors.toList());
         jsMzInvoiceInfo.setDetail_item_list(DetailItemList);
-//        List<FeeDetl> feeDetlInfo = mzInvoiceInfo.getFeeDetlInfo();
+        List<FeeDetl> feeDetlInfo = mzInvoiceInfo.getFeeDetlInfo();
 //        List<MedItemList> medItemLists = feeDetlInfo.stream().map(e->{
 //            MedItemList medItemList = new MedItemList();
 //            medItemList.setChrg_type_code(e.getChrg_type_code());
@@ -117,7 +119,27 @@ public class JSMzInvoiceInfo implements Serializable {
 //            medItemList.setList_no(e.getList_no());
 //            return medItemList;
 //        }).collect(Collectors.toList());
-//        hisInfo.setMed_item_list(medItemLists);
+        List<MedItemList> medItemLists = IntStream.range(0, feeDetlInfo.size())
+                .mapToObj(index -> {
+                    MedItemList medItemList = new MedItemList();
+                    medItemList.setList_no(String.valueOf(index+1));
+                    medItemList.setChrg_type_name(feeDetlInfo.get(index).getBill_item_name());
+                    medItemList.setChrg_type_code(feeDetlInfo.get(index).getBill_item_code());
+                    medItemList.setItem_name(feeDetlInfo.get(index).getItem_name());
+                    medItemList.setStd(feeDetlInfo.get(index).getPric());
+                    medItemList.setNum(feeDetlInfo.get(index).getCnt());
+                    medItemList.setAmt(feeDetlInfo.get(index).getDetItemFeeSumamt());
+                    medItemList.setSelf_amt(feeDetlInfo.get(index).getSelf_amt());
+                    medItemList.setUnit(feeDetlInfo.get(index).getUnit());
+
+//                    medItemList.setRemark("");
+
+//                    medItemList.setMedcare_item_type(feeDetlInfo.get(index).getMedcare_item_type());
+
+
+                    return medItemList;
+                }).collect(Collectors.toList());
+        hisInfo.setMed_item_list(medItemLists);
 
 
 
@@ -159,6 +181,7 @@ public class JSMzInvoiceInfo implements Serializable {
 @Data
 class HisInfo {
     private String payee;	//	收款人
+    private String biztime;	//业务日期
 
     private TradeInfo trade_info;
     private List<MedItemList> med_item_list;

+ 3 - 2
src/main/java/cn/hnthyy/thmz/service/impl/his/mzdzfp/BswServerImpl.java

@@ -747,7 +747,7 @@ public class BswServerImpl implements BswServer {
         if (StrUtil.isNotBlank(setlInfo.getEndtime())) {
             mzInvoiceInfo.getMdtrtInfo().setEndtime(setlInfo.getEndtime());
         }
-        mzInvoiceInfo.setFeeDetlInfo(createFeeDetlList(realMzChargeDetails, ybCodeMap, typeFlag));
+        mzInvoiceInfo.setFeeDetlInfo(createFeeDetlList(realMzChargeDetails,billItemMap, ybCodeMap, typeFlag));
         return mzInvoiceInfo;
     }
 
@@ -769,7 +769,7 @@ public class BswServerImpl implements BswServer {
         return patientIdTypeCode;
     }
 
-    private List<FeeDetl> createFeeDetlList(List<MzChargeDetail> realMzChargeDetails, Map<String, ZdChargeItem> ybCodeMap, Integer typeFlag) {
+    private List<FeeDetl> createFeeDetlList(List<MzChargeDetail> realMzChargeDetails,Map<String, BillItem> billItemMap, Map<String, ZdChargeItem> ybCodeMap, Integer typeFlag) {
         List<FeeDetl> feeDetlList = new ArrayList<>();
         for (MzChargeDetail mzChargeDetail : realMzChargeDetails) {
             if (Convert.toBigDecimal(mzChargeDetail.getUnitPrice(), BigDecimal.ZERO).compareTo(BigDecimal.ZERO) > 0) {
@@ -778,6 +778,7 @@ public class BswServerImpl implements BswServer {
                         .chrg_type_code(mzChargeDetail.getGroupType())
                         .item_code(mzChargeDetail.getChargeItemCode())
                         .bill_item_code(mzChargeDetail.getBillItemCode())
+                        .bill_item_name(billItemMap.get(mzChargeDetail.getBillItemCode()).getName())
                         .self_amt(mzChargeDetail.getOrigPrice())
                         .item_name(mzChargeDetail.getTcName())
 //                        .unit(mzChargeDetail.getUnitPrice())