From 2ad27cc54d8fce92cc3f8a2588e25a1517f57dfd Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期五, 24 四月 2026 10:00:38 +0800
Subject: [PATCH] feat(production): 添加生产打印订单相关功能和客户跟进文件查询接口

---
 src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java               |    2 +
 src/main/java/com/ruoyi/production/service/ProductionPrintOrderService.java          |    8 +++
 src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java      |   13 ++++++
 src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java |   25 +++++++++++-
 src/main/java/com/ruoyi/production/controller/ProductionPrintOrderController.java    |   15 +++++--
 src/main/java/com/ruoyi/production/pojo/ProductionPrintOrder.java                    |   12 ++++++
 src/main/java/com/ruoyi/production/dto/ProductionPrintOrderDto.java                  |    3 +
 src/main/java/com/ruoyi/production/dto/ProcessContentDto.java                        |    2 
 8 files changed, 70 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java b/src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java
index 968ddba..dba9189 100644
--- a/src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java
+++ b/src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java
@@ -35,4 +35,6 @@
            @NotNull BiConsumer<T, List<SimpleFileVo>> setAttachmentList
     );
 
+
+    SimpleFileVo getSimpleFileVoById(@Nullable Long id);
 }
diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java
index 628dcb4..aff3da3 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.ruoyi.basic.mapper.CustomerFollowUpFileMapper;
+import com.ruoyi.basic.pojo.CustomerFollowUp;
 import com.ruoyi.basic.pojo.CustomerFollowUpFile;
 import com.ruoyi.basic.service.CustomerFollowUpFileService;
 import com.ruoyi.basic.service.CustomerFollowUpService;
@@ -74,4 +75,16 @@
             }
         });
     }
+
+    @Override
+    public SimpleFileVo getSimpleFileVoById(Long id) {
+        if(id == null){
+            return new SimpleFileVo();
+        }
+        List<CustomerFollowUpFile> followUpFilesByIds = customerFollowUpService.getFollowUpFilesByIds(Lists.newArrayList(id));
+        if(CollUtil.isEmpty(followUpFilesByIds)){
+            return new SimpleFileVo();
+        }
+        return SimpleFileVo.convert(followUpFilesByIds.get(0));
+    }
 }
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionPrintOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductionPrintOrderController.java
index 973f9de..2e76b67 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionPrintOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionPrintOrderController.java
@@ -1,14 +1,12 @@
 package com.ruoyi.production.controller;
 
+import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.production.dto.SaveProductionPrintOrderDto;
 import com.ruoyi.production.pojo.ProductionPrintOrder;
 import com.ruoyi.production.service.ProductionPrintOrderService;
 import io.swagger.annotations.Api;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author buhuazhen
@@ -24,8 +22,15 @@
     private final ProductionPrintOrderService productionPrintOrderService;
 
     @PostMapping("/save")
-    public void save(@RequestBody SaveProductionPrintOrderDto dto){
+    public R save(@RequestBody SaveProductionPrintOrderDto dto){
         productionPrintOrderService.save(dto);
+        return R.ok();
+    }
+
+
+    @PostMapping("/getByProductWordId/{id}")
+    public ProductionPrintOrder getByProductWordId(@PathVariable Long id){
+        return productionPrintOrderService.getByProductWordId(id);
     }
 
 }
