buhuazhen
2026-04-23 9b04b0216615db7574019fc2344c871c1a15b534
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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);
    }
}