From 810701c433a26f438297b6649af41dae74939731 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期五, 27 三月 2026 17:52:55 +0800
Subject: [PATCH] feat(sales): 添加销售台账导出功能

---
 src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java |   43 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
index 8a1099c..43be949 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -1,5 +1,7 @@
 package com.ruoyi.production.service.impl;
 
+import cn.hutool.core.util.BooleanUtil;
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -7,8 +9,8 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
+import com.ruoyi.basic.dto.SelectOptionDTO;
+import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.procurementrecord.utils.StockUtils;
 import com.ruoyi.production.dto.ProductOrderDto;
 import com.ruoyi.production.dto.ProductStructureDto;
@@ -16,7 +18,6 @@
 import com.ruoyi.production.pojo.*;
 import com.ruoyi.production.service.ProductOrderService;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -24,6 +25,7 @@
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Service
@@ -67,7 +69,17 @@
 
     @Override
     public IPage<ProductOrderDto> pageProductOrder(Page page, ProductOrderDto productOrder) {
-        return productOrderMapper.pageProductOrder(page, productOrder);
+        IPage<ProductOrderDto> productOrderDtoIPage = productOrderMapper.pageProductOrder(page, productOrder);
+        List<ProductOrderDto> productOrderDtos = productOrderDtoIPage.getRecords();
+        for (int i = 0; i < productOrderDtos.size(); i++) {
+            ProductOrderDto productOrderDto = productOrderDtos.get(i);
+            if (BooleanUtil.isTrue(productOrderDto.getIsEnd())) {
+                // 濡傛灉鐢熶骇璁㈠崟琚粨鏉燂紝鍒欏皢瀹屾垚杩涘害璁剧疆涓�100%
+                productOrderDto.setCompletionStatus(BigDecimal.valueOf(100));
+            }
+        }
+
+        return productOrderDtoIPage;
     }
 
     @Override
@@ -201,4 +213,27 @@
     }
 
 
+    @Override
+    public int finishOrder(Long orderId) {
+        ProductOrder productOrder = new ProductOrder();
+        productOrder.setId(orderId);
+        productOrder.setIsEnd(true);
+        return productOrderMapper.updateById(productOrder);
+    }
+
+    @Override
+    public int cleanRecord(Long id, Map<String, Object> cleanRecord) {
+        ProductOrder productOrder = productOrderMapper.selectById(id);
+        if (productOrder == null) {
+            throw new BaseException("璁㈠崟涓嶅瓨鍦�");
+        }
+        productOrder.setCleanRecord(JSON.toJSONString(cleanRecord));
+        return productOrderMapper.updateById(productOrder);
+    }
+
+    @Override
+    public List<SelectOptionDTO<String>> getProductOrderBatchNo() {
+        List<ProductOrder> productOrders = productOrderMapper.selectList(null);
+        return productOrders.stream().map(productOrder -> new SelectOptionDTO<>(productOrder.getBatchNo(), productOrder.getBatchNo())).collect(Collectors.toList());
+    }
 }

--
Gitblit v1.9.3