Trick 5 vuotta sitten
vanhempi
commit
ae705ec453

+ 12 - 0
business/base-service/pom.xml

@ -91,7 +91,19 @@
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>xom</groupId>
            <artifactId>xom</artifactId>
            <version>1.2.5</version>
        </dependency>
        <!-- mq消息 end -->
        <!-- webService start -->

+ 11 - 0
business/base-service/src/main/java/com/yihu/jw/doctor/service/excel/DoctorWorkTimeExcelDO.java

@ -0,0 +1,11 @@
package com.yihu.jw.doctor.service.excel;
/**
 * Created by Trick on 2020/3/26.
 */
public class DoctorWorkTimeExcelDO {
    private String hospital;
    private String dateMonth;
}

+ 18 - 0
business/base-service/src/main/java/com/yihu/jw/doctor/service/excel/DoctorWorkTimeExcelReader.java

@ -0,0 +1,18 @@
package com.yihu.jw.doctor.service.excel;
import com.yihu.jw.util.excel.AExcelReader;
import jxl.Workbook;
import org.springframework.stereotype.Component;
/**
 * Created by Trick on 2020/3/26.
 */
@Component
public class DoctorWorkTimeExcelReader extends AExcelReader {
    @Override
    public void read(Workbook rwb) throws Exception {
    }
}

