package com.emato.cus.supervise.biz.acqGoodsSeat; import com.emato.cus.supervise.biz.CusData; import com.emato.cus.supervise.constant.EmtRecordTimeEnum; import com.emato.cus.supervise.domainCus.CusAcqGoodsSeat06; import com.emato.cus.supervise.domainOms.OmsCusUnitCode; import com.emato.cus.supervise.mapperOms.OmsCusUnitCodeMapper; import com.emato.cus.supervise.service.cus.CusAcqGoodsSeatService06; import com.google.common.collect.Lists; 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; import java.util.stream.Collectors; import java.util.List; /** * 库位货物数据 业务 CUS * @author Scott Chen * @version 1.0 * 2017-10-31 12:38 */ @Component public class AcqGoodsOnSeatCusData implements CusData { private static final Logger logger = LoggerFactory.getLogger(AcqGoodsOnSeatCusData.class); @Autowired private CusAcqGoodsSeatService06 cusAcqGoodsSeatService06; @Autowired private OmsCusUnitCodeMapper omsCusUnitCodeMapper; private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getCode() + "]" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getName(); @Override public int insertCus(List list) { logger.info("---------- 库位货物数据::写入本次监控数据开始 --------------------"); List cusList = (List) list; List gUnitNameList = Lists.newArrayList(); cusList.forEach(i -> gUnitNameList.add(i.getgUnit())); List codeList = omsCusUnitCodeMapper.getOmsCusUnitCodeList(gUnitNameList); Map omsCusUnitCodeMap = codeList.stream().collect(Collectors.toMap(k->k.getgUnitName(), v->v)); for (CusAcqGoodsSeat06 seat:cusList) { OmsCusUnitCode omsProductInfo = omsCusUnitCodeMap.get(seat.getgUnit()); if(omsProductInfo != null) { seat.setgUnit(omsProductInfo.getgUnitCode()); } } int result = cusAcqGoodsSeatService06.addCusAcqGoodsSeat06(cusList); logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条", result); logger.info("---------- 库位货物数据::写入本次监控数据结束 --------------------"); return result; } }