From 2051bee1a9eb333a03496d132e3da6f4f5c2a00b Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Wed, 24 Jun 2026 14:05:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gaotao/modules/base/dao/BaseMapper.java | 16 +- .../base/service/Impl/BaseServiceImpl.java | 370 ++++++++---------- src/main/resources/mapper/base/BaseMapper.xml | 65 ++- 3 files changed, 233 insertions(+), 218 deletions(-) diff --git a/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java b/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java index 3229046..0cc6a69 100644 --- a/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java +++ b/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java @@ -71,7 +71,7 @@ public interface BaseMapper { * @date 2023/1/4 10:26 * @version 1.0 */ - void insertDefaultLabelSetting(DefaultLabelSettingData inData); + int insertDefaultLabelSetting(DefaultLabelSettingData inData); /** * @description: 修改默认标签的配置信息 @@ -79,7 +79,7 @@ public interface BaseMapper { * @date 2023/1/4 10:27 * @version 1.0 */ - void updateDefaultLabelSetting(DefaultLabelSettingData inData); + int updateDefaultLabelSetting(DefaultLabelSettingData inData); /** * @description: 删除默认标签的配置信息 @@ -87,7 +87,9 @@ public interface BaseMapper { * @date 2023/1/4 10:28 * @version 1.0 */ - void deleteDefaultLabelSetting(DefaultLabelSettingData inData); + int deleteDefaultLabelSetting(DefaultLabelSettingData inData); + + int countDefaultLabelSetting(DefaultLabelSettingData inData); /** * @description: 查询客制化标签的配置信息 @@ -103,7 +105,7 @@ public interface BaseMapper { * @date 2023/1/5 11:48 * @version 1.0 */ - void insertCustomerLabelSetting(CustomerLabelSettingData inData); + int insertCustomerLabelSetting(CustomerLabelSettingData inData); /** * @description: 修改客制化标签配置信息 @@ -111,7 +113,7 @@ public interface BaseMapper { * @date 2023/1/5 11:52 * @version 1.0 */ - void updateCustomerLabelSetting(CustomerLabelSettingData inData); + int updateCustomerLabelSetting(CustomerLabelSettingData inData); /** * @description: 删除客制化标签的配置信息 @@ -119,7 +121,9 @@ public interface BaseMapper { * @date 2023/1/5 13:29 * @version 1.0 */ - void deleteCustomerLabelSetting(CustomerLabelSettingData inData); + int deleteCustomerLabelSetting(CustomerLabelSettingData inData); + + int countCustomerLabelSetting(CustomerLabelSettingData inData); /** * @description: 获取用户的标签打印机配置信息 diff --git a/src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java b/src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java index 595633e..46b04f1 100644 --- a/src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java +++ b/src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java @@ -151,116 +151,44 @@ public class BaseServiceImpl implements BaseService { @Override @Transactional public void insertDefaultLabelSetting(DefaultLabelSettingData inData) { - //公共参数 - String labelNo = inData.getLabelNo(); - String labelType = inData.getLabelType(); - String subLabelFlag = inData.getSubLabelFlag(); - String parentLabelNo = inData.getParentLabelNo(); - String checkFlag = inData.getCheckFlag(); - //调用存储过程 判断是否可以新增 - Map checkMap = this.checkInsertDefaultLabelSetting(labelNo, labelType, subLabelFlag, parentLabelNo, checkFlag); - //判断是否检验成功 - String resultCode = String.valueOf(checkMap.get("resultCode")); - if (!"200".equalsIgnoreCase(resultCode)) { - String msg = String.valueOf(checkMap.get("resultMsg")); - String objectId = String.valueOf(checkMap.get("objectId")); - throw new XJException(msg, Integer.parseInt(resultCode), objectId); + // 统一规范输入数据 + normalizeDefaultLabelSettingData(inData); + // 业务校验 + validateDefaultLabelSettingData(inData); + // 防重复新增 + if (baseMapper.countDefaultLabelSetting(inData) > 0) { + throw new XJException("默认标签配置已存在,不能重复新增!"); } - //首先校验当前的信息是否可以插入 baseMapper.insertDefaultLabelSetting(inData); } - /** - * @description: 检查是否可以插入当前的默认标签配置数据 - * @author LR - * @date 2023/1/4 11:53 - * @version 1.0 - */ - public Map checkInsertDefaultLabelSetting(String labelNo, String labelType, String subLabelFlag, String parentLabelNo, String checkFlag) { - List params = new ArrayList<>(); - params.add(labelNo); - params.add(labelType); - params.add(subLabelFlag); - params.add(parentLabelNo); - params.add(checkFlag); - //存储过程 调用存储过程 创建分卷 - List> resultList = procedureMapper.getProcedureData("checkInsertDefaultLabelSetting", params); - //返回结果 - return resultList.get(0); - } - @Override @Transactional public void updateDefaultLabelSetting(DefaultLabelSettingData inData) { - //公共参数 - String labelNo = inData.getLabelNo(); - String labelType = inData.getLabelType(); - String subLabelFlag = inData.getSubLabelFlag(); - String parentLabelNo = inData.getParentLabelNo(); - String checkFlag = inData.getCheckFlag(); - //调用存储过程 判断是否可以新增 - Map checkMap = this.checkUpdateDefaultLabelSetting(labelNo, labelType, subLabelFlag, parentLabelNo, checkFlag); - //判断是否检验成功 - String resultCode = String.valueOf(checkMap.get("resultCode")); - if (!"200".equalsIgnoreCase(resultCode)) { - String msg = String.valueOf(checkMap.get("resultMsg")); - String objectId = String.valueOf(checkMap.get("objectId")); - throw new XJException(msg, Integer.parseInt(resultCode), objectId); + // 统一规范输入数据 + normalizeDefaultLabelSettingData(inData); + // 业务校验 + validateDefaultLabelSettingData(inData); + // 执行更新并校验是否更新成功 + int effectRows = baseMapper.updateDefaultLabelSetting(inData); + if (effectRows <= 0) { + throw new XJException("未找到可修改的默认标签配置,请刷新后重试!"); } - baseMapper.updateDefaultLabelSetting(inData); - } - - /** - * @description: 调用存储过程 判断是否可以修改默认标签配置信息 - * @author LR - * @date 2023/1/4 13:03 - * @version 1.0 - */ - public Map checkUpdateDefaultLabelSetting(String labelNo, String labelType, String subLabelFlag, String parentLabelNo, String checkFlag) { - List params = new ArrayList<>(); - params.add(labelNo); - params.add(labelType); - params.add(subLabelFlag); - params.add(parentLabelNo); - params.add(checkFlag); - //存储过程 调用存储过程 创建分卷 - List> resultList = procedureMapper.getProcedureData("checkUpdateDefaultLabelSetting", params); - //返回结果 - return resultList.get(0); } @Override @Transactional public void deleteDefaultLabelSetting(DefaultLabelSettingData inData) { - //公共参数 - String labelNo = inData.getLabelNo(); - String subLabelFlag = inData.getSubLabelFlag(); - //调用存储过程 判断是否可以新增 - Map checkMap = this.checkDeleteDefaultLabelSetting(labelNo, subLabelFlag); - //判断是否检验成功 - String resultCode = String.valueOf(checkMap.get("resultCode")); - if (!"200".equalsIgnoreCase(resultCode)) { - String msg = String.valueOf(checkMap.get("resultMsg")); - String objectId = String.valueOf(checkMap.get("objectId")); - throw new XJException(msg, Integer.parseInt(resultCode), objectId); + // 统一规范输入数据 + normalizeDefaultLabelSettingData(inData); + if (isBlank(inData.getLabelNo())) { + throw new XJException("标签编号不能为空!"); + } + // 执行删除并校验是否删除成功 + int effectRows = baseMapper.deleteDefaultLabelSetting(inData); + if (effectRows <= 0) { + throw new XJException("未找到可删除的默认标签配置,请刷新后重试!"); } - baseMapper.deleteDefaultLabelSetting(inData); - } - - /** - * @description: 调用存储过程 判断是否可以删除 - * @author LR - * @date 2023/1/4 13:05 - * @version 1.0 - */ - public Map checkDeleteDefaultLabelSetting(String labelNo, String subLabelFlag) { - List params = new ArrayList<>(); - params.add(labelNo); - params.add(subLabelFlag); - //存储过程 调用存储过程 创建分卷 - List> resultList = procedureMapper.getProcedureData("checkDeleteDefaultLabelSetting", params); - //返回结果 - return resultList.get(0); } @Override @@ -278,132 +206,170 @@ public class BaseServiceImpl implements BaseService { @Override @Transactional public void insertCustomerLabelSetting(CustomerLabelSettingData inData) { - //公共参数 - String site = inData.getSite(); - String userId = inData.getUsername(); - String customerId = inData.getCustomerId(); - String labelNo = inData.getLabelNo(); - String labelType = inData.getLabelType(); - String subLabelFlag = inData.getSubLabelFlag(); - String parentLabelNo = inData.getParentLabelNo(); - String checkFlag = inData.getCheckFlag(); - //调用存储过程 判断是否可以新增 - Map checkMap = this.checkInsertCustomerLabelSetting(site, userId, customerId, labelNo, labelType, subLabelFlag, parentLabelNo, checkFlag); - //判断是否检验成功 - String resultCode = String.valueOf(checkMap.get("resultCode")); - if (!"200".equalsIgnoreCase(resultCode)) { - String msg = String.valueOf(checkMap.get("resultMsg")); - String objectId = String.valueOf(checkMap.get("objectId")); - throw new XJException(msg, Integer.parseInt(resultCode), objectId); + // 统一规范输入数据 + normalizeCustomerLabelSettingData(inData); + // 业务校验 + validateCustomerLabelSettingData(inData); + // 防重复新增 + if (baseMapper.countCustomerLabelSetting(inData) > 0) { + throw new XJException("客户标签配置已存在,不能重复新增!"); } baseMapper.insertCustomerLabelSetting(inData); } - /** - * @description: 调用存储过程 执行查询是否可以插入客制化标签的配置信息 - * @author LR - * @date 2023/1/5 11:45 - * @version 1.0 - */ - public Map checkInsertCustomerLabelSetting(String site, String userId, String customerId, String labelNo, String labelType, - String subLabelFlag, String parentLabelNo, String checkFlag) { - List params = new ArrayList<>(); - params.add(site); - params.add(userId); - params.add(customerId); - params.add(labelNo); - params.add(labelType); - params.add(subLabelFlag); - params.add(parentLabelNo); - params.add(checkFlag); - //存储过程 调用存储过程 创建分卷 - List> resultList = procedureMapper.getProcedureData("checkInsertCustomerLabelSetting", params); - //返回结果 - return resultList.get(0); + @Override + @Transactional + public void updateCustomerLabelSetting(CustomerLabelSettingData inData) { + // 统一规范输入数据 + normalizeCustomerLabelSettingData(inData); + // 业务校验 + validateCustomerLabelSettingData(inData); + // 执行更新并校验是否更新成功 + int effectRows = baseMapper.updateCustomerLabelSetting(inData); + if (effectRows <= 0) { + throw new XJException("未找到可修改的客户标签配置,请刷新后重试!"); + } } @Override @Transactional - public void updateCustomerLabelSetting(CustomerLabelSettingData inData) { - //公共参数 - String site = inData.getSite(); - String customerId = inData.getCustomerId(); - String labelNo = inData.getLabelNo(); - String labelType = inData.getLabelType(); - String subLabelFlag = inData.getSubLabelFlag(); - String parentLabelNo = inData.getParentLabelNo(); - String checkFlag = inData.getCheckFlag(); - //调用存储过程 判断是否可以新增 - Map checkMap = this.checkUpdateCustomerLabelSetting(site, customerId, labelNo, labelType, subLabelFlag, parentLabelNo, checkFlag); - //判断是否检验成功 - String resultCode = String.valueOf(checkMap.get("resultCode")); - if (!"200".equalsIgnoreCase(resultCode)) { - String msg = String.valueOf(checkMap.get("resultMsg")); - String objectId = String.valueOf(checkMap.get("objectId")); - throw new XJException(msg, Integer.parseInt(resultCode), objectId); + public void deleteCustomerLabelSetting(CustomerLabelSettingData inData) { + // 统一规范输入数据 + normalizeCustomerLabelSettingData(inData); + if (isBlank(inData.getSite())) { + throw new XJException("工厂不能为空!"); + } + if (isBlank(inData.getCustomerId())) { + throw new XJException("客户编码不能为空!"); + } + if (isBlank(inData.getAddressNo())) { + throw new XJException("地址编码不能为空!"); + } + if (isBlank(inData.getLabelNo())) { + throw new XJException("标签编号不能为空!"); + } + // 执行删除并校验是否删除成功 + int effectRows = baseMapper.deleteCustomerLabelSetting(inData); + if (effectRows <= 0) { + throw new XJException("未找到可删除的客户标签配置,请刷新后重试!"); } - baseMapper.updateCustomerLabelSetting(inData); } /** - * @description: 调用存储过程 校验是否可以修改客制化标签的配置信息 - * @author LR - * @date 2023/1/5 11:51 - * @version 1.0 + * 规范默认标签配置数据 */ - public Map checkUpdateCustomerLabelSetting(String site, String customerId, String labelNo, String labelType, - String subLabelFlag, String parentLabelNo, String checkFlag) { - List params = new ArrayList<>(); - params.add(site); - params.add(customerId); - params.add(labelNo); - params.add(labelType); - params.add(subLabelFlag); - params.add(parentLabelNo); - params.add(checkFlag); - //存储过程 调用存储过程 创建分卷 - List> resultList = procedureMapper.getProcedureData("checkUpdateCustomerLabelSetting", params); - //返回结果 - return resultList.get(0); + private void normalizeDefaultLabelSettingData(DefaultLabelSettingData inData) { + inData.setLabelNo(trimUpper(inData.getLabelNo())); + inData.setLabelType(trimToEmpty(inData.getLabelType())); + inData.setRemark(trimToEmpty(inData.getRemark())); + String subLabelFlag = "Y".equalsIgnoreCase(trimToEmpty(inData.getSubLabelFlag())) ? "Y" : "N"; + inData.setSubLabelFlag(subLabelFlag); + String parentLabelNo = trimUpper(inData.getParentLabelNo()); + inData.setParentLabelNo("Y".equals(subLabelFlag) ? parentLabelNo : "*"); } - @Override - @Transactional - public void deleteCustomerLabelSetting(CustomerLabelSettingData inData) { - //公共参数 - String site = inData.getSite(); - String customerId = inData.getCustomerId(); - String labelNo = inData.getLabelNo(); - String subLabelFlag = inData.getSubLabelFlag(); + /** + * 校验默认标签配置数据 + */ + private void validateDefaultLabelSettingData(DefaultLabelSettingData inData) { + if (isBlank(inData.getLabelNo())) { + throw new XJException("标签编号不能为空!"); + } + LabelSettingData labelSetting = baseMapper.getLabelSettingByLabelNo(inData.getLabelNo()); + if (labelSetting == null) { + throw new XJException(sysMsgService.getLanguageMsg(SysMsgConstant.OBJECT_ID_200077)); + } + if (!isBlank(labelSetting.getLabelType())) { + inData.setLabelType(trimToEmpty(labelSetting.getLabelType())); + } + if (isBlank(inData.getLabelType())) { + throw new XJException("标签类型不能为空!"); + } + if ("Y".equals(inData.getSubLabelFlag())) { + if (isBlank(inData.getParentLabelNo()) || "*".equals(inData.getParentLabelNo())) { + throw new XJException("子报表必须维护上级标签编号!"); + } + if (inData.getLabelNo().equalsIgnoreCase(inData.getParentLabelNo())) { + throw new XJException("上级标签编号不能与当前标签编号相同!"); + } + LabelSettingData parentLabel = baseMapper.getLabelSettingByLabelNo(inData.getParentLabelNo()); + if (parentLabel == null) { + throw new XJException("上级标签编号不存在!"); + } + } else { + inData.setParentLabelNo("*"); + } + } - //调用存储过程 判断是否可以新增 - /* Map checkMap = this.checkDeleteCustomerLabelSetting(site, customerId, labelNo, subLabelFlag); - //判断是否检验成功 - String resultCode = String.valueOf(checkMap.get("resultCode")); - if (!"200".equalsIgnoreCase(resultCode)) { - String msg = String.valueOf(checkMap.get("resultMsg")); - String objectId = String.valueOf(checkMap.get("objectId")); - throw new XJException(msg, Integer.parseInt(resultCode), objectId); - }*/ - baseMapper.deleteCustomerLabelSetting(inData); + /** + * 规范客户标签配置数据 + */ + private void normalizeCustomerLabelSettingData(CustomerLabelSettingData inData) { + inData.setSite(trimToEmpty(inData.getSite())); + inData.setUsername(trimToEmpty(inData.getUsername())); + inData.setCustomerId(trimUpper(inData.getCustomerId())); + inData.setAddressNo(trimUpper(inData.getAddressNo())); + inData.setLabelNo(trimUpper(inData.getLabelNo())); + inData.setLabelType(trimToEmpty(inData.getLabelType())); + inData.setRemark(trimToEmpty(inData.getRemark())); + String subLabelFlag = "Y".equalsIgnoreCase(trimToEmpty(inData.getSubLabelFlag())) ? "Y" : "N"; + inData.setSubLabelFlag(subLabelFlag); + String parentLabelNo = trimUpper(inData.getParentLabelNo()); + inData.setParentLabelNo("Y".equals(subLabelFlag) ? parentLabelNo : "*"); } /** - * @description: 调用存储过程 检验是否可以删除客制化标签的配置信息 - * @author LR - * @date 2023/1/5 13:29 - * @version 1.0 + * 校验客户标签配置数据 */ - public Map checkDeleteCustomerLabelSetting(String site, String customerId, String labelNo, String subLabelFlag) { - List params = new ArrayList<>(); - params.add(site); - params.add(customerId); - params.add(labelNo); - params.add(subLabelFlag); - //存储过程 调用存储过程 创建分卷 - List> resultList = procedureMapper.getProcedureData("checkDeleteCustomerLabelSetting", params); - //返回结果 - return resultList.get(0); + private void validateCustomerLabelSettingData(CustomerLabelSettingData inData) { + if (isBlank(inData.getSite())) { + throw new XJException("工厂不能为空!"); + } + if (isBlank(inData.getCustomerId())) { + throw new XJException("客户编码不能为空!"); + } + if (isBlank(inData.getAddressNo())) { + throw new XJException("地址编码不能为空!"); + } + if (isBlank(inData.getLabelNo())) { + throw new XJException("标签编号不能为空!"); + } + LabelSettingData labelSetting = baseMapper.getLabelSettingByLabelNo(inData.getLabelNo()); + if (labelSetting == null) { + throw new XJException(sysMsgService.getLanguageMsg(SysMsgConstant.OBJECT_ID_200077)); + } + if (!isBlank(labelSetting.getLabelType())) { + inData.setLabelType(trimToEmpty(labelSetting.getLabelType())); + } + if (isBlank(inData.getLabelType())) { + throw new XJException("标签类型不能为空!"); + } + if ("Y".equals(inData.getSubLabelFlag())) { + if (isBlank(inData.getParentLabelNo()) || "*".equals(inData.getParentLabelNo())) { + throw new XJException("子报表必须维护上级标签编号!"); + } + if (inData.getLabelNo().equalsIgnoreCase(inData.getParentLabelNo())) { + throw new XJException("上级标签编号不能与当前标签编号相同!"); + } + LabelSettingData parentLabel = baseMapper.getLabelSettingByLabelNo(inData.getParentLabelNo()); + if (parentLabel == null) { + throw new XJException("上级标签编号不存在!"); + } + } else { + inData.setParentLabelNo("*"); + } + } + + private String trimToEmpty(String value) { + return value == null ? "" : value.trim(); + } + + private String trimUpper(String value) { + return trimToEmpty(value).toUpperCase(); + } + + private boolean isBlank(String value) { + return value == null || value.trim().isEmpty(); } @Override diff --git a/src/main/resources/mapper/base/BaseMapper.xml b/src/main/resources/mapper/base/BaseMapper.xml index 6cc662f..4fe51d5 100644 --- a/src/main/resources/mapper/base/BaseMapper.xml +++ b/src/main/resources/mapper/base/BaseMapper.xml @@ -83,7 +83,9 @@ resultType="DefaultLabelSettingData"> SELECT rfd.ReportFamily labelType, rfd.ReportID labelNo, rfl.ReportType labelClass, rfl.Reportfile labelName, rfd.Remark remark, - rfd.SubReportFlag subLabelFlag, rfd.ParentReportID parentLabelNo FROM ReportFileDefDefault rfd + rfd.SubReportFlag subLabelFlag, + CASE WHEN ISNULL(rfd.ParentReportID, '') = '*' THEN '' ELSE ISNULL(rfd.ParentReportID, '') END parentLabelNo + FROM ReportFileDefDefault rfd LEFT JOIN ReportFileList rfl ON rfl.ReportID = rfd.ReportID AND rfl.ReportID = rfd.ReportID @@ -111,7 +113,11 @@ UPDATE ReportFileDefDefault SET SubReportFlag = #{subLabelFlag}, ParentReportID = #{parentLabelNo}, Remark = #{remark} - AND ReportID = #{labelNo} AND ReportFamily = #{labelType} AND FamilyID = '*' + AND ReportID = #{labelNo} + AND FamilyID = '*' + + AND ReportFamily = #{labelType} + @@ -119,10 +125,26 @@ DELETE FROM ReportFileDefDefault - AND ReportID = #{labelNo} AND ReportFamily = #{labelType} AND FamilyID = '*' + AND ReportID = #{labelNo} + AND FamilyID = '*' + + AND ReportFamily = #{labelType} + + + + SELECT COUNT(1) + FROM ReportFileDefCustomer + + AND Site = #{site} + AND ReportID = #{labelNo} + AND CustomerID = #{customerId} + AND FamilyID = '*' + + AND ReportFamily = #{labelType} + + AND AddressNo = #{addressNo} + + +