package com.zfire.jiasm.syncdata.download.order;

import lombok.extern.slf4j.Slf4j;

/**
 * 格力品牌回收工单下载
 * syn_status 为内部下载同步状态
 *
 */
@Slf4j
// @Component
public class RecycleDownload {
/*    @Value("${recycledownc}")
    private String recycledownc = "";
    @Value("${recyclefkdownc}")
    private String recyclefkdownc = "";
    @Value("${recyclecjdownc}")
    private String recyclecjdownc = "";
    @Value("${recycleverifydownc}")
    private String recycleverifydownc = "";
    @Value("${recycleinc}")
    private String recycleinc = "";


    @Autowired
    RecycleAssignLogic recycleAssignLogic;
    @Autowired
    RecycleAcquisitionLogic recycleAcquisitionLogic;*/


    /** 未同步->已同步反馈明细->已同步采集数据->同步到业务表->已同步
     * 1：下载回收工单数据
     * 生成记录表数据、回收工单主表、回收工单反馈明细表、回收工单产品明细表 放到download表中(有则修改，无则插入,主键不同，只有插入)
     * 记录表中的任务号每单独一个任务号；本次拉取数据批次号相同
     * @throws Exception
     */
/*    @Scheduled(fixedDelayString = "${recycledown}")
    public void download() throws Exception {
        if (recycledownc.equals(TaskConfigEnum.FALSE.getCode())){
            return;
        }

        RecycleAssignParamBean recycleAssignParamBean = new RecycleAssignParamBean();
        // type说明： all--全量  active--获取未完工/未关闭/未作废的工单  getExtend--获取更新数据
        // 一次取100工单
        // 工单主表，一条反馈明细，多条产品明细  相同的任务号
        recycleAssignParamBean.setType("getExtend");
        recycleAssignParamBean.setPage("1");
        recycleAssignParamBean.setPageSize("100");
        recycleAssignLogic.assign(recycleAssignParamBean);
    }*/

    /**
     * 2：从总部获取工单的反馈明细数据 - 只确认刚下载的(SynStatus=greeStatSynStatus=0) 有业务处理过的回收工单不做与总部的确认动作
     *   与总部进行数据核实 因数据量大，确认动作会带回反馈明细数据需同步到反馈明细表
     *         成功时同步 记录表、反馈明细表 状态记录 SynStatus=44代表反馈明细已同步
     *         失败时 记录表、过程反馈、明细表，状态记录 SynStatus=99
     * @throws Exception
     */
/*    @Scheduled(fixedDelayString = "${recyclefkdown}")
    private void updateFkmx() throws Exception {
        if (recyclefkdownc.equals(TaskConfigEnum.FALSE.getCode())){
            return;
        }

        // 获取工单的反馈明细数据 记录表状态改为44
        // 失败时最多重复10次
        recycleAssignLogic.updateFeedback();
    }*/

    /**
     * 3：从总部获取回收工单对应的采集数据、附件数据、条码明细数据 - 只获取已成功获取反馈明细的工单 (SynStatus=44 greeStatSynStatus=0)
     *     成功 三个表与记录表状态 SynStatus=66
     *     失败 三个表与记录表状态 SynStatus=99
     * @throws Exception
     */
/*    @Scheduled(fixedDelayString = "${recyclecjdown}")
    private void updateAcquisition() {
        if (recyclecjdownc.equals(TaskConfigEnum.FALSE.getCode())){
            return;
        }

        // 下载回收工单采集表数据、附件数据、条码明细数据 记录表及三表状态为66
        // 失败时 SynStatus=99 下次也不再同步 最好加上 99 的及次数
        recycleAcquisitionLogic.updateAcquisition();
    }*/

    /**
     * 4：与总部进行确认下载完成  - 只确认成功获取采集数据的工单 (SynStatus=66 greeStatSynStatus=0)
     * 本地download表中提取 回收工单主表、过程反馈、明细表中数据
     *   与总部进行数据确认
     *         成功时 记录表、主表、回收明细表 三表改状态 gree_stat_syn_status =1
     *         失败时
     *             任务表 改状态 syn_status = 99 gree_stat_syn_status =99
     *             回收工单主表  改状态 gree_stat_syn_status =1
     *             回收明细表 改状态 gree_stat_syn_status = 99
     * @throws Exception
     */
/*    @Scheduled(fixedDelayString = "${recycleverifydown}")
    private void updateExtend() throws Exception {
        if (recycleverifydownc.equals(TaskConfigEnum.FALSE.getCode())){
            return;
        }

        // 与总部进行确认
        recycleAssignLogic.updateExtend();
    }*/

    /**
     * 5：同步到业务表
     * @throws Exception
     */
/*    @Scheduled(fixedDelayString = "${recyclein}")
    private void updateRecycleAssignDownloadEntity2Business() {
        if (recycleinc.equals(TaskConfigEnum.FALSE.getCode())){
            return;
        }

        recycleAssignLogic.processBusiness();
    }*/


}
