import cn.estsh.i3plus.platform.common.tool.MathOperation import cn.estsh.i3plus.pojo.base.bean.DdlPackBean import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository import org.slf4j.Logger import org.slf4j.LoggerFactory import org.springframework.beans.factory.annotation.Autowired import org.springframework.util.StringUtils /** * @Description : MES2PISCES-发运单 * @Reference : * @Author : gsz * @CreateDate 2024/7/14 10:59 * @Modify: * */ class MesToPiscesMesJisShipping { public static final Logger LOGGER = LoggerFactory.getLogger(MesToPiscesMesJisShipping.class) @Autowired private MesShippingOrderManagementRepository mesShippingOrderManagementRepository; def filterData(MesInterfaceDataMapper mapper, List> srcData) throws Exception { if (srcData == null || srcData.size() == 0) { return srcData } Map mesPartShippingGroupMap = new HashMap<>(); String organizeCode = mapper.getOrganizeCode(); Map> destData = new HashMap<>(); for (Map rowMap : srcData) { if (!StringUtils.isEmpty(rowMap.get("shipping_order_code"))) { MesShippingOrderManagement mesShipping = getMesShipping(organizeCode, String.valueOf(rowMap.get("shipping_order_code")), mesPartShippingGroupMap) if (!Objects.isNull(mesShipping)) { rowMap.put("HANDLE_FID", mesShipping.getFid()) } else { LOGGER.info("shipping_order_code:{}信息不存在", String.valueOf(rowMap.get("shipping_order_code"))) } } //数据汇总 String key = String.valueOf(rowMap.get("HANDLE_FID")) + String.valueOf("part_no") if (destData.containsKey(key)) { destData.get(key).put(key, MathOperation.add(Double.valueOf(destData.get(key).get("qty") + ""), Double.valueOf(rowMap.get("qty") + ""))) } else { destData.put(key, rowMap) } } return destData; } private MesShippingOrderManagement getMesShipping(String organizeCode, String shippingCode, Map mesPartShippingGroupMap) { if (Objects.isNull(mesPartShippingGroupMap) || !mesPartShippingGroupMap.containsKey(shippingCode)) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(shippingCode, "shippingCode", ddlPackBean); mesPartShippingGroupMap.put(shippingCode, mesShippingOrderManagementRepository.getByProperty(ddlPackBean)) } return mesPartShippingGroupMap.get(shippingCode); } }