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

import com.zfire.jiasm.syncdata.common.OldForNewUploadLogic;
import com.zfire.jiasm.syncdata.constant.TaskConfigEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 以旧换新-单独表上传鉴定+附件数据   fa_to_gree_uploadnotifylist
 * 上传鉴定单 + 鉴定单条码数据
 */
@Slf4j
@Component
public class OldForNewUpload {
	@Value("${yjhxjddc}")
	private String yjhxjddc = "";
	@Value("${yjhxsctmc}")
	private String yjhxsctmc = "";
	@Value("${yjhxtmscc}")
	private String yjhxtmscc = "";


	@Autowired
	OldForNewUploadLogic oldForNewUploadLogic;


	/** 以旧换新的工单数据下载走正常工单流程
	 *
	 * 自建以旧换新工单不需要传总部
	 * 1：以旧换新鉴定单上传 会生成待入库条码上传记录数据
	 * 鉴定单同步状态已同步过不再同步，避免条码被使用的情况
	 * 图片同步失败不同步(这里做了上传图片信息)
	 * 同步完成后写upload表及更新同步状态方便查看
	 *    新增待入库条码上传记录
	 * @return
	 */
	@Scheduled(fixedDelayString = "${yjhxjdd}")
	public void tradeOldForNewCollection() {
		if (yjhxjddc.equals(TaskConfigEnum.FALSE.getCode())){
			return;
		}
		// 上传鉴定单数据 + 新增一条待入库条码上传任务记录
		oldForNewUploadLogic.collection();
	}

	/**
	 * 2：读取待入库条码上传记录表数据，生成条码信息上传任务数据
	 */
	@Scheduled(fixedDelayString = "${yjhxsctm}")
	public void stockBarcodeInfoDonwlodToUpload() {
		if (yjhxsctmc.equals(TaskConfigEnum.FALSE.getCode())){
			return;
		}

		//这里只是生成数据，不需要做是否需要上传控制
		// 根据入库条码上传任务记录表数据 生成条码信息上传表数据 同时修改任务记录表状态
		oldForNewUploadLogic.stockBarcodeInfoDonwlodToUpload();
	}

	/**
	 * 3：上传条码信息到总部（需要上传了barcodeInfo主表数据，上传的stockin和stockout才有有效）
	 */
	@Scheduled(fixedDelayString = "${yjhxtmsc}")
	public void stockBarcodeInfoUpload() {

		if (yjhxtmscc.equals(TaskConfigEnum.FALSE.getCode())){
			return;
		}

		// 上传鉴定单条码数据到总部同时更新状态
		oldForNewUploadLogic.stockBarcodeInfoUpload();
	}



}