+ 201 - 123
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -1131,19 +1131,34 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    }
    public List<WlyyDoctorWorkTimeVO> findDoctorWorkTime(String doctor, String hospital) {
        List<WlyyHospitalWorkRuleDO> list = wlyyHospitalWorkRuleDao.findByHospital(hospital);
        if (list != null && list.size() > 0) {
            WlyyHospitalWorkRuleDO rule = list.get(0);
            Date openTime = DateUtil.strToDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd") + " " + rule.getMaxDayOpenTime() + ":00", "yyyy-MM-dd HH:mm:ss");
            String openTimeString = DateUtil.dateToStr(new Date(), "yyyy-MM-dd")+ " " + rule.getMaxDayOpenTime() + ":00";
            logger.info("today openTimeString :"+openTimeString);
            Date openTime = DateUtil.strToDate(openTimeString, "yyyy-MM-dd HH:mm:ss");
            Integer openDay = rule.getMaxDay();
            if (openTime.before(new Date())) {
                openDay = openDay - 1;
            }
            Date endDate = DateUtil.stringToDate(DateUtil.dateToStr(DateUtil.getPreDays(new Date(), openDay), "yyyy-MM-dd") + "23:59:59", "yyyy-MM-dd HH:mm:ss");
            Date preDate =  DateUtil.getPreDays(new Date(), openDay);
            String maxDateString = DateUtil.dateToStr(preDate,"yyyy-MM-dd")+" 23:59:59";
            logger.info("maxDateString :"+maxDateString);
            Date endDate = DateUtil.stringToDate(maxDateString, "yyyy-MM-dd HH:mm:ss");
            List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>();
            List<WlyyDoctorWorkTimeDO> timeDOs = doctorWorkTimeDao.findDoctorWorkTime(doctor, new Date(), endDate);
            convertToModels(timeDOs, timeVOs, WlyyDoctorWorkTimeVO.class);
            if (timeVOs != null && timeVOs.size() > 0) {
                for (WlyyDoctorWorkTimeVO timeVO : timeVOs) {
                    timeVO.setCount(findWorkTimeInfoCout(timeVO.getId()));
                }
            }
            return timeVOs;
        }
        return null;
@ -2281,114 +2296,115 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    }
    public List<WlyyDoctorWorkTimeVO> findDoctorWorkTime(String doctor) {
        //获取医生排班规则
        List<WlyyHospitalSysDictDO> list = sysDictDao.findByDictName("Scheduling");
        Calendar ncTime = Calendar.getInstance();
        ncTime.setTime(new Date());
        Calendar scTime = Calendar.getInstance();
        scTime.setTime(new Date());
        Calendar ecTime = Calendar.getInstance();
        ecTime.setTime(new Date());
        //设置几天号源,及最后天号源的开放时间
        int days = Integer.parseInt(findHospitalSysDictValue(list, "OpenDays"));
        String closeTime = findHospitalSysDictValue(list, "CloseTime");
        //比较当前时间是否超过开放时间
        if (DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(closeTime, DateUtil.HH_MM))) {
            //当前时间超过开放时间,可以预约最后一天全部号源
            ecTime.add(Calendar.DAY_OF_MONTH, days);
            ecTime.set(ecTime.get(Calendar.YEAR), ecTime.get(Calendar.MONTH), ecTime.get(Calendar.DATE), 23, 59, 59);
        } else {
            //当前时间没超过开放时间,可以预约最后一天前一天全部号源
            ecTime.add(Calendar.DAY_OF_MONTH, days > 1 ? days - 1 : 0);
            ecTime.set(ecTime.get(Calendar.YEAR), ecTime.get(Calendar.MONTH), ecTime.get(Calendar.DATE), 23, 59, 59);
        }
        List<WlyyDoctorWorkTimeDO> times = doctorWorkTimeDao.findDoctorWorkTime(doctor, scTime.getTime(), ecTime.getTime());
        workTimeFilter(list, times);
        List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>();
        convertToModels(times, timeVOs, WlyyDoctorWorkTimeVO.class);
        if (timeVOs != null && timeVOs.size() > 0) {
            for (WlyyDoctorWorkTimeVO timeVO : timeVOs) {
                timeVO.setCount(findWorkTimeCount(timeVO.getId()));
            }
        }
        return timeVOs;
    }
    public List<WlyyDoctorWorkTimeDO> workTimeFilter(List<WlyyHospitalSysDictDO> sys, List<WlyyDoctorWorkTimeDO> times) {
        if (times != null && times.size() > 0) {
            //上午号源开放的最早天数
            int AMCloseDays = Integer.parseInt(findHospitalSysDictValue(sys, "AMCloseDays"));
            //每一天上午的最早预约的过号时间
            String AMCloseTime = findHospitalSysDictValue(sys, "AMCloseTime");
            //下午号源开放的最早天数
            int PMCloseDays = Integer.parseInt(findHospitalSysDictValue(sys, "PMCloseDays"));
            //每一天下午的最早预约的过号时间
            String PMCloseTime = findHospitalSysDictValue(sys, "PMCloseTime");
            Iterator it = times.iterator();
            while (it.hasNext()) {
                //设置上午过号时间
                Calendar scAMTime = Calendar.getInstance();
                scAMTime.setTime(new Date());
                scAMTime.add(Calendar.DAY_OF_MONTH, AMCloseDays);
                //设置下午午过号时间
                Calendar scPMTime = Calendar.getInstance();
                scPMTime.setTime(new Date());
                scPMTime.add(Calendar.DAY_OF_MONTH, PMCloseDays);
                WlyyDoctorWorkTimeDO time = (WlyyDoctorWorkTimeDO) it.next();
                Boolean filter = true;
                //1.【上午的排班中】 且 【排班结束时间】如果在【开放时间】前,则移除
                if (filter && "1".equals(time.getTimeType()) && time.getEndTime().before(scAMTime.getTime())) {
                    it.remove();
                    filter = false;
                }
                //2.【下午午的排班中】 且 【排班结束时间】如果在【开放时间】前,则移除该排班
                if (filter && "2".equals(time.getTimeType()) && time.getEndTime().before(scPMTime.getTime())) {
                    it.remove();
                    filter = false;
                }
                //3.如果【当前时间】过了【上午放号时间】,则移除所有上午的排班
                if (filter && "1".equals(time.getTimeType()) &&
                        DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(AMCloseTime, DateUtil.HH_MM))) {
                    scAMTime.set(scAMTime.get(Calendar.YEAR), scAMTime.get(Calendar.MONTH), scAMTime.get(Calendar.DATE), 12, 00, 00);
                    if (time.getEndTime().before(scAMTime.getTime())) {
                        it.remove();
                        filter = false;
                    }
                }
                //4.如果【当前时间】过了【下午午放号时间】,则移除所有下午的排班
                if (filter && "2".equals(time.getTimeType()) &&
                        DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(PMCloseTime, DateUtil.HH_MM))) {
                    scPMTime.set(scAMTime.get(Calendar.YEAR), scAMTime.get(Calendar.MONTH), scAMTime.get(Calendar.DATE), 12, 00, 00);
//      过时
//    public List<WlyyDoctorWorkTimeVO> findDoctorWorkTime(String doctor) {
//        //获取医生排班规则
//        List<WlyyHospitalSysDictDO> list = sysDictDao.findByDictName("Scheduling");
//
//        Calendar ncTime = Calendar.getInstance();
//        ncTime.setTime(new Date());
//
//        Calendar scTime = Calendar.getInstance();
//        scTime.setTime(new Date());
//
//        Calendar ecTime = Calendar.getInstance();
//        ecTime.setTime(new Date());
//
//        //设置几天号源,及最后天号源的开放时间
//        int days = Integer.parseInt(findHospitalSysDictValue(list, "OpenDays"));
//        String closeTime = findHospitalSysDictValue(list, "CloseTime");
//
//        //比较当前时间是否超过开放时间
//        if (DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(closeTime, DateUtil.HH_MM))) {
//            //当前时间超过开放时间,可以预约最后一天全部号源
//            ecTime.add(Calendar.DAY_OF_MONTH, days);
//            ecTime.set(ecTime.get(Calendar.YEAR), ecTime.get(Calendar.MONTH), ecTime.get(Calendar.DATE), 23, 59, 59);
//        } else {
//            //当前时间没超过开放时间,可以预约最后一天前一天全部号源
//            ecTime.add(Calendar.DAY_OF_MONTH, days > 1 ? days - 1 : 0);
//            ecTime.set(ecTime.get(Calendar.YEAR), ecTime.get(Calendar.MONTH), ecTime.get(Calendar.DATE), 23, 59, 59);
//        }
//
//
//        List<WlyyDoctorWorkTimeDO> times = doctorWorkTimeDao.findDoctorWorkTime(doctor, scTime.getTime(), ecTime.getTime());
//
//        workTimeFilter(list, times);
//
//        List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>();
//
//        convertToModels(times, timeVOs, WlyyDoctorWorkTimeVO.class);
//
//        if (timeVOs != null && timeVOs.size() > 0) {
//            for (WlyyDoctorWorkTimeVO timeVO : timeVOs) {
//                timeVO.setCount(findWorkTimeCount(timeVO.getId()));
//            }
//        }
//        return timeVOs;
//    }
                    if (time.getEndTime().before(scPMTime.getTime())) {
                        it.remove();
                    }
                }
            }
        }
        return times;
    }
