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.conditions.query.QueryWrapper; 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.lang3.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 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 @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); } @Override public IPage queryPageList(Page page, PmsMaterialProcess query) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("pbm.create_time"); if (query != null) { //物料编码 模糊查询 if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getMaterialNumber())) { queryWrapper.like("pbm.material_number", query.getMaterialNumber()); } //物料名称 模糊查询 if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getMaterialName())) { queryWrapper.like("pbm.material_name", query.getMaterialName()); } //工序号 模糊查询 if (StringUtils.isNotBlank(query.getProcessCode())) { queryWrapper.like("pbm.process_code", query.getProcessCode()); } //订单号 模糊查询 if (StringUtils.isNotBlank(query.getOrderCode())) { queryWrapper.like("po.order_code", query.getOrderCode()); } } return this.getBaseMapper().queryPageList(page, queryWrapper); } }