From a8b42807ab960c9174abfb590edd2989fe97a7c7 Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期二, 02 一月 2024 20:31:44 +0800 Subject: [PATCH] 2024-01-02 朱宝民 控制器查询,绑定记录查询 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml | 188 ++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java | 52 ++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoToPojo.java | 23 + pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java | 62 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java | 8 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java | 55 +++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java | 179 +++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java | 23 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java | 40 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml | 95 +++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java | 20 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java | 92 +++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoController.java | 42 ++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java | 35 + pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java | 23 + pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java | 47 ++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java | 48 ++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java | 11 18 files changed, 1,009 insertions(+), 34 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java index bf30cae..c1ab03e 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java @@ -2,12 +2,16 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoPr.PrController; +import com.dy.pipIrrGlobal.voPr.VoController; import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; /** * @author ZhuBaoMin * @date 2023-12-29 9:59 - * @LastEditTime 2023-12-29 9:59 + * @LastEditTime 2024-01-02 16:22 * @Description */ @@ -24,4 +28,18 @@ int updateByPrimaryKeySelective(PrController record); int updateByPrimaryKey(PrController record); + + /** + * 鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰曟暟 + * @param params + * @return + */ + Long getRecordCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰� + * @param params + * @return + */ + List<VoController> getControllers(Map<?, ?> params); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java new file mode 100644 index 0000000..bf71fdc --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java @@ -0,0 +1,55 @@ +package com.dy.pipIrrGlobal.daoPr; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoPr.PrIntakeController; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 9:16 + * @LastEditTime 2024-01-02 9:16 + * @Description + */ + +@Mapper +public interface PrIntakeControllerMapper extends BaseMapper<PrIntakeController> { + int deleteByPrimaryKey(Long id); + + int insert(PrIntakeController record); + + int insertSelective(PrIntakeController record); + + PrIntakeController selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(PrIntakeController record); + + int updateByPrimaryKey(PrIntakeController record); + + /** + * 鏍规嵁鍙栨按鍙g紪鍙枫�佹帶鍒跺櫒缂栧彿銆佹搷浣滅被鍒幏鍙栬褰曟暟閲� + * 閲嶅缁戝畾銆侀噸澶嶈В缁戦兘鐢ㄨ鏂规硶鍒ゆ柇 + * @param intakeId 鍙栨按鍙D + * @param controllerId 鎺у埗鍣↖D + * @param operateType 鎿嶄綔绫诲瀷 1-鎹嗙粦锛�2-瑙g粦 + * @return 濡備綍鏉′欢璁板綍鏁� + */ + Integer getBindRecordCount(@Param("intakeId") Long intakeId, @Param("controllerId") Long controllerId, @Param("operateType") Byte operateType); + + /** + * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栫粦瀹氳褰曞垪琛� + * @param intakeId 鍙栨按鍙g紪鍙� + * @return 鍙栨按鍙d笌鎺у埗鍣ㄧ粦瀹氬垪琛� + */ + List<Map<String, Object>> getBindsByIntakeId(@Param("intakeId") Long intakeId); + + /** + * 鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栫粦瀹氳褰曞垪琛� + * @param controllerId 鎺у埗鍣ㄧ紪鍙� + * @return 鍙栨按鍙d笌鎺у埗鍣ㄧ粦瀹氬垪琛� + */ + List<Map<String, Object>> getBindsByControllerId(@Param("controllerId") Long controllerId); +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java index 481982a..37884d4 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrController.java @@ -35,50 +35,62 @@ public static final long serialVersionUID = 1L; /** - * 涓婚敭 - */ + * 涓婚敭 + */ @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 = "鎺у埗鍣ㄧ紪鍙蜂笉鑳戒负绌�") @Length(message = "鎺у埗鍣ㄧ紪鍙蜂笉澶т簬{max}瀛�",max = 25) private String code; /** - * 閫氳鍗忚 - */ + * 閫氳鍗忚 + */ @Schema(description = "閫氳鍗忚", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖") @Length(message = "閫氳鍗忚涓嶅ぇ浜巤max}瀛�",max = 25) private String protocol; /** - * 娣诲姞鏂瑰紡;1-绯荤粺鑷姩锛�2-鎵嬪姩 - */ + * 鍦ㄧ嚎鐘舵��;1-鍦ㄧ嚎锛�2-绂荤嚎 + */ + @Schema(description = "鍦ㄧ嚎鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Byte onlinestate; + + /** + * 鏈�杩戜笂鎶ユ椂闂� + */ + @Schema(description = "鏈�杩戜笂鎶ユ椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Date reporttime; + + /** + * 娣诲姞鏂瑰紡;1-绯荤粺鑷姩锛�2-鎵嬪姩 + */ @Schema(description = "娣诲姞鏂瑰紡", requiredMode = Schema.RequiredMode.NOT_REQUIRED) private Byte addways; /** - * 鎿嶄綔浜虹紪鍙� - */ + * 鎿嶄綔浜虹紪鍙� + */ @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) private Long operator; /** - * 鎿嶄綔鏃堕棿 - */ + * 鎿嶄綔鏃堕棿 + */ @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) private Date operatedt; /** - * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎 - */ + * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎 + */ @Schema(description = "鍒犻櫎鏍囪瘑", requiredMode = Schema.RequiredMode.NOT_REQUIRED) private Byte deleted; } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java new file mode 100644 index 0000000..745a435 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrIntakeController.java @@ -0,0 +1,92 @@ +package com.dy.pipIrrGlobal.pojoPr; + +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.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; +import lombok.*; +import org.hibernate.validator.constraints.Length; + +import java.util.Date; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 9:16 + * @LastEditTime 2024-01-02 9:16 + * @Description + */ + +/** + * 鍙栨按鍙f崋缁戣〃 + */ + +@TableName(value="pr_intake_controller", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "鍙栨按鍙f崋缁戝疄浣�") +public class PrIntakeController implements BaseEntity { + public static final long serialVersionUID = 1L; + + /** + * 涓婚敭 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long id; + + /** + * 鍙栨按鍙g紪鍙� + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @Schema(description = "鍙栨按鍙D", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "鍙栨按鍙D涓嶈兘涓虹┖") + private Long intakeid; + + /** + * 鎺у埗鍣ㄧ紪鍙� + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @Schema(description = "鎺у埗鍣↖D", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "鎺у埗鍣↖D涓嶈兘涓虹┖") + private Long controllerid; + + /** + * 鎿嶄綔绫诲瀷;1-鎹嗙粦锛�2-瑙g粦 + */ + @Schema(description = "鎿嶄綔绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Max(message = "鎿嶄綔绫诲瀷鍙兘1鎴�2", value = 2) + @Min(message = "鎿嶄綔绫诲瀷鍙兘1鎴�2",value = 1) + private Byte operatetype; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 1, max = 200) + private String remarks; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") + private Long operator; + + /** + * 鎿嶄綔鏃堕棿 + */ + @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Date operatedt; + +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java index 1d632e8..d5d4934 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoController.java @@ -30,12 +30,12 @@ @Schema(title = "鎺у埗鍣ㄧ紪鍙�") @ExcelProperty("鎺у埗鍣ㄧ紪鍙�") @ColumnWidth(15) - private String code; + private String controllerCode; @Schema(title = "鍦ㄧ嚎鐘舵��") @ExcelProperty("鍦ㄧ嚎鐘舵��") @ColumnWidth(15) - private String state; + private String onlineState; @Schema(title = "缁戝畾鍙栨按鍙�") @ExcelProperty("缁戝畾鍙栨按鍙�") @@ -45,12 +45,12 @@ @Schema(title = "缁戝畾娆℃暟") @ExcelProperty("缁戝畾娆℃暟") @ColumnWidth(10) - private Integer bindings; + private Integer bindNumber; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Schema(title = "鏈�杩戜笂鎶ユ椂闂�") @ExcelProperty("鏈�杩戜笂鎶ユ椂闂�") @ColumnWidth(30) - private Date operateDt; + private Date reportTime; } diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoController.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoController.java new file mode 100644 index 0000000..9bfd3d3 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoController.java @@ -0,0 +1,42 @@ +package com.dy.pipIrrGlobal.voSe; + +import com.dy.common.po.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 15:56 + * @LastEditTime 2024-01-02 15:56 + * @Description + */ + +@Data +@Schema(title = "鎺у埗鍣ㄨ鍥惧璞�") +public class VoController implements BaseEntity { + private static final long serialVersionUID = 1L; + + @Schema(title = "ID") + private Long id; + + @Schema(title = "鎺у埗鍣ㄧ紪鍙�") + private Long controllerCode; + + @Schema(title = "鍦ㄧ嚎鐘舵��") + private String onlineState; + + @Schema(title = "缁戝畾鍙栨按鍙�") + private String intakeName; + + @Schema(title = "缁戝畾娆℃暟") + private Integer bindNumber; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @Schema(title = "鏈�杩戜笂鎶ユ椂闂�") + private Date reportTime; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml index 9781e59..df83fbb 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml @@ -7,6 +7,8 @@ <id column="id" jdbcType="BIGINT" property="id" /> <result column="code" jdbcType="VARCHAR" property="code" /> <result column="protocol" jdbcType="VARCHAR" property="protocol" /> + <result column="onlineState" jdbcType="TINYINT" property="onlinestate" /> + <result column="reportTime" jdbcType="TIMESTAMP" property="reporttime" /> <result column="addWays" jdbcType="TINYINT" property="addways" /> <result column="operator" jdbcType="BIGINT" property="operator" /> <result column="operateDt" jdbcType="TIMESTAMP" property="operatedt" /> @@ -14,7 +16,7 @@ </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> - id, code, protocol, addWays, `operator`, operateDt, deleted + id, code, protocol, onlineState, reportTime, addWays, `operator`, operateDt, deleted </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> @@ -32,11 +34,13 @@ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController"> <!--@mbg.generated--> insert into pr_controller (id, code, protocol, - addWays, `operator`, operateDt, - deleted) + onlineState, reportTime, addWays, + `operator`, operateDt, deleted + ) values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, - #{addways,jdbcType=TINYINT}, #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, - #{deleted,jdbcType=TINYINT}) + #{onlinestate,jdbcType=TINYINT}, #{reporttime,jdbcType=TIMESTAMP}, #{addways,jdbcType=TINYINT}, + #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT} + ) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController"> @@ -51,6 +55,12 @@ </if> <if test="protocol != null"> protocol, + </if> + <if test="onlinestate != null"> + onlineState, + </if> + <if test="reporttime != null"> + reportTime, </if> <if test="addways != null"> addWays, @@ -74,6 +84,12 @@ </if> <if test="protocol != null"> #{protocol,jdbcType=VARCHAR}, + </if> + <if test="onlinestate != null"> + #{onlinestate,jdbcType=TINYINT}, + </if> + <if test="reporttime != null"> + #{reporttime,jdbcType=TIMESTAMP}, </if> <if test="addways != null"> #{addways,jdbcType=TINYINT}, @@ -99,6 +115,12 @@ <if test="protocol != null"> protocol = #{protocol,jdbcType=VARCHAR}, </if> + <if test="onlinestate != null"> + onlineState = #{onlinestate,jdbcType=TINYINT}, + </if> + <if test="reporttime != null"> + reportTime = #{reporttime,jdbcType=TIMESTAMP}, + </if> <if test="addways != null"> addWays = #{addways,jdbcType=TINYINT}, </if> @@ -119,10 +141,73 @@ update pr_controller set code = #{code,jdbcType=VARCHAR}, protocol = #{protocol,jdbcType=VARCHAR}, + onlineState = #{onlinestate,jdbcType=TINYINT}, + reportTime = #{reporttime,jdbcType=TIMESTAMP}, addWays = #{addways,jdbcType=TINYINT}, `operator` = #{operator,jdbcType=BIGINT}, operateDt = #{operatedt,jdbcType=TIMESTAMP}, deleted = #{deleted,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} </update> + + <!--鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰曟暟--> + <select id="getRecordCount" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + FROM pr_controller con + INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id + INNER JOIN pr_intake inta ON ic.intakeId = inta.id + , (SELECT @i:=0) AS itable + <where> + AND ic.operateType = 1 + <if test = "controllerCode != null and controllerCode !=''"> + AND con.code like CONCAT('%',#{controllerCode},'%') + </if> + + <if test = "onlineState != null and onlineState > 0"> + AND con.onlineState = ${onlineState} + </if> + + <if test = "bindNumber != null and bindNumber > 0"> + AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰�--> + <select id="getControllers" resultType="com.dy.pipIrrGlobal.voPr.VoController"> + SELECT + (@i:=@i+1) AS id, + con.code AS controllerCode, + (CASE + WHEN con.onlineState = 1 THEN "鍦ㄧ嚎" + WHEN con.onlineState = 2 THEN "绂荤嚎" + END) AS onlineState, + inta.name AS intakeName, + (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber, + con.reportTime + FROM pr_controller con + INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id + INNER JOIN pr_intake inta ON ic.intakeId = inta.id + , (SELECT @i:=0) AS itable + <where> + AND ic.operateType = 1 + <if test = "controllerCode != null and controllerCode !=''"> + AND con.code like CONCAT('%',#{controllerCode},'%') + </if> + + <if test = "onlineState != null and onlineState > 0"> + AND con.onlineState = ${onlineState} + </if> + + <if test = "bindNumber != null and bindNumber > 0"> + AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber} + </if> + </where> + ORDER BY con.operateDt DESC + <if test="pageCurr != null and pageSize != null"> + LIMIT ${pageCurr}, ${pageSize} + </if> + + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml new file mode 100644 index 0000000..df62638 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml @@ -0,0 +1,188 @@ +<?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.daoPr.PrIntakeControllerMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrIntakeController"> + <!--@mbg.generated--> + <!--@Table pr_intake_controller--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="intakeId" jdbcType="BIGINT" property="intakeid" /> + <result column="controllerId" jdbcType="BIGINT" property="controllerid" /> + <result column="operateType" jdbcType="TINYINT" property="operatetype" /> + <result column="remarks" jdbcType="VARCHAR" property="remarks" /> + <result column="operator" jdbcType="BIGINT" property="operator" /> + <result column="operateDt" jdbcType="TIMESTAMP" property="operatedt" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, intakeId, controllerId, operateType, remarks, `operator`, operateDt + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List" /> + from pr_intake_controller + where id = #{id,jdbcType=BIGINT} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete from pr_intake_controller + where id = #{id,jdbcType=BIGINT} + </delete> + + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntakeController"> + <!--@mbg.generated--> + insert into pr_intake_controller (id, intakeId, controllerId, + operateType, remarks, `operator`, + operateDt) + values (#{id,jdbcType=BIGINT}, #{intakeid,jdbcType=BIGINT}, #{controllerid,jdbcType=BIGINT}, + #{operatetype,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, + #{operatedt,jdbcType=TIMESTAMP}) + </insert> + + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntakeController"> + <!--@mbg.generated--> + insert into pr_intake_controller + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="intakeid != null"> + intakeId, + </if> + <if test="controllerid != null"> + controllerId, + </if> + <if test="operatetype != null"> + operateType, + </if> + <if test="remarks != null"> + remarks, + </if> + <if test="operator != null"> + `operator`, + </if> + <if test="operatedt != null"> + operateDt, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="intakeid != null"> + #{intakeid,jdbcType=BIGINT}, + </if> + <if test="controllerid != null"> + #{controllerid,jdbcType=BIGINT}, + </if> + <if test="operatetype != null"> + #{operatetype,jdbcType=TINYINT}, + </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> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntakeController"> + <!--@mbg.generated--> + update pr_intake_controller + <set> + <if test="intakeid != null"> + intakeId = #{intakeid,jdbcType=BIGINT}, + </if> + <if test="controllerid != null"> + controllerId = #{controllerid,jdbcType=BIGINT}, + </if> + <if test="operatetype != null"> + operateType = #{operatetype,jdbcType=TINYINT}, + </if> + <if test="remarks != null"> + remarks = #{remarks,jdbcType=VARCHAR}, + </if> + <if test="operator != null"> + `operator` = #{operator,jdbcType=BIGINT}, + </if> + <if test="operatedt != null"> + operateDt = #{operatedt,jdbcType=TIMESTAMP}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntakeController"> + <!--@mbg.generated--> + update pr_intake_controller + set intakeId = #{intakeid,jdbcType=BIGINT}, + controllerId = #{controllerid,jdbcType=BIGINT}, + operateType = #{operatetype,jdbcType=TINYINT}, + remarks = #{remarks,jdbcType=VARCHAR}, + `operator` = #{operator,jdbcType=BIGINT}, + operateDt = #{operatedt,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=BIGINT} + </update> + + <!--鏍规嵁鍙栨按鍙g紪鍙枫�佹帶鍒跺櫒缂栧彿銆佹搷浣滅被鍒幏鍙栬褰曟暟閲�--> + <select id="getBindRecordCount" resultType="java.lang.Integer"> + SELECT + COUNT(*) AS recordCount + FROM pr_intake_controller + <where> + <if test = "intakeId != null and intakeId > 0"> + AND intakeId = ${intakeId} + </if> + + <if test = "controllerId != null and controllerId > 0"> + AND controllerId = ${controllerId} + </if> + + <if test = "operateType != null and operateType > 0"> + AND operateType = ${operateType} + </if> + </where> + </select> + + <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栫粦瀹氳褰曞垪琛�--> + <select id="getBindsByIntakeId" resultType="java.util.Map"> + SELECT + user.name AS userName, + con.code AS controllerCode, + (CASE + WHEN ic.operateType = 1 THEN "缁戝畾" + WHEN ic.operateType = 2 THEN "瑙g粦" + END) AS operateType, + ic.operateDt + FROM pr_intake inta + INNER JOIN pr_intake_controller ic ON inta.id= ic.intakeId + INNER JOIN ba_user user ON ic.operator = user.id + INNER JOIN pr_controller con ON ic.controllerId = con.id + <if test = "intakeId != null and intakeId > 0"> + AND inta.id = ${intakeId} + </if> + ORDER BY ic.operateDt DESC + </select> + + <!--鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栫粦瀹氳褰曞垪琛�--> + <select id="getBindsByControllerId" resultType="java.util.Map"> + SELECT + (CASE + WHEN ic.operateType = 1 THEN "缁戝畾" + WHEN ic.operateType = 2 THEN "瑙g粦" + END) AS operateType, + inta.name AS intakeName, + user.name AS userName, + ic.operateDt + FROM pr_controller con + INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id + INNER JOIN pr_intake inta ON ic.intakeId = inta.id + INNER JOIN ba_user user ON ic.operator = user.id + <if test = "controllerId != null and controllerId > 0"> + AND con.id = ${controllerId} + </if> + ORDER BY ic.operateDt DESC + </select> +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java index fe5f6b9..d395513 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java @@ -3,8 +3,11 @@ 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.pojoPr.PrController; +import com.dy.pipIrrGlobal.voPr.VoController; +import com.dy.pipIrrGlobal.voSe.VoActiveCard; import com.dy.pipIrrProject.result.ProjectResultCode; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; @@ -18,12 +21,10 @@ import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.Date; +import java.util.List; import java.util.Objects; import java.util.Optional; @@ -42,6 +43,38 @@ public class ControllerCtrl { private final ControllerSv controllerSv; + @Operation(summary = "鑾峰緱涓�椤垫帶鍒跺櫒璁板綍", description = "杩斿洖涓�椤垫帶鍒跺櫒鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖涓�椤垫帶鍒跺櫒鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoActiveCard.class))} + ) + }) + @GetMapping(path = "/getControllers") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoController>>> getControllers(QueryVo vo){ + try { + QueryResultVo<List<VoController>> res = controllerSv.getControllers(vo); + if(res.itemTotal != null && res.itemTotal > 0) { + return BaseResponseUtils.buildSuccess(res); + }else { + return BaseResponseUtils.buildFail(ProjectResultCode.NO_RECORDS.getMessage()); + } + //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( @@ -54,15 +87,18 @@ @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() - public BaseResponse<Boolean> add(@RequestBody @Valid PrController po, BindingResult bindingResult){ + public BaseResponse<Boolean> add(@RequestBody @Valid DtoController po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } + PrController prController = DtoToPojo.INSTANCT.po2vo(po); Date operateTime = new Date(); - po.setOperatedt(operateTime); - po.setDeleted((byte)0); - Integer rec = Optional.ofNullable(controllerSv.addController(po)).orElse(0); + prController.setOperatedt(operateTime); + prController.setDeleted((byte)0); + prController.setOnlinestate((byte)2); + prController.setReporttime(operateTime); + Integer rec = Optional.ofNullable(controllerSv.addController(prController)).orElse(0); if(rec == 0) { return BaseResponseUtils.buildFail(ProjectResultCode.CONTROLLER_FAIL.getMessage()); } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java index 717429e..83c0f26 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java @@ -1,10 +1,16 @@ package com.dy.pipIrrProject.controller; +import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; import com.dy.pipIrrGlobal.pojoPr.PrController; +import com.dy.pipIrrGlobal.voPr.VoController; 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.List; +import java.util.Map; /** * @author ZhuBaoMin @@ -20,6 +26,35 @@ private PrControllerMapper prControllerMapper; /** + * 鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰� + * @param queryVo + * @return + */ + public QueryResultVo<List<VoController>> getControllers(QueryVo queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = prControllerMapper.getRecordCount(params); + + QueryResultVo<List<VoController>> rsVo = new QueryResultVo<>() ; + Integer pageCurr = 0; + Integer pageSize = 10000; + rsVo.pageCurr = 1; + rsVo.pageSize = 10000; + if(queryVo.pageSize != null && queryVo.pageCurr != null) { + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr; + pageSize = queryVo.pageSize ; + pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); + } + params.put("pageCurr", pageCurr); + params.put("pageSize", pageSize); + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = prControllerMapper.getControllers(params); + return rsVo ; + } + + /** * 娣诲姞鎺у埗鍣� * @param po * @return diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java new file mode 100644 index 0000000..3ba0686 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoController.java @@ -0,0 +1,47 @@ +package com.dy.pipIrrProject.controller; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 16:36 + * @LastEditTime 2024-01-02 16:36 + * @Description + */ + +@Data +@Schema(name = "鎺у埗鍣ㄤ紶鍏ュ璞�") +public class DtoController { + public static final long serialVersionUID = 1L; + + /** + * 缂栧彿 + */ + @Schema(description = "缂栧彿", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "鎺у埗鍣ㄧ紪鍙蜂笉鑳戒负绌�") + @Length(message = "鎺у埗鍣ㄧ紪鍙蜂笉澶т簬{max}瀛�",max = 25) + private String code; + + /** + * 閫氳鍗忚 + */ + @Schema(description = "閫氳鍗忚", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖") + @Length(message = "閫氳鍗忚涓嶅ぇ浜巤max}瀛�",max = 25) + private String protocol; + + /** + * 娣诲姞鏂瑰紡;1-绯荤粺鑷姩锛�2-鎵嬪姩 + */ + @Schema(description = "娣诲姞鏂瑰紡", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Byte addWays; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long operator; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java new file mode 100644 index 0000000..0f2c3f9 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/DtoToPojo.java @@ -0,0 +1,23 @@ +package com.dy.pipIrrProject.controller; + +import com.dy.pipIrrGlobal.pojoPr.PrController; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 16:39 + * @LastEditTime 2024-01-02 16:39 + * @Description + */ + +@Mapper +public interface DtoToPojo { + DtoToPojo INSTANCT = Mappers.getMapper(DtoToPojo.class); + @Mapping(target = "code", source = "code") + @Mapping(target = "protocol", source = "protocol") + @Mapping(target = "addways", source = "addWays") + @Mapping(target = "operator", source = "operator") + PrController po2vo(DtoController po); +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java index d52f49c..23b3f73 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java @@ -1,10 +1,31 @@ package com.dy.pipIrrProject.controller; +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + /** * @author ZhuBaoMin * @date 2023-12-29 10:07 * @LastEditTime 2023-12-29 10:07 * @Description */ -public class QueryVo { + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "鎺у埗鍣ㄦ煡璇㈡潯浠�") +public class QueryVo extends QueryConditionVo { + + @Schema(description = "鎺у埗鍣ㄧ紪鍙�") + private String controllerCode; + + @Schema(description = "鍦ㄧ嚎鐘舵��") + public Integer onlineState; + + @Schema(description = "缁戝畾鏁伴噺") + public Integer bindNumber; } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java new file mode 100644 index 0000000..451f3a5 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java @@ -0,0 +1,48 @@ +package com.dy.pipIrrProject.intakeController; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 10:53 + * @LastEditTime 2024-01-02 10:53 + * @Description + */ + +@Data +@Schema(name = "鍙栨按鍙c�佹帶鍒跺櫒缁戝畾鍏崇郴浼犲叆瀵硅薄") +public class DtoIntakeController { + public static final long serialVersionUID = 1L; + + /** + * 鍙栨按鍙g紪鍙� + */ + @Schema(description = "鍙栨按鍙D", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "鍙栨按鍙D涓嶈兘涓虹┖") + private Long intakeId; + + /** + * 鎺у埗鍣ㄧ紪鍙� + */ + @Schema(description = "鎺у埗鍣↖D", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "鎺у埗鍣↖D涓嶈兘涓虹┖") + private Long controllerId; + + /** + * 澶囨敞淇℃伅 + */ + @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 1, max = 200) + private String remarks; + + /** + * 鎿嶄綔浜虹紪鍙� + */ + @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") + private Long operator; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoToPojo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoToPojo.java new file mode 100644 index 0000000..6de4a26 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoToPojo.java @@ -0,0 +1,23 @@ +package com.dy.pipIrrProject.intakeController; + +import com.dy.pipIrrGlobal.pojoPr.PrIntakeController; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 10:59 + * @LastEditTime 2024-01-02 10:59 + * @Description DtoToPojo 杞� PrIntakeController + */ + +@Mapper +public interface DtoToPojo { + DtoToPojo INSTANCT = Mappers.getMapper(DtoToPojo.class); + @Mapping(target = "intakeid", source = "intakeId") + @Mapping(target = "controllerid", source = "controllerId") + @Mapping(target = "remarks", source = "remarks") + @Mapping(target = "operator", source = "operator") + PrIntakeController po2vo(DtoIntakeController po); +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java new file mode 100644 index 0000000..c1aaa56 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java @@ -0,0 +1,179 @@ +package com.dy.pipIrrProject.intakeController; + +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.pojoBa.BaClient; +import com.dy.pipIrrGlobal.pojoPr.PrIntakeController; +import com.dy.pipIrrProject.result.ProjectResultCode; +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.http.MediaType; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 9:18 + * @LastEditTime 2024-01-02 9:18 + * @Description + */ + +@Slf4j +@Tag(name = "鍙栨按鍙�/鎺у埗鍣ㄥ叧鑱旂鐞�", description = "鍙栨按鍙�/鎺у埗鍣ㄥ叧鑱旀搷浣�") +@RestController +@RequestMapping(path="intake_controller") +@RequiredArgsConstructor +public class IntakeControllerCtrl { + private final IntakeControllerSv intakeControllerSv; + + /** + * 娣诲姞鍙栨按鍙�/鎺у埗鍣ㄦ崋缁戣褰� + * 1. 鍒ゆ柇鍙栨按鍙f槸鍚﹀瓨鍦� + * 2. 鍒ゆ柇鎺у埗鍣ㄦ槸鍚﹀瓨鍦� + * 3. 鍒ゆ柇鍙栨按鍙c�佹帶鍒跺櫒缁戝畾鍏崇郴鏄惁宸插瓨鍦� + */ + @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 = "bind", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> bind(@RequestBody @Valid DtoIntakeController po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + Integer recordCount = Optional.ofNullable(intakeControllerSv.getBindRecordCount(po.getIntakeId(), po.getControllerId(), (byte)1)).orElse(0); + if(recordCount > 0) { + return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_HAS_BINDED_CONTROLLER.getMessage()); + } + + PrIntakeController prIntakeController = DtoToPojo.INSTANCT.po2vo(po); + Date operateTime = new Date(); + prIntakeController.setOperatedt(operateTime); + prIntakeController.setOperatetype((byte)1); + + Integer rec = Optional.ofNullable(intakeControllerSv.addRecord(prIntakeController)).orElse(0); + if(rec == 0) { + return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage()); + } + return BaseResponseUtils.buildSuccess(true) ; + } + + /** + * 娣诲姞鍙栨按鍙�/鎺у埗鍣ㄨВ缁戣褰� + * 1. 鍒ゆ柇鍙栨按鍙f槸鍚﹀瓨鍦� + * 2. 鍒ゆ柇鎺у埗鍣ㄦ槸鍚﹀瓨鍦� + * 3. 鍒ゆ柇鍙栨按鍙c�佹帶鍒跺櫒瑙g粦鍏崇郴鏄惁宸插瓨鍦� + */ + @Operation(summary = "娣诲姞瑙g粦璁板綍", description = "娣诲姞瑙g粦璁板綍") + @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 = "unbind", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> unbind(@RequestBody @Valid DtoIntakeController po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + Integer recordCount = Optional.ofNullable(intakeControllerSv.getBindRecordCount(po.getIntakeId(), po.getControllerId(), (byte)2)).orElse(0); + if(recordCount > 0) { + return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_CONTROLLER_HAS_UNBOUND.getMessage()); + } + + PrIntakeController prIntakeController = DtoToPojo.INSTANCT.po2vo(po); + Date operateTime = new Date(); + prIntakeController.setOperatedt(operateTime); + prIntakeController.setOperatetype((byte)2); + + Integer rec = Optional.ofNullable(intakeControllerSv.addRecord(prIntakeController)).orElse(0); + if(rec == 0) { + return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage()); + } + return BaseResponseUtils.buildSuccess(true) ; + } + + /** + * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栫粦瀹氳褰曞垪琛� + * @param intakeId 鍙栨按鍙g紪鍙� + * @return 鍙栨按鍙d笅鎺у埗鍣ㄧ殑缁戝畾銆佽В缁戣褰� + */ + @Operation(summary = "鑾峰緱鍙栨按鍙d笅鎺у埗鍣ㄧ粦瀹氬強瑙g粦璁板綍", description = "杩斿洖鍙栨按鍙d笅鎺у埗鍣ㄧ粦瀹氬強瑙g粦鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖鍏ㄩ儴缁戝畾鍙婅В缁戞暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = BaClient.class))} + ) + }) + @GetMapping(path = "intake_binds") + @SsoAop() + public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getBindsByIntakeId(Long intakeId){ + try { + List<Map<String, Object>> list = Optional.ofNullable(intakeControllerSv.getBindsByIntakeId(intakeId)).orElse(new ArrayList<>()); + if(list.size() <= 0) { + return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_NO_RECORDS.getMessage()); + } + return BaseResponseUtils.buildSuccess(list); + } catch (Exception e) { + log.error("鏌ヨ鍐滄埛寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + + /** + * 鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栫粦瀹氳褰曞垪琛� + * @param controllerId 鎺у埗鍣ㄧ紪鍙� + * @return 涓庤鎺у埗鍣ㄧ浉鍏崇殑缁戝畾銆佽В缁戣褰� + */ + @Operation(summary = "鑾峰緱鎺у埗鍣ㄤ笌鍙栨按鍙g粦瀹氬強瑙g粦璁板綍", description = "杩斿洖鎺у埗鍣ㄤ笌鍙栨按鍙g粦瀹氬強瑙g粦鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖鍏ㄩ儴缁戝畾鍙婅В缁戞暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = BaClient.class))} + ) + }) + @GetMapping(path = "controller_binds") + @SsoAop() + public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getBindsByControllerId(Long controllerId){ + try { + List<Map<String, Object>> list = Optional.ofNullable(intakeControllerSv.getBindsByControllerId(controllerId)).orElse(new ArrayList<>()); + if(list.size() <= 0) { + return BaseResponseUtils.buildFail(ProjectResultCode.CONTROLLER_NO_RECORDS.getMessage()); + } + return BaseResponseUtils.buildSuccess(list); + } catch (Exception e) { + log.error("鏌ヨ鍐滄埛寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java new file mode 100644 index 0000000..42a8910 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java @@ -0,0 +1,62 @@ +package com.dy.pipIrrProject.intakeController; + +import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper; +import com.dy.pipIrrGlobal.pojoPr.PrIntakeController; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @author ZhuBaoMin + * @date 2024-01-02 9:19 + * @LastEditTime 2024-01-02 9:19 + * @Description + */ + +@Slf4j +@Service +public class IntakeControllerSv { + @Autowired + private PrIntakeControllerMapper prIntakeControllerMapper; + + /** + * 鏍规嵁鍙栨按鍙g紪鍙枫�佹帶鍒跺櫒缂栧彿銆佹搷浣滅被鍒幏鍙栬褰曟暟閲� + * 閲嶅缁戝畾銆侀噸澶嶈В缁戦兘鐢ㄨ鏂规硶鍒ゆ柇 + * @param intakeId 鍙栨按鍙D + * @param controllerId 鎺у埗鍣↖D + * @param operateType 鎿嶄綔绫诲瀷 1-鎹嗙粦锛�2-瑙g粦 + * @return 濡備綍鏉′欢璁板綍鏁� + */ + Integer getBindRecordCount(Long intakeId, Long controllerId, Byte operateType) { + return prIntakeControllerMapper.getBindRecordCount(intakeId, controllerId, operateType); + } + /** + * 娣诲姞鍙栨按鍙c�佹帶鍒跺櫒鎹嗙粦璁板綍锛�1-鎹嗙粦锛�2-瑙g粦 + * @param po 鍙栨按鍙�/鎺у埗鍣ㄥ疄浣撳璞� + * @return + */ + Integer addRecord(PrIntakeController po) { + return prIntakeControllerMapper.insert(po); + } + + /** + * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栫粦瀹氳褰曞垪琛� + * @param intakeId 鍙栨按鍙g紪鍙� + * @return 鍙栨按鍙d笌鎺у埗鍣ㄧ粦瀹氬垪琛� + */ + List<Map<String, Object>> getBindsByIntakeId(Long intakeId) { + return prIntakeControllerMapper.getBindsByIntakeId(intakeId); + } + + /** + * 鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栫粦瀹氳褰曞垪琛� + * @param controllerId 鎺у埗鍣ㄧ紪鍙� + * @return 鍙栨按鍙d笌鎺у埗鍣ㄧ粦瀹氬垪琛� + */ + List<Map<String, Object>> getBindsByControllerId(Long controllerId) { + return prIntakeControllerMapper.getBindsByControllerId(controllerId); + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java index 30cfe28..0e05a4e 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java @@ -25,8 +25,17 @@ /** * 鎺у埗鍣� */ - CONTROLLER_FAIL(30001, "鎺у埗鍣ㄦ坊鍔犲け璐�"); + CONTROLLER_FAIL(30001, "鎺у埗鍣ㄦ坊鍔犲け璐�"), + NO_RECORDS(30001, "娌℃湁绗﹀悎鏉′欢鐨勬帶鍒跺櫒鏁版嵁"), + /** + * 鍙栨按鍙c�佹帶鍒跺櫒鍏宠仈 + */ + INTAKE_HAS_BINDED_CONTROLLER(40001, "鍙栨按鍙d笌鎺у埗鍣ㄥ凡缁戝畾"), + BIND_FAIL(40002, "鍙栨按鍙d笌鎺у埗鍣ㄧ粦瀹氬け璐�"), + INTAKE_CONTROLLER_HAS_UNBOUND(40003, "鍙栨按鍙d笌鎺у埗鍣ㄥ凡瑙g粦"), + INTAKE_NO_RECORDS(40004, "璇ュ彇姘村彛鏃犵粦瀹氳褰�"), + CONTROLLER_NO_RECORDS(40005, "璇ユ帶鍒跺櫒鏃犵粦瀹氳褰�"); private final Integer code; private final String message; } -- Gitblit v1.8.0