diff --git a/src/main/java/com/ruoyi/production/dto/ProcessContentDto.java b/src/main/java/com/ruoyi/production/dto/ProcessContentDto.java
index 88c15f1..5bc0e6b 100644
--- a/src/main/java/com/ruoyi/production/dto/ProcessContentDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProcessContentDto.java
@@ -20,7 +20,7 @@
 public class ProcessContentDto implements Serializable {
     private String id;
     private Long processId;             // 宸ュ簭id
-    private String processContent;    // 宸ヨ壓鍔犲伐鍐呭
+    private String processName;    // 宸ヨ壓鍔犲伐鍐呭
     private String openCount;         // 寮�鏁�
     private String processPositive;   // 宸ヨ壓姝f暟
     private String allowanceQty;      // 鍔犳斁鏁�
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionPrintOrderDto.java b/src/main/java/com/ruoyi/production/dto/ProductionPrintOrderDto.java
index 0613442..461594e 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductionPrintOrderDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductionPrintOrderDto.java
@@ -1,5 +1,6 @@
 package com.ruoyi.production.dto;
 
+import com.ruoyi.common.vo.SimpleFileVo;
 import com.ruoyi.production.pojo.ProductionPrintOrder;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -18,6 +19,6 @@
 @AllArgsConstructor
 @NoArgsConstructor
 public class ProductionPrintOrderDto extends ProductionPrintOrder implements Serializable {
-    private String xxx;
+    private SimpleFileVo cuttingFileVo;
 
 }
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionPrintOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductionPrintOrder.java
index b31f700..6965945 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionPrintOrder.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionPrintOrder.java
@@ -244,4 +244,16 @@
      */
     @TableField(value = "product_model_id")
     private Long productModelId;
+
+    /**
+     * 鍒囨枡鍥剧ず鏂囦欢id
+     */
+    @TableField(value = "cutting_file_id")
+    private Long cuttingFileId;
+
+    /**
+     * 瀹㈡埛鍗曚綅
+     */
+    @TableField(value = "client_name")
+    private String clientName;
 }
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/production/service/ProductionPrintOrderService.java b/src/main/java/com/ruoyi/production/service/ProductionPrintOrderService.java
index c4fd1b8..add8018 100644
--- a/src/main/java/com/ruoyi/production/service/ProductionPrintOrderService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductionPrintOrderService.java
@@ -1,5 +1,6 @@
 package com.ruoyi.production.service;
 
+import com.ruoyi.production.dto.ProductionPrintOrderDto;
 import com.ruoyi.production.dto.SaveProductionPrintOrderDto;
 import com.ruoyi.production.pojo.ProductionPrintOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -17,5 +18,10 @@
      */
     void save(SaveProductionPrintOrderDto dto);
 
-
+    /**
+     * 鏍规嵁璁㈠崟ID 鏌ヨ
+     * @param id 璁㈠崟
+     * @return
+     */
+    ProductionPrintOrderDto getByProductWordId(Long id);
 }
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 e8587ac..0b5008a 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
@@ -3,10 +3,13 @@
 import cn.hutool.core.bean.BeanUtil;
 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.basic.service.CustomerFollowUpFileService;
 import com.ruoyi.dto.SimplePersonDto;
 import com.ruoyi.production.dto.ProcessContentDto;
 import com.ruoyi.production.dto.ProcessRouteAnticlockwiseDto;
+import com.ruoyi.production.dto.ProductionPrintOrderDto;
 import com.ruoyi.production.dto.SaveProductionPrintOrderDto;
 import com.ruoyi.production.mapper.ProductOrderMapper;
 import com.ruoyi.production.mapper.ProductionPrintOrderMapper;
@@ -34,6 +37,8 @@
 
     private final ProductOrderMapper productOrderMapper;
     private final ProcessRouteServiceImpl processRouteService;
+
+    private final CustomerFollowUpFileService customerFollowUpFileService;
     @Override
     @Transactional
     public void save(SaveProductionPrintOrderDto dto) {
@@ -50,7 +55,7 @@
         List<ProcessRouteAnticlockwiseDto> processRouteAnticlockwiseDtos = processContentDtoList.stream().map(it -> {
             ProcessRouteAnticlockwiseDto pdto = new ProcessRouteAnticlockwiseDto();
             pdto.setProcessId(it.getProcessId());
-            pdto.setProcessRouteName(it.getProcessContent());
+            pdto.setProcessRouteName(it.getProcessName());
             pdto.setProcessRouteOpenNum(it.getOpenCount());
             pdto.setProcessRouteNum(it.getProcessPositive());
             pdto.setProcessRouteAddNum(it.getProcessPositive());
@@ -58,18 +63,34 @@
             pdto.setProductModelId(dto.getProductModelId());
             pdto.setUserIds(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::getProcessContent).collect(Collectors.joining("銆�"));
+        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;
+    }
 }
 
 

--
Gitblit v1.9.3