Browse Source

工伤及体检发票

‘chenzhilei’ 1 week ago
parent
commit
f58e0a6aea

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

@@ -34,6 +34,7 @@ public class JSMzInvoiceInfo implements Serializable {
     private	String bustype = "0";	//	业务类型
     private	BigDecimal totalAmount;	//	总金额
     private	String payerPartyType = "1";	//	交款人类型	1:个人2:单位
+    private	String payerPartyCode;	//	交款人证件号
     private	String payerPartyName;	//	交款人姓名
     private	String bizcode;	//	医疗系统的业务流水号
     private	String handlingPerson;	//	开票人
@@ -52,6 +53,14 @@ public class JSMzInvoiceInfo implements Serializable {
 //        jsMzInvoiceInfo.setBusseqno(mzInvoiceInfo.getSpecialAttrDTO().getMedicalSerialNo());
         jsMzInvoiceInfo.setTotalAmount(mzInvoiceInfo.getTotalAmount());
         jsMzInvoiceInfo.setPayerPartyName(mzInvoiceInfo.getBuyerUsciName());
+        if ("990202".equals(mzInvoiceInfo.getMdtrtInfo().getCertType())) {
+            jsMzInvoiceInfo.setPayerPartyType("2");
+            jsMzInvoiceInfo.setPayerPartyCode(mzInvoiceInfo.getMdtrtInfo().getSocialNo());
+        } else {
+            jsMzInvoiceInfo.setPayerPartyType("1");
+            jsMzInvoiceInfo.setPayerPartyCode(mzInvoiceInfo.getMdtrtInfo().getSocialNo());
+        }
+
         jsMzInvoiceInfo.setBizcode(mzInvoiceInfo.getSpecialAttrDTO().getMedicalSerialNo());
         jsMzInvoiceInfo.setHandlingPerson(mzInvoiceInfo.getIssuer());
         jsMzInvoiceInfo.setChecker(mzInvoiceInfo.getIssuer());
@@ -89,25 +98,25 @@ public class JSMzInvoiceInfo implements Serializable {
         } else {
             //医疗业务病人信息(住院)
             if ("01".equals(biztype)) {
-                tradeInfo.setOtherfund_pay(mzInvoiceInfo.getSetlInfo().getOtherPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSetlInfo().getOtherPayAmount());
+                tradeInfo.setOtherfund_pay(mzInvoiceInfo.getSpecialAttrDTO().getOtherPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getOtherPayAmount());
 
-                tradeInfo.setAccount_pay(mzInvoiceInfo.getSetlInfo().getPerAccoPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSetlInfo().getPerAccoPayAmount());
-                tradeInfo.setFund_pay(mzInvoiceInfo.getSetlInfo().getInsureFundPay() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSetlInfo().getInsureFundPay());
-                BigDecimal ownPay = mzInvoiceInfo.getSetlInfo().getPerSelfPayAmount().subtract(tradeInfo.getAccount_pay()).subtract(tradeInfo.getOtherfund_pay());
+                tradeInfo.setAccount_pay(mzInvoiceInfo.getSpecialAttrDTO().getPerAccoPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getPerAccoPayAmount());
+                tradeInfo.setFund_pay(mzInvoiceInfo.getSpecialAttrDTO().getInsureFundPay() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getInsureFundPay());
+                BigDecimal ownPay = mzInvoiceInfo.getSpecialAttrDTO().getPerSelfPayAmount().subtract(tradeInfo.getAccount_pay()).subtract(tradeInfo.getOtherfund_pay());
                 tradeInfo.setOwn_pay(ownPay);
-//                System.out.println("mzInvoiceInfo.getSetlInfo().getPerHosPayAmount()"+mzInvoiceInfo.getSetlInfo().getPerHosPayAmount());
-                if (mzInvoiceInfo.getSetlInfo().getPerHosPayAmount() != null) {
-                    tradeInfo.setOtherfund_pay(tradeInfo.getOtherfund_pay().add(mzInvoiceInfo.getSetlInfo().getPerHosPayAmount()));
+//                System.out.println("mzInvoiceInfo.getSpecialAttrDTO().getPerHosPayAmount()"+mzInvoiceInfo.getSpecialAttrDTO().getPerHosPayAmount());
+                if (mzInvoiceInfo.getSpecialAttrDTO().getPerHosPayAmount() != null) {
+                    tradeInfo.setOtherfund_pay(tradeInfo.getOtherfund_pay().add(mzInvoiceInfo.getSpecialAttrDTO().getPerHosPayAmount()));
                 }
                 tradeInfo.setCash_pay(mzInvoiceInfo.getSpecialAttrDTO().getPerCashPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getPerCashPayAmount());
                 tradeInfo.setCash_recharge(mzInvoiceInfo.getSpecialAttrDTO().getPerCashRechargeAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getPerCashRechargeAmount());
                 tradeInfo.setCash_refund(mzInvoiceInfo.getSpecialAttrDTO().getPerCashRefundAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getPerCashRefundAmount());
             } else {//门诊
-                tradeInfo.setOtherfund_pay(mzInvoiceInfo.getSetlInfo().getOtherPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSetlInfo().getOtherPayAmount());
+                tradeInfo.setOtherfund_pay(mzInvoiceInfo.getSpecialAttrDTO().getOtherPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getOtherPayAmount());
 
-                tradeInfo.setAccount_pay(mzInvoiceInfo.getSetlInfo().getPerAccoPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSetlInfo().getPerAccoPayAmount());
-                tradeInfo.setFund_pay(mzInvoiceInfo.getSetlInfo().getInsureFundPay() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSetlInfo().getInsureFundPay());
-                tradeInfo.setOwn_pay(mzInvoiceInfo.getSetlInfo().getPerCashPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSetlInfo().getPerCashPayAmount());
+                tradeInfo.setAccount_pay(mzInvoiceInfo.getSpecialAttrDTO().getPerAccoPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getPerAccoPayAmount());
+                tradeInfo.setFund_pay(mzInvoiceInfo.getSpecialAttrDTO().getInsureFundPay() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getInsureFundPay());
+                tradeInfo.setOwn_pay(mzInvoiceInfo.getSpecialAttrDTO().getPerCashPayAmount() == null ? BigDecimal.valueOf(0):mzInvoiceInfo.getSpecialAttrDTO().getPerCashPayAmount());
 
             }
 
@@ -169,7 +178,7 @@ public class JSMzInvoiceInfo implements Serializable {
 
         Bizinfo bizinfo = new Bizinfo();
 //        bizinfo.setMedcare_type();
-        bizinfo.setMedcare_type(StringUtils.isEmpty(mzInvoiceInfo.getSetlInfo().getInsutype()) ?"自费":InsutypeEnum.getNameByCode(mzInvoiceInfo.getSetlInfo().getInsutype()));
+        bizinfo.setMedcare_type(StringUtils.isEmpty(mzInvoiceInfo.getSpecialAttrDTO().getInsureTypeCode()) ?"自费":InsutypeEnum.getNameByCode(mzInvoiceInfo.getSpecialAttrDTO().getInsureTypeCode()));
         bizinfo.setMedcare_type_code(mzInvoiceInfo.getSpecialAttrDTO().getInsureTypeCode());
         bizinfo.setPatient_id(mzInvoiceInfo.getSpecialAttrDTO().getOutpatientNo());
         bizinfo.setSex(mzInvoiceInfo.getSpecialAttrDTO().getSex());
@@ -182,6 +191,8 @@ public class JSMzInvoiceInfo implements Serializable {
             medBedinfo.setHospital_no(mzInvoiceInfo.getSpecialAttrDTO().getOutpatientNo());
             medBedinfo.setIn_category(mzInvoiceInfo.getSpecialAttrDTO().getHospitalDepartment());
             medBedinfo.setOut_category(mzInvoiceInfo.getSpecialAttrDTO().getHospitalDepartment());
+            medBedinfo.setIn_date( DateTimeUtils.getCurrentDateTimeStrFill(mzInvoiceInfo.getMdtrtInfo().getBegntime()));
+            medBedinfo.setOut_date( DateTimeUtils.getCurrentDateTimeStrFill(mzInvoiceInfo.getMdtrtInfo().getEndtime()));
 //        medOutinfo.setCase_no("");
             bizinfo.setMed_bedinfo(medBedinfo);
             jsMzInvoiceInfo.setInvoice_type_code("320602");
@@ -286,5 +297,7 @@ class MedBedinfo {
     private String hospital_no;	//	患者住院号
     private String in_category;	//	患者住院号
     private String out_category;	//	患者住院号
+    private String in_date;	//	入院时间
+    private String out_date;	//	出院时间
 }
 

+ 2 - 0
src/main/java/cn/hnthyy/thmz/entity/mzdzfp/MdtrtInfo.java

@@ -44,5 +44,7 @@ public class MdtrtInfo implements Serializable {
   private String  spPsnType;//	特殊人员类型		String	6	否
   private String  hiPaymtd;//	医保支付方式		String	3	否
   private String  memo;//	备注 String	500	否
+  private String  certType;//	证件类型
+  private String  socialNo;//	证件号
 
 }

+ 2 - 1
src/main/java/cn/hnthyy/thmz/enums/CertificateTypeEnum.java

@@ -27,7 +27,8 @@ public enum CertificateTypeEnum {
     SHBZK("90","社会保障卡"),
     QTSFZJ("99","其他身份证件"),
     POVERTY_CODE("990102", "扶贫人口编码"),
-    MEDICAL_BIRTH_CERT("990201", "医学出生证明");
+    MEDICAL_BIRTH_CERT("990201", "医学出生证明"),
+    UNIFIED_SOCIAL_CREDIT_CODE("990202", "统一社会信用代码");
 
     public String code;
     public String name;

+ 3 - 1
src/main/java/cn/hnthyy/thmz/enums/InsutypeEnum.java

@@ -37,7 +37,9 @@ public enum InsutypeEnum {
 
     LONG_TERM_CARE_INSURANCE("410", "04", "长期照护保险"),
 
-    MATERNITY_INSURANCE("510", "04", "生育保险");
+    MATERNITY_INSURANCE("510", "04", "生育保险"),
+
+    EMPLOYMENT_INJURY_INSURANCE("511", "04", "工伤");
 
     private final String code;
     private final String dzfpCode;

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

@@ -124,7 +124,7 @@ public interface SiPatInfoMapper {
      * @param times 就诊次数
      * @return 医保患者信息列表
      */
-    @Select("SELECT pat_no, times, psn_no, psn_name, psn_cert_type, certno, gend, naty, brdy, age " +
+    @Select("SELECT pat_no, times,med_type,insutype, psn_no, psn_name, psn_cert_type, certno, gend, naty, brdy, age " +
             "FROM t_si_pat_info WHERE pat_no = #{patientId} AND times = #{times}")
     List<SiPatInfo> selectByPatientIdAndTimes(@Param("patientId") String patientId, @Param("times") Integer times);
 } 

+ 11 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/zy/ZyLedgerFileYbMapper.java

@@ -1,7 +1,9 @@
 package cn.hnthyy.thmz.mapper.his.zy;
 
+import cn.hnthyy.thmz.entity.his.zy.ZyLedgerFileYb;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 public interface ZyLedgerFileYbMapper {
     /**
@@ -13,4 +15,13 @@ public interface ZyLedgerFileYbMapper {
      */
     @Delete("delete from zy_ledger_file_yb WHERE inpatient_no =#{inpatientNo} AND admiss_times =#{admissTimes} AND ledger_sn =#{ledgerSn} ")
     int deleteZyLedgerFileYb(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("ledgerSn") Integer ledgerSn);
+    /**
+     * 删除住院医保账页信息
+     * @param inpatientNo
+     * @param admissTimes
+     * @param ledgerSn
+     * @return
+     */
+    @Select("select * from zy_ledger_file_yb WHERE inpatient_no =#{inpatientNo} AND admiss_times =#{admissTimes} AND ledger_sn =#{ledgerSn} ")
+    ZyLedgerFileYb selectZyLedgerFileYb(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("ledgerSn") Integer ledgerSn);
 }