Browse Source

发货单导出和批量微信发货模板发货逻辑优化

yjwang 1 month ago
parent
commit
0a3c8a2265

+ 1 - 63
fs-service/src/main/java/com/fs/course/dto/FsOrderDeliveryNoteDTO.java

@@ -14,72 +14,10 @@ public class FsOrderDeliveryNoteDTO {
     @Excel(name = "原始单号",width = 20,sort = 1)
     private String orderNumber;
 
-    @Excel(name = "收件人",width = 10,sort = 2)
-    private String recipient;
-
-    @Excel(name = "收件人手机",width = 20,sort = 3)
-    private String recipientPhone;
-
-    @Excel(name = "收件人电话",width = 20,sort = 4)
-    private String recipientTelephone;
-
-    //具体到某个街道和小区
-    @Excel(name = "收件人详细地址",width = 30,sort = 5)
-    private String recipientAddress;
-
-//    //省市区
-//    @Excel(name = "收货地址",width = 20,sort = 6)
-//    private String receivingAddress;
-
-    //编号和数量:662551*2
-    @Excel(name = "组合编号及数量",width = 20,sort = 7)
-    private String number;
-
-    //名称和数量:商品名称*2
-    @Excel(name = "组合名称及数量",width = 20,sort = 8)
-    private String nameAndNumber;
-
-    @Excel(name = "代收金额",width = 10,sort = 9)
-    private BigDecimal collectionAmount;
-
     @Excel(name = "物流公司",width = 10,sort = 10)
     private String logisticsCompany;
 
-    @Excel(name = "物流产品",width = 10,sort = 11)
-    private String logisticsProduct;
-
-    @Excel(name = "物流付款方式",width = 15,sort = 12)
-    private String logisticsPayMethod;
-
-    @Excel(name = "包裹数",width = 10,sort = 13)
-    private Long packageNum;
-
-    @Excel(name = "寄件人",width = 10,sort = 14)
-    private String sender;
-
-    @Excel(name = "寄件人手机",width = 20,sort = 15)
-    private String senderPhone;
-
-    @Excel(name = "寄件人电话",width = 20,sort = 16)
-    private String senderTelephone;
-
-    @Excel(name = "寄件公司",width = 10,sort = 17)
-    private String senderCompany;
-
-    //具体到某个街道和小区
-    @Excel(name = "寄件人详细地址",width = 30,sort = 18)
-    private String senderAddress;
-
-    @Excel(name = "出库仓库",width = 10,sort = 19)
-    private String outboundWarehouse;
-
-    @Excel(name = "订单付款方式",width = 10,sort = 20)
-    private String payMethod;
-
-    @Excel(name = "订单备注",width = 20,sort = 21)
-    private String orderNotes;
-
-    @Excel(name = "快递单号(必填)",width = 20,sort = 22)
+    @Excel(name = "快递单号",width = 20,sort = 22)
     private String deliveryId;
 
     //物流编码

+ 29 - 24
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -3602,11 +3602,15 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 FsOrderDeliveryNoteDTO dto = dtoList.get(i);
                 if (StringUtils.isEmpty(dto.getOrderNumber())) {
                     builder.append("数据第").append(i + 2).append("行系统订单为空!").append(System.lineSeparator());
+                }if(StringUtils.isEmpty(dto.getLogisticsCompany())){
+                    builder.append("数据第").append(i + 2).append("行物流公司为空!").append(System.lineSeparator());
+                }if(StringUtils.isEmpty(dto.getDeliveryId())){
+                    builder.append("数据第").append(i + 2).append("行快递单号为空!").append(System.lineSeparator());
                 } else {
-                    //处理订单ID信息
-                    String originalOrderNumber = dto.getOrderNumber();
-                    String processedOrderNumber = extractNumbers(originalOrderNumber);
-                    dto.setOrderNumber(processedOrderNumber);
+//                    //处理订单ID信息
+//                    String originalOrderNumber = dto.getOrderNumber();
+//                    String processedOrderNumber = extractNumbers(originalOrderNumber);
+//                    dto.setOrderNumber(processedOrderNumber);
                     orderCodeList.add(dto.getOrderNumber());
                 }
             }
