From cc21e79cd80345b97cc899ddff02c962d4f432fc Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 23 四月 2025 14:48:03 +0800
Subject: [PATCH] feat(irrigate): 增加轮灌组名称重复性检查功能
---
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java | 1
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java | 15 +++++++
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java | 25 ++++++++++++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml | 17 ++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java | 10 +++++
5 files changed, 68 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
index e49bf93..b2be323 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
@@ -101,4 +101,19 @@
* @return
*/
List<VoIntake> getGroupIntakesList(Long groupId);
+
+ /**
+ * 鏍规嵁杞亴缁勫悕绉扮粺璁¤褰曟暟
+ * @param groupCode 杞亴缁勫悕绉�
+ * @return 鍖归厤鐨勮褰曟暟
+ */
+ int countByGroupCode(@Param("groupCode") String groupCode);
+
+ /**
+ * 鏍规嵁杞亴缁勫悕绉扮粺璁¤褰曟暟锛堟帓闄ゆ寚瀹欼D锛�
+ * @param groupCode 杞亴缁勫悕绉�
+ * @param excludeId 闇�瑕佹帓闄ょ殑杞亴缁処D
+ * @return 鍖归厤鐨勮褰曟暟
+ */
+ int countByGroupCodeExcludeId(@Param("groupCode") String groupCode, @Param("excludeId") Long excludeId);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
index 115fe2b..5305c81 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
@@ -362,4 +362,21 @@
INNER JOIN pr_controller con ON con.intakeId = gi.intake_id
WHERE gi.group_id = #{groupId}
</select>
+
+ <!--鏍规嵁杞亴缁勫悕绉扮粺璁¤褰曟暟-->
+ <select id="countByGroupCode" resultType="java.lang.Integer">
+ SELECT COUNT(*)
+ FROM ir_irrigate_group
+ WHERE group_code = #{groupCode}
+ AND deleted = 0
+ </select>
+
+ <!--鏍规嵁杞亴缁勫悕绉扮粺璁¤褰曟暟锛堟帓闄ゆ寚瀹欼D锛�-->
+ <select id="countByGroupCodeExcludeId" resultType="java.lang.Integer">
+ SELECT COUNT(*)
+ FROM ir_irrigate_group
+ WHERE group_code = #{groupCode}
+ AND id != #{excludeId}
+ AND deleted = 0
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
index 89c086e..77706f0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
@@ -460,6 +460,11 @@
if (bindingResult != null && bindingResult.hasErrors()) {
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
+
+ // 鍏堝垽鏂〃鍐呮槸鍚﹀瓨鍦ㄧ浉鍚岀殑 groupCode
+ if (irrigateGroupSv.existsByGroupCode(po.getGroupCode())) {
+ return BaseResponseUtils.buildFail(IrrigateResultCode.GROUP_CODE_ALREADY_EXISTS.getMessage());
+ }
Map map_result = irrigateGroupSv.addIrrigateGroup(po);
if(map_result.get("success").equals(false)) {
@@ -505,6 +510,11 @@
if(po.getGroupId() == null) {
return BaseResponseUtils.buildErrorMsg("杞亴缁処D涓嶈兘涓虹┖");
}
+
+ // 鍏堝垽鏂〃鍐呮槸鍚﹀瓨鍦ㄧ浉鍚岀殑 groupCode锛堟帓闄ゅ綋鍓嶆鍦ㄤ慨鏀圭殑璁板綍锛�
+ if (irrigateGroupSv.existsByGroupCodeExcludeId(po.getGroupCode(), po.getGroupId())) {
+ return BaseResponseUtils.buildFail(IrrigateResultCode.GROUP_CODE_ALREADY_EXISTS.getMessage());
+ }
Map map_result = irrigateGroupSv.updateIrrigateGroup(po);
if(map_result.get("success").equals(false)) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
index 1ff9050..da54d34 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
@@ -172,6 +172,31 @@
}
/**
+ * 鏍规嵁杞亴缁勫悕绉版煡璇㈡槸鍚﹀瓨鍦紙娣诲姞杞亴缁勬椂浣跨敤锛�
+ * @param groupCode 杞亴缁勫悕绉�
+ * @return 鏄惁瀛樺湪
+ */
+ public boolean existsByGroupCode(String groupCode) {
+ if (groupCode == null || "".equals(groupCode.trim())) {
+ return false;
+ }
+ return irIrrigateGroupMapper.countByGroupCode(groupCode) > 0;
+ }
+
+ /**
+ * 鏍规嵁杞亴缁勫悕绉版煡璇㈡槸鍚﹀瓨鍦紙淇敼杞亴缁勬椂浣跨敤锛屾帓闄ゅ綋鍓岻D锛�
+ * @param groupCode 杞亴缁勫悕绉�
+ * @param excludeId 闇�瑕佹帓闄ょ殑ID
+ * @return 鏄惁瀛樺湪
+ */
+ public boolean existsByGroupCodeExcludeId(String groupCode, Long excludeId) {
+ if (groupCode == null || "".equals(groupCode.trim())) {
+ return false;
+ }
+ return irIrrigateGroupMapper.countByGroupCodeExcludeId(groupCode, excludeId) > 0;
+ }
+
+ /**
* 鍒犻櫎杞亴缁勪笌鍐滄埛绠$悊
* @param id
* @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
index c13d4b1..96ac899 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
@@ -42,6 +42,7 @@
GROUP_ADD_UNIT_FAIL(30006, "杞亴缁勬坊鍔犵亴婧夊崟鍏冨け璐�"),
GROUP_DELETE_UNIT_FAIL(30007, "杞亴缁勭Щ闄ょ亴婧夊崟鍏冨け璐�"),
UPDATE_GROUP_BIND_UNIT_FAIL(30008, "淇敼杞亴缁勭粦瀹氱殑鐏屾簤鍗曞厓澶辫触"),
+ GROUP_CODE_ALREADY_EXISTS(30009, "杞亴缁勫悕绉板凡瀛樺湪"),
/**
* 浣滅墿
--
Gitblit v1.8.0