package com.ruoyi.production.service.impl;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.dto.SimplePersonDto;
|
import com.ruoyi.production.dto.ProcessContentDto;
|
import com.ruoyi.production.dto.ProcessRouteAnticlockwiseDto;
|
import com.ruoyi.production.dto.SaveProductionPrintOrderDto;
|
import com.ruoyi.production.mapper.ProductOrderMapper;
|
import com.ruoyi.production.pojo.ProductOrder;
|
import com.ruoyi.production.pojo.ProductionPrintOrder;
|
import com.ruoyi.production.service.ProductionPrintOrderService;
|
import com.ruoyi.production.mapper.ProductionPrintOrderMapper;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author buhuazhen
|
* @description 针对表【production_print_order(印刷定印单)】的数据库操作Service实现
|
* @createDate 2026-04-22 15:14:51
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class ProductionPrintOrderServiceImpl extends ServiceImpl<ProductionPrintOrderMapper, ProductionPrintOrder>
|
implements ProductionPrintOrderService{
|
|
private final ProductionPrintOrderMapper productionPrintOrderMapper;
|
|
private final ProductOrderMapper productOrderMapper;
|
private final ProcessRouteServiceImpl processRouteService;
|
@Override
|
@Transactional
|
public void save(SaveProductionPrintOrderDto dto) {
|
ProductionPrintOrder productionPrintOrder = BeanUtil.copyProperties(dto, ProductionPrintOrder.class);
|
|
List<ProcessContentDto> processContentDtoList = productionPrintOrder.getProcessContent();
|
// 给没有id的信息设置uuid
|
processContentDtoList.forEach(processContentDto -> {
|
if (StrUtil.isBlank(processContentDto.getId())) {
|
processContentDto.setId(IdUtil.simpleUUID());
|
}
|
});
|
// 调用工序方增 函数
|
List<ProcessRouteAnticlockwiseDto> processRouteAnticlockwiseDtos = processContentDtoList.stream().map(it -> {
|
ProcessRouteAnticlockwiseDto pdto = new ProcessRouteAnticlockwiseDto();
|
pdto.setProcessId(it.getProcessId());
|
pdto.setProcessRouteName(it.getProcessContent());
|
pdto.setProcessRouteOpenNum(it.getOpenCount());
|
pdto.setProcessRouteNum(it.getProcessPositive());
|
pdto.setProcessRouteAddNum(it.getProcessPositive());
|
// pdto.setProcessRouteRequire(); 工艺要求
|
pdto.setProductModelId(dto.getProductModelId());
|
pdto.setUserIds(it.getReportWorkerList().stream().map(SimplePersonDto::getUserName).collect(Collectors.joining(",")));
|
pdto.setDeviceId(it.getDeviceId());
|
return pdto;
|
}).collect(Collectors.toList());
|
|
processRouteService.processRouteAnticlockwise(processRouteAnticlockwiseDtos,dto.getProductModelId(),dto.getProductOrderId());
|
// 生成备注 备注由全部工序名称来 组成
|
String remark = processContentDtoList.stream().map(ProcessContentDto::getProcessContent).collect(Collectors.joining("、"));
|
ProductOrder productOrder = new ProductOrder();
|
productOrder.setId(dto.getProductOrderId());
|
productOrder.setRemark(remark);
|
productOrderMapper.updateById(productOrder);
|
int i = dto.getId() == null ? productionPrintOrderMapper.insert(productionPrintOrder) : productionPrintOrderMapper.updateById(productionPrintOrder);
|
}
|
}
|