Selaa lähdekoodia

获取发货时间

xgb 1 kuukausi sitten
vanhempi
commit
76442bc0d0

+ 20 - 0
fs-admin/src/main/java/com/fs/hisStore/task/MallStoreTask.java

@@ -602,4 +602,24 @@ public class MallStoreTask
         });
     }
 
+
+    /**
+     * @Description: 定时查询erp获取物流时间 每隔两小时
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/15 9:36
+     */
+    public void getErpOrderDeliverySendTime(){
+        List<FsStoreOrderScrm> orderScrms=fsStoreOrderMapper.selectForErpOrderDeliverySendTime();
+        orderScrms.forEach(order->{
+            fsStoreOrderService.getErpOrderDeliverySendTime(order.getId(),order.getExtendOrderId());
+        });
+
+
+
+
+
+    }
+
 }

+ 31 - 0
fs-company/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java

@@ -475,4 +475,35 @@ public class FsStoreOrderScrmController extends BaseController
         Integer createSalesOrderType = config.getCreateSalesOrderType();
         return R.ok().put("createSalesOrderType",createSalesOrderType);
     }
+
+
+    /**
+     * @Description: 更新发货时间
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/15 10:38
+     */
+    @GetMapping(value = "/updateDeliveryTime/{id}")
+    public R updateDeliveryTime(@PathVariable("id") Long id) {
+        FsStoreOrderScrm scrm = fsStoreOrderService.selectFsStoreOrderById(id);
+        fsStoreOrderService.getErpOrderDeliverySendTime(id,scrm.getExtendOrderId());
+        return R.ok();
+    }
+
+    /**
+     * @Description: 更新发货时间
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/15 10:38
+     */
+    @GetMapping(value = "/updateDeliveryTimeBatch")
+    public R updateDeliveryTimeBatch(String time) {
+        List<FsStoreOrderScrm> scrm = fsStoreOrderService.selectDeliveryTimeBatch(time);
+        scrm.forEach(s -> {
+            fsStoreOrderService.getErpOrderDeliverySendTime(s.getId(),s.getExtendOrderId());
+        });
+        return R.ok();
+    }
 }

+ 4 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderScrmMapper.java

@@ -1237,4 +1237,8 @@ public interface FsStoreOrderScrmMapper
     List<FsStoreOrderCountsVO> selectFsStoreOrderGroupByDeptId(Map<String, Object> map);
 
     List<FsStoreOrderCountsVO> selectFsStoreOrderGroupByUserId(Map<String, Object> map);
+
+    List<FsStoreOrderScrm> selectForErpOrderDeliverySendTime();
+
+    List<FsStoreOrderScrm> selectDeliveryTimeBatch(@Param("time") String time);
 }

+ 4 - 1
fs-service/src/main/java/com/fs/hisStore/service/IFsStoreOrderScrmService.java

@@ -12,7 +12,6 @@ import com.fs.common.core.domain.R;
 import com.fs.company.domain.CompanyUser;
 import com.fs.course.dto.FsOrderDeliveryNoteDTO;
 import com.fs.erp.domain.ErpOrder;
-import com.fs.his.domain.FsStorePayment;
 import com.fs.his.param.FsStoreOrderSalesParam;
 import com.fs.his.vo.FsStoreOrderExcelVO;
 import com.fs.hisStore.domain.FsStoreOrderItemScrm;
@@ -292,4 +291,8 @@ public interface IFsStoreOrderScrmService
     List<FsStoreOrderCountsVO> selectFsStoreOrderGroupByUserId(Map<String, Object> map);
 
     int create(Long orderId, String type, String msg);
+
+    void getErpOrderDeliverySendTime(Long id, String extendOrderId);
+
+    List<FsStoreOrderScrm> selectDeliveryTimeBatch(String time);
 }

+ 42 - 11
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -1,7 +1,6 @@
 package com.fs.hisStore.service.impl;
 
 import cn.hutool.core.date.DateTime;
-import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.hutool.core.net.URLDecoder;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.NumberUtil;
@@ -16,7 +15,6 @@ import com.fs.api.vo.OrderListVO;
 import com.fs.api.vo.ProductListVO;
 import com.fs.common.config.FSSysConfig;
 import com.fs.common.core.domain.R;
-import com.fs.common.core.domain.entity.SysDictData;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.event.TemplateBean;
 import com.fs.common.event.TemplateEvent;
