소스 검색

完成外院发表录入

xiaochan 4 달 전
부모
커밋
afb5c89952

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>thyyxxk</groupId>
     <artifactId>web-server</artifactId>
-    <version>13.1.4</version>
+    <version>13.1.5</version>
     <name>web-server</name>
     <description>server for yibao-web</description>
     <properties>

+ 1 - 1
src/main/java/thyyxxk/webserver/config/envionment/YzConfig.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
 @NoArgsConstructor
 public class YzConfig {
     /**
-     * 医嘱是否作废
+     * 医嘱是否允许在还有费用的时候作废
      */
     private Boolean yzAllowInvalidation = Boolean.FALSE;
 

+ 2 - 0
src/main/java/thyyxxk/webserver/controller/inpatient/xmlr/XiangMuLuRuController.java

@@ -199,5 +199,7 @@ public class XiangMuLuRuController {
         return service.getAPrescriptionByPageNo(pageNo);
     }
 
+
+
 }
 

+ 7 - 17
src/main/java/thyyxxk/webserver/dao/his/inpatient/xmlr/XiangMuLuRuDao.java

@@ -292,34 +292,24 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
             "  , op_id_code, charge_code, infant_flag, charge_status, charge_fee  " +
             "  , self_flag, separate_flag, suppress_flag, ward_code, dept_code  " +
             "  , order_no, ope_flag, exec_unit, charge_amount, gen_time  " +
-            "  , zy_serial_no, charge_code_mx, serial,ss_code,yb_self_flag,refer_physician,doctor_code)  " +
+            "  , zy_serial_no, charge_code_mx, serial,ss_code,yb_self_flag,refer_physician,doctor_code,receipt_no)  " +
             "VALUES " +
             "<foreach collection='list' item='item' separator=','>" +
-            "(#{zyDetailCharge.inpatientNo}, #{zyDetailCharge.admissTimes}, #{ledgerSn}, #{item.detailSn}, getdate()  " +
+            "(#{zyDetailCharge.inpatientNo}, #{zyDetailCharge.admissTimes}, #{ledgerSn}, #{item.detailSn}, '${chargeDate}'  " +
             "  , #{zyDetailCharge.opIdCode}, #{item.chargeCode}, #{infantFlag}, '2', cast(#{item.chargeAmount,jdbcType=DECIMAL} as decimal(14,5))  " +
             "  , '0', '0', NULL, #{zyDetailCharge.ward}, #{zyDetailCharge.dept}  " +
-            "  , #{item.orderNo}, '0', #{item.deptCode}, cast(#{item.amount,jdbcType=DECIMAL} as decimal(14,5)), getdate()  " +
+            "  , #{item.orderNo}, '0', #{item.deptCode}, cast(#{item.amount,jdbcType=DECIMAL} as decimal(14,5)), '${chargeDate}'  " +
             "  , #{zyDetailCharge.zySerialNo}, #{item.chargeCodeMx}, #{item.serial},#{zyDetailCharge.ssCode}" +
             "  ,#{item.ybSelfFlag} " +
-            ",#{zyDetailCharge.referPhysician},null)" +
+            ",#{zyDetailCharge.referPhysician},null,#{receiptNo})" +
             "</foreach>" +
             "</script>")
     void chaRuFeiYong(@Param("zyDetailCharge") ZyDetailCharge zyDetailCharge,
                       @Param("list") List<ZyDetailCharge> list,
                       @Param("infantFlag") int infantFlag,
-                      @Param("ledgerSn") Integer ledgerSn);
-
-    @Select("select b.class as class_code," +
-            "       a.drug_flag as drug_class," +
-            "       a.mini_unit " +
-            "from yz_act_order a, " +
-            "     yz_supply_type b " +
-            "where a.supply_code = b.supply_code " +
-            "  and a.act_order_no = #{order} ")
-    ZyDetailCharge selectDrugClassByOrderNo(BigDecimal order);
-
-    @Select("select count(1) from  yp_zd_dict where code = #{code} and serial = #{serial} and drug_kind = '0013'")
-    Integer getDrugKing(String code, String serial);
+                      @Param("ledgerSn") Integer ledgerSn,
+                      @Param("chargeDate") String chargeDate,
+                      @Param("receiptNo") String receiptNo);
 
     @Insert("<script>" +
             "insert into zy_drug ( inpatient_no , admiss_times , ledger_sn , detail_sn , charge_date , op_id_code ," +

+ 5 - 0
src/main/java/thyyxxk/webserver/entity/datamodify/ZyDetailCharge.java

@@ -392,5 +392,10 @@ public class ZyDetailCharge implements Serializable {
         }
     }
 
+    /**
+     * 发票号,在费用录入时财务的可以用到
+     */
+    private String receiptNo;
+
 
 }

+ 1 - 0
src/main/java/thyyxxk/webserver/enums/authorize/RuleId.java

@@ -5,6 +5,7 @@ import lombok.Getter;
 @Getter
 public enum RuleId {
 
+    财务(14),
     住院医生(33);
 
     private final int id;

+ 23 - 5
src/main/java/thyyxxk/webserver/service/inpatient/xmlr/XiangMuLuRuService.java

@@ -29,6 +29,7 @@ import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.projectEntry.DrugReturnForm;
 import thyyxxk.webserver.entity.xmlr.dto.XmlrQueryFee;
 import thyyxxk.webserver.entity.xmlr.vo.FeeResult;
+import thyyxxk.webserver.enums.authorize.RuleId;
 import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.service.hutoolcache.UserCache;
 import thyyxxk.webserver.service.hutoolcache.ZyBillItemCache;
@@ -128,9 +129,7 @@ public class XiangMuLuRuService {
                 .eq("admiss_times", params.getAdmissTimes())
                 .eq("ledger_sn", params.getLedgerSn())
                 .eq("infant_flag", params.getInfantFlag())
-                .ne("isnull(trans_flag_yb, 0)", 2)
-                // 不能查询急诊费用转入的
-                .ne("order_no", new BigDecimal(6));
+                .ne("isnull(trans_flag_yb, 0)", 2);
 
 
         if (StrUtil.isNotBlank(params.getStartTime())) {
@@ -417,9 +416,23 @@ public class XiangMuLuRuService {
         if (dao.getHuanZheSFZaiYuan(param.getInpatientNo(), param.getAdmissTimes()) == 0) {
             errorStr.append("没有患者的在院信息 <br />");
         }
+
+        if (publicServer.needRule(RuleId.财务.getId())) {
+            if (param.getChargeDate() == null) {
+                errorStr.append("请选择费用时间 <br />");
+            }
+            if (StrUtil.isBlank(param.getReceiptNo())) {
+                errorStr.append("请输入发票号 <br />");
+            }
+            param.setOrderNo(new BigDecimal(6));
+        } else {
+            param.setChargeDate(new Date());
+        }
+
         if (errorStr.length() > 0) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, errorStr.toString());
         }
+
         // 收费项目的编码
         List<String> shiFouTingYongXiangMu = new ArrayList<>();
 
@@ -477,7 +490,7 @@ public class XiangMuLuRuService {
             if (zyDetailCharge.getChargeCodeMx() == null) {
                 zyDetailCharge.setChargeCodeMx(zyDetailCharge.getChargeCode());
             }
-            // 0 - 住院费用  3 - 门急诊 6 - 医技
+            // 0 - 住院费用  6 - 门急诊 3 - 医技
             if (param.getOrderNo() != null) {
                 zyDetailCharge.setOrderNo(param.getOrderNo());
             } else {
@@ -500,7 +513,12 @@ public class XiangMuLuRuService {
         }
         Integer ledgerSn = publicServer.getLedgerSn(param.getInpatientNo(), param.getAdmissTimes());
         // 在此处 插入费用
-        dao.chaRuFeiYong(param, param.getList(), infantFlag, ledgerSn);
+        dao.chaRuFeiYong(param, param.getList(),
+                infantFlag,
+                ledgerSn,
+                DateUtil.formatDatetime(param.getChargeDate(),
+                        DateUtil.DEFAULT_PATTERN),
+                param.getReceiptNo());
         if (ListUtil.notBlank(yaoPingShenQingDan)) {
             dao.shenQingYaoPing(param, yaoPingShenQingDan, infantFlag, ledgerSn, TokenUtil.getInstance().getTokenUserId());
         }

+ 14 - 0
update/2025-05-17/update.md

@@ -0,0 +1,14 @@
+# 新增功能外院做的费用拿到本院来报销
+
+新增字段发票号
+```sql
+alter table zy_detail_charge
+    add receipt_no varchar(40)
+go
+
+exec sp_addextendedproperty 'MS_Description', N'外院录入的费用发表号', 'SCHEMA', 'dbo', 'TABLE', 'zy_detail_charge',
+     'COLUMN', 'receipt_no'
+go
+
+
+```