//    public List<WlyyDoctorWorkTimeDO> workTimeFilter(List<WlyyHospitalSysDictDO> sys, List<WlyyDoctorWorkTimeDO> times) {
//
//        if (times != null && times.size() > 0) {
//            //上午号源开放的最早天数
//            int AMCloseDays = Integer.parseInt(findHospitalSysDictValue(sys, "AMCloseDays"));
//            //每一天上午的最早预约的过号时间
//            String AMCloseTime = findHospitalSysDictValue(sys, "AMCloseTime");
//            //下午号源开放的最早天数
//            int PMCloseDays = Integer.parseInt(findHospitalSysDictValue(sys, "PMCloseDays"));
//            //每一天下午的最早预约的过号时间
//            String PMCloseTime = findHospitalSysDictValue(sys, "PMCloseTime");
//
//            Iterator it = times.iterator();
//            while (it.hasNext()) {
//                //设置上午过号时间
//                Calendar scAMTime = Calendar.getInstance();
//                scAMTime.setTime(new Date());
//                scAMTime.add(Calendar.DAY_OF_MONTH, AMCloseDays);
//
//                //设置下午午过号时间
//                Calendar scPMTime = Calendar.getInstance();
//                scPMTime.setTime(new Date());
//                scPMTime.add(Calendar.DAY_OF_MONTH, PMCloseDays);
//
//                WlyyDoctorWorkTimeDO time = (WlyyDoctorWorkTimeDO) it.next();
//
//                Boolean filter = true;
//
//                //1.【上午的排班中】 且 【排班结束时间】如果在【开放时间】前,则移除
//                if (filter && "1".equals(time.getTimeType()) && time.getEndTime().before(scAMTime.getTime())) {
//                    it.remove();
//                    filter = false;
//                }
//
//                //2.【下午午的排班中】 且 【排班结束时间】如果在【开放时间】前,则移除该排班
//                if (filter && "2".equals(time.getTimeType()) && time.getEndTime().before(scPMTime.getTime())) {
//                    it.remove();
//                    filter = false;
//                }
//
//                //3.如果【当前时间】过了【上午放号时间】,则移除所有上午的排班
//                if (filter && "1".equals(time.getTimeType()) &&
//                        DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(AMCloseTime, DateUtil.HH_MM))) {
//                    scAMTime.set(scAMTime.get(Calendar.YEAR), scAMTime.get(Calendar.MONTH), scAMTime.get(Calendar.DATE), 12, 00, 00);
//
//                    if (time.getEndTime().before(scAMTime.getTime())) {
//                        it.remove();
//                        filter = false;
//                    }
//                }
//                //4.如果【当前时间】过了【下午午放号时间】,则移除所有下午的排班
//                if (filter && "2".equals(time.getTimeType()) &&
//                        DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(PMCloseTime, DateUtil.HH_MM))) {
//                    scPMTime.set(scAMTime.get(Calendar.YEAR), scAMTime.get(Calendar.MONTH), scAMTime.get(Calendar.DATE), 12, 00, 00);
//
//                    if (time.getEndTime().before(scPMTime.getTime())) {
//                        it.remove();
//                    }
//                }
//            }
//        }
//        return times;
//    }
    public String findHospitalSysDictValue(List<WlyyHospitalSysDictDO> list, String dictCode) {
@ -2453,7 +2469,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            Date temp =new Date();
            temp.setTime(sc.getTime().getTime()+s);
            sc.setTime(temp);
//            sc.add(Calendar.MINUTE,timeDO.getTimeInterval());
            //如果结束时间大于排班时间则不再拆分号源
            if(sc.getTime().after(timeDO.getEndTime())){
                break;
@ -2476,6 +2491,66 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return rs;
    }
    /**
     * 计算号源数目
     * @param id
     * @return
     */
    public Integer findWorkTimeInfoCout(String id){
        WlyyDoctorWorkTimeDO timeDO = doctorWorkTimeDao.findOne(id);
        Long ss = timeDO.getEndTime().getTime()-timeDO.getStartTime().getTime();
        Long s = ss/timeDO.getSourceNumber();
        Calendar sc = Calendar.getInstance();
        sc.setTime(timeDO.getStartTime());
        List<Map<String,Object>> rs = new ArrayList<>();
        //1.根据当前时间,去取已过时间的号源
        while (sc.getTime().before(timeDO.getEndTime())){
            if(new Date().before(sc.getTime())){
                break;
            }
            //加上时间间隔
            Date temp =new Date();
            temp.setTime(sc.getTime().getTime()+s);
            sc.setTime(temp);
        }
        List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(),id);
        //2.根据时间间隔拆分号源
        while (sc.getTime().before(timeDO.getEndTime())){
            Map<String,Object> t = new HashedMap();
            t.put("startTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
            //加上时间间隔
            Date temp =new Date();
            temp.setTime(sc.getTime().getTime()+s);
            sc.setTime(temp);
            //如果结束时间大于排班时间则不再拆分号源
            if(sc.getTime().after(timeDO.getEndTime())){
                break;
            }
            t.put("endTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
            //如果号源被预约了,标记为true
            Boolean registered = false;
            if(registerTimeDOs!=null&&registerTimeDOs.size()>0){
                for(WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs){
                    if(t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(),"yyyy-MM-dd HH:mm:ss"))){
                        registered = true;
                    }
                }
            }
            if(!registered){
                rs.add(t);
            }
        }
        return rs.size();
    }
    @Deprecated
    public List<Map<String,Object>> findWorkTimeInfoOld(String id){
        WlyyDoctorWorkTimeDO timeDO = doctorWorkTimeDao.findOne(id);
@ -2598,11 +2673,17 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
               rs.put("winNo",org.getWinNo());
               rs.put("deptName",hospitalDOs.get(0).getDeptName());
               rs.put("dept",hospitalDOs.get(0).getDeptCode());
               if(StringUtils.isNotBlank(withWork)&&"1".equals(withWork)){
                  List<WlyyDoctorWorkTimeVO> times = findDoctorWorkTime(doctor,hospitalDOs.get(0).getOrgCode());
                  rs.put("workTime",times);
               }
            }else{
               rs.put("hospital",null);
               rs.put("winNo",null);
               rs.put("deptName",null);
               rs.put("dept",null);
                rs.put("workTime",null);
            }
