|
@@ -3176,38 +3176,60 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
|
|
|
} else {
|
|
|
BspOrderResponseWrapper addParam = JSON.parseObject(body, BspOrderResponseWrapper.class);
|
|
|
+ if (addParam == null) {
|
|
|
+ return R.ok("接收成功").put("code", "ok");
|
|
|
+ }
|
|
|
+ String failMsg = addParam.getFailMsg();
|
|
|
+ if (com.hc.openapi.tool.util.StringUtils.isNotBlank(failMsg)) {
|
|
|
+ if (failMsg.equals("暂未结果, 请稍后再查")){
|
|
|
+ return R.ok("接收成功").put("code", "ok");
|
|
|
+ }
|
|
|
+ //下单失败 返回未推送状态
|
|
|
+ String orderNumber = addParam.getOrderNumber();
|
|
|
+ FsStoreOrder fsStoreOrder = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderNumber);
|
|
|
+ FsStoreOrder tempOrder = new FsStoreOrder();
|
|
|
+ tempOrder.setOrderId(fsStoreOrder.getOrderId());
|
|
|
+ tempOrder.setExtendOrderId("");
|
|
|
+ fsStoreOrderMapper.updateFsStoreOrder(tempOrder);
|
|
|
+ FsStoreOrderDf df = new FsStoreOrderDf();
|
|
|
+ df.setOrderId(fsStoreOrder.getOrderId());
|
|
|
+ df.setStatus(0); //回到默认
|
|
|
+ df.setFailMsg(failMsg); //失败消息
|
|
|
+ df.setUpdateTime(new Date());
|
|
|
+ fsStoreOrderDfMapper.updateFsStoreOrderDf(df);
|
|
|
+ //推送失败消息
|
|
|
+ return R.ok("接收成功").put("code", "ok");
|
|
|
+ }
|
|
|
if (addParam.getBspResponse() != null) {
|
|
|
//更新物流
|
|
|
- if (addParam != null) {
|
|
|
- log.info("代服管家创建订单回调,{}", JSON.toJSONString(addParam));
|
|
|
- List<OrderResponse> list = addParam.getBspResponse().getBody();
|
|
|
- if (list != null && !list.isEmpty()) {
|
|
|
- for (OrderResponse orderResponse : list) {
|
|
|
- List<RlsInfo> rlsInfos = orderResponse.getRlsInfo();
|
|
|
- String orderNumber = orderResponse.getOrderNumber();
|
|
|
- String mailNumber = orderResponse.getMailNumber();
|
|
|
- if (rlsInfos != null && rlsInfos.size() > 0) {
|
|
|
- RlsInfo rlsInfo = rlsInfos.get(0);
|
|
|
- List<RlsDetail> rlsDetails = rlsInfo.getRlsDetail();
|
|
|
- if (rlsDetails != null && !rlsDetails.isEmpty()) {
|
|
|
- RlsDetail rlsDetail = rlsDetails.get(0);
|
|
|
- String proName = rlsDetail.getProName();
|
|
|
- if (com.hc.openapi.tool.util.StringUtils.isNotBlank(proName)) {
|
|
|
- FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderNumber);
|
|
|
- if (order != null && order.getStatus() == 2) {
|
|
|
- order.setDeliverySn(mailNumber);
|
|
|
- order.setDeliveryName(proName);
|
|
|
- order.setDeliveryCode("SF");
|
|
|
- order.setStatus(3);
|
|
|
- order.setDeliverySendTime(DateUtils.getNowDate());
|
|
|
- fsStoreOrderMapper.updateFsStoreOrder(order);
|
|
|
- fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.DELIVERY_GOODS.getValue(), FsStoreOrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
- if (order.getCompanyId() != null && order.getCompanyId() > 0) {
|
|
|
- companyService.subtractCompanyMoney(order);
|
|
|
- }
|
|
|
+ log.info("代服管家创建订单回调,{}", JSON.toJSONString(addParam));
|
|
|
+ List<OrderResponse> list = addParam.getBspResponse().getBody();
|
|
|
+ if (list != null && !list.isEmpty()) {
|
|
|
+ for (OrderResponse orderResponse : list) {
|
|
|
+ List<RlsInfo> rlsInfos = orderResponse.getRlsInfo();
|
|
|
+ String orderNumber = orderResponse.getOrderNumber();
|
|
|
+ String mailNumber = orderResponse.getMailNumber();
|
|
|
+ if (rlsInfos != null && rlsInfos.size() > 0) {
|
|
|
+ RlsInfo rlsInfo = rlsInfos.get(0);
|
|
|
+ List<RlsDetail> rlsDetails = rlsInfo.getRlsDetail();
|
|
|
+ if (rlsDetails != null && !rlsDetails.isEmpty()) {
|
|
|
+ RlsDetail rlsDetail = rlsDetails.get(0);
|
|
|
+ String proName = rlsDetail.getProName();
|
|
|
+ if (com.hc.openapi.tool.util.StringUtils.isNotBlank(proName)) {
|
|
|
+ FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderNumber);
|
|
|
+ if (order != null && order.getStatus() == 2) {
|
|
|
+ order.setDeliverySn(mailNumber);
|
|
|
+ order.setDeliveryName(proName);
|
|
|
+ order.setDeliveryCode("SF");
|
|
|
+ order.setStatus(3);
|
|
|
+ order.setDeliverySendTime(DateUtils.getNowDate());
|
|
|
+ fsStoreOrderMapper.updateFsStoreOrder(order);
|
|
|
+ fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.DELIVERY_GOODS.getValue(), FsStoreOrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
+ if (order.getCompanyId() != null && order.getCompanyId() > 0) {
|
|
|
+ companyService.subtractCompanyMoney(order);
|
|
|
}
|
|
|
- break;
|
|
|
}
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -3229,13 +3251,16 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
return R.error(dto.getReason());
|
|
|
}
|
|
|
FsStoreOrder map = new FsStoreOrder();
|
|
|
- map.setDeliveryStatus(Integer.parseInt(dto.getState()));
|
|
|
- map.setOrderId(order.getOrderId());
|
|
|
- map.setDeliveryType(dto.getStateEx());
|
|
|
- fsStoreOrderMapper.updateFsStoreOrder(map);
|
|
|
- //如果是正常签收,更新订单状态
|
|
|
- if (dto.getState().equals("3") && (dto.getStateEx().equals("301") || dto.getStateEx().equals("302") || dto.getStateEx().equals("304") || dto.getStateEx().equals("311"))) {
|
|
|
- this.getGoods(order.getOrderId());
|
|
|
+ if(dto != null && dto.getState() != null){
|
|
|
+ map.setDeliveryStatus(Integer.parseInt(dto.getState()));
|
|
|
+ map.setOrderId(order.getOrderId());
|
|
|
+ map.setDeliveryType(dto.getStateEx());
|
|
|
+ fsStoreOrderMapper.updateFsStoreOrder(map);
|
|
|
+ //如果是正常签收,更新订单状态
|
|
|
+ if (dto.getState().equals("3")) {
|
|
|
+ this.getGoods(order.getOrderId());
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
return R.ok();
|
|
|
}
|
|
@@ -3243,6 +3268,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
@Override
|
|
|
public ExpressInfoDTO getDfExpressInfoDTO(FsStoreOrder order) {
|
|
|
ExpressInfoDTO expressInfoDTO = new ExpressInfoDTO();
|
|
|
+ expressInfoDTO.setOrderCode(order.getOrderCode());
|
|
|
+ expressInfoDTO.setSuccess(true);
|
|
|
ErpDeliverysRequest erpDeliverysRequest = new ErpDeliverysRequest();
|
|
|
erpDeliverysRequest.setCode(order.getOrderCode());
|
|
|
ErpDeliverysResponse deliver = null;
|
|
@@ -3258,14 +3285,33 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
List<TracesDTO> tracesDTOS = new ArrayList<>();
|
|
|
for (ErpDeliverys item : deliverys) {
|
|
|
TracesDTO dto = new TracesDTO();
|
|
|
-// dto.setAction();
|
|
|
dto.setLocation(item.getAcceptAddress());
|
|
|
dto.setAcceptStation(item.getRemark());
|
|
|
dto.setAcceptTime(item.getAcceptTime());
|
|
|
+ tracesDTOS.add(dto);
|
|
|
+
|
|
|
}
|
|
|
expressInfoDTO.setTraces(tracesDTOS);
|
|
|
- expressInfoDTO.setOrderCode(order.getOrderCode());
|
|
|
+ //匹配原代码物流编码
|
|
|
+ ErpDeliverys item = deliverys.get(deliverys.size()-1);
|
|
|
+ String opCode = item.getOpCode();
|
|
|
+ if ("54".equals(opCode)) {
|
|
|
+ //54 取件
|
|
|
+ expressInfoDTO.setState("1");
|
|
|
+ expressInfoDTO.setStateEx("1");
|
|
|
+ } else if (opCode.startsWith("3")) {
|
|
|
+ //30 分拣,36 31
|
|
|
+ expressInfoDTO.setState("2");
|
|
|
+ expressInfoDTO.setStateEx("2");
|
|
|
+ } else if ("80".equals(opCode)) {
|
|
|
+ //80:您的快件已派送至本人
|
|
|
+ expressInfoDTO.setState("3");
|
|
|
+ expressInfoDTO.setStateEx("301");
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ expressInfoDTO.setState("0");
|
|
|
+ expressInfoDTO.setStateEx("0");
|
|
|
}
|
|
|
return expressInfoDTO;
|
|
|
}
|