|
@ -1,209 +0,0 @@
|
|
|
package com.yihu.jw.entrance.controller.expressage;
|
|
|
|
|
|
import com.yihu.jw.entity.hospital.prescription.WlyyExpressagePriceDO;
|
|
|
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionExpressageDO;
|
|
|
import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
|
|
|
import com.yihu.jw.hospital.prescription.service.PrescriptionExpressageService;
|
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
|
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
|
|
|
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.net.URLDecoder;
|
|
|
import java.util.List;
|
|
|
|
|
|
@RestController
|
|
|
@RequestMapping(value = BaseHospitalRequestMapping.Expressage.PREFIX)
|
|
|
@Api(value = "门诊处方快递物流管理器", description = "门诊处方快递物流管理器", tags = {"wlyy基础服务 - 门诊处方快递物流管理服务接口"})
|
|
|
public class ExpressageEndpoint extends EnvelopRestEndpoint {
|
|
|
private static Logger logger = LoggerFactory.getLogger(ExpressageEndpoint.class);
|
|
|
|
|
|
@Autowired
|
|
|
private PrescriptionExpressageService sfexpressService;
|
|
|
|
|
|
@Autowired
|
|
|
private OutpatientDao outpatientDao;
|
|
|
|
|
|
private String successxml = "<Response service='RoutePushService'><Head>OK</Head></Response>";
|
|
|
private String failedxml = "<Response service='RoutePushService'><Head>ERR</Head><ERROR code='-1'>系统发生数据错误或运行时异常</ERROR></Response>";
|
|
|
|
|
|
@RequestMapping(value="/routepushservice",method = RequestMethod.POST)
|
|
|
@ApiOperation("接受顺丰推送过来的路由信息")
|
|
|
public Envelop SFRoutePushService (
|
|
|
@ApiParam(name="content", value="入参报文") @RequestParam(value = "content",required = true) String content){
|
|
|
try {
|
|
|
content = URLDecoder.decode(content,"utf-8");
|
|
|
logger.info("顺丰路由信息推送,xml="+content);
|
|
|
sfexpressService.SFRoutePushService(content);
|
|
|
return success(successxml);
|
|
|
}catch (Exception e){
|
|
|
logger.error("接收顺丰路由信息推送失败,入参xml:"+content);
|
|
|
//日志文件中记录异常信息
|
|
|
//返回接口异常信息处理结果
|
|
|
return failed(failedxml);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value="/sfrouteserviceSearch",method = RequestMethod.GET)
|
|
|
@ApiOperation("通过门诊编号查询顺丰物流派送记录")
|
|
|
public Envelop SFRouteServiceSearch(@ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
|
|
|
try {
|
|
|
List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpatientId",outpatientId);
|
|
|
if(CollectionUtils.isEmpty(expressageDOList)){
|
|
|
return failed("当前门诊没有物流信息!");
|
|
|
}
|
|
|
WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
|
|
|
String result = sfexpressService.getRoutInfosSearch(sfexpress_obj);
|
|
|
return success(result);
|
|
|
}catch (Exception e){
|
|
|
//返回接口异常信息处理结果
|
|
|
return failed( "查询失败,"+e.getMessage());
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "/getsfexpressprice", method = RequestMethod.GET)
|
|
|
@ApiOperation("根据收寄地址获取快递费用")
|
|
|
public Envelop SFExpressPrice(
|
|
|
// @ApiParam(name = "j_city", value = "寄方地址(城市),默认为厦门", defaultValue = "厦门")
|
|
|
// @RequestParam(value = "j_city", required = false) String j_city,
|
|
|
@ApiParam(name = "d_province", value = "收方地址(省份)")
|
|
|
@RequestParam(value = "d_province", required = false) String d_province,
|
|
|
@ApiParam(name = "d_city", value = "收方地址(城市)")
|
|
|
@RequestParam(value = "d_city", required = false) String d_city){
|
|
|
|
|
|
try {
|
|
|
WlyyExpressagePriceDO expreprice = sfexpressService.getSFExpressPrice(d_province,d_city);
|
|
|
return success(expreprice);
|
|
|
}catch (Exception e){
|
|
|
//返回接口异常信息处理结果
|
|
|
return failed("获取快递费用,"+e.getMessage());
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/sforderfilterservice", method = RequestMethod.GET)
|
|
|
@ApiOperation("查询派送地址是否属于顺丰的派送范围")
|
|
|
public Envelop SFOrderFilterService(
|
|
|
@ApiParam(name = "d_address", value = "派送地址", defaultValue = "福建省厦门市思明区软件园二期望海路55号")
|
|
|
@RequestParam(value = "d_address", required = true) String d_address){
|
|
|
try {
|
|
|
|
|
|
boolean result = sfexpressService.getSFOrderFilterService(d_address);
|
|
|
|
|
|
if(result){
|
|
|
return success("地址可派送!");
|
|
|
}else{
|
|
|
return failed("地址不可派送!");
|
|
|
}
|
|
|
|
|
|
}catch (Exception e){
|
|
|
return failed("异常:"+e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value="/sforderservice",method = RequestMethod.POST)
|
|
|
@ApiOperation("向顺丰快递下订单")
|
|
|
public Envelop SFOrderService(
|
|
|
@ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
|
|
|
try {
|
|
|
List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpatientId",outpatientId);
|
|
|
|
|
|
if(CollectionUtils.isEmpty(expressageDOList)){
|
|
|
return failed("顺丰快递下单失败,未找到该处方的派送地址!");
|
|
|
}else{
|
|
|
WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
|
|
|
//如果该处方的快递单号已生成,则说明已经下单成功,不需要重复下单,直接返回成功
|
|
|
if(StringUtils.isNotBlank(sfexpress_obj.getMailno())){
|
|
|
return success("顺丰快递下单成功!");
|
|
|
}else{
|
|
|
//如果该处方的快递单号未生成,则继续下单
|
|
|
|
|
|
//由于下单前已经判断过是否派送,这里不再重复判断----huangwenjie-2017.08.04
|
|
|
//先判断地址是否可派送boolean delivery = sfexpressService.getSFOrderFilterService(sfexpress_obj.getProvinceName()+sfexpress_obj.getCityName()+sfexpress_obj.getTownName()+sfexpress_obj.getAddress());
|
|
|
|
|
|
//根据业务订单号判断是否已经下单成功
|
|
|
boolean go_on = sfexpressService.sfOrderSearchService(sfexpress_obj);
|
|
|
|
|
|
//如果该业务订单号未下单成功过,则重新下单
|
|
|
if(go_on){
|
|
|
//请求顺丰接口下单,成功下单后,返回快递单号
|
|
|
sfexpress_obj = sfexpressService.postSFOrderService(sfexpress_obj);
|
|
|
//保存快递单号和增加处方物流记录为配送
|
|
|
sfexpressService.updatePrescriptionExpressage(sfexpress_obj);
|
|
|
}
|
|
|
return success("顺丰快递下单成功!");
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
//返回接口异常信息处理结果
|
|
|
return failed(e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value="/sfgetorderinfoservice",method = RequestMethod.GET)
|
|
|
@ApiOperation("通过门诊编号查询顺丰快递单信息(不包含物流记录)")
|
|
|
public Envelop SFGetOrderInfo(
|
|
|
@ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
|
|
|
try {
|
|
|
List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpaitentId",outpatientId);
|
|
|
if(CollectionUtils.isEmpty(expressageDOList)){
|
|
|
return failed( "查询失败,");
|
|
|
}
|
|
|
WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
|
|
|
return success(sfexpress_obj);
|
|
|
}catch (Exception e) {
|
|
|
return failed("查询失败," + e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value="/sfordersearchservice",method = RequestMethod.GET)
|
|
|
@ApiOperation("通过门诊编号查询顺丰快递是否下单成功")
|
|
|
public Envelop SFOrderSearchService(
|
|
|
@ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
|
|
|
List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpaitentId",outpatientId);
|
|
|
if(CollectionUtils.isEmpty(expressageDOList)){
|
|
|
return failed( "查询失败,");
|
|
|
}
|
|
|
try {
|
|
|
WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
|
|
|
boolean go_on = sfexpressService.sfOrderSearchServiceJustSearch(sfexpress_obj);
|
|
|
return success(go_on);
|
|
|
}catch (Exception e) {
|
|
|
return failed("查询失败," + e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value="/sforderConfirm",method = RequestMethod.GET)
|
|
|
@ApiOperation("通过快递单号取消快递")
|
|
|
public Envelop sforderConfirm(
|
|
|
@ApiParam(name="mailno", value="快递单号") @RequestParam(value = "mailno",required = true) String mailno){
|
|
|
List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("mailno",mailno);
|
|
|
if(CollectionUtils.isEmpty(expressageDOList)){
|
|
|
return failed( "当前快递单号的门诊不存在,");
|
|
|
}
|
|
|
try {
|
|
|
WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
|
|
|
String result = sfexpressService.postOrderConfirmService(sfexpress_obj);
|
|
|
return success(result);
|
|
|
}catch (Exception e) {
|
|
|
return failed("异常," + e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|