1
0

4 Revīzijas 023f226eb1 ... b14f44a73e

Autors SHA1 Ziņojums Datums
  ct b14f44a73e Merge remote-tracking branch 'origin/master' 4 stundas atpakaļ
  ct fbbaf8dc2d fix:套餐区分区分appId查询 4 stundas atpakaļ
  ct da93496d9a Merge remote-tracking branch 'origin/master' 6 stundas atpakaļ
  ct 0bf972b46c 金牛:待发货的订单,收到代服取消订单的通知,更改订单状态为待推送 6 stundas atpakaļ

+ 35 - 34
fs-service/src/main/java/com/fs/erp/service/impl/DfOrderServiceImpl.java

@@ -267,24 +267,11 @@ public class DfOrderServiceImpl implements IErpOrderService
             String response = client.execute(RequestUrlEnum.ORDER_DELIVERY_STATUS, map, sfAccountIndex);
             DFApiResponse dfApiResponse = JSON.parseObject(response, DFApiResponse.class);
             if ("运单不存在".equals(dfApiResponse.getMsg())){
-                //取消订单
-                FsStoreOrderSalesParam afterSalesParam = new FsStoreOrderSalesParam();
-                //修改订单状态 方便后续重新发货
-                order.setStatus(FsStoreOrderStatusEnum.STATUS_2.getValue());
-                order.setExtendOrderId("");
-                fsStoreOrderMapper.updateFsStoreOrder(order);
-                afterSalesParam.setOrderId(order.getOrderId());
-                afterSalesParam.setReasons("代服管家取消订单");
-                afterSalesParam.setOperator("代服管家");
-                fsStoreOrderService.afterSales(afterSalesParam);
-                FsStoreOrderDf df = new FsStoreOrderDf();
-                df.setOrderId(order.getOrderId());
-                df.setStatus(2);
-                df.setUpdateTime(new Date());
-                fsStoreOrderDfMapper.updateFsStoreOrderDf(df);
-                fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.REFUND_ORDER_DF.getValue(),
-                        "运单不存在,"+FsStoreOrderLogEnum.REFUND_ORDER_DF.getDesc());
-                log.info("代服管家 订单取消成功: {}", response);
+
+                //查看原来物流状态
+                cancelOrder(order);
+                log.info("代服管家 getOrderDeliveryStatus: {}", response);
+                return;
             }
             //3.处理请求结果
             if (dfApiResponse != null && "ok".equals(dfApiResponse.getCode())) {
@@ -350,22 +337,7 @@ public class DfOrderServiceImpl implements IErpOrderService
                         List<FsStoreOrder> fsStoreOrders = fsStoreOrderMapper.selectFsStoreOrderListByDeliverySn(mailNumber);
                         if (fsStoreOrders != null && !fsStoreOrders.isEmpty()) {
                             fsStoreOrders.forEach(tempOrder -> {
-                                FsStoreOrderSalesParam afterSalesParam = new FsStoreOrderSalesParam();
-                                //修改订单状态 方便后续重新发货
-                                order.setStatus(FsStoreOrderStatusEnum.STATUS_2.getValue());
-                                order.setExtendOrderId("");
-                                fsStoreOrderMapper.updateFsStoreOrder(order);
-                                afterSalesParam.setOrderId(tempOrder.getOrderId());
-                                afterSalesParam.setReasons("代服管家取消订单");
-                                afterSalesParam.setOperator("代服管家");
-                                fsStoreOrderService.afterSales(afterSalesParam);
-                                FsStoreOrderDf df = new FsStoreOrderDf();
-                                df.setOrderId(order.getOrderId());
-                                df.setStatus(2);
-                                df.setUpdateTime(new Date());
-                                fsStoreOrderDfMapper.updateFsStoreOrderDf(df);
-                                fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.REFUND_ORDER_DF.getValue(),
-                                        FsStoreOrderLogEnum.REFUND_ORDER_DF.getDesc());
+                                cancelOrder(order);
                                 log.info("代服管家 订单取消成功: {}", response);
                             });
                         }
