From becb9bd23be9b8776eb51c0f81a0a41fb662dd1f Mon Sep 17 00:00:00 2001
From: huangjiayang <5265313@qq.com>
Date: 星期三, 07 五月 2025 16:58:27 +0800
Subject: [PATCH] 【ADD】钣金冗余工单报表接口

---
 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml                |   15 +++
 aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPlatePlanController.java    |   38 +++++++++
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java            |   12 ++
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java                  |   33 ++++++++
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java |   11 ++
 aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java     |   60 +++++++++++++++
 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlatePlanService.java         |   12 ++
 7 files changed, 173 insertions(+), 8 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPlatePlanController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPlatePlanController.java
index 1af932f..d5f445f 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPlatePlanController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPlatePlanController.java
@@ -8,17 +8,19 @@
 import com.aps.common.log.enums.BusinessType;
 import com.aps.common.security.annotation.RequiresPermissions;
 import com.aps.common.security.utils.DictUtils;
-import com.aps.core.domain.ApsGasPipingPlan;
 import com.aps.core.domain.ApsPlatePlan;
 import com.aps.core.domain.ApsPlatePlanTemp;
+import com.aps.core.domain.export.ApsPlatePlanExport;
 import com.aps.core.service.IApsPlatePlanService;
 import com.aps.core.service.IApsPlatePlanTempService;
 import com.aps.system.api.domain.SysDictData;
 import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 
@@ -178,4 +180,38 @@
         List<ApsPlatePlanTemp> list = apsPlatePlanTempService.selectApsPlatePlanTempList(apsPlatePlanTemp);
         return getDataTable(list);
     }
+
+    /**
+     * 閽i噾鍐椾綑宸ュ崟鎶ヨ〃
+     * @param apsPlatePlan
+     * @return
+     */
+    @RequiresPermissions("Aps:apsPlatePlan:redundantOrderList")
+    @GetMapping("/redundantOrderList")
+    public TableDataInfo redundantOrderList(ApsPlatePlan apsPlatePlan) {
+        startPage();
+        List<ApsPlatePlan> list = apsPlatePlanService.selectPlateRedundantOrderList(apsPlatePlan);
+        return getDataTable(list);
+    }
+
+    /**
+     * 閽i噾鍐椾綑宸ュ崟鎶ヨ〃瀵煎嚭
+     * @param apsPlatePlan
+     * @return
+     */
+    @RequiresPermissions("Aps:apsPlatePlan:redundantOrderListExport")
+    @Log(title = "閽i噾鍐椾綑宸ュ崟鎶ヨ〃", businessType = BusinessType.EXPORT)
+    @PostMapping("/redundantOrderListExport")
+    public void redundantOrderListExport(HttpServletResponse response, ApsPlatePlan apsPlatePlan) {
+        List<ApsPlatePlan> planList = apsPlatePlanService.selectApsPlatePlanList(apsPlatePlan);
+        List<ApsPlatePlanExport> planListExport = new ArrayList<>();
+        for (ApsPlatePlan plan : planList) {
+            ApsPlatePlanExport planExport = new ApsPlatePlanExport();
+            BeanUtils.copyProperties(plan, planExport);
+            planListExport.add(planExport);
+        }
+        ExcelUtil<ApsPlatePlanExport> util = new ExcelUtil<ApsPlatePlanExport>(ApsPlatePlanExport.class);
+        util.exportExcel(response, planListExport, "閽i噾鍐椾綑宸ュ崟鎶ヨ〃鏁版嵁");
+    }
+
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java
index 7847c91..1ffafb4 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java
@@ -178,9 +178,42 @@
     @Excel(name = "涓嬩竴宸ュ簭鍚嶇О")
     private String nextOpName;
 
+    /** 宸ュ崟鍒涘缓鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "宸ュ崟鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date orderCreateTime;
+
+    /** 鐢熶骇鍩哄湴 */
+    @Excel(name = "鐢熶骇鍩哄湴")
+    private String productionBase;
+
     /** 鏈尮閰嶇殑鐢熶骇鏁伴噺*/
     private BigDecimal unmatchedQuantity;
 
+    public Date getOrderCreateTime() {
+        return orderCreateTime;
+    }
+
+    public void setOrderCreateTime(Date orderCreateTime) {
+        this.orderCreateTime = orderCreateTime;
+    }
+
+    public String getProductionBase() {
+        return productionBase;
+    }
+
+    public void setProductionBase(String productionBase) {
+        this.productionBase = productionBase;
+    }
+
+    public BigDecimal getUnmatchedQuantity() {
+        return unmatchedQuantity;
+    }
+
+    public void setUnmatchedQuantity(BigDecimal unmatchedQuantity) {
+        this.unmatchedQuantity = unmatchedQuantity;
+    }
+
     public String getOpStatus() {
         return opStatus;
     }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java
