pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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 org.apache.ibatis.annotations.Mapper; @@ -65,4 +66,11 @@ * @return */ List<VoGroupSimple> getSimpleGroups(Map<?, ?> params); /** * 根据轮灌组ID获取轮灌组详情 * @param groupId * @return */ VoGroupDetail getGroupDetail(Long groupId); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupDetail.java
New file @@ -0,0 +1,32 @@ package com.dy.pipIrrGlobal.voIr; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import lombok.Data; /** * @author ZhuBaoMin * @date 2025-03-31 17:10 * @LastEditTime 2025-03-31 17:10 * @Description 轮灌组详情视图对象 */ @Data @JsonPropertyOrder({"groupCode", "defaultDuration", "intakes"}) public class VoGroupDetail { public static final long serialVersionUID = 202503311711001L; /** * 轮灌组编码 */ private String groupCode; /** * 默认灌溉时长 */ private Integer defaultDuration; /** * 取水口列表 */ private String intakes; } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupSimple.java
@@ -25,12 +25,12 @@ private Long groupId; /** * 轮灌组编码 * 轮灌组名称 */ private String groupCode; /** * 灌溉单元数量 * 取水口数量 */ private Integer intakeCount; pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
@@ -230,16 +230,23 @@ <!--根据指定条件获取轮灌组记录数--> <select id="getSimpleGroupCount" resultType="java.lang.Long"> SELECT COUNT(*) AS recordCount <!-- FROM ir_irrigate_group grp--> <!-- INNER JOIN ir_project_group pg ON pg.group_id = grp.id--> <!-- INNER JOIN ir_project pro ON pg.project_id = pro.id--> <!-- <where>--> <!-- AND grp.deleted = 0--> <!-- <if test="projectId != null and projectId != ''">--> <!-- AND pro.id = #{projectId}--> <!-- </if>--> <!-- <if test="groupCode != null and groupCode != ''">--> <!-- AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')--> <!-- </if>--> <!-- </where>--> FROM ir_irrigate_group grp INNER JOIN ir_project_group pg ON pg.group_id = grp.id INNER JOIN ir_project pro ON pg.project_id = pro.id <where> AND grp.deleted = 0 <if test="projectId != null and projectId != ''"> AND pro.id = #{projectId} </if> <if test="groupCode != null and groupCode != ''"> AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%') </if> @@ -248,31 +255,64 @@ <!--根据指定条件获取轮灌组列表--> <select id="getSimpleGroups" resultType="com.dy.pipIrrGlobal.voIr.VoGroupSimple"> <!-- SELECT--> <!-- grp.id AS groupId,--> <!-- grp.group_code AS groupCode,--> <!-- (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount,--> <!-- grp.default_duration AS defaultDuration,--> <!-- pg.sort--> <!-- FROM ir_irrigate_group grp--> <!-- INNER JOIN ir_project_group pg ON pg.group_id = grp.id--> <!-- INNER JOIN ir_project pro ON pg.project_id = pro.id--> <!-- <where>--> <!-- AND grp.deleted = 0--> <!-- <if test="projectId != null and projectId != ''">--> <!-- AND pro.id = #{projectId}--> <!-- </if>--> <!-- <if test="groupCode != null and groupCode != ''">--> <!-- AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')--> <!-- </if>--> <!-- </where>--> <!-- ORDER BY pg.sort--> SELECT grp.id AS groupId, grp.group_code AS groupCode, (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount, grp.default_duration AS defaultDuration, pg.sort grp.id AS groupId, grp.group_code AS groupCode, (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount, grp.default_duration AS defaultDuration, 0 as sort FROM ir_irrigate_group grp INNER JOIN ir_project_group pg ON pg.group_id = grp.id INNER JOIN ir_project pro ON pg.project_id = pro.id <where> AND grp.deleted = 0 <if test="projectId != null and projectId != ''"> AND pro.id = #{projectId} </if> <if test="groupCode != null and groupCode != ''"> AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%') </if> </where> ORDER BY pg.sort ORDER BY grp.operate_time DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} </if> </trim> </select> <select id="getGroupDetail" resultType="com.dy.pipIrrGlobal.voIr.VoGroupDetail"> SELECT groupCode, defaultDuration, GROUP_CONCAT(intakeId) AS intakes FROM ( SELECT grp.group_code AS groupCode, grp.default_duration AS defaultDuration, inta.id AS intakeId FROM ir_irrigate_group grp INNER JOIN ir_group_intake gi ON gi.group_id = grp.id INNER JOIN pr_intake inta ON inta.id = gi.intake_id WHERE grp.deleted = 0 AND grp.id = #{groupId} ) irrigateGroup GROUP BY groupCode,defaultDuration </select> </mapper> pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
@@ -322,7 +322,7 @@ FROM ir_project pro INNER JOIN ir_project_group pg ON pg.project_id = pro.id INNER JOIN ir_irrigate_group grp ON grp.id = pg.group_id WHERE pro.id = #{projectId} WHERE pro.deleted = 0 AND pro.id = #{projectId} ) project GROUP BY projectName </select> pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
@@ -9,10 +9,13 @@ 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.pipIrrGlobal.voSe.VoActiveCard; import com.dy.pipIrrIrrigate.irrigateGroup.dto.GroupClient; import com.dy.pipIrrIrrigate.irrigateGroup.dto.IrrigateGroup; import com.dy.pipIrrIrrigate.irrigateGroup.qo.QoGroup; import com.dy.pipIrrIrrigate.result.IrrigateResultCode; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; @@ -485,4 +488,79 @@ return BaseResponseUtils.buildSuccess() ; } /** * 修改轮灌组,新代码 * @param po * @param bindingResult * @return */ @PostMapping(path = "updateIrrigateGroup", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() public BaseResponse<Boolean> updateIrrigateGroup(@RequestBody @Valid IrrigateGroup po, BindingResult bindingResult){ if (bindingResult != null && bindingResult.hasErrors()) { return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } if(po.getGroupId() == null) { return BaseResponseUtils.buildErrorMsg("轮灌组ID不能为空"); } Map map_result = irrigateGroupSv.updateIrrigateGroup(po); if(map_result.get("success").equals(false)) { return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); } return BaseResponseUtils.buildSuccess() ; } /** * 获取轮灌组列表,新代码 * @param qo * @return */ @GetMapping(path = "/getSimpleGroups") @SsoAop() public BaseResponse<QueryResultVo<List<VoGroupSimple>>> getSimpleGroups(QoGroup qo) { try { QueryResultVo<List<VoGroupSimple>> res = irrigateGroupSv.getSimpleGroups(qo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取项目记录异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 获取全部轮灌组,新代码 * @return */ @GetMapping(path = "/getAllGroups") @SsoAop() public BaseResponse<List<VoGroupSimple>> getAllGroups() { try { return BaseResponseUtils.buildSuccess(irrigateGroupSv.getAllGroups()); } catch (Exception e) { log.error("获取项目记录异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 获取轮灌组详情,新代码 * @param groupId * @return */ @GetMapping(path = "getGroupDetail") @SsoAop() public BaseResponse<VoGroupDetail> getGroupDetail(@RequestParam Long groupId) { if(groupId == null) { return BaseResponseUtils.buildErrorMsg("轮灌组ID不能为空"); } Map map_result = irrigateGroupSv.getGroupDetail(groupId); if(map_result.get("success").equals(false)) { return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); } return BaseResponseUtils.buildSuccess(map_result.get("content")) ; } } pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
@@ -10,8 +10,11 @@ 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; @@ -33,6 +36,7 @@ public class IrrigateGroupSv { @Autowired private IrIrrigateGroupMapper irIrrigateGroupMapper; @Autowired private IrGroupUnitMapper irGroupUnitMapper; @@ -249,4 +253,94 @@ return map; } } /** * 修改轮灌组 * @param po * @return */ public Map updateIrrigateGroup(IrrigateGroup po) { Long groupId = po.getGroupId(); Map map_deleteGroup = deleteGroup(groupId); if(map_deleteGroup.get("success").equals(false)) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", map_deleteGroup.get("msg").toString()); map.put("content", null); return map; } Map map_addGroup = addIrrigateGroup(po); if(map_addGroup.get("success").equals(false)) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", map_addGroup.get("msg").toString()); 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<List<VoGroupSimple>> getSimpleGroups(QoGroup queryVo) { Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); Long itemTotal = irIrrigateGroupMapper.getSimpleGroupCount(params); QueryResultVo<List<VoGroupSimple>> 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<VoGroupSimple> getAllGroups() { //Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); //Long itemTotal = irIrrigateGroupMapper.getSimpleGroupCount(params); //QueryResultVo<List<VoGroupSimple>> 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; } } } pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/qo/QoGroup.java
New file @@ -0,0 +1,21 @@ package com.dy.pipIrrIrrigate.irrigateGroup.qo; import com.dy.common.webUtil.QueryConditionVo; import lombok.Data; import lombok.EqualsAndHashCode; /** * @author ZhuBaoMin * @date 2025-03-31 16:02 * @LastEditTime 2025-03-31 16:02 * @Description 轮灌组查询对象 */ @Data @EqualsAndHashCode(callSuper = false) public class QoGroup extends QueryConditionVo { /** * 轮灌组编码 */ private String groupCode; }