|
@@ -3622,7 +3622,8 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
throw new CustomException("不是本公司订单");
|
|
throw new CustomException("不是本公司订单");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (o.getStatus() != 2) {
|
|
|
|
|
|
|
+ //商城待发货状态为1
|
|
|
|
|
+ if (o.getStatus() != 1) {
|
|
|
throw new CustomException("订单状态不为待发货");
|
|
throw new CustomException("订单状态不为待发货");
|
|
|
}
|
|
}
|
|
|
// 判断每个字段是否为null或为空字符串
|
|
// 判断每个字段是否为null或为空字符串
|
|
@@ -3639,31 +3640,34 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
}
|
|
}
|
|
|
FsStoreOrderScrm fsStoreOrder = new FsStoreOrderScrm();
|
|
FsStoreOrderScrm fsStoreOrder = new FsStoreOrderScrm();
|
|
|
|
|
|
|
|
- fsStoreOrder.setDeliverySn(vo.getDeliverySn());
|
|
|
|
|
|
|
+ fsStoreOrder.setDeliverySn(vo.getDeliveryCode());
|
|
|
fsStoreOrder.setDeliveryName(vo.getDeliveryName());
|
|
fsStoreOrder.setDeliveryName(vo.getDeliveryName());
|
|
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
fsStoreOrder.setDeliveryTime(formatter.format(new Date()));
|
|
fsStoreOrder.setDeliveryTime(formatter.format(new Date()));
|
|
|
- fsStoreOrder.setDeliveryCode(vo.getDeliveryCode());
|
|
|
|
|
|
|
+ fsStoreOrder.setDeliveryId(vo.getDeliverySn());
|
|
|
|
|
|
|
|
fsStoreOrder.setOrderCode(vo.getOrderCode());
|
|
fsStoreOrder.setOrderCode(vo.getOrderCode());
|
|
|
- fsStoreOrder.setStatus(3);
|
|
|
|
|
|
|
+ fsStoreOrder.setStatus(2); //商城待收货状态为2
|
|
|
|
|
+ if (CloudHostUtils.hasCloudHostName("康年堂"))fsStoreOrder.setExtendOrderId(o.getOrderCode());
|
|
|
if (o.getCompanyId() != null) {
|
|
if (o.getCompanyId() != null) {
|
|
|
companyService.subtractCompanyMoneyScrm(o);
|
|
companyService.subtractCompanyMoneyScrm(o);
|
|
|
}
|
|
}
|
|
|
FsStoreScrm store = fsStoreMapper.selectFsStoreByStoreId(o.getStoreId());
|
|
FsStoreScrm store = fsStoreMapper.selectFsStoreByStoreId(o.getStoreId());
|
|
|
int i = fsStoreOrderMapper.updateFsStoreOrderByOrderCode(fsStoreOrder);
|
|
int i = fsStoreOrderMapper.updateFsStoreOrderByOrderCode(fsStoreOrder);
|
|
|
String lastFourNumber = "";
|
|
String lastFourNumber = "";
|
|
|
- if (fsStoreOrder.getDeliveryCode().equals(com.fs.his.enums.ShipperCodeEnum.SF.getValue()) || fsStoreOrder.getDeliveryCode().equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
|
|
- if (store.getSendPhone() != null) {
|
|
|
|
|
- lastFourNumber = store.getSendPhone();
|
|
|
|
|
- } else {
|
|
|
|
|
- lastFourNumber = o.getUserPhone();
|
|
|
|
|
- }
|
|
|
|
|
- if (lastFourNumber.length() == 11) {
|
|
|
|
|
- lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
|
|
|
|
+ if (!CloudHostUtils.hasCloudHostName("康年堂")){
|
|
|
|
|
+ if (fsStoreOrder.getDeliverySn() != null && (fsStoreOrder.getDeliverySn().equals(com.fs.his.enums.ShipperCodeEnum.SF.getValue()) || fsStoreOrder.getDeliverySn().equals(ShipperCodeEnum.ZTO.getValue()))) {
|
|
|
|
|
+ if (store.getSendPhone() != null) {
|
|
|
|
|
+ lastFourNumber = store.getSendPhone();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ lastFourNumber = o.getUserPhone();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (lastFourNumber.length() == 11) {
|
|
|
|
|
+ lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ expressService.subscribeEspress(o.getOrderCode(), fsStoreOrder.getDeliveryCode(), fsStoreOrder.getDeliverySn(), lastFourNumber);
|
|
|
}
|
|
}
|
|
|
- expressService.subscribeEspress(o.getOrderCode(), fsStoreOrder.getDeliveryCode(), fsStoreOrder.getDeliverySn(), lastFourNumber);
|
|
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
String s = fsPrescribeService.PrescribeImg(o.getPrescribeId());
|
|
String s = fsPrescribeService.PrescribeImg(o.getPrescribeId());
|
|
@@ -5264,6 +5268,57 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
return R.ok().put("orderKey", uuid);
|
|
return R.ok().put("orderKey", uuid);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public com.fs.his.dto.ExpressInfoDTO getDfExpressInfoDTO(FsStoreOrderScrm order) {
|
|
|
|
|
+ com.fs.his.dto.ExpressInfoDTO expressInfoDTO = new com.fs.his.dto.ExpressInfoDTO();
|
|
|
|
|
+ expressInfoDTO.setOrderCode(order.getOrderCode());
|
|
|
|
|
+ expressInfoDTO.setSuccess(true);
|
|
|
|
|
+ ErpDeliverysRequest erpDeliverysRequest = new ErpDeliverysRequest();
|
|
|
|
|
+ erpDeliverysRequest.setCode(order.getOrderCode());
|
|
|
|
|
+ ErpDeliverysResponse deliver = null;
|
|
|
|
|
+ deliver = dfOrderService.getDeliverScrm(erpDeliverysRequest);
|
|
|
|
|
+ if (deliver != null) {
|
|
|
|
|
+ if (StringUtils.isNotBlank(deliver.getErrorDesc())) {
|
|
|
|
|
+ throw new CustomException(deliver.getErrorDesc());
|
|
|
|
|
+ }
|
|
|
|
|
+ List<ErpDeliverys> deliverys = deliver.getDeliverys();
|
|
|
|
|
+ if (deliverys != null && !deliverys.isEmpty()) {
|
|
|
|
|
+ expressInfoDTO.setLogisticCode(deliver.getCode());
|
|
|
|
|
+ expressInfoDTO.setShipperCode(""); //快递公司编码
|
|
|
|
|
+ List<com.fs.his.dto.TracesDTO> tracesDTOS = new ArrayList<>();
|
|
|
|
|
+ for (ErpDeliverys item : deliverys) {
|
|
|
|
|
+ com.fs.his.dto.TracesDTO dto = new com.fs.his.dto.TracesDTO();
|
|
|
|
|
+ dto.setLocation(item.getAcceptAddress());
|
|
|
|
|
+ dto.setAcceptStation(item.getRemark());
|
|
|
|
|
+ dto.setAcceptTime(item.getAcceptTime());
|
|
|
|
|
+ tracesDTOS.add(dto);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ expressInfoDTO.setTraces(tracesDTOS);
|
|
|
|
|
+ //匹配原代码物流编码
|
|
|
|
|
+ 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;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private static final DateTimeFormatter CST_FORMATTER = DateTimeFormatter
|
|
private static final DateTimeFormatter CST_FORMATTER = DateTimeFormatter
|
|
|
.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US)
|
|
.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US)
|
|
|
.withZone(ZoneId.of("Asia/Shanghai"));
|
|
.withZone(ZoneId.of("Asia/Shanghai"));
|