From af1ef97f554b67140773103a3e90bc95b80c5b54 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期一, 21 四月 2025 08:54:05 +0800
Subject: [PATCH] 原材料和成品可根据选择行导出
---
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java | 8 ++
basic-server/src/main/resources/mapper/StandardTreeMapper.xml | 9 ++
inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 121 +++++++++++++++++-------------
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java | 16 ++++
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java | 2
cnas-device/src/main/resources/static/word/device-maintenance.docx | 0
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 23 +++--
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java | 3
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java | 20 +++-
basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java | 3
10 files changed, 135 insertions(+), 70 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java
index 71bfddb..009b268 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java
@@ -121,4 +121,7 @@
@ApiModelProperty("鍏嶆")
private Integer isExemption;
+
+ @ApiModelProperty("鍘熸潗鏂檌d(瀵煎嚭鐢�)")
+ private String ids;
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
index e6fbad1..d824587 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
@@ -94,6 +94,14 @@
* @return
*/
List<SampleDto> getStandardTree3(@Param("sampleType") String sampleType);
+
+ /**
+ * 鏍规嵁鍘熸潗鏂檌d鍒楄〃鏌ヨ鍘熸潗鏂欎俊鎭�
+ * @param ifsIds
+ * @return
+ */
+ List<IfsInventoryQuantitySupplierDto> getIfsByIds(@Param("ifsIds") List<String> ifsIds);
+
}
diff --git a/basic-server/src/main/resources/mapper/StandardTreeMapper.xml b/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
index 39c9d07..4060428 100644
--- a/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
+++ b/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -389,4 +389,13 @@
where sample_type = #{sampleType}
and sample is null
</select>
+
+ <!-- 鏍规嵁鍘熸潗鏂檌d鍒楄〃鏌ヨ鍘熸潗鏂欎俊鎭� -->
+ <select id="getIfsByIds" resultType="com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto">
+ <include refid="getIfsOrder"/>
+ where id in
+ <foreach item="id" collection="ifsIds" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </select>
</mapper>
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
index 02ca6cc..47ec658 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
@@ -128,7 +128,7 @@
try {
response.setContentType("application/msword");
String fileName = URLEncoder.encode(
- "璁惧浣跨敤鎺堟潈", "UTF-8");
+ "璁惧淇濆吇缁存姢", "UTF-8");
response.setHeader("Content-disposition",
"attachment;filename=" + fileName + ".docx");
OutputStream os = response.getOutputStream();
diff --git a/cnas-device/src/main/resources/static/word/device-maintenance.docx b/cnas-device/src/main/resources/static/word/device-maintenance.docx
index 87ad5ee..267a258 100644
--- a/cnas-device/src/main/resources/static/word/device-maintenance.docx
+++ b/cnas-device/src/main/resources/static/word/device-maintenance.docx
Binary files differ
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
index 47eb3a8..bdf55f3 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
@@ -92,7 +92,8 @@
@ApiModelProperty("鎬讳环")
private String totalPrice;
-
+ @ApiModelProperty("璁㈠崟id(瀵煎嚭鐢�)")
+ private String ids;
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
index 449c56d..94a172a 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
@@ -110,6 +110,10 @@
*/
List<InsOrderPrintingVo> labelOrderPrinting(@Param("ids") List<Integer> ids);
+ /**
+ * 鏌ヨ瀵煎嚭淇℃伅
+ * @return
+ */
List<SampleOrderDto> rawAllInsOrderExport(@Param("ew") QueryWrapper<SampleOrderDto> ew, @Param("laboratory") String laboratory, @Param("isOrderAll") String isOrderAll);
/**
@@ -119,5 +123,17 @@
*/
String selectLaboratoryByOrderId(@Param("insOrderId") Integer insOrderId);
+ /**
+ * 鏌ヨ璁㈠崟淇℃伅
+ * @param insSampleId
+ * @return
+ */
InsOrder selectFirstSubmit(@Param("insSampleId") Integer insSampleId);
+
+ /**
+ * 鏍规嵁璁㈠崟id鏌ヨ璁㈠崟瀵煎嚭淇℃伅
+ * @param orderIds
+ * @return
+ */
+ List<SampleOrderDto> getInsOrderExportByIds(@Param("orderIds") List<String> orderIds);
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index dba348e..4d8340e 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -992,16 +992,21 @@
*/
@Override
public void rawAllInsOrderExport(SampleOrderDto sampleOrderDto, HttpServletResponse response) {
- //鍒ゆ柇鍏ㄩ儴,涓汉,缁勭粐鐨勬潈闄�
- //todo:浠呯湅鎴戣幏鍙栧綋鍓嶄汉鎵�灞炲疄楠屽id
- String laboratory = null;
- // 鍒ゆ柇鏄惁鏄叏閮�
- String isOrderAll = null;
- if (sampleOrderDto.getState() != null && sampleOrderDto.getState() == -2) {
- isOrderAll = "1";
- sampleOrderDto.setState(null);
+ List<SampleOrderDto> sampleOrderDtoList = new ArrayList<>();
+ if (StringUtils.isNotBlank(sampleOrderDto.getIds())) {
+ List<String> orderIds = StrUtil.split(sampleOrderDto.getIds(), ",");
+ sampleOrderDtoList = insOrderMapper.getInsOrderExportByIds(orderIds);
+ } else {
+ String laboratory = null;
+ // 鍒ゆ柇鏄惁鏄叏閮�
+ String isOrderAll = null;
+ if (sampleOrderDto.getState() != null && sampleOrderDto.getState() == -2) {
+ isOrderAll = "1";
+ sampleOrderDto.setState(null);
+ }
+ sampleOrderDto.setIds(null);
+ sampleOrderDtoList = insOrderMapper.rawAllInsOrderExport(QueryWrappers.queryWrappers(sampleOrderDto), laboratory, isOrderAll);
}
- List<SampleOrderDto> sampleOrderDtoList = insOrderMapper.rawAllInsOrderExport(QueryWrappers.queryWrappers(sampleOrderDto), laboratory, isOrderAll);
// 鍒ゆ柇鏄惁鏄笉鍚堟牸, 涓嶅悎鏍兼煡璇笉鍚堟牸椤�
for (SampleOrderDto orderDto : sampleOrderDtoList) {
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index 155010a..fb5bfdc 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -12,6 +12,7 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.*;
@@ -672,12 +673,19 @@
*/
@Override
public void rawAllExport(IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto, HttpServletResponse response) throws UnsupportedEncodingException {
- //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹�
- String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
- String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
- ifsInventoryQuantityDto.setBeginDeclareDate(null);
- ifsInventoryQuantityDto.setEndDeclareDate(null);
- List<IfsInventoryQuantitySupplierDto> ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
+ // 鍒ゆ柇鏄惁鏄牴鎹�夋嫨鐨勫鍑�
+ List<IfsInventoryQuantitySupplierDto> ifsByOverList = new ArrayList<>();
+ if (StringUtils.isNotBlank(ifsInventoryQuantityDto.getIds())) {
+ List<String> ifsIds = StrUtil.split(ifsInventoryQuantityDto.getIds(), ",");
+ ifsByOverList = standardTreeMapper.getIfsByIds(ifsIds);
+ } else {
+ String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
+ String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
+ ifsInventoryQuantityDto.setBeginDeclareDate(null);
+ ifsInventoryQuantityDto.setEndDeclareDate(null);
+ ifsInventoryQuantityDto.setIds(null);
+ ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
+ }
for (IfsInventoryQuantitySupplierDto dto : ifsByOverList) {
dto.setSendTimeString(dto.getSendTime() == null ? "" : dto.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 214e7fa..ad38e37 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -45,6 +45,61 @@
ip.cable_tag
</sql>
+ <sql id="selectInsOrderExport">
+ SELECT
+ io.*,
+ isau.user_id assign,
+ ir.id report_id,
+ ir.url,
+ ir.url_s,
+ sample_counts.sample_num,
+ CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
+ io.sample_view AS sample_name,
+ GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
+ u.name,
+ testing_name,
+ case when io.type = 0 then '鏅��'
+ when io.type = 1 then '浼樺厛'
+ when io.type = 2 then '绱ф��'
+ end typeString,
+ case when io.ins_result = 1 then '鍚堟牸'
+ when io.ins_result = 0 then '涓嶅悎鏍�'
+ else '寰呮楠�' end insResultString
+ FROM
+ ins_order io
+ LEFT JOIN
+ ins_sample isa ON io.id = isa.ins_order_id
+ LEFT JOIN
+ ins_sample_user isau ON isau.ins_sample_id = io.id
+ LEFT JOIN
+ (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
+ LEFT JOIN
+ user u ON io.create_user = u.id
+ LEFT JOIN
+ (SELECT ins_order_id, COUNT(*) AS sample_num
+ FROM ins_sample
+ WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
+ GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id
+ LEFT JOIN
+ (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
+ FROM ins_product
+ JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
+ WHERE ins_product.state = 1
+ GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id
+ LEFT JOIN
+ (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
+ FROM ins_product
+ JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
+ WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL
+ GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id
+ LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name
+ FROM ins_sample_user u
+ LEFT JOIN user uu ON u.user_id = uu.id
+ WHERE u.state = 0
+ GROUP BY ins_sample_id
+ ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
+ </sql>
+
<select id="selectInsOrderPage" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
select *
from (
@@ -356,59 +411,7 @@
<!-- 鏌ヨ妫�楠屽崟鏁版嵁 -->
<select id="rawAllInsOrderExport" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
select *
- from (
- SELECT
- io.*,
- isau.user_id assign,
- ir.id report_id,
- ir.url,
- ir.url_s,
- sample_counts.sample_num,
- CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
- io.sample_view AS sample_name,
- GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
- u.name,
- testing_name,
- case when io.type = 0 then '鏅��'
- when io.type = 1 then '浼樺厛'
- when io.type = 2 then '绱ф��'
- end typeString,
- case when io.ins_result = 1 then '鍚堟牸'
- when io.ins_result = 0 then '涓嶅悎鏍�'
- else '寰呮楠�' end insResultString
- FROM
- ins_order io
- LEFT JOIN
- ins_sample isa ON io.id = isa.ins_order_id
- LEFT JOIN
- ins_sample_user isau ON isau.ins_sample_id = io.id
- LEFT JOIN
- (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
- LEFT JOIN
- user u ON io.create_user = u.id
- LEFT JOIN
- (SELECT ins_order_id, COUNT(*) AS sample_num
- FROM ins_sample
- WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
- GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id
- LEFT JOIN
- (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
- FROM ins_product
- JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
- WHERE ins_product.state = 1
- GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id
- LEFT JOIN
- (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
- FROM ins_product
- JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
- WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL
- GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id
- LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name
- FROM ins_sample_user u
- LEFT JOIN user uu ON u.user_id = uu.id
- WHERE u.state = 0
- GROUP BY ins_sample_id
- ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
+ from ( <include refid="selectInsOrderExport"/>
where (io.ifs_inventory_id IS NULL OR TRIM(io.ifs_inventory_id) = '')
<if test="isOrderAll != null and isOrderAll != ''">
AND io.state in (1, 4)
@@ -440,4 +443,16 @@
left join ins_sample is2 on is2.ins_order_id = io.id
where is2.id = #{insSampleId}
</select>
+
+ <!-- 鏍规嵁璁㈠崟id鏌ヨ璁㈠崟瀵煎嚭淇℃伅 -->
+ <select id="getInsOrderExportByIds" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
+ <include refid="selectInsOrderExport"/>
+ where (io.ifs_inventory_id IS NULL OR TRIM(io.ifs_inventory_id) = '')
+ and io.id in
+ <foreach item="id" collection="orderIds" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ GROUP BY io.id,type
+ order by type desc,io.id desc
+ </select>
</mapper>
--
Gitblit v1.9.3