123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- package com.emato.cus.supervise.biz.acqGoodsSeat;
- import com.emato.cus.supervise.biz.CusWmsTask;
- import com.emato.cus.supervise.biz.OmsDataImpl;
- 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.OmsMerchInfo;
- import com.emato.cus.supervise.domainOms.OmsProductInfo;
- import com.emato.cus.supervise.domainOmsShop.OmsShopAcqGoodsSeat;
- 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 OmsDataImpl omsDataImpl;
- @Autowired
- private AcqGoodsOnSeatOmsShopData acqGoodsOnSeatOmsShopData;
- @Autowired
- private AcqGoodsOnSeatOmsShopDataConversion acqGoodsOnSeatOmsShopDataConversion;
- @Autowired
- private AcqGoodsOnSeatOmsShopCusData acqGoodsOnSeatOmsShopCusData;
- private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getCode() + "]" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getName()
- + ",[" + EmtRecordTimeEnum.OMS_SHOP_ACQ_GOODS_ON_SEAT.getCode() + "]" + EmtRecordTimeEnum.OMS_SHOP_ACQ_GOODS_ON_SEAT.getName();
- private static final String WMS_DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getCode() + "]" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getName();
- private static final String SHOP_DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.OMS_SHOP_ACQ_GOODS_ON_SEAT.getCode() + "]" + EmtRecordTimeEnum.OMS_SHOP_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<WmsAcqGoodsOnSeat> wmsList = acqGoodsOnSeatWmsData.getWmsData(oldThisTime);
- // 执行wms相关操作
- boolean wmsOp = true;
- if (wmsList == null || wmsList.size() == 0) {
- logger.info("--- 【" + WMS_DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作.");
- // 不执行WMS相关操作
- wmsOp = false;
- //下次扫描时间
- /*acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
- oldThisTime);
- return;*/
- }
- // req_20200430001 oms门店库存海关监管
- List<OmsShopAcqGoodsSeat> omsShopList = acqGoodsOnSeatOmsShopData.getOmsShopData(oldThisTime);
- boolean omsShopOp = true;
- if (omsShopList == null || omsShopList.size() == 0) {
- logger.info("--- 【" + SHOP_DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作.");
- omsShopOp = false;
- }
- if (!wmsOp && !omsShopOp) {
- logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 提前结束");
- //下次扫描时间
- acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
- oldThisTime);
- return;
- }
- if (wmsOp) {
- operateWms(wmsList, oldThisTime);
- }
- if (omsShopOp) {
- operateOmsShop(omsShopList, oldThisTime);
- }
- // 更新扫描时间
- boolean bl = acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
- oldThisTime);
- }
- /**
- * 写入WMS数据
- * @param wmsList
- * @param oldThisTime
- */
- private void operateWms(List<WmsAcqGoodsOnSeat> wmsList, String oldThisTime) {
- List<String> merchSnList = Lists.newArrayList();
- wmsList.forEach(i -> merchSnList.add(i.getMerchSn()));
- // 查询oms系统数据。
- List<OmsMerchInfo> omsList = omsDataImpl.getOmsMerchInfoData(merchSnList);
- if (omsList == null || omsList.isEmpty()) {
- logger.error("oms扫描到的数据" + GsonUtil.toJson(wmsList));
- logger.info("--- 【" + WMS_DATA_TYPE_INFO + "】获取到本次扫描OMS数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
- //下次扫描时间
- acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
- oldThisTime);
- return;
- }
- List<String> skuList = Lists.newArrayList();
- wmsList.forEach(i -> skuList.add(i.getSkuNo()));
- List<OmsProductInfo> productList = omsDataImpl.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.writeCus(cusList);
- }
- /**
- * 写入OMS shop
- * @param omsShopList
- * @param oldThisTim
- */
- private void operateOmsShop(List<OmsShopAcqGoodsSeat> omsShopList, String oldThisTim) {
- Map params = Maps.newHashMap();
- params.put("omsShopList",omsShopList);
- //将oms shop数据转换cus
- List<CusAcqGoodsSeat06> cusList = acqGoodsOnSeatOmsShopDataConversion.conversion(params);
- // 写CUS 数据
- int res = acqGoodsOnSeatOmsShopCusData.writeCus(cusList);
- }
- }
|