水道系统数据查询优化v3

main
ccongli 2 years ago
parent eea1f56f3c
commit 36366136f0

@ -9,12 +9,17 @@
<a-input placeholder="请输入Fid" v-model="queryParam.fid"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="批次号">
<a-input placeholder="请输入批次号" v-model="queryParam.batchNumber"></a-input>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="绑定时间">
<j-date placeholder="请选择开始日期" class="query-group-cust" :showTime="true" dateFormat="YYYY-MM-DD HH:mm:ss"
<j-date placeholder="请选择开始日期" class="query-group-cust" :showTime="true" dateFormat="YYYY-MM-DD"
v-model="queryParam.bindTime_begin"></j-date>
<span class="query-group-split-cust"></span>
<j-date placeholder="请选择结束日期" class="query-group-cust" :showTime="true" dateFormat="YYYY-MM-DD HH:mm:ss"
<j-date placeholder="请选择结束日期" class="query-group-cust" :showTime="true" dateFormat="YYYY-MM-DD"
v-model="queryParam.bindTime_end"></j-date>
</a-form-item>
</a-col>
@ -155,14 +160,17 @@
dataIndex: 'batchNumber'
},
{
title:'框',
title:'框',
align:"center",
dataIndex: 'number'
},
{
title:'型号表编号',
title:'型号',
align:"center",
dataIndex: 'typeid'
dataIndex: 'typeNo',
customRender:function (text) {
return text || "-"
}
},
{
title:'绑定时间',
@ -172,11 +180,6 @@
// return !text?"":(text.length>10?text.substr(0,10):text)
// }
},
// {
// title:'',
// align:"center",
// dataIndex: 'description'
// },
{
title: '操作',
dataIndex: 'action',
@ -192,10 +195,21 @@
deleteBatch: "/ttwaterwayfid/ttWaterwayFid/deleteBatch",
exportXlsUrl: "/ttwaterwayfid/ttWaterwayFid/exportXls",
importExcelUrl: "ttwaterwayfid/ttWaterwayFid/importExcel",
},
dictOptions:{},
superFieldList:[],
/* 分页参数 */
ipagination:{
current: 1,
pageSize: 10,
pageSizeOptions: ['10', '20', '30'],
showTotal: (total, range) => {
return " 生产总框数: " + total + `, 第 ${range[0]} - ${range[1]}`;
},
showQuickJumper: true,
showSizeChanger: true,
total: 0
},
}
},
created() {
@ -224,4 +238,9 @@
</script>
<style scoped>
@import '~@assets/less/common.less';
::v-deep .ant-pagination-total-text {
color: orangered;
font-size: 18px;
}
</style>

@ -5,7 +5,7 @@
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="绑定时间">
<a-form-item label="报警时间">
<j-date placeholder="请选择开始日期" class="query-group-cust" :showTime="true" dateFormat="YYYY-MM-DD HH:mm:ss"
v-model="queryParam.time_begin"></j-date>
<span class="query-group-split-cust"></span>
@ -167,7 +167,10 @@
deleteBatch: "/ttwaterwaymessage/ttWaterwayMessage/deleteBatch",
exportXlsUrl: "/ttwaterwaymessage/ttWaterwayMessage/exportXls",
importExcelUrl: "ttwaterwaymessage/ttWaterwayMessage/importExcel",
},
isorter:{
column: 'time',
order: 'desc',
},
dictOptions:{},
superFieldList:[],

