瀏覽代碼

数据生成

Trick 5 年之前
父節點
當前提交
285885ebf6

+ 248 - 0
business/base-service/src/main/java/com/yihu/jw/internet/service/DataGeneratorService.java

@ -0,0 +1,248 @@
package com.yihu.jw.internet.service;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.hospital.mapping.PatientMappingDO;
import com.yihu.jw.entity.hospital.prescription.*;
import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
import com.yihu.jw.hospital.prescription.dao.*;
import com.yihu.jw.internet.dao.IntUpErrorLogDao;
import com.yihu.jw.internet.entity.InternetUpErrorLogDO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionInfoVO;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
/**
 * Created by Trick on 2019/10/25.
 */
@Service
@Transactional
public class DataGeneratorService extends BaseJpaService<InternetUpErrorLogDO, IntUpErrorLogDao> {
    @Autowired
    private OutpatientDao outpatientDao;
    @Autowired
    private PrescriptionDao prescriptionDao;
    @Autowired
    private PrescriptionInfoDao prescriptionInfoDao;
    @Autowired
    private WlyyInspectionDao wlyyInspectionDao;
    @Autowired
    private PatientRegisterDao patientRegisterDao;
    @Autowired
    private PatientMappingDao patientMappingDao;
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private BaseDoctorHospitalDao baseDoctorHospitalDao;
    /**
     * 生成数据,测试监管平台数据上传
     * @param doctor 医生id
     * @param date 生成日期,“yyyy-MM-dd”
     * @return
     */
    public String setData(String doctor,String date){
        //居民门诊记录数据源
        Iterable<PatientMappingDO> patientMappingDOs = patientMappingDao.findAll();
        Iterator it = patientMappingDOs.iterator();
        //医生信息数据源
        BaseDoctorDO doctorDO = baseDoctorDao.findOne(doctor);
        //部门信息
        BaseDoctorHospitalDO hospitalDO = baseDoctorHospitalDao.findByDoctorCode(doctor).get(0);
        while (it.hasNext()){
            PatientMappingDO patientMappingDO = (PatientMappingDO)it.next();
            //1.生成门诊记录
            WlyyOutpatientDO wlyyOutpatientDO = getOutPatient(patientMappingDO,doctorDO,hospitalDO,date);
            //2.生成处方记录
            WlyyPrescriptionDO prescriptionDO = getPrescription(wlyyOutpatientDO,date);
            //3.生成药品
            getPreInfo(prescriptionDO,date);
            //4.生成检查检验
            getInspection(prescriptionDO,date);
            //5.门诊预约
            getRegisterDO(wlyyOutpatientDO,date);
        }
        return "success";
    }
    /**
     * 生成门诊记录
     * @param date
     * @return
     */
    public WlyyOutpatientDO getOutPatient(PatientMappingDO patientDO,BaseDoctorDO doctorDO,BaseDoctorHospitalDO hospitalDO,String date){
        WlyyOutpatientDO outpatientDO = new WlyyOutpatientDO();
        outpatientDO.setStatus("2");
        outpatientDO.setPatient(patientDO.getPatient());
        outpatientDO.setPatientName(patientDO.getPatientName());
        outpatientDO.setIdcard(patientDO.getIdcard());
        outpatientDO.setDoctor(doctorDO.getId());
        outpatientDO.setDoctorName(doctorDO.getName());
        outpatientDO.setDept(hospitalDO.getDeptCode());
        outpatientDO.setDeptName(hospitalDO.getDeptName());
        outpatientDO.setHospital(hospitalDO.getOrgCode());
        outpatientDO.setHospital(hospitalDO.getOrgName());
        outpatientDO.setCreateTime(DateUtil.strToDate(date+" 09:30:00"));
        outpatientDO.setAdmDate(DateUtil.strToDate(date+" 09:30:00"));
        outpatientDO.setEndTime(DateUtil.strToDate(date+" 11:30:00"));
        outpatientDO.setRegisterDate(DateUtil.strToDate(date+" 09:20:00"));
        outpatientDO.setType("1");
        outpatientDO.setMjz("mz");
        outpatientDO.setWinNo("6");
        outpatientDO.setIcd10("ZZGX71");
        outpatientDO.setIcd10Name("肝血瘀阻证");
        outpatientDO.setRegisterNo(getCode());
        outpatientDO.setConNo(getCode());
        return outpatientDao.save(outpatientDO);
    }
    public WlyyPrescriptionDO getPrescription(WlyyOutpatientDO outpatient,String date){
        WlyyPrescriptionDO prescriptionDO = new WlyyPrescriptionDO();
        prescriptionDO.setOutpatientId(outpatient.getId());
        prescriptionDO.setStatus(100);
        prescriptionDO.setPatientCode(outpatient.getPatient());
        prescriptionDO.setPatientName(outpatient.getPatientName());
        prescriptionDO.setIdcard(outpatient.getIdcard());
        prescriptionDO.setDept(outpatient.getDept());
        prescriptionDO.setDeptName(outpatient.getDeptName());
        prescriptionDO.setDoctor(outpatient.getDoctor());
        prescriptionDO.setDoctorName(outpatient.getDoctorName());
        prescriptionDO.setIdcard(outpatient.getIdcard());
        prescriptionDO.setHospital(outpatient.getHospital());
        prescriptionDO.setHospitalName(outpatient.getHospitalName());
        prescriptionDO.setType(1);
        prescriptionDO.setCreateTime(DateUtil.strToDate(date+" 10:00:00"));
        return prescriptionDao.save(prescriptionDO);
    }
    public WlyyPrescriptionInfoDO getPreInfo(WlyyPrescriptionDO prescriptionDO,String date){
        /**
         * INSERT INTO `base`.`wlyy_prescription_info`
         * (`id`, `prescription_id`, `drug_no`, `drug_name`,
         * `disp_deposite`, `dosage`, `quantity`, `unit`, `unit_name`,
         * `pack_unit`, `pack_unit_name`, `usage_code`, `usage_name`,
         * `supply_code`, `supply_name`, `days`, `frequency`, `serial`,
         * `group_no`, `specification`, `pack_retprice`, `herbal_count`,
         * `post_count`, `del`) VALUES
         * ('2c9081aa6dfbce6e016dfc634a15002d', '2c9081aa6dfbce6e016dfc6309ad001c',
         * '08269 ', '聚乙二醇干扰素a-2b注射液', NULL,
         * '1', '1', '03', '支', '03', '支', '6id',
         * '每日6次', '001', '口服', '1', '2', '01', '71',
         * '180ug 0.5ml/支', '824.0000', '', '', '1');
         */
        WlyyPrescriptionInfoDO info = new WlyyPrescriptionInfoDO();
        info.setPrescriptionId(prescriptionDO.getId());
        info.setDrugNo("08269");
        info.setDrugName("聚乙二醇干扰素a-2b注射液");
        info.setDispDeposite("");
        info.setDosage("1");
        info.setQuantity("1");
        info.setUnit("03");
        info.setUnitName("支");
        info.setPackUnit("03");
        info.setPackUnitName("支");
        info.setUsageCode("6id");
        info.setUsageName("每日6次");
        info.setSupplyCode("001");
        info.setSupplyName("口服");
        info.setDays("1");
        info.setFrequency("1");
        info.setSerial("01");
        info.setGroupNo("71");
        info.setSpecification("180ug 0.5ml/支");
        info.setPackRetprice(824.0000);
        info.setDel(1);
        return prescriptionInfoDao.save(info);
    }
    public WlyyInspectionDO getInspection(WlyyPrescriptionDO prescriptionDO,String date){
        /**
         * INSERT INTO `base`.`wlyy_inspection` (`id`, `outpatient_id`,
         * `prescription_id`, `code`, `name`, `parent_code`,
         * `parent_name`, `dept`, `dept_name`, `quantity`,
         * `frequency`, `group_name`, `information`,
         * `check_equip`, `check_part`, `check_part_name`,
         * `adresult`, `goal`, `opview`, `specimen_name`,
         * `specimen_num`, `ywjc_result`, `ywjc_date`, `blzd`,
         * `fixationfluid`, `checkbox`, `mzpg`, `sfzg`, `create_time`)
         * VALUES ('2c9081aa6dfbce6e016dfc634a22002f',
         * '2c9081aa6dfbce6e016dfc6064280015',
         * '2c9081aa6dfbce6e016dfc6309ad001c', '360225',
         * '尿乳糜定性检查', NULL, NULL, '2160000', '',
         * '1', '1', '31', '23', '2', '1',
         * '头颅', '312', '321', '', '', '', '',
         * '', '', '', '1', '0', '0', '2019-10-24 14:10:29');
         */
        WlyyInspectionDO inspectionDO = new WlyyInspectionDO();
        inspectionDO.setOutpatientId(prescriptionDO.getOutpatientId());
        inspectionDO.setPrescriptionId(prescriptionDO.getId());
        inspectionDO.setCode("360225");
        inspectionDO.setName("尿乳糜定性检查");
        inspectionDO.setDept("2160000");
        inspectionDO.setDeptName("检验科");
        inspectionDO.setQuantity(1);
        inspectionDO.setFrequency("1");
        inspectionDO.setGroupName("31");
        inspectionDO.setInformation("23");
        inspectionDO.setCheckEquip("2");
        inspectionDO.setCheckPart("1");
        inspectionDO.setCheckPartName("头颅");
        inspectionDO.setAdresult("312");
        inspectionDO.setGoal("321");
        inspectionDO.setSfzg("0");
        inspectionDO.setMzpg("0");
        inspectionDO.setCheckbox("1");
        inspectionDO.setCreateTime(DateUtil.strToDate(date+"09:30:00"));
        return wlyyInspectionDao.save(inspectionDO);
    }
    public WlyyPatientRegisterDO getRegisterDO(WlyyOutpatientDO outpatient,String date){
        WlyyPatientRegisterDO registerDO = new WlyyPatientRegisterDO();
        registerDO.setPatient(outpatient.getPatient());
        registerDO.setPatientName(outpatient.getPatientName());
        registerDO.setDept(outpatient.getDept());
        registerDO.setDeptName(outpatient.getDeptName());
        registerDO.setDoctor(outpatient.getDoctor());
        registerDO.setDoctorName(outpatient.getDoctorName());
        registerDO.setDate(date);
        registerDO.setRegisterNo(outpatient.getRegisterNo());
        registerDO.setConNo(outpatient.getConNo());
        registerDO.setCreateTime(DateUtil.strToDate(date+" 08:00:00"));
        return patientRegisterDao.save(registerDO);
    }
}