@ -2630,21 +2711,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                rs.put("registerCount",0);
            }
            //医生问诊量
//            List<WlyyOutpatientDO> wlyyOutpatientDOs = outpatientDao.findByDoctorAndStatus(doctor,"2");
//            if(wlyyOutpatientDOs!=null&&wlyyOutpatientDOs.size()>0){
//                rs.put("outpatientCount",wlyyOutpatientDOs.size());
//            }else{
//                rs.put("outpatientCount",0);
//            }
            List<WlyyOutpatientDO> wlyyOutpatientDOs = outpatientDao.findByDoctorAndStatus(doctor,"2");
            if(wlyyOutpatientDOs!=null&&wlyyOutpatientDOs.size()>0){
                rs.put("outpatientCount",wlyyOutpatientDOs.size());
            }else{
                rs.put("outpatientCount",0);
            }
            //协同门诊量
//            Integer coordinationCout = outpatientDao.countByDoctorAndStatusAndOutpatientType(doctor,"2","2");
//            rs.put("coordinationCout",coordinationCout);
            Integer coordinationCout = outpatientDao.countByDoctorAndStatusAndOutpatientType(doctor,"2","2");
            rs.put("coordinationCout",coordinationCout);
//            if(StringUtils.isNotBlank(withWork)&&"1".equals(withWork)){
//                List<WlyyDoctorWorkTimeVO> times = findDoctorWorkTime(doctor);
//                rs.put("workTime",times);
//            }
    
            //专家咨询
            String zjCountsql = "SELECT id FROM wlyy_consult_team WHERE doctor='"+doctor+"' AND (type=1 OR type=15)";
