Ver Fonte

优化存在发货单导出逻辑和微信统一发货逻辑

yjwang há 1 dia atrás
pai
commit
c08a67f1c2

+ 7 - 7
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java

@@ -56,9 +56,6 @@ public class FsStoreHealthOrderScrmController extends BaseController {
     @Autowired
     private ICompanyMoneyLogsService moneyLogsService;
 
-    @Autowired
-    private IFsStoreProductScrmService productScrmService;
-
     // 允许的文件扩展名
     private static final String[] ALLOWED_EXCEL_EXTENSIONS = {".xlsx", ".xls"};
 
@@ -312,8 +309,8 @@ public class FsStoreHealthOrderScrmController extends BaseController {
             param.setBeginTime(null);
             param.setEndTime(null);
         }
-         if(fsStoreOrderService.isEntityNull(param) || param.getProductId() == null || param.getProductId() <= 0L){
-            return AjaxResult.error("查询条件,请选择发货商品!");
+         if(fsStoreOrderService.isEntityNull(param)){
+           param = new FsStoreOrderParam();
         }
         if(!StringUtils.isEmpty(param.getCreateTimeRange())){
             param.setCreateTimeList(param.getCreateTimeRange().split("--"));
@@ -331,8 +328,11 @@ public class FsStoreHealthOrderScrmController extends BaseController {
         List<FsStoreOrderDeliveryNoteExportVO> storeOrderDeliveryNoteExportVOList=fsStoreOrderService.getDeliveryNote(param);
         ExcelUtil<FsStoreOrderDeliveryNoteExportVO> util = new ExcelUtil<>(FsStoreOrderDeliveryNoteExportVO.class);
         //通过商品ID获取关键字
-        FsStoreProductScrm productScrm = productScrmService.selectFsStoreProductById(param.getProductId());
-        String fileName="077AC"+productScrm.getKeyword()+new SimpleDateFormat("yyyyMMdd").format(new Date());
+        String firstKeyword = storeOrderDeliveryNoteExportVOList.stream()
+                .map(FsStoreOrderDeliveryNoteExportVO::getKeyword)
+                .findFirst()
+                .orElse("无订单");
+        String fileName="077AC"+firstKeyword+new SimpleDateFormat("yyyyMMdd").format(new Date());
         return util.exportExcel(storeOrderDeliveryNoteExportVOList, fileName);
     }
 

+ 7 - 6
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java

@@ -731,10 +731,8 @@ public class FsStoreOrderScrmController extends BaseController {
             param.setBeginTime(null);
             param.setEndTime(null);
         }
-        if (fsStoreOrderService.isEntityNull(param)){
-            return AjaxResult.error("请筛选数据导出");
-        }else if(param.getProductId() == null || param.getProductId() <= 0L){
-            return AjaxResult.error("查询条件,请选择发货商品!");
+        if(fsStoreOrderService.isEntityNull(param)){
+            param = new FsStoreOrderParam();
         }
         if(!StringUtils.isEmpty(param.getCreateTimeRange())){
             param.setCreateTimeList(param.getCreateTimeRange().split("--"));
@@ -752,8 +750,11 @@ public class FsStoreOrderScrmController extends BaseController {
         List<FsStoreOrderDeliveryNoteExportVO> storeOrderDeliveryNoteExportVOList=fsStoreOrderService.getDeliveryNote(param);
         ExcelUtil<FsStoreOrderDeliveryNoteExportVO> util = new ExcelUtil<>(FsStoreOrderDeliveryNoteExportVO.class);
         //通过商品ID获取关键字
-        FsStoreProductScrm productScrm = productScrmService.selectFsStoreProductById(param.getProductId());
-        String fileName="077AC"+productScrm.getKeyword()+new SimpleDateFormat("yyyyMMdd").format(new Date());
+        String firstKeyword = storeOrderDeliveryNoteExportVOList.stream()
+                .map(FsStoreOrderDeliveryNoteExportVO::getKeyword)
+                .findFirst()
+                .orElse("无订单");
+        String fileName="077AC"+firstKeyword+new SimpleDateFormat("yyyyMMdd").format(new Date());
         return util.exportExcel(storeOrderDeliveryNoteExportVOList, fileName);
     }
 

+ 22 - 10
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -3865,9 +3865,14 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             if(StringUtils.isEmpty(fsPayConfig.getRefundConsignee()) || StringUtils.isEmpty(fsPayConfig.getRefundPhoneNumber())){
                 throw new ServiceException("导出失败,请在系统配置里的商城配置页面,设置退货人信息!");
             }
-            n.setSender("007"+fsPayConfig.getRefundConsignee()+"A");
+            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;
     }
@@ -3893,17 +3898,24 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             request.setDeliveryMode(1);
             request.setLogisticsType(1);
             List<ShippingListBean> shippingList = new ArrayList<>(orderDetails.size());
+            ShippingListBean shippingListBean = null;
             for (FsStoreOrderCodeOpenIdVo detail : orderDetails) {
-                ShippingListBean shippingListBean = new ShippingListBean();
-                shippingListBean.setTrackingNo(dto.getDeliveryId());
-                shippingListBean.setExpressCompany(dto.getDeliverySn());
-                JSONObject js = JSON.parseObject(detail.getJsonInfo());
-                shippingListBean.setItemDesc(js.getString("productName"));
-                ContactBean contactBean = new ContactBean();
-                contactBean.setReceiverContact(detail.getPhone());
-                shippingListBean.setContact(contactBean);
-                shippingList.add(shippingListBean);
+                if(shippingListBean == null){
+                    shippingListBean=new ShippingListBean();
+                    shippingListBean.setTrackingNo(dto.getDeliveryId());
+                    shippingListBean.setExpressCompany(dto.getDeliverySn());
+                    JSONObject js = JSON.parseObject(detail.getJsonInfo());
+                    shippingListBean.setItemDesc(js.getString("productName"));
+                    ContactBean contactBean = new ContactBean();
+                    contactBean.setReceiverContact(detail.getPhone());
+                    shippingListBean.setContact(contactBean);
+                }else {
+                    //拼接
+                    JSONObject js = JSON.parseObject(detail.getJsonInfo());
+                    shippingListBean.setItemDesc(shippingListBean.getItemDesc()+"-"+js.getString("productName"));
+                }
             }
+            shippingList.add(shippingListBean);
             request.setShippingList(shippingList);
             request.setUploadTime(uploadTime);
             // 设置支付者信息

+ 2 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderDeliveryNoteExportVO.java

@@ -79,4 +79,6 @@ public class FsStoreOrderDeliveryNoteExportVO implements Serializable {
 
     @Excel(name = "订单备注",width = 20,sort = 21)
     private String orderNotes;
+
+    private String keyword;
 }

+ 2 - 8
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -977,7 +977,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         '1' AS packageNum,
         '北京市通州区嘉创五路3号东升联启大院快递电商库' AS senderAddress,
         '077' AS outboundWarehouse,
-        CONCAT('077', o.mark, 'A') AS orderNotes
+        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
         LEFT JOIN fs_store_order_item_scrm sois
@@ -1081,13 +1082,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="maps.isUpload != null and maps.isUpload == 1">
             AND o.certificates IS NOT NULL
         </if>
-        AND EXISTS (
-        SELECT 1
-        FROM fs_store_order_item_scrm sois2
-        LEFT JOIN fs_store_product_scrm sps2 ON sois2.product_id = sps2.product_id
-        WHERE sois2.order_id = o.id
-        AND sps2.product_id = #{maps.productId}
-        )
         ${maps.params.dataScope}
         AND o.paid = 1
         GROUP BY o.id