Parcourir la source

京东采购单v2版本

1018653686@qq.com il y a 1 an
Parent
commit
7b2df7af95

+ 4 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdOrder.java

@@ -145,4 +145,8 @@ public class JdOrder extends BasePo {
     private Date bookTime;
     //----------------------------京东字段结束------------------------------------
 
+    /**是否有异常**/
+    private String hasEx;
+
+    private String remark;
 }

+ 15 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdOrderDetails.java

@@ -7,6 +7,7 @@ import lombok.Setter;
 
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * <p>
@@ -81,5 +82,18 @@ public class JdOrderDetails extends BasePo {
     private String storeName;
     private String wareProperty;//目前是json考虑新表
     //----------------------京东订单明细字段结束--------------------------------------
-
+    /**是否有异常**/
+    private String hasEx;
+    /**异常描述**/
+    private String exDesc;
+    /**处理状态**/
+    private String handleStatus;
+    /**异常处理**/
+    private String exHandle;
+    /**异常处理备注**/
+    private String handleRemark;
+    /**异常处理人**/
+    private Long handleUser;
+    /**异常处理时间**/
+    private Date handleTime;
 }

+ 3 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/constants/JdParamConstant.java

@@ -4,4 +4,7 @@ public class JdParamConstant {
     public static final String appKey = "ECCD5CE82A501C7E0D8BB41C030C447D";
     public static final String appSecret = "5b55c3f3eb874b0d8746ff28e7f91f64";
     public static String SERVER_URL = "http://api.jd.com/routerjson";
+
+    /**京东订单状态-已完成**/
+    public static final String JD_ORDER_STATE_FINISH = "3";
 }

+ 16 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/constants/RunParamConstant.java

@@ -9,7 +9,7 @@ import cn.hutool.extra.spring.SpringUtil;
 public class RunParamConstant {
     public static final String DOMAIN = "http://www.victoriatourist.ltd/prod-api";
     public static final String redirect_uri = DOMAIN + "/open/jd/callback";
-    public static final String tenantId = "prod".equals(SpringUtil.getActiveProfile()) ? "wdly" : "wdlytest";
+    public static final String tenantId = "wdly";
 
     public static final String ACCESS_TOKEN = "access_token";
     public static final String REFRESH_TOKEN = "refresh_token";
@@ -23,4 +23,19 @@ public class RunParamConstant {
     public static final String JD_GET_ACCESS_TOKEN_URL = "https://open-oauth.jd.com/oauth2/access_token?app_key=%s&app_secret=%s&grant_type=authorization_code&code=%s";
     /**登录获取code地址**/
     public static final String JD_LOGIN_URL = "https://open-oauth.jd.com/oauth2/to_login?app_key=%s&response_type=code&redirect_uri=%s&state=%s&scope=snsapi_base";
+
+
+    /**异常描述-少货**/
+    public static final String SHORTAGE = "2";
+    /**异常描述-多货**/
+    public static final String EXCESS = "1";
+
+    /**是否有异常-有异常**/
+    public static final String EXCEPTION = "1";
+
+
+    /**异常处理状态-未处理**/
+    public static final String EXCEPTION_STATE_UNTREATED = "1";
+    /**异常处理状态-已处理**/
+    public static final String EXCEPTION_STATE_TREATED = "2";
 }

+ 24 - 3
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdApiServiceImpl.java

@@ -7,7 +7,6 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -30,7 +29,6 @@ import com.fjhx.victoriatourist.service.jd.constants.InitDictConstant;
 import com.fjhx.victoriatourist.service.jd.constants.JdParamConstant;
 import com.fjhx.victoriatourist.service.jd.constants.RunParamConstant;
 import com.fjhx.victoriatourist.service.jd.factory.JdClientFactory;
-import com.jd.open.api.sdk.DefaultJdClient;
 import com.jd.open.api.sdk.JdClient;
 import com.jd.open.api.sdk.domain.supplier.PoCommonForJosWebService.response.getcomponentlist.Component;
 import com.jd.open.api.sdk.domain.supplier.PoCommonForJosWebService.response.getwaredeliverdistinctlist.WarehouseDto;
@@ -59,7 +57,6 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
@@ -352,6 +349,30 @@ public class JdApiServiceImpl implements JdApiService {
                 for (JdOrder jdOrder : jdOrderList) {
                     Long id = collect.get(jdOrder.getOrderId()).getId();
                     jdOrder.setId(id);
+                    //如果京东采购单状态 = 已完成  &  明细数据中存在 实收 != 回告,则给京东采购单打上【异常】标记
+                    //如果实收>回告,则:给对应的明细打上【多货】标记;如果实收<回告,则:给对应的明细打上【少货】标记
+                    if(JdParamConstant.JD_ORDER_STATE_FINISH.equals(jdOrder.getState())){
+                        List<JdOrderDetails> jdOrderDetailsList = jdOrderDetailsService.lambdaQuery().eq(JdOrderDetails::getJdOrderId, jdOrder.getOrderId()).list();
+                        boolean flag = false;
+                        for (JdOrderDetails jdOrderDetails : jdOrderDetailsList) {
+                            String exDesc = "";
+                            if(ObjectUtil.isNotNull(jdOrderDetails.getActualNum()) && ObjectUtil.isNotNull(jdOrderDetails.getConfirmNum()) && jdOrderDetails.getActualNum().compareTo(jdOrderDetails.getConfirmNum()) != 0){
+                                flag = true;
+                                if (jdOrderDetails.getActualNum().compareTo(jdOrderDetails.getConfirmNum()) > 0){
+                                    exDesc = RunParamConstant.EXCESS;
+                                }else {
+                                    exDesc = RunParamConstant.SHORTAGE;
+                                }
+                                jdOrderDetails.setExDesc(exDesc);
+                                jdOrderDetails.setExHandle(RunParamConstant.EXCEPTION);
+                                jdOrderDetails.setHandleStatus(RunParamConstant.EXCEPTION_STATE_UNTREATED);
+                                jdOrderDetailsService.updateById(jdOrderDetails);
+                            }
+                        }
+                        if(flag){
+                            jdOrder.setHasEx(RunParamConstant.EXCEPTION);
+                        }
+                    }
                     jdOrderService.saveOrUpdate(jdOrder);
                 }
                 pageIndex++;