package org.jeecg.modules.pms.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang.StringUtils; import org.jeecg.modules.mes.entity.MesProductionOrder; import org.jeecg.modules.pms.entity.PmsMaterialProcess; import org.jeecg.modules.pms.mapper.PmsMaterialProcessMapper; import org.jeecg.modules.pms.service.IPmsMaterialProcessService; import org.jeecg.modules.sap.dto.OrderProcessDTO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @Description: 物料工序 * @Author: jeecg-boot * @Date: 2025-07-01 * @Version: V1.0 */ @Service public class PmsMaterialProcessServiceImpl extends ServiceImpl implements IPmsMaterialProcessService { @Override public IPage> getpmsMaterialProcessListData(Integer pageNo, Integer pageSize, HttpServletRequest req) { IPage pageData = new Page(pageNo, pageSize); Map paramMap = new HashMap(); Map parameterMap = req.getParameterMap(); if (null != parameterMap) { if (parameterMap.containsKey("materialNumber") && StringUtils.isNotBlank(parameterMap.get("materialNumber")[0])) { paramMap.put("materialNumber", parameterMap.get("materialNumber")[0]); } if (parameterMap.containsKey("materialName") && StringUtils.isNotBlank(parameterMap.get("materialName")[0])) { paramMap.put("materialName", parameterMap.get("materialName")[0].trim()); } if (parameterMap.containsKey("batchNumber") && StringUtils.isNotBlank(parameterMap.get("batchNumber")[0])) { paramMap.put("batchNumber", parameterMap.get("batchNumber")[0].trim()); } } return super.getBaseMapper().getpmsMaterialProcessListData(pageData, paramMap); } @Override @Transactional(rollbackFor = Exception.class) public boolean saveOrUpdateOrderProcess(Map orderMap, List orderProcessDTOList) { for (Map.Entry entry : orderMap.entrySet()) { MesProductionOrder order = entry.getValue(); //删除原有的数据 this.removeByOrderId(order.getId()); //重新新增工序信息 List collect = orderProcessDTOList.stream().filter(orderProcessDTO -> entry.getKey().equals(orderProcessDTO.getAUFNR())).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(collect)) { List list = collect.stream().map(orderBomDTO -> new PmsMaterialProcess(order.getId(), order.getMaterialName(), orderBomDTO)).collect(Collectors.toList()); super.saveBatch(list); } } return true; } @Override @Transactional(rollbackFor = Exception.class) public void removeByOrderId(String orderId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PmsMaterialProcess::getOrderId, orderId); super.remove(queryWrapper); } }