trick9191 7 years ago
parent
commit
1731eee8f6

+ 1 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/prescription/PrescriptionExpressage.java

@ -417,6 +417,7 @@ public class PrescriptionExpressage extends IdEntity{
        this.fetchingMedicineTime = fetchingMedicineTime;
    }
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    public Date getDeliveryTime() {
        return deliveryTime;
    }

+ 161 - 161
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PatientPrescriptionPayService.java

@ -622,176 +622,176 @@ public class PatientPrescriptionPayService extends BaseService {
            String userIdcard = patient.getIdcard();
//       ***************************  测通流程 ***************************************
        OnepayDefaultClient onepayClient = new OnepayDefaultClient(config.getOnepayApi(), appId, appSecret, signType, encryptType);
            OnepayDefaultClient onepayClient = new OnepayDefaultClient(config.getOnepayApi(), appId, appSecret, signType, encryptType);
//     未真正完成支付以前预存储支付信息到wlyy_prescription_pay表 更改wlyy_prescription表支付时间  wlyy_prescription_expressage 新增物流记录  续方code与物流code--对应
        PrescriptionExpressage expressage = expressageDao.findByPrescriptionPay(prescriptionCode);
        if (expressage == null) {
            expressage = new PrescriptionExpressage();
            expressage.setCode(getCode());
        }
        expressage.setPrescriptionCode(prescriptionCode);
        prescription = prescriptionDao.findByCode(prescriptionCode);
        // 续方居民信息
        String paySsc = prescription.getSsc();
        String payPatientCode = prescription.getPatient();
        String payName = prescription.getPatientName();
        Patient payPatient = patientDao.findByCode(payPatientCode);
        String payIdcard = payPatient.getIdcard();
            PrescriptionExpressage expressage = expressageDao.findByPrescriptionPay(prescriptionCode);
            if (expressage == null) {
                expressage = new PrescriptionExpressage();
                expressage.setCode(getCode());
            }
            expressage.setPrescriptionCode(prescriptionCode);
            prescription = prescriptionDao.findByCode(prescriptionCode);
            // 续方居民信息
            String paySsc = prescription.getSsc();
            String payPatientCode = prescription.getPatient();
            String payName = prescription.getPatientName();
            Patient payPatient = patientDao.findByCode(payPatientCode);
            String payIdcard = payPatient.getIdcard();
        prescription.setPayTime(now);
            prescription.setPayTime(now);
        JSONObject addressInfo = JSON.parseObject(addressJson);
            JSONObject addressInfo = JSON.parseObject(addressJson);
        String phone = addressInfo.getString("phone");
        expressage.setMobile(phone);//收货人手机号码
            String phone = addressInfo.getString("phone");
            expressage.setMobile(phone);//收货人手机号码
//        配药机构信息(签约机构)
        expressage.setHospitalCode(orgCode);
        expressage.setHospitalName(hos.getName());
        expressage.setHospitalAddress(signAddress);
        switch (type) {
            case 1:
                prescription.setDispensaryType(1);//取药类型:1 自取 2快递配送 3健管师配送
                //自取保存居民信息
                expressage.setName(userName);//居民姓名
                expressage.setProvinceCode(userProvince);//省代码
                expressage.setProvinceName(userProvinceName);//省名称
                expressage.setCityCode(userCity);//市代码
                expressage.setCityName(userCityName);//市名称
                expressage.setTownCode(userTown);//区code
                expressage.setTownName(userTownName);//区名称
                expressage.setStreetCode(userStreet);//街道code
                expressage.setStreetName(userStreetName);//街道名称
                expressage.setAddress(userAddress);//居民详细地址
                expressage.setCreateTime(now);//创建时间
                expressage.setOneselfPickupFlg(1);//是否自取 1是 0否
                expressage.setDel(1);//有效
                if(StringUtils.isNotBlank(deliveryTime)){
                    Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd");
                    expressage.setDeliveryTime(dt);
                }
                break;
            case 2:
                prescription.setDispensaryType(2);//取药类型:1 自取 2快递配送 3健管师配送
                //快递保存信息
                String name = addressInfo.getString("receiver");
                String proviceCode = addressInfo.getString("provinceCode");
                String proviceName = addressInfo.getString("provinceName");
                String cityCode = addressInfo.getString("cityCode");
                String cityName = addressInfo.getString("cityName");
                String townCode = addressInfo.getString("townCode");
                String townName = addressInfo.getString("townName");
                String streeCode = addressInfo.getString("streeCode");
                String streeName = addressInfo.getString("streeName");
                String address = addressInfo.getString("address");
                expressage.setName(name);//居民姓名
                expressage.setProvinceCode(proviceCode);//省代码
                expressage.setProvinceName(proviceName);//省名称
                expressage.setCityCode(cityCode);//市代码
                expressage.setCityName(cityName);//市名称
                expressage.setTownCode(townCode);//区code
                expressage.setTownName(townName);//区名称
                expressage.setStreetCode(streeCode);//街道code
                expressage.setStreetName(streeName);//街道名称
                expressage.setAddress(address);//居民详细地址
                expressage.setExpressageHospitalName("顺丰快递");
                expressage.setCreateTime(now);//创建时间
                expressage.setOneselfPickupFlg(0);//是否自取 1是 0否
                expressage.setDel(1);//有效
                //v1.3.6.1 新增deliveryTime
                if(StringUtils.isNotBlank(deliveryTime)){
                    Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd");
                    expressage.setDeliveryTime(dt);
                }
                break;
            case 3:
                prescription.setDispensaryType(3);//取药类型:1 自取 2快递配送 3健管师配送
                //健管师配送
                expressage.setName(userName);//居民姓名
                expressage.setProvinceCode(userProvince);//省代码
                expressage.setProvinceName(userProvinceName);//省名称
                expressage.setCityCode(userCity);//市代码
                expressage.setCityName(userCityName);//市名称
                expressage.setTownCode(userTown);//区code
                expressage.setTownName(userTownName);//区名称
                expressage.setStreetCode(userStreet);//街道code
                expressage.setStreetName(userStreetName);//街道名称
                expressage.setAddress(userAddress);//居民详细地址
                //居民选择的要送达的服务站
                String userOrgCode = addressInfo.getString("code");
                String userOrgName = addressInfo.getString("name");
                String userOrgAddress = addressInfo.getString("address");
                expressage.setPatientHospitalCode(userOrgCode);
                expressage.setPatientHospitalName(userOrgName);
                expressage.setPatientHospitalAddress(userOrgAddress);
                expressage.setCreateTime(now);//创建时间
                expressage.setOneselfPickupFlg(0);//是否自取 1是 0否
                expressage.setDel(1);//有效
                //v1.3.6.1 新增deliveryTime
                if(StringUtils.isNotBlank(deliveryTime)){
                    Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd");
                    expressage.setDeliveryTime(dt);
                }
                //根据居民code查询团队长及所在团队待处理订单数量
                String sql = "SELECT a.id teamCode,a.leader_code leaderCode,d.`name` leaderName " +
                        " FROM wlyy_sign_family t,wlyy_admin_team a,wlyy_doctor d " +
                        " WHERE t.admin_team_code=a.id AND d.code=a.leader_code " +
                        " AND t.patient=? ";
                Map<String, Object> team = jdbcTemplate.queryForMap(sql, people);
                LOGGER.debug("================> get order amount!");
                String teamCode = team.get("teamCode").toString();
                String leaderCode = team.get("leaderCode").toString();
                String leaderName = team.get("leaderName").toString();
                String count = infoService.getCountExpressage(teamCode).toString();
                JSONObject jsonObject = new JSONObject();
                jsonObject = JSON.parseObject(count);
                int amount = jsonObject.getInteger("count");
                amount+=1;
                //增加wlyy_message 团队长健管师待分配系统消息记录
                Message message = new Message();
                message.setCode(getCode());
                message.setReceiver(leaderCode);//接受者 团队长
                message.setReceiverName(leaderName);
                message.setSender("SYSTEM");//发送者
                message.setSenderName("SYSTEM");//发送者
                message.setTitle("新增系统消息");
                SimpleDateFormat format = new SimpleDateFormat("MM月dd日");
                String content = format.format(new Date()) + "新增1个续方订单待分配配送员,目前共" + amount + "人待处理";
                message.setContent(content);
                message.setType(8);//8.续方支付成功后团队长分配健管师
                message.setPlatform(2);//消息平台,1微信端/患者端,2医生APP端
                message.setState(0);//消息状态,1已发送,0待发送,-1发送失败
                message.setRead(1);//查看状态,1未读,0已读
                message.setReadonly(1);//只读消息:1否,0是
                message.setCzrq(new Date());
                message.setCreateTime(new Date());
                message.setDel("1");//是否作废,1正常,0作废
                message.setOver("0");//是否操作结束 1是 0否
                message.setRelationCode(prescriptionCode);//业务关联code 续方code
                messageDao.save(message);
                break;
        }
            expressage.setHospitalCode(orgCode);
            expressage.setHospitalName(hos.getName());
            expressage.setHospitalAddress(signAddress);
            switch (type) {
                case 1:
                    prescription.setDispensaryType(1);//取药类型:1 自取 2快递配送 3健管师配送
                    //自取保存居民信息
                    expressage.setName(userName);//居民姓名
                    expressage.setProvinceCode(userProvince);//省代码
                    expressage.setProvinceName(userProvinceName);//省名称
                    expressage.setCityCode(userCity);//市代码
                    expressage.setCityName(userCityName);//市名称
                    expressage.setTownCode(userTown);//区code
                    expressage.setTownName(userTownName);//区名称
                    expressage.setStreetCode(userStreet);//街道code
                    expressage.setStreetName(userStreetName);//街道名称
                    expressage.setAddress(userAddress);//居民详细地址
                    expressage.setCreateTime(now);//创建时间
                    expressage.setOneselfPickupFlg(1);//是否自取 1是 0否
                    expressage.setDel(1);//有效
                    if(StringUtils.isNotBlank(deliveryTime)){
                        Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd");
                        expressage.setDeliveryTime(dt);
                    }
                    break;
                case 2:
                    prescription.setDispensaryType(2);//取药类型:1 自取 2快递配送 3健管师配送
                    //快递保存信息
                    String name = addressInfo.getString("receiver");
                    String proviceCode = addressInfo.getString("provinceCode");
                    String proviceName = addressInfo.getString("provinceName");
                    String cityCode = addressInfo.getString("cityCode");
                    String cityName = addressInfo.getString("cityName");
                    String townCode = addressInfo.getString("townCode");
                    String townName = addressInfo.getString("townName");
                    String streeCode = addressInfo.getString("streeCode");
                    String streeName = addressInfo.getString("streeName");
                    String address = addressInfo.getString("address");
                    expressage.setName(name);//居民姓名
                    expressage.setProvinceCode(proviceCode);//省代码
                    expressage.setProvinceName(proviceName);//省名称
                    expressage.setCityCode(cityCode);//市代码
                    expressage.setCityName(cityName);//市名称
                    expressage.setTownCode(townCode);//区code
                    expressage.setTownName(townName);//区名称
                    expressage.setStreetCode(streeCode);//街道code
                    expressage.setStreetName(streeName);//街道名称
                    expressage.setAddress(address);//居民详细地址
                    expressage.setExpressageHospitalName("顺丰快递");
                    expressage.setCreateTime(now);//创建时间
                    expressage.setOneselfPickupFlg(0);//是否自取 1是 0否
                    expressage.setDel(1);//有效
                    //v1.3.6.1 新增deliveryTime
                    if(StringUtils.isNotBlank(deliveryTime)){
                        Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd");
                        expressage.setDeliveryTime(dt);
                    }
                    break;
                case 3:
                    prescription.setDispensaryType(3);//取药类型:1 自取 2快递配送 3健管师配送
                    //健管师配送
                    expressage.setName(userName);//居民姓名
                    expressage.setProvinceCode(userProvince);//省代码
                    expressage.setProvinceName(userProvinceName);//省名称
                    expressage.setCityCode(userCity);//市代码
                    expressage.setCityName(userCityName);//市名称
                    expressage.setTownCode(userTown);//区code
                    expressage.setTownName(userTownName);//区名称
                    expressage.setStreetCode(userStreet);//街道code
                    expressage.setStreetName(userStreetName);//街道名称
                    expressage.setAddress(userAddress);//居民详细地址
                    //居民选择的要送达的服务站
                    String userOrgCode = addressInfo.getString("code");
                    String userOrgName = addressInfo.getString("name");
                    String userOrgAddress = addressInfo.getString("address");
                    expressage.setPatientHospitalCode(userOrgCode);
                    expressage.setPatientHospitalName(userOrgName);
                    expressage.setPatientHospitalAddress(userOrgAddress);
                    expressage.setCreateTime(now);//创建时间
                    expressage.setOneselfPickupFlg(0);//是否自取 1是 0否
                    expressage.setDel(1);//有效
                    //v1.3.6.1 新增deliveryTime
                    if(StringUtils.isNotBlank(deliveryTime)){
                        Date dt = com.yihu.wlyy.util.DateUtil.stringToDate(deliveryTime,"yyyy-MM-dd");
                        expressage.setDeliveryTime(dt);
                    }
                    //根据居民code查询团队长及所在团队待处理订单数量
                    String sql = "SELECT a.id teamCode,a.leader_code leaderCode,d.`name` leaderName " +
                            " FROM wlyy_sign_family t,wlyy_admin_team a,wlyy_doctor d " +
                            " WHERE t.admin_team_code=a.id AND d.code=a.leader_code " +
                            " AND t.patient=? ";
                    Map<String, Object> team = jdbcTemplate.queryForMap(sql, people);
                    LOGGER.debug("================> get order amount!");
                    String teamCode = team.get("teamCode").toString();
                    String leaderCode = team.get("leaderCode").toString();
                    String leaderName = team.get("leaderName").toString();
                    String count = infoService.getCountExpressage(teamCode).toString();
                    JSONObject jsonObject = new JSONObject();
                    jsonObject = JSON.parseObject(count);
                    int amount = jsonObject.getInteger("count");
                    amount+=1;
                    //增加wlyy_message 团队长健管师待分配系统消息记录
                    Message message = new Message();
                    message.setCode(getCode());
                    message.setReceiver(leaderCode);//接受者 团队长
                    message.setReceiverName(leaderName);
                    message.setSender("SYSTEM");//发送者
                    message.setSenderName("SYSTEM");//发送者
                    message.setTitle("新增系统消息");
                    SimpleDateFormat format = new SimpleDateFormat("MM月dd日");
                    String content = format.format(new Date()) + "新增1个续方订单待分配配送员,目前共" + amount + "人待处理";
                    message.setContent(content);
                    message.setType(8);//8.续方支付成功后团队长分配健管师
                    message.setPlatform(2);//消息平台,1微信端/患者端,2医生APP端
                    message.setState(0);//消息状态,1已发送,0待发送,-1发送失败
                    message.setRead(1);//查看状态,1未读,0已读
                    message.setReadonly(1);//只读消息:1否,0是
                    message.setCzrq(new Date());
                    message.setCreateTime(new Date());
                    message.setDel("1");//是否作废,1正常,0作废
                    message.setOver("0");//是否操作结束 1是 0否
                    message.setRelationCode(prescriptionCode);//业务关联code 续方code
                    messageDao.save(message);
                    break;
            }
        PrescriptionPay prescriptionPay = new PrescriptionPay();
            PrescriptionPay prescriptionPay = new PrescriptionPay();
//        居民信息
        prescriptionPay.setCode(uuid);  //  接入应用支付业务流水号
        prescriptionPay.setPrescriptionCode(prescriptionCode);   //开处方的医生code 关联 wlyy_prescription
        prescriptionPay.setType(1);//支付方式 1 医保支付
        prescriptionPay.setOutChargeTime(new Date());//接入应用时间
        prescriptionPay.setChannel(channel);//支付方式
        prescriptionPay.setChargeTime(new Date());//预支付时间
        prescriptionPay.setOpenid(openid);     //  用戶微信openid
        prescriptionPay.setTotalAmount(totalAmount);//交易总金额
        prescriptionPay.setCreateTime(now);
        prescriptionPay.setCzrq(now);
            prescriptionPay.setCode(uuid);  //  接入应用支付业务流水号
            prescriptionPay.setPrescriptionCode(prescriptionCode);   //开处方的医生code 关联 wlyy_prescription
            prescriptionPay.setType(1);//支付方式 1 医保支付
            prescriptionPay.setOutChargeTime(new Date());//接入应用时间
            prescriptionPay.setChannel(channel);//支付方式
            prescriptionPay.setChargeTime(new Date());//预支付时间
            prescriptionPay.setOpenid(openid);     //  用戶微信openid
            prescriptionPay.setTotalAmount(totalAmount);//交易总金额
            prescriptionPay.setCreateTime(now);
            prescriptionPay.setCzrq(now);
//        try {