From f4faf482bcfab63425c9aff0862ad828d71d85a4 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 25 六月 2025 16:59:03 +0800 Subject: [PATCH] 水肥历史数据、最新数据分布条件查询 --- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java | 66 ++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java | 19 ++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml | 52 ++++++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureQo.java | 57 +++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java | 16 ++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml | 54 ++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoManure.java | 120 +++++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureSv.java | 70 ++++++++ 8 files changed, 454 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java index 2d20b74..c4f3aa0 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureHistoryMapper.java @@ -1,6 +1,10 @@ package com.dy.pipIrrGlobal.daoRm; import com.dy.pipIrrGlobal.pojoRm.RmManureHistory; +import com.dy.pipIrrGlobal.voRm.VoManure; + +import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -16,6 +20,21 @@ RmManureHistory selectByPrimaryKey(Long id); + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鏁伴噺 + * @param params + * @return + */ + Long selectCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍 + * @param params + * @return + */ + List<VoManure> selectSome(Map<?, ?> params); + + int updateByPrimaryKeySelective(RmManureHistory record); int updateByPrimaryKey(RmManureHistory record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java index bae9293..7bfba0f 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmManureLastMapper.java @@ -1,9 +1,11 @@ package com.dy.pipIrrGlobal.daoRm; import com.dy.pipIrrGlobal.pojoRm.RmManureLast; +import com.dy.pipIrrGlobal.voRm.VoManure; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -21,6 +23,20 @@ List<RmManureLast> selectRmManureLast(@Param("stManureId") Long stManureId) ; + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍鏁伴噺 + * @param params + * @return + */ + Long selectCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ璁板綍 + * @param params + * @return + */ + List<VoManure> selectSome(Map<?, ?> params); + int updateByPrimaryKeySelective(RmManureLast record); int updateByPrimaryKey(RmManureLast record); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoManure.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoManure.java new file mode 100644 index 0000000..ceaac69 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoManure.java @@ -0,0 +1,120 @@ +package com.dy.pipIrrGlobal.voRm; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: liurunyu + * @Date: 2025/6/25 16:34 + * @Description + */ +@Data +public class VoManure { + public static final long serialVersionUID = 202506251634001L; + + /** + * 璁板綍ID + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + public Long id; + + /** + * 姘磋偉鏈篒D + */ + @Schema(description = "姘磋偉鏈篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @JSONField(serializeUsing= ObjectWriterImplToString.class) + public Long manureId; + + /** + * 姘磋偉鏈哄悕绉� + */ + @Schema(description = "姘磋偉鏈哄悕绉�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Long manureName; + + + /** + * 鏁版嵁涓婃姤鏃堕棿锛堝勾鏈堟棩鏃跺垎绉掞級 + */ + @Schema(description = "鏁版嵁鎺ユ敹鏃ユ湡鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date dt; + + /** + * 鎼呮媽1杩愯鐘舵��(1杩愯锛�0鍋滄) + */ + @Schema(description = "鎼呮媽1杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Byte stirRunning1; + + /** + * 鎼呮媽2杩愯鐘舵��(1杩愯锛�0鍋滄) + */ + @Schema(description = "鎼呮媽2杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Byte stirRunning2; + + /** + * 鎼呮媽3杩愯鐘舵��(1杩愯锛�0鍋滄) + */ + @Schema(description = "鎼呮媽3杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Byte stirRunning3; + + /** + * 鎼呮媽4杩愯鐘舵��(1杩愯锛�0鍋滄) + */ + @Schema(description = "鎼呮媽4杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Byte stirRunning4; + + /** + * 娉ㄨ偉杩愯鐘舵��(1杩愯锛�0鍋滄) + */ + @Schema(description = "娉ㄨ偉杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Byte injectRunning; + + /** + * 鐏屾簤杩愯鐘舵��(1杩愯锛�0鍋滄) + */ + @Schema(description = "鐏屾簤杩愯鐘舵��(1杩愯锛�0鍋滄)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Byte irrRunning; + + /** + * 鎶ヨ锛�1:娉ㄨ偉娉垫湁鏁呴殰锛�0:娉ㄨ偉娉垫病鏈夋晠闅滐級 + */ + @Schema(description = "鎶ヨ锛�1:娉ㄨ偉娉垫湁鏁呴殰锛�0:娉ㄨ偉娉垫病鏈夋晠闅滐級", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Byte alarm; + + /** + * 鑲ユ枡娴侀噺锛堝崌锛� + */ + @Schema(description = "鑲ユ枡娴侀噺锛堝崌锛�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) + public Double manureFlow; + + /** + * 娉ㄨ偉缁忚繃鏃堕棿(绉�) + */ + @Schema(description = "娉ㄨ偉缁忚繃鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Integer manureTime; + + /** + * 鎼呮媽缁忚繃鏃堕棿(绉掞級 + */ + @Schema(description = "鎼呮媽缁忚繃鏃堕棿(绉掞級", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Integer stirTime; + + /** + * 鎼呮媽璁惧畾鏃堕棿(绉�) + */ + @Schema(description = "鎼呮媽璁惧畾鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Integer stirDuration; + + /** + * 娉ㄨ偉璁惧畾鏃堕棿(绉�) + */ + @Schema(description = "娉ㄨ偉璁惧畾鏃堕棿(绉�)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Integer injectDuration; + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml index b1028ec..20cc470 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureHistoryMapper.xml @@ -32,6 +32,58 @@ from rm_manure_history where id = #{id,jdbcType=BIGINT} </select> + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍鏁伴噺--> + <select id="selectCount" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + FROM rm_manure_history htb + INNER JOIN pr_st_manure mtb ON mtb.id = htb.manure_id + <where> + <if test="manureId != null"> + AND htb.manure_id = #{manureId} + </if> + <if test = "no != null"> + AND mtb.no = #{no} + </if> + <if test = "name != null and name !=''"> + AND mtb.name LIKE CONCAT('%',#{intakeNum},'%') + </if> + <if test = "timeStart != null and timeStop != null"> + AND htb.dt BETWEEN #{timeStart} AND #{timeStop} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍--> + <select id="selectSome" resultType="com.dy.pipIrrGlobal.voRm.VoManure"> + SELECT + <include refid="Base_Column_List" />, + mtb.`name` AS manureName + FROM rm_manure_history htb + INNER JOIN pr_st_manure mtb ON mtb.id = htb.manure_id + <where> + <if test="manureId != null"> + AND htb.manure_id = #{manureId} + </if> + <if test = "no != null"> + AND mtb.no = #{no} + </if> + <if test = "name != null and name !=''"> + AND mtb.name LIKE CONCAT('%',#{intakeNum},'%') + </if> + <if test = "timeStart != null and timeStop != null"> + AND htb.dt BETWEEN #{timeStart} AND #{timeStop} + </if> + </where> + ORDER BY htb.id DESC + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> + + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <!--@mbg.generated--> delete from rm_manure_history diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml index e428cde..c1bbf6f 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmManureLastMapper.xml @@ -47,6 +47,60 @@ </where> limit 0,1 </select> + + + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍鏁伴噺--> + <select id="selectCount" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + FROM rm_manure_last ltb + INNER JOIN pr_st_manure mtb ON mtb.id = ltb.manure_id + <where> + <if test="manureId != null"> + AND ltb.manure_id = #{manureId} + </if> + <if test = "no != null"> + AND mtb.no = #{no} + </if> + <if test = "name != null and name !=''"> + AND mtb.name LIKE CONCAT('%',#{intakeNum},'%') + </if> + <if test = "timeStart != null and timeStop != null"> + AND ltb.dt BETWEEN #{timeStart} AND #{timeStop} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍--> + <select id="selectSome" resultType="com.dy.pipIrrGlobal.voRm.VoManure"> + SELECT + <include refid="Base_Column_List" />, + mtb.`name` AS manureName + FROM rm_manure_last ltb + INNER JOIN pr_st_manure mtb ON mtb.id = ltb.manure_id + <where> + <if test="manureId != null"> + AND ltb.manure_id = #{manureId} + </if> + <if test = "no != null"> + AND mtb.no = #{no} + </if> + <if test = "name != null and name !=''"> + AND mtb.name LIKE CONCAT('%',#{intakeNum},'%') + </if> + <if test = "timeStart != null and timeStop != null"> + AND ltb.dt BETWEEN #{timeStart} AND #{timeStop} + </if> + </where> + ORDER BY ltb.manure_id DESC + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> + + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <!--@mbg.generated--> delete from rm_manure_last diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java new file mode 100644 index 0000000..1b6f71b --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureCtrl.java @@ -0,0 +1,66 @@ +package com.dy.pipIrrRemote.mqttSd1.manure; + +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.pipIrrGlobal.voRm.VoManure; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Author: liurunyu + * @Date: 2025/6/25 16:17 + * @Description + */ +@Slf4j +@Tag(name = "姘磋偉鏁版嵁鏌ヨ", description = "姘磋偉鏁版嵁鏌ヨ") +@RestController("rmManureCtrl") +@RequestMapping(path = "manure") +@RequiredArgsConstructor +public class ManureCtrl { + + private ManureSv sv; + + @Autowired + public void setSv(ManureSv sv){ + this.sv = sv ; + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍 + * @param qo + * @return + */ + @GetMapping(path = "history") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoManure>>> selectHistory(ManureQo qo){ + try { + return BaseResponseUtils.buildSuccess(sv.selectHistory(qo)); + } catch (Exception e) { + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏈�鏂拌褰� + * @param qo + * @return + */ + @GetMapping(path = "last") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoManure>>> selectLast(ManureQo qo){ + try { + return BaseResponseUtils.buildSuccess(sv.selectLast(qo)); + } catch (Exception e) { + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureQo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureQo.java new file mode 100644 index 0000000..05076fb --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureQo.java @@ -0,0 +1,57 @@ +package com.dy.pipIrrRemote.mqttSd1.manure; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @Author: liurunyu + * @Date: 2025/6/25 16:18 + * @Description + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ManureQo extends QueryConditionVo { + /** + * 姘磋偉鏈篒D + */ + @Schema(description = "姘磋偉鏈篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Long manureId; + + /** + * 姘磋偉绔欑紪鍙� + */ + @Schema(description = "姘磋偉绔欑紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Integer no ; + + /** + * 姘磋偉绔欏悕绉� + */ + @Schema(description = "姘磋偉绔欏悕绉�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public String name; + /** + * 鏌ヨ寮�濮嬫棩鏈� + */ + @Schema(description = "鏌ヨ寮�濮嬫棩鏈�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public String timeStart; + + /** + * 鏌ヨ缁撴潫鏃ユ湡 + */ + @Schema(description = "鏌ヨ缁撴潫鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public String timeStop; + + + public void completionTime(){ + if(timeStart != null && !timeStart.trim().equals("")) { + timeStart = timeStart + " 00:00:00"; + } + if(timeStop != null && !timeStop.trim().equals("")) { + timeStop = timeStop + " 23:59:59"; + } + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureSv.java new file mode 100644 index 0000000..609c9fd --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/mqttSd1/manure/ManureSv.java @@ -0,0 +1,70 @@ +package com.dy.pipIrrRemote.mqttSd1.manure; + +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.daoRm.RmManureHistoryMapper; +import com.dy.pipIrrGlobal.daoRm.RmManureLastMapper; +import com.dy.pipIrrGlobal.voRm.VoManure; +import lombok.RequiredArgsConstructor; +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: liurunyu + * @Date: 2025/6/25 16:18 + * @Description + */ +@Slf4j +@Service("rmManureSv") +@RequiredArgsConstructor +public class ManureSv { + + @Autowired + private RmManureHistoryMapper rmManureHistoryDao ; + @Autowired + private RmManureLastMapper rmManureLastDao ; + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鍘嗗彶璁板綍 + * @param qo + * @return + */ + public QueryResultVo<List<VoManure>> selectHistory(ManureQo qo) { + qo.completionTime(); + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); + Long itemTotal = rmManureHistoryDao.selectCount(params); + + QueryResultVo<List<VoManure>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmManureHistoryDao.selectSome(params); + return rsVo ; + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鏌ヨ鏈�鏂拌褰� + * @param qo + * @return + */ + public QueryResultVo<List<VoManure>> selectLast(ManureQo qo) { + qo.completionTime(); + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); + Long itemTotal = rmManureLastDao.selectCount(params); + + QueryResultVo<List<VoManure>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmManureLastDao.selectSome(params); + return rsVo ; + } +} -- Gitblit v1.8.0