Browse Source

导出导入改改改.........

xw 6 days ago
parent
commit
c11bf1027c

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

@@ -504,12 +504,6 @@ public class FsStoreHealthOrderScrmController extends BaseController {
             param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--"));
         }
         param.setIsHealth("1");
-
-
-        if(param.getStatus() == null) {
-            param.setStatus(2); // 默认查询状态=2(待收货/已发货)的订单
-        }
-
         List<FsStoreOrderDeliveryNoteExportVO> storeOrderDeliveryNoteExportVOList=fsStoreOrderService.getDeliveryNote(param);
         ExcelUtil<FsStoreOrderDeliveryNoteExportVO> util = new ExcelUtil<>(FsStoreOrderDeliveryNoteExportVO.class);
         //通过商品ID获取关键字,安全处理空列表和null keyword的情况

+ 76 - 61
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -4397,13 +4397,11 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                     continue;
                 }
 
-                //处理订单ID信息
-                String originalOrderNumber = vo.getOrderNumber();
-                String processedOrderNumber = extractNumbers(originalOrderNumber);
-                dto.setOrderNumber(processedOrderNumber);
+                String orderNumber = vo.getOrderNumber();
+                dto.setOrderNumber(orderNumber);
                 dto.setDeliveryName(vo.getLogisticsCompany());
                 dto.setDeliveryId(vo.getDeliveryId());
-                orderCodeList.add(processedOrderNumber);
+                orderCodeList.add(orderNumber);
                 successList.add(dto);
 
 
@@ -4441,7 +4439,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());
@@ -4449,75 +4447,91 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 });
 
                 orderDetailsMap
-                        .computeIfAbsent(vo.getId(), k -> new ArrayList<>())
+                        .computeIfAbsent(vo.getOrderCode(), k -> new ArrayList<>())
                         .add(vo);
             }
 