@@ -380,6 +352,35 @@ public class DfOrderServiceImpl implements IErpOrderService
         }
     }
 
+    private void cancelOrder(FsStoreOrder order) {
+        Integer deliveryStatus = order.getDeliveryStatus();
+        if (deliveryStatus == null || deliveryStatus == 0) {
+            //没有物流信息
+            //修改订单状态 方便后续重新发货
+            order.setStatus(FsStoreOrderStatusEnum.STATUS_2.getValue());
+            order.setExtendOrderId("");
+            order.setDeliverySn("");
+            fsStoreOrderMapper.updateFsStoreOrder(order);
+            fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.UPDATE_ORDER_DF.getValue(),
+                    "运单不存在,"+FsStoreOrderLogEnum.UPDATE_ORDER_DF.getDesc());
+        } else {
+            //有物流信息->售后处理
+            //取消订单
+            FsStoreOrderSalesParam afterSalesParam = new FsStoreOrderSalesParam();
+            afterSalesParam.setOrderId(order.getOrderId());
+            afterSalesParam.setReasons("代服管家取消订单");
+            afterSalesParam.setOperator("代服管家");
+            fsStoreOrderService.afterSales(afterSalesParam);
+            fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.REFUND_ORDER_DF.getValue(),
+                    "运单不存在,"+FsStoreOrderLogEnum.REFUND_ORDER_DF.getDesc());
+        }
+        FsStoreOrderDf df = new FsStoreOrderDf();
+        df.setOrderId(order.getOrderId());
+        df.setStatus(2);
+        df.setUpdateTime(new Date());
+        fsStoreOrderDfMapper.updateFsStoreOrderDf(df);
+    }
+
     /**
      * 获取erp推送参数
      *

+ 1 - 0
fs-service/src/main/java/com/fs/his/enums/FsStoreOrderLogEnum.java

@@ -15,6 +15,7 @@ public enum FsStoreOrderLogEnum {
     REFUND_ORDER_APPLY("apply_refund","用户申请退款"),
     REFUND_ORDER_PLATFORM("REFUND_ORDER_PLATFORM","平台申请退款"),
     REFUND_ORDER_DF("refund_order_df","代服取消订单,申请退款"),
+    UPDATE_ORDER_DF("update_order_df","代服取消订单,需要重新发货"),
     TAKE_ORDER_DELIVERY("user_take_delivery","用户已收货"),
     PAY_ORDER_SUCCESS("pay_success","用户付款成功"),
     PAY_REMAIN_ORDER_SUCCESS("pay_remain_success","用户付款尾款成功"),

+ 3 - 3
fs-service/src/main/java/com/fs/his/mapper/FsPackageMapper.java

@@ -83,7 +83,7 @@ public interface FsPackageMapper
             "            <if test=\"maps.diseaseType != null \"> and disease_type = #{maps.diseaseType}</if>\n" +
             "            <if test=\"maps.isShow != null \"> and is_show = #{maps.isShow}</if>\n" +
             "            <if test=\"maps.solarTerm != null \"> and solar_term = #{maps.solarTerm}</if>\n" +
-            "            <if test=\"maps.appId != null and maps.appId != ''\"> and (FIND_IN_SET(#{maps.appId}, app_ids) > 0) or app_ids is null or app_ids = ''</if>\n" +
+            "            <if test=\"maps.appId != null and maps.appId != ''\"> and ((FIND_IN_SET(#{maps.appId}, app_ids) > 0) or app_ids is null or app_ids = '')</if>\n" +
             "        order by sort,package_id desc"+
             "</script>"})
 
@@ -126,10 +126,10 @@ public interface FsPackageMapper
             "and p.is_show = #{maps.isShow} " +
             "</if>" +
             "<if test = 'maps.appId != null and maps.appId != \"\"'> " +
-            "and (FIND_IN_SET(#{maps.appId}, app_ids) > 0) or app_ids is null or app_ids = ''" +
+            "and ((FIND_IN_SET(#{maps.appId}, app_ids) > 0) or app_ids is null or app_ids = '')" +
             "</if>" +
             "<if test = 'maps.appId == null or maps.appId == \"\"'> " +
-            "and app_ids is null or app_ids = ''" +
+            "and (app_ids is null or app_ids = '')" +
             "</if>" +
             " order by p.sort desc,package_id  "+
             "</script>"})

+ 1 - 1
fs-service/src/main/java/com/fs/his/mapper/FsStoreOrderMapper.java

@@ -1156,7 +1156,7 @@ public interface FsStoreOrderMapper
     @Update("UPDATE fs_store_order SET delivery_code = #{deliveryCode} WHERE extend_order_id = #{extendOrderId}")
     int updateFsStoreOrderByExtendOrderId(@Param("extendOrderId")String extendOrderId,@Param("deliveryCode")String deliveryCode);
 
-    @Select("select * from fs_store_order where  `status`=3 and extend_order_id is not null and delivery_sn is not null")
+    @Select("select * from fs_store_order where  `status`=3 and (extend_order_id is not null or extend_order_id != '') and (delivery_sn is not null or delivery_sn != '')")
     List<FsStoreOrder> selectShippedOrder();
 
     List<FsStoreOrderListVO> selectFsStoreOrderListVOByErpAccount(@Param("maps") FsStoreOrderParam fsStoreOrder);

+ 23 - 4
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -3415,13 +3415,32 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                 FsStoreOrder fsStoreOrder = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderNumber);
                 FsStoreOrder tempOrder = new FsStoreOrder();
                 tempOrder.setOrderId(fsStoreOrder.getOrderId());
-                tempOrder.setExtendOrderId("");
-                fsStoreOrderMapper.updateFsStoreOrder(tempOrder);
+                Integer deliveryStatus = fsStoreOrder.getDeliveryStatus();
+                if (deliveryStatus == null || deliveryStatus == 0) {
+                    //没有物流信息
+                    //修改订单状态 方便后续重新发货
+                    tempOrder.setStatus(FsStoreOrderStatusEnum.STATUS_2.getValue());
+                    tempOrder.setExtendOrderId("");
+                    tempOrder.setDeliverySn("");
+                    fsStoreOrderMapper.updateFsStoreOrder(tempOrder);
+                    fsStoreOrderLogsService.create(tempOrder.getOrderId(), FsStoreOrderLogEnum.UPDATE_ORDER_DF.getValue(),
+                            "运单不存在,"+FsStoreOrderLogEnum.UPDATE_ORDER_DF.getDesc());
+                } else {
+                    //有物流信息->售后处理
+                    //取消订单
+                    FsStoreOrderSalesParam afterSalesParam = new FsStoreOrderSalesParam();
+                    afterSalesParam.setOrderId(tempOrder.getOrderId());
+                    afterSalesParam.setReasons("代服管家取消订单");
+                    afterSalesParam.setOperator("代服管家");
+                    fsStoreOrderService.afterSales(afterSalesParam);
+                    fsStoreOrderLogsService.create(tempOrder.getOrderId(), FsStoreOrderLogEnum.REFUND_ORDER_DF.getValue(),
+                            "运单不存在,"+FsStoreOrderLogEnum.REFUND_ORDER_DF.getDesc());
+                }
                 FsStoreOrderDf df = new FsStoreOrderDf();
-                df.setOrderId(fsStoreOrder.getOrderId());
+                df.setOrderId(tempOrder.getOrderId());
                 df.setStatus(0); //回到默认
-                df.setFailMsg(failMsg); //失败消息
                 df.setUpdateTime(new Date());
+                df.setFailMsg(failMsg); //失败消息
                 fsStoreOrderDfMapper.updateFsStoreOrderDf(df);
                 //推送失败消息
                 return R.ok("接收成功").put("code", "ok");

+ 1 - 1
fs-service/src/main/resources/application-druid-jnmy-test.yml

@@ -41,7 +41,7 @@ spring:
             druid:
                 # 主库数据源
                 master:
-                    url: jdbc:mysql://120.46.174.121:2345/fs_his_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    url: jdbc:mysql://120.46.174.121:2345/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                     username: root
                     password: Ylrztek250218!3@.
                 # 从库数据源