package com.dy.pipIrrIrrigate.irrigateGroup; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoIr.IrGroupClientMapper; import com.dy.pipIrrGlobal.daoIr.IrGroupIntakeMapper; import com.dy.pipIrrGlobal.daoIr.IrGroupUnitMapper; import com.dy.pipIrrGlobal.daoIr.IrIrrigateGroupMapper; import com.dy.pipIrrGlobal.pojoIr.IrGroupClient; import com.dy.pipIrrGlobal.pojoIr.IrGroupIntake; import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit; import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup; import com.dy.pipIrrGlobal.voIr.VoGroup; import com.dy.pipIrrGlobal.voIr.VoGroupDetail; import com.dy.pipIrrGlobal.voIr.VoGroupOne; import com.dy.pipIrrGlobal.voIr.VoGroupSimple; import com.dy.pipIrrIrrigate.irrigateGroup.dto.IrrigateGroup; import com.dy.pipIrrIrrigate.irrigateGroup.qo.QoGroup; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author :WuZeYu * @Date :2024/5/21 15:57 * @LastEditTime :2024/5/21 15:57 * @Description */ @Slf4j @Service public class IrrigateGroupSv { @Autowired private IrIrrigateGroupMapper irIrrigateGroupMapper; @Autowired private IrGroupUnitMapper irGroupUnitMapper; @Autowired private IrGroupClientMapper irGroupClientMapper; @Autowired private IrGroupIntakeMapper irGroupIntakeMapper; /** * 创建轮灌组 * * @param po * @return */ public Integer addIrrigateGroup(IrIrrigateGroup po) { po.setOperateTime(new Date()); po.setDeleted((byte) 0); int rows = irIrrigateGroupMapper.insertSelective(po); if (rows == 0) { return 0; } return 1; } /** * 删除轮灌组 * * @param id */ public Integer deleteIrrigateGroup(Long id) { int rows = irIrrigateGroupMapper.deleteLogicById(id); int rows1 = irGroupUnitMapper.deleteByGroupId(id); if (rows == 0) { return 0; } return 1; } /** * 修改轮灌组 * @param po * @return */ public Integer updateIrrigateGroup(IrIrrigateGroup po){ po.setOperateTime(new Date()); int rows = irIrrigateGroupMapper.updateByPrimaryKeySelective(po); if (rows == 0){ return 0; } return 1; } /** * 获取一个轮灌组 * @param id * @return */ public VoGroupOne selectById(Long id){ VoGroupOne unit = irIrrigateGroupMapper.selectById(id); return unit; } /** * 分页查询轮灌组 * @param queryVo * @return */ public QueryResultVo> getIrrigateGroups(QueryVo queryVo){ Map params = (Map) PojoUtils.generalize(queryVo); Long itemTotal = irIrrigateGroupMapper.getRecordCount(params); QueryResultVo> rsVo = new QueryResultVo<>(); rsVo.pageSize = queryVo.pageSize; rsVo.pageCurr = queryVo.pageCurr; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = irIrrigateGroupMapper.getIrrigateGroups(params); return rsVo; } /** * 轮灌组添加灌溉单元 * * @param po * @return */ public Integer addGroupUnit(IrGroupUnit po) { po.setOperateDt(new Date()); int rows = irGroupUnitMapper.insertSelective(po); if (rows == 0) { return 0; } return 1; } /** * 轮灌组移除灌溉单元 * * @param po * @return */ public Integer deleteGroupUnit(IrGroupUnit po) { int rows = irGroupUnitMapper.deleteByUnitIdGroupId(po); if (rows == 0) { return 0; } return 1; } /** * 查一个轮灌组绑定的灌溉单元id * @param groupId * @return */ public List getGroupBindUnits(Long groupId) { List groupBindUnits = irGroupUnitMapper.getGroupBindUnits(groupId); return groupBindUnits; } /** * //查未绑定轮灌组的灌溉单元id * @return */ public List getNotBindUnits() { List notBindUnits = irGroupUnitMapper.getNotBindUnits(); return notBindUnits; } //轮灌组关联农户 public Long addGroupClient(IrGroupClient po) { irGroupClientMapper.insert(po); return po.getId(); } /** * 根据轮灌组名称查询是否存在(添加轮灌组时使用) * @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 */ public Integer deleteGroupClient (Long id) { return irGroupClientMapper.deleteByPrimaryKey(id); } /** * 创建轮灌组 * @param po * @return */ public Map addIrrigateGroup(IrrigateGroup po) { IrIrrigateGroup irrigateGroup = new IrIrrigateGroup(); irrigateGroup.setGroupCode(po.getGroupCode()); irrigateGroup.setDefaultDuration(po.getDefaultDuration()); irrigateGroup.setOperator(po.getOperator()); irrigateGroup.setOperateTime(new Date()); irrigateGroup.setDeleted((byte) 0); irIrrigateGroupMapper.insertSelective(irrigateGroup); Long groupId = irrigateGroup.getId(); if(groupId == null) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", "创建轮灌组失败"); map.put("content", null); return map; } String[] intakeArr = po.getIntakes().split(","); Integer sort = 1; for(String intekeId : intakeArr) { String trimmed = intekeId.trim(); if(trimmed.isEmpty()) { continue; } try { Long intakeIdLong = Long.parseLong(trimmed); IrGroupIntake irGroupIntake = new IrGroupIntake(); irGroupIntake.setGroupId(groupId); irGroupIntake.setIntakeId(intakeIdLong); irGroupIntakeMapper.insert(irGroupIntake); } catch (NumberFormatException e) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", "取水口ID格式错误"); map.put("content", null); return map; } } Map map = new HashMap<>(); map.put("success", true); map.put("msg", "添加轮灌组成功"); map.put("content", null); return map; } /** * 根据组ID删除取水口关联 * @param groupId * @return */ public Map deleteGroup(Long groupId) { try { irGroupIntakeMapper.deleteByGroupId(groupId); irIrrigateGroupMapper.deleteByPrimaryKey(groupId); Map map = new HashMap<>(); map.put("success", true); map.put("msg", "灌溉项目删除成功"); map.put("content", null); return map; } catch (Exception e) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", "轮灌组删除失败"); map.put("content", null); return map; } } /** * 修改轮灌组 * @param po * @return */ public Map updateIrrigateGroup(IrrigateGroup po) { // 修改轮灌组 IrIrrigateGroup irrigateGroup = new IrIrrigateGroup(); irrigateGroup.setId(po.getGroupId()); irrigateGroup.setGroupCode(po.getGroupCode()); irrigateGroup.setDefaultDuration(po.getDefaultDuration()); irrigateGroup.setOperator(po.getOperator()); irrigateGroup.setOperateTime(new Date()); irrigateGroup.setDeleted((byte) 0); irIrrigateGroupMapper.updateByPrimaryKeySelective(irrigateGroup); // 删除轮灌组与取水口关联 Long groupId = po.getGroupId(); irGroupIntakeMapper.deleteByGroupId(groupId); // 添加轮灌组与取水口关联 String[] intakeArr = po.getIntakes().split(","); Integer sort = 1; for(String intekeId : intakeArr) { String trimmed = intekeId.trim(); if(trimmed.isEmpty()) { continue; } try { Long intakeIdLong = Long.parseLong(trimmed); IrGroupIntake irGroupIntake = new IrGroupIntake(); irGroupIntake.setGroupId(groupId); irGroupIntake.setIntakeId(intakeIdLong); irGroupIntakeMapper.insert(irGroupIntake); } catch (NumberFormatException e) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", "取水口ID格式错误"); map.put("content", null); return map; } } Map map = new HashMap<>(); map.put("success", true); map.put("msg", "修改轮灌组成功"); map.put("content", null); return map; } /** * 查询轮灌组列表 * @param queryVo * @return */ public QueryResultVo> getSimpleGroups(QoGroup queryVo) { Map params = (Map) PojoUtils.generalize(queryVo); Long itemTotal = irIrrigateGroupMapper.getSimpleGroupCount(params); QueryResultVo> rsVo = new QueryResultVo<>(); rsVo.pageSize = queryVo.pageSize; rsVo.pageCurr = queryVo.pageCurr; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = irIrrigateGroupMapper.getSimpleGroups(params); return rsVo; } /** * 查询全部轮灌组 * @return */ public List getAllGroups() { //Map params = (Map) PojoUtils.generalize(queryVo); //Long itemTotal = irIrrigateGroupMapper.getSimpleGroupCount(params); //QueryResultVo> rsVo = new QueryResultVo<>(); //rsVo.pageSize = queryVo.pageSize; //rsVo.pageCurr = queryVo.pageCurr; //rsVo.calculateAndSet(itemTotal, params); //rsVo.obj = irIrrigateGroupMapper.getSimpleGroups(null); //return rsVo; return irIrrigateGroupMapper.getSimpleGroups(null); } /** * 获取轮灌组详情 * @param groupId * @return */ public Map getGroupDetail(Long groupId) { try { VoGroupDetail voGroupDetail = irIrrigateGroupMapper.getGroupDetail(groupId); Map map = new HashMap<>(); map.put("success", true); map.put("msg", "获取轮灌组详情成功"); map.put("content", voGroupDetail); return map; } catch (Exception e) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", "获取轮灌组详情失败"); map.put("content", null); return map; } } }