|
@ -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;
|
|
|
|
|
|
}
|
|
|
|
|
|
|