@ -3453,7 +3531,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql);
            List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs);
            saveDoctorWorkTime(workTimeDOs,date,doctors);
            //科室
        //科室
        }else if("2".equals(type)){
            String sql ="SELECT " +

+ 35 - 521
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/XzzxEntranceService.java

@ -1,7 +1,10 @@
package com.yihu.jw.hospital.prescription.service.entrance;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.entity.base.dict.DictHospitalDeptDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.utils.WebserviceUtil;
@ -29,6 +32,9 @@ public class XzzxEntranceService {
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Autowired
    private DictHospitalDeptDao dictHospitalDeptDao;
    public String getXzzxWebServiceInfo(String api, Map<String,String> params)throws Exception{
        List<WlyyHospitalSysDictDO> list =  wlyyHospitalSysDictDao.findByDictName("xzzxWebService");
@ -70,529 +76,37 @@ public class XzzxEntranceService {
        String xml = getXzzxWebServiceInfo("CallInterface",params);
        return "";
    }
    public static void main(String ag[]){
        String xml ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<root>" +
                "    <returnContents>" +
                "        <returnContent>" +
                "            <code>20100</code>" +
                "            <name>后勤部</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>20200</code>" +
                "            <name>消毒中转站</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>30100</code>" +
                "            <name>心内科门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>30200</code>" +
                "            <name>心外科门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>30300</code>" +
                "            <name>客户服务部</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>30400</code>" +
                "            <name>超声科门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>3140000</code>" +
                "            <name>计算机中心</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>31500</code>" +
                "            <name>人事部</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>31600</code>" +
                "            <name>护理部</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>31700</code>" +
                "            <name>医保办</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>31800</code>" +
                "            <name>财务科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>3180001</code>" +
                "            <name>门诊收费处</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>3180002</code>" +
                "            <name>住院收费处</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>31900</code>" +
                "            <name>医务科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>32000</code>" +
                "            <name>院长室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>32100</code>" +
                "            <name>中心办公室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>32200</code>" +
                "            <name>院感科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>32300</code>" +
                "            <name>保障保卫部</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>32400</code>" +
                "            <name>全院</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>32500</code>" +
                "            <name>综合办公室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>32600</code>" +
                "            <name>科教部</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4010001</code>" +
                "            <name>心内一区</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4010002</code>" +
                "            <name>心内二区</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4010003</code>" +
                "            <name>CCU</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4010004</code>" +
                "            <name>心内三区</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4010005</code>" +
                "            <name>心内四区</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4010006</code>" +
                "            <name>特需病区</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>40200</code>" +
                "            <name>心内三区病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4020001</code>" +
                "            <name>心外病区</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4020002</code>" +
                "            <name>ICU</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>40300</code>" +
                "            <name>心外手术室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4030001</code>" +
                "            <name>小儿心脏科/综合科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>40400</code>" +
                "            <name>心内导管室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>4040001</code>" +
                "            <name>急诊科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>40500</code>" +
                "            <name>CCU病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>40600</code>" +
                "            <name>ICU病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>40700</code>" +
                "            <name>心内一区病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>40800</code>" +
                "            <name>心内二区病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>40900</code>" +
                "            <name>心外病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41000</code>" +
                "            <name>胸痛中心</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41100</code>" +
                "            <name>起搏器门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41200</code>" +
                "            <name>麻醉科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41300</code>" +
                "            <name>急诊门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41400</code>" +
                "            <name>心内四区病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41500</code>" +
                "            <name>小儿心脏科/综合科病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41600</code>" +
                "            <name>急诊科病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41700</code>" +
                "            <name>心脏康复门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41800</code>" +
                "            <name>先天性心脏病门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>41900</code>" +
                "            <name>心衰专病门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>42000</code>" +
                "            <name>特需病房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>42100</code>" +
                "            <name>体检门诊</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>50100</code>" +
                "            <name>药房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>50200</code>" +
                "            <name>药库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>50300</code>" +
                "            <name>静配药房</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60100</code>" +
                "            <name>影像科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60200</code>" +
                "            <name>检验科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60300</code>" +
                "            <name>心脏彩超室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60400</code>" +
                "            <name>心功能室(心脏中心)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60500</code>" +
                "            <name>输血科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60600</code>" +
                "            <name>内窥镜室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60700</code>" +
                "            <name>肺功能室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60800</code>" +
                "            <name>血透室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>60900</code>" +
                "            <name>检验科(总院)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61000</code>" +
                "            <name>高压氧室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61100</code>" +
                "            <name>脑电图室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61200</code>" +
                "            <name>核医学科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61300</code>" +
                "            <name>放射科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61400</code>" +
                "            <name>CT室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61500</code>" +
                "            <name>核磁共振科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61600</code>" +
                "            <name>病理科</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61700</code>" +
                "            <name>心功能室(总院)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61800</code>" +
                "            <name>B超室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>61900</code>" +
                "            <name>药学部(总院)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62000</code>" +
                "            <name>急诊ICU(总院)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62100</code>" +
                "            <name>中心ICU(总院)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62200</code>" +
                "            <name>心电图室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62300</code>" +
                "            <name>心脏彩超室(心脏中心)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62400</code>" +
                "            <name>检验部</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62500</code>" +
                "            <name>体检部</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62600</code>" +
                "            <name>心功能室(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62700</code>" +
                "            <name>心脏彩超室(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62800</code>" +
                "            <name>输血科(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>62900</code>" +
                "            <name>院外诊疗</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>63000</code>" +
                "            <name>血透(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>63100</code>" +
                "            <name>放射科(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>63200</code>" +
                "            <name>运动心肺室(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>63300</code>" +
                "            <name>核医学科(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>63400</code>" +
                "            <name>CT(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>63500</code>" +
                "            <name>MR(新)</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>70100</code>" +
                "            <name>病案室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>70200</code>" +
                "            <name>离职人员</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>80100</code>" +
                "            <name>心内实验室</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>80200</code>" +
                "            <name>临床试验组</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90100</code>" +
                "            <name>设备科仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90200</code>" +
                "            <name>总务仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90300</code>" +
                "            <name>高值仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90400</code>" +
                "            <name>科研仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90500</code>" +
                "            <name>软件仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90600</code>" +
                "            <name>五金仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90700</code>" +
                "            <name>信息科仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90800</code>" +
                "            <name>报废仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "        <returnContent>" +
                "            <code>90900</code>" +
                "            <name>报损仓库</name>" +
                "            <consultDeptFlag/>" +
                "        </returnContent>" +
                "    </returnContents>" +
                "</root>";
        XMLSerializer xmlSerializer = new XMLSerializer();
        String json = xmlSerializer.read(xml).toString();
        JSONObject jsonObject = JSON.parseObject(json);
        logger.info("getDeptInfo json:"+json);
        JSONArray depts = JSON.parseArray(json);
        if(depts!=null&&depts.size()>0){
            for(int i=0;i<depts.size();i++){
                JSONObject dept = (JSONObject) depts.get(0);
                String deptCode = dept.getString("code");
                List<DictHospitalDeptDO> list = dictHospitalDeptDao.findByOrgCodeAndCode(deptCode,"350211A5010");
                if(list!=null&&list.size()>0){
                    DictHospitalDeptDO deptDO = list.get(0);
                    deptDO.setCode(deptCode);
                    deptDO.setName(dept.getString("name"));
                    deptDO.setConsultDeptFlag(dept.getString("consultDeptFlag"));
                    dictHospitalDeptDao.save(deptDO);
                }else {
                    DictHospitalDeptDO deptDO = new DictHospitalDeptDO();
                    deptDO.setCode(deptCode);
                    deptDO.setName(dept.getString("name"));
                    deptDO.setConsultDeptFlag(dept.getString("consultDeptFlag"));
                    deptDO.setOrgCode("350211A5010");
                    dictHospitalDeptDao.save(deptDO);
                }
            }
        }
        return json;
    }
}

+ 1 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/wx/WechatController.java

@ -10,6 +10,7 @@ import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.wechat.service.WxTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -36,6 +36,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.*;
/**
@ -663,5 +664,4 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        return result;
    }
}

+ 2 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/excelImport/BaseDoctorExcelDOReader.java

@ -6,17 +6,15 @@ import com.yihu.jw.base.dao.doctor.BaseDoctorRoleInfoDao;
import com.yihu.jw.base.endpoint.common.excel.AExcelReader;
import com.yihu.jw.dict.dao.DictDoctorDutyDao;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.entity.base.dict.DictJobTitleDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.org.dao.BaseOrgDao;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.HashSet;
import java.util.Iterator;
/**
 * 医生信息列表-excel解析类

+ 1 - 0
svr/svr-internet-hospital-job/pom.xml

@ -67,6 +67,7 @@
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-entity</artifactId>

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -984,7 +984,7 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
    @PostMapping(value= BaseHospitalRequestMapping.Prescription.saveWorkTimeRule)
    @ApiOperation(value = "保存排班规则")
    public ObjEnvelop saveWorkTimeRule(@ApiParam(name = "workTimeRuleJson", value = "保存排班规则")
                                       @RequestParam(value = "workTimeRuleJson",required = false)String workTimeRuleJson) throws Exception{
                                           @RequestParam(value = "workTimeRuleJson",required = false)String workTimeRuleJson) throws Exception{
        return success(workTimeService.saveWorkTimeRule(workTimeRuleJson));
    }
}