AcqGoodsSeatBiz.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package com.emato.cus.supervise.biz.acqGoodsSeat;
  2. import com.emato.cus.supervise.biz.CusWmsTask;
  3. import com.emato.cus.supervise.biz.acqInventoryInfo.AcqInventoryInfoOmsData;
  4. import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
  5. import com.emato.cus.supervise.domain.WmsAcqGoodsOnSeat;
  6. import com.emato.cus.supervise.domainOms.OmsAcqInventoryInfo;
  7. import com.emato.cus.supervise.util.GsonUtil;
  8. import com.emato.cus.supervise.util.LocalDateTimeUtils;
  9. import com.google.common.collect.Lists;
  10. import com.google.common.collect.Maps;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Component;
  16. import java.util.List;
  17. import java.util.Map;
  18. /**
  19. * 库位货物数据 业务
  20. * @author zengjunlin
  21. * @version 1.0
  22. * 2018-02-03 16:21
  23. */
  24. @Component
  25. public class AcqGoodsSeatBiz implements CusWmsTask {
  26. private static final Logger logger = LoggerFactory.getLogger(AcqGoodsSeatBiz.class);
  27. @Autowired
  28. private AcqGoodsOnSeatRecordTime acqGoodsOnSeatRecordTime;
  29. @Autowired
  30. private AcqGoodsOnSeatWmsData acqGoodsOnSeatWmsData;
  31. @Autowired
  32. private AcqGoodsOnSeatCusData acqGoodsOnSeatCusData;
  33. @Autowired
  34. private AcqGoodsOnSeatDataConversion acqGoodsOnSeatDataConversion;
  35. @Autowired
  36. private AcqInventoryInfoOmsData acqInventoryInfoOmsData;
  37. private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getCode() + "]" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getName();
  38. /**
  39. * 任务入口
  40. */
  41. @Override
  42. public void task() {
  43. // 获取扫描时间
  44. String oldThisTime = acqGoodsOnSeatRecordTime.getEmtRecordTime();
  45. if (StringUtils.isBlank(oldThisTime)) {
  46. logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!");
  47. //下次扫描时间
  48. acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
  49. LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
  50. return;
  51. }
  52. // 扫描WMS 数据
  53. List<WmsAcqGoodsOnSeat> wmsList = acqGoodsOnSeatWmsData.getWmsData(oldThisTime);
  54. if (wmsList == null || wmsList.size() == 0) {
  55. logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
  56. //下次扫描时间
  57. acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
  58. oldThisTime);
  59. return;
  60. }
  61. List<String> merchSnList = Lists.newArrayList();
  62. wmsList.forEach(i -> merchSnList.add(i.getMerchSn()));
  63. // 根据sku查询oms系统数据。
  64. List<OmsAcqInventoryInfo> omsList = acqInventoryInfoOmsData.getOmsData(merchSnList);
  65. if (omsList == null || omsList.isEmpty()) {
  66. logger.error("wms扫描到的数据" + GsonUtil.toJson(wmsList));
  67. logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描OMS数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
  68. //下次扫描时间
  69. acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
  70. oldThisTime);
  71. return;
  72. }
  73. Map params = Maps.newHashMap();
  74. params.put("wmsList", wmsList);
  75. params.put("omsList", omsList);
  76. List cusList = acqGoodsOnSeatDataConversion.conversion(params);
  77. // 写CUS 数据
  78. int res = acqGoodsOnSeatCusData.insertCus(cusList);
  79. // 更新扫描时间
  80. boolean bl = acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
  81. oldThisTime);
  82. }
  83. }