From e992aa74b2a75653f007ab12a83cfc28aee7d7a6 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 28 四月 2026 17:33:03 +0800
Subject: [PATCH] fix: 报工台账导出修改
---
src/main/java/com/ruoyi/production/service/ProductionProductMainService.java | 6 +
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 54 +++++++++++++
src/main/java/com/ruoyi/production/dto/ProductionProductMainDetailExportDto.java | 56 ++++++++++++++
src/main/resources/mapper/production/ProductionProductMainMapper.xml | 16 ++++
src/main/java/com/ruoyi/production/dto/ProductionProductMainSummaryExportDto.java | 49 ++++++++++++
src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java | 36 +++++++-
src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java | 4 +
7 files changed, 216 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
index f4b85bb..8c4317e 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.production.dto.ProductionProductMainDetailExportDto;
import com.ruoyi.production.dto.ProductionProductMainDto;
+import com.ruoyi.production.dto.ProductionProductMainSummaryExportDto;
import com.ruoyi.production.dto.ProductionReportDailySummaryDto;
import com.ruoyi.production.dto.ProductionReportStateDto;
import com.ruoyi.production.pojo.ProductionProductMain;
@@ -29,6 +31,7 @@
/**
* 鎶ュ伐鏌ヨ
+ *
* @param page
* @param productionProductMainDto
* @return
@@ -64,6 +67,7 @@
/**
* 鎶ュ伐鏂板鏇存柊
+ *
* @param productionProductMainDto
* @return
*/
@@ -108,13 +112,35 @@
/**
- * 瀵煎嚭
+ * 鎶ュ伐鍙拌处姹囨�诲鍑�
*/
+ @ApiOperation("鎶ュ伐鍙拌处姹囨�诲鍑�")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "workOrderIds", value = "宸ュ崟ID鍒楄〃, 鍙紶澶氫釜", allowMultiple = true, dataType = "long", paramType = "query"),
+ @ApiImplicitParam(name = "workOrderNo", value = "宸ュ崟缂栧彿(妯$硦)", dataType = "string", paramType = "query"),
+ @ApiImplicitParam(name = "workOrderStatus", value = "宸ュ崟鐘舵��", dataType = "string", paramType = "query")
+ })
@PostMapping("/export")
public void export(HttpServletResponse response, ProductionProductMainDto productionProductMainDto) {
- List<ProductionProductMainDto> list;
- list = productionProductMainService.listPageProductionProductMainDto(new Page<>(1, -1), productionProductMainDto).getRecords();
- ExcelUtil<ProductionProductMainDto> util = new ExcelUtil<ProductionProductMainDto>(ProductionProductMainDto.class);
- util.exportExcel(response, list, "鐢熶骇鎶ュ伐鏁版嵁");
+ List<ProductionProductMainSummaryExportDto> list = productionProductMainService.listSummaryExportData(productionProductMainDto);
+ ExcelUtil<ProductionProductMainSummaryExportDto> util = new ExcelUtil<>(ProductionProductMainSummaryExportDto.class);
+ util.exportExcel(response, list, "鐢熶骇鎶ュ伐姹囨�绘暟鎹�");
+ }
+
+ /**
+ * 鎶ュ伐鏄庣粏瀵煎嚭
+ */
+ @ApiOperation("鎶ュ伐鏄庣粏瀵煎嚭")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "workOrderIds", value = "宸ュ崟ID鍒楄〃, 鍙紶澶氫釜", allowMultiple = true, dataType = "long", paramType = "query"),
+ @ApiImplicitParam(name = "workOrderId", value = "宸ュ崟ID", dataType = "long", paramType = "query"),
+ @ApiImplicitParam(name = "startDate", value = "寮�濮嬫棩鏈�(鎸夌粨鏉熸椂闂磋繃婊�, yyyy-MM-dd)", dataType = "string", paramType = "query"),
+ @ApiImplicitParam(name = "endDate", value = "缁撴潫鏃ユ湡(鎸夌粨鏉熸椂闂磋繃婊�, yyyy-MM-dd)", dataType = "string", paramType = "query")
+ })
+ @PostMapping("/exportDetail")
+ public void exportDetail(HttpServletResponse response, ProductionProductMainDto productionProductMainDto) {
+ List<ProductionProductMainDetailExportDto> list = productionProductMainService.listDetailExportData(productionProductMainDto);
+ ExcelUtil<ProductionProductMainDetailExportDto> util = new ExcelUtil<>(ProductionProductMainDetailExportDto.class);
+ util.exportExcel(response, list, "鐢熶骇鎶ュ伐鏄庣粏鏁版嵁");
}
}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDetailExportDto.java b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDetailExportDto.java
new file mode 100644
index 0000000..5c665ad
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDetailExportDto.java
@@ -0,0 +1,56 @@
+package com.ruoyi.production.dto;
+
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class ProductionProductMainDetailExportDto {
+
+ @Excel(name = "浜у搧缂栧彿", sort = 1)
+ private String productNo;
+
+ @Excel(name = "鎿嶄綔浜哄憳", sort = 2)
+ private String nickName;
+
+ @Excel(name = "宸ュ簭", sort = 3)
+ private String process;
+
+ @Excel(name = "宸ュ崟鍙�", sort = 4)
+ private String workOrderNo;
+
+ @Excel(name = "閿�鍞悎鍚屽彿", sort = 5)
+ private String salesContractNo;
+
+ @Excel(name = "鐢熶骇璁㈠崟鍙�", sort = 6)
+ private String productOrderNpsNo;
+
+ @Excel(name = "浜у搧鍚嶇О", sort = 7)
+ private String productName;
+
+ @Excel(name = "浜у搧瑙勬牸鍨嬪彿", sort = 8)
+ private String productModelName;
+
+ @Excel(name = "鍚堟牸鏁伴噺", sort = 9)
+ private BigDecimal quantity;
+
+ @Excel(name = "涓嶅悎鏍兼暟閲�", sort = 10)
+ private BigDecimal scrapQty;
+
+ @Excel(name = "鍗曚綅", sort = 11)
+ private String unit;
+
+ @Excel(name = "宸ュ簭鏍囧噯宸ユ椂(灏忔椂)", sort = 12)
+ private BigDecimal processStandardHours;
+
+ @Excel(name = "瀹為檯鎶ュ伐宸ユ椂(灏忔椂)", sort = 13)
+ private BigDecimal actualReportHours;
+
+ @Excel(name = "姣忎汉姣忔棩宸ユ椂(灏忔椂)", sort = 14)
+ private BigDecimal dailyPersonHours;
+
+ @Excel(name = "鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 15)
+ private LocalDateTime createTime;
+}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
index 5df78e1..a19c083 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
@@ -12,6 +12,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
+import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -63,6 +64,9 @@
@ApiModelProperty(value = "缁撴潫鏃ユ湡(鏄庣粏鏌ヨ鐢�)")
private LocalDate endDate;
+ @ApiModelProperty(value = "宸ュ崟ID鍒楄〃(鏄庣粏瀵煎嚭鐢�)")
+ private List<Long> workOrderIds;
+
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "鏃ユ湡(鏄庣粏/姹囨�讳腑浣跨敤)")
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionProductMainSummaryExportDto.java b/src/main/java/com/ruoyi/production/dto/ProductionProductMainSummaryExportDto.java
new file mode 100644
index 0000000..36585b6
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/dto/ProductionProductMainSummaryExportDto.java
@@ -0,0 +1,49 @@
+package com.ruoyi.production.dto;
+
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ProductionProductMainSummaryExportDto {
+
+ @Excel(name = "宸ュ簭", sort = 1)
+ private String process;
+
+ @Excel(name = "宸ュ崟鍙�", sort = 2)
+ private String workOrderNo;
+
+ @Excel(name = "閿�鍞悎鍚屽彿", sort = 3)
+ private String salesContractNo;
+
+ @Excel(name = "鐢熶骇璁㈠崟鍙�", sort = 4)
+ private String productOrderNpsNo;
+
+ @Excel(name = "浜у搧鍚嶇О", sort = 5)
+ private String productName;
+
+ @Excel(name = "浜у搧瑙勬牸鍨嬪彿", sort = 6)
+ private String productModelName;
+
+ @Excel(name = "鍗曚綅", sort = 7)
+ private String unit;
+
+ @Excel(name = "鎬诲伐鏃�", sort = 8)
+ private BigDecimal projectTotalHours;
+
+ @Excel(name = "宸ュ簭鏍囧噯宸ユ椂(灏忔椂)", sort = 9)
+ private BigDecimal processStandardHours;
+
+ @Excel(name = "瀹為檯鎶ュ伐宸ユ椂(灏忔椂)", sort = 10)
+ private BigDecimal actualReportHours;
+
+ @Excel(name = "姣忎汉姣忔棩宸ユ椂(灏忔椂)", sort = 11)
+ private BigDecimal dailyPersonHours;
+
+ @Excel(name = "浜у嚭鎬绘暟閲�", sort = 12)
+ private BigDecimal outputTotalQuantity;
+
+ @Excel(name = "鎶ュ簾鎬绘暟閲�", sort = 13)
+ private BigDecimal scrapTotalQuantity;
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
index 142cbcf..c7eb9f4 100644
--- a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.dto.ProductionProductMainDetailExportDto;
import com.ruoyi.production.dto.ProductionProductMainDto;
+import com.ruoyi.production.dto.ProductionProductMainSummaryExportDto;
import com.ruoyi.production.dto.ProductionReportDailySummaryDto;
import com.ruoyi.production.dto.ProductionReportStateDto;
import com.ruoyi.production.pojo.ProductionProductMain;
@@ -18,6 +20,10 @@
IPage<ProductionProductMainDto> listPageProductionProductMainDetailDto(Page<ProductionProductMainDto> page, ProductionProductMainDto productionProductMainDto);
+ List<ProductionProductMainSummaryExportDto> listSummaryExportData(ProductionProductMainDto productionProductMainDto);
+
+ List<ProductionProductMainDetailExportDto> listDetailExportData(ProductionProductMainDto productionProductMainDto);
+
Boolean addProductMain(ProductionProductMainDto productionProductMainDto);
/**
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 2b069af..151eccb 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -18,7 +18,9 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.procurementrecord.utils.StockUtils;
+import com.ruoyi.production.dto.ProductionProductMainDetailExportDto;
import com.ruoyi.production.dto.ProductionProductMainDto;
+import com.ruoyi.production.dto.ProductionProductMainSummaryExportDto;
import com.ruoyi.production.dto.ProductionReportDailySummaryDto;
import com.ruoyi.production.dto.ProductionReportStateDto;
import com.ruoyi.production.enums.ProductProcessEnum;
@@ -103,6 +105,58 @@
return result;
}
+ @Override
+ public List<ProductionProductMainSummaryExportDto> listSummaryExportData(ProductionProductMainDto productionProductMainDto) {
+ return listPageProductionProductMainDto(new Page<>(1, -1), productionProductMainDto)
+ .getRecords()
+ .stream()
+ .map(item -> {
+ ProductionProductMainSummaryExportDto exportDto = new ProductionProductMainSummaryExportDto();
+ exportDto.setProcess(item.getProcess());
+ exportDto.setWorkOrderNo(item.getWorkOrderNo());
+ exportDto.setSalesContractNo(item.getSalesContractNo());
+ exportDto.setProductOrderNpsNo(item.getProductOrderNpsNo());
+ exportDto.setProductName(item.getProductName());
+ exportDto.setProductModelName(item.getProductModelName());
+ exportDto.setUnit(item.getUnit());
+ exportDto.setProjectTotalHours(item.getProjectTotalHours());
+ exportDto.setProcessStandardHours(item.getProcessStandardHours());
+ exportDto.setActualReportHours(item.getActualReportHours());
+ exportDto.setDailyPersonHours(item.getDailyPersonHours());
+ exportDto.setOutputTotalQuantity(item.getOutputTotalQuantity());
+ exportDto.setScrapTotalQuantity(item.getScrapTotalQuantity());
+ return exportDto;
+ })
+ .collect(Collectors.toList());
+ }
+
+ @Override
+ public List<ProductionProductMainDetailExportDto> listDetailExportData(ProductionProductMainDto productionProductMainDto) {
+ return listPageProductionProductMainDetailDto(new Page<>(1, -1), productionProductMainDto)
+ .getRecords()
+ .stream()
+ .map(item -> {
+ ProductionProductMainDetailExportDto exportDto = new ProductionProductMainDetailExportDto();
+ exportDto.setProductNo(item.getProductNo());
+ exportDto.setNickName(item.getNickName());
+ exportDto.setProcess(item.getProcess());
+ exportDto.setWorkOrderNo(item.getWorkOrderNo());
+ exportDto.setSalesContractNo(item.getSalesContractNo());
+ exportDto.setProductOrderNpsNo(item.getProductOrderNpsNo());
+ exportDto.setProductName(item.getProductName());
+ exportDto.setProductModelName(item.getProductModelName());
+ exportDto.setQuantity(item.getQuantity());
+ exportDto.setScrapQty(item.getScrapQty());
+ exportDto.setUnit(item.getUnit());
+ exportDto.setProcessStandardHours(item.getProcessStandardHours());
+ exportDto.setActualReportHours(item.getActualReportHours());
+ exportDto.setDailyPersonHours(item.getDailyPersonHours());
+ exportDto.setCreateTime(item.getCreateTime());
+ return exportDto;
+ })
+ .collect(Collectors.toList());
+ }
+
private void fillHourDefaults(List<ProductionProductMainDto> records) {
if (records == null || records.isEmpty()) {
return;
diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index 133cfaf..ff9f34e 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -71,6 +71,14 @@
left join sales_ledger sl on sl.id = po.sales_ledger_id
left join sys_user u on u.user_id = ppm.user_id
<where>
+ and ppm.status = 1
+ and ifnull(ppo.quantity, 0) > 0
+ <if test="c.workOrderIds != null and c.workOrderIds.size() > 0">
+ and ppm.work_order_id in
+ <foreach collection="c.workOrderIds" item="workOrderId" open="(" separator="," close=")">
+ #{workOrderId}
+ </foreach>
+ </if>
<if test="c.nickName != null and c.nickName != ''">
and u.nick_name like concat('%',#{c.nickName},'%')
</if>
@@ -139,6 +147,14 @@
left join sales_ledger sl on sl.id = po.sales_ledger_id
left join sys_user u on u.user_id = ppm.user_id
<where>
+ and ppm.status = 1
+ and ifnull(ppo.quantity, 0) > 0
+ <if test="c.workOrderIds != null and c.workOrderIds.size() > 0">
+ and ppm.work_order_id in
+ <foreach collection="c.workOrderIds" item="workOrderId" open="(" separator="," close=")">
+ #{workOrderId}
+ </foreach>
+ </if>
<if test="c.workOrderId != null">
and ppm.work_order_id = #{c.workOrderId}
</if>
--
Gitblit v1.9.3