摊铺大屏

This commit is contained in:
guo 2024-01-25 15:06:17 +08:00
parent c6ee755132
commit 7bb4abe584
9 changed files with 137 additions and 4 deletions

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.pave.controller; package com.zhgd.xmgl.modules.pave.controller;
import com.zhgd.xmgl.modules.pave.entity.PaveDev; import com.zhgd.xmgl.modules.pave.entity.PaveDev;
import com.zhgd.xmgl.modules.pave.entity.vo.CountPaveDevVo;
import com.zhgd.xmgl.modules.pave.service.IPaveDevService; import com.zhgd.xmgl.modules.pave.service.IPaveDevService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -136,4 +137,13 @@ public class PaveDevController {
return result; return result;
} }
@ApiOperation(value = "统计路面摊铺", notes = "统计路面摊铺", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/countPaveDev")
public Result<CountPaveDevVo> countPaveDev(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(paveDevService.countPaveDev(paramMap));
}
} }

View File

@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.Date; import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@ -98,4 +99,15 @@ public class PaveDev implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss")
private java.util.Date updateDate; private java.util.Date updateDate;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "上次数据上传时间 yyyy-MM-dd HH:mm:ss")
private java.util.Date lastDataTime;
@TableField(exist = false)
@ApiModelProperty(value = "设备在线状态0.离线 1.在线)")
private java.lang.Integer devOnline;
@TableField(exist = false)
@ApiModelProperty(value = "最新的路面摊铺-记录")
private PaveRecord newestRecord;
} }

View File

@ -0,0 +1,12 @@
package com.zhgd.xmgl.modules.pave.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CountPaveDevVo {
@ApiModelProperty(value = "路面摊铺设备数量")
private java.lang.Integer devNum;
@ApiModelProperty(value = "路面摊铺在线设备数量")
private java.lang.Integer onlineDevNum;
}

View File

