From 2ac948f13f9af6963bccb99ea9403f5cd934a617 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期三, 22 五月 2024 17:02:07 +0800 Subject: [PATCH] 田间灌溉项目管理 轮灌组 实现创建、删除、查一个、分页查、修改、批量删、绑定灌溉单元、移除灌溉单元接口 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java | 50 ++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupUnitMapper.xml | 91 +++++ pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java | 135 +++++++ pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/QueryVo.java | 26 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupUnitMapper.java | 28 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupUnit.java | 77 ++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateGroup.java | 84 ++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroup.java | 51 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupOne.java | 51 ++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml | 172 +++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java | 301 ++++++++++++++++ 11 files changed, 1,066 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupUnitMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupUnitMapper.java new file mode 100644 index 0000000..5ec4a32 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupUnitMapper.java @@ -0,0 +1,28 @@ +package com.dy.pipIrrGlobal.daoIr; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit; +import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author :WuZeYu + * @Date :2024/5/22 13:41 + * @LastEditTime :2024/5/22 13:41 + * @Description + */ +@Mapper +public interface IrGroupUnitMapper extends BaseMapper<IrGroupUnit> { + //澧� + int insertSelective(IrGroupUnit record); + + //鍒� + int deleteLogicById(Long id); + + //鍒燽y unitId groupId + int deleteByUnitIdGroupId(IrGroupUnit record); + //鍒燽y unitId + int deleteByUnitId(Long unitId); + //鍒燽y groupId + int deleteByGroupId(Long groupId); +} 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 new file mode 100644 index 0000000..744862d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java @@ -0,0 +1,50 @@ +package com.dy.pipIrrGlobal.daoIr; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup; +import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit; +import com.dy.pipIrrGlobal.voIr.VoGroup; +import com.dy.pipIrrGlobal.voIr.VoGroupOne; +import com.dy.pipIrrGlobal.voIr.VoUnit; +import com.dy.pipIrrGlobal.voIr.VoUnitOne; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** + * @author :WuZeYu + * @Date :2024/5/21 15:32 + * @LastEditTime :2024/5/21 15:32 + * @Description + */ +@Mapper +public interface IrIrrigateGroupMapper extends BaseMapper<IrIrrigateGroup> { + //澧� + int insertSelective(IrIrrigateGroup record); + + //鍒� + int deleteLogicById(Long id); + + //鏀� + int updateByPrimaryKeySelective(IrIrrigateGroup record); + + //鏌ヤ竴涓� + VoGroupOne selectById(Long id); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰曟暟 + * + * @param params + * @return + */ + Long getRecordCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰� + * + * @param params + * @return + */ + List<VoGroup> getIrrigateGroups(Map<?, ?> params); +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupUnit.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupUnit.java new file mode 100644 index 0000000..766d3db --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupUnit.java @@ -0,0 +1,77 @@ +package com.dy.pipIrrGlobal.pojoIr; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dy.common.po.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; + +import java.util.Date; + +/** + * @author :WuZeYu + * @Date :2024/5/22 13:43 + * @LastEditTime :2024/5/22 13:43 + * @Description + */ +/** + * 杞亴缁勭亴婧夊崟鍏冧腑闂磋〃 + */ + +@TableName(value="ir_group_unit", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "杞亴缁勭亴婧夊崟鍏冧腑闂磋〃瀹炰綋") +public class IrGroupUnit implements BaseEntity { + + public static final long serialVersionUID = 202405221354001L; + + /** + * 涓婚敭 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long id; + + /** + * 杞亴缁処D + */ + @Schema(description = "杞亴缁処D", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "杞亴缁処D涓嶈兘涓虹┖") + private Long groupId; + + /** + * 鐏屾簤鍗曞厓ID + */ + @Schema(description = "鐏屾簤鍗曞厓ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "鐏屾簤鍗曞厓ID涓嶈兘涓虹┖") + private Long unitId; + + /** + * 鎿嶄綔浜篒D + */ + @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖") + private Long operator; + + /** + * 鎿嶄綔鏃堕棿 + */ + @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Date operateDt; + + + /** + * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎 + */ + @Schema(description = "鍒犻櫎鏍囪瘑", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Byte deleted; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateGroup.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateGroup.java new file mode 100644 index 0000000..9c098d3 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigateGroup.java @@ -0,0 +1,84 @@ +package com.dy.pipIrrGlobal.pojoIr; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dy.common.po.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank; + +import java.util.Date; + +/** + * @author :WuZeYu + * @Date :2024/5/21 15:34 + * @LastEditTime :2024/5/21 15:34 + * @Description + */ +/** + * 杞亴缁勮〃 + */ + +@TableName(value="ir_irrigate_group", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "杞亴缁勫疄浣�") +public class IrIrrigateGroup implements BaseEntity { + + public static final long serialVersionUID = 202405211534001L; + + /** + * 涓婚敭 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long id; + + /** + * 杞亴缁勭紪鐮� + */ + @Schema(description = "杞亴缁勭紪鐮�", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "杞亴缁勭紪鐮佷笉鑳戒负绌�") + private String groupCode; + + /** + * 椤圭洰ID + */ + @Schema(description = "椤圭洰ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "椤圭洰ID涓嶈兘涓虹┖") + private Long projectId; + + /** + * 澶囨敞 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.REQUIRED) + private String remarks; + + /** + * 鎿嶄綔浜篒D + */ + @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "鎿嶄綔浜篒D涓嶈兘涓虹┖") + private Long operator; + + /** + * 鎿嶄綔鏃堕棿 + */ + @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Date operateDt; + + + /** + * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎 + */ + @Schema(description = "鍒犻櫎鏍囪瘑", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Byte deleted; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroup.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroup.java new file mode 100644 index 0000000..506cd9a --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroup.java @@ -0,0 +1,51 @@ +package com.dy.pipIrrGlobal.voIr; + +import com.dy.common.po.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @author :WuZeYu + * @Date :2024/5/21 16:34 + * @LastEditTime :2024/5/21 16:34 + * @Description + */ +@Data +@Schema(name = "杞亴缁勮鍥�") +public class VoGroup implements BaseEntity { + @Schema(description = "鎵�灞為」鐩悕绉�") + public String projectName; + + @Schema(description = "杞亴缁勭紪鐮�") + private String groupCode; + + @Schema(description = "鐏屾簤鍗曞厓鏁伴噺") + private Integer itemCount; + + @Schema(description = "杞亴缁処D") + private String id; + + + @Schema(description = "澶囨敞") + private String remarks; + + @Schema(description = "鎵�灞為」鐩甀d") + public String projectId; + + /** + * 鎿嶄綔浜哄悕瀛� + */ + @Schema(description = "鎿嶄綔浜哄悕瀛�") + private String operatorName; + + @Schema(description = "鎿嶄綔浜篒d") + private String operator; + + /** + * 鎿嶄綔鏃堕棿 + */ + @Schema(description = "鎿嶄綔鏃堕棿") + private Date operateDt; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupOne.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupOne.java new file mode 100644 index 0000000..6af70a6 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupOne.java @@ -0,0 +1,51 @@ +package com.dy.pipIrrGlobal.voIr; + +import com.dy.common.po.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @author :WuZeYu + * @Date :2024/5/21 16:34 + * @LastEditTime :2024/5/21 16:34 + * @Description + */ +@Data +@Schema(name = "杞亴缁勮鍥�(鏌ヤ竴涓�)") +public class VoGroupOne implements BaseEntity { + @Schema(description = "鎵�灞為」鐩悕绉�") + public String projectName; + + @Schema(description = "杞亴缁勭紪鐮�") + private String groupCode; + + @Schema(description = "鐏屾簤鍗曞厓鏁伴噺") + private Integer itemCount; + + @Schema(description = "杞亴缁処D") + private String id; + + + @Schema(description = "澶囨敞") + private String remarks; + + @Schema(description = "鎵�灞為」鐩甀d") + public String projectId; + + /** + * 鎿嶄綔浜哄悕瀛� + */ + @Schema(description = "鎿嶄綔浜哄悕瀛�") + private String operatorName; + + @Schema(description = "鎿嶄綔浜篒d") + private String operator; + + /** + * 鎿嶄綔鏃堕棿 + */ + @Schema(description = "鎿嶄綔鏃堕棿") + private Date operateDt; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupUnitMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupUnitMapper.xml new file mode 100644 index 0000000..4fa6d92 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupUnitMapper.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.dy.pipIrrGlobal.daoIr.IrGroupUnitMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrGroupUnit"> + <!--@mbg.generated--> + <!--@Table ir_group_unit--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="group_id" jdbcType="BIGINT" property="groupId" /> + <result column="unit_id" jdbcType="BIGINT" property="unitId" /> + <result column="operator" jdbcType="BIGINT" property="operator" /> + <result column="operate_time" jdbcType="TIMESTAMP" property="operateDt" /> + <result column="deleted" jdbcType="TINYINT" property="deleted" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, group_id, unit_id, `operator`, + operate_time, deleted + </sql> + + <!--娣诲姞--> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrGroupUnit"> + <!--@mbg.generated--> + insert into ir_group_unit + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="groupId != null"> + group_id, + </if> + <if test="unitId != null"> + unit_id, + </if> + <if test="operator != null"> + `operator`, + </if> + <if test="operateDt != null"> + operate_time, + </if> + <if test="deleted != null"> + deleted, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="groupId != null"> + #{groupId,jdbcType=BIGINT}, + </if> + <if test="unitId != null"> + #{unitId,jdbcType=BIGINT}, + </if> + <if test="operator != null"> + #{operator,jdbcType=BIGINT}, + </if> + <if test="operateDt != null"> + #{operateDt,jdbcType=TIMESTAMP}, + </if> + <if test="deleted != null"> + #{deleted,jdbcType=TINYINT}, + </if> + </trim> + </insert> + + <!--閫昏緫鍒犻櫎--> + <delete id="deleteLogicById" parameterType="java.lang.Long"> + <!--@mbg.generated--> + update ir_group_unit + set deleted = 1 + where id = #{id,jdbcType=BIGINT} + </delete> + + <delete id="deleteByUnitIdGroupId" parameterType="com.dy.pipIrrGlobal.pojoIr.IrGroupUnit"> + update ir_group_unit + set deleted = 1,operator = #{operator,jdbcType=BIGINT},operate_time = #{operateDt,jdbcType=TIMESTAMP} + where group_id = #{groupId,jdbcType=BIGINT} and unit_id = #{unitId,jdbcType=BIGINT} + </delete> + + <delete id="deleteByUnitId"> + update ir_group_unit + set deleted = 1 + where unit_id = #{unitId,jdbcType=BIGINT} + </delete> + + <delete id="deleteByGroupId"> + update ir_group_unit + set deleted = 1 + where group_id = #{groupId,jdbcType=BIGINT} + </delete> +</mapper> \ 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 new file mode 100644 index 0000000..fa78683 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.dy.pipIrrGlobal.daoIr.IrIrrigateGroupMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup"> + <!--@mbg.generated--> + <!--@Table ir_irrigate_group--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="project_id" jdbcType="BIGINT" property="projectId" /> + <result column="group_code" jdbcType="VARCHAR" property="groupCode" /> + <result column="remarks" jdbcType="VARCHAR" property="remarks" /> + <result column="operator" jdbcType="BIGINT" property="operator" /> + <result column="operate_time" jdbcType="TIMESTAMP" property="operateDt" /> + <result column="deleted" jdbcType="TINYINT" property="deleted" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, project_id, group_code, remarks, `operator`, + operate_time, deleted + </sql> + <!--娣诲姞--> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup"> + <!--@mbg.generated--> + insert into ir_irrigate_group + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="projectId != null"> + project_id, + </if> + <if test="groupCode != null"> + group_code, + </if> + <if test="remarks != null"> + remarks, + </if> + <if test="operator != null"> + `operator`, + </if> + <if test="operateDt != null"> + operate_time, + </if> + <if test="deleted != null"> + deleted, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="projectId != null"> + #{projectId,jdbcType=BIGINT}, + </if> + <if test="groupCode != null"> + #{groupCode,jdbcType=VARCHAR}, + </if> + <if test="remarks != null"> + #{remarks,jdbcType=VARCHAR}, + </if> + <if test="operator != null"> + #{operator,jdbcType=BIGINT}, + </if> + <if test="operateDt != null"> + #{operateDt,jdbcType=TIMESTAMP}, + </if> + <if test="deleted != null"> + #{deleted,jdbcType=TINYINT}, + </if> + </trim> + </insert> + + <!--閫昏緫鍒犻櫎--> + <delete id="deleteLogicById" parameterType="java.lang.Long"> + <!--@mbg.generated--> + update ir_irrigate_group + set deleted = 1 + where id = #{id,jdbcType=BIGINT} + </delete> + + <!--淇敼涓�涓疆缃愮粍--> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup"> + update ir_irrigate_group + <set> + <if test="projectId != null"> + project_id = #{projectId,jdbcType=BIGINT}, + </if> + <if test="groupCode != null"> + group_code = #{groupCode,jdbcType=VARCHAR}, + </if> + <if test="remarks != null"> + remarks = #{remarks,jdbcType=VARCHAR}, + </if> + <if test="operator != null"> + operator = #{operator,jdbcType=BIGINT}, + </if> + <if test="operateDt != null"> + operate_time = #{operateDt,jdbcType=TIMESTAMP}, + </if> + <if test="deleted != null"> + deleted = #{deleted,jdbcType=TINYINT}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + + <!--鏌ヤ竴涓疆缃愮粍--> + <select id="selectById" resultType="com.dy.pipIrrGlobal.voIr.VoGroupOne"> + select + CAST(pro.id AS char)AS projectId, + pro.project_name AS projectName, + CAST(gro.id AS char)AS id, + CAST(gro.operator AS char)AS operator, + cli.name AS operatorName, + gro.group_code AS groupCode, + COUNT(gu.group_id) AS itemCount, + gro.remarks, + gro.operate_time AS operateDt + from ir_irrigate_group gro + left join ir_project pro on pro.id = gro.project_id + left join se_client cli on cli.id = gro.operator + left join ir_group_unit gu on gu.group_id = gro.id + where gro.id = #{id,jdbcType=BIGINT} and gro.deleted = 0 and gu.deleted = 0 and pro.deleted = 0 + </select> + + <!--鍒嗛〉鏌ヨ疆鐏岀粍--> + <select id="getIrrigateGroups" resultType="com.dy.pipIrrGlobal.voIr.VoGroup"> + SELECT + CAST(pro.id AS char)AS projectId, + pro.project_name AS projectName, + CAST(gro.id AS char)AS id, + CAST(gro.operator AS char)AS operator, + cli.name AS operatorName, + gro.group_code AS groupCode, + COUNT(gu.group_id) AS itemCount, + gro.remarks, + gro.operate_time AS operateDt + from ir_irrigate_group gro + left join ir_project pro on pro.id = gro.project_id + left join se_client cli on cli.id = gro.operator + left join ir_group_unit gu on gu.group_id = gro.id + <where> + gro.deleted = 0 and gu.deleted = 0 and pro.deleted = 0 + <if test="projectName != null and projectName != ''"> + AND pro.project_name LIKE CONCAT('%', #{projectName}, '%') + </if> + <if test="groupCode != null and groupCode != ''"> + AND gro.group_code = #{groupCode} + </if> + </where> + ORDER BY gro.operate_time DESC + <if test="pageCurr != null and pageSize != null"> + LIMIT ${(pageCurr-1)*pageSize}, ${pageSize} + </if> + </select> + <!--鍒嗛〉鏌ヨ疆鐏岀粍璁板綍鏁�--> + <select id="getRecordCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + from ir_irrigate_group gro + left join ir_project pro on pro.id = gro.project_id + left join se_client cli on cli.id = gro.operator + left join ir_group_unit gu on gu.group_id = gro.id + <where> + gro.deleted = 0 and gu.deleted = 0 and pro.deleted = 0 + <if test="projectName != null and projectName != ''"> + AND pro.project_name LIKE CONCAT('%', #{projectName}, '%') + </if> + <if test="groupCode != null and groupCode != ''"> + AND gro.group_code = #{groupCode} + </if> + </where> + </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 new file mode 100644 index 0000000..092c73d --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java @@ -0,0 +1,301 @@ +package com.dy.pipIrrIrrigate.irrigateGroup; + +import com.dy.common.aop.SsoAop; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.common.webUtil.ResultCodeMsg; +import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit; +import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup; +import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit; +import com.dy.pipIrrGlobal.voIr.VoGroup; +import com.dy.pipIrrGlobal.voIr.VoGroupOne; +import com.dy.pipIrrGlobal.voIr.VoUnit; +import com.dy.pipIrrGlobal.voIr.VoUnitOne; +import com.dy.pipIrrGlobal.voSe.VoActiveCard; +import com.dy.pipIrrIrrigate.irrigateUnit.IrrigateUnitSv; +import com.dy.pipIrrIrrigate.irrigateGroup.QueryVo; +import com.dy.pipIrrIrrigate.result.IrrigateResultCode; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +/** + * @author :WuZeYu + * @Date :2024/5/21 16:19 + * @LastEditTime :2024/5/21 16:19 + * @Description + */ +@Slf4j +@Tag(name = "杞亴缁�", description = "杞亴缁�") +@RestController +@RequestMapping(path = "group") +@RequiredArgsConstructor +public class IrrigateGroupCtrl { + @Autowired + private IrrigateGroupSv irrigateGroupSv; + + /** + * 鍒涘缓杞亴缁� + * + * @param po 杞亴缁勫疄浣撳璞� + * @param bindingResult + * @return 娣诲姞鏄惁鎴愬姛 + */ + @Operation(summary = "鍒涘缓杞亴缁勮褰�", description = "鍒涘缓杞亴缁勮褰�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> add(@RequestBody @Valid IrIrrigateGroup po, BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + try { + Integer rec = Optional.ofNullable(irrigateGroupSv.addIrrigateGroup(po)).orElse(0); + if (rec == 0) { + return BaseResponseUtils.buildFail(IrrigateResultCode.ADD_PROJECT_FAIL.getMessage()); + } + } catch (Exception e) { + log.error("鍒涘缓杞亴缁勫紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + return BaseResponseUtils.buildSuccess(true); + } + + /** + * 閫昏緫鍒犻櫎鐏屾簤鍗曞厓 + * @param + * @return + */ + @Operation(summary = "閫昏緫鍒犻櫎杞亴缁�", description = "閫昏緫鍒犻櫎杞亴缁�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @GetMapping(path = "delete") + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> delete( Long id) { + if (id == null ) { + BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage()); + } +// Long groupId = Long.parseLong(map.get("id").toString()); + try { + Integer rows = irrigateGroupSv.deleteIrrigateGroup(id); + if (rows == 0) { + return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage()); + } + } catch (Exception e) { + log.error("鍒犻櫎杞亴缁勫紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + return BaseResponseUtils.buildSuccess(true); + } + + /** + * 鎵归噺鍒犻櫎 + * @param groupIds + * @return + */ + @PostMapping(path = "delete_batch", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> delete_batch(@RequestBody Map<String, List> groupIds) { + if (groupIds == null || groupIds.size() <= 0) { + BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage()); + } + List ids = groupIds.get("groupIds"); + for (int i = 0; i < ids.size(); i++) { + long groupId = Long.parseLong(ids.get(i).toString()); + try { + Integer rows = irrigateGroupSv.deleteIrrigateGroup(groupId); + if (rows == 0) { + return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage()); + } + } catch (Exception e) { + log.error("鍒犻櫎杞亴缁勫紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + } + return BaseResponseUtils.buildSuccess(true); + } + + /** + * 淇敼鐏屾簤鍗曞厓 + * @param po + * @param bindingResult + * @return + */ + @Operation(summary = "淇敼杞亴缁�", description = "淇敼杞亴缁�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> update(@RequestBody @Valid IrIrrigateGroup po, BindingResult bindingResult){ + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + try { + Integer rec = Optional.ofNullable(irrigateGroupSv.updateIrrigateGroup(po)).orElse(0); + if (rec == 0) { + return BaseResponseUtils.buildFail(IrrigateResultCode.UPDATE_PROJECT_FAIL.getMessage()); + } + } catch (Exception e) { + log.error("淇敼杞亴缁勫紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + return BaseResponseUtils.buildSuccess(true); + } + + /** + * 鑾峰彇涓�涓疆鐏岀粍 + * + * @return 鑾峰彇涓�涓疆鐏岀粍 + */ + @Operation(summary = "鑾峰彇涓�涓疆鐏岀粍", description = "鑾峰彇涓�涓疆鐏岀粍") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鑾峰彇涓�涓疆鐏岀粍锛圔aseResponse.content:{}锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = IrIrrigateGroup.class))} + ) + }) + @GetMapping(path = "one") + @SsoAop() + public BaseResponse<VoGroupOne> one(@RequestParam Long id) { + VoGroupOne irIrrigateGroup = this.irrigateGroupSv.selectById(id); + + return BaseResponseUtils.buildSuccess(irIrrigateGroup); + + } + + /** + * 鍒嗛〉鏌ヨ + * @param vo + * @return + */ + @Operation(summary = "鑾峰緱涓�椤佃疆鐏岀粍璁板綍", description = "鑾峰緱涓�椤佃疆鐏岀粍璁板綍") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鑾峰緱涓�椤电亴婧夊崟鍏冭褰曪紙BaseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoActiveCard.class))} + ) + }) + @GetMapping(path = "some") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoGroup>>> getIrrigateGroups(QueryVo vo) { + try { + QueryResultVo<List<VoGroup>> res = irrigateGroupSv.getIrrigateGroups(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇杞亴缁勮褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + } + + /** + * 杞亴缁勬坊鍔犵亴婧夊崟鍏� + * + * @param po 杞亴缁勭亴婧夊崟鍏冧腑闂磋〃 + * @param bindingResult + * @return 娣诲姞鏄惁鎴愬姛 + */ + @Operation(summary = "杞亴缁勬坊鍔犵亴婧夊崟鍏�", description = "杞亴缁勬坊鍔犵亴婧夊崟鍏�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "add_unit", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> addGroupUnit(@RequestBody @Valid IrGroupUnit po, BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + try { + Integer rec = Optional.ofNullable(irrigateGroupSv.addGroupUnit(po)).orElse(0); + if (rec == 0) { + return BaseResponseUtils.buildFail(IrrigateResultCode.ADD_PROJECT_FAIL.getMessage()); + } + } catch (Exception e) { + log.error("杞亴缁勬坊鍔犵亴婧夊崟鍏冨紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + return BaseResponseUtils.buildSuccess(true); + } + + /** + * 閫昏緫鍒犻櫎 杞亴缁勭Щ闄ょ亴婧夊崟鍏� + * @param + * @return + */ + @Operation(summary = "杞亴缁勭Щ闄ょ亴婧夊崟鍏�", description = "杞亴缁勭Щ闄ょ亴婧夊崟鍏�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "remove_unit") + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> deleteGroupUnit(@RequestBody @Valid IrGroupUnit po, BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + try { + Integer rec = Optional.ofNullable(irrigateGroupSv.deleteGroupUnit(po)).orElse(0); + if (rec == 0) { + return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage()); + } + } catch (Exception e) { + log.error("杞亴缁勭Щ闄ょ亴婧夊崟鍏冨紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + return BaseResponseUtils.buildSuccess(true); + } +} 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 new file mode 100644 index 0000000..f776ad5 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java @@ -0,0 +1,135 @@ +package com.dy.pipIrrIrrigate.irrigateGroup; + +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.daoIr.IrGroupUnitMapper; +import com.dy.pipIrrGlobal.daoIr.IrIrrigateGroupMapper; +import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit; +import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup; +import com.dy.pipIrrGlobal.voIr.VoGroup; +import com.dy.pipIrrGlobal.voIr.VoGroupOne; +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.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; + + /** + * 鍒涘缓杞亴缁� + * + * @param po + * @return + */ + public Integer addIrrigateGroup(IrIrrigateGroup po) { + po.setOperateDt(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.setOperateDt(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<List<VoGroup>> getIrrigateGroups(QueryVo queryVo){ + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + Long itemTotal = irIrrigateGroupMapper.getRecordCount(params); + + QueryResultVo<List<VoGroup>> 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()); + po.setDeleted((byte) 0); + int rows = irGroupUnitMapper.insertSelective(po); + if (rows == 0) { + return 0; + } + return 1; + } + + /** + * 杞亴缁勭Щ闄ょ亴婧夊崟鍏� + * + * @param po + * @return + */ + public Integer deleteGroupUnit(IrGroupUnit po) { + po.setOperateDt(new Date()); + int rows = irGroupUnitMapper.deleteByUnitIdGroupId(po); + if (rows == 0) { + return 0; + } + return 1; + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/QueryVo.java new file mode 100644 index 0000000..85437aa --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/QueryVo.java @@ -0,0 +1,26 @@ +package com.dy.pipIrrIrrigate.irrigateGroup; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @author :WuZeYu + * @Date :2024/5/15 21:11 + * @LastEditTime :2024/5/15 21:11 + * @Description + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "椤圭洰鏌ヨ鏉′欢") +public class QueryVo extends QueryConditionVo { + @Schema(description = "椤圭洰鍚嶇О") + public String projectName; + + @Schema(description = "杞綈缁勫悕绉�") + public String groupCode; +} -- Gitblit v1.8.0