src/main/java/org/jeecg/modules/lsw/service/ILswMaterialService.java
@@ -3,11 +3,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.lsw.entity.LswMaterial; import org.jeecg.modules.lsw.entity.LswMaterialInventory; import org.jeecg.modules.mes.entity.MesProductionOrder; import org.jeecg.modules.sap.dto.OrderBomDTO; import javax.servlet.http.HttpServletRequest; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; @@ -36,4 +35,11 @@ */ LswMaterial queryByMaterialNumber(String materialNumber); /** * 批量保存物料基本信息 * @param orderMap * @param orderBomDTOList * @return */ boolean saveOrUpdateMaterial(Map<String, MesProductionOrder> orderMap, List<OrderBomDTO> orderBomDTOList); } src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialServiceImpl.java
@@ -13,16 +13,17 @@ import org.jeecg.modules.lsw.mapper.LswMaterialInventoryMapper; import org.jeecg.modules.lsw.mapper.LswMaterialMapper; import org.jeecg.modules.lsw.service.ILswMaterialService; import org.jeecg.modules.mes.entity.MesProductionOrder; import org.jeecg.modules.pms.entity.PmsProcessBillMaterials; import org.jeecg.modules.sap.dto.OrderBomDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.io.Serializable; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; import java.util.stream.Collectors; /** * @Description: 线边库物料信息 @@ -84,4 +85,41 @@ return list.get(0); } @Override @Transactional(rollbackFor = Exception.class) public boolean saveOrUpdateMaterial(Map<String, MesProductionOrder> orderMap, List<OrderBomDTO> orderBomDTOList) { List<LswMaterial> addList = new ArrayList<>(); for (Map.Entry<String, MesProductionOrder> entry : orderMap.entrySet()) { MesProductionOrder order = entry.getValue(); LswMaterial material = queryByMaterialNumber(order.getMaterialNumber()); if (material == null) { //新增物料 material = new LswMaterial(); material.setMaterialStatus(CommonConstant.STATUS_1); material.setMaterialNumber(order.getMaterialNumber()); material.setMaterialName(order.getMaterialName()); material.setMaterialUnit(order.getProductionUnit()); material.setDelFlag(CommonConstant.DEL_FLAG_0); addList.add(material); } } for (OrderBomDTO bomDTO : orderBomDTOList) { LswMaterial material = queryByMaterialNumber(bomDTO.getMATNR()); if (material == null) { //新增物料 material = new LswMaterial(); material.setMaterialStatus(CommonConstant.STATUS_1); material.setMaterialNumber(bomDTO.getMATNR()); material.setMaterialName(bomDTO.getMAKTX()); material.setMaterialUnit(bomDTO.getMEINS()); material.setDelFlag(CommonConstant.DEL_FLAG_0); addList.add(material); } } if (CollectionUtil.isEmpty(addList)) { super.saveBatch(addList); } return true; } } src/main/java/org/jeecg/modules/mes/job/ProductionOrderSyncCreationJob.java
@@ -1,6 +1,7 @@ package org.jeecg.modules.mes.job; import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.lsw.service.ILswMaterialService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.ThrowableUtil; import org.jeecg.modules.mes.entity.MesProductionOrder; @@ -87,6 +88,8 @@ private ISysQuartzLogService sysQuartzLogService; @Autowired private IQuartzJobService quartzJobService; @Autowired private ILswMaterialService lswMaterialService; @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { @@ -144,12 +147,19 @@ log.error("返回类型错误, class:{}", result == null ? null : result.getClass()); return; } //订单BOM数据处理 List<OrderBomDTO> orderBomDTOList = (List<OrderBomDTO>) result; b = processBillMaterialsService.saveOrUpdateOrderBom(orderMap, orderBomDTOList); if (!b) { log.error("保存订单BOM失败,日期:{}", LocalDateTime.now()); return; } //物料数据处理 b = lswMaterialService.saveOrUpdateMaterial(orderMap, orderBomDTOList); if (!b) { log.error("保存物料失败,日期:{}", LocalDateTime.now()); return; } //订单工序同步 Map<String, Object> orderProcessMap = orderProcessSync.syncOrderProcess(FACTORY_CODE, orderCodes); if (orderBomMap == null || !SUCCESS_CODE.equals(orderProcessMap.get("ztype"))) { src/main/java/org/jeecg/modules/mes/job/ProductionOrderSyncUpdateJob.java
@@ -1,6 +1,7 @@ package org.jeecg.modules.mes.job; import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.lsw.service.ILswMaterialService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.ThrowableUtil; import org.jeecg.modules.mes.entity.MesProductionOrder; @@ -87,6 +88,8 @@ private ISysQuartzLogService sysQuartzLogService; @Autowired private IQuartzJobService quartzJobService; @Autowired private ILswMaterialService lswMaterialService; @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { @@ -150,6 +153,12 @@ log.error("保存订单BOM失败,日期:{}", LocalDateTime.now()); return; } //物料数据处理 b = lswMaterialService.saveOrUpdateMaterial(orderMap, orderBomDTOList); if (!b) { log.error("保存物料失败,日期:{}", LocalDateTime.now()); return; } //订单工序同步 Map<String, Object> orderProcessMap = orderProcessSync.syncOrderProcess(FACTORY_CODE, orderCodes); if (orderBomMap == null || !SUCCESS_CODE.equals(orderProcessMap.get("ztype"))) {