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<PmsMaterialProcessMapper, PmsMaterialProcess> implements IPmsMaterialProcessService {
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public boolean saveOrUpdateOrderProcess(Map<String, MesProductionOrder> orderMap, List<OrderProcessDTO> orderProcessDTOList) {
|
for (Map.Entry<String, MesProductionOrder> entry : orderMap.entrySet()) {
|
MesProductionOrder order = entry.getValue();
|
//删除原有的数据
|
this.removeByOrderId(order.getId());
|
//重新新增工序信息
|
List<OrderProcessDTO> collect = orderProcessDTOList.stream().filter(orderProcessDTO -> entry.getKey().equals(orderProcessDTO.getAUFNR())).collect(Collectors.toList());
|
if (CollectionUtil.isNotEmpty(collect)) {
|
List<PmsMaterialProcess> 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<PmsMaterialProcess> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(PmsMaterialProcess::getOrderId, orderId);
|
super.remove(queryWrapper);
|
}
|
|
@Override
|
public IPage<PmsMaterialProcess> queryPageList(Page<PmsMaterialProcess> page, PmsMaterialProcess query) {
|
QueryWrapper<PmsMaterialProcess> 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);
|
}
|
}
|