zuoxiao
4 天以前 cc21e79cd80345b97cc899ddff02c962d4f432fc
feat(irrigate): 增加轮灌组名称重复性检查功能

- 在 IrIrrigateGroupMapper 中添加了 countByGroupCode 和 countByGroupCodeExcludeId 方法
- 在 IrrigateGroupCtrl 中增加了添加和修改轮灌组时的名称重复性检查
- 在 IrrigateGroupSv 中实现了 existsByGroupCode 和 existsByGroupCodeExcludeId 方法
- 在 IrrigateResultCode 中添加了 GROUP_CODE_ALREADY_EXISTS 错误码
5个文件已修改
68 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    /**
     * 根据轮灌组名称统计记录数(排除指定ID)
     * @param groupCode 轮灌组名称
     * @param excludeId 需要排除的轮灌组ID
     * @return 匹配的记录数
     */
    int countByGroupCodeExcludeId(@Param("groupCode") String groupCode, @Param("excludeId") Long excludeId);
}
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>
  <!--根据轮灌组名称统计记录数(排除指定ID)-->
  <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>
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("轮灌组ID不能为空");
        }
        // 先判断表内是否存在相同的 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)) {
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;
    }
    /**
     * 根据轮灌组名称查询是否存在(修改轮灌组时使用,排除当前ID)
     * @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
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, "轮灌组名称已存在"),
    /**
     * 作物