package com.dgtly.system.service;


import java.util.List;
import java.util.Map;

public interface HanaSalesOrderService {
    /**
     * @description: 未过信的经销商订单的要货记录id（做逻辑删除，重新要货）
     * @param: []
     * @return: void
     * @author: njs
     * @date: 2023/6/16 14:35
     */
    void updateSalesOrderBaseNoCrditStatus();

    /**
     * @description: 交货冻结取货定时任务
     *               对已冻结经销商（不在 meta_hana_not_freeze_customer 白名单中）
     *               且满足以下任一条件、尚未完全发货的要货记录执行逻辑删除（取消）：
     *               1. 未复核金额 (NO_DELIVER_AMT) != 0
     *               2. 冻结标识 (ZCMFRE) != ''
     *               3. 信用状态 (ZCMGST) != ''
     *               同时要求订单未完全发货（NO_DELIVER_AMT != 0），已完全发货的订单不处理。
     *               执行后写入操作日志（经销商编码、订单号、要货人、取消时间）。
     *               逻辑删除完成后，逐条调用 ESB 接口 ZSD_SSB_DELIV_INFO_IF 通知 SAP 取消要货，
     *               TRANSPORT 字段固定传"交货冻结"；单条 ESB 失败不影响整体流程，仅记录错误日志。
     * @return: 已取消的要货记录详情列表（含 customerCode/orderNumber/confirmBy），供调用方做企微通知
     */
    List<Map<String, Object>> cancelFreezeCustomerOrder();
}


