|
@@ -45,6 +45,7 @@ import com.fs.company.service.ICompanyUserService;
|
|
|
import com.fs.erp.domain.*;
|
|
|
import com.fs.erp.dto.*;
|
|
|
import com.fs.erp.service.IErpOrderService;
|
|
|
+import com.fs.express.FsStoreDeliversService;
|
|
|
import com.fs.huifuPay.domain.HuiFuRefundResult;
|
|
|
import com.fs.huifuPay.dto.*;
|
|
|
import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
|
|
@@ -190,6 +191,13 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
|
|
|
@Autowired
|
|
|
private FsStoreDeliversMapper fsStoreDeliversMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IFsStoreOrderService orderService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private FsStoreDeliversService fsStoreDeliversService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询订单
|
|
|
*
|
|
@@ -902,9 +910,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
// 微信消息通知
|
|
|
TemplateBean templateBean = TemplateBean.builder()
|
|
|
.orderId(order.getId().toString())
|
|
|
- .orderCode(order.getOrderCode().toString())
|
|
|
- .deliveryId(order.getDeliveryId())
|
|
|
- .deliveryName(order.getDeliveryName())
|
|
|
+ .orderCode(order.getOrderCode())
|
|
|
+ .deliveryId(deliveryId)
|
|
|
+ .deliveryName(express.getName())
|
|
|
.userId(order.getUserId())
|
|
|
.templateType(TemplateListenEnum.TYPE_2.getValue())
|
|
|
.build();
|
|
@@ -912,38 +920,34 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
|
|
|
//订阅物流回调
|
|
|
String lastFourNumber = "";
|
|
|
- if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue())) {
|
|
|
- lastFourNumber = order.getUserPhone();
|
|
|
- if (lastFourNumber.length() == 11) {
|
|
|
- lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
- }
|
|
|
+ if (StringUtils.equals(express.getCode(),ShipperCodeEnum.SF.getValue())) {
|
|
|
+ lastFourNumber = PhoneUtils.getLastFourNum(order.getUserPhone());
|
|
|
}
|
|
|
- expressService.subscribeEspress(order.getOrderCode(),order.getDeliverySn(),order.getDeliveryId(),lastFourNumber);
|
|
|
+ expressService.subscribeEspress(order.getOrderCode(),express.getCode(),deliveryId,lastFourNumber);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void updateDeliveryOrder(Long id,String deliveryId,String deliverCode,String deliverName) {
|
|
|
- FsStoreOrder order= fsStoreOrderMapper.selectFsStoreOrderById(id);
|
|
|
- if(order!=null){
|
|
|
- FsExpress express=expressService.selectFsExpressByOmsCode(deliverCode);
|
|
|
- if(express!=null){
|
|
|
- order.setDeliveryName(deliverName);
|
|
|
- order.setDeliverySn(express.getCode());
|
|
|
- order.setDeliveryId(deliveryId);
|
|
|
- order.setDeliverySendTime(new Date());
|
|
|
- fsStoreOrderMapper.updateFsStoreOrder(order);
|
|
|
- orderStatusService.create(order.getId(), OrderLogEnum.DELIVERY_GOODS.getValue(),
|
|
|
- OrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
- //订阅物流回调
|
|
|
- String lastFourNumber = "";
|
|
|
- if (express.getCode().equals(ShipperCodeEnum.SF.getValue())) {
|
|
|
- lastFourNumber = order.getUserPhone();
|
|
|
- if (lastFourNumber.length() == 11) {
|
|
|
- lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
+ public void updateDeliveryOrder(Long id, String deliveryId, String deliverCode, String deliverName) {
|
|
|
+ FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderById(id);
|
|
|
+ if (order != null) {
|
|
|
+ FsExpress express = expressService.selectFsExpressByOmsCode(deliverCode);
|
|
|
+ if (express != null) {
|
|
|
+ order.setDeliveryName(deliverName);
|
|
|
+ order.setDeliverySn(express.getCode());
|
|
|
+ order.setDeliveryId(deliveryId);
|
|
|
+ order.setDeliverySendTime(new Date());
|
|
|
+ fsStoreOrderMapper.updateFsStoreOrder(order);
|
|
|
+ orderStatusService.create(order.getId(), OrderLogEnum.DELIVERY_GOODS.getValue(),
|
|
|
+ OrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
+ //订阅物流回调
|
|
|
+ String lastFourNumber = "";
|
|
|
+ if (express.getCode().equals(ShipperCodeEnum.SF.getValue())) {
|
|
|
+ if (StringUtils.equals(express.getCode(), ShipperCodeEnum.SF.getValue())) {
|
|
|
+ lastFourNumber = PhoneUtils.getLastFourNum(order.getUserPhone());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- expressService.subscribeEspress(order.getOrderCode(),express.getCode(),deliveryId,lastFourNumber);
|
|
|
+ expressService.subscribeEspress(order.getOrderCode(), express.getCode(), deliveryId, lastFourNumber);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1078,12 +1082,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
public List<FsMyStoreOrderListQueryVO> selectFsCompanyStoreOrderListVO(FsMyStoreOrderQueryParam param) {
|
|
|
List<FsMyStoreOrderListQueryVO> list=fsStoreOrderMapper.selectFsCompanyStoreOrderListVO(param);
|
|
|
for(FsMyStoreOrderListQueryVO vo:list){
|
|
|
-// List<FsStoreOrderItemVO> items=fsStoreOrderItemMapper.selectMyFsStoreOrderItemListByOrderId(vo.getId());
|
|
|
-// vo.setItems(items);
|
|
|
if(StringUtils.isNotEmpty(vo.getItemJson())){
|
|
|
JSONArray jsonArray=JSONUtil.parseArray(vo.getItemJson());
|
|
|
List<FsStoreOrderItemVO> items=JSONUtil.toList(jsonArray, FsStoreOrderItemVO.class);
|
|
|
- if(items.size()>0){
|
|
|
+ if(CollectionUtils.isNotEmpty(items)){
|
|
|
vo.setItems(items);
|
|
|
}
|
|
|
}
|
|
@@ -2080,25 +2082,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public R syncExpress(FsStoreOrderExpressEditParam param) {
|
|
|
- FsStoreOrder order = fsStoreOrderMapper.selectFsStoreOrderById(param.getOrderId());
|
|
|
- String lastFourNumber = "";
|
|
|
- if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue())) {
|
|
|
- lastFourNumber = order.getUserPhone();
|
|
|
- if (lastFourNumber.length() == 11) {
|
|
|
- lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
- }
|
|
|
- }
|
|
|
- ExpressInfoDTO dto=expressService.getExpressInfo(order.getOrderCode(),order.getDeliverySn(),order.getDeliveryId(),lastFourNumber);
|
|
|
- FsStoreOrder map=new FsStoreOrder();
|
|
|
- map.setDeliveryStatus(Integer.parseInt(dto.getState()));
|
|
|
- map.setId(order.getId());
|
|
|
- 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"))){
|
|
|
- finishOrder(order.getId());
|
|
|
- }
|
|
|
- return null;
|
|
|
+
|
|
|
+ fsStoreDeliversService.syncDeliverInfo(param.getOrderId());
|
|
|
+ fsStoreDeliversService.finishOrder(param.getOrderId());
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -2700,53 +2688,49 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
//https://api.hospital.ifeiyu100.com/app/common/expressNotify
|
|
|
String data= URLDecoder.decode(notifyDTO.getRequestData(), Charset.forName("UTF-8"));
|
|
|
//ExpressInfoDTO
|
|
|
- logger.info("快递根踪回调:"+data);
|
|
|
+ logger.info("快递跟踪回调: {}",data);
|
|
|
ExpressDataDTO expressDataDTO=JSONUtil.toBean(data,ExpressDataDTO.class);
|
|
|
- if(expressDataDTO!=null&&expressDataDTO.getData()!=null){
|
|
|
- for(ExpressInfoDTO dto:expressDataDTO.getData()){
|
|
|
- List<FsStoreOrder> orders=this.selectFsStoreOrderListByDeliveryId(dto.getLogisticCode());
|
|
|
- if(orders!=null){
|
|
|
- for(FsStoreOrder order:orders){
|
|
|
- logger.info("订单信息:"+JSONUtil.toJsonStr(order));
|
|
|
- logger.info("运单号:"+dto.getLogisticCode());
|
|
|
- if(order!=null && (order.getDeliveryStatus()==null||order.getDeliveryStatus()!=3)){
|
|
|
- if (dto.getState()!=null&&dto.getStateEx()!=null) {
|
|
|
- FsStoreOrder map = new FsStoreOrder();
|
|
|
- map.setDeliveryStatus(Integer.parseInt(dto.getState()));
|
|
|
- map.setId(order.getId());
|
|
|
- map.setDeliveryType(dto.getStateEx());
|
|
|
- this.updateFsStoreOrder(map);
|
|
|
- //如果是正常签收,更新订单状态
|
|
|
- if (dto.getState().equals("3") && (dto.getStateEx().equals("301") || dto.getStateEx().equals("302") || dto.getStateEx().equals("304") || dto.getStateEx().equals("311"))) {
|
|
|
- this.finishOrder(order.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- if (!dto.isSuccess()){
|
|
|
- logger.info("物流状态异常:{}",dto);
|
|
|
- }
|
|
|
- //如果无轨迹重新订阅
|
|
|
- if ((!dto.isSuccess()&&dto.getReason().equals("三天无轨迹"))||(!dto.isSuccess()&&dto.getReason().equals("七天内无轨迹变化"))){
|
|
|
- //订阅物流回调
|
|
|
- String lastFourNumber = "";
|
|
|
- if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue())) {
|
|
|
- lastFourNumber = order.getUserPhone();
|
|
|
- if (lastFourNumber.length() == 11) {
|
|
|
- lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
- }
|
|
|
- }
|
|
|
- logger.info("物流重新订阅:{}",order.getDeliveryId());
|
|
|
- expressService.subscribeEspress(order.getOrderCode(),order.getDeliverySn(),order.getDeliveryId(),lastFourNumber);
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
+ if(ObjectUtil.isNotNull(expressDataDTO)){
|
|
|
+ List<ExpressInfoDTO> expressInfoDTOList = expressDataDTO.getData();
|
|
|
+ List<FsStoreDelivers> delivers = new ArrayList<>();
|
|
|
+ for (ExpressInfoDTO express : expressInfoDTOList) {
|
|
|
+ FsStoreDelivers deliver = fsStoreDeliversService
|
|
|
+ .findByOrderCodeAndDeliverId(express.getOrderCode(), express.getLogisticCode());
|
|
|
+ if(ObjectUtil.isNotNull(express) && express.isSuccess()){
|
|
|
+ if(ObjectUtil.isNotNull(deliver)){
|
|
|
+ deliver.setStatus(Integer.valueOf(express.getState()));
|
|
|
+ deliver.setStateEx(Integer.valueOf(express.getStateEx()));
|
|
|
+
|
|
|
+ delivers.add(deliver);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //如果无轨迹重新订阅
|
|
|
+ if ((!express.isSuccess()&&express.getReason().equals("三天无轨迹"))||(!express.isSuccess()&&express.getReason().equals("七天内无轨迹变化"))){
|
|
|
+ FsStoreOrder fsStoreOrder = orderService.selectFsStoreOrderByOrderCode(express.getOrderCode());
|
|
|
+ String lastFourNumber = "";
|
|
|
+ if(StringUtils.equals(deliver.getDeliverSn(), ShipperCodeEnum.SF.getValue())){
|
|
|
+ lastFourNumber = PhoneUtils.getLastFourNum(fsStoreOrder.getUserPhone());
|
|
|
+ }
|
|
|
+ logger.info("物流重新订阅:{}",fsStoreOrder.getDeliveryId());
|
|
|
+ if(ObjectUtil.isNotNull(deliver)){
|
|
|
+ expressService.subscribeEspress(fsStoreOrder.getOrderCode(),deliver.getDeliverSn(),deliver.getDeliverId(),lastFourNumber);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- return ExpressResultDTO.success(sysConfig.getKdnId().trim());
|
|
|
+ // 更新物流状态
|
|
|
+ fsStoreDeliversMapper.updateBatch(delivers);
|
|
|
+ List<Long> collect = delivers.stream().map(FsStoreDelivers::getOrderId)
|
|
|
+ .filter(ObjectUtil::isNotNull)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ for (Long orderId : collect) {
|
|
|
+ fsStoreDeliversService.finishOrder(orderId);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- return ExpressResultDTO.error(sysConfig.getKdnId().trim(),"物流详情数据为null");
|
|
|
+ return ExpressResultDTO.success(sysConfig.getKdnId().trim());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|