123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package com.emato.cus.supervise.biz.acqGoodsSeat;
- import com.emato.cus.supervise.biz.DataConversion;
- import com.emato.cus.supervise.biz.EmsClassConversion;
- import com.emato.cus.supervise.constant.Dict;
- 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.google.common.collect.Lists;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Component;
- import java.time.LocalDateTime;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * @author zengjunlin
- * @version 1.0
- * 2018-02-03 16:55
- */
- @Component
- public class AcqGoodsOnSeatDataConversion implements DataConversion{
- private final static Logger logger = LoggerFactory.getLogger(AcqGoodsOnSeatDataConversion.class);
- /**
- * 库位货物
- *
- * @param params
- * @return
- */
- @Override
- public List conversion(Map params) {
- logger.info("库位货物开始转换oms,wms 组装cus数据===========================");
- List<WmsAcqGoodsOnSeat> wmsList = (List<WmsAcqGoodsOnSeat>) params.get("wmsList");
- List<OmsMerchInfo> omsList = (List<OmsMerchInfo>) params.get("omsList");
- final Map<String, OmsMerchInfo> omsMerchInfoMap = omsList.stream().collect(Collectors.toMap(k -> k.getMerchSn() + "_" + k.getEmsClassType(), v -> v));
- List<OmsProductInfo> productInfoList = (List<OmsProductInfo>) params.get("productInfoList");
- final Map<String,OmsProductInfo> omsProductInfoMap = new HashMap<>();
- //final Map<String,OmsProductInfo> omsProductInfoMap = productInfoList.stream().collect(Collectors.toMap(k->k.getSkuNo(), v->v));
- for (int i = 0, len = productInfoList.size(); i < len; i++) {
- if (omsProductInfoMap.containsKey(productInfoList.get(i).getSkuNo())) {
- continue;
- } else {
- omsProductInfoMap.put(productInfoList.get(i).getSkuNo(), productInfoList.get(i));
- }
- }
- List<CusAcqGoodsSeat06> cusAcqGoodsSeat06List = Lists.newArrayList();
- for (int i = 0; i < wmsList.size(); i++) {
- try{
- WmsAcqGoodsOnSeat wmsAcqGoodsOnSeat = wmsList.get(i);
- if (wmsAcqGoodsOnSeat.getSeatNo() == null) {
- logger.debug("sku:{}, 库位为空", wmsAcqGoodsOnSeat.getSkuNo());
- continue;
- }
- // 库位向账册分类转换
- String emsClassType = EmsClassConversion.convertBySeatNo(wmsAcqGoodsOnSeat.getSeatNo());
- // 拼接商户账册分类
- String merchEmsType = wmsAcqGoodsOnSeat.getMerchSn() + "_" + emsClassType;
- if (!omsMerchInfoMap.containsKey(merchEmsType)) {
- logger.error("当前转换的商户账册分类为: {}, WMS传回的商户在OMS中无此账册分类", merchEmsType);
- continue;
- }
- OmsMerchInfo omsMerchInfo = omsMerchInfoMap.get(merchEmsType);
- String wmssku = wmsAcqGoodsOnSeat.getSkuNo();
- OmsProductInfo omsProductInfo = omsProductInfoMap.get(wmssku);
- if (null == omsProductInfo) {
- logger.error("wms库位sku:{},但在oms产品备案信息中查不到该sku", wmssku);
- continue;
- }
-
- String osku = omsProductInfo.getSkuNo();
- if (StringUtils.isBlank(osku)) {
- logger.error("当前转换的sku为: {}, 对应的产品备案数据异常", osku);
- continue;
- }
- //logger.debug("当前转换的sku为: {}", omsProductInfo.getSkuNo());
- CusAcqGoodsSeat06 cusAcqGoodsSeat06 = new CusAcqGoodsSeat06();
- cusAcqGoodsSeat06.setId(wmsAcqGoodsOnSeat.getId());
- cusAcqGoodsSeat06.setSeatNo(wmsAcqGoodsOnSeat.getSeatNo());
- cusAcqGoodsSeat06.setGoodsName(wmsAcqGoodsOnSeat.getGoodsName());
- cusAcqGoodsSeat06.setCodeTs(omsProductInfo.getCodeTs());
- cusAcqGoodsSeat06.setFormNoDec(wmsAcqGoodsOnSeat.getFormNoDec());
- cusAcqGoodsSeat06.setFormNo(wmsAcqGoodsOnSeat.getFormNo());
- cusAcqGoodsSeat06.setSkuNo(wmsAcqGoodsOnSeat.getSkuNo());
- cusAcqGoodsSeat06.setGoodsId(wmsAcqGoodsOnSeat.getGoodsId());
- cusAcqGoodsSeat06.setgUnit(wmsAcqGoodsOnSeat.getgUnit());
- cusAcqGoodsSeat06.setgQty(wmsAcqGoodsOnSeat.getgQty());
- cusAcqGoodsSeat06.setLegalQty(omsProductInfo.getLegalQty());
- cusAcqGoodsSeat06.setLegalUnit(omsProductInfo.getLegalUnit());
- cusAcqGoodsSeat06.setGoodsModel(omsProductInfo.getGoodsModel());
- cusAcqGoodsSeat06.setLocalEmsNo(omsMerchInfo.getCusEmsNo());
- // TODO: 2018/5/8 此处存在问题:如wms的商户编号数据与oms的商户编号数据不统一,则会报空指针异常
- cusAcqGoodsSeat06.setOwnerCode(omsMerchInfo.getOwnerCode());
- cusAcqGoodsSeat06.setOwnerName(omsMerchInfo.getOwnerName());
- cusAcqGoodsSeat06.setStoreCompanyName(Dict.storeCompanyName);
- cusAcqGoodsSeat06.setStoreUscCode(Dict.storeUscCode);
- cusAcqGoodsSeat06.setStoreCustomsCode(Dict.storeCustomsCode);
- if (Dict.storeCodeMap.containsKey(wmsAcqGoodsOnSeat.getStoreCode())) {
- cusAcqGoodsSeat06.setStoreCode(Dict.storeCodeMap.get(wmsAcqGoodsOnSeat.getStoreCode()));
- } else {
- cusAcqGoodsSeat06.setStoreCode(Dict.storeCodeMap.get("Others"));
- }
- cusAcqGoodsSeat06.setCreateTime(LocalDateTime.now());
- cusAcqGoodsSeat06.setCreaterSn(Dict.operater);
- cusAcqGoodsSeat06.setModerSn(Dict.operater);
- cusAcqGoodsSeat06.setModTime(LocalDateTime.now());
- cusAcqGoodsSeat06List.add(cusAcqGoodsSeat06);
- }catch (Exception e){
- logger.error("库位货物组装cus数据系统异常", e);
- }finally {
- continue;
- }
- }
- logger.info("库位货物组装转换oms,wms 组装cus数据结束===========================");
- return cusAcqGoodsSeat06List;
- }
- }
|