Przeglądaj źródła

去除自动刷新

0027005599 2 lat temu
rodzic
commit
3971853761

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

@@ -0,0 +1,108 @@
+package org.jeecg.modules.medical.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+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.HospitalizatioSettleDetail;
+import org.jeecg.modules.medical.entity.MasterAdmissionBill;
+import org.jeecg.modules.medical.ruleengine.RuleEngine;
+import org.jeecg.modules.medical.service.IAfterIncidentDetailLogService;
+import org.jeecg.modules.medical.service.IAfterIncidentLogService;
+import org.jeecg.modules.medical.service.IHospitalizatioSettleDetailService;
+import org.jeecg.modules.medical.service.IMasterAdmissionBillService;
+import org.jeecg.modules.medical.service.IOutpatientSettleBillService;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
+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 org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 事后监管任务生成
+ */
+@Component
+public class AfterWaringLogTestJob{
+    @Autowired
+    IAfterIncidentLogService afterIncidentLogService;
+    @Autowired
+    IAfterIncidentDetailLogService afterIncidentDetailLogService;
+    @Autowired
+    RuleEngine ruleEngine;
+    @Autowired
+    IMasterAdmissionBillService masterAdmissionBillService;
+    @Autowired
+    IHospitalizatioSettleDetailService hospitalizatioSettleDetailService;
+    @Autowired
+    IOutpatientSettleBillService outpatientSettleBillService;
+    @Autowired
+    ISysUserService sysUserService;
+
+
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        List<MasterAdmissionBill> masterAdmissionBillList = masterAdmissionBillService.lambdaQuery().isNull(MasterAdmissionBill::getState).last(" limit 1000").list();
+        for (MasterAdmissionBill masterAdmissionBill : masterAdmissionBillList) {
+            dealAftertask(masterAdmissionBill);
+        }
+    }
+
+
+    @Async("commonTaskAsyncPool")
+    public void dealAftertask(MasterAdmissionBill masterAdmissionBill) {
+        masterAdmissionBillService.lambdaUpdate().set(MasterAdmissionBill::getState, Constant.DEALING).eq(MasterAdmissionBill::getId, masterAdmissionBill.getId()).update();
+        AfterIncidentLog afterIncidentLog = afterIncidentLogService.addAfterIncidentLog(masterAdmissionBill);
+        List<HospitalizatioSettleDetail> hospitalizatioSettleDetails = hospitalizatioSettleDetailService.lambdaQuery().eq(HospitalizatioSettleDetail::getHisid, masterAdmissionBill.getHisid()).list();
+        List<AfterIncidentDetailLog> afterIncidentDetailLogList = new ArrayList<>();
+        AfterIncidentDetailLog afterIncidentDetailLog = null;
+        List<SysUser> sysUserList = sysUserService.lambdaQuery().eq(SysUser::getDoctorId, afterIncidentLog.getDoctorId()).list();
+        String doctorLevel = "0";
+        if (CollectionUtil.isNotEmpty(sysUserList)) {
+            doctorLevel = sysUserList.get(0).getDoctorLevel();
+        }
+        for (HospitalizatioSettleDetail hospitalizatioSettleDetail : hospitalizatioSettleDetails) {
+            afterIncidentDetailLog = new AfterIncidentDetailLog();
+
+            afterIncidentDetailLog.setAfterIncidentLogId(afterIncidentLog.getId());
+//            afterIncidentDetailLog.setMedical_diagnose_name_str(masterAdmissionBill.getDischargeDiseaseNameMain());
+//            afterIncidentDetailLog.setMedical_diagnose_code_str(masterAdmissionBill.getDischargeDiseaseIdMain());
+            afterIncidentDetailLog.setAmount(hospitalizatioSettleDetail.getCost().doubleValue());
+            afterIncidentDetailLog.setMedical_project_code(hospitalizatioSettleDetail.getItemId());
+            afterIncidentDetailLog.setMedical_project_name(hospitalizatioSettleDetail.getItemName());
+            afterIncidentDetailLog.setProject_name(hospitalizatioSettleDetail.getItemNameHosp());
+            afterIncidentDetailLog.setProject_code(hospitalizatioSettleDetail.getItemIdHosp());
+            afterIncidentDetailLog.setCreateTime(afterIncidentLog.getCreateTime());
+            afterIncidentDetailLog.setDoctor_code(afterIncidentLog.getDoctorId());
+            afterIncidentDetailLog.setDoctor_name(afterIncidentLog.getDoctorName());
+
+            afterIncidentDetailLog.setDoctor_level(doctorLevel);
+            afterIncidentDetailLog.setUse_day(hospitalizatioSettleDetail.getUseDay());
+            afterIncidentDetailLog.setDose_form(hospitalizatioSettleDetail.getDosageForm());
+            afterIncidentDetailLog.setDose_unit(hospitalizatioSettleDetail.getPackageUnit());
+            afterIncidentDetailLog.setPrice(new BigDecimal(hospitalizatioSettleDetail.getUnitPrice()));
+            afterIncidentDetailLog.setDscg_bed(masterAdmissionBill.getAdmBed());
+            afterIncidentDetailLog.setExpense_category(hospitalizatioSettleDetail.getPCategory());
+//            afterIncidentDetailLog.setInspectionSite();
+            afterIncidentDetailLog.setOutHospDate(masterAdmissionBill.getDischargeDate());
+            afterIncidentDetailLog.setDiagnose_code_str(masterAdmissionBill.getDischargeDiseaseIdMain());
+            afterIncidentDetailLog.setDiagnose_name_str(masterAdmissionBill.getDischargeDiseaseNameMain());
+            afterIncidentDetailLog.setMedical_insurance_mark(masterAdmissionBill.getPayMethod());
+            afterIncidentDetailLog.setMedical_specification(hospitalizatioSettleDetail.getDrugSpec());
+            afterIncidentDetailLog.setTotal_amount(masterAdmissionBill.getMedfeeSumamt().doubleValue());
+//            afterIncidentDetailLog.setOrderType();
+//            afterIncidentDetailLog.setOrderCatalog();
+            afterIncidentDetailLogList.add(afterIncidentDetailLog);
+        }
+
+        afterIncidentDetailLogService.saveBatch(afterIncidentDetailLogList);
+        masterAdmissionBillService.lambdaUpdate().set(MasterAdmissionBill::getState, Constant.SUCCESS).eq(MasterAdmissionBill::getId, masterAdmissionBill.getId()).update();
+    }
+
+
+}