bug修改
This commit is contained in:
parent
1a1c5fe740
commit
b4fe3478b7
@ -216,8 +216,8 @@ public class LifterAlarmController {
|
|||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
|
||||||
@ApiImplicitParam(name = "devSn", value = "设备sn", paramType = "query", required = false, 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 = "queryStartTime", value = "查询开始时间,格式:2023-05-22", paramType = "query", required = true, dataType = "String"),
|
||||||
@ApiImplicitParam(name = "queryEndTime", value = "查询结束时间,格式:2023-05-22 18:00:00", paramType = "query", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "queryEndTime", value = "查询结束时间,格式:2023-05-22", paramType = "query", required = true, dataType = "String"),
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/queryAlarmsDistinguishedNumberByAlarmType")
|
@PostMapping(value = "/queryAlarmsDistinguishedNumberByAlarmType")
|
||||||
public Result<AlarmsDistinguishedNumberByAlarmType> queryAlarmsDistinguishedNumberByAlarmType(@RequestBody Map<String, Object> map) {
|
public Result<AlarmsDistinguishedNumberByAlarmType> queryAlarmsDistinguishedNumberByAlarmType(@RequestBody Map<String, Object> map) {
|
||||||
|
|||||||
@ -2,13 +2,9 @@ package com.zhgd.xmgl.modules.bigdevice.controller;
|
|||||||
|
|
||||||
import com.zhgd.annotation.OperLog;
|
import com.zhgd.annotation.OperLog;
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
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.Lifter;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.entity.dto.LifterDto;
|
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.*;
|
||||||
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.service.ILifterService;
|
import com.zhgd.xmgl.modules.bigdevice.service.ILifterService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@ -118,7 +114,7 @@ public class LifterController {
|
|||||||
@ApiOperation(value = "通过升降机设备唯一标识查询信息", notes = "通过升降机设备唯一标识查询信息", httpMethod = "POST")
|
@ApiOperation(value = "通过升降机设备唯一标识查询信息", notes = "通过升降机设备唯一标识查询信息", httpMethod = "POST")
|
||||||
@ApiImplicitParam(name = "devSn", value = "升降机设备编号", paramType = "query", required = true, dataType = "Integer")
|
@ApiImplicitParam(name = "devSn", value = "升降机设备编号", paramType = "query", required = true, dataType = "Integer")
|
||||||
@PostMapping(value = "/selectLifterBySn")
|
@PostMapping(value = "/selectLifterBySn")
|
||||||
public Result<Map<String, Object>> selectLifterBySn(@RequestBody Map<String, Object> map) {
|
public Result<LifterBySnVo> selectLifterBySn(@RequestBody Map<String, Object> map) {
|
||||||
return Result.success(lifterService.selectLifterBySn(map));
|
return Result.success(lifterService.selectLifterBySn(map));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,10 +5,7 @@ import com.zhgd.annotation.OperLog;
|
|||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.entity.Tower;
|
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.*;
|
||||||
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.service.ITowerService;
|
import com.zhgd.xmgl.modules.bigdevice.service.ITowerService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@ -143,7 +140,7 @@ public class TowerController {
|
|||||||
@ApiOperation(value = "通过塔机设备唯一标识查询信息", notes = "通过塔机设备唯一标识查询信息", httpMethod = "POST")
|
@ApiOperation(value = "通过塔机设备唯一标识查询信息", notes = "通过塔机设备唯一标识查询信息", httpMethod = "POST")
|
||||||
@ApiImplicitParam(name = "devSn", value = "塔机设备编号", paramType = "query", required = true, dataType = "String")
|
@ApiImplicitParam(name = "devSn", value = "塔机设备编号", paramType = "query", required = true, dataType = "String")
|
||||||
@PostMapping(value = "/selectTowerBySn")
|
@PostMapping(value = "/selectTowerBySn")
|
||||||
public Result<Map<String, Object>> selectTowerBySn(@RequestBody Map<String, Object> map) {
|
public Result<TowerBySnVo> selectTowerBySn(@RequestBody Map<String, Object> map) {
|
||||||
return Result.success(towerService.selectTowerBySn(map));
|
return Result.success(towerService.selectTowerBySn(map));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -38,4 +38,6 @@ public class DevWorkerVO {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "驾驶员列表")
|
@ApiModelProperty(value = "驾驶员列表")
|
||||||
List<DriverVO> workerList;
|
List<DriverVO> workerList;
|
||||||
|
@ApiModelProperty(value = "当前驾驶员")
|
||||||
|
DriverVO currentWorker;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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<EntityMap> videoList;
|
||||||
|
private Lifter lifter;
|
||||||
|
private List<EntityMap> driverList;
|
||||||
|
@ApiModelProperty(value = "当前司机")
|
||||||
|
private DriverVO currentDriver;
|
||||||
|
}
|
||||||
@ -9,7 +9,7 @@ public class TodayOperatingStatusStatisticsVo {
|
|||||||
private Integer workTime;
|
private Integer workTime;
|
||||||
@ApiModelProperty(value = "装载次数")
|
@ApiModelProperty(value = "装载次数")
|
||||||
private Integer loadingNum;
|
private Integer loadingNum;
|
||||||
@ApiModelProperty(value = "装载工效")
|
@ApiModelProperty(value = "装载工效(kg/min)")
|
||||||
private Integer loadingErgonomic;
|
private Integer loadingErgonomic;
|
||||||
@ApiModelProperty(value = "装载重量")
|
@ApiModelProperty(value = "装载重量")
|
||||||
private Integer loadingWeight;
|
private Integer loadingWeight;
|
||||||
|
|||||||
@ -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<EntityMap> videoList;
|
||||||
|
private List<EntityMap> driverList;
|
||||||
|
private Tower tower;
|
||||||
|
@ApiModelProperty(value = "当前司机")
|
||||||
|
private DriverVO currentDriver;
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
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 com.zhgd.xmgl.modules.bigdevice.entity.vo.TodayOperatingStatusStatisticsVo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@ -25,4 +26,6 @@ public interface LifterWorkCycleMapper extends BaseMapper<LifterWorkCycle> {
|
|||||||
List<EntityMap> selectLifterWorkCycleList(Map<String, Object> map);
|
List<EntityMap> selectLifterWorkCycleList(Map<String, Object> map);
|
||||||
|
|
||||||
TodayOperatingStatusStatisticsVo queryTodayWorkCycleStatusStatistics(Map<String, Object> map);
|
TodayOperatingStatusStatisticsVo queryTodayWorkCycleStatusStatistics(Map<String, Object> map);
|
||||||
|
|
||||||
|
DriverVO getCurrentDriver(Map<String, Object> map);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,8 +2,8 @@ package com.zhgd.xmgl.modules.bigdevice.mapper;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.TowerWorkCycle;
|
||||||
|
import com.zhgd.xmgl.modules.bigdevice.entity.vo.DriverVO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@ -40,4 +40,12 @@ public interface TowerWorkCycleMapper extends BaseMapper<TowerWorkCycle> {
|
|||||||
List<Map<String, Object>> selectProjectTowerWorkCycleCountList(Map<String, Object> map);
|
List<Map<String, Object>> selectProjectTowerWorkCycleCountList(Map<String, Object> map);
|
||||||
|
|
||||||
List<Map<String, Object>> selectAllProjectTowerWorkCycletList(Map<String, Object> map);
|
List<Map<String, Object>> selectAllProjectTowerWorkCycletList(Map<String, Object> map);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前司机信息
|
||||||
|
*
|
||||||
|
* @param map
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
DriverVO getCurrentDriver(Map<String, Object> map);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -332,6 +332,6 @@
|
|||||||
from lifter_alarm la
|
from lifter_alarm la
|
||||||
where la.add_time >= #{queryStartTime}
|
where la.add_time >= #{queryStartTime}
|
||||||
and la.add_time <![CDATA[<=]]>
|
and la.add_time <![CDATA[<=]]>
|
||||||
#{queryEndTime}
|
DATE_FORMAT(#{queryEndTime},'%Y-%m-%d 23:59:59')
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -182,28 +182,20 @@
|
|||||||
bddr.id bId,
|
bddr.id bId,
|
||||||
wi.worker_name,
|
wi.worker_name,
|
||||||
wi.phone_number,
|
wi.phone_number,
|
||||||
(SELECT
|
(SELECT certificate_number
|
||||||
certificate_number
|
FROM `worker_certificate`
|
||||||
FROM
|
WHERE worker_id = wi.id
|
||||||
`worker_certificate`
|
|
||||||
WHERE
|
|
||||||
worker_id = wi.id
|
|
||||||
AND certificate_type = 108
|
AND certificate_type = 108
|
||||||
ORDER BY
|
ORDER BY effect_time DESC
|
||||||
effect_time DESC
|
|
||||||
LIMIT 1) special_certificate_number,
|
LIMIT 1) special_certificate_number,
|
||||||
wi.field_acquisition_url,
|
wi.field_acquisition_url,
|
||||||
wi.sex,
|
wi.sex,
|
||||||
TIMESTAMPDIFF(YEAR, wi.birthday, CURDATE()) as age,
|
TIMESTAMPDIFF(YEAR, wi.birthday, CURDATE()) as age,
|
||||||
TIMESTAMPDIFF(YEAR, wi.enter_date, CURDATE()) as workYear,
|
TIMESTAMPDIFF(YEAR, wi.enter_date, CURDATE()) as workYear,
|
||||||
(SELECT
|
(SELECT IFNULL(a.work_time, 0) continuous_working_time
|
||||||
IFNULL( a.work_time, 0 ) continuous_working_time
|
FROM lifter_work_cycle a
|
||||||
FROM
|
WHERE a.driver_id_card = wi.id_card
|
||||||
lifter_work_cycle a
|
ORDER BY a.add_time DESC
|
||||||
WHERE
|
|
||||||
a.driver_id_card = wi.id_card
|
|
||||||
ORDER BY
|
|
||||||
a.add_time DESC
|
|
||||||
LIMIT 1) continuous_working_time,
|
LIMIT 1) continuous_working_time,
|
||||||
wi.id_card driverIdCard
|
wi.id_card driverIdCard
|
||||||
from lifter l
|
from lifter l
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
<?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.bigdevice.mapper.LifterWorkCycleMapper">
|
<mapper namespace="com.zhgd.xmgl.modules.bigdevice.mapper.LifterWorkCycleMapper">
|
||||||
|
|
||||||
<select id="queryLifterWorkCyclePageList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
|
<select id="queryLifterWorkCyclePageList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
|
||||||
SELECT a.*, b.dev_name
|
SELECT a.*, b.dev_name
|
||||||
FROM lifter_work_cycle a INNER JOIN lifter b ON a.dev_sn=b.dev_sn
|
FROM lifter_work_cycle a
|
||||||
|
INNER JOIN lifter b ON a.dev_sn = b.dev_sn
|
||||||
WHERE a.project_sn = #{param.projectSn}
|
WHERE a.project_sn = #{param.projectSn}
|
||||||
<if test="param.devSn != null and param.devSn != ''">
|
<if test="param.devSn != null and param.devSn != ''">
|
||||||
and a.dev_sn = #{param.devSn}
|
and a.dev_sn = #{param.devSn}
|
||||||
@ -18,7 +18,8 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="selectLifterWorkCycleList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map">
|
<select id="selectLifterWorkCycleList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map">
|
||||||
SELECT a.*, b.dev_name
|
SELECT a.*, b.dev_name
|
||||||
FROM lifter_work_cycle a INNER JOIN lifter b ON a.dev_sn=b.dev_sn
|
FROM lifter_work_cycle a
|
||||||
|
INNER JOIN lifter b ON a.dev_sn = b.dev_sn
|
||||||
WHERE a.dev_sn = #{devSn}
|
WHERE a.dev_sn = #{devSn}
|
||||||
<if test="startTime != null and startTime != ''">
|
<if test="startTime != null and startTime != ''">
|
||||||
AND a.start_time >= CONCAT(DATE_FORMAT(#{startTime}, '%Y-%m-%d'), ' 00:00:00')
|
AND a.start_time >= CONCAT(DATE_FORMAT(#{startTime}, '%Y-%m-%d'), ' 00:00:00')
|
||||||
@ -31,8 +32,9 @@
|
|||||||
|
|
||||||
<select id="queryTodayWorkCycleStatusStatistics"
|
<select id="queryTodayWorkCycleStatusStatistics"
|
||||||
resultType="com.zhgd.xmgl.modules.bigdevice.entity.vo.TodayOperatingStatusStatisticsVo">
|
resultType="com.zhgd.xmgl.modules.bigdevice.entity.vo.TodayOperatingStatusStatisticsVo">
|
||||||
SELECT
|
SELECT t.*, ROUND(avg(t.loadingWeight / t.workTime), 4) loadingErgonomic
|
||||||
ifnull(sum(ifnull(lw.work_time,0)),0) as workTime,
|
from (
|
||||||
|
SELECT ifnull(round(sum(ifnull(lw.work_time / 60, 0)), 2), 0) as workTime,
|
||||||
count(1) as loadingNum,
|
count(1) as loadingNum,
|
||||||
ifnull(sum(ifnull(lw.loading, 0)), 0) as loadingWeight
|
ifnull(sum(ifnull(lw.loading, 0)), 0) as loadingWeight
|
||||||
FROM lifter_work_cycle lw
|
FROM lifter_work_cycle lw
|
||||||
@ -41,5 +43,32 @@
|
|||||||
and lw.dev_sn = #{devSn}
|
and lw.dev_sn = #{devSn}
|
||||||
and lw.add_time >= curdate()
|
and lw.add_time >= curdate()
|
||||||
</where>
|
</where>
|
||||||
|
)t
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getCurrentDriver" resultType="com.zhgd.xmgl.modules.bigdevice.entity.vo.DriverVO">
|
||||||
|
select wi.worker_name,
|
||||||
|
wi.phone_number,
|
||||||
|
(SELECT certificate_number
|
||||||
|
FROM `worker_certificate`
|
||||||
|
WHERE worker_id = wi.id
|
||||||
|
AND certificate_type = 108
|
||||||
|
ORDER BY effect_time DESC
|
||||||
|
LIMIT 1) special_certificate_number,
|
||||||
|
wi.field_acquisition_url image_url,
|
||||||
|
wi.sex,
|
||||||
|
TIMESTAMPDIFF(YEAR, wi.birthday, CURDATE()) as age,
|
||||||
|
TIMESTAMPDIFF(YEAR, wi.enter_date, CURDATE()) as workYear,
|
||||||
|
(SELECT IFNULL(a.work_time, 0) continuous_working_time
|
||||||
|
FROM lifter_work_cycle a
|
||||||
|
WHERE a.driver_id_card = wi.id_card
|
||||||
|
ORDER BY a.add_time DESC
|
||||||
|
LIMIT 1) continuous_working_time,
|
||||||
|
wi.id_card
|
||||||
|
from lifter_work_cycle l
|
||||||
|
left join worker_info wi on l.driver_id_card = wi.id_card
|
||||||
|
where l.dev_sn = #{devSn}
|
||||||
|
ORDER BY l.add_time desc
|
||||||
|
LIMIT 1
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -2,8 +2,7 @@
|
|||||||
<!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.bigdevice.mapper.TowerMapper">
|
<mapper namespace="com.zhgd.xmgl.modules.bigdevice.mapper.TowerMapper">
|
||||||
<select id="selectTowerAndLifterStatisticsCount" resultType="java.util.Map" parameterType="java.util.Map">
|
<select id="selectTowerAndLifterStatisticsCount" resultType="java.util.Map" parameterType="java.util.Map">
|
||||||
SELECT
|
SELECT IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) totalLifterNum,
|
||||||
IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) totalLifterNum,
|
|
||||||
IFNULL(SUM(IFNULL(d.devOnline, 0)), 0) lifterOnlineNum,
|
IFNULL(SUM(IFNULL(d.devOnline, 0)), 0) lifterOnlineNum,
|
||||||
IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) - IFNULL(SUM(IFNULL(d.devOnline, 0)), 0) lifterNotOnlineNum,
|
IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) - IFNULL(SUM(IFNULL(d.devOnline, 0)), 0) lifterNotOnlineNum,
|
||||||
IFNULL(SUM(IFNULL(t.totalDev, 0)), 0) totalTowerNum,
|
IFNULL(SUM(IFNULL(t.totalDev, 0)), 0) totalTowerNum,
|
||||||
@ -355,14 +354,11 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="selectProjectTowerTotalCountList" resultType="java.util.Map" parameterType="map">
|
<select id="selectProjectTowerTotalCountList" resultType="java.util.Map" parameterType="map">
|
||||||
SELECT COUNT(1) devNum
|
SELECT COUNT(1) devNum
|
||||||
,
|
, IFNULL(SUM((case when w1.anticollision = 1 then 1 else 0 end)), 0) collideDevNum
|
||||||
IFNULL(SUM((case when w1.anticollision = 1 then 1 else 0 end)), 0) collideDevNum
|
, IFNULL(SUM((case
|
||||||
,
|
|
||||||
IFNULL(SUM((case
|
|
||||||
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) <= 30 then 1
|
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) <= 30 then 1
|
||||||
else 0 end)), 0) devOnline
|
else 0 end)), 0) devOnline
|
||||||
,
|
, IFNULL(SUM((case
|
||||||
IFNULL(SUM((case
|
|
||||||
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) <= 30 and
|
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) <= 30 and
|
||||||
w1.anticollision = 1 then 1
|
w1.anticollision = 1 then 1
|
||||||
else 0 end)), 0) collideDevOnline
|
else 0 end)), 0) collideDevOnline
|
||||||
@ -482,8 +478,7 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="selectProjectTowerCountList" resultType="java.util.Map">
|
<select id="selectProjectTowerCountList" resultType="java.util.Map">
|
||||||
SELECT count(1) devNum
|
SELECT count(1) devNum
|
||||||
,
|
, IFNULL(SUM((case
|
||||||
IFNULL(SUM((case
|
|
||||||
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) <= 30 then 1
|
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) <= 30 then 1
|
||||||
else 0 end)), 0) devOnlineNum
|
else 0 end)), 0) devOnlineNum
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
@ -696,22 +691,20 @@
|
|||||||
bddr.id bId,
|
bddr.id bId,
|
||||||
wi.worker_name,
|
wi.worker_name,
|
||||||
wi.phone_number,
|
wi.phone_number,
|
||||||
(SELECT
|
(SELECT certificate_number
|
||||||
certificate_number
|
FROM `worker_certificate`
|
||||||
FROM
|
WHERE worker_id = wi.id
|
||||||
`worker_certificate`
|
|
||||||
WHERE
|
|
||||||
worker_id = wi.id
|
|
||||||
AND certificate_type = 98
|
AND certificate_type = 98
|
||||||
ORDER BY
|
ORDER BY effect_time DESC
|
||||||
effect_time DESC
|
|
||||||
LIMIT 1) special_certificate_number,
|
LIMIT 1) special_certificate_number,
|
||||||
wi.field_acquisition_url,
|
wi.field_acquisition_url,
|
||||||
wi.sex,
|
wi.sex,
|
||||||
TIMESTAMPDIFF(YEAR, wi.birthday, CURDATE()) as age,
|
TIMESTAMPDIFF(YEAR, wi.birthday, CURDATE()) as age,
|
||||||
(select IFNULL(a.work_time, 0) continuous_working_time
|
(select IFNULL(a.work_time, 0) continuous_working_time
|
||||||
from tower_work_cycle a
|
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
|
wi.id_card driverIdCard
|
||||||
from tower t
|
from tower t
|
||||||
left join big_device_driver_record bddr on t.dev_sn = bddr.dev_sn and bddr.type = 1
|
left join big_device_driver_record bddr on t.dev_sn = bddr.dev_sn and bddr.type = 1
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
<?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.bigdevice.mapper.TowerWorkCycleMapper">
|
<mapper namespace="com.zhgd.xmgl.modules.bigdevice.mapper.TowerWorkCycleMapper">
|
||||||
|
|
||||||
<select id="queryTowerWorkCyclePageList" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TowerWorkCycle">
|
<select id="queryTowerWorkCyclePageList" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TowerWorkCycle">
|
||||||
SELECT a.*, (ABS(sling_start_height - sling_end_height) + max_range) work_mileage
|
SELECT a.*, (ABS(sling_start_height - sling_end_height) + max_range) work_mileage
|
||||||
FROM tower_work_cycle a
|
FROM tower_work_cycle a
|
||||||
@ -31,7 +30,8 @@
|
|||||||
order by a.add_time
|
order by a.add_time
|
||||||
</select>
|
</select>
|
||||||
<select id="selectTowerWorkCycleCount" resultType="java.util.Map">
|
<select id="selectTowerWorkCycleCount" resultType="java.util.Map">
|
||||||
SELECT a.dev_sn devSn,count(1) cycleNum,
|
SELECT a.dev_sn devSn,
|
||||||
|
count(1) cycleNum,
|
||||||
IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0) timeNum
|
IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0) timeNum
|
||||||
FROM tower_work_cycle a
|
FROM tower_work_cycle a
|
||||||
WHERE a.project_sn = #{projectSn}
|
WHERE a.project_sn = #{projectSn}
|
||||||
@ -44,41 +44,54 @@
|
|||||||
group by a.dev_sn
|
group by a.dev_sn
|
||||||
</select>
|
</select>
|
||||||
<select id="selectExcelTowerWorkCycle" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TowerWorkCycle">
|
<select id="selectExcelTowerWorkCycle" resultType="com.zhgd.xmgl.modules.bigdevice.entity.TowerWorkCycle">
|
||||||
SELECT a.*,(ABS(sling_start_height-sling_end_height)+max_range) work_mileage,
|
SELECT a.*,
|
||||||
(case when a.work_max_range_alarm=1 then '报警'
|
(ABS(sling_start_height - sling_end_height) + max_range) work_mileage,
|
||||||
|
(case
|
||||||
|
when a.work_max_range_alarm = 1 then '报警'
|
||||||
when a.work_max_range_alarm = 2 then '预警'
|
when a.work_max_range_alarm = 2 then '预警'
|
||||||
else '正常' end) work_max_range_alarm_name,
|
else '正常' end) work_max_range_alarm_name,
|
||||||
(case when a.work_min_range_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_min_range_alarm = 1 then '报警'
|
||||||
when a.work_min_range_alarm = 2 then '预警'
|
when a.work_min_range_alarm = 2 then '预警'
|
||||||
else '正常' end) work_min_range_alarm_name,
|
else '正常' end) work_min_range_alarm_name,
|
||||||
(case when a.work_height_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_height_alarm = 1 then '报警'
|
||||||
when a.work_height_alarm = 2 then '预警'
|
when a.work_height_alarm = 2 then '预警'
|
||||||
else '正常' end) work_height_alarm_name,
|
else '正常' end) work_height_alarm_name,
|
||||||
(case when a.work_height_lower_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_height_lower_alarm = 1 then '报警'
|
||||||
when a.work_height_lower_alarm = 2 then '预警'
|
when a.work_height_lower_alarm = 2 then '预警'
|
||||||
else '正常' end) work_height_lower_alarm_name,
|
else '正常' end) work_height_lower_alarm_name,
|
||||||
(case when a.work_pos_angle_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_pos_angle_alarm = 1 then '报警'
|
||||||
when a.work_pos_angle_alarm = 2 then '预警'
|
when a.work_pos_angle_alarm = 2 then '预警'
|
||||||
else '正常' end) work_pos_angle_alarm_name,
|
else '正常' end) work_pos_angle_alarm_name,
|
||||||
(case when a.work_neg_angle_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_neg_angle_alarm = 1 then '报警'
|
||||||
when a.work_neg_angle_alarm = 2 then '预警'
|
when a.work_neg_angle_alarm = 2 then '预警'
|
||||||
else '正常' end) work_neg_angle_alarm_name,
|
else '正常' end) work_neg_angle_alarm_name,
|
||||||
(case when a.work_moment_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_moment_alarm = 1 then '报警'
|
||||||
when a.work_moment_alarm = 2 then '预警'
|
when a.work_moment_alarm = 2 then '预警'
|
||||||
else '正常' end) work_moment_alarm_name,
|
else '正常' end) work_moment_alarm_name,
|
||||||
(case when a.work_obliguity_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_obliguity_alarm = 1 then '报警'
|
||||||
when a.work_obliguity_alarm = 2 then '预警'
|
when a.work_obliguity_alarm = 2 then '预警'
|
||||||
else '正常' end) work_obliguity_alarm_name,
|
else '正常' end) work_obliguity_alarm_name,
|
||||||
(case when a.work_environment_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_environment_alarm = 1 then '报警'
|
||||||
when a.work_environment_alarm = 2 then '预警'
|
when a.work_environment_alarm = 2 then '预警'
|
||||||
else '正常' end) work_environment_alarm_name,
|
else '正常' end) work_environment_alarm_name,
|
||||||
(case when a.work_multi_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_multi_alarm = 1 then '报警'
|
||||||
when a.work_multi_alarm = 2 then '预警'
|
when a.work_multi_alarm = 2 then '预警'
|
||||||
else '正常' end) work_multi_alarm_name,
|
else '正常' end) work_multi_alarm_name,
|
||||||
(case when a.work_moment_pre_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_moment_pre_alarm = 1 then '报警'
|
||||||
when a.work_moment_pre_alarm = 2 then '预警'
|
when a.work_moment_pre_alarm = 2 then '预警'
|
||||||
else '正常' end) work_moment_pre_alarm_name,
|
else '正常' end) work_moment_pre_alarm_name,
|
||||||
(case when a.work_wind_speed_alarm=1 then '报警'
|
(case
|
||||||
|
when a.work_wind_speed_alarm = 1 then '报警'
|
||||||
when a.work_wind_speed_alarm = 2 then '预警'
|
when a.work_wind_speed_alarm = 2 then '预警'
|
||||||
else '正常' end) work_wind_speed_alarm_name
|
else '正常' end) work_wind_speed_alarm_name
|
||||||
from tower_work_cycle a
|
from tower_work_cycle a
|
||||||
@ -98,7 +111,8 @@
|
|||||||
order by a.add_time desc
|
order by a.add_time desc
|
||||||
</select>
|
</select>
|
||||||
<select id="selectTowerLoadAndMileageCount" resultType="java.util.Map">
|
<select id="selectTowerLoadAndMileageCount" resultType="java.util.Map">
|
||||||
SELECT a.dev_sn devSn,count(1) cycleNum,
|
SELECT a.dev_sn devSn,
|
||||||
|
count(1) cycleNum,
|
||||||
IFNULL(SUM(loading), 0) totalLoading,
|
IFNULL(SUM(loading), 0) totalLoading,
|
||||||
IFNULL(SUM((ABS(sling_start_height - sling_end_height) + max_range)), 0) totalWorkMileage
|
IFNULL(SUM((ABS(sling_start_height - sling_end_height) + max_range)), 0) totalWorkMileage
|
||||||
FROM tower_work_cycle a
|
FROM tower_work_cycle a
|
||||||
@ -110,26 +124,28 @@
|
|||||||
AND a.end_time <= CONCAT(DATE_FORMAT(#{endTime}, '%Y-%m-%d'), ' 23:59:59')
|
AND a.end_time <= CONCAT(DATE_FORMAT(#{endTime}, '%Y-%m-%d'), ' 23:59:59')
|
||||||
</if>
|
</if>
|
||||||
group by a.dev_sn
|
group by a.dev_sn
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
<select id="selectTowerRunDataCount" resultType="java.util.Map">
|
<select id="selectTowerRunDataCount" resultType="java.util.Map">
|
||||||
select count(1) cycleNum,
|
select count(1) cycleNum,
|
||||||
IFNULL(SUM(loading), 0) totalLoading,
|
IFNULL(SUM(loading), 0) totalLoading,
|
||||||
IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0) timeNum,
|
IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0) timeNum,
|
||||||
round(IFNULL(TRUNCATE(IFNULL(SUM(loading),0)/IFNULL(SUM(TIMESTAMPDIFF(MINUTE,a.start_time,a.end_time)),0),4),0)*100,2) effectRatio
|
round(IFNULL(TRUNCATE(IFNULL(SUM(loading), 0) /
|
||||||
|
IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0), 4), 0) * 100,
|
||||||
|
2) effectRatio
|
||||||
FROM tower_work_cycle a
|
FROM tower_work_cycle a
|
||||||
WHERE a.project_sn = #{projectSn}
|
WHERE a.project_sn = #{projectSn}
|
||||||
<if test="devSn != null and devSn != ''">
|
<if test="devSn != null and devSn != ''">
|
||||||
and a.dev_sn = #{devSn}
|
and a.dev_sn = #{devSn}
|
||||||
</if>
|
</if>
|
||||||
AND a.start_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
AND a.start_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
<select id="selectYesterdayTowerRunDataCount" resultType="java.util.Map">
|
<select id="selectYesterdayTowerRunDataCount" resultType="java.util.Map">
|
||||||
select count(1) cycleNum,
|
select count(1) cycleNum,
|
||||||
IFNULL(SUM(loading), 0) totalLoading,
|
IFNULL(SUM(loading), 0) totalLoading,
|
||||||
IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0) timeNum,
|
IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0) timeNum,
|
||||||
round(IFNULL(TRUNCATE(IFNULL(SUM(loading),0)/IFNULL(SUM(TIMESTAMPDIFF(MINUTE,a.start_time,a.end_time)),0),4),0)*100,2) effectRatio
|
round(IFNULL(TRUNCATE(IFNULL(SUM(loading), 0) /
|
||||||
|
IFNULL(SUM(TIMESTAMPDIFF(MINUTE, a.start_time, a.end_time)), 0), 4), 0) * 100,
|
||||||
|
2) effectRatio
|
||||||
FROM tower_work_cycle a
|
FROM tower_work_cycle a
|
||||||
WHERE a.project_sn = #{projectSn}
|
WHERE a.project_sn = #{projectSn}
|
||||||
<if test="devSn != null and devSn != ''">
|
<if test="devSn != null and devSn != ''">
|
||||||
@ -142,12 +158,19 @@
|
|||||||
|
|
||||||
<select id="selectTowerCycleTotalCount" resultType="java.util.Map" parameterType="map">
|
<select id="selectTowerCycleTotalCount" resultType="java.util.Map" parameterType="map">
|
||||||
select tp.*,
|
select tp.*,
|
||||||
round(IFNULL(TRUNCATE((IFNULL(todayCycleNum,0)-IFNULL(yesterdayCycleNum,0))/IFNULL(yesterdayCycleNum,0),4),0)*100,2) ringRatio
|
round(IFNULL(TRUNCATE((IFNULL(todayCycleNum, 0) - IFNULL(yesterdayCycleNum, 0)) /
|
||||||
|
IFNULL(yesterdayCycleNum, 0), 4), 0) * 100, 2) ringRatio
|
||||||
from (
|
from (
|
||||||
SELECT count(1) cycleNum,
|
SELECT count(1) cycleNum,
|
||||||
IFNULL(SUM((CASE WHEN DATE_FORMAT(w1.start_time,'%Y-%m-%d')=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY),'%Y-%m-%d') THEN 1 ELSE 0 END)),0) yesterdayCycleNum,
|
IFNULL(SUM((CASE
|
||||||
IFNULL(SUM((CASE WHEN DATE_FORMAT(w1.start_time,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d') THEN 1 ELSE 0 END)),0) todayCycleNum
|
WHEN DATE_FORMAT(w1.start_time, '%Y-%m-%d') =
|
||||||
from tower_work_cycle w1 INNER JOIN project a ON w1.project_sn=a.project_sn
|
DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y-%m-%d') THEN 1
|
||||||
|
ELSE 0 END)), 0) yesterdayCycleNum,
|
||||||
|
IFNULL(SUM((CASE
|
||||||
|
WHEN DATE_FORMAT(w1.start_time, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d') THEN 1
|
||||||
|
ELSE 0 END)), 0) todayCycleNum
|
||||||
|
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 cp ON a.company_sn = cp.company_sn
|
||||||
INNER JOIN company b ON cp.parent_id = b.company_id
|
INNER JOIN company b ON cp.parent_id = b.company_id
|
||||||
Left JOIN company f ON b.parent_id = f.company_id
|
Left JOIN company f ON b.parent_id = f.company_id
|
||||||
@ -172,7 +195,8 @@
|
|||||||
|
|
||||||
<select id="selectWeekTowerCycleList" resultType="java.util.Map" parameterType="map">
|
<select id="selectWeekTowerCycleList" resultType="java.util.Map" parameterType="map">
|
||||||
SELECT count(1) cycleNum, DATE_FORMAT(w1.start_time, "%Y-%m-%d") titleName
|
SELECT count(1) cycleNum, DATE_FORMAT(w1.start_time, "%Y-%m-%d") titleName
|
||||||
from tower_work_cycle w1 INNER JOIN project a ON w1.project_sn=a.project_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 cp ON a.company_sn = cp.company_sn
|
||||||
INNER JOIN company b ON cp.parent_id = b.company_id
|
INNER JOIN company b ON cp.parent_id = b.company_id
|
||||||
Left JOIN company f ON b.parent_id = f.company_id
|
Left JOIN company f ON b.parent_id = f.company_id
|
||||||
@ -198,21 +222,27 @@
|
|||||||
<select id="selectProjectTowerWorkCycleCountList" resultType="java.util.Map">
|
<select id="selectProjectTowerWorkCycleCountList" resultType="java.util.Map">
|
||||||
SELECT count(1) cycleNum
|
SELECT count(1) cycleNum
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
,f.company_name name,f.company_sn sn
|
, f.company_name name
|
||||||
|
, f.company_sn sn
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '2'.toString()">
|
<if test="companyType == '2'.toString()">
|
||||||
,b.company_name name,b.company_sn sn
|
, b.company_name name
|
||||||
|
, b.company_sn sn
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '3'.toString()">
|
<if test="companyType == '3'.toString()">
|
||||||
,cp.company_name name,cp.company_sn sn
|
, cp.company_name name
|
||||||
|
, cp.company_sn sn
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '4'.toString()">
|
<if test="companyType == '4'.toString()">
|
||||||
,a.project_name name,a.project_sn sn
|
, a.project_name name
|
||||||
|
, a.project_sn sn
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '5'.toString()">
|
<if test="companyType == '5'.toString()">
|
||||||
,a.project_name name,a.project_sn sn
|
, a.project_name name
|
||||||
|
, a.project_sn sn
|
||||||
</if>
|
</if>
|
||||||
from tower_work_cycle w1 INNER JOIN project a ON w1.project_sn=a.project_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 cp ON a.company_sn = cp.company_sn
|
||||||
INNER JOIN company b ON cp.parent_id = b.company_id
|
INNER JOIN company b ON cp.parent_id = b.company_id
|
||||||
Left JOIN company f ON b.parent_id = f.company_id
|
Left JOIN company f ON b.parent_id = f.company_id
|
||||||
@ -226,6 +256,7 @@
|
|||||||
GROUP BY b.company_id
|
GROUP BY b.company_id
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '3'.toString()">
|
<if test="companyType == '3'.toString()">
|
||||||
|
|
||||||
and b.company_sn=#{sn}
|
and b.company_sn=#{sn}
|
||||||
GROUP BY cp.company_id
|
GROUP BY cp.company_id
|
||||||
</if>
|
</if>
|
||||||
@ -241,8 +272,10 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="selectAllProjectTowerWorkCycletList" resultType="java.util.Map">
|
<select id="selectAllProjectTowerWorkCycletList" resultType="java.util.Map">
|
||||||
SELECT count(1) cycleNum
|
SELECT count(1) cycleNum
|
||||||
,a.project_name name,a.project_sn sn
|
, a.project_name name
|
||||||
from tower_work_cycle w1 INNER JOIN project a ON w1.project_sn=a.project_sn
|
, 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 cp ON a.company_sn = cp.company_sn
|
||||||
INNER JOIN company b ON cp.parent_id = b.company_id
|
INNER JOIN company b ON cp.parent_id = b.company_id
|
||||||
Left JOIN company f ON b.parent_id = f.company_id
|
Left JOIN company f ON b.parent_id = f.company_id
|
||||||
@ -265,4 +298,31 @@
|
|||||||
group by w1.project_sn
|
group by w1.project_sn
|
||||||
order by cycleNum desc
|
order by cycleNum desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getCurrentDriver" resultType="com.zhgd.xmgl.modules.bigdevice.entity.vo.DriverVO">
|
||||||
|
select
|
||||||
|
wi.worker_name,
|
||||||
|
wi.phone_number,
|
||||||
|
(SELECT certificate_number
|
||||||
|
FROM `worker_certificate`
|
||||||
|
WHERE worker_id = wi.id
|
||||||
|
AND certificate_type = 108
|
||||||
|
ORDER BY effect_time DESC
|
||||||
|
LIMIT 1) special_certificate_number,
|
||||||
|
wi.field_acquisition_url image_url,
|
||||||
|
wi.sex,
|
||||||
|
TIMESTAMPDIFF(YEAR, wi.birthday, CURDATE()) as age,
|
||||||
|
TIMESTAMPDIFF(YEAR, wi.enter_date, CURDATE()) as workYear,
|
||||||
|
(SELECT IFNULL(a.work_time, 0) continuous_working_time
|
||||||
|
FROM lifter_work_cycle a
|
||||||
|
WHERE a.driver_id_card = wi.id_card
|
||||||
|
ORDER BY a.add_time DESC
|
||||||
|
LIMIT 1) continuous_working_time,
|
||||||
|
wi.id_card
|
||||||
|
from tower_work_cycle l
|
||||||
|
left join worker_info wi on l.driver_id_card = wi.id_card
|
||||||
|
where l.dev_sn = #{devSn}
|
||||||
|
ORDER BY l.add_time desc
|
||||||
|
LIMIT 1
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -1,15 +1,11 @@
|
|||||||
package com.zhgd.xmgl.modules.bigdevice.service;
|
package com.zhgd.xmgl.modules.bigdevice.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
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.Lifter;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.entity.LifterAlarm;
|
import com.zhgd.xmgl.modules.bigdevice.entity.LifterAlarm;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.entity.LifterViolation;
|
import com.zhgd.xmgl.modules.bigdevice.entity.LifterViolation;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.entity.dto.LifterDto;
|
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.*;
|
||||||
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 java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -30,7 +26,7 @@ public interface ILifterService extends IService<Lifter> {
|
|||||||
|
|
||||||
Lifter queryById(String id);
|
Lifter queryById(String id);
|
||||||
|
|
||||||
Map<String, Object> selectLifterBySn(Map<String, Object> map);
|
LifterBySnVo selectLifterBySn(Map<String, Object> map);
|
||||||
|
|
||||||
void updateLifterCoordinate(List<Lifter> list);
|
void updateLifterCoordinate(List<Lifter> list);
|
||||||
|
|
||||||
|
|||||||
@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.entity.Tower;
|
import com.zhgd.xmgl.modules.bigdevice.entity.Tower;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.entity.TowerAlarm;
|
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.*;
|
||||||
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 java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -33,7 +30,7 @@ public interface ITowerService extends IService<Tower> {
|
|||||||
|
|
||||||
Tower queryById(String id);
|
Tower queryById(String id);
|
||||||
|
|
||||||
Map<String, Object> selectTowerBySn(Map<String, Object> map);
|
TowerBySnVo selectTowerBySn(Map<String, Object> map);
|
||||||
|
|
||||||
List<EntityMap> selectTowerList(Map<String, Object> map);
|
List<EntityMap> selectTowerList(Map<String, Object> map);
|
||||||
|
|
||||||
|
|||||||
@ -203,7 +203,7 @@ public class LifterAlarmServiceImpl extends ServiceImpl<LifterAlarmMapper, Lifte
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AlarmsDistinguishedNumberByAlarmType queryAlarmsDistinguishedNumberByAlarmType(Map<String, Object> map) {
|
public AlarmsDistinguishedNumberByAlarmType queryAlarmsDistinguishedNumberByAlarmType(Map<String, Object> 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();
|
String queryStartTime = map.getOrDefault("queryStartTime", DateUtil.offsetDay(new Date(), -7)).toString();
|
||||||
map.putIfAbsent("queryEndTime", queryEndTime);
|
map.putIfAbsent("queryEndTime", queryEndTime);
|
||||||
map.putIfAbsent("queryStartTime", queryStartTime);
|
map.putIfAbsent("queryStartTime", queryStartTime);
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.text.CharSequenceUtil;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
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.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@ -29,7 +32,10 @@ import org.springframework.util.StringUtils;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
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;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,6 +48,8 @@ import java.util.stream.Collectors;
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class LifterServiceImpl extends ServiceImpl<LifterMapper, Lifter> implements ILifterService {
|
public class LifterServiceImpl extends ServiceImpl<LifterMapper, Lifter> implements ILifterService {
|
||||||
|
@Autowired
|
||||||
|
private TowerWorkCycleMapper towerWorkCycleMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private LifterViolationMapper lifterViolationMapper;
|
private LifterViolationMapper lifterViolationMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -176,15 +184,17 @@ public class LifterServiceImpl extends ServiceImpl<LifterMapper, Lifter> impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> selectLifterBySn(Map<String, Object> map) {
|
public LifterBySnVo selectLifterBySn(Map<String, Object> map) {
|
||||||
Map<String, Object> data = new HashMap<>();
|
|
||||||
Lifter lifter = lifterMapper.selectLifterByDevSn(map);
|
Lifter lifter = lifterMapper.selectLifterByDevSn(map);
|
||||||
data.put("lifter", lifter);
|
|
||||||
List<EntityMap> videoList = bigDeviceVideoMapper.selectLifterVideoList(map);
|
List<EntityMap> videoList = bigDeviceVideoMapper.selectLifterVideoList(map);
|
||||||
List<EntityMap> driverList = bigDeviceDriverRecordMapper.selectLifterDriverList(map);
|
List<EntityMap> driverList = bigDeviceDriverRecordMapper.selectLifterDriverList(map);
|
||||||
data.put("videoList", videoList);
|
DriverVO currentDriver = lifterWorkCycleMapper.getCurrentDriver(map);
|
||||||
data.put("driverList", driverList);
|
LifterBySnVo vo = new LifterBySnVo();
|
||||||
return data;
|
vo.setVideoList(videoList);
|
||||||
|
vo.setLifter(lifter);
|
||||||
|
vo.setDriverList(driverList);
|
||||||
|
vo.setCurrentDriver(currentDriver);
|
||||||
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -318,17 +328,12 @@ public class LifterServiceImpl extends ServiceImpl<LifterMapper, Lifter> impleme
|
|||||||
@Override
|
@Override
|
||||||
public LifterAndDataInfoVO getRelatedInfo(String devSn) {
|
public LifterAndDataInfoVO getRelatedInfo(String devSn) {
|
||||||
log.info("调用getRelatedInfo方法,请求参数:{}", devSn);
|
log.info("调用getRelatedInfo方法,请求参数:{}", devSn);
|
||||||
|
|
||||||
Lifter lifter = lifterMapper.getLifterAndDriverInfo(devSn);
|
Lifter lifter = lifterMapper.getLifterAndDriverInfo(devSn);
|
||||||
|
|
||||||
|
|
||||||
log.info("getRelatedInfo升降机信息:{}", lifter);
|
log.info("getRelatedInfo升降机信息:{}", lifter);
|
||||||
|
|
||||||
if (lifter == null) {
|
if (lifter == null) {
|
||||||
log.error("无对应升降机编号设备!设备编号为:{}", devSn);
|
log.error("无对应升降机编号设备!设备编号为:{}", devSn);
|
||||||
throw new NullPointerException("无对应升降机编号设备!!");
|
throw new NullPointerException("无对应升降机编号设备!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
LifterCurrentData newData = redisRepository.getOrSet("lifterCurrentData" + lifter.getProjectSn() + lifter.getDevSn(), (() -> lifterCurrentDataMapper.getNewData(devSn)));
|
LifterCurrentData newData = redisRepository.getOrSet("lifterCurrentData" + lifter.getProjectSn() + lifter.getDevSn(), (() -> lifterCurrentDataMapper.getNewData(devSn)));
|
||||||
log.info("getRelatedInfo升降机实时数据信息:{}", newData);
|
log.info("getRelatedInfo升降机实时数据信息:{}", newData);
|
||||||
List<DriverVO> driverList = lifter.getDriverList().stream().map(driver -> {
|
List<DriverVO> driverList = lifter.getDriverList().stream().map(driver -> {
|
||||||
@ -343,9 +348,30 @@ public class LifterServiceImpl extends ServiceImpl<LifterMapper, Lifter> impleme
|
|||||||
driverVO.setImageUrl(driver.getImageUrl());
|
driverVO.setImageUrl(driver.getImageUrl());
|
||||||
return driverVO;
|
return driverVO;
|
||||||
}).collect(Collectors.toList());
|
}).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());
|
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<LifterWorkCycle>()
|
||||||
|
.eq(LifterWorkCycle::getDevSn, devWorker.getDevSn())
|
||||||
|
.orderByDesc(LifterWorkCycle::getAddTime)
|
||||||
|
.last("limit 1"));
|
||||||
|
if (lwc != null && StrUtil.isNotBlank(lwc.getDriverIdCard())) {
|
||||||
|
List<DriverVO> 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 != null) {
|
||||||
if (newData.getHeightRatio() != null) {
|
if (newData.getHeightRatio() != null) {
|
||||||
lifterDataInfo.setHeightRatio(newData.getHeightRatio());
|
lifterDataInfo.setHeightRatio(newData.getHeightRatio());
|
||||||
@ -368,7 +394,6 @@ public class LifterServiceImpl extends ServiceImpl<LifterMapper, Lifter> impleme
|
|||||||
.setSpeed(newDataSpeed).setReciveTime(newData.getReciveTime()).setWindSpeed(newData.getWindSpeed())
|
.setSpeed(newDataSpeed).setReciveTime(newData.getReciveTime()).setWindSpeed(newData.getWindSpeed())
|
||||||
.setLoading(newData.getLoading()).setFallAlarm(newData.getFallAlarm()).setBottomAlarm(newData.getBottomAlarm());
|
.setLoading(newData.getLoading()).setFallAlarm(newData.getFallAlarm()).setBottomAlarm(newData.getBottomAlarm());
|
||||||
}
|
}
|
||||||
return new LifterAndDataInfoVO(lifterDataInfo, devWorker);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
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.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
@ -61,6 +62,15 @@ public class LifterWorkCycleServiceImpl extends ServiceImpl<LifterWorkCycleMappe
|
|||||||
if (lifter == null) {
|
if (lifter == null) {
|
||||||
throw new OpenAlertException(MessageUtil.get("EquipmentNumIncorrectErr"));
|
throw new OpenAlertException(MessageUtil.get("EquipmentNumIncorrectErr"));
|
||||||
}
|
}
|
||||||
|
String st = lifterWorkCycle.getStartTime();
|
||||||
|
String et = lifterWorkCycle.getEndTime();
|
||||||
|
if (StringUtils.isNotBlank(st) && StringUtils.isNotBlank(et)) {
|
||||||
|
Date startTime = DateUtil.parseDateTime(st);
|
||||||
|
Date endTime = DateUtil.parseDateTime(et);
|
||||||
|
if (StringUtils.isBlank(lifterWorkCycle.getWorkTime())) {
|
||||||
|
lifterWorkCycle.setWorkTime(String.valueOf(DateUtil.between(startTime, endTime, DateUnit.SECOND)));
|
||||||
|
}
|
||||||
|
}
|
||||||
lifterWorkCycle.setDevName(lifter.getDevName());
|
lifterWorkCycle.setDevName(lifter.getDevName());
|
||||||
lifterWorkCycle.setAddTime(new Date());
|
lifterWorkCycle.setAddTime(new Date());
|
||||||
lifterWorkCycle.setProjectSn(lifter.getProjectSn());
|
lifterWorkCycle.setProjectSn(lifter.getProjectSn());
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@ -149,39 +150,51 @@ public class TowerCurrentDataServiceImpl extends ServiceImpl<TowerCurrentDataMap
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取报警、预警名称
|
* 获取报警或预警名称
|
||||||
*
|
*
|
||||||
* @param towerCurrentData
|
* @param towerCurrentData
|
||||||
* @param type
|
* @param type
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String getAlarmName(TowerCurrentData towerCurrentData, Integer type) {
|
private String getAlarmName(TowerCurrentData towerCurrentData, Integer type) {
|
||||||
String rs = "";
|
List<String> rsList = new ArrayList<>();
|
||||||
if (Objects.equals(towerCurrentData.getMomentAlarm(), type)) {
|
if (Objects.equals(towerCurrentData.getMomentAlarm(), type)) {
|
||||||
rs = "力矩";
|
rsList.add("力矩");
|
||||||
} else if (Objects.equals(towerCurrentData.getWindSpeedAlarm(), type)) {
|
}
|
||||||
rs = "风速";
|
if (Objects.equals(towerCurrentData.getWindSpeedAlarm(), type)) {
|
||||||
} else if (Objects.equals(towerCurrentData.getHeightAlarm(), type)) {
|
rsList.add("风速");
|
||||||
rs = "高度上限位";
|
}
|
||||||
} else if (Objects.equals(towerCurrentData.getHeightLowerAlarm(), type)) {
|
if (Objects.equals(towerCurrentData.getHeightAlarm(), type)) {
|
||||||
rs = "高度下限位";
|
rsList.add("高度上限位");
|
||||||
} else if (Objects.equals(towerCurrentData.getMinRangeAlarm(), type)) {
|
}
|
||||||
rs = "幅度内限位";
|
if (Objects.equals(towerCurrentData.getHeightLowerAlarm(), type)) {
|
||||||
} else if (Objects.equals(towerCurrentData.getMaxRangeAlarm(), type)) {
|
rsList.add("高度下限位");
|
||||||
rs = "幅度外限位";
|
}
|
||||||
} else if (Objects.equals(towerCurrentData.getPosAngleAlarm(), type)) {
|
if (Objects.equals(towerCurrentData.getMinRangeAlarm(), type)) {
|
||||||
rs = "顺时针回转限位";
|
rsList.add("幅度内限位");
|
||||||
} else if (Objects.equals(towerCurrentData.getNegAngleAlarm(), type)) {
|
}
|
||||||
rs = "逆时针回转限位";
|
if (Objects.equals(towerCurrentData.getMaxRangeAlarm(), type)) {
|
||||||
} else if (Objects.equals(towerCurrentData.getObliguityAlarm(), type)) {
|
rsList.add("幅度外限位");
|
||||||
rs = "倾角";
|
}
|
||||||
} else if (Objects.equals(towerCurrentData.getObliguityXAlarm(), type)) {
|
if (Objects.equals(towerCurrentData.getPosAngleAlarm(), type)) {
|
||||||
rs = "倾角X";
|
rsList.add("顺时针回转限位");
|
||||||
} else if (Objects.equals(towerCurrentData.getObliguityYAlarm(), type)) {
|
}
|
||||||
rs = "倾角Y";
|
if (Objects.equals(towerCurrentData.getNegAngleAlarm(), type)) {
|
||||||
} else {
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
String rs = CollUtil.join(rsList, "、");
|
||||||
if (type == 1) {
|
if (type == 1) {
|
||||||
rs += "报警";
|
rs += "报警";
|
||||||
} else if (type == 2) {
|
} else if (type == 2) {
|
||||||
|
|||||||
@ -2,7 +2,9 @@ package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
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.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@ -227,17 +229,17 @@ public class TowerServiceImpl extends ServiceImpl<TowerMapper, Tower> implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> selectTowerBySn(Map<String, Object> map) {
|
public TowerBySnVo selectTowerBySn(Map<String, Object> map) {
|
||||||
Map<String, Object> data = new HashMap<>();
|
|
||||||
/*QueryWrapper<Tower> queryWrapper=new QueryWrapper<>();
|
|
||||||
queryWrapper.lambda().eq(Tower::getDevSn, MapUtils.getString(map,"devSn"));*/
|
|
||||||
Tower tower = towerMapper.selectTowerBySN(map);
|
Tower tower = towerMapper.selectTowerBySN(map);
|
||||||
data.put("tower", tower);
|
|
||||||
List<EntityMap> videoList = bigDeviceVideoMapper.selectTowerVideoList(map);
|
List<EntityMap> videoList = bigDeviceVideoMapper.selectTowerVideoList(map);
|
||||||
List<EntityMap> driverList = bigDeviceDriverRecordMapper.selectTowerDriverList(map);
|
List<EntityMap> driverList = bigDeviceDriverRecordMapper.selectTowerDriverList(map);
|
||||||
data.put("videoList", videoList);
|
DriverVO driverVO = towerWorkCycleMapper.getCurrentDriver(map);
|
||||||
data.put("driverList", driverList);
|
TowerBySnVo vo = new TowerBySnVo();
|
||||||
return data;
|
vo.setVideoList(videoList);
|
||||||
|
vo.setDriverList(driverList);
|
||||||
|
vo.setTower(tower);
|
||||||
|
vo.setCurrentDriver(driverVO);
|
||||||
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -465,17 +467,13 @@ public class TowerServiceImpl extends ServiceImpl<TowerMapper, Tower> implements
|
|||||||
@Override
|
@Override
|
||||||
public TowerAndDataInfoVO getRelatedInfo(String devSn) {
|
public TowerAndDataInfoVO getRelatedInfo(String devSn) {
|
||||||
log.info("调用getRelatedInfo方法,请求参数:{}", devSn);
|
log.info("调用getRelatedInfo方法,请求参数:{}", devSn);
|
||||||
|
|
||||||
Tower tower = towerMapper.getTowerAndDriverInfo(devSn);
|
Tower tower = towerMapper.getTowerAndDriverInfo(devSn);
|
||||||
if (tower == null) {
|
if (tower == null) {
|
||||||
log.error("无对应塔吊编号设备!设备编号为:{}", devSn);
|
log.error("无对应塔吊编号设备!设备编号为:{}", devSn);
|
||||||
throw new NullPointerException("无对应塔吊编号设备!!");
|
throw new NullPointerException("无对应塔吊编号设备!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
TowerCurrentData newData = redisRepository.getOrSet("towerCurrentData" + tower.getProjectSn() + tower.getDevSn(), (() -> towerCurrentDataMapper.getNewData(devSn)));
|
TowerCurrentData newData = redisRepository.getOrSet("towerCurrentData" + tower.getProjectSn() + tower.getDevSn(), (() -> towerCurrentDataMapper.getNewData(devSn)));
|
||||||
|
|
||||||
log.info("getRelatedInfo塔吊实时数据信息:{}", newData);
|
log.info("getRelatedInfo塔吊实时数据信息:{}", newData);
|
||||||
|
|
||||||
List<DriverVO> driverList = tower.getDriverList().stream().map(driver -> {
|
List<DriverVO> driverList = tower.getDriverList().stream().map(driver -> {
|
||||||
DriverVO driverVO = new DriverVO();
|
DriverVO driverVO = new DriverVO();
|
||||||
driverVO.setWorkerName(driver.getDriverName());
|
driverVO.setWorkerName(driver.getDriverName());
|
||||||
@ -488,19 +486,33 @@ public class TowerServiceImpl extends ServiceImpl<TowerMapper, Tower> implements
|
|||||||
driverVO.setIdCard(driver.getDriverIdCard());
|
driverVO.setIdCard(driver.getDriverIdCard());
|
||||||
return driverVO;
|
return driverVO;
|
||||||
}).collect(Collectors.toList());
|
}).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());
|
// double towerHeight = (tower.getTowerHeight() == null ? 0 : tower.getTowerHeight()) + (tower.getReferenceHeight() == null ? 0 : tower.getReferenceHeight());
|
||||||
|
|
||||||
TowerDataInfoDTO towerDataInfo = new TowerDataInfoDTO().setForearmLength(tower.getForearmLength()).setTowerHeight(tower.getTowerHeight());
|
TowerDataInfoDTO towerDataInfo = new TowerDataInfoDTO().setForearmLength(tower.getForearmLength()).setTowerHeight(tower.getTowerHeight());
|
||||||
if (newData != null) {
|
if (newData != null) {
|
||||||
towerDataInfo.setLoading(newData.getLoading()).setRanger(newData.getRanger()).setCurrentHeight(newData.getHeight())
|
towerDataInfo.setLoading(newData.getLoading()).setRanger(newData.getRanger()).setCurrentHeight(newData.getHeight())
|
||||||
.setAngle(newData.getAngle()).setTorqueRatio(newData.getTorqueRatio()).setLoadRatio(newData.getLoadRatio()).setReciveTime(newData.getReciveTime())
|
.setAngle(newData.getAngle()).setTorqueRatio(newData.getTorqueRatio()).setLoadRatio(newData.getLoadRatio()).setReciveTime(newData.getReciveTime())
|
||||||
.setObliguityX(newData.getObliguityX()).setObliguityY(newData.getObliguityY()).setWindspeed(newData.getWindspeed()).setTorque(newData.getTorque());
|
.setObliguityX(newData.getObliguityX()).setObliguityY(newData.getObliguityY()).setWindspeed(newData.getWindspeed()).setTorque(newData.getTorque());
|
||||||
}
|
}
|
||||||
|
setCurrentWorker(devWorker);
|
||||||
return new TowerAndDataInfoVO(towerDataInfo, devWorker);
|
return new TowerAndDataInfoVO(towerDataInfo, devWorker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setCurrentWorker(DevWorkerVO devWorker) {
|
||||||
|
TowerWorkCycle lwc = towerWorkCycleMapper.selectOne(new LambdaQueryWrapper<TowerWorkCycle>()
|
||||||
|
.eq(TowerWorkCycle::getDevSn, devWorker.getDevSn())
|
||||||
|
.orderByDesc(TowerWorkCycle::getAddTime)
|
||||||
|
.last("limit 1"));
|
||||||
|
if (lwc != null && StrUtil.isNotBlank(lwc.getDriverIdCard())) {
|
||||||
|
List<DriverVO> workerList = devWorker.getWorkerList();
|
||||||
|
if (CollUtil.isNotEmpty(workerList)) {
|
||||||
|
for (DriverVO driverVO : workerList) {
|
||||||
|
devWorker.setCurrentWorker(driverVO);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
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.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -72,6 +73,11 @@ public class TowerWorkCycleServiceImpl extends ServiceImpl<TowerWorkCycleMapper,
|
|||||||
}
|
}
|
||||||
towerWorkCycle.setDevName(tower.getDevName());
|
towerWorkCycle.setDevName(tower.getDevName());
|
||||||
towerWorkCycle.setAddTime(new Date());
|
towerWorkCycle.setAddTime(new Date());
|
||||||
|
Date startTime = towerWorkCycle.getStartTime();
|
||||||
|
Date endTime = towerWorkCycle.getEndTime();
|
||||||
|
if (StringUtils.isBlank(towerWorkCycle.getWorkTime()) && startTime != null && endTime != null) {
|
||||||
|
towerWorkCycle.setWorkTime(String.valueOf(DateUtil.between(startTime, endTime, DateUnit.SECOND)));
|
||||||
|
}
|
||||||
towerWorkCycle.setProjectSn(tower.getProjectSn());
|
towerWorkCycle.setProjectSn(tower.getProjectSn());
|
||||||
towerWorkCycleMapper.insert(towerWorkCycle);
|
towerWorkCycleMapper.insert(towerWorkCycle);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ 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 com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -38,7 +39,6 @@ public class VideoItem implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@Excel(name = "视频所属配置id", width = 15)
|
@Excel(name = "视频所属配置id", width = 15)
|
||||||
@ApiModelProperty(value = "视频所属配置id")
|
@ApiModelProperty(value = "视频所属配置id")
|
||||||
|
|
||||||
private java.lang.Long videoId;
|
private java.lang.Long videoId;
|
||||||
/**
|
/**
|
||||||
* 视频设备名称
|
* 视频设备名称
|
||||||
|
|||||||
@ -202,9 +202,11 @@ public class WorkerAttendanceController {
|
|||||||
return Result.success(workerAttendanceService.queryTodayAttendanceTrend(map));
|
return Result.success(workerAttendanceService.queryTodayAttendanceTrend(map));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "查询最近一周的出勤人数趋势", notes = "查询最近一周的出勤人数趋势", httpMethod = "GET")
|
@ApiOperation(value = "查询最近一周的出勤人数趋势", notes = "查询最近一周的出勤人数趋势(时间不传就默认查一周的)", httpMethod = "GET")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "projectSn", value = "项目唯一标识", dataType = "String", paramType = "query", required = true),
|
@ApiImplicitParam(name = "projectSn", value = "项目唯一标识", dataType = "String", paramType = "query", required = true),
|
||||||
|
@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"),
|
||||||
})
|
})
|
||||||
@GetMapping(value = "/queryAttendanceTrendOfTheLastWeek")
|
@GetMapping(value = "/queryAttendanceTrendOfTheLastWeek")
|
||||||
public Result<List<NumberTimeTableVo>> queryAttendanceTrendOfTheLastWeek(@RequestParam Map<String, Object> map) {
|
public Result<List<NumberTimeTableVo>> queryAttendanceTrendOfTheLastWeek(@RequestParam Map<String, Object> map) {
|
||||||
|
|||||||
@ -772,20 +772,24 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryAttendanceTrendOfTheLastWeek" resultType="com.zhgd.xmgl.entity.vo.NumberTimeTableVo">
|
<select id="queryAttendanceTrendOfTheLastWeek" resultType="com.zhgd.xmgl.entity.vo.NumberTimeTableVo">
|
||||||
SELECT count(t1.daytime) num, t1.daytime time
|
SELECT count(t1.daytime) num, DATE_FORMAT(t1.daytime, '%m-%d') time
|
||||||
FROM (
|
FROM (
|
||||||
SELECT wa.create_time,
|
SELECT wa.create_time,
|
||||||
DATE_FORMAT(wa.create_time, '%m-%d') daytime,
|
DATE_FORMAT(wa.create_time,'%Y-%m-%d') daytime,
|
||||||
wa.person_sn
|
wa.person_sn
|
||||||
FROM worker_attendance wa
|
FROM worker_attendance wa
|
||||||
JOIN worker_info wi ON wi.person_sn = wa.person_sn
|
JOIN worker_info wi ON wi.person_sn = wa.person_sn
|
||||||
WHERE DATE_FORMAT(wa.create_time, '%Y-%m-%d') >= #{beforeSevenDay}
|
WHERE 1 = 1
|
||||||
and DATE_FORMAT(wa.create_time, '%Y-%m-%d') <![CDATA[<=]]> #{today}
|
<if test="queryStartTime != null and queryStartTime != ''">
|
||||||
|
and DATE_FORMAT(wa.create_time, '%Y-%m-%d') >= #{queryStartTime}
|
||||||
|
</if>
|
||||||
|
<if test="queryEndTime != null and queryEndTime != ''">
|
||||||
|
and DATE_FORMAT(wa.create_time, '%Y-%m-%d') <![CDATA[<=]]> #{queryEndTime}
|
||||||
|
</if>
|
||||||
and wa.project_sn = #{projectSn}
|
and wa.project_sn = #{projectSn}
|
||||||
AND wi.inService_type = 1
|
AND wi.inService_type = 1
|
||||||
GROUP BY DATE_FORMAT(
|
GROUP BY daytime, wa.person_sn
|
||||||
wa.create_time,
|
ORDER BY daytime
|
||||||
'%Y-%m-%d'), wa.person_sn
|
|
||||||
) t1
|
) t1
|
||||||
GROUP BY t1.daytime
|
GROUP BY t1.daytime
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
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.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.async.AsyncSendAttendance;
|
import com.zhgd.xmgl.async.AsyncSendAttendance;
|
||||||
import com.zhgd.xmgl.entity.vo.AttendanceOfEachCompanyVo;
|
import com.zhgd.xmgl.entity.vo.AttendanceOfEachCompanyVo;
|
||||||
@ -1027,16 +1028,29 @@ status 状态码 String 1表示成功;其余表示失败
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<NumberTimeTableVo> queryAttendanceTrendOfTheLastWeek(Map<String, Object> map) {
|
public List<NumberTimeTableVo> queryAttendanceTrendOfTheLastWeek(Map<String, Object> map) {
|
||||||
Date now = new Date();
|
if (StringUtils.isBlank(MapUtils.getString(map, "queryStartTime")) || StringUtils.isBlank(MapUtils.getString(map, "queryEndTime"))) {
|
||||||
String beforeSevenDay = DateUtil.format(DateUtil.offsetDay(now, -7), "yyyy-MM-dd");
|
throw new OpenAlertException("queryStartTime和queryEndTime都不能为空");
|
||||||
String today = DateUtil.format(now, "yyyy-MM-dd");
|
}
|
||||||
map.put("beforeSevenDay", beforeSevenDay);
|
|
||||||
map.put("today", today);
|
|
||||||
List<NumberTimeTableVo> attendances = workerAttendanceMapper.queryAttendanceTrendOfTheLastWeek(map);
|
List<NumberTimeTableVo> attendances = workerAttendanceMapper.queryAttendanceTrendOfTheLastWeek(map);
|
||||||
completeData(attendances);
|
completeData(attendances, map);
|
||||||
return attendances;
|
return attendances;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void completeData(List<NumberTimeTableVo> attendances, Map<String, Object> map) {
|
||||||
|
Map<String, NumberTimeTableVo> timeMap = attendances.stream().collect(Collectors.toMap(NumberTimeTableVo::getTime, o -> o));
|
||||||
|
attendances.clear();
|
||||||
|
List<String> 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
|
@Override
|
||||||
public AttendanceOfEachCompanyVo queryAttendanceOfEachCompany(Map<String, Object> map) {
|
public AttendanceOfEachCompanyVo queryAttendanceOfEachCompany(Map<String, Object> map) {
|
||||||
//统计各企业出勤人数
|
//统计各企业出勤人数
|
||||||
@ -1048,21 +1062,6 @@ status 状态码 String 1表示成功;其余表示失败
|
|||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void completeData(List<NumberTimeTableVo> attendances) {
|
|
||||||
Map<String, NumberTimeTableVo> timeMap = attendances.stream().collect(Collectors.toMap(NumberTimeTableVo::getTime, o -> o));
|
|
||||||
attendances.clear();
|
|
||||||
List<String> 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) {
|
public WorkerInfo getWorkerInfoByImage(String personImage, String projectSn) {
|
||||||
WorkerInfo info = null;
|
WorkerInfo info = null;
|
||||||
File file = null;
|
File file = null;
|
||||||
|
|||||||
@ -483,6 +483,24 @@ public class DateUtil extends cn.hutool.core.date.DateUtil {
|
|||||||
return rtList;
|
return rtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询指定天数内所有天数列表, 返回:如:[07-30, 07-31]
|
||||||
|
*
|
||||||
|
* @param queryStartTime 2023-07-31
|
||||||
|
* @param queryEndTime 2023-07-31
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static List<String> getBetweenDays(String queryStartTime, String queryEndTime) {
|
||||||
|
ArrayList<String> 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
|
* 查询一个周前内所有天数,如:06-10到06-17
|
||||||
*
|
*
|
||||||
@ -516,6 +534,6 @@ public class DateUtil extends cn.hutool.core.date.DateUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.out.println(getHoursListLastDay());
|
System.out.println(getBetweenDays("2023-07-30", "2023-07-31"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user