123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- 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.*;
- 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 writeCus(List<?> list) {
- logger.info("---------- 库位货物数据::写入本次监控数据开始 --------------------");
- List<CusAcqGoodsSeat06> cusList = (List<CusAcqGoodsSeat06>) list;
- // 新增库存list
- List<CusAcqGoodsSeat06> insertList = new ArrayList<>();
- // 修改库存list
- List<CusAcqGoodsSeat06> updateList = new ArrayList<>();
- // 删除库存list
- List<CusAcqGoodsSeat06> deleteList = new ArrayList<>();
- List<String> gUnitNameList = Lists.newArrayList();
- cusList.forEach(i -> gUnitNameList.add(i.getgUnit()));
- // 查询已有库存信息表对应sku数据
- List<CusAcqGoodsSeat06> listgoodsSeat = cusAcqGoodsSeatService06.listCusAcqGoodsSeat(cusList);
- Map<String, String> exitGoodsSeat = listgoodsSeat.stream().collect(Collectors.toMap(k->k.getSkuNo()+k.getSeatNo(), v->v.getId()));
- List<OmsCusUnitCode> codeList = omsCusUnitCodeMapper.getOmsCusUnitCodeList(gUnitNameList);
- Map<String,OmsCusUnitCode> 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());
- }
- String key = seat.getSkuNo() + seat.getSeatNo();
- if (exitGoodsSeat.containsKey(key)) {
- if (seat.getgQty().intValue() != 0) {
- // 存在并且库存不为0, 则更新
- updateList.add(seat);
- } else {
- // 存在并库存为0,则删除
- seat.setId(exitGoodsSeat.get(key));
- deleteList.add(seat);
- }
- } else {
- if (seat.getgQty().intValue() != 0) {
- // 不存在并且库存不为0, 则插入
- insertList.add(seat);
- }
- }
- }
- int insertResult = 0;
- int updateResult = 0;
- int deleteResult = 0;
- if (insertList.size() > 0) {
- insertResult = cusAcqGoodsSeatService06.addCusAcqGoodsSeat06(insertList);
- }
- if (updateList.size() > 0) {
- updateResult = cusAcqGoodsSeatService06.updateCusAcqGoodsSeat06(updateList);
- }
- if (deleteList.size() > 0) {
- deleteResult = cusAcqGoodsSeatService06.deleteCusAcqGoodsSeat06(deleteList);
- }
- logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条, 更新监控数据:{}条, 删除监控数据:{}条", insertResult, updateResult, deleteResult);
- logger.info("---------- 库位货物数据::写入本次监控数据结束 --------------------");
- return insertResult + updateResult + deleteResult;
- }
- }
|