-            // 自动从支付记录中获取appId
-            if (appId == null || appId.isEmpty()) {
-                // 从第一个订单的支付记录中获取appId
-                if (!orderCodeOpenIdVoList.isEmpty()) {
-                    FsStoreOrderCodeOpenIdVo firstOrder = orderCodeOpenIdVoList.get(0);
-                    // 通过订单号查询订单ID
-                    FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(firstOrder.getOrderCode());
-                    if (order != null) {
-                        // 查询订单的支付记录
-                        List<FsStorePaymentScrm> paymentList = fsStorePaymentMapper.selectFsStorePaymentByOrderId(order.getId());
-                        if (!paymentList.isEmpty() && paymentList.get(0).getAppId() != null) {
-                            appId = paymentList.get(0).getAppId();
-                            log.info("自动从订单支付记录中获取到appId: {}", appId);
-                        }
+            // 按小程序appId分组订单(从支付记录中获取)
+            Map<String, List<FsOrderDeliveryNoteDTO>> ordersByAppId = new HashMap<>();
+            for (FsOrderDeliveryNoteDTO dto : successList) {
+                String orderNumber = dto.getOrderNumber();
+                // 通过订单号查询订单
+                FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderNumber);
+                if (order != null) {
+                    // 查询订单的支付记录获取appId
+                    List<FsStorePaymentScrm> paymentList = fsStorePaymentMapper.selectFsStorePaymentByOrderId(order.getId());
+                    if (!paymentList.isEmpty() && paymentList.get(0).getAppId() != null) {
+                        String orderAppId = paymentList.get(0).getAppId();
+                        ordersByAppId.computeIfAbsent(orderAppId, k -> new ArrayList<>()).add(dto);
+                        log.debug("订单号: {} 关联小程序appId: {}", orderNumber, orderAppId);
+                    } else {
+                        log.warn("订单号: {} 无法获取appId,跳过处理", orderNumber);
+                        int rowNum = successList.indexOf(dto) + 2;
+                        result.addFailure(rowNum, orderNumber, dto.getDeliveryId(), "无法获取订单对应的小程序appId,请确保订单已支付");
                     }
+                } else {
+                    log.warn("订单号: {} 不存在,跳过处理", orderNumber);
+                    int rowNum = successList.indexOf(dto) + 2;
+                    result.addFailure(rowNum, orderNumber, dto.getDeliveryId(), "订单不存在");
                 }
+            }
 
-                // 如果还是没有获取到appId,返回错误
-                if (appId == null || appId.isEmpty()) {
-                    return R.error("无法获取订单对应的小程序appId,请确保订单已支付");
-                }
+            if (ordersByAppId.isEmpty()) {
+                return R.error("所有订单都无法获取对应的小程序appId,请确保订单已支付");
             }
 
-            final WxMaService wxService = WxMaConfiguration.getMaService(appId);
-            String uploadTime = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"))
-                    .format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
+            log.info("导入订单涉及{}个小程序,开始分组处理", ordersByAppId.size());
 
-            for (int i = 0; i < successList.size(); i++) {
-                FsOrderDeliveryNoteDTO dto = successList.get(i);
-                int rowNum = i + 2;
-                if (StringUtils.isEmpty(dto.getOrderNumber())) {
-                    continue;
-                }
+            // 按小程序分组批量上传微信发货信息
+            for (Map.Entry<String, List<FsOrderDeliveryNoteDTO>> entry : ordersByAppId.entrySet()) {
+                String currentAppId = entry.getKey();
+                List<FsOrderDeliveryNoteDTO> appOrders = entry.getValue();
 
-                // 验证快递公司
-                String deliverySn = expressDeliveryMap.get(dto.getDeliveryName());
-                if (deliverySn == null) {
-                    result.addFailure(rowNum, dto.getOrderNumber(), dto.getDeliveryId(), "物流公司名称异常");
-                    continue;
-                }
-                dto.setDeliverySn(deliverySn);
+                log.info("处理小程序appId: {},订单数: {}", currentAppId, appOrders.size());
 
-                // 检查订单是否存在
-                String orderNumber = dto.getOrderNumber();
-                OrderOpenIdTransDTO orderInfo = orderMap.get(orderNumber);
-                if (orderInfo == null) {
-                    result.addFailure(rowNum, orderNumber, dto.getDeliveryId(), "订单号不存在");
-                    continue;
-                }
-                //验证是否开启微信发货
-                if (config.getIsWeChatShipping() != null && config.getIsWeChatShipping()) {
-                    // 上传物流信息到微信
-                    List<FsStoreOrderCodeOpenIdVo> orderDetails = orderDetailsMap.get(orderNumber);
-                    WxShippingUploadResult uploadResult = uploadShippingInfoToWechat(wxService, orderInfo, orderDetails, dto, uploadTime,shipmentType);
-                    if (uploadResult.isSuccess()) {
+                final WxMaService wxService = WxMaConfiguration.getMaService(currentAppId);
+                String uploadTime = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"))
+                        .format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
+
+                for (int i = 0; i < appOrders.size(); i++) {
+                    FsOrderDeliveryNoteDTO dto = appOrders.get(i);
+                    int rowNum = successList.indexOf(dto) + 2;
+                    if (StringUtils.isEmpty(dto.getOrderNumber())) {
+                        continue;
+                    }
+
+                    // 验证快递公司
+                    String deliverySn = expressDeliveryMap.get(dto.getDeliveryName());
+                    if (deliverySn == null) {
+                        result.addFailure(rowNum, dto.getOrderNumber(), dto.getDeliveryId(), "物流公司名称异常");
+                        continue;
+                    }
+                    dto.setDeliverySn(deliverySn);
+
+                    // 检查订单是否存在
+                    String orderNumber = dto.getOrderNumber();
+                    OrderOpenIdTransDTO orderInfo = orderMap.get(orderNumber);
+                    if (orderInfo == null) {
+                        result.addFailure(rowNum, orderNumber, dto.getDeliveryId(), "订单号不存在");
+                        continue;
+                    }
+                    //验证是否开启微信发货
+                    if (config.getIsWeChatShipping() != null && config.getIsWeChatShipping()) {
+                        // 上传物流信息到微信
+                        List<FsStoreOrderCodeOpenIdVo> orderDetails = orderDetailsMap.get(orderNumber);
+                        WxShippingUploadResult uploadResult = uploadShippingInfoToWechat(wxService, orderInfo, orderDetails, dto, uploadTime,shipmentType);
+                        if (uploadResult.isSuccess()) {
+                            updateList.add(dto);
+                            result.addSuccess();
+                        } else {
+                            // 直接使用错误描述,不展示错误码
+                            String failureReason = uploadResult.getErrorDesc();
+                            result.addFailure(rowNum, orderNumber, dto.getDeliveryId(), failureReason);
+                        }
+                    } else {
                         updateList.add(dto);
                         result.addSuccess();
-                    } else {
-                        // 直接使用错误描述,不展示错误码
-                        String failureReason = uploadResult.getErrorDesc();
-                        result.addFailure(rowNum, orderNumber, dto.getDeliveryId(), failureReason);
                     }
-                } else {
-                    updateList.add(dto);
-                    result.addSuccess();
                 }
             }
 
@@ -5778,6 +5792,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         map.put("京东", "JD");
         map.put("德邦", "DBL");
         map.put("圆通", "YTO");
+        map.put("自提", "ZT");
         return map;
     }
 

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

@@ -83,5 +83,8 @@ public class FsStoreOrderDeliveryNoteExportVO implements Serializable {
     @Excel(name = "快递单号(必填)",width = 20,sort = 22)
     private String deliveryId;
 
+    @Excel(name = "小程序名称",width = 20,sort = 23)
+    private String miniAppName;
+
     private String keyword;
 }

+ 150 - 130
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -1929,133 +1929,143 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                   ) >= 3
     </select>
 
-    <select id="getDeliveryNote" resultType="com.fs.hisStore.vo.FsStoreOrderDeliveryNoteExportVO">
-        SELECT
-        CONCAT('AC', o.id) AS orderNumber,
-        o.real_name AS recipient,
-        o.user_phone AS recipientPhone,
-        o.user_address AS recipientAddress,
-        GROUP_CONCAT(
-        DISTINCT IFNULL(
-        CASE WHEN LENGTH(sps.product_name) > 0
-        THEN CONCAT(sps.product_name, '*', sois.num)
-        END, ''
-        )
-        SEPARATOR '+'
-        ) AS nameAndNumber,
-        sps.keyword
-        FROM
-        fs_store_order_scrm o
-        LEFT JOIN fs_store_order_item_scrm sois
-        ON sois.order_id = o.id
-        LEFT JOIN fs_store_product_scrm sps
-        ON sps.product_id = sois.product_id
-        LEFT JOIN fs_user u
-        ON o.user_id = u.user_id
-        LEFT JOIN company c
-        ON c.company_id = o.company_id
-        LEFT JOIN company_user cu
-        ON cu.user_id = o.company_user_id
-        LEFT JOIN (
-        SELECT DISTINCT order_id
-        FROM fs_store_payment_scrm
-        WHERE is_pay_remain != 0 AND STATUS != 0
-        ) fp
-        ON o.id = fp.order_id
-        WHERE
-        o.is_del = 0 and
-        1 = 1
-        <if test="maps.orderCode != null and maps.orderCode != ''">
-            AND o.order_code LIKE CONCAT('%', #{maps.orderCode}, '%')
-        </if>
-        <if test="maps.userId != null">
-            AND o.user_id = #{maps.userId}
-        </if>
-        <if test="maps.deliveryId != null and maps.deliveryId != ''">
-            AND o.delivery_id = #{maps.deliveryId}
-        </if>
-        <if test="maps.nickname != null and maps.nickname != ''">
-            AND u.nickname LIKE CONCAT('%', #{maps.nickname}, '%')
-        </if>
-        <if test="maps.realName != null and maps.realName != ''">
-            AND o.real_name LIKE CONCAT('%', #{maps.realName}, '%')
-        </if>
-        <if test="maps.phone != null and maps.phone != ''">
-            AND u.phone LIKE CONCAT('%', #{maps.phone}, '%')
-        </if>
-        <if test="maps.userPhone != null and maps.userPhone != ''">
-            AND o.user_phone LIKE CONCAT('%', #{maps.userPhone}, '%')
-        </if>
-        <if test="maps.status == null">
-            AND o.status = 1
-        </if>
-        <if test="maps.status != null">
-            AND o.status = #{maps.status}
-        </if>
-        <if test="maps.deliveryStatus != null">
-            AND o.delivery_status = #{maps.deliveryStatus}
-        </if>
-        <if test="maps.deliveryPayStatus != null">
-            AND o.delivery_pay_status = #{maps.deliveryPayStatus}
-        </if>
-        <if test="maps.companyId != null">
-            AND o.company_id = #{maps.companyId}
-        </if>
-        <if test="maps.isHealth != null and maps.isHealth != ''">
-            AND o.company_id IS NULL
-        </if>
-        <if test="maps.notHealth != null and maps.notHealth != ''">
-            AND o.company_id IS NOT NULL
-        </if>
-        <if test="maps.companyUserId != null">
-            AND o.company_user_id = #{maps.companyUserId}
-        </if>
-        <if test="maps.companyUserNickName != null and maps.companyUserNickName != ''">
-            AND cu.nick_name LIKE CONCAT('%', #{maps.companyUserNickName}, '%')
-        </if>
-        <if test="maps.orderType != null">
-            AND o.order_type = #{maps.orderType}
-        </if>
-        <if test="maps.payType != null">
-            AND o.pay_type = #{maps.payType}
-        </if>
-        <if test="maps.createTimeList != null">
-            AND o.create_time >= STR_TO_DATE(#{maps.createTimeList[0]}, '%Y%m%d')
-            AND o.create_time &lt; DATE_ADD(STR_TO_DATE(#{maps.createTimeList[1]}, '%Y%m%d'), INTERVAL 1 DAY)
-        </if>
-        <if test="maps.payTimeList != null">
-            AND o.pay_time >= STR_TO_DATE(#{maps.payTimeList[0]}, '%Y%m%d')
-            AND o.pay_time &lt; DATE_ADD(STR_TO_DATE(#{maps.payTimeList[1]}, '%Y%m%d'), INTERVAL 1 DAY)
-        </if>
-        <if test="maps.deliverySendTimeList != null">
-            AND o.delivery_send_time >= STR_TO_DATE(#{maps.deliverySendTimeList[0]}, '%Y%m%d')
-            AND o.delivery_send_time &lt; DATE_ADD(STR_TO_DATE(#{maps.deliverySendTimeList[1]}, '%Y%m%d'), INTERVAL 1 DAY)
-        </if>
-        <if test="maps.deliveryImportTimeList != null">
-            AND o.delivery_import_time >= STR_TO_DATE(#{maps.deliveryImportTimeList[0]}, '%Y%m%d')
-            AND o.delivery_import_time &lt; DATE_ADD(STR_TO_DATE(#{maps.deliveryImportTimeList[1]}, '%Y%m%d'), INTERVAL 1 DAY)
-        </if>
-        <if test="maps.deptId != null">
-            AND (o.dept_id = #{maps.deptId}
-            OR o.dept_id IN (SELECT t.dept_id FROM company_dept t WHERE FIND_IN_SET(#{maps.deptId}, t.ancestors)))
-        </if>
-        <if test="maps.isUpload != null and maps.isUpload == 0">
-            AND o.certificates IS NULL
-        </if>
-        <if test="maps.scheduleId != null">
-            AND o.schedule_id = #{maps.scheduleId}
-        </if>
-        <if test="maps.isUpload != null and maps.isUpload == 1">
-            AND o.certificates IS NOT NULL
-        </if>
-        <if test="maps.appId != null and maps.appId != ''">
-            AND u.app_id LIKE CONCAT('%', #{maps.appId}, '%')
-        </if>
-        ${maps.params.dataScope}
-        AND o.paid = 1
-        GROUP BY o.id
-        LIMIT 10000;
-    </select>
+<!--    <select id="getDeliveryNote1" resultType="com.fs.hisStore.vo.FsStoreOrderDeliveryNoteExportVO">-->
+<!--        SELECT-->
+<!--        o.order_code AS orderNumber,-->
+<!--        o.real_name AS recipient,-->
+<!--        o.user_phone AS recipientPhone,-->
+<!--        o.user_address AS recipientAddress,-->
+<!--        GROUP_CONCAT(-->
+<!--        DISTINCT IFNULL(-->
+<!--        CASE WHEN LENGTH(sps.product_name) > 0-->
+<!--        THEN CONCAT(sps.product_name, '*', sois.num)-->
+<!--        END, ''-->
+<!--        )-->
+<!--        SEPARATOR '+'-->
+<!--        ) AS nameAndNumber,-->
+<!--        sps.keyword,-->
+<!--        fcpsc.name AS miniAppName-->
+<!--        FROM-->
+<!--        fs_store_order_scrm o-->
+<!--        LEFT JOIN fs_store_order_item_scrm sois-->
+<!--        ON sois.order_id = o.id-->
+<!--        LEFT JOIN fs_store_product_scrm sps-->
+<!--        ON sps.product_id = sois.product_id-->
+<!--        LEFT JOIN fs_user u-->
+<!--        ON o.user_id = u.user_id-->
+<!--        LEFT JOIN company c-->
+<!--        ON c.company_id = o.company_id-->
+<!--        LEFT JOIN company_user cu-->
+<!--        ON cu.user_id = o.company_user_id-->
+<!--        LEFT JOIN (-->
+<!--        SELECT DISTINCT order_id-->
+<!--        FROM fs_store_payment_scrm-->
+<!--        WHERE is_pay_remain != 0 AND STATUS != 0-->
+<!--        ) fp-->
+<!--        ON o.id = fp.order_id-->
+<!--        LEFT JOIN (-->
+<!--        SELECT order_id, app_id-->
+<!--        FROM fs_store_payment_scrm-->
+<!--        WHERE STATUS = 1 AND app_id IS NOT NULL-->
+<!--        GROUP BY order_id-->
+<!--        ) fsp-->
+<!--        ON o.id = fsp.order_id-->
+<!--        LEFT JOIN fs_course_play_source_config fcpsc-->
+<!--        ON fsp.app_id = fcpsc.appid AND fcpsc.is_del = 0-->
+<!--        WHERE-->
+<!--        o.is_del = 0 and-->
+<!--        1 = 1-->
+<!--        <if test="maps.orderCode != null and maps.orderCode != ''">-->
+<!--            AND o.order_code LIKE CONCAT('%', #{maps.orderCode}, '%')-->
+<!--        </if>-->
+<!--        <if test="maps.userId != null">-->
+<!--            AND o.user_id = #{maps.userId}-->
+<!--        </if>-->
+<!--        <if test="maps.deliveryId != null and maps.deliveryId != ''">-->
+<!--            AND o.delivery_id = #{maps.deliveryId}-->
+<!--        </if>-->
+<!--        <if test="maps.nickname != null and maps.nickname != ''">-->
+<!--            AND u.nickname LIKE CONCAT('%', #{maps.nickname}, '%')-->
+<!--        </if>-->
+<!--        <if test="maps.realName != null and maps.realName != ''">-->
+<!--            AND o.real_name LIKE CONCAT('%', #{maps.realName}, '%')-->
+<!--        </if>-->
+<!--        <if test="maps.phone != null and maps.phone != ''">-->
+<!--            AND u.phone LIKE CONCAT('%', #{maps.phone}, '%')-->
+<!--        </if>-->
+<!--        <if test="maps.userPhone != null and maps.userPhone != ''">-->
+<!--            AND o.user_phone LIKE CONCAT('%', #{maps.userPhone}, '%')-->
+<!--        </if>-->
+<!--        <if test="maps.status == null">-->
+<!--            AND o.status = 1-->
+<!--        </if>-->
+<!--        <if test="maps.status != null">-->
+<!--            AND o.status = #{maps.status}-->
+<!--        </if>-->
+<!--        <if test="maps.deliveryStatus != null">-->
+<!--            AND o.delivery_status = #{maps.deliveryStatus}-->
+<!--        </if>-->
+<!--        <if test="maps.deliveryPayStatus != null">-->
+<!--            AND o.delivery_pay_status = #{maps.deliveryPayStatus}-->
+<!--        </if>-->
+<!--        <if test="maps.companyId != null">-->
+<!--            AND o.company_id = #{maps.companyId}-->
+<!--        </if>-->
+<!--        <if test="maps.isHealth != null and maps.isHealth != ''">-->
+<!--            AND o.company_id IS NULL-->
+<!--        </if>-->
+<!--        <if test="maps.notHealth != null and maps.notHealth != ''">-->
+<!--            AND o.company_id IS NOT NULL-->
+<!--        </if>-->
+<!--        <if test="maps.companyUserId != null">-->
+<!--            AND o.company_user_id = #{maps.companyUserId}-->
+<!--        </if>-->
+<!--        <if test="maps.companyUserNickName != null and maps.companyUserNickName != ''">-->
+<!--            AND cu.nick_name LIKE CONCAT('%', #{maps.companyUserNickName}, '%')-->
+<!--        </if>-->
+<!--        <if test="maps.orderType != null">-->
+<!--            AND o.order_type = #{maps.orderType}-->
+<!--        </if>-->
+<!--        <if test="maps.payType != null">-->
+<!--            AND o.pay_type = #{maps.payType}-->
+<!--        </if>-->
+<!--        <if test="maps.createTimeList != null">-->
+<!--            AND o.create_time >= STR_TO_DATE(#{maps.createTimeList[0]}, '%Y%m%d')-->
+<!--            AND o.create_time &lt; DATE_ADD(STR_TO_DATE(#{maps.createTimeList[1]}, '%Y%m%d'), INTERVAL 1 DAY)-->
+<!--        </if>-->
+<!--        <if test="maps.payTimeList != null">-->
+<!--            AND o.pay_time >= STR_TO_DATE(#{maps.payTimeList[0]}, '%Y%m%d')-->
+<!--            AND o.pay_time &lt; DATE_ADD(STR_TO_DATE(#{maps.payTimeList[1]}, '%Y%m%d'), INTERVAL 1 DAY)-->
+<!--        </if>-->
+<!--        <if test="maps.deliverySendTimeList != null">-->
+<!--            AND o.delivery_send_time >= STR_TO_DATE(#{maps.deliverySendTimeList[0]}, '%Y%m%d')-->
+<!--            AND o.delivery_send_time &lt; DATE_ADD(STR_TO_DATE(#{maps.deliverySendTimeList[1]}, '%Y%m%d'), INTERVAL 1 DAY)-->
+<!--        </if>-->
+<!--        <if test="maps.deliveryImportTimeList != null">-->
+<!--            AND o.delivery_import_time >= STR_TO_DATE(#{maps.deliveryImportTimeList[0]}, '%Y%m%d')-->
+<!--            AND o.delivery_import_time &lt; DATE_ADD(STR_TO_DATE(#{maps.deliveryImportTimeList[1]}, '%Y%m%d'), INTERVAL 1 DAY)-->
+<!--        </if>-->
+<!--        <if test="maps.deptId != null">-->
+<!--            AND (o.dept_id = #{maps.deptId}-->
+<!--            OR o.dept_id IN (SELECT t.dept_id FROM company_dept t WHERE FIND_IN_SET(#{maps.deptId}, t.ancestors)))-->
+<!--        </if>-->
+<!--        <if test="maps.isUpload != null and maps.isUpload == 0">-->
+<!--            AND o.certificates IS NULL-->
+<!--        </if>-->
+<!--        <if test="maps.scheduleId != null">-->
+<!--            AND o.schedule_id = #{maps.scheduleId}-->
+<!--        </if>-->
+<!--        <if test="maps.isUpload != null and maps.isUpload == 1">-->
+<!--            AND o.certificates IS NOT NULL-->
+<!--        </if>-->
+<!--        <if test="maps.appId != null and maps.appId != ''">-->
+<!--            AND u.app_id LIKE CONCAT('%', #{maps.appId}, '%')-->
+<!--        </if>-->
+<!--        ${maps.params.dataScope}-->
+<!--        AND o.paid = 1-->
+<!--        GROUP BY o.id-->
+<!--        LIMIT 10000;-->
+<!--    </select>-->
     <select id="selectUserPurchasedCount" resultType="java.lang.Integer">
         SELECT IFNULL(SUM(oi.num), 0)
         FROM fs_store_order_item_scrm oi
@@ -2111,7 +2121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="getDeliveryNote" resultType="com.fs.hisStore.vo.FsStoreOrderDeliveryNoteExportVO">
         SELECT
-        CONCAT('AC', o.id) AS orderNumber,
+        o.order_code AS orderNumber,
         o.real_name AS recipient,
         o.user_phone AS recipientPhone,
         o.user_address AS recipientAddress,
@@ -2123,7 +2133,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         )
         SEPARATOR '+'
         ) AS nameAndNumber,
-        sps.keyword
+        sps.keyword,
+        fcpsc.name AS miniAppName
         FROM
         fs_store_order_scrm o
         LEFT JOIN fs_store_order_item_scrm sois
@@ -2142,6 +2153,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE is_pay_remain != 0 AND STATUS != 0
         ) fp
         ON o.id = fp.order_id
+        LEFT JOIN (
+        SELECT order_id, app_id
+        FROM fs_store_payment_scrm
+        WHERE STATUS = 1 AND app_id IS NOT NULL
+        GROUP BY order_id
+        ) fsp
+        ON o.id = fsp.order_id
+        LEFT JOIN fs_course_play_source_config fcpsc
+        ON fsp.app_id = fcpsc.appid AND fcpsc.is_del = 0
         WHERE
         o.is_del = 0 and
         1 = 1
@@ -2229,7 +2249,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND o.certificates IS NOT NULL
         </if>
         <if test="maps.appId != null and maps.appId != ''">
-            AND u.app_id LIKE CONCAT('%', #{maps.appId}, '%')
+            AND fsp.app_id = #{maps.appId}
         </if>
         ${maps.params.dataScope}
         AND o.paid = 1