feat(irrigate): 增加轮灌组名称重复性检查功能
- 在 IrIrrigateGroupMapper 中添加了 countByGroupCode 和 countByGroupCodeExcludeId 方法
- 在 IrrigateGroupCtrl 中增加了添加和修改轮灌组时的名称重复性检查
- 在 IrrigateGroupSv 中实现了 existsByGroupCode 和 existsByGroupCodeExcludeId 方法
- 在 IrrigateResultCode 中添加了 GROUP_CODE_ALREADY_EXISTS 错误码
| | |
| | | * @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); |
| | | } |
| | |
| | | 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> |
| | |
| | | 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)) { |
| | |
| | | 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)) { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 根据轮灌组名称查询是否存在(添加轮灌组时使用) |
| | | * @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 |
| | |
| | | GROUP_ADD_UNIT_FAIL(30006, "轮灌组添加灌溉单元失败"), |
| | | GROUP_DELETE_UNIT_FAIL(30007, "轮灌组移除灌溉单元失败"), |
| | | UPDATE_GROUP_BIND_UNIT_FAIL(30008, "修改轮灌组绑定的灌溉单元失败"), |
| | | GROUP_CODE_ALREADY_EXISTS(30009, "轮灌组名称已存在"), |
| | | |
| | | /** |
| | | * 作物 |