@ -13,10 +13,10 @@
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="入水时间">
<j-date placeholder="请选择开始时间" class="query-group-cust" :showTime="true" dateFormat="YYYY-MM-DD HH:mm:ss"
v-model="queryParam.water_enter_begin"></j-date>
v-model="queryParam.waterEnter_begin"></j-date>
<span class="query-group-split-cust"></span>
<j-date placeholder="请选择结束时间" class="query-group-cust" :showTime="true" dateFormat="YYYY-MM-DD HH:mm:ss"
v-model="queryParam.water_enter_end"></j-date>
v-model="queryParam.waterEnter_end"></j-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
@ -50,6 +50,19 @@
</a-dropdown>
</div> -->
<!-- 关联信息区域 -->
<a-tabs defaultActiveKey="1">
<a-tab-pane tab="入水温度" key="1">
<TtxhWaterTempParamList ref="EnterTempParam"></TtxhWaterTempParamList>
</a-tab-pane>
<a-tab-pane tab="预热温度" key="2" forceRender>
<TtxhWaterTempParamList ref="YureTempParam"></TtxhWaterTempParamList>
</a-tab-pane>
<a-tab-pane tab="出水温度" key="3" forceRender>
<TtxhWaterTempParamList ref="OutTempParam"></TtxhWaterTempParamList>
</a-tab-pane>
</a-tabs>
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
@ -67,8 +80,8 @@
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:type}"
@change="handleTableChange"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: type}"
@change="handleTableChanged"
:customRow="clickThenCheck"
>
@ -83,19 +96,6 @@
</div>
<!-- table区域-end -->
<a-tabs defaultActiveKey="1">
<a-tab-pane tab="入水温度" key="1">
<TtxhWaterTempParamList ref="EnterTempParam"></TtxhWaterTempParamList>
</a-tab-pane>
<a-tab-pane tab="预热温度" key="2" forceRender>
<TtxhWaterTempParamList ref="YureTempParam"></TtxhWaterTempParamList>
</a-tab-pane>
<a-tab-pane tab="出水温度" key="3" forceRender>
<TtxhWaterTempParamList ref="OutTempParam"></TtxhWaterTempParamList>
</a-tab-pane>
</a-tabs>
</a-card>
</template>
@ -118,8 +118,8 @@
/* 分页参数 */
ipagination:{
current: 1,
pageSize: 5,
pageSizeOptions: ['5', '10', '20'],
pageSize: 10,
pageSizeOptions: ['10', '20', '30'],
showTotal: (total, range) => {
return range[0] + "-" + range[1] + " 共" + total + "条"
},
@ -127,8 +127,21 @@
showSizeChanger: true,
total: 0
},
queryParam :{
fid: 'E0040150F1C6D343'
},
//
columns: [
{
title: '#',
dataIndex: 'id',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title: 'FID',
align: "center",
@ -147,83 +160,120 @@
{
title: '绑定时间',
align: "center",
dataIndex: 'bindTime'
dataIndex: 'bindTime',
sorter: true
},
{
title: '产品名称',
align: "center",
dataIndex: 'proName'
dataIndex: 'proName',
customRender:function (t,r,index) {
return t || '-';
}
},
{
title: '型号',
align: "center",
dataIndex: 'typeNo'
dataIndex: 'typeNo',
customRender:function (t,r,index) {
return t || '-';
}
},
{
title: '入水时间',
align: "center",
dataIndex: 'typeNo'
dataIndex: 'waterEnter',
sorter: true,
customRender:function (t,r,index) {
return t || '-';
}
},
{
title: '预热时间',
align: "center",
dataIndex: 'typeNo'
dataIndex: 'waterYure',
customRender:function (t,r,index) {
return t || '-';
}
},
{
title: '出水时间',
align: "center",
dataIndex: 'outTime'
}],
dataIndex: 'waterOut',
customRender:function (t,r,index) {
return t || '-';
}
},
{
title: '预热时长',
align: "center",
dataIndex: 'yureDuring',
customRender:function (t,r,index) {
return t + "s";
}
},
{
title: '出水时长',
align: "center",
dataIndex: 'outDuring',
customRender:function (t,r,index) {
return t + "s";
}
}
],
//
type: "radio",
isorter:{
column: 'waterEnter',
order: 'desc',
},
url: {
list: "/ttwaterwayoutenter/ttWaterwayOutenter/list",
list: "/ttwaterwayoutenter/ttWaterwayOutenter/records",
},
}
},
methods: {
clickThenCheck(record) {
//
clickThenCheck(record,index) {
return {
on: {
click: () => {
this.onSelectChange(record.id.split(","), [record]);
dblclick: () => {
console.log(record);
this.onSelectChange([index], [record]);
}
}
};
},
onSelectChange(selectedRowKeys, selectionRows) {
onSelectChange(selectedRowKeys,selectionRows) {
this.selectedRowKeys = selectedRowKeys;
this.selectionRows = selectionRows;
this.$refs.EnterTempParam.getTempInfo(this.selectedRowKeys[0]);
this.$refs.YureTempParam.getTempInfo(this.selectedRowKeys[0]);
this.$refs.OutTempParam.getTempInfo(this.selectedRowKeys[0]);
this.$refs.EnterTempParam.getTempInfo(this.selectionRows[0].waterEnter);
this.$refs.YureTempParam.getTempInfo(this.selectionRows[0].waterYure);
this.$refs.OutTempParam.getTempInfo(this.selectionRows[0].waterOut);
},
onClearSelected() {
this.selectedRowKeys = [];
this.selectionRows = [];
this.$refs.EnterTempParam.queryParam.mainId = null;
this.$refs.YureTempParam.queryParam.mainId = null;
this.$refs.OutTempParam.queryParam.mainId = null;
this.$refs.EnterTempParam.loadInfo();
this.$refs.YureTempParam.loadInfo();
this.$refs.OutTempParam.loadInfo();
this.$refs.EnterTempParam.queryParam.time = null;
this.$refs.YureTempParam.queryParam.time = null;
this.$refs.OutTempParam.queryParam.time = null;
this.$refs.EnterTempParam.loadInfo(0);
this.$refs.YureTempParam.loadInfo(0);
this.$refs.OutTempParam.loadInfo(0);
this.$refs.EnterTempParam.selectionRows = [];
this.$refs.YureTempParam.selectedRowKeys = [];
this.$refs.YureTempParam.selectionRows = [];
this.$refs.OutTempParam.selectionRows = [];
},
searchQuery:function(){
searchQuery: function() {
this.selectedRowKeys = [];
this.selectionRows = [];
this.$refs.EnterTempParam.queryParam.mainId = null;
this.$refs.YureTempParam.queryParam.mainId = null;
this.$refs.OutTempParam.queryParam.mainId = null;
this.$refs.EnterTempParam.loadInfo();
this.$refs.YureTempParam.loadInfo();
this.$refs.OutTempParam.loadInfo();
this.$refs.EnterTempParam.selectionRows = [];
this.$refs.YureTempParam.selectedRowKeys = [];
this.$refs.OutTempParam.selectionRows = [];
this.loadData();
this.onClearSelected();
this.loadData(); //
},
handleTableChanged(pagination, filters, sorter) {
//
this.handleTableChange(pagination, filters, sorter);
this.onClearSelected();
}
}
}

@ -11,6 +11,7 @@
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:locale="locale"
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@change="handleTableChange"
>
@ -38,56 +39,71 @@ export default {
{
title: '温度1',
align: 'center',
dataIndex: 'ticketCode'
dataIndex: 'tempParam1'
},
{
title: '温度2',
align: 'center',
dataIndex: 'tickectDate'
dataIndex: 'tempParam2'
},
{
title: '温度3',
align: 'center',
dataIndex: 'orderId'
dataIndex: 'tempParam3'
},
{
title: '温度4',
align: 'center',
dataIndex: 'createBy'
dataIndex: 'tempParam4'
},
{
title: '温度5',
align: 'center',
dataIndex: 'createTime',
dataIndex: 'tempParam5',
// sorter: true
},
{
title: '时间点',
align: 'center',
dataIndex: 'time',
// sorter: true
}
],
locale: {
emptyText: '请双击选择一条历史记录'
},
ipagination: false, //
url: {
info: '/ttwaterwaycollect/ttWaterwayCollect/temoInfo',
}
info: '/ttwaterwaycollect/ttWaterwayCollect/tempInfo',
},
disableMixinCreated: true
}
},
methods: {
//
loadInfo() {
loadInfo(selected) {
if (!selected) {
this.dataSource = null;
this.locale.emptyText = "请双击选择一条历史记录";
} else {
var params = this.getQueryParams()
console.log(params);
getAction(this.url.info, {
orderId: params.mainId,
// pageNo: this.ipagination.current,
// pageSize: this.ipagination.pageSize
thatTime: params.time,
}).then(res => {
console.log(res);
// if (res.success) {
// this.dataSource = res.result.records
// this.ipagination.total = res.result.total
// } else {
// this.dataSource = null
// }
if (res.success && res.result != null) {
this.dataSource = [res.result];
} else {
this.dataSource = null;
this.locale.emptyText = "暂无匹配记录";
}
});
}
},
getTempInfo(mid) {
this.queryParam.mainId = mid;
this.loadInfo();
getTempInfo(time) {
this.queryParam.time = time;
this.loadInfo(1);
}
}
}

@ -1,6 +1,8 @@
package org.jeecg.modules.demo.ttwaterwaycollect.controller;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -9,6 +11,9 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
@ -103,6 +108,26 @@ public class TtWaterwayCollectController extends JeecgController<TtWaterwayColle
return Result.OK("编辑成功!");
}
/**
*
*/
@AutoLog(value = "tt_waterway_collect-温度记录")
@ApiOperation(value="tt_waterway_collect-温度记录", notes="tt_waterway_collect-温度记录")
//@RequiresPermissions("ttwaterwaycollect:tt_waterway_collect:edit")
@RequestMapping(value = "/tempInfo", method = {RequestMethod.GET, RequestMethod.POST})
public Result<TtWaterwayCollect> tempInfo(@RequestParam(value = "thatTime", defaultValue = "") String thatTime) {
TtWaterwayCollect tempInfo;
if (StringUtils.isBlank(thatTime) || thatTime.equals("0001-01-01 00:00:00")) {
tempInfo = null;
} else {
tempInfo = ttWaterwayCollectService.findTempInfo(thatTime);
}
return Result.OK(tempInfo);
}
/**
* id
*

@ -25,7 +25,7 @@ import lombok.experimental.Accessors;
* @Version: V1.0
*/
@Data
@TableName("tt_waterway_collect")
@TableName("collect")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tt_waterway_collect对象", description="tt_waterway_collect")
@ -62,20 +62,5 @@ public class TtWaterwayCollect implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "时间点")
private java.util.Date time;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的创建时间")
private java.util.Date createTime;
/**记录的创建人默认admin*/
@ApiModelProperty(value = "记录的创建人默认admin")
private java.lang.String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private java.util.Date updateTime;
/**记录的修改人,修改人员的登录账号*/
@ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
private java.lang.String updateBy;
}