@ -1,8 +1,17 @@
package com.zhgd.xmgl.modules.pave.mapper; package com.zhgd.xmgl.modules.pave.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.pave.entity.PaveDev; import com.zhgd.xmgl.modules.pave.entity.PaveDev;
import com.zhgd.xmgl.modules.pave.entity.vo.CountPaveDevVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
/** /**
* @Description: 路面摊铺-设备 * @Description: 路面摊铺-设备
@ -13,4 +22,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper @Mapper
public interface PaveDevMapper extends BaseMapper<PaveDev> { public interface PaveDevMapper extends BaseMapper<PaveDev> {
IPage<PaveDev> queryList(Page<PaveDev> page, @Param(Constants.WRAPPER) QueryWrapper<PaveDev> queryWrapper);
List<PaveDev> queryList(@Param(Constants.WRAPPER) QueryWrapper<PaveDev> queryWrapper);
CountPaveDevVo countPaveDev(HashMap<String, Object> paramMap);
} }

View File

@ -1,4 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.pave.mapper.PaveDevMapper"> <mapper namespace="com.zhgd.xmgl.modules.pave.mapper.PaveDevMapper">
<resultMap id="paveDevRm" type="com.zhgd.xmgl.modules.pave.entity.PaveDev" autoMapping="true">
<id column="id" property="id"/>
<association property="newestRecord" javaType="com.zhgd.xmgl.modules.pave.entity.PaveRecord" columnPrefix="pr_"
autoMapping="true">
<id column="id" property="id"/>
</association>
</resultMap>
<select id="queryList" resultMap="paveDevRm">
select pd.*,IFNULL(((case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(pd.last_data_time)) / 60) &lt;= 30 then 1
else 0 end)), 0) devOnline,
pr.id as pr_id,
pr.dev_name as pr_dev_name,
pr.dev_sn as pr_dev_sn,
pr.pave_speed as pr_pave_speed,
pr.average_pave_temp as pr_average_pave_temp,
pr.average_pave_thickness as pr_average_pave_thickness,
pr.amplitude as pr_amplitude,
pr.frequency as pr_frequency,
pr.geographical_longitude as pr_geographical_longitude,
pr.geographical_latitude as pr_geographical_latitude,
pr.pave_time as pr_pave_time,
pr.sensor1_pave_temp as pr_sensor1_pave_temp,
pr.sensor2_pave_temp as pr_sensor2_pave_temp,
pr.sensor3_pave_temp as pr_sensor3_pave_temp,
pr.sensor4_pave_temp as pr_sensor4_pave_temp,
pr.sensor5_pave_temp as pr_sensor5_pave_temp,
pr.sensor6_pave_temp as pr_sensor6_pave_temp,
pr.sensor7_pave_temp as pr_sensor7_pave_temp,
pr.sensor8_pave_temp as pr_sensor8_pave_temp,
pr.sensor9_pave_temp as pr_sensor9_pave_temp,
pr.sensor10_pave_temp as pr_sensor10_pave_temp,
pr.sensor1_pave_thickness as pr_sensor1_pave_thickness,
pr.sensor2_pave_thickness as pr_sensor2_pave_thickness,
pr.sensor3_pave_thickness as pr_sensor3_pave_thickness,
pr.sensor4_pave_thickness as pr_sensor4_pave_thickness,
pr.project_sn as pr_project_sn,
pr.create_date as pr_create_date,
pr.update_date as pr_update_date
from pave_dev pd
left join (
select t1.*
from pave_record t1
join (
select dev_sn, max(id) id
from pave_record
group by dev_sn
) t2 on t2.id = t1.id
) pr on pr.dev_sn = pd.dev_sn and pd.project_sn=pd.project_sn
${ew.customSqlSegment}
</select>
<select id="countPaveDev" resultType="com.zhgd.xmgl.modules.pave.entity.vo.CountPaveDevVo">
select
count(*) devNum,
IFNULL((sum(case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(last_data_time)) / 60) &lt;= 30 then 1
else 0 end)), 0) onlineDevNum
from pave_dev
where 1=1
<if test="projectSn != null and projectSn != ''">
and project_sn = #{projectSn}
</if>
<if test="devSn != null and devSn != ''">
and dev_sn = #{devSn}
</if>
</select>
</mapper> </mapper>

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.pave.service;
import com.zhgd.xmgl.modules.pave.entity.PaveDev; import com.zhgd.xmgl.modules.pave.entity.PaveDev;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.xmgl.modules.pave.entity.vo.CountPaveDevVo;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -22,4 +23,6 @@ public interface IPaveDevService extends IService<PaveDev> {
void add(PaveDev paveDev); void add(PaveDev paveDev);
void edit(PaveDev paveDev); void edit(PaveDev paveDev);
CountPaveDevVo countPaveDev(HashMap<String, Object> paramMap);
} }

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.pave.service.impl; package com.zhgd.xmgl.modules.pave.service.impl;
import com.zhgd.xmgl.modules.pave.entity.PaveDev; import com.zhgd.xmgl.modules.pave.entity.PaveDev;
import com.zhgd.xmgl.modules.pave.entity.vo.CountPaveDevVo;
import com.zhgd.xmgl.modules.pave.mapper.PaveDevMapper; import com.zhgd.xmgl.modules.pave.mapper.PaveDevMapper;
import com.zhgd.xmgl.modules.pave.service.IPaveDevService; import com.zhgd.xmgl.modules.pave.service.IPaveDevService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -34,7 +35,7 @@ public class PaveDevServiceImpl extends ServiceImpl<PaveDevMapper, PaveDev> impl
public IPage<PaveDev> queryPageList(HashMap<String, Object> paramMap) { public IPage<PaveDev> queryPageList(HashMap<String, Object> paramMap) {
QueryWrapper<PaveDev> queryWrapper = getQueryWrapper(paramMap); QueryWrapper<PaveDev> queryWrapper = getQueryWrapper(paramMap);
Page<PaveDev> page = PageUtil.getPage(paramMap); Page<PaveDev> page = PageUtil.getPage(paramMap);
IPage<PaveDev> pageList = this.page(page, queryWrapper); IPage<PaveDev> pageList = baseMapper.queryList(page, queryWrapper);
pageList.setRecords(dealList(pageList.getRecords())); pageList.setRecords(dealList(pageList.getRecords()));
return pageList; return pageList;
} }
@ -42,11 +43,11 @@ public class PaveDevServiceImpl extends ServiceImpl<PaveDevMapper, PaveDev> impl
@Override @Override
public List<PaveDev> queryList(HashMap<String, Object> paramMap) { public List<PaveDev> queryList(HashMap<String, Object> paramMap) {
QueryWrapper<PaveDev> queryWrapper = getQueryWrapper(paramMap); QueryWrapper<PaveDev> queryWrapper = getQueryWrapper(paramMap);
return dealList(this.list(queryWrapper)); return dealList(baseMapper.queryList(queryWrapper));
} }
private QueryWrapper<PaveDev> getQueryWrapper(HashMap<String, Object> paramMap) { private QueryWrapper<PaveDev> getQueryWrapper(HashMap<String, Object> paramMap) {
String alias = ""; String alias = "pd.";
QueryWrapper<PaveDev> queryWrapper = QueryGenerator.initPageQueryWrapper(PaveDev.class, paramMap, alias); QueryWrapper<PaveDev> queryWrapper = QueryGenerator.initPageQueryWrapper(PaveDev.class, paramMap, alias);
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(PaveDev::getId)); queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(PaveDev::getId));
return queryWrapper; return queryWrapper;
@ -66,4 +67,9 @@ public class PaveDevServiceImpl extends ServiceImpl<PaveDevMapper, PaveDev> impl
public void edit(PaveDev paveDev) { public void edit(PaveDev paveDev) {
baseMapper.updateById(paveDev); baseMapper.updateById(paveDev);
} }
@Override
public CountPaveDevVo countPaveDev(HashMap<String, Object> paramMap) {
return baseMapper.countPaveDev(paramMap);
}
} }

View File

@ -226,6 +226,7 @@ public class WeighInfoController {
@ApiOperation(value = "统计货名(物料统计)", notes = "统计货名(物料统计)", httpMethod = "POST") @ApiOperation(value = "统计货名(物料统计)", notes = "统计货名(物料统计)", httpMethod = "POST")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "type", value = "1今日2、7日3、30日", paramType = "body", required = true, dataType = "Integer"),
}) })
@PostMapping(value = "/countWeighInfoGoodsName") @PostMapping(value = "/countWeighInfoGoodsName")
public Result<SectorVo> countWeighInfoGoodsName(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) { public Result<SectorVo> countWeighInfoGoodsName(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {

View File

@ -37,7 +37,7 @@
wp.empty_pic2, wp.empty_pic2,
wp.empty_pic3, wp.empty_pic3,
wp.empty_pic4, wp.empty_pic4,
wp.add_date_time, wp.gross_time,
wp.mod_date_time, wp.mod_date_time,
wp.remarks wp.remarks
FROM weigh_info wi FROM weigh_info wi
@ -116,6 +116,15 @@
select goods_name name,count(*) count select goods_name name,count(*) count
from weigh_info from weigh_info
where project_sn=#{projectSn} where project_sn=#{projectSn}
<if test="type == '1'.toString()">
and gross_time > current_date
</if>
<if test="type == '2'.toString()">
and gross_time > date_sub(gross_time,interval 6 day)
</if>
<if test="type == '3'.toString()">
and gross_time > date_sub(gross_time,interval 29 day)
</if>
group by goods_name group by goods_name
order by count order by count
</select> </select>