From 67e4843c694c26b06e0d17680b22902f2a055084 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Fri, 29 May 2026 08:58:09 +0800 Subject: [PATCH] =?UTF-8?q?2026-05-29=20=E6=96=B0=E5=A2=9E=E6=8A=80?= =?UTF-8?q?=E6=9C=AF=E5=8F=82=E6=95=B0=E5=8D=A1-=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlmTechnicalSpecificationSheetData.java | 10 ++++++++- .../TechnicalSpecificationServiceImpl.java | 22 +++++++++++++++---- .../spring/modules/sift/vo/QuerySavedVo.java | 6 +++-- .../sys/controller/SysLoginController.java | 2 +- .../TechnicalSpecificationMapper.xml | 16 ++++++++++++-- 5 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/spring/modules/sampleManagement/data/PlmTechnicalSpecificationSheetData.java b/src/main/java/com/spring/modules/sampleManagement/data/PlmTechnicalSpecificationSheetData.java index e38dfd48..a6b9fe3c 100644 --- a/src/main/java/com/spring/modules/sampleManagement/data/PlmTechnicalSpecificationSheetData.java +++ b/src/main/java/com/spring/modules/sampleManagement/data/PlmTechnicalSpecificationSheetData.java @@ -1,7 +1,6 @@ package com.spring.modules.sampleManagement.data; import com.spring.modules.sampleManagement.entity.PlmTechnicalSpecificationSheet; -import io.swagger.models.auth.In; import org.apache.ibatis.type.Alias; import java.util.List; @@ -11,6 +10,7 @@ public class PlmTechnicalSpecificationSheetData extends PlmTechnicalSpecificatio private String partType; private String partTypeDesc; private String statusDesc; + private List excludeStatusList; private String partName; private String partDesc; private String finalPartNo; @@ -454,6 +454,14 @@ public class PlmTechnicalSpecificationSheetData extends PlmTechnicalSpecificatio this.statusDesc = statusDesc; } + public List getExcludeStatusList() { + return excludeStatusList; + } + + public void setExcludeStatusList(List excludeStatusList) { + this.excludeStatusList = excludeStatusList; + } + public String getPartName() { return partName; } diff --git a/src/main/java/com/spring/modules/sampleManagement/service/Impl/TechnicalSpecificationServiceImpl.java b/src/main/java/com/spring/modules/sampleManagement/service/Impl/TechnicalSpecificationServiceImpl.java index 072d1b3b..e774d2b6 100644 --- a/src/main/java/com/spring/modules/sampleManagement/service/Impl/TechnicalSpecificationServiceImpl.java +++ b/src/main/java/com/spring/modules/sampleManagement/service/Impl/TechnicalSpecificationServiceImpl.java @@ -2243,13 +2243,12 @@ public class TechnicalSpecificationServiceImpl implements TechnicalSpecification .collect(Collectors.toList()); String statusSymbol = symbolTrans(symbolMap.get("statusDesc")); String testPartNoSymbol = symbolTrans(symbolMap.get("testPartNo")); - String buNoSymbol = symbolTrans(symbolMap.get("buNo")); String customerDescSymbol = symbolTrans(symbolMap.get("customerDesc")); + String statusExcludeClause = buildStatusExcludeClause(querySavedVo.getExcludeStatusList()); String cutterNumber = null; - boolean buNoFlag = false; for (int i = 0; i < whereConditionArr.length; i++) { if (whereConditionArr[i].contains("status_desc")) { - whereConditionArr[i] = "a.status != 'death' AND a.status " + statusSymbol + filteredList.get(i).getFormula(); + whereConditionArr[i] = statusExcludeClause + " AND a.status " + statusSymbol + filteredList.get(i).getFormula(); } if (whereConditionArr[i].contains("test_part_no")) { if (testPartNoSymbol.equals("like")){ @@ -2274,7 +2273,8 @@ public class TechnicalSpecificationServiceImpl implements TechnicalSpecification } } whereClause = String.join(" AND ", validConditions); - whereClause = (whereClause.isEmpty() ? "a.site = '" + querySavedVo.getSite() + "' and a.status != 'death' and b.bu_no in (select bu_No from dbo.Get_Now_BU_chooseAble('" + querySavedVo.getSite() + "', '" + querySavedVo.getUserName() + "'))" : whereClause + " AND a.site = '" + querySavedVo.getSite() + "' and a.status != 'death' and b.bu_no in (select bu_No from dbo.Get_Now_BU_chooseAble('" + querySavedVo.getSite() + "', '" + querySavedVo.getUserName() + "'))").trim(); + String baseWhereClause = "a.site = '" + querySavedVo.getSite() + "' and " + statusExcludeClause + " and b.bu_no in (select bu_No from dbo.Get_Now_BU_chooseAble('" + querySavedVo.getSite() + "', '" + querySavedVo.getUserName() + "'))"; + whereClause = (whereClause.isEmpty() ? baseWhereClause : whereClause + " AND " + baseWhereClause).trim(); orderClause = orderClause.trim(); cutterNumber = cutterNumber == null ? "" : cutterNumber.trim(); Map params = new HashMap<>(); @@ -2290,6 +2290,20 @@ public class TechnicalSpecificationServiceImpl implements TechnicalSpecification return new PageUtils(list, count.intValue(), querySavedVo.getNo(), querySavedVo.getSize()); } + private String buildStatusExcludeClause(List excludeStatusList) { + if (excludeStatusList == null || excludeStatusList.isEmpty()) { + return "a.status != 'death'"; + } + String statusList = excludeStatusList.stream() + .filter(StringUtils::hasText) + .map(status -> "'" + status.replace("'", "''") + "'") + .collect(Collectors.joining(",")); + if (!StringUtils.hasText(statusList)) { + return "a.status != 'death'"; + } + return "a.status not in (" + statusList + ")"; + } + /** * 新增工具 * @param data diff --git a/src/main/java/com/spring/modules/sift/vo/QuerySavedVo.java b/src/main/java/com/spring/modules/sift/vo/QuerySavedVo.java index a34ef376..04385d4a 100644 --- a/src/main/java/com/spring/modules/sift/vo/QuerySavedVo.java +++ b/src/main/java/com/spring/modules/sift/vo/QuerySavedVo.java @@ -2,11 +2,9 @@ package com.spring.modules.sift.vo; import com.spring.modules.sift.entity.QuerySavedDetail; import com.spring.modules.sift.entity.QuerySavedHeader; -import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; import java.util.List; @EqualsAndHashCode(callSuper = true) @@ -31,6 +29,10 @@ public class QuerySavedVo extends QuerySavedHeader{ private int no; @EqualsAndHashCode.Exclude private int size; + + @EqualsAndHashCode.Exclude + private List excludeStatusList; + @Override public String toString() { return super.toString(); diff --git a/src/main/java/com/spring/modules/sys/controller/SysLoginController.java b/src/main/java/com/spring/modules/sys/controller/SysLoginController.java index 5a89adfc..3ecd9f8a 100644 --- a/src/main/java/com/spring/modules/sys/controller/SysLoginController.java +++ b/src/main/java/com/spring/modules/sys/controller/SysLoginController.java @@ -140,7 +140,7 @@ public class SysLoginController extends AbstractController { // 规则2:当前账号开启“单机登录限制”时,账号只能在绑定电脑登录 if (Integer.valueOf(1).equals(user.getSingleComputerLimit())) { if (StringUtils.isBlank(currentDeviceId)) { - return R.error("账号已开启单机登录限制,请先启动本地小程序后再登录"); + return R.error("该账号已限制单设备登陆,请检查本地服务是否运行!"); } String bindDeviceId = normalizeDeviceId(user.getBindDeviceId()); // 首次登录自动绑定当前设备 diff --git a/src/main/resources/mapper/sampleManagement/TechnicalSpecificationMapper.xml b/src/main/resources/mapper/sampleManagement/TechnicalSpecificationMapper.xml index d10be4f4..4197c111 100644 --- a/src/main/resources/mapper/sampleManagement/TechnicalSpecificationMapper.xml +++ b/src/main/resources/mapper/sampleManagement/TechnicalSpecificationMapper.xml @@ -2599,7 +2599,13 @@ AND ( dbo.plm_get_customer_desc(c.site, c.customer_id) like #{customerDesc}) - + + and a.status not in + + #{statusItem} + + + and a.status != 'death' @@ -2671,7 +2677,13 @@ dbo.plm_get_dictDataLabel('finalCustomer', c.final_customer_id, c.site) like #{customerDesc} ) - + + and a.status not in + + #{statusItem} + + + and a.status != 'death'