diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterAlarmController.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterAlarmController.java index 06ef26457..23d6c093a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterAlarmController.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterAlarmController.java @@ -216,8 +216,8 @@ public class LifterAlarmController { @ApiImplicitParams({ @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), @ApiImplicitParam(name = "devSn", value = "设备sn", paramType = "query", required = false, dataType = "String"), - @ApiImplicitParam(name = "queryStartTime", value = "查询开始时间,格式:2023-05-22 18:00:00", paramType = "query", required = true, dataType = "String"), - @ApiImplicitParam(name = "queryEndTime", value = "查询结束时间,格式:2023-05-22 18:00:00", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "queryStartTime", value = "查询开始时间,格式:2023-05-22", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "queryEndTime", value = "查询结束时间,格式:2023-05-22", paramType = "query", required = true, dataType = "String"), }) @PostMapping(value = "/queryAlarmsDistinguishedNumberByAlarmType") public Result queryAlarmsDistinguishedNumberByAlarmType(@RequestBody Map map) { diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterController.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterController.java index 7905ec61b..1386a412f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterController.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/LifterController.java @@ -2,13 +2,9 @@ package com.zhgd.xmgl.modules.bigdevice.controller; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; -import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.Lifter; import com.zhgd.xmgl.modules.bigdevice.entity.dto.LifterDto; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.LifterAlarmAndDevCountVo; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.LifterAndDataInfoVO; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.LifterDevAlarmCountListVo; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TodayOperatingStatusStatisticsVo; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.*; import com.zhgd.xmgl.modules.bigdevice.service.ILifterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -118,7 +114,7 @@ public class LifterController { @ApiOperation(value = "通过升降机设备唯一标识查询信息", notes = "通过升降机设备唯一标识查询信息", httpMethod = "POST") @ApiImplicitParam(name = "devSn", value = "升降机设备编号", paramType = "query", required = true, dataType = "Integer") @PostMapping(value = "/selectLifterBySn") - public Result> selectLifterBySn(@RequestBody Map map) { + public Result selectLifterBySn(@RequestBody Map map) { return Result.success(lifterService.selectLifterBySn(map)); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/TowerController.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/TowerController.java index 8053121b0..06b14c2c3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/TowerController.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/controller/TowerController.java @@ -5,10 +5,7 @@ import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.Tower; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerAndDataInfoVO; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerCurrentCountVo; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerDevAlarmCountListVo; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerNumAndAlarmCount; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.*; import com.zhgd.xmgl.modules.bigdevice.service.ITowerService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -143,7 +140,7 @@ public class TowerController { @ApiOperation(value = "通过塔机设备唯一标识查询信息", notes = "通过塔机设备唯一标识查询信息", httpMethod = "POST") @ApiImplicitParam(name = "devSn", value = "塔机设备编号", paramType = "query", required = true, dataType = "String") @PostMapping(value = "/selectTowerBySn") - public Result> selectTowerBySn(@RequestBody Map map) { + public Result selectTowerBySn(@RequestBody Map map) { return Result.success(towerService.selectTowerBySn(map)); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/DevWorkerVO.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/DevWorkerVO.java index f09fee9c2..bfa1d8567 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/DevWorkerVO.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/DevWorkerVO.java @@ -38,4 +38,6 @@ public class DevWorkerVO { @ApiModelProperty(value = "驾驶员列表") List workerList; + @ApiModelProperty(value = "当前驾驶员") + DriverVO currentWorker; } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/LifterBySnVo.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/LifterBySnVo.java new file mode 100644 index 000000000..76484dfca --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/LifterBySnVo.java @@ -0,0 +1,18 @@ +package com.zhgd.xmgl.modules.bigdevice.entity.vo; + +import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.modules.bigdevice.entity.Lifter; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class LifterBySnVo { + + private List videoList; + private Lifter lifter; + private List driverList; + @ApiModelProperty(value = "当前司机") + private DriverVO currentDriver; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/TodayOperatingStatusStatisticsVo.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/TodayOperatingStatusStatisticsVo.java index 7141cd71a..f72649c5d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/TodayOperatingStatusStatisticsVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/TodayOperatingStatusStatisticsVo.java @@ -9,7 +9,7 @@ public class TodayOperatingStatusStatisticsVo { private Integer workTime; @ApiModelProperty(value = "装载次数") private Integer loadingNum; - @ApiModelProperty(value = "装载工效") + @ApiModelProperty(value = "装载工效(kg/min)") private Integer loadingErgonomic; @ApiModelProperty(value = "装载重量") private Integer loadingWeight; diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/TowerBySnVo.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/TowerBySnVo.java new file mode 100644 index 000000000..443c50c82 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/entity/vo/TowerBySnVo.java @@ -0,0 +1,18 @@ +package com.zhgd.xmgl.modules.bigdevice.entity.vo; + +import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.modules.bigdevice.entity.Tower; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class TowerBySnVo { + + private List videoList; + private List driverList; + private Tower tower; + @ApiModelProperty(value = "当前司机") + private DriverVO currentDriver; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterWorkCycleMapper.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterWorkCycleMapper.java index 8ae37a48e..080754a2f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterWorkCycleMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/LifterWorkCycleMapper.java @@ -5,6 +5,7 @@ import java.util.Map; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.DriverVO; import com.zhgd.xmgl.modules.bigdevice.entity.vo.TodayOperatingStatusStatisticsVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -25,4 +26,6 @@ public interface LifterWorkCycleMapper extends BaseMapper { List selectLifterWorkCycleList(Map map); TodayOperatingStatusStatisticsVo queryTodayWorkCycleStatusStatistics(Map map); + + DriverVO getCurrentDriver(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/TowerWorkCycleMapper.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/TowerWorkCycleMapper.java index 711dd0ff9..2d19293c5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/TowerWorkCycleMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/TowerWorkCycleMapper.java @@ -2,8 +2,8 @@ package com.zhgd.xmgl.modules.bigdevice.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.TowerWorkCycle; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.DriverVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -40,4 +40,12 @@ public interface TowerWorkCycleMapper extends BaseMapper { List> selectProjectTowerWorkCycleCountList(Map map); List> selectAllProjectTowerWorkCycletList(Map map); + + /** + * 获取当前司机信息 + * + * @param map + * @return + */ + DriverVO getCurrentDriver(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterAlarmMapper.xml b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterAlarmMapper.xml index 7d16a55e5..7b25b35c6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterAlarmMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterAlarmMapper.xml @@ -332,6 +332,6 @@ from lifter_alarm la where la.add_time >= #{queryStartTime} and la.add_time - #{queryEndTime} + DATE_FORMAT(#{queryEndTime},'%Y-%m-%d 23:59:59') diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterMapper.xml b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterMapper.xml index d3244d6e8..021e72ac6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/LifterMapper.xml @@ -4,11 +4,11 @@ SELECT DATE_FORMAT(w1.add_time, "%Y-%m-%d") titleName, count(1) num from lifter_alarm w1 - INNER JOIN project a ON w1.project_sn = a.project_sn - INNER JOIN company cp ON a.company_sn = cp.company_sn - INNER JOIN company b ON cp.parent_id = b.company_id - Left JOIN company f ON b.parent_id = f.company_id - where w1.add_time >= CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -6 DAY), '%Y-%m-%d'), ' 00:00:00') + INNER JOIN project a ON w1.project_sn = a.project_sn + INNER JOIN company cp ON a.company_sn = cp.company_sn + INNER JOIN company b ON cp.parent_id = b.company_id + Left JOIN company f ON b.parent_id = f.company_id + where w1.add_time >= CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -6 DAY), '%Y-%m-%d'), ' 00:00:00') and f.headquarters_sn = #{sn} @@ -110,25 +110,25 @@ - SELECT a.*,b.dev_name - FROM lifter_work_cycle a INNER JOIN lifter b ON a.dev_sn=b.dev_sn - WHERE a.project_sn=#{param.projectSn} - - and a.dev_sn=#{param.devSn} + SELECT a.*, b.dev_name + FROM lifter_work_cycle a + INNER JOIN lifter b ON a.dev_sn = b.dev_sn + WHERE a.project_sn = #{param.projectSn} + + and a.dev_sn = #{param.devSn} - - AND a.start_time >=CONCAT(DATE_FORMAT(#{param.startTime},'%Y-%m-%d'),' 00:00:00') + + AND a.start_time >= CONCAT(DATE_FORMAT(#{param.startTime}, '%Y-%m-%d'), ' 00:00:00') - - AND a.end_time <=CONCAT(DATE_FORMAT(#{param.endTime},'%Y-%m-%d'),' 23:59:59') + + AND a.end_time <= CONCAT(DATE_FORMAT(#{param.endTime}, '%Y-%m-%d'), ' 23:59:59') + + diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/TowerMapper.xml b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/TowerMapper.xml index ab8ce98d0..2d395b990 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/TowerMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/TowerMapper.xml @@ -2,8 +2,7 @@ @@ -355,36 +354,33 @@ SELECT COUNT(1) videoNum - ,f.company_name name - ,f.company_sn sn + , f.company_name name + , f.company_sn sn - ,b.company_name name - ,b.company_sn sn + , b.company_name name + , b.company_sn sn - ,cp.company_name name - ,cp.company_sn sn + , cp.company_name name + , cp.company_sn sn - ,a.project_name name - ,a.project_sn sn + , a.project_name name + , a.project_sn sn - ,a.project_name name - ,a.project_sn sn + , a.project_name name + , a.project_sn sn FROM video_item t1 INNER JOIN project_video_config t2 ON t2.id = t1.video_id @@ -696,22 +691,20 @@ bddr.id bId, wi.worker_name, wi.phone_number, - (SELECT - certificate_number - FROM - `worker_certificate` - WHERE - worker_id = wi.id + (SELECT certificate_number + FROM `worker_certificate` + WHERE worker_id = wi.id AND certificate_type = 98 - ORDER BY - effect_time DESC + ORDER BY effect_time DESC LIMIT 1) special_certificate_number, wi.field_acquisition_url, wi.sex, TIMESTAMPDIFF(YEAR, wi.birthday, CURDATE()) as age, (select IFNULL(a.work_time, 0) continuous_working_time from tower_work_cycle a - where a.driver_id_card = wi.id_card order by a.add_time desc limit 1) continuous_working_time, + where a.driver_id_card = wi.id_card + order by a.add_time desc + limit 1) continuous_working_time, wi.id_card driverIdCard from tower t left join big_device_driver_record bddr on t.dev_sn = bddr.dev_sn and bddr.type = 1 diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/TowerWorkCycleMapper.xml b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/TowerWorkCycleMapper.xml index 0ee413076..e0c2944a0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/TowerWorkCycleMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/mapper/xml/TowerWorkCycleMapper.xml @@ -1,196 +1,220 @@ - SELECT count(1) cycleNum - ,f.company_name name,f.company_sn sn + , f.company_name name + , f.company_sn sn - ,b.company_name name,b.company_sn sn + , b.company_name name + , b.company_sn sn - ,cp.company_name name,cp.company_sn sn + , cp.company_name name + , cp.company_sn sn - ,a.project_name name,a.project_sn sn + , a.project_name name + , a.project_sn sn - ,a.project_name name,a.project_sn sn + , a.project_name name + , a.project_sn sn - from tower_work_cycle w1 INNER JOIN project a ON w1.project_sn=a.project_sn - INNER JOIN company cp ON a.company_sn=cp.company_sn - INNER JOIN company b ON cp.parent_id=b.company_id - Left JOIN company f ON b.parent_id=f.company_id - where w1.start_time >=CONCAT(DATE_FORMAT(now(),'%Y-%m-%d'),' 00:00:00') + from tower_work_cycle w1 + INNER JOIN project a ON w1.project_sn = a.project_sn + INNER JOIN company cp ON a.company_sn = cp.company_sn + INNER JOIN company b ON cp.parent_id = b.company_id + Left JOIN company f ON b.parent_id = f.company_id + where w1.start_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00') - and f.headquarters_sn=#{sn} + and f.headquarters_sn = #{sn} GROUP BY f.company_id - and f.company_sn=#{sn} + and f.company_sn = #{sn} GROUP BY b.company_id + and b.company_sn=#{sn} GROUP BY cp.company_id @@ -241,28 +272,57 @@ + + diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterService.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterService.java index 42b8bfc7c..df89d2add 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterService.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ILifterService.java @@ -1,15 +1,11 @@ package com.zhgd.xmgl.modules.bigdevice.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.Lifter; import com.zhgd.xmgl.modules.bigdevice.entity.LifterAlarm; import com.zhgd.xmgl.modules.bigdevice.entity.LifterViolation; import com.zhgd.xmgl.modules.bigdevice.entity.dto.LifterDto; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.LifterAlarmAndDevCountVo; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.LifterAndDataInfoVO; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.LifterDevAlarmCountListVo; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TodayOperatingStatusStatisticsVo; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.*; import java.util.List; import java.util.Map; @@ -30,7 +26,7 @@ public interface ILifterService extends IService { Lifter queryById(String id); - Map selectLifterBySn(Map map); + LifterBySnVo selectLifterBySn(Map map); void updateLifterCoordinate(List list); diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ITowerService.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ITowerService.java index f0331e02b..7bc20294e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ITowerService.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/ITowerService.java @@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.bigdevice.entity.Tower; import com.zhgd.xmgl.modules.bigdevice.entity.TowerAlarm; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerAndDataInfoVO; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerCurrentCountVo; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerDevAlarmCountListVo; -import com.zhgd.xmgl.modules.bigdevice.entity.vo.TowerNumAndAlarmCount; +import com.zhgd.xmgl.modules.bigdevice.entity.vo.*; import java.util.List; import java.util.Map; @@ -33,7 +30,7 @@ public interface ITowerService extends IService { Tower queryById(String id); - Map selectTowerBySn(Map map); + TowerBySnVo selectTowerBySn(Map map); List selectTowerList(Map map); diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterAlarmServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterAlarmServiceImpl.java index 3228c2283..b903e05a2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterAlarmServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterAlarmServiceImpl.java @@ -203,7 +203,7 @@ public class LifterAlarmServiceImpl extends ServiceImpl map) { - String queryEndTime = map.getOrDefault("queryEndTime", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")).toString(); + String queryEndTime = map.getOrDefault("queryEndTime", DateUtil.format(new Date(), "yyyy-MM-dd")).toString(); String queryStartTime = map.getOrDefault("queryStartTime", DateUtil.offsetDay(new Date(), -7)).toString(); map.putIfAbsent("queryEndTime", queryEndTime); map.putIfAbsent("queryStartTime", queryStartTime); diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterServiceImpl.java index 0fc567434..becb39427 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterServiceImpl.java @@ -1,8 +1,11 @@ package com.zhgd.xmgl.modules.bigdevice.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -29,7 +32,10 @@ import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.UUID; import java.util.stream.Collectors; /** @@ -42,6 +48,8 @@ import java.util.stream.Collectors; @Transactional(rollbackFor = Exception.class) @Slf4j public class LifterServiceImpl extends ServiceImpl implements ILifterService { + @Autowired + private TowerWorkCycleMapper towerWorkCycleMapper; @Autowired private LifterViolationMapper lifterViolationMapper; @Autowired @@ -176,15 +184,17 @@ public class LifterServiceImpl extends ServiceImpl impleme } @Override - public Map selectLifterBySn(Map map) { - Map data = new HashMap<>(); + public LifterBySnVo selectLifterBySn(Map map) { Lifter lifter = lifterMapper.selectLifterByDevSn(map); - data.put("lifter", lifter); List videoList = bigDeviceVideoMapper.selectLifterVideoList(map); List driverList = bigDeviceDriverRecordMapper.selectLifterDriverList(map); - data.put("videoList", videoList); - data.put("driverList", driverList); - return data; + DriverVO currentDriver = lifterWorkCycleMapper.getCurrentDriver(map); + LifterBySnVo vo = new LifterBySnVo(); + vo.setVideoList(videoList); + vo.setLifter(lifter); + vo.setDriverList(driverList); + vo.setCurrentDriver(currentDriver); + return vo; } @Override @@ -318,17 +328,12 @@ public class LifterServiceImpl extends ServiceImpl impleme @Override public LifterAndDataInfoVO getRelatedInfo(String devSn) { log.info("调用getRelatedInfo方法,请求参数:{}", devSn); - Lifter lifter = lifterMapper.getLifterAndDriverInfo(devSn); - - log.info("getRelatedInfo升降机信息:{}", lifter); - if (lifter == null) { log.error("无对应升降机编号设备!设备编号为:{}", devSn); throw new NullPointerException("无对应升降机编号设备!!"); } - LifterCurrentData newData = redisRepository.getOrSet("lifterCurrentData" + lifter.getProjectSn() + lifter.getDevSn(), (() -> lifterCurrentDataMapper.getNewData(devSn))); log.info("getRelatedInfo升降机实时数据信息:{}", newData); List driverList = lifter.getDriverList().stream().map(driver -> { @@ -343,9 +348,30 @@ public class LifterServiceImpl extends ServiceImpl impleme driverVO.setImageUrl(driver.getImageUrl()); return driverVO; }).collect(Collectors.toList()); - DevWorkerVO devWorker = new DevWorkerVO(lifter.getDevName(), lifter.getDevSn(), lifter.getRegistNo(), lifter.getFactoryName(), lifter.getMaxLoad(), driverList); - + DevWorkerVO devWorker = new DevWorkerVO(lifter.getDevName(), lifter.getDevSn(), lifter.getRegistNo(), lifter.getFactoryName(), lifter.getMaxLoad(), driverList, null); LifterDataInfoDTO lifterDataInfo = new LifterDataInfoDTO().setTotalFloor(lifter.getTotalFloor()).setHeight(lifter.getMaxHeight()); + setLifterDataInfoDTO(lifter, newData, lifterDataInfo); + setCurrentWorker(devWorker); + return new LifterAndDataInfoVO(lifterDataInfo, devWorker); + } + + private void setCurrentWorker(DevWorkerVO devWorker) { + LifterWorkCycle lwc = lifterWorkCycleMapper.selectOne(new LambdaQueryWrapper() + .eq(LifterWorkCycle::getDevSn, devWorker.getDevSn()) + .orderByDesc(LifterWorkCycle::getAddTime) + .last("limit 1")); + if (lwc != null && StrUtil.isNotBlank(lwc.getDriverIdCard())) { + List workerList = devWorker.getWorkerList(); + if (CollUtil.isNotEmpty(workerList)) { + for (DriverVO driverVO : workerList) { + devWorker.setCurrentWorker(driverVO); + break; + } + } + } + } + + private void setLifterDataInfoDTO(Lifter lifter, LifterCurrentData newData, LifterDataInfoDTO lifterDataInfo) { if (newData != null) { if (newData.getHeightRatio() != null) { lifterDataInfo.setHeightRatio(newData.getHeightRatio()); @@ -368,7 +394,6 @@ public class LifterServiceImpl extends ServiceImpl impleme .setSpeed(newDataSpeed).setReciveTime(newData.getReciveTime()).setWindSpeed(newData.getWindSpeed()) .setLoading(newData.getLoading()).setFallAlarm(newData.getFallAlarm()).setBottomAlarm(newData.getBottomAlarm()); } - return new LifterAndDataInfoVO(lifterDataInfo, devWorker); } @Override diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterWorkCycleServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterWorkCycleServiceImpl.java index 39c97ee98..564e61def 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterWorkCycleServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/LifterWorkCycleServiceImpl.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.modules.bigdevice.service.impl; +import cn.hutool.core.date.DateUnit; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -61,6 +62,15 @@ public class LifterWorkCycleServiceImpl extends ServiceImpl rsList = new ArrayList<>(); if (Objects.equals(towerCurrentData.getMomentAlarm(), type)) { - rs = "力矩"; - } else if (Objects.equals(towerCurrentData.getWindSpeedAlarm(), type)) { - rs = "风速"; - } else if (Objects.equals(towerCurrentData.getHeightAlarm(), type)) { - rs = "高度上限位"; - } else if (Objects.equals(towerCurrentData.getHeightLowerAlarm(), type)) { - rs = "高度下限位"; - } else if (Objects.equals(towerCurrentData.getMinRangeAlarm(), type)) { - rs = "幅度内限位"; - } else if (Objects.equals(towerCurrentData.getMaxRangeAlarm(), type)) { - rs = "幅度外限位"; - } else if (Objects.equals(towerCurrentData.getPosAngleAlarm(), type)) { - rs = "顺时针回转限位"; - } else if (Objects.equals(towerCurrentData.getNegAngleAlarm(), type)) { - rs = "逆时针回转限位"; - } else if (Objects.equals(towerCurrentData.getObliguityAlarm(), type)) { - rs = "倾角"; - } else if (Objects.equals(towerCurrentData.getObliguityXAlarm(), type)) { - rs = "倾角X"; - } else if (Objects.equals(towerCurrentData.getObliguityYAlarm(), type)) { - rs = "倾角Y"; - } else { + rsList.add("力矩"); + } + if (Objects.equals(towerCurrentData.getWindSpeedAlarm(), type)) { + rsList.add("风速"); + } + if (Objects.equals(towerCurrentData.getHeightAlarm(), type)) { + rsList.add("高度上限位"); + } + if (Objects.equals(towerCurrentData.getHeightLowerAlarm(), type)) { + rsList.add("高度下限位"); + } + if (Objects.equals(towerCurrentData.getMinRangeAlarm(), type)) { + rsList.add("幅度内限位"); + } + if (Objects.equals(towerCurrentData.getMaxRangeAlarm(), type)) { + rsList.add("幅度外限位"); + } + if (Objects.equals(towerCurrentData.getPosAngleAlarm(), type)) { + rsList.add("顺时针回转限位"); + } + if (Objects.equals(towerCurrentData.getNegAngleAlarm(), type)) { + rsList.add("逆时针回转限位"); + } + if (Objects.equals(towerCurrentData.getObliguityAlarm(), type)) { + rsList.add("倾角"); + } + if (Objects.equals(towerCurrentData.getObliguityXAlarm(), type)) { + rsList.add("倾角X"); + } + if (Objects.equals(towerCurrentData.getObliguityYAlarm(), type)) { + rsList.add("倾角Y"); + } + if (CollUtil.isEmpty(rsList)) { return null; } + String rs = CollUtil.join(rsList, "、"); if (type == 1) { rs += "报警"; } else if (type == 2) { diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerServiceImpl.java index 89b36d9a0..ec06eb881 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerServiceImpl.java @@ -2,7 +2,9 @@ package com.zhgd.xmgl.modules.bigdevice.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -227,17 +229,17 @@ public class TowerServiceImpl extends ServiceImpl implements } @Override - public Map selectTowerBySn(Map map) { - Map data = new HashMap<>(); - /*QueryWrapper queryWrapper=new QueryWrapper<>(); - queryWrapper.lambda().eq(Tower::getDevSn, MapUtils.getString(map,"devSn"));*/ + public TowerBySnVo selectTowerBySn(Map map) { Tower tower = towerMapper.selectTowerBySN(map); - data.put("tower", tower); List videoList = bigDeviceVideoMapper.selectTowerVideoList(map); List driverList = bigDeviceDriverRecordMapper.selectTowerDriverList(map); - data.put("videoList", videoList); - data.put("driverList", driverList); - return data; + DriverVO driverVO = towerWorkCycleMapper.getCurrentDriver(map); + TowerBySnVo vo = new TowerBySnVo(); + vo.setVideoList(videoList); + vo.setDriverList(driverList); + vo.setTower(tower); + vo.setCurrentDriver(driverVO); + return vo; } @Override @@ -465,17 +467,13 @@ public class TowerServiceImpl extends ServiceImpl implements @Override public TowerAndDataInfoVO getRelatedInfo(String devSn) { log.info("调用getRelatedInfo方法,请求参数:{}", devSn); - Tower tower = towerMapper.getTowerAndDriverInfo(devSn); if (tower == null) { log.error("无对应塔吊编号设备!设备编号为:{}", devSn); throw new NullPointerException("无对应塔吊编号设备!!"); } - TowerCurrentData newData = redisRepository.getOrSet("towerCurrentData" + tower.getProjectSn() + tower.getDevSn(), (() -> towerCurrentDataMapper.getNewData(devSn))); - log.info("getRelatedInfo塔吊实时数据信息:{}", newData); - List driverList = tower.getDriverList().stream().map(driver -> { DriverVO driverVO = new DriverVO(); driverVO.setWorkerName(driver.getDriverName()); @@ -488,19 +486,33 @@ public class TowerServiceImpl extends ServiceImpl implements driverVO.setIdCard(driver.getDriverIdCard()); return driverVO; }).collect(Collectors.toList()); - DevWorkerVO devWorker = new DevWorkerVO(tower.getDevName(), tower.getDevSn(), tower.getRegistNo(), tower.getFactoryName(), null, driverList); - - + DevWorkerVO devWorker = new DevWorkerVO(tower.getDevName(), tower.getDevSn(), tower.getRegistNo(), tower.getFactoryName(), null, driverList, null); // double towerHeight = (tower.getTowerHeight() == null ? 0 : tower.getTowerHeight()) + (tower.getReferenceHeight() == null ? 0 : tower.getReferenceHeight()); - TowerDataInfoDTO towerDataInfo = new TowerDataInfoDTO().setForearmLength(tower.getForearmLength()).setTowerHeight(tower.getTowerHeight()); if (newData != null) { towerDataInfo.setLoading(newData.getLoading()).setRanger(newData.getRanger()).setCurrentHeight(newData.getHeight()) .setAngle(newData.getAngle()).setTorqueRatio(newData.getTorqueRatio()).setLoadRatio(newData.getLoadRatio()).setReciveTime(newData.getReciveTime()) .setObliguityX(newData.getObliguityX()).setObliguityY(newData.getObliguityY()).setWindspeed(newData.getWindspeed()).setTorque(newData.getTorque()); } + setCurrentWorker(devWorker); return new TowerAndDataInfoVO(towerDataInfo, devWorker); } + private void setCurrentWorker(DevWorkerVO devWorker) { + TowerWorkCycle lwc = towerWorkCycleMapper.selectOne(new LambdaQueryWrapper() + .eq(TowerWorkCycle::getDevSn, devWorker.getDevSn()) + .orderByDesc(TowerWorkCycle::getAddTime) + .last("limit 1")); + if (lwc != null && StrUtil.isNotBlank(lwc.getDriverIdCard())) { + List workerList = devWorker.getWorkerList(); + if (CollUtil.isNotEmpty(workerList)) { + for (DriverVO driverVO : workerList) { + devWorker.setCurrentWorker(driverVO); + break; + } + } + } + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerWorkCycleServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerWorkCycleServiceImpl.java index f316394ab..17912fccb 100644 --- a/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerWorkCycleServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/bigdevice/service/impl/TowerWorkCycleServiceImpl.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.bigdevice.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUnit; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -72,6 +73,11 @@ public class TowerWorkCycleServiceImpl extends ServiceImpl> queryAttendanceTrendOfTheLastWeek(@RequestParam Map map) { diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceMapper.xml index 23a32ecf0..6cb5d64a9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceMapper.xml @@ -236,10 +236,10 @@ diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java index 4a535f154..260568f06 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java @@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.async.AsyncSendAttendance; import com.zhgd.xmgl.entity.vo.AttendanceOfEachCompanyVo; @@ -1027,16 +1028,29 @@ status 状态码 String 1表示成功;其余表示失败 @Override public List queryAttendanceTrendOfTheLastWeek(Map map) { - Date now = new Date(); - String beforeSevenDay = DateUtil.format(DateUtil.offsetDay(now, -7), "yyyy-MM-dd"); - String today = DateUtil.format(now, "yyyy-MM-dd"); - map.put("beforeSevenDay", beforeSevenDay); - map.put("today", today); + if (StringUtils.isBlank(MapUtils.getString(map, "queryStartTime")) || StringUtils.isBlank(MapUtils.getString(map, "queryEndTime"))) { + throw new OpenAlertException("queryStartTime和queryEndTime都不能为空"); + } List attendances = workerAttendanceMapper.queryAttendanceTrendOfTheLastWeek(map); - completeData(attendances); + completeData(attendances, map); return attendances; } + private void completeData(List attendances, Map map) { + Map timeMap = attendances.stream().collect(Collectors.toMap(NumberTimeTableVo::getTime, o -> o)); + attendances.clear(); + List daysBetweenLastWeekWithoutYear = DateUtil.getBetweenDays(MapUtils.getString(map, "queryStartTime"), MapUtils.getString(map, "queryEndTime")); + for (String day : daysBetweenLastWeekWithoutYear) { + NumberTimeTableVo vo = timeMap.get(day); + if (vo == null) { + vo = new NumberTimeTableVo(); + vo.setNum(0); + vo.setTime(day); + } + attendances.add(vo); + } + } + @Override public AttendanceOfEachCompanyVo queryAttendanceOfEachCompany(Map map) { //统计各企业出勤人数 @@ -1048,21 +1062,6 @@ status 状态码 String 1表示成功;其余表示失败 return vo; } - private void completeData(List attendances) { - Map timeMap = attendances.stream().collect(Collectors.toMap(NumberTimeTableVo::getTime, o -> o)); - attendances.clear(); - List daysBetweenLastWeekWithoutYear = DateUtil.getDaysBetweenLastWeekWithoutYear(); - for (String day : daysBetweenLastWeekWithoutYear) { - NumberTimeTableVo vo = timeMap.get(day); - if (vo == null) { - vo = new NumberTimeTableVo(); - vo.setNum(null); - vo.setTime(day); - } - attendances.add(vo); - } - } - public WorkerInfo getWorkerInfoByImage(String personImage, String projectSn) { WorkerInfo info = null; File file = null; diff --git a/src/main/java/com/zhgd/xmgl/util/DateUtil.java b/src/main/java/com/zhgd/xmgl/util/DateUtil.java index 16e08d1c3..7f3ab2619 100644 --- a/src/main/java/com/zhgd/xmgl/util/DateUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/DateUtil.java @@ -483,6 +483,24 @@ public class DateUtil extends cn.hutool.core.date.DateUtil { return rtList; } + /** + * 查询指定天数内所有天数列表, 返回:如:[07-30, 07-31] + * + * @param queryStartTime 2023-07-31 + * @param queryEndTime 2023-07-31 + * @return + */ + public static List getBetweenDays(String queryStartTime, String queryEndTime) { + ArrayList rtList = new ArrayList<>(); + DateTime beginDate = DateUtil.parseDate(queryStartTime); + DateTime endDate = DateUtil.parseDate(queryEndTime); + long offset = cn.hutool.core.date.DateUtil.betweenDay(beginDate, endDate, true); + for (int i = 0; i < offset + 1; i++) { + rtList.add(cn.hutool.core.date.DateUtil.format(cn.hutool.core.date.DateUtil.offsetDay(beginDate, i), "MM-dd")); + } + return rtList; + } + /** * 查询一个周前内所有天数,如:06-10到06-17 * @@ -516,6 +534,6 @@ public class DateUtil extends cn.hutool.core.date.DateUtil { } public static void main(String[] args) { - System.out.println(getHoursListLastDay()); + System.out.println(getBetweenDays("2023-07-30", "2023-07-31")); } }