@@ -34,11 +32,9 @@ import com.fs.company.service.ICompanyDeptService;
 import com.fs.company.service.ICompanyDivItemService;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
-import com.fs.core.config.WxMaConfiguration;
 import com.fs.core.config.WxPayProperties;
 import com.fs.core.utils.OrderCodeUtils;
 import com.fs.course.dto.FsOrderDeliveryNoteDTO;
-import com.fs.course.mapper.FsUserCompanyUserMapper;
 import com.fs.erp.domain.*;
 import com.fs.erp.dto.*;
 import com.fs.erp.mapper.FsErpFinishPushMapper;
@@ -80,7 +76,6 @@ import com.fs.hisStore.domain.*;
 import com.fs.hisStore.enums.*;
 import com.fs.hisStore.service.*;
 import com.fs.system.service.ISysConfigService;
-import com.fs.system.service.ISysDictTypeService;
 import com.fs.ybPay.domain.RefundResult;
 import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
 import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
@@ -108,7 +103,6 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.nio.charset.Charset;
-import java.sql.SQLException;
 import java.sql.Timestamp;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -1170,11 +1164,15 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             }
             order.setStatus(OrderInfoEnum.STATUS_2.getValue());
             order.setDeliveryId(deliveryId);
-            if(StringUtils.isEmpty(consignTime)){
-                // 后期优化
-                logger.info("发货时间为空更新为当前时间,订单:{}",orderCode);
-                order.setDeliverySendTime(new Date());
-            }else {
+//            if(StringUtils.isEmpty(consignTime)){
+//                // 后期优化
+//                logger.info("发货时间为空更新为当前时间,订单:{}",orderCode);
+//                order.setDeliverySendTime(new Date());
+//            }else {
+//                order.setDeliverySendTime(DateUtils.parseDate(consignTime));
+//            }
+            // 定时每2小时同步物流信息
+            if(StringUtils.isNotBlank(consignTime) && !consignTime.startsWith("0000")){
                 order.setDeliverySendTime(DateUtils.parseDate(consignTime));
             }
 
@@ -3848,6 +3846,39 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         return fsStoreOrderLogsMapper.insertFsStoreOrderLogs(logs);
     }
 
+    /**
+     * @Description: 获取发货时间
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/15 9:57
+     */
+    @Override
+    public void getErpOrderDeliverySendTime(Long id, String extendOrderId) {
+        ErpOrderQueryRequert param=new ErpOrderQueryRequert();
+        param.setCode(extendOrderId);
+        Map<String, Object> result=wdtOrderService.stockOutOrderQueryTrade(param);
+        List<Map<String, Object>> stockoutList=(List<Map<String, Object>>) result.get("stockout_list");
+        String consignTime=null;
+        if(stockoutList!=null&& !stockoutList.isEmpty()){
+            if(stockoutList.get(0).get("consign_time")!=null){
+                consignTime = stockoutList.get(0).get("consign_time").toString();
+                log.info("主键id{},发货时间:{}",id,consignTime);
+                if(StringUtils.isNotBlank(consignTime) && !consignTime.startsWith("0000")){
+                    FsStoreOrderScrm order=new FsStoreOrderScrm();
+                    order.setId(id);
+                    order.setDeliverySendTime(DateUtils.parseDate(consignTime));
+                    fsStoreOrderMapper.updateFsStoreOrder(order);
+                }
+            }
+        }
+    }
+
+    @Override
+    public List<FsStoreOrderScrm> selectDeliveryTimeBatch(String time) {
+        return fsStoreOrderMapper.selectDeliveryTimeBatch(time);
+    }
+
     private static final DateTimeFormatter CST_FORMATTER = DateTimeFormatter
             .ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US)
             .withZone(ZoneId.of("Asia/Shanghai"));

+ 9 - 0
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -1158,5 +1158,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         GROUP BY t.type order by t.type
     </select>
 
+    <select id="selectForErpOrderDeliverySendTime" resultType="com.fs.hisStore.domain.FsStoreOrderScrm">
+        <include refid="selectFsStoreOrderVo"/>
+        where status = 2 and delivery_send_time is null
+    </select>
+    <select id="selectDeliveryTimeBatch" resultType="com.fs.hisStore.domain.FsStoreOrderScrm">
+        <include refid="selectFsStoreOrderVo"/>
+        where delivery_send_time &lt; #{time}
+    </select>
+
 
 </mapper>