From 80155f95799dfd1c457e32252cbe43dfbb01c05a Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期六, 25 四月 2026 13:30:00 +0800
Subject: [PATCH] feat(production): 优化生产产品主记录的时间设置逻辑

---
 src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java |   75 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 72 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
index 47dea54..e0ab30b 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
@@ -1,19 +1,26 @@
 package com.ruoyi.production.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.production.dto.ProcessContentDto;
-import com.ruoyi.production.dto.SaveProductionPrintOrderDto;
+import com.ruoyi.basic.service.CustomerFollowUpFileService;
+import com.ruoyi.dto.SimplePersonDto;
+import com.ruoyi.production.dto.*;
+import com.ruoyi.production.mapper.ProductOrderMapper;
+import com.ruoyi.production.mapper.ProductionPrintOrderMapper;
+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.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
 * @author buhuazhen
@@ -27,6 +34,10 @@
 
     private final ProductionPrintOrderMapper productionPrintOrderMapper;
 
+    private final ProductOrderMapper productOrderMapper;
+    private final ProcessRouteServiceImpl processRouteService;
+
+    private final CustomerFollowUpFileService customerFollowUpFileService;
     @Override
     @Transactional
     public void save(SaveProductionPrintOrderDto dto) {
@@ -39,9 +50,67 @@
                 processContentDto.setId(IdUtil.simpleUUID());
             }
         });
+        MaterialInfoDto materialInfoDtoFirst = dto.getMaterialInfo().get(0);
+        // 璋冪敤宸ュ簭鏂瑰 鍑芥暟
+        List<ProcessRouteAnticlockwiseDto> processRouteAnticlockwiseDtos = processContentDtoList.stream().map(it -> {
+            ProcessRouteAnticlockwiseDto pdto = new ProcessRouteAnticlockwiseDto();
+            pdto.setProcessId(it.getProcessId());
+            pdto.setProcessRouteName(it.getProcessName());
+            pdto.setProcessRouteOpenNum(it.getOpenCount());
+            pdto.setProcessRouteNum(it.getProcessPositive());
+            pdto.setProcessRouteAddNum(it.getProcessPositive());
+//            pdto.setProcessRouteRequire(); 宸ヨ壓瑕佹眰
+            pdto.setProductModelId(Long.valueOf(materialInfoDtoFirst.getProductModelId()));
+            pdto.setUserIds(it.getReportWorkerList().stream().map(SimplePersonDto::getUserId).map(String::valueOf).collect(Collectors.joining(",")));
+            pdto.setUserNames(it.getReportWorkerList().stream().map(SimplePersonDto::getUserName).collect(Collectors.joining(",")));
+            pdto.setDeviceId(it.getDeviceId());
+            pdto.setUuid(it.getId());
+            return pdto;
+        }).collect(Collectors.toList());
 
+        processRouteService.processRouteAnticlockwise(processRouteAnticlockwiseDtos,dto.getProductModelId(),dto.getProductOrderId());
+        // 鐢熸垚澶囨敞 澶囨敞鐢卞叏閮ㄥ伐搴忓悕绉版潵 缁勬垚
+        String remark = processContentDtoList.stream().map(ProcessContentDto::getProcessName).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);
     }
+
+    @Override
+    public ProductionPrintOrderDto getByProductWordId(Long id) {
+        LambdaQueryWrapper<ProductionPrintOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ProductionPrintOrder::getProductOrderId, id);
+        queryWrapper.orderByDesc(ProductionPrintOrder::getCreateTime);
+        queryWrapper.last("limit 1");
+        ProductionPrintOrder productionPrintOrder = productionPrintOrderMapper.selectOne(queryWrapper);
+        ProductionPrintOrderDto productionPrintOrderDto = BeanUtil.copyProperties(productionPrintOrder, ProductionPrintOrderDto.class);
+
+        // 鑾峰彇闄勪欢淇℃伅
+        productionPrintOrderDto.setCuttingFileVo(customerFollowUpFileService.getSimpleFileVoById(productionPrintOrderDto.getCuttingFileId()));
+
+        return productionPrintOrderDto;
+    }
+
+    @Override
+    public List<ProductionPrintOrder> getListByOrders(List<Long> orderIds) {
+        if(CollUtil.isEmpty(orderIds)){
+            return new ArrayList<>();
+        }
+        LambdaQueryWrapper<ProductionPrintOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(ProductionPrintOrder::getProductOrderId, orderIds);
+        List<ProductionPrintOrder> productionPrintOrders = productionPrintOrderMapper.selectList(queryWrapper);
+        // 鍘婚櫎閲嶅鐨刼rderIds鐨勮褰曞彧淇濈暀id鏈�澶х殑涓�涓�
+        return productionPrintOrders.stream().collect(Collectors.collectingAndThen(
+            Collectors.toMap(
+                ProductionPrintOrder::getProductOrderId,
+                productionPrintOrder -> productionPrintOrder,
+                (existing, replacement) -> existing.getId() > replacement.getId() ? existing : replacement
+            ),
+            map -> new ArrayList<>(map.values())
+        ));
+    }
 }
 
 

--
Gitblit v1.9.3