From 33c7facec17c26837c4136c7d211386d21992010 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Wed, 16 Sep 2026 16:00:23 +0800 Subject: [PATCH] =?UTF-8?q?2026-09-15=20=E6=B6=88=E6=81=AF=E4=BB=A3?= =?UTF-8?q?=E5=8A=9E=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/mapper/RequestManageMapper.java | 6 +- .../impl/RequestManageServiceImpl.java | 81 +++++++++- .../mapper/request/RequestManageMapper.xml | 140 +++++++++++++++++- 3 files changed, 215 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/spring/modules/request/mapper/RequestManageMapper.java b/src/main/java/com/spring/modules/request/mapper/RequestManageMapper.java index 799e6ee6..6fb9927f 100644 --- a/src/main/java/com/spring/modules/request/mapper/RequestManageMapper.java +++ b/src/main/java/com/spring/modules/request/mapper/RequestManageMapper.java @@ -173,9 +173,9 @@ public interface RequestManageMapper extends BaseMapper List getProcessSelect2(PlmProcessControllBaseData cData); - List getProcessFlowInformation2(@Param("site") String site, @Param("workflowId") String workflowId, @Param("documentNo") String documentNo, @Param("workflowName") String workflowName, - @Param("nodeId") String nodeId, @Param("nodeName") String nodeName, @Param("createBy") String createBy, @Param("updateBy") String updateBy, - @Param("documentType") String documentType, @Param("documentStatus") String documentStatus, @Param("page") int page, @Param("limit") int limit); + Long countProcessFlowInformation(@Param("q") ProcessFormVo q); + + List getProcessFlowInformation2(@Param("q") ProcessFormVo q, @Param("startIndex") int startIndex, @Param("limit") int limit); void updateProcessInterventionFlag2(ProcessFormVo inData); diff --git a/src/main/java/com/spring/modules/request/service/impl/RequestManageServiceImpl.java b/src/main/java/com/spring/modules/request/service/impl/RequestManageServiceImpl.java index 945be9ce..a3ee1633 100644 --- a/src/main/java/com/spring/modules/request/service/impl/RequestManageServiceImpl.java +++ b/src/main/java/com/spring/modules/request/service/impl/RequestManageServiceImpl.java @@ -368,15 +368,80 @@ public class RequestManageServiceImpl extends ServiceImpl list = this.requestManageMapper.getProcessFlowInformation2(data.getSite(), data.getWorkflowId(), data.getDocumentNo(), - data.getWorkflowName(), data.getNodeId(), data.getNodeName(), data.getCreateBy(), data.getUpdateBy(), data.getDocumentType(), data.getDocumentStatus(), data.getPage(), data.getLimit()); - // 总条数 - if (!list.isEmpty()) { - count = list.get(0).getCountQty(); + prepareProcessFlowQuery(data); + int page = data.getPage() < 1 ? 1 : data.getPage(); + int limit = data.getLimit(); + int startIndex = limit > 0 ? (page - 1) * limit : 0; + Long count = this.requestManageMapper.countProcessFlowInformation(data); + List list = this.requestManageMapper.getProcessFlowInformation2(data, startIndex, limit); + int total = count == null ? 0 : count.intValue(); + int pageSize = limit > 0 ? limit : Math.max(total, 1); + return new PageUtils(list == null ? new ArrayList() : list, total, pageSize, page); + } + + private void prepareProcessFlowQuery(ProcessFormVo data) { + if (data == null) { + return; + } + data.setWorkflowId(blankToNull(data.getWorkflowId())); + data.setDocumentNo(blankToNull(data.getDocumentNo())); + data.setWorkflowName(blankToNull(data.getWorkflowName())); + data.setNodeId(blankToNull(data.getNodeId())); + data.setNodeName(blankToNull(data.getNodeName())); + data.setCreateBy(blankToNull(data.getCreateBy())); + data.setUpdateBy(blankToNull(data.getUpdateBy())); + data.setDocumentStatus(blankToNull(data.getDocumentStatus())); + data.setDocumentType(normalizeDocumentType(data.getDocumentType())); + } + + private String normalizeDocumentType(String documentType) { + String value = blankToNull(documentType); + if (value == null) { + return null; + } + String upper = value.toUpperCase(Locale.ROOT); + if ("技术参数卡".equals(value) || "BM".equals(upper)) { + return "BM"; + } + if ("打样申请".equals(value) || "PROOFING".equals(upper)) { + return "PROOFING"; + } + if ("询价申请".equals(value) || "QUOTATION".equals(upper)) { + return "QUOTATION"; + } + if ("测试申请".equals(value) || "TEST".equals(upper)) { + return "TEST"; + } + if ("刀具申请".equals(value) || "TOOL".equals(upper)) { + return "TOOL"; + } + if ("ECN".equals(upper)) { + return "ECN"; + } + if ("QUOTE".equals(upper) || "销售报价".equals(value)) { + return "QUOTE"; + } + if ("项目信息".equals(value) || "PROJECT".equals(upper)) { + return "PROJECT"; + } + if ("ROHS".equals(upper)) { + return "ROHS"; + } + if ("LAB".equals(upper)) { + return "LAB"; + } + return upper; + } + + private String blankToNull(String value) { + if (value == null) { + return null; + } + String text = value.trim(); + if (text.isEmpty() || "*".equals(text)) { + return null; } - return new PageUtils(list, count.intValue(), data.getPage(), data.getLimit()); + return text; } /** diff --git a/src/main/resources/mapper/request/RequestManageMapper.xml b/src/main/resources/mapper/request/RequestManageMapper.xml index 32f255b3..51baf07f 100644 --- a/src/main/resources/mapper/request/RequestManageMapper.xml +++ b/src/main/resources/mapper/request/RequestManageMapper.xml @@ -553,8 +553,146 @@ and a.site = #{site} and a.workflow_id = #{workflowId} and a.node_id = #{nodeId} and a.role_id = #{roleId} + + ;WITH BaseData AS ( + SELECT + p.site, + p.bu, + p.request_id, + p.workflow_id, + p.node_id, + p.domain_control_account, + p.document_no, + p.document_type, + p.seq_no, + p.reject_flag, + p.reject_node_id, + p.node_conclusion, + p.submit_date, + p.submitted_by, + p.create_date, + p.create_by, + p.update_date, + p.id, + p.is_remark, + p.classification_no, + p.step_id, + p.menu_id, + p.reject_opinion, + w.workflowname, + w.nodename, + u.username AS updateByUserName, + dbo.get_document_status(p.site, p.document_no, p.document_type) AS calc_status, + dbo.get_display_no(p.site, p.document_no, p.document_type) AS calc_display_no, + dbo.get_revision_no(p.site, p.document_no, p.document_type) AS calc_revision_no + FROM plm_process_form p WITH (NOLOCK) + LEFT JOIN [VIEW_Process_management_OA_PLM] w + ON p.workflow_id = w.workflowid AND p.node_id = w.nodeid + LEFT JOIN sys_user u + ON p.domain_control_account = u.domain_control_account + WHERE p.site = #{q.site} + AND ISNULL(p.process_intervention_flag, ' ') ]]> 'Y' + + AND UPPER(p.document_type) LIKE #{q.documentType} + + + AND CAST(p.workflow_id AS NVARCHAR(30)) LIKE #{q.workflowId} + + + AND w.workflowname LIKE #{q.workflowName} + + + AND CAST(p.node_id AS NVARCHAR(30)) LIKE #{q.nodeId} + + + AND w.nodename LIKE #{q.nodeName} + + + AND p.create_by LIKE #{q.createBy} + + + AND u.username LIKE #{q.updateBy} + + + AND p.document_no LIKE #{q.documentNo} + + ), + FilteredData AS ( + SELECT * FROM BaseData + WHERE calc_status ]]> N'已升版' + + AND calc_status LIKE #{q.documentStatus} + + + AND calc_display_no LIKE #{q.documentNo} + + ), + RankedData AS ( + SELECT + *, + ROW_NUMBER() OVER (PARTITION BY site, classification_no, document_no ORDER BY step_id DESC) AS rn + FROM FilteredData + ), + FinalData AS ( + SELECT * FROM RankedData WHERE rn = 1 + ) + + + +