From 0ca7d78f0e8e8a6984314803aba21ab1d25472b3 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期五, 24 四月 2026 15:06:21 +0800
Subject: [PATCH] feat(production): 新增印刷定印单实体及相关接口和分页信息完善
---
src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java | 72 +++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 1 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..24de514 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,29 @@
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.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;
+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 +37,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 +53,65 @@
processContentDto.setId(IdUtil.simpleUUID());
}
});
+ // 璋冪敤宸ュ簭鏂瑰 鍑芥暟
+ 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(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::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