浏览代码

中山问题处理

wangzhinan 2 周之前
父节点
当前提交
cf30d6573d

+ 0 - 2
business/base-service/src/main/java/com/yihu/jw/hospital/healthCare/YlzMedicailRelationRefundDao.java

@ -1,9 +1,7 @@
package com.yihu.jw.hospital.healthCare;
import com.yihu.jw.entity.hospital.healthCare.YlzMedicalRelationDO;
import com.yihu.jw.entity.hospital.healthCare.YlzMedicalRelationRefundDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;

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

@ -8642,144 +8642,27 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
     * @param realOrder 处方号
     * @
     */
    @Transactional(rollbackFor = Exception.class)
    public Object getSFExpressInfo(String admNo, String realOrder, String wxId) throws Exception {
        synchronized(realOrder.intern()){
            List<WlyyPrescriptionDO> wlyyPrescriptionDOList = prescriptionDao.findByRealOrderList(realOrder);
            Object result = "";
        //根据门诊唯一号取就诊记录
//        List<WlyyOutpatientDO> wlyyOutpatientDOs = outpatientDao.findByAdmNo(admNo);
        List<WlyyPrescriptionDO> wlyyPrescriptionDOList = prescriptionDao.findByRealOrderList(realOrder);
        Object result = "";
        System.out.println("获取顺丰物流面单信息:wlyyPrescriptionDOS != null=" + wlyyPrescriptionDOList != null);
        if (wlyyPrescriptionDOList != null&&wlyyPrescriptionDOList.size()!=0) {
            WlyyPrescriptionDO wlyyPrescriptionDOS = wlyyPrescriptionDOList.get(0);
            List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpatientId", wlyyPrescriptionDOS.getOutpatientId());
            WlyyPrescriptionExpressageDO sfexpress_obj = null;
            System.out.println("获取顺丰物流面单信息:CollectionUtils.isEmpty(expressageDOList)=" + CollectionUtils.isEmpty(expressageDOList));
            if (CollectionUtils.isEmpty(expressageDOList)) {
                throw new Exception("顺丰快递下单失败,未找到该处方的派送地址!");
            } else {
                System.out.println("获取顺丰物流面单信息:1");
                sfexpress_obj = expressageDOList.get(0);
                if (sfexpress_obj.getType()!=null&&sfexpress_obj.getType() == 2) {
                    com.alibaba.fastjson.JSONObject sfJsonObject = new com.alibaba.fastjson.JSONObject();
                    sfJsonObject.put("mailno", sfexpress_obj.getMailno());
                    sfJsonObject.put("mailtype", "同城快递");
                    if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
                        sfJsonObject.put("j_name", "厦门大学附属中山医院");
                        sfJsonObject.put("j_phone", "4003008888");
                        sfJsonObject.put("j_townName", "思明区");
                        sfJsonObject.put("j_address", "湖滨南路201-209号");
                    } else if (wxId.equalsIgnoreCase("xm_ykyy_wx")) {
                        sfJsonObject.put("j_name", "厦门大学附属中山医院");
                        sfJsonObject.put("j_phone", "4003008888");
                        sfJsonObject.put("j_townName", "思明区");
                        sfJsonObject.put("j_address", "湖滨南路201-209号");
                    }
                    sfJsonObject.put("j_provinceName", "福建省");
                    sfJsonObject.put("j_cityName", "厦门市");
                    sfJsonObject.put("d_name", sfexpress_obj.getName());
                    sfJsonObject.put("d_provinceName", sfexpress_obj.getProvinceName());
                    sfJsonObject.put("d_cityName", sfexpress_obj.getCityName());
                    sfJsonObject.put("d_townName", sfexpress_obj.getTownName());
                    sfJsonObject.put("d_address",sfexpress_obj.getStreetName()+sfexpress_obj.getAddress());
                    sfJsonObject.put("d_phone", sfexpress_obj.getMobile());
                    sfJsonObject.put("express_type", 11);
                    sfJsonObject.put("pay_method", 2);
                    sfJsonObject.put("receive_time", "");
                    sfJsonObject.put("dispensaryType", 2);
                    sfJsonObject.put("destcode","592AH-002A");
                    for (WlyyPrescriptionDO prescriptionDO:wlyyPrescriptionDOList){
                        prescriptionDO.setStatus(32);
                        prescriptionDao.save(prescriptionDO);
                    }
                    result = sfJsonObject;
                    System.out.println("获取顺丰物流面单信息:8");
                }else {
                    List<WlyyPrescriptionDO> wlyyPrescriptionDOS1 = prescriptionDao.findByOutpatientId(wlyyPrescriptionDOS.getOutpatientId());
                    if (wlyyPrescriptionDOS.getStatus()<31){
                        if (StringUtils.isNoneBlank(sfexpress_obj.getMailno())&&wlyyPrescriptionDOS1.size()>1){
                            String orderNo = "";
                            for (WlyyPrescriptionDO prescriptionDO:wlyyPrescriptionDOS1){
                                if (!prescriptionDO.getRealOrder().equalsIgnoreCase(wlyyPrescriptionDOS.getRealOrder())){
                                    orderNo = prescriptionDO.getRealOrder();
                                }
                            }
                            throw new Exception("已存在地址"+sfexpress_obj.getAddress()+"、电话"+sfexpress_obj.getMobile()+"的快递单(单号"+orderNo+"),请将此处方与其打包一起。");
                        }
                    }
                    String sql = "SELECT\n" +
                            "\tpe.outpatient_id as outpatientId,\n" +
                            "\tpe.mailno as mailno,\n" +
                            "\tpe.address as address,\n" +
                            "\tpe.mobile as mobile\n" +
                            "FROM\n" +
                            "\twlyy_prescription_expressage pe\n" +
                            "WHERE\n" +
                            " pe.create_time >= '"+DateUtil.getStringDateShort()+" 00:00:00'\n" +
                            "AND pe.create_time <= '"+DateUtil.getStringDateShort()+" 23:59:59'\n" +
                            "AND pe.mailno IS NOT NULL\n" +
                            "and pe.address ='"+sfexpress_obj.getAddress()+"'\n" +
                            "and pe.mobile = '"+sfexpress_obj.getMobile()+"' ";
                    List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql);
                    if (maps!=null&&maps.size()!=0){
                        Map<String,Object> map = maps.get(0);
                        if (wlyyPrescriptionDOS.getStatus()<31){
                            if (!map.get("outpatientId").toString().equalsIgnoreCase(wlyyPrescriptionDOS.getOutpatientId())){
                                String mailNo= map.get("mailno").toString();
                                /*       sfexpress_obj.setMailno(mailNo);*/
                                sfexpressService.updatePrescriptionExpressage(sfexpress_obj);
                                List<WlyyPrescriptionDO> wlyyPrescriptionDOS2 = prescriptionDao.findByOutpatientId(map.get("outpatientId").toString());
                                String orderNo = "";
                                for (WlyyPrescriptionDO wlyyPrescriptionDO:wlyyPrescriptionDOS2){
                                    orderNo +=wlyyPrescriptionDO.getRealOrder()+" ";
                                }
                                throw new Exception("已存在地址"+map.get("address")+"、电话"+map.get("mobile")+"的快递单(单号"+orderNo+"),请将此处方与其打包一起。");
                            }
                        }
                    }
                    System.out.println("获取顺丰物流面单信息:2");
                    //如果该处方的快递单号已生成,则说明已经下单成功,不需要重复下单,直接返回面单信息
                    System.out.println("获取顺丰物流面单信息:3");
                    if (org.apache.commons.lang.StringUtils.isNotBlank(sfexpress_obj.getMailno())) {
                        //处方已下单成功
                        System.out.println("获取顺丰物流面单信息:4");
                    } else {
                        //如果该处方的快递单号未生成,则继续下单
                        //根据业务订单号判断是否已经下单成功
                        //--2020.05.20--顺丰V2.0接口已不提供查询接口,直接单下单--START
//                    boolean go_on = sfexpressService.sfOrderSearchService(sfexpress_obj);
//
//                    //如果该业务订单号未下单成功过,则重新下单
//                    if(go_on){
//                        //请求顺丰接口下单,成功下单后,返回快递单号
//                        sfexpress_obj = sfexpressService.postSFOrderService(sfexpress_obj);
//                        //保存快递单号和增加处方物流记录为配送
//                        sfexpressService.updatePrescriptionExpressage(sfexpress_obj);
//                    }
                        //--2020.05.20--顺丰V2.0接口已不提供查询接口,直接单下单--END
                        //请求顺丰接口下单,成功下单后,返回快递单号
                        sfexpress_obj = sfexpressService.postSFOrderService(sfexpress_obj);
                        System.out.println("获取顺丰物流面单信息:5");
                        //保存快递单号和增加处方物流记录为配送
                        sfexpressService.updatePrescriptionExpressage(sfexpress_obj);
                        System.out.println("获取顺丰物流面单信息:6");
                    }
                    for (WlyyPrescriptionDO prescriptionDO:wlyyPrescriptionDOList){
                        prescriptionDO.setStatus(31);
                        prescriptionDao.save(prescriptionDO);
                    }
                    if (sfexpress_obj != null && StringUtils.isNoneBlank(sfexpress_obj.getMailno())) {
                        com.alibaba.fastjson.JSONObject object = sfexpressService.postSFOrderQueryService(sfexpress_obj);
                        System.out.println("获取顺丰物流面单信息7-1"+object.toJSONString());
                        System.out.println("获取顺丰物流面单信息:7");
            System.out.println("获取顺丰物流面单信息:wlyyPrescriptionDOS != null=" + wlyyPrescriptionDOList != null);
            if (wlyyPrescriptionDOList != null&&wlyyPrescriptionDOList.size()!=0) {
                WlyyPrescriptionDO wlyyPrescriptionDOS = wlyyPrescriptionDOList.get(0);
                List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpatientId", wlyyPrescriptionDOS.getOutpatientId());
                WlyyPrescriptionExpressageDO sfexpress_obj = null;
                System.out.println("获取顺丰物流面单信息:CollectionUtils.isEmpty(expressageDOList)=" + CollectionUtils.isEmpty(expressageDOList));
                if (CollectionUtils.isEmpty(expressageDOList)) {
                    throw new Exception("顺丰快递下单失败,未找到该处方的派送地址!");
                } else {
                    System.out.println("获取顺丰物流面单信息:1");
                    sfexpress_obj = expressageDOList.get(0);
                    if (sfexpress_obj.getType()!=null&&sfexpress_obj.getType() == 2) {
                        com.alibaba.fastjson.JSONObject sfJsonObject = new com.alibaba.fastjson.JSONObject();
                        sfJsonObject.put("mailno", sfexpress_obj.getMailno());
                        sfJsonObject.put("mailtype", "标准快递");
                        sfJsonObject.put("destcode", object.getString("destRouteLabel"));
                        sfJsonObject.put("mailtype", "同城快递");
                        if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
                            sfJsonObject.put("j_name", "厦门大学附属中山医院");
                            sfJsonObject.put("j_phone", "4003008888");
@ -8804,16 +8687,134 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                        sfJsonObject.put("pay_method", 2);
                        sfJsonObject.put("receive_time", "");
                        sfJsonObject.put("dispensaryType", 2);
                        sfJsonObject.put("destcode","592AH-002A");
                        for (WlyyPrescriptionDO prescriptionDO:wlyyPrescriptionDOList){
                            prescriptionDO.setStatus(32);
                            prescriptionDao.save(prescriptionDO);
                        }
                        result = sfJsonObject;
                        System.out.println("获取顺丰物流面单信息:8");
                    }
                    }else {
                        List<WlyyPrescriptionDO> wlyyPrescriptionDOS1 = prescriptionDao.findByOutpatientId(wlyyPrescriptionDOS.getOutpatientId());
                        if (wlyyPrescriptionDOS.getStatus()<31){
                            if (StringUtils.isNoneBlank(sfexpress_obj.getMailno())&&wlyyPrescriptionDOS1.size()>1){
                                String orderNo = "";
                                for (WlyyPrescriptionDO prescriptionDO:wlyyPrescriptionDOS1){
                                    if (!prescriptionDO.getRealOrder().equalsIgnoreCase(wlyyPrescriptionDOS.getRealOrder())){
                                        orderNo = prescriptionDO.getRealOrder();
                                    }
                                }
                                throw new Exception("已存在地址"+sfexpress_obj.getAddress()+"、电话"+sfexpress_obj.getMobile()+"的快递单(单号"+orderNo+"),请将此处方与其打包一起。");
                            }
                        }
                        String sql = "SELECT\n" +
                                "\tpe.outpatient_id as outpatientId,\n" +
                                "\tpe.mailno as mailno,\n" +
                                "\tpe.address as address,\n" +
                                "\tpe.mobile as mobile\n" +
                                "FROM\n" +
                                "\twlyy_prescription_expressage pe\n" +
                                "WHERE\n" +
                                " pe.create_time >= '"+DateUtil.getStringDateShort()+" 00:00:00'\n" +
                                "AND pe.create_time <= '"+DateUtil.getStringDateShort()+" 23:59:59'\n" +
                                "AND pe.mailno IS NOT NULL\n" +
                                "and pe.address ='"+sfexpress_obj.getAddress()+"'\n" +
                                "and pe.mobile = '"+sfexpress_obj.getMobile()+"' ";
                        List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql);
                        if (maps!=null&&maps.size()!=0){
                            Map<String,Object> map = maps.get(0);
                            if (wlyyPrescriptionDOS.getStatus()<31){
                                if (!map.get("outpatientId").toString().equalsIgnoreCase(wlyyPrescriptionDOS.getOutpatientId())){
                                    String mailNo= map.get("mailno").toString();
                                    /*       sfexpress_obj.setMailno(mailNo);*/
                                    sfexpressService.updatePrescriptionExpressage(sfexpress_obj);
                                    List<WlyyPrescriptionDO> wlyyPrescriptionDOS2 = prescriptionDao.findByOutpatientId(map.get("outpatientId").toString());
                                    String orderNo = "";
                                    for (WlyyPrescriptionDO wlyyPrescriptionDO:wlyyPrescriptionDOS2){
                                        orderNo +=wlyyPrescriptionDO.getRealOrder()+" ";
                                    }
                                    throw new Exception("已存在地址"+map.get("address")+"、电话"+map.get("mobile")+"的快递单(单号"+orderNo+"),请将此处方与其打包一起。");
                                }
                            }
                        }
                        System.out.println("获取顺丰物流面单信息:2");
                        //如果该处方的快递单号已生成,则说明已经下单成功,不需要重复下单,直接返回面单信息
                        System.out.println("获取顺丰物流面单信息:3");
                        if (org.apache.commons.lang.StringUtils.isNotBlank(sfexpress_obj.getMailno())) {
                            //处方已下单成功
                            System.out.println("获取顺丰物流面单信息:4");
                        } else {
                            //如果该处方的快递单号未生成,则继续下单
                            //根据业务订单号判断是否已经下单成功
                            //--2020.05.20--顺丰V2.0接口已不提供查询接口,直接单下单--START
//                    boolean go_on = sfexpressService.sfOrderSearchService(sfexpress_obj);
//
//                    //如果该业务订单号未下单成功过,则重新下单
//                    if(go_on){
//                        //请求顺丰接口下单,成功下单后,返回快递单号
//                        sfexpress_obj = sfexpressService.postSFOrderService(sfexpress_obj);
//                        //保存快递单号和增加处方物流记录为配送
//                        sfexpressService.updatePrescriptionExpressage(sfexpress_obj);
//                    }
                            //--2020.05.20--顺丰V2.0接口已不提供查询接口,直接单下单--END
                            //请求顺丰接口下单,成功下单后,返回快递单号
                            sfexpress_obj = sfexpressService.postSFOrderService(sfexpress_obj);
                            System.out.println("获取顺丰物流面单信息:5");
                            //保存快递单号和增加处方物流记录为配送
                            sfexpressService.updatePrescriptionExpressage(sfexpress_obj);
                            System.out.println("获取顺丰物流面单信息:6");
                        }
                        for (WlyyPrescriptionDO prescriptionDO:wlyyPrescriptionDOList){
                            prescriptionDO.setStatus(31);
                            prescriptionDao.save(prescriptionDO);
                        }
                        if (sfexpress_obj != null && StringUtils.isNoneBlank(sfexpress_obj.getMailno())) {
                            com.alibaba.fastjson.JSONObject object = sfexpressService.postSFOrderQueryService(sfexpress_obj);
                            System.out.println("获取顺丰物流面单信息7-1"+object.toJSONString());
                            System.out.println("获取顺丰物流面单信息:7");
                            com.alibaba.fastjson.JSONObject sfJsonObject = new com.alibaba.fastjson.JSONObject();
                            sfJsonObject.put("mailno", sfexpress_obj.getMailno());
                            sfJsonObject.put("mailtype", "标准快递");
                            sfJsonObject.put("destcode", object.getString("destRouteLabel"));
                            if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
                                sfJsonObject.put("j_name", "厦门大学附属中山医院");
                                sfJsonObject.put("j_phone", "4003008888");
                                sfJsonObject.put("j_townName", "思明区");
                                sfJsonObject.put("j_address", "湖滨南路201-209号");
                            } else if (wxId.equalsIgnoreCase("xm_ykyy_wx")) {
                                sfJsonObject.put("j_name", "厦门大学附属中山医院");
                                sfJsonObject.put("j_phone", "4003008888");
                                sfJsonObject.put("j_townName", "思明区");
                                sfJsonObject.put("j_address", "湖滨南路201-209号");
                            }
                            sfJsonObject.put("j_provinceName", "福建省");
                            sfJsonObject.put("j_cityName", "厦门市");
                            sfJsonObject.put("d_name", sfexpress_obj.getName());
                            sfJsonObject.put("d_provinceName", sfexpress_obj.getProvinceName());
                            sfJsonObject.put("d_cityName", sfexpress_obj.getCityName());
                            sfJsonObject.put("d_townName", sfexpress_obj.getTownName());
                            sfJsonObject.put("d_address",sfexpress_obj.getStreetName()+sfexpress_obj.getAddress());
                            sfJsonObject.put("d_phone", sfexpress_obj.getMobile());
                            sfJsonObject.put("express_type", 11);
                            sfJsonObject.put("pay_method", 2);
                            sfJsonObject.put("receive_time", "");
                            sfJsonObject.put("dispensaryType", 2);
                            result = sfJsonObject;
                            System.out.println("获取顺丰物流面单信息:8");
                        }
                    }
                }
            }
            }
            System.out.println("获取顺丰物流面单信息:9");
            return result;
        }
        System.out.println("获取顺丰物流面单信息:9");
        return result;
    }

+ 22 - 20
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java

@ -1417,15 +1417,15 @@ public class EntranceService {
        Map<String, String> orgCodeMap = new HashMap<>();
        //6总部7金榜8夏禾
        orgCodeMap.put("6", orgCode);
        orgCodeMap.put("7", "");
        orgCodeMap.put("8", "");
        //删除旧数据
        List<String> strings = new ArrayList<>(orgCodeMap.values());
        for (String s : strings) {
            if (StringUtils.isNotBlank(s)) {
                dictHospitalDeptDao.deleteByOrgCode(s);
            }
        }
        orgCodeMap.put("7", orgCode);
        orgCodeMap.put("8", orgCode);
//        //删除旧数据
//        List<String> strings = new ArrayList<>(orgCodeMap.values());
//        for (String s : strings) {
//            if (StringUtils.isNotBlank(s)) {
//                dictHospitalDeptDao.deleteByOrgCode(s);
//            }
//        }
        for (Object object : jsonArray) {
            hdmDo = new DictHospitalDeptDO();
            net.sf.json.JSONObject jsonObjectBody = (net.sf.json.JSONObject) object;
@ -1433,17 +1433,19 @@ public class EntranceService {
            //是否为会诊科室
            String consultDeptFlag = null == jsonObjectBody.get("Consult_Dept_Flag") ? "" : jsonObjectBody.get("Consult_Dept_Flag").toString();
            if (StringUtils.isNotBlank(orgCodeMap.get(deptTypeCode))) {
                hdmDo.setOrgCode(orgCode);
                hdmDo.setCode(null == jsonObjectBody.get("Dept_Code") ? "" : jsonObjectBody.get("Dept_Code").toString());
                hdmDo.setName(null == jsonObjectBody.get("Dept_Name") ? "" : jsonObjectBody.get("Dept_Name").toString());
                hdmDo.setDeptTypeCode(deptTypeCode);
                hdmDo.setFatherDeptCode(null == jsonObjectBody.get("Father_Dept_Code") ? "" : jsonObjectBody.get("Father_Dept_Code").toString());
                hdmDo.setFatherDeptName(null == jsonObjectBody.get("Father_Dept_Name") ? "" : jsonObjectBody.get("Father_Dept_Name").toString());
                hdmDo.setCreateTime(new Date());
                hdmDo.setDeptType(null == jsonObjectBody.get("Dept_Type") ? "" : jsonObjectBody.get("Dept_Type").toString());
                hdmDo.setDeptPosition(null == jsonObjectBody.get("Dept_Position") ? "" : jsonObjectBody.get("Dept_Position").toString());
//                DictHospitalDeptDao.save(hdmDo);
                hospitalDeptMappingDOS.add(hdmDo);
                DictHospitalDeptDO hospitalDeptDO = dictHospitalDeptDao.findByCode(jsonObjectBody.get("Dept_Code").toString());
                if (hospitalDeptDO==null){
                    hdmDo.setOrgCode(orgCode);
                    hdmDo.setCode(null == jsonObjectBody.get("Dept_Code") ? "" : jsonObjectBody.get("Dept_Code").toString());
                    hdmDo.setName(null == jsonObjectBody.get("Dept_Name") ? "" : jsonObjectBody.get("Dept_Name").toString());
                    hdmDo.setDeptTypeCode(deptTypeCode);
                    hdmDo.setFatherDeptCode(null == jsonObjectBody.get("Father_Dept_Code") ? "" : jsonObjectBody.get("Father_Dept_Code").toString());
                    hdmDo.setFatherDeptName(null == jsonObjectBody.get("Father_Dept_Name") ? "" : jsonObjectBody.get("Father_Dept_Name").toString());
                    hdmDo.setCreateTime(new Date());
                    hdmDo.setDeptType(null == jsonObjectBody.get("Dept_Type") ? "" : jsonObjectBody.get("Dept_Type").toString());
                    hdmDo.setDeptPosition(null == jsonObjectBody.get("Dept_Position") ? "" : jsonObjectBody.get("Dept_Position").toString());
                    hospitalDeptMappingDOS.add(hdmDo);
                }
            }
        }