@@ -3620,7 +3624,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             Map<String, List<FsStoreOrderCodeOpenIdVo>> orderDetailsMap = new HashMap<>(orderCodeOpenIdVoList.size());
 
             for (FsStoreOrderCodeOpenIdVo vo : orderCodeOpenIdVoList) {
-                orderMap.computeIfAbsent(vo.getId(), k -> {
+                orderMap.computeIfAbsent(vo.getOrderCode(), k -> {
                     OrderOpenIdTransDTO dto = new OrderOpenIdTransDTO();
                     dto.setOpenId(vo.getOpenId());
                     dto.setTransactionId(vo.getOutTransId());
@@ -3628,7 +3632,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 });
 
                 orderDetailsMap
-                        .computeIfAbsent(vo.getId(), k -> new ArrayList<>())
+                        .computeIfAbsent(vo.getOrderCode(), k -> new ArrayList<>())
                         .add(vo);
             }
             final WxMaService wxService = WxMaConfiguration.getMaService(appId);
@@ -3701,7 +3705,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 batchUpdateDeliveryNotes(successList);
             }
 
-            return R.ok(builder.toString().equals("操作成功!")?"":builder.toString());
+            return R.ok(builder.toString().equals("")?"操作成功!":builder.toString());
         } catch (Exception e) {
             log.error("导入发货单快递信息失败", e);
             return R.error("导入失败:" + e.getMessage());
@@ -3859,21 +3863,21 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         List<FsStoreOrderDeliveryNoteExportVO> noteExportVOS=fsStoreOrderMapper.getDeliveryNote(param);
 
         //根据配置处理发货人信息
-        SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.store");
-        StoreConfig fsPayConfig = JSON.parseObject(sysConfig.getConfigValue(),StoreConfig.class);
-        noteExportVOS.forEach(n->{
-            if(StringUtils.isEmpty(fsPayConfig.getRefundConsignee()) || StringUtils.isEmpty(fsPayConfig.getRefundPhoneNumber())){
-                throw new ServiceException("导出失败,请在系统配置里的商城配置页面,设置退货人信息!");
-            }
-            n.setSender("007"+fsPayConfig.getRefundConsignee()+"AC");
-            n.setSenderPhone(fsPayConfig.getRefundPhoneNumber());
-            n.setSenderCompany(fsPayConfig.getRefundPhoneNumber());
-            if(StringUtils.isEmpty(n.getOrderNotes())){
-                n.setOrderNotes(n.getSender());
-            }else {
-                n.setSender(n.getOrderNotes());
-            }
-        });
+//        SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.store");
+//        StoreConfig fsPayConfig = JSON.parseObject(sysConfig.getConfigValue(),StoreConfig.class);
+//        noteExportVOS.forEach(n->{
+//            if(StringUtils.isEmpty(fsPayConfig.getRefundConsignee()) || StringUtils.isEmpty(fsPayConfig.getRefundPhoneNumber())){
+//                throw new ServiceException("导出失败,请在系统配置里的商城配置页面,设置退货人信息!");
+//            }
+//            n.setSender("007"+fsPayConfig.getRefundConsignee()+"AC");
+//            n.setSenderPhone(fsPayConfig.getRefundPhoneNumber());
+//            n.setSenderCompany(fsPayConfig.getRefundPhoneNumber());
+//            if(StringUtils.isEmpty(n.getOrderNotes())){
+//                n.setOrderNotes(n.getSender());
+//            }else {
+//                n.setSender(n.getOrderNotes());
+//            }
+//        });
         return noteExportVOS;
     }
 
@@ -3911,8 +3915,9 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                     shippingListBean.setContact(contactBean);
                 }else {
                     //拼接
-                    JSONObject js = JSON.parseObject(detail.getJsonInfo());
-                    shippingListBean.setItemDesc(shippingListBean.getItemDesc()+"-"+js.getString("productName"));
+//                    JSONObject js = JSON.parseObject(detail.getJsonInfo());
+//                    shippingListBean.setItemDesc(shippingListBean.getItemDesc()+"-"+js.getString("productName"));
+                    break;
                 }
             }
             shippingList.add(shippingListBean);

+ 2 - 7
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderCodeOpenIdVo.java

@@ -5,15 +5,10 @@ import lombok.Data;
 import java.io.Serializable;
 @Data
 public class FsStoreOrderCodeOpenIdVo implements Serializable {
-//    /**
-//     * 订单编码
-//     * **/
-//    private String orderCode;
-
     /**
-     * 订单id
+     * 订单编码
      * **/
-    private String id;
+    private String orderCode;
 
     /**
      * 用户openId

+ 6 - 14
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -885,19 +885,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <set>
             delivery_sn = CASE
             <foreach collection="list" item="item">
-                WHEN id = #{item.orderNumber} THEN #{item.deliverySn}
+                WHEN order_code = #{item.orderNumber} THEN #{item.deliverySn}
             </foreach>
             ELSE delivery_sn
             END,
             delivery_name = CASE
             <foreach collection="list" item="item">
-                WHEN id = #{item.orderNumber} THEN #{item.logisticsCompany}
+                WHEN order_code = #{item.orderNumber} THEN #{item.logisticsCompany}
             </foreach>
             ELSE delivery_name
             END,
             delivery_id = CASE
             <foreach collection="list" item="item">
-                WHEN id = #{item.orderNumber} THEN #{item.deliveryId}
+                WHEN order_code = #{item.orderNumber} THEN #{item.deliveryId}
             </foreach>
             ELSE delivery_id
             END,
@@ -907,7 +907,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             END,
             delivery_send_time = NOW()
         </set>
-        WHERE id IN
+        WHERE order_code IN
         <foreach collection="list" item="item" open="(" separator="," close=")">
             #{item.orderNumber}
         </foreach>
@@ -922,7 +922,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectOrderCodeOpenIdInOrderCode" resultType="com.fs.hisStore.vo.FsStoreOrderCodeOpenIdVo">
         SELECT
-        os.id,
+        os.order_code,
         fu.phone,
         fu.ma_open_id openId,
         ois.json_info,
@@ -932,7 +932,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         INNER JOIN fs_user fu ON os.user_id = fu.user_id
         INNER JOIN fs_store_order_item_scrm ois ON ois.order_id = os.id
         INNER JOIN fs_store_payment_scrm sps ON os.id=sps.order_id
-                                                  WHERE os.id IN <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                                                  WHERE os.order_code IN <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
         #{item}
     </foreach>
     AND  sps.`status` = 1
@@ -970,14 +970,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         )
         SEPARATOR '+'
         ) AS nameAndNumber,
-        IF(o.pay_type = 2, o.pay_delivery, 0) AS collectionAmount,
-        IFNULL(o.delivery_name, '顺丰') AS logisticsCompany,
-        '电商标快' AS logisticsProduct,
-        '寄付月结' AS logisticsPayMethod,
-        '1' AS packageNum,
-        '北京市通州区嘉创五路3号东升联启大院快递电商库' AS senderAddress,
-        '077' AS outboundWarehouse,
-        CASE WHEN o.company_id IS NULL THEN NULL ELSE CONCAT('077',cu.user_name,'+',cu.nick_name, 'AC') END AS orderNotes,
         sps.keyword
         FROM
         fs_store_order_scrm o