package com.emato.cus.supervise.biz.acqGoodsSeat; import com.emato.cus.supervise.biz.CusWmsTask; import com.emato.cus.supervise.biz.acqInventoryInfo.AcqInventoryInfoOmsData; import com.emato.cus.supervise.constant.EmtRecordTimeEnum; import com.emato.cus.supervise.domain.WmsAcqGoodsOnSeat; import com.emato.cus.supervise.domainCus.CusAcqGoodsSeat06; import com.emato.cus.supervise.domainOms.OmsAcqInventoryInfo; import com.emato.cus.supervise.domainOms.OmsProductInfo; import com.emato.cus.supervise.mapperOms.OmsCusUnitCodeMapper; import com.emato.cus.supervise.util.GsonUtil; import com.emato.cus.supervise.util.LocalDateTimeUtils; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; /** * 库位货物数据 业务 * @author zengjunlin * @version 1.0 * 2018-02-03 16:21 */ @Component public class AcqGoodsSeatBiz implements CusWmsTask { private static final Logger logger = LoggerFactory.getLogger(AcqGoodsSeatBiz.class); @Autowired private AcqGoodsOnSeatRecordTime acqGoodsOnSeatRecordTime; @Autowired private AcqGoodsOnSeatWmsData acqGoodsOnSeatWmsData; @Autowired private AcqGoodsOnSeatCusData acqGoodsOnSeatCusData; @Autowired private AcqGoodsOnSeatDataConversion acqGoodsOnSeatDataConversion; @Autowired private AcqInventoryInfoOmsData acqInventoryInfoOmsData; private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getCode() + "]" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getName(); /** * 任务入口 */ @Override public void task() { // 获取扫描时间 String oldThisTime = acqGoodsOnSeatRecordTime.getEmtRecordTime(); if (StringUtils.isBlank(oldThisTime)) { logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!"); //下次扫描时间 acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN)); return; } // 扫描WMS 数据 List wmsList = acqGoodsOnSeatWmsData.getWmsData(oldThisTime); if (wmsList == null || wmsList.size() == 0) { logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!"); //下次扫描时间 acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime); return; } List merchSnList = Lists.newArrayList(); wmsList.forEach(i -> merchSnList.add(i.getMerchSn())); // 根据sku查询oms系统数据。 List omsList = acqInventoryInfoOmsData.getOmsData(merchSnList); if (omsList == null || omsList.isEmpty()) { logger.error("wms扫描到的数据" + GsonUtil.toJson(wmsList)); logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描OMS数据为空, 不执行写数据操作, 本次扫描提前结束!!!"); //下次扫描时间 acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime); return; } List skuList = Lists.newArrayList(); wmsList.forEach(i -> skuList.add(i.getSkuNo())); List productList = acqInventoryInfoOmsData.getOmsProductData(skuList); if (productList == null || productList.isEmpty()) { logger.error("oms扫描到的数据" + GsonUtil.toJson(productList)); logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描OMS数据为空, 不执行写数据操作, 本次扫描提前结束!!!"); //下次扫描时间 acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime); return; } Map params = Maps.newHashMap(); params.put("wmsList", wmsList); params.put("omsList", omsList); params.put("productInfoList", productList); List cusList = acqGoodsOnSeatDataConversion.conversion(params); // 写CUS 数据 int res = acqGoodsOnSeatCusData.insertCus(cusList); // 更新扫描时间 boolean bl = acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime); } }