+ 20 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/web/quota/JobController.java

@ -1,5 +1,6 @@
package com.yihu.jw.web.quota;
import com.yihu.jw.internet.service.DataGeneratorService;
import com.yihu.jw.internet.service.InternetService;
import com.yihu.jw.job.PrescriptionOverdueJob;
import com.yihu.jw.job.PrescriptionStatusUpdateJob;
@ -37,6 +38,9 @@ public class JobController extends BaseController {
    @Autowired
    private InternetService internetService;
    @Autowired
    private DataGeneratorService dataGeneratorService;
    @Autowired
    public JobController(JobService jobService, QuartzHelper quartzHelper) {
        this.jobService = jobService;
@ -227,6 +231,11 @@ public class JobController extends BaseController {
            String res = "";
            switch(taskId){
                case "2.2":
                    logger.info("START========2.2 医院基本信息========");
                    res =  internetService.upNsOrganBas();
                    logger.info("END==========2.2 医院基本信息 ========" + res);
                    break;
                case "2.3" :
                    // 2、分步执行需要JOB执行的服务
                    logger.info("START========2.3 医师基本信息========");
@ -277,4 +286,15 @@ public class JobController extends BaseController {
        }
    }
    @RequestMapping(value = "/setData", method = RequestMethod.POST)
    @ApiOperation("生成数据")
    public String setData(String doctor,String date) {
        try {
            dataGeneratorService.setData(doctor,date);
            return write(200, "启动成功");
        } catch (Exception e) {
            error(e);
            return error(-1, "启动失败");
        }
    }
}