diff --git a/src/main/java/com/zhgd/xmgl/base/entity/vo/SectorVo.java b/src/main/java/com/zhgd/xmgl/base/entity/vo/SectorVo.java index 576b0b3f4..0bede6558 100644 --- a/src/main/java/com/zhgd/xmgl/base/entity/vo/SectorVo.java +++ b/src/main/java/com/zhgd/xmgl/base/entity/vo/SectorVo.java @@ -22,7 +22,7 @@ import java.util.stream.Collectors; @AllArgsConstructor @NoArgsConstructor public class SectorVo { - @ApiModelProperty("数量") + @ApiModelProperty("总数") private String count; private List data; diff --git a/src/main/java/com/zhgd/xmgl/modules/hangbasket/entity/HangBasketDetectData.java b/src/main/java/com/zhgd/xmgl/modules/hangbasket/entity/HangBasketDetectData.java index c6a46e670..d0098d9b4 100644 --- a/src/main/java/com/zhgd/xmgl/modules/hangbasket/entity/HangBasketDetectData.java +++ b/src/main/java/com/zhgd/xmgl/modules/hangbasket/entity/HangBasketDetectData.java @@ -155,4 +155,7 @@ public class HangBasketDetectData implements Serializable { @Excel(name = "项目sn", width = 15) @ApiModelProperty(value = "项目sn") private java.lang.String projectSn; + + @ApiModelProperty(value = "倾角") + private Double inclination; } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionDataController.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionDataController.java index aa0e7b29c..041c9c096 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionDataController.java @@ -1,8 +1,11 @@ package com.zhgd.xmgl.modules.smarttension.controller; import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo; +import com.zhgd.xmgl.base.entity.vo.SectorVo; +import com.zhgd.xmgl.base.entity.vo.TrendVo; import com.zhgd.xmgl.modules.smartgrout.entity.vo.CountSmartGroutDataVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionData; +import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataRealTimeVo; import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataVo; import com.zhgd.xmgl.modules.smarttension.service.ISmartTensionDataService; import io.swagger.annotations.Api; @@ -12,6 +15,7 @@ import io.swagger.annotations.ApiImplicitParams; import java.util.HashMap; +import org.glassfish.jersey.message.internal.Qualified; import springfox.documentation.annotations.ApiIgnore; import java.util.List; @@ -162,15 +166,43 @@ public class SmartTensionDataController { return Result.success(smartTensionDataService.countStatus(paramMap)); } - @ApiOperation(value = "统计张拉情况", notes = "统计张拉情况", httpMethod = "POST") + @ApiOperation(value = "统计张拉情况(钢束)", notes = "统计张拉情况(钢束)", httpMethod = "POST") @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), - }) + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + }) @PostMapping(value = "/countSmartTensionData") public Result countSmartTensionData(@ApiIgnore @RequestBody HashMap paramMap) { return Result.success(smartTensionDataService.countSmartTensionData(paramMap)); } + @ApiOperation(value = "梁张拉合格率统计趋势", notes = "梁张拉合格率统计趋势", httpMethod = "POST") + @ApiImplicitParams({ + @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 = "/countQualifiedTrend") + public Result> countQualifiedTrend(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(smartTensionDataService.countQualifiedTrend(paramMap)); + } + + @ApiOperation(value = "统计智能张拉-数据(实时监测)", notes = "统计智能张拉-数据(实时监测)", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/countSmartTensionDataRealTime") + public Result countSmartTensionDataRealTime(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(smartTensionDataService.countSmartTensionDataRealTime(paramMap)); + } + + @ApiOperation(value = "统计各梁型张拉情况", notes = "统计各梁型张拉情况", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/countBeamType") + public Result countBeamType(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(smartTensionDataService.countBeamType(paramMap)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionSteelBeamDataController.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionSteelBeamDataController.java index 76107726e..92e934412 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionSteelBeamDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionSteelBeamDataController.java @@ -7,6 +7,7 @@ import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.util.oConvertUtils; import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo; +import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionSteelBeamData; import com.zhgd.xmgl.modules.smarttension.service.ISmartTensionSteelBeamDataService; import io.swagger.annotations.Api; @@ -160,4 +161,13 @@ public class SmartTensionSteelBeamDataController { return Result.success(smartTensionSteelBeamDataService.countStatus(paramMap)); } + @ApiOperation(value = "统计钢束张拉合格率", notes = "统计钢束张拉合格率", httpMethod = "POST") + @ApiImplicitParams({ + @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 = "/countStatusTrend") + public Result> countStatusTrend(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(smartTensionSteelBeamDataService.countStatusTrend(paramMap)); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/entity/vo/CountSmartTensionDataRealTimeVo.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/entity/vo/CountSmartTensionDataRealTimeVo.java new file mode 100644 index 000000000..b4a11f8b2 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/entity/vo/CountSmartTensionDataRealTimeVo.java @@ -0,0 +1,16 @@ +package com.zhgd.xmgl.modules.smarttension.entity.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class CountSmartTensionDataRealTimeVo { + @ApiModelProperty("日张拉次数") + private Integer tensionsPerDayNum; + @ApiModelProperty("累计张拉次数") + private Integer cumulativeTensionNum; + @ApiModelProperty("当日张拉合格率") + private Double tensionPassRate; + @ApiModelProperty("超标闭合率") + private Double excessiveClosureRate; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/SmartTensionDataMapper.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/SmartTensionDataMapper.java index e1dacd363..f610af1b9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/SmartTensionDataMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/SmartTensionDataMapper.java @@ -4,12 +4,16 @@ 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.base.entity.vo.SectorOneVo; +import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionData; +import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataRealTimeVo; import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataVo; import org.apache.ibatis.annotations.Mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -29,4 +33,10 @@ public interface SmartTensionDataMapper extends BaseMapper { CountSmartTensionDataVo countSmartTensionData(HashMap paramMap); List> countStatus(HashMap paramMap); + + List countQualifiedTrend(HashMap paramMap); + + CountSmartTensionDataRealTimeVo countSmartTensionDataRealTime(HashMap paramMap); + + ArrayList countBeamType(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/SmartTensionSteelBeamDataMapper.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/SmartTensionSteelBeamDataMapper.java index 74936f0c4..e6c14c6fa 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/SmartTensionSteelBeamDataMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/SmartTensionSteelBeamDataMapper.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.modules.smarttension.mapper; +import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionSteelBeamData; import org.apache.ibatis.annotations.Mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -17,4 +18,6 @@ import java.util.List; public interface SmartTensionSteelBeamDataMapper extends BaseMapper { List> countStatus(HashMap paramMap); + + List countStatusTrend(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/xml/SmartTensionDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/xml/SmartTensionDataMapper.xml index 34295d49a..af88859d9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/xml/SmartTensionDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/xml/SmartTensionDataMapper.xml @@ -2,7 +2,8 @@ @@ -11,18 +12,101 @@ resultType="com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataVo"> select count(distinct smart_tension_data.id) count, count(sgsbd.id) beamCount, - ifnull(sum(if(sgsbd.status=1,1,0)),0) qualifiedBeamCount, - ifnull(sum(if(sgsbd.status=2,1,0)),0) notQualifiedBeamCount + ifnull(sum(if(sgsbd.status = 1, 1, 0)), 0) qualifiedBeamCount, + ifnull(sum(if(sgsbd.status = 2, 1, 0)), 0) notQualifiedBeamCount from smart_tension_data left join smart_tension_steel_beam_data sgsbd on smart_tension_data.id = sgsbd.smart_tension_data_id where smart_tension_data.project_sn = #{projectSn} + + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/xml/SmartTensionSteelBeamDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/xml/SmartTensionSteelBeamDataMapper.xml index 82e25e6c9..927878368 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/xml/SmartTensionSteelBeamDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/mapper/xml/SmartTensionSteelBeamDataMapper.xml @@ -1,12 +1,39 @@ + - + select + + date_format(tension_time, '%Y-%m-%d %H:00') x, + + + date_format(tension_time, '%Y-%m-%d') x, + + + date_format(tension_time, '%Y-%m-%d') x, + + ifnull(round(sum(if(status = 1, 1, 0))/count(*)*100,2), 0) y + from smart_tension_steel_beam_data + where project_sn = #{projectSn} + + and tension_time > current_date + + + and tension_time > date_sub(tension_time, interval 6 day) + + + and tension_time > date_sub(tension_time, interval 29 day) + + group by x diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionDataService.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionDataService.java index 3863e57e0..33b657f13 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionDataService.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionDataService.java @@ -1,9 +1,12 @@ package com.zhgd.xmgl.modules.smarttension.service; import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo; +import com.zhgd.xmgl.base.entity.vo.SectorVo; +import com.zhgd.xmgl.base.entity.vo.TrendVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionData; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataRealTimeVo; import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataVo; import java.util.HashMap; @@ -26,4 +29,10 @@ public interface ISmartTensionDataService extends IService { CountSmartTensionDataVo countSmartTensionData(HashMap paramMap); FlexibleBigScreenVo countStatus(HashMap paramMap); + + List countQualifiedTrend(HashMap paramMap); + + CountSmartTensionDataRealTimeVo countSmartTensionDataRealTime(HashMap paramMap); + + SectorVo countBeamType(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionSteelBeamDataService.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionSteelBeamDataService.java index 3f091a235..98d7bd3a8 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionSteelBeamDataService.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionSteelBeamDataService.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.smarttension.service; import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo; +import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionSteelBeamData; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -21,4 +22,6 @@ public interface ISmartTensionSteelBeamDataService extends IService queryList(HashMap paramMap); FlexibleBigScreenVo countStatus(HashMap paramMap); + + List countStatusTrend(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionDataServiceImpl.java index 0761311fa..e1b53af61 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionDataServiceImpl.java @@ -9,10 +9,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gexin.fastjson.JSON; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo; +import com.zhgd.xmgl.base.entity.vo.*; +import com.zhgd.xmgl.modules.concretemixstation.entity.ConcreteMixStationDev; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionData; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionDev; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionSteelBeamData; +import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataRealTimeVo; import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataVo; import com.zhgd.xmgl.modules.smarttension.mapper.SmartTensionDataMapper; import com.zhgd.xmgl.modules.smarttension.mapper.SmartTensionDevMapper; @@ -30,6 +32,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * @Description: 智能张拉-数据 @@ -115,6 +118,42 @@ public class SmartTensionDataServiceImpl extends ServiceImpl countQualifiedTrend(HashMap paramMap) { + String projectSn = MapUtils.getString(paramMap, "projectSn"); + Integer type = MapUtils.getInteger(paramMap, "type"); + List trendVos = new ArrayList<>(); + trendVos.add(new TrendVo("张拉次数", "1")); + trendVos.add(new TrendVo("合格率", "2")); + List list = baseMapper.countQualifiedTrend(paramMap); + if (Objects.equals(type, 1)) { + List dateTimeStrList = DateUtils.getDateTimeStrList(100, "HH:00"); + String format = "HH:00"; + return TrendVo.getTrendVos(trendVos, list, dateTimeStrList, format); + } else if (Objects.equals(type, 2)) { + List dateTimeStrList = DateUtils.getDateTimeStrList(60, "yyyy-MM-dd"); + String format = "yyyy-MM-dd"; + return TrendVo.getTrendVos(trendVos, list, dateTimeStrList, format); + } else if (Objects.equals(type, 3)) { + List dateTimeStrList = DateUtils.getDateTimeStrList(80, "yyyy-MM-dd"); + String format = "yyyy-MM-dd"; + return TrendVo.getTrendVos(trendVos, list, dateTimeStrList, format); + } else { + return null; + } + } + + @Override + public CountSmartTensionDataRealTimeVo countSmartTensionDataRealTime(HashMap paramMap) { + return baseMapper.countSmartTensionDataRealTime(paramMap); + } + + @Override + public SectorVo countBeamType(HashMap paramMap) { + ArrayList list = baseMapper.countBeamType(paramMap); + return SectorVo.getSectorVo(list); + } + private QueryWrapper getQueryWrapper(HashMap paramMap) { String alias = "std."; QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SmartTensionData.class, paramMap, alias); diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionSteelBeamDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionSteelBeamDataServiceImpl.java index 5b389912e..797e336ea 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionSteelBeamDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionSteelBeamDataServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo; +import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionSteelBeamData; import com.zhgd.xmgl.modules.smarttension.mapper.SmartTensionSteelBeamDataMapper; import com.zhgd.xmgl.modules.smarttension.service.ISmartTensionSteelBeamDataService; @@ -67,6 +68,27 @@ public class SmartTensionSteelBeamDataServiceImpl extends ServiceImpl countStatusTrend(HashMap paramMap) { + Integer type = MapUtils.getInteger(paramMap, "type"); + String format = null; + List dateTimeStrList = null; + if (Objects.equals(type, 1)) { + format = "yyyy-MM-dd HH:00"; + dateTimeStrList = DateUtils.getDateTimeStrList(100, "yyyy-MM-dd HH:00"); + } else if (Objects.equals(type, 2)) { + format = "yyyy-MM-dd"; + dateTimeStrList = DateUtils.getDateTimeStrList(60, "yyyy-MM-dd"); + } else if (Objects.equals(type, 3)) { + format = "yyyy-MM-dd"; + dateTimeStrList = DateUtils.getDateTimeStrList(80, "yyyy-MM-dd"); + } else { + return null; + } + List list = baseMapper.countStatusTrend(paramMap); + return TrendOneVo.fillTrendVos(list, dateTimeStrList, format); + } + private QueryWrapper getQueryWrapper(HashMap paramMap) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SmartTensionSteelBeamData.class, paramMap); queryWrapper.orderByDesc(RefUtil.fieldNameUlc(SmartTensionSteelBeamData::getId));