new file mode 100644
index 0000000..038becc
--- /dev/null
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/export/ApsPlatePlanExport.java
@@ -0,0 +1,60 @@
+package com.aps.core.domain.export;
+
+import com.aps.common.core.annotation.Excel;
+import com.aps.common.core.web.domain.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 閽i噾璁″垝绠$悊瀵硅薄 aps_plate_plan
+ * 
+ * @author ruoyi
+ * @date 2025-04-08
+ */
+@Data
+public class ApsPlatePlanExport extends BaseEntity
+{
+
+    /** 鍗曟嵁鍙� */
+    @Excel(name = "宸ュ崟鍙�", sort = 1)
+    private String documentNumber;
+
+    /** 瀛愪欢鏂欏彿 */
+    @Excel(name = "瀛愪欢鏂欏彿", sort = 2)
+    private String itemNumber;
+
+    /** 鐢熶骇鏁伴噺 */
+    @Excel(name = "鐢熶骇鏁伴噺", sort = 3)
+    private BigDecimal productionQuantity;
+
+    /** 鏈尮閰嶇殑鐢熶骇鏁伴噺*/
+    @Excel(name = "鏈尮閰嶇殑鐢熶骇鏁伴噺", sort = 4)
+    private BigDecimal unmatchedQuantity;
+
+    /** 閫傜敤宸ュ巶 */
+    @Excel(name = "閫傜敤宸ュ巶", sort = 5)
+    private String plant;
+
+    /** 鐢熶骇鍩哄湴 */
+    @Excel(name = "鐢熶骇鍩哄湴", sort = 6)
+    private String productionBase;
+
+    /** 璁″垝寮�宸ユ棩 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "璁″垝寮�宸ユ棩", width = 30, dateFormat = "yyyy-MM-dd", sort = 7)
+    private Date planStartDay;
+
+    /** 璁″垝瀹屽伐鏃� */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "璁″垝瀹屽伐鏃�", width = 30, dateFormat = "yyyy-MM-dd", sort = 8)
+    private Date planEndDay;
+
+    /** 宸ュ崟鍒涘缓鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "宸ュ崟鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 9)
+    private Date orderCreateTime;
+
+}
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java
index a79024b..c52a435 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java
@@ -1,8 +1,9 @@
 package com.aps.core.mapper;
 
-import java.util.List;
-import  com.aps.core.domain.ApsPlatePlan;
+import com.aps.core.domain.ApsPlatePlan;
 import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
 
 /**
  * 閽i噾璁″垝绠$悊Mapper鎺ュ彛
@@ -64,4 +65,11 @@
     public int insertPlatePlanFromTempByBatchNumber(String batchNumber);
 
     int removeAllPlatePlans();
+
+    /**
+     * 閽i噾鍐椾綑宸ュ崟鎶ヨ〃
+     * @param apsPlatePlan
+     * @return
+     */
+    public List<ApsPlatePlan> selectPlateRedundantOrderList(ApsPlatePlan apsPlatePlan);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlatePlanService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlatePlanService.java
index 9553c71..b7c74f7 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlatePlanService.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlatePlanService.java
@@ -1,8 +1,9 @@
 package com.aps.core.service;
 
-import java.util.List;
-import  com.aps.core.domain.ApsPlatePlan;
+import com.aps.core.domain.ApsPlatePlan;
 import com.aps.core.domain.ApsPlatePlanTemp;
+
+import java.util.List;
 
 /**
  * 閽i噾璁″垝绠$悊Service鎺ュ彛
@@ -71,4 +72,11 @@
      * @throws Exception
      */
     String importData(List<ApsPlatePlanTemp> tempList) throws Exception;
+
+    /**
+     * 閽i噾鍐椾綑宸ュ崟鎶ヨ〃
+     * @param apsPlatePlan
+     * @return
+     */
+    public List<ApsPlatePlan> selectPlateRedundantOrderList(ApsPlatePlan apsPlatePlan);
 }
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java
index 73f92fb..be58e7a 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java
@@ -182,6 +182,13 @@
         }
     }
 
-
-
+    /**
+     * 閽i噾鍐椾綑宸ュ崟鎶ヨ〃
+     * @param apsPlatePlan
+     * @return
+     */
+    @Override
+    public List<ApsPlatePlan> selectPlateRedundantOrderList(ApsPlatePlan apsPlatePlan) {
+        return apsPlatePlanMapper.selectPlateRedundantOrderList(apsPlatePlan);
+    }
 }
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
index 5bf67f2..0bb1a5f 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
@@ -44,6 +44,8 @@
         <result property="opStatus"    column="op_status"    />
         <result property="nextOpName"    column="next_op_name"    />
         <result property="unmatchedQuantity"    column="unmatched_quantity"    />
+        <result property="productionBase"    column="production_base"    />
+        <result property="orderCreateTime"    column="order_create_time"    />
     </resultMap>
 
     <sql id="selectApsPlatePlanVo">
@@ -53,7 +55,7 @@
                work_center, department, plan_start_day, plan_end_day, standby_number, standby_name,
                standby_stock, next_process_deparment, is_suspended, is_outsourcing, account, advanced_materials,
                advanced_document_number, advanced_requirement_day, is_plan_complete, is_stock_complete,
-               has_turnback, has_risk, std_op, op_status, next_op_name ,unmatched_quantity
+               has_turnback, has_risk, std_op, op_status, next_op_name ,unmatched_quantity, production_base, order_create_time
         from aps_plate_plan
     </sql>
 
@@ -263,4 +265,15 @@
         update  aps_plate_plan  set del_flag='1' where del_flag ='0'
     </update>
 
+    <select id="selectPlateRedundantOrderList" parameterType="ApsPlatePlan" resultMap="ApsPlatePlanResult">
+        select document_number, item_number, production_quantity, unmatched_quantity, plant, production_base, plan_start_day, plan_end_day, order_create_time
+        from aps_plate_plan where unmatched_quantity>0 and professional_affiliation!='0'
+        <if test="documentNumber != null and documentNumber != ''">
+            and document_number like '%' || #{documentNumber} || '%'
+        </if>
+        <if test="itemNumber != null and itemNumber != ''">
+            and item_number like '%' || #{itemNumber} || '%'
+        </if>
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3