@ -2,6 +2,8 @@ package org.jeecg.modules.demo.ttwaterwaycollect.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.ttwaterwaycollect.entity.TtWaterwayCollect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -12,6 +14,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @Date: 2023-04-13
* @Version: V1.0
*/
@DS("xianghe")
public interface TtWaterwayCollectMapper extends BaseMapper<TtWaterwayCollect> {
TtWaterwayCollect findTempInfo(@Param("thatTime") String thatTime, Integer limitTime);
}

@ -1,5 +1,17 @@
<?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="org.jeecg.modules.demo.ttwaterwaycollect.mapper.TtWaterwayCollectMapper">
<select id="findTempInfo" resultType="org.jeecg.modules.demo.ttwaterwaycollect.entity.TtWaterwayCollect">
SELECT
*,
ABS(
TIMESTAMPDIFF( SECOND, #{thatTime}, time )) AS period
FROM
collect
HAVING
period &lt; #{limitTime}
ORDER BY
period ASC
LIMIT 1;
</select>
</mapper>

@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface ITtWaterwayCollectService extends IService<TtWaterwayCollect> {
TtWaterwayCollect findTempInfo(String thatTime);
}

@ -1,8 +1,11 @@
package org.jeecg.modules.demo.ttwaterwaycollect.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.checkerframework.checker.units.qual.A;
import org.jeecg.modules.demo.ttwaterwaycollect.entity.TtWaterwayCollect;
import org.jeecg.modules.demo.ttwaterwaycollect.mapper.TtWaterwayCollectMapper;
import org.jeecg.modules.demo.ttwaterwaycollect.service.ITtWaterwayCollectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -16,4 +19,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class TtWaterwayCollectServiceImpl extends ServiceImpl<TtWaterwayCollectMapper, TtWaterwayCollect> implements ITtWaterwayCollectService {
@Autowired
TtWaterwayCollectMapper waterwayCollectMapper;
@Override
public TtWaterwayCollect findTempInfo(String thatTime) {
Integer limitTime = 300; // 可设置(5分钟阈值)
return waterwayCollectMapper.findTempInfo(thatTime,limitTime);
}
}

@ -65,11 +65,11 @@ public class TtWaterwayFidController extends JeecgController<TtWaterwayFid, ITtW
@GetMapping(value = "/list")
public Result<IPage<TtWaterwayFid>> queryPageList(TtWaterwayFid ttWaterwayFid,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
QueryWrapper<TtWaterwayFid> queryWrapper = QueryGenerator.initQueryWrapper(ttWaterwayFid, req.getParameterMap());
Page<TtWaterwayFid> page = new Page<TtWaterwayFid>(pageNo, pageSize);
IPage<TtWaterwayFid> pageList = ttWaterwayFidService.page(page, queryWrapper);
// IPage<TtWaterwayFid> pageList = ttWaterwayFidService.page(page, queryWrapper);
IPage<TtWaterwayFid> pageList = ttWaterwayFidService.queryList(page, queryWrapper);
return Result.OK(pageList);
}

@ -4,10 +4,8 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@ -25,7 +23,7 @@ import lombok.experimental.Accessors;
* @Version: V1.0
*/
@Data
@TableName("tt_waterway_fid")
@TableName("fid")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tt_waterway_fid对象", description="tt_waterway_fid")
@ -36,46 +34,44 @@ public class TtWaterwayFid implements Serializable {
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "id编号")
private java.lang.Integer id;
/**FID编号*/
@Excel(name = "FID编号", width = 15)
@ApiModelProperty(value = "FID编号")
private java.lang.String fid;
/**批次号*/
@Excel(name = "批次号", width = 15)
@ApiModelProperty(value = "批次号")
private java.lang.String batchNumber;
/**框数*/
@Excel(name = "框数", width = 15)
@ApiModelProperty(value = "框数")
private java.lang.Integer number;
/**型号表编号*/
@Excel(name = "型号表编号", width = 15)
@ApiModelProperty(value = "型号表编号")
private java.lang.Integer typeid;
/**绑定时间*/
@Excel(name = "绑定时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "绑定时间")
private java.util.Date bindTime;
/**描述*/
@Excel(name = "描述", width = 15)
@ApiModelProperty(value = "描述")
private java.lang.String description;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的创建时间")
private java.util.Date createTime;
/**记录的创建人默认admin*/
@ApiModelProperty(value = "记录的创建人默认admin")
private java.lang.String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private java.util.Date updateTime;
/**记录的修改人,修改人员的登录账号*/
@ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
private java.lang.String updateBy;
/**型号*/
@Excel(name = "型号", width = 15)
@ApiModelProperty(value = "型号")
@TableField(exist = false)
private java.lang.String typeNo;
}

@ -1,7 +1,13 @@
package org.jeecg.modules.demo.ttwaterwayfid.mapper;
import java.util.Date;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.ttwaterwayfid.entity.TtWaterwayFid;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -12,6 +18,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @Date: 2023-04-13
* @Version: V1.0
*/
@DS("xianghe")
public interface TtWaterwayFidMapper extends BaseMapper<TtWaterwayFid> {
TtWaterwayFid queryLimitEnterRow(@Param("enterTime") Date enterTime, @Param("fid") String fid);
IPage<TtWaterwayFid> queryList(@Param("page") IPage<TtWaterwayFid> page,
@Param(Constants.WRAPPER) Wrapper<TtWaterwayFid> wrapper);
}

@ -1,5 +1,33 @@
<?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="org.jeecg.modules.demo.ttwaterwayfid.mapper.TtWaterwayFidMapper">
<!-- 根据fid和入水时间查找最接近的记录 -->
<select id="queryLimitEnterRow" resultType="org.jeecg.modules.demo.ttwaterwayfid.entity.TtWaterwayFid">
SELECT
*
FROM
fid f
INNER JOIN (
SELECT id, ABS( TIMESTAMPDIFF( SECOND, #{enterTime,jdbcType=TIMESTAMP}, bind_time )) period
FROM fid
WHERE fid = #{fid}
ORDER BY period ASC
LIMIT 1 ) s
ON f.id = s.id
</select>
<!-- 分页关联型号查询 -->
<select id="queryList" resultType="org.jeecg.modules.demo.ttwaterwayfid.entity.TtWaterwayFid">
SELECT *
FROM (
SELECT
f.*,
t.NAME AS typeNo
FROM
fid f
LEFT JOIN type t ON f.typeid = t.id
) AS result
${ew.customSqlSegment}
</select>
</mapper>

@ -1,14 +1,26 @@
package org.jeecg.modules.demo.ttwaterwayfid.service;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.demo.ttwaterwayfid.entity.TtWaterwayFid;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
/**
* @Description: tt_waterway_fid
* @Author: jeecg-boot
* @Date: 2023-04-13
* @Version: V1.0
*/
@DS("xianghe")
public interface ITtWaterwayFidService extends IService<TtWaterwayFid> {
// 根据fid和入水时间查找最接近的记录
TtWaterwayFid getLimitRowByEnter(Date enterTime, String fid);
// 分页关联查询
IPage<TtWaterwayFid> queryList(IPage<TtWaterwayFid> page, QueryWrapper<TtWaterwayFid> queryWrapper);
}

@ -1,12 +1,17 @@
package org.jeecg.modules.demo.ttwaterwayfid.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.jeecg.modules.demo.ttwaterwayfid.entity.TtWaterwayFid;
import org.jeecg.modules.demo.ttwaterwayfid.mapper.TtWaterwayFidMapper;
import org.jeecg.modules.demo.ttwaterwayfid.service.ITtWaterwayFidService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Date;
/**
* @Description: tt_waterway_fid
* @Author: jeecg-boot
@ -16,4 +21,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class TtWaterwayFidServiceImpl extends ServiceImpl<TtWaterwayFidMapper, TtWaterwayFid> implements ITtWaterwayFidService {
@Autowired
TtWaterwayFidMapper ttWaterwayFidMapper;
@Override
public TtWaterwayFid getLimitRowByEnter(Date enterTime, String fid) {
return ttWaterwayFidMapper.queryLimitEnterRow(enterTime, fid);
}
public IPage<TtWaterwayFid> queryList(IPage<TtWaterwayFid> page, QueryWrapper<TtWaterwayFid> queryWrapper){
return ttWaterwayFidMapper.queryList(page, queryWrapper);
}
}

@ -25,7 +25,7 @@ import lombok.experimental.Accessors;
* @Version: V1.0
*/
@Data
@TableName("tt_waterway_message")
@TableName("message")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tt_waterway_message对象", description="tt_waterway_message")
@ -46,20 +46,5 @@ public class TtWaterwayMessage implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "报警时间")
private java.util.Date time;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的创建时间")
private java.util.Date createTime;
/**记录的创建人默认admin*/
@ApiModelProperty(value = "记录的创建人默认admin")
private java.lang.String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private java.util.Date updateTime;
/**记录的修改人,修改人员的登录账号*/
@ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
private java.lang.String updateBy;
}

@ -2,6 +2,7 @@ package org.jeecg.modules.demo.ttwaterwaymessage.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.ttwaterwaymessage.entity.TtWaterwayMessage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -12,6 +13,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @Date: 2023-04-13
* @Version: V1.0
*/
@DS("xianghe")
public interface TtWaterwayMessageMapper extends BaseMapper<TtWaterwayMessage> {
}

@ -1,17 +1,19 @@
package org.jeecg.modules.demo.ttwaterwayoutenter.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.ttwaterwayfid.entity.TtWaterwayFid;
import org.jeecg.modules.demo.ttwaterwayfid.service.ITtWaterwayFidService;
import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayOutenter;
import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayRecords;
import org.jeecg.modules.demo.ttwaterwayoutenter.service.ITtWaterwayOutenterService;
@ -52,9 +54,12 @@ public class TtWaterwayOutenterController extends JeecgController<TtWaterwayOute
@Autowired
private ITtWaterwayOutenterService ttWaterwayOutenterService;
@Autowired
private ITtWaterwayFidService waterwayFidService;
/**
*
*
*
* @param ttWaterwayOutenter
* @param pageNo
@ -64,37 +69,63 @@ public class TtWaterwayOutenterController extends JeecgController<TtWaterwayOute
*/
//@AutoLog(value = "tt_waterway_outenter-分页列表查询")
@ApiOperation(value="出水入水记录-分页列表查询", notes="出水入水记录-分页列表查询")
@GetMapping(value = "/records")
public Result<IPage<TtWaterwayRecords>> queryPageRecords(TtWaterwayOutenter ttWaterwayOutenter,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
// 查询主表出水记录
QueryWrapper<TtWaterwayOutenter> queryWrapper = QueryGenerator.initQueryWrapper(ttWaterwayOutenter, req.getParameterMap());
Page<TtWaterwayOutenter> page = new Page<TtWaterwayOutenter>(pageNo, pageSize);
IPage<TtWaterwayOutenter> pageList = ttWaterwayOutenterService.page(page, queryWrapper);
List<TtWaterwayOutenter> outenterList = pageList.getRecords();
// 查找关联关系记录
IPage<TtWaterwayRecords> recordsPageList = new Page<>();
if (!outenterList.isEmpty()) {
Map<Integer,Integer> idMap = new HashMap<>(); // id映射关系
for(TtWaterwayOutenter outenter : outenterList) {
if (outenter.getWaterEnter() != null) {
TtWaterwayFid fidRow = waterwayFidService.getLimitRowByEnter(outenter.getWaterEnter(), outenter.getFid());
if (fidRow != null) {
idMap.put(outenter.getId(),fidRow.getId());
}
}
}
log.info("entity = {} | params = {} | out-fid id map = {}", ttWaterwayOutenter,
JSON.toJSONString(req.getParameterMap()), idMap);
if (!idMap.isEmpty()) {
// List<Integer> oIdList = new ArrayList<>(idMap.keySet());
// List<Integer> fIdList = new ArrayList<>(idMap.values());
recordsPageList = ttWaterwayOutenterService.queryWaterRecordList(new Page<>(1, pageSize), idMap);
}
recordsPageList.setPages(pageList.getPages());
recordsPageList.setTotal(pageList.getTotal());
recordsPageList.setCurrent(pageList.getCurrent());
}
// 补缺失数据 todo
return Result.OK(recordsPageList);
}
/**
*
*
* @param ttWaterwayOutenter
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "tt_waterway_outenter-分页列表查询")
@ApiOperation(value="tt_waterway_outenter-分页列表查询", notes="tt_waterway_outenter-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<TtWaterwayRecords>> queryPageList(TtWaterwayOutenter ttWaterwayOutenter,
public Result<IPage<TtWaterwayOutenter>> queryPageList(TtWaterwayOutenter ttWaterwayOutenter,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
QueryWrapper<TtWaterwayOutenter> queryWrapper = QueryGenerator.initQueryWrapper(ttWaterwayOutenter, req.getParameterMap());
Page<TtWaterwayRecords> page = new Page<>(pageNo, pageSize);
IPage<TtWaterwayRecords> pageList = ttWaterwayOutenterService.queryWaterRecordList(page, queryWrapper);
Page<TtWaterwayOutenter> page = new Page<TtWaterwayOutenter>(pageNo, pageSize);
IPage<TtWaterwayOutenter> pageList = ttWaterwayOutenterService.page(page, queryWrapper);
return Result.OK(pageList);
}
// /**
// * 分页列表查询
// *
// * @param ttWaterwayOutenter
// * @param pageNo
// * @param pageSize
// * @param req
// * @return
// */
// //@AutoLog(value = "tt_waterway_outenter-分页列表查询")
// @ApiOperation(value="tt_waterway_outenter-分页列表查询", notes="tt_waterway_outenter-分页列表查询")
// @GetMapping(value = "/list")
// public Result<IPage<TtWaterwayOutenter>> queryPageList(TtWaterwayOutenter ttWaterwayOutenter,
// @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
// @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
// QueryWrapper<TtWaterwayOutenter> queryWrapper = QueryGenerator.initQueryWrapper(ttWaterwayOutenter, req.getParameterMap());
// Page<TtWaterwayOutenter> page = new Page<TtWaterwayOutenter>(pageNo, pageSize);
// IPage<TtWaterwayOutenter> pageList = ttWaterwayOutenterService.page(page, queryWrapper);
// return Result.OK(pageList);
// }
/**
*

@ -25,7 +25,8 @@ import lombok.experimental.Accessors;
* @Version: V1.0
*/
@Data
@TableName("tt_waterway_outenter")
//@TableName("tt_waterway_outenter")
@TableName("outenter")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tt_waterway_outenter对象", description="tt_waterway_outenter")
@ -36,42 +37,47 @@ public class TtWaterwayOutenter implements Serializable {
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "主键编号")
private java.lang.Integer id;
/**FID*/
@Excel(name = "FID", width = 15)
@ApiModelProperty(value = "FID")
private java.lang.String fid;
/**入水时间*/
@Excel(name = "入水时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "入水时间")
private java.util.Date waterEnter;
/**预热时间*/
@Excel(name = "预热时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "预热时间")
private java.util.Date waterYure;
/**出水时间*/
@Excel(name = "出水时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "出水时间")
private java.util.Date waterOut;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的创建时间")
private java.util.Date createTime;
/**记录的创建人默认admin*/
@ApiModelProperty(value = "记录的创建人默认admin")
private java.lang.String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private java.util.Date updateTime;
/**记录的修改人,修改人员的登录账号*/
@ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
private java.lang.String updateBy;
// /**记录的创建时间*/
// @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
// @DateTimeFormat(pattern="yyyy-MM-dd")
// @ApiModelProperty(value = "记录的创建时间")
// private java.util.Date createTime;
// /**记录的创建人默认admin*/
// @ApiModelProperty(value = "记录的创建人默认admin")
// private java.lang.String createBy;
// /**记录的修改时间*/
// @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
// @DateTimeFormat(pattern="yyyy-MM-dd")
// @ApiModelProperty(value = "记录的修改时间")
// private java.util.Date updateTime;
// /**记录的修改人,修改人员的登录账号*/
// @ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
// private java.lang.String updateBy;
}

@ -53,47 +53,45 @@ public class TtWaterwayRecords implements Serializable {
/**型号表编号*/
@Excel(name = "产品名称", width = 15)
@ApiModelProperty(value = "产品名称")
private java.lang.Integer proName;
private java.lang.String proName;
/**型号表编号*/
@Excel(name = "型号", width = 15)
@ApiModelProperty(value = "型号")
private java.lang.Integer typeNo;
private java.lang.String typeNo;
/**入水时间*/
@Excel(name = "入水时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "入水时间")
private Date enterTime;
private Date waterEnter;
/**预热时间*/
@Excel(name = "预热时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "预热时间")
private Date yureTime;
private Date waterYure;
/**出水时间*/
@Excel(name = "出水时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "出水时间")
private Date outTime;
private Date waterOut;
/** 预热时长 */
@Excel(name = "预热时长", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Excel(name = "预热时长(s)", width = 15)
@ApiModelProperty(value = "预热时长")
private Date yureDuring;
private Integer yureDuring;
/** 出水时长 */
@Excel(name = "预热时长", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "预热时长(s)", width = 15)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "预热时长")
private Date outDuring;
private Integer outDuring;
}

@ -1,7 +1,9 @@
package org.jeecg.modules.demo.ttwaterwayoutenter.mapper;
import java.util.List;
import java.util.Map;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
@ -19,9 +21,14 @@ import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayRecords;
* @Date: 2023-04-13
* @Version: V1.0
*/
@Mapper
//@Mapper
@DS("xianghe")
public interface TtWaterwayOutenterMapper extends BaseMapper<TtWaterwayOutenter> {
IPage<TtWaterwayRecords> queryWaterRecordList(@Param("page") Page<TtWaterwayRecords> page,
@Param(Constants.WRAPPER) Wrapper<TtWaterwayOutenter> wrapper);
// 通过fid表与outenter表主键查询
IPage<TtWaterwayRecords> queryWaterRecordList(@Param("page") Page<TtWaterwayRecords> page,
@Param("idMap") Map<Integer,Integer> idMap);
}

@ -1,7 +1,53 @@
<?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="org.jeecg.modules.demo.ttwaterwayoutenter.mapper.TtWaterwayOutenterMapper">
<!-- <select id="queryWaterRecordList" resultType="org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayRecords">-->
<!-- -->
<!-- </select>-->
<!-- 水道追溯记录 ${ew.customSqlSegment} queryWrapper -->
<select id="queryWaterRecordList" resultType="org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayRecords">
-- SELECT
-- *
-- FROM
-- (
SELECT
a.id,
b.id,
a.fid AS fid,
a.water_enter water_enter,
a.water_yure water_yure,
a.water_out water_out,
b.batch_number batchNumber,
b.number,
b.bind_time bindTime,
p.pname proName,
p.name typeNo
FROM
-- tt_waterway_outenter a
outenter a
JOIN fid b ON a.fid = b.fid
LEFT JOIN (
SELECT
c.id,
c.name,
d.name pname
FROM
type c
JOIN type d ON c.parentid = d.id
WHERE
c.parentid > 0
) AS p ON p.id = b.typeid
<!-- WHERE b.id IN-->
<!-- <foreach collection="fkeys" item="id" open="(" separator="," close=")">-->
<!-- #{id}-->
<!-- </foreach>-->
<!-- AND a.id IN-->
<!-- <foreach collection="okeys" item="id" open="(" separator="," close=")">-->
<!-- #{id}-->
<!-- </foreach>-->
WHERE (a.id, b.id) IN
<foreach collection="idMap.entrySet()" index="key" item="value" open="(" separator="," close=")">
(#{key},#{value})
</foreach>
ORDER BY
a.water_enter DESC
-- ) AS result
</select>
</mapper>

@ -8,6 +8,9 @@ import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayOutenter;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayRecords;
import java.util.List;
import java.util.Map;
/**
* @Description: tt_waterway_outenter
* @Author: jeecg-boot
@ -17,5 +20,8 @@ import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayRecords;
public interface ITtWaterwayOutenterService extends IService<TtWaterwayOutenter> {
// 关联查询入水出水记录
IPage<TtWaterwayRecords> queryWaterRecordList(Page<TtWaterwayRecords> page, QueryWrapper<TtWaterwayOutenter> wrapper);
IPage<TtWaterwayRecords> queryWaterRecordListByWrapper(Page<TtWaterwayRecords> page, QueryWrapper<TtWaterwayOutenter> wrapper);
// 主键关联查询入水出水记录
IPage<TtWaterwayRecords> queryWaterRecordList(Page<TtWaterwayRecords> page, Map<Integer,Integer> idMap);
}

@ -1,10 +1,9 @@
package org.jeecg.modules.demo.ttwaterwayoutenter.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.constant.CommonConstant;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayOutenter;
import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayRecords;
import org.jeecg.modules.demo.ttwaterwayoutenter.mapper.TtWaterwayOutenterMapper;
@ -14,6 +13,15 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @Description: tt_waterway_outenter
* @Author: jeecg-boot
@ -27,10 +35,74 @@ public class TtWaterwayOutenterServiceImpl extends ServiceImpl<TtWaterwayOutente
TtWaterwayOutenterMapper ttWaterwayOutenterMapper;
@Override
public IPage<TtWaterwayRecords> queryWaterRecordList(Page<TtWaterwayRecords> page, QueryWrapper<TtWaterwayOutenter> wrapper) {
public IPage<TtWaterwayRecords> queryWaterRecordListByWrapper(Page<TtWaterwayRecords> page, QueryWrapper<TtWaterwayOutenter> wrapper) {
if (wrapper == null) {
wrapper = new QueryWrapper<>();
}
return ttWaterwayOutenterMapper.queryWaterRecordList(page, wrapper);
IPage<TtWaterwayRecords> pageRecords = ttWaterwayOutenterMapper.queryWaterRecordList(page, wrapper);
List<TtWaterwayRecords> records = pageRecords.getRecords();
if (!records.isEmpty()) {
for (TtWaterwayRecords waterwayRecords : records) {
composeDuringData(waterwayRecords);
}
}
return pageRecords;
}
public IPage<TtWaterwayRecords> queryWaterRecordList(Page<TtWaterwayRecords> page, Map<Integer,Integer> idMap) {
IPage<TtWaterwayRecords> pageRecords = ttWaterwayOutenterMapper.queryWaterRecordList(page, idMap);
List<TtWaterwayRecords> records = pageRecords.getRecords();
if (!records.isEmpty()) {
for (TtWaterwayRecords waterwayRecords : records) {
composeDuringData(waterwayRecords);
}
}
return pageRecords;
}
public static void main(String[] args) {
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
System.out.println(format);
}
// 计算预热与吸水时间
private void composeDuringData(TtWaterwayRecords waterwayRecords) {
// String defVal = "0001-01-01 00:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date yureTime = waterwayRecords.getWaterYure();
Date enterTime = waterwayRecords.getWaterEnter();
Date outTime = waterwayRecords.getWaterOut();
if (yureTime == null) {
waterwayRecords.setYureDuring(-1);
waterwayRecords.setOutDuring(-1);
return;
}
String waterYure = sdf.format(yureTime);
if (enterTime == null) {
waterwayRecords.setYureDuring(-1);
} else {
String waterEnter = sdf.format(enterTime);
long during1 = getDateSubSeconds(waterYure, waterEnter);
waterwayRecords.setYureDuring((int) during1);
}
if (outTime == null) {
waterwayRecords.setOutDuring(-1);
} else {
String waterOut = sdf.format(outTime);
long during2 = getDateSubSeconds(waterOut, waterYure);
waterwayRecords.setOutDuring((int) during2);
}
}
public static long getDateSubSeconds(String from, String to) {
//计算秒数
LocalDateTime fromTime = LocalDateTime.parse(from, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime toTime = LocalDateTime.parse(to, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
return Duration.between(toTime, fromTime).toMillis() / 1000;
}
}

@ -20,7 +20,7 @@ import io.swagger.annotations.ApiModelProperty;
* @Version: V1.0
*/
@Data
@TableName("tt_waterway_type")
@TableName("type")
@ApiModel(value="tt_waterway_type对象", description="型号管理")
public class TtWaterwayType implements Serializable {
private static final long serialVersionUID = 1L;
@ -50,22 +50,7 @@ public class TtWaterwayType implements Serializable {
@Excel(name = "优先级,越大,同级显示的时候越靠前", width = 15)
@ApiModelProperty(value = "优先级,越大,同级显示的时候越靠前")
private java.lang.Integer priority;
/**记录的创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的创建时间")
private java.util.Date createTime;
/**记录的创建人默认admin*/
@ApiModelProperty(value = "记录的创建人默认admin")
private java.lang.String createBy;
/**记录的修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "记录的修改时间")
private java.util.Date updateTime;
/**记录的修改人,修改人员的登录账号*/
@ApiModelProperty(value = "记录的修改人,修改人员的登录账号")
private java.lang.String updateBy;
/**是否有子节点*/
@Excel(name = "是否有子节点", width = 15)
@ApiModelProperty(value = "是否有子节点")

@ -1,5 +1,6 @@
package org.jeecg.modules.demo.ttwaterwaytype.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.common.system.vo.SelectTreeModel;
@ -14,6 +15,7 @@ import java.util.Map;
* @Date: 2023-04-13
* @Version: V1.0
*/
@DS("xianghe")
public interface TtWaterwayTypeMapper extends BaseMapper<TtWaterwayType> {
/**

@ -3,7 +3,7 @@
<mapper namespace="org.jeecg.modules.demo.ttwaterwaytype.mapper.TtWaterwayTypeMapper">
<update id="updateTreeNodeStatus" parameterType="java.lang.String">
update tt_waterway_type set has_child = #{status} where id = #{id}
update type set has_child = #{status} where id = #{id}
</update>
<!-- 【vue3专用】 -->
@ -13,7 +13,7 @@
name as "title",
(case when has_child = '1' then 0 else 1 end) as isLeaf,
parentid as parentId
from tt_waterway_type
from type
where parentid = #{pid}
<if test="query != null">
<foreach collection="query.entrySet()" item="value" index="key">

@ -17,6 +17,7 @@ import org.jeecg.modules.demo.ttpouringequip.entity.TtPouringEquip;
import org.jeecg.modules.demo.ttpouringequip.service.ITtPouringEquipService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
@ -32,6 +33,7 @@ import java.util.stream.Collectors;
@Configuration //1.主要用于标记配置类兼备Component的效果。
@EnableScheduling // 2.开启定时任务
@Slf4j
@Profile({"prod"})
public class TtDataCollectTask implements SchedulingConfigurer {
private static Map<DEVICE_TYPE, RS485Handler> jzjHandlerMap = new HashMap<>();

Loading…
Cancel
Save