0027005599 2 лет назад
Родитель
Сommit
99a6d19b9f

+ 3 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdviceDetails.java

@@ -83,11 +83,11 @@ public class AdviceDetails implements Serializable {
 	/**用药天数;用药天数(项目为药品时非空),医嘱服用该药品天数,必须使用数值型,如”15”*/
 	@Excel(name = "用药天数;用药天数(项目为药品时非空),医嘱服用该药品天数,必须使用数值型,如”15”", width = 15)
     @ApiModelProperty(value = "用药天数;用药天数(项目为药品时非空),医嘱服用该药品天数,必须使用数值型,如”15”")
-    private java.lang.String useDay;
+    private java.lang.Double useDay;
 	/**单次用药量;单次用药量(项目为药品时非空),配合下一个字段的单位,如 50 mg,必须使用数值型,如”50”*/
 	@Excel(name = "单次用药量;单次用药量(项目为药品时非空),配合下一个字段的单位,如 50 mg,必须使用数值型,如”50”", width = 15)
     @ApiModelProperty(value = "单次用药量;单次用药量(项目为药品时非空),配合下一个字段的单位,如 50 mg,必须使用数值型,如”50”")
-    private java.lang.String singleDoseNumber;
+    private java.lang.Double singleDoseNumber;
 	/**单次用药量剂量单位;单次用药量剂量单位(项目为药品时非空)*/
 	@Excel(name = "单次用药量剂量单位;单次用药量剂量单位(项目为药品时非空)", width = 15)
     @ApiModelProperty(value = "单次用药量剂量单位;单次用药量剂量单位(项目为药品时非空)")
@@ -95,7 +95,7 @@ public class AdviceDetails implements Serializable {
 	/**药量天数;药量天数(项目为药品时非空),依据医嘱服药要求,所配药品患者可以服用的天数,必须使用数值型,如”5”*/
 	@Excel(name = "药量天数;药量天数(项目为药品时非空),依据医嘱服药要求,所配药品患者可以服用的天数,必须使用数值型,如”5”", width = 15)
     @ApiModelProperty(value = "药量天数;药量天数(项目为药品时非空),依据医嘱服药要求,所配药品患者可以服用的天数,必须使用数值型,如”5”")
-    private java.lang.String doseDay;
+    private java.lang.Double doseDay;
 	/**服用频次;服用频次*/
 	@Excel(name = "服用频次;服用频次", width = 15)
     @ApiModelProperty(value = "服用频次;服用频次")

+ 3 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdviceDetailsVO.java

@@ -10,7 +10,7 @@ public class AdviceDetailsVO {
     private String project_code;//char	项目编码,正常情况必填,特殊情况,如生化全套等没有医保编码,可放空。
 //    private String hospital_code;//院内项目编码
     private String project_name;//	true	char	项目名称
-    private String project_type;//项目类型 药品、耗材、诊疗
+    private String project_type;//项目类型 1:药品、2:耗材、3:诊疗、4:手术
     private String medical_project_code;//医保项目编码
     private String medical_project_name;//医保项目名称
     private String recipe_no;//		char	处方号
@@ -56,8 +56,8 @@ public class AdviceDetailsVO {
     private String dose_form;//		char	剂型
     private String medical_specification;//		char	规格
     private Double price;//	true	float	单价,必须使用数值型,如”12.5”
-    private Integer medical_number;//	true	float	数量,必须使用数值型,如”10”
-    private String dose_unit;//	true	char	单位
+    private Float quantity;//	true	float	发药数量,必须使用数值型,如”10”
+    private String dose_unit;//	true	char	单位,发药单位,例如:瓶、盒、片等,和发药数量对应
     private Double amount;//	true	float	金额,必须使用数值型,如”50.5”
     private Integer use_day;//		float	用药天数(项目为药品时非空),医嘱服用该药品天数,必须使用数值型,如”15”
     private Integer single_dose_number;//		float	单次用药量(项目为药品时非空),配合下一个字段的单位,如 50 mg,必须使用数值型,如”50”

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MidIncidentVisitDetailLog.java

@@ -156,7 +156,7 @@ public class MidIncidentVisitDetailLog implements Serializable {
 	/**数量;数量,必须使用数值型,如”10”*/
 	@Excel(name = "数量;数量,必须使用数值型,如”10”", width = 15)
     @ApiModelProperty(value = "数量;数量,必须使用数值型,如”10”")
-    private java.lang.Integer medicalNumber;
+    private java.lang.Float medicalNumber;
 	/**单位*/
 	@Excel(name = "单位", width = 15)
     @ApiModelProperty(value = "单位")

+ 2 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MidIncidentWarningVO.java

@@ -46,4 +46,6 @@ public class MidIncidentWarningVO {
     private Double totoal_amount;
 
     private List<AdviceDetailsVO> advice_details;//	true	Array	医嘱明细信息(多项)(内容说明参见advice_details(医嘱明细信息说明))
+
+
 }

+ 4 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/AfterWaringJob.java

@@ -15,7 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 事后触发监管
@@ -33,10 +32,10 @@ public class AfterWaringJob implements Job {
         QueryWrapper queryWrapper = new QueryWrapper(AfterIncidentLog.class);
         queryWrapper.eq("state", Constant.WATING);
         long count = afterIncidentLogService.count(queryWrapper);
-        if(count>0){
+        if (count > 0) {
             queryWrapper.last(" limit 1000");
             List<AfterIncidentLog> afterIncidentLogList = afterIncidentLogService.list(queryWrapper);
-            for(AfterIncidentLog afterIncidentLog : afterIncidentLogList){
+            for (AfterIncidentLog afterIncidentLog : afterIncidentLogList) {
                 dealAftertask(afterIncidentLog);
             }
 
@@ -45,11 +44,11 @@ public class AfterWaringJob implements Job {
 
 
     @Async("commonTaskAsyncPool")
-    public void dealAftertask(AfterIncidentLog afterIncidentLog){
+    public void dealAftertask(AfterIncidentLog afterIncidentLog) {
         AfterwardsAudit afterwardsAudit = ruleEngine.insertAfterWarning(afterIncidentLog);
         afterIncidentLogService.lambdaUpdate().set(AfterIncidentLog::getState, Constant.DEALING).eq(AfterIncidentLog::getId, afterIncidentLog.getId()).update();
         List<AfterIncidentDetailLog> afterIncidentDetailLogList = afterIncidentDetailLogService.lambdaQuery().eq(AfterIncidentDetailLog::getAfterIncidentLogId, afterIncidentLog.getId()).list();
-        for(AfterIncidentDetailLog afterIncidentDetailLog : afterIncidentDetailLogList) {
+        for (AfterIncidentDetailLog afterIncidentDetailLog : afterIncidentDetailLogList) {
             ruleEngine.dealAfterInterfaceEngin(afterwardsAudit, afterIncidentDetailLog);
         }
         afterIncidentLogService.lambdaUpdate().set(AfterIncidentLog::getState, Constant.SUCCESS).eq(AfterIncidentLog::getId, afterIncidentLog.getId()).update();

+ 42 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/AfterWaringLogJob.java

@@ -0,0 +1,42 @@
+package org.jeecg.modules.medical.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.modules.medical.Constant;
+import org.jeecg.modules.medical.entity.AfterIncidentDetailLog;
+import org.jeecg.modules.medical.entity.AfterIncidentLog;
+import org.jeecg.modules.medical.entity.AfterwardsAudit;
+import org.jeecg.modules.medical.ruleengine.RuleEngine;
+import org.jeecg.modules.medical.service.IAfterIncidentDetailLogService;
+import org.jeecg.modules.medical.service.IAfterIncidentLogService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+
+import java.util.List;
+
+/**
+ * 事后触发监管
+ */
+public class AfterWaringLogJob implements Job {
+    @Autowired
+    IAfterIncidentLogService afterIncidentLogService;
+    @Autowired
+    IAfterIncidentDetailLogService afterIncidentDetailLogService;
+    @Autowired
+    RuleEngine ruleEngine;
+
+
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+
+    }
+
+
+    @Async("commonTaskAsyncPool")
+    public void dealAftertask(AfterIncidentLog afterIncidentLog) {
+
+    }
+}

+ 1 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/RuleEngine.java

@@ -257,7 +257,6 @@ public class RuleEngine {
     /**
      * 事后明细
      *
-     * @param intefName
      * @param afterwardsAudit
      * @param afterIncidentDetailLog
      */
@@ -351,7 +350,7 @@ public class RuleEngine {
                 midIncidentVisitDetailLog.setInspectionSite(adviceDetailsVO.getInspection_site());
                 midIncidentVisitDetailLog.setInvoiceProject(adviceDetailsVO.getInvoice_project());
                 midIncidentVisitDetailLog.setMedicalInsuranceMark(adviceDetailsVO.getMedical_insurance_mark());
-                midIncidentVisitDetailLog.setMedicalNumber(adviceDetailsVO.getMedical_number());
+                midIncidentVisitDetailLog.setMedicalNumber(adviceDetailsVO.getQuantity());
                 midIncidentVisitDetailLog.setOrderType(adviceDetailsVO.getOrder_type());
                 midIncidentVisitDetailLog.setOrderCatalog(adviceDetailsVO.getOrder_catalog());
                 midIncidentVisitDetailLog.setSingleDoseNumber(adviceDetailsVO.getSingle_dose_number());
@@ -369,7 +368,6 @@ public class RuleEngine {
                 midIncidentVisitDetailLog.setProejctName(adviceDetailsVO.getProject_name());
                 midIncidentVisitDetailLog.setPatientId(midIncidentWarningVO.getPatient_id());
                 midIncidentVisitDetailLog.setPatientId(midIncidentWarningVO.getPatient_name());
-                midIncidentVisitDetailLog.setAmount(new BigDecimal(adviceDetailsVO.getAmount()));
                 midIncidentVisitDetailLogList.add(midIncidentVisitDetailLog);
             }
             midIncidentVisitDetailLogService.saveBatch(midIncidentVisitDetailLogList);