|
@ -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 {
|
|
|
|