bug修复

This commit is contained in:
guo 2024-01-12 11:16:17 +08:00
parent 0d5211a40e
commit c3436cf596
13 changed files with 78 additions and 25 deletions

View File

@ -2,6 +2,7 @@ package com.zhgd.netty.udp;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zhgd.xmgl.modules.location.entity.LocationData; import com.zhgd.xmgl.modules.location.entity.LocationData;
@ -73,7 +74,12 @@ public class UDPServerHandler extends SimpleChannelInboundHandler<DatagramPacket
locationData.setCardno(cardno); locationData.setCardno(cardno);
locationData.setPersonName(workerInfos.get(0).getWorkerName()); locationData.setPersonName(workerInfos.get(0).getWorkerName());
//算出洞口的距离 //算出洞口的距离
locationData.setInlX(Double.valueOf(inlX) + 271); locationData.setInlX(Double.parseDouble(inlX) + 271);
try {
locationData.setPY((double) RandomUtil.randomInt(locationTunnel.getYValueRandomRangeStart(), locationTunnel.getYValueRandomRangeEnd()));
} catch (Exception e) {
locationData.setPY(Double.valueOf(locationTunnel.getYValueRandomRangeStart()));
}
locationData.setAlarm(0); locationData.setAlarm(0);
locationData.setProjectSn(projectSn); locationData.setProjectSn(projectSn);
locationData.setRealtimeId(realtimeId); locationData.setRealtimeId(realtimeId);

View File

@ -1,5 +0,0 @@
package com.zhgd.xmgl.constant;
public interface DictConstant {
String AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE = "ai_analyse_hard_ware_alarm_record_type";
}

View File

@ -0,0 +1,7 @@
package com.zhgd.xmgl.modules.basicdata.constant;
public interface DictionaryConstant {
String PROJECT_CONSTRUCTION_STAGE = "project_construction_stage";
String AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE = "ai_analyse_hard_ware_alarm_record_type";
String LOCATION_DATA_PROJECT_SN_DISAPPEAR_TIME = "location_data_project_sn_disappear_time";
}

View File

@ -1,5 +0,0 @@
package com.zhgd.xmgl.modules.basicdata.constant;
public interface DictionaryItemConstant {
String PROJECT_CONSTRUCTION_STAGE = "project_construction_stage";
}

View File

@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhgd.xmgl.modules.basicdata.entity.DictionariesRecord; import com.zhgd.xmgl.modules.basicdata.entity.DictionariesRecord;
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem; import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface DictionaryItemMapper extends BaseMapper<DictionaryItem> { public interface DictionaryItemMapper extends BaseMapper<DictionaryItem> {
DictionaryItem getLocationDataDisappearTimeByProjectSn(@Param("projectSn") String projectSn, @Param("dictionaryEncoding") String dictionaryEncoding);
} }

View File

@ -1,4 +1,11 @@
<?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.basicdata.mapper.DictionaryItemMapper"> <mapper namespace="com.zhgd.xmgl.modules.basicdata.mapper.DictionaryItemMapper">
<select id="getLocationDataDisappearTimeByProjectSn"
resultType="com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem">
select * from dictionary_item
where dictionary_encoding=#{dictionaryEncoding}
and is_enable=1
and find_in_set(#{projectSn},data)
</select>
</mapper> </mapper>

View File

@ -9,7 +9,13 @@ import java.util.List;
public interface IDictionaryItemService extends IService<DictionaryItem> { public interface IDictionaryItemService extends IService<DictionaryItem> {
public List<DictionaryItem> getDictList(String dictionaryEncoding); /**
* 查询基础字典信息列表查启用的
*
* @param dictionaryEncoding
* @return
*/
List<DictionaryItem> getDictList(String dictionaryEncoding);
void add(DictionaryItem dictionaryItem); void add(DictionaryItem dictionaryItem);

View File

@ -5,7 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryItemConstant; import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant;
import com.zhgd.xmgl.modules.basicdata.entity.Dictionary; import com.zhgd.xmgl.modules.basicdata.entity.Dictionary;
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem; import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
import com.zhgd.xmgl.modules.basicdata.mapper.DictionaryItemMapper; import com.zhgd.xmgl.modules.basicdata.mapper.DictionaryItemMapper;
@ -55,7 +56,7 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
@Override @Override
public List<DictionaryItem> listEnableByConstructionStage(String projectConstructionStage) { public List<DictionaryItem> listEnableByConstructionStage(String projectConstructionStage) {
return dictionaryItemMapper.selectList(new LambdaQueryWrapper<DictionaryItem>() return dictionaryItemMapper.selectList(new LambdaQueryWrapper<DictionaryItem>()
.eq(DictionaryItem::getDictionaryEncoding, DictionaryItemConstant.PROJECT_CONSTRUCTION_STAGE) .eq(DictionaryItem::getDictionaryEncoding, DictionaryConstant.PROJECT_CONSTRUCTION_STAGE)
.eq(DictionaryItem::getIsEnable, 1) .eq(DictionaryItem::getIsEnable, 1)
); );
} }

View File

@ -93,10 +93,10 @@ public class LocationData implements Serializable {
@ApiModelProperty(value = "标签X位置(单位像素) 相对12000*12000位置坐标") @ApiModelProperty(value = "标签X位置(单位像素) 相对12000*12000位置坐标")
private Double pX; private Double pX;
/** /**
* 标签Y位置单位像素 * 标签Y位置单位像素用这个
*/ */
@Excel(name = "标签Y位置单位像素", width = 15) @Excel(name = "标签Y位置单位像素用这个", width = 15)
@ApiModelProperty(value = "标签Y位置单位像素") @ApiModelProperty(value = "标签Y位置单位像素用这个")
private Double pY; private Double pY;
/** /**
* 标签距离洞口用这个 * 标签距离洞口用这个

View File

@ -5,11 +5,17 @@
resultType="com.zhgd.xmgl.modules.location.entity.vo.RealTimeLocationWorkerVo"> resultType="com.zhgd.xmgl.modules.location.entity.vo.RealTimeLocationWorkerVo">
select ei.enterprise_name, i.team_name, count(*) count select ei.enterprise_name, i.team_name, count(*) count
from location_data d from location_data d
join (select max(id) id from location_data where project_sn = #{projectSn}
<if test="disappearTime != null and disappearTime != ''">
and create_time >= date_sub(now(),interval #{disappearTime} second )
</if>
group by cardno)t on t.id=d.id
join location_tunnel lt on lt.realtime_id=d.realtime_id
join worker_info wi on d.cardno = wi.location_cardno join worker_info wi on d.cardno = wi.location_cardno
join team_info i on i.id = wi.team_id join team_info i on i.id = wi.team_id
join enterprise_info ei on ei.id = wi.enterprise_id join enterprise_info ei on ei.id = wi.enterprise_id
where 1 = 1 where 1 = 1
and d.realtime_id = (select location_tunnel.realtime_id from location_tunnel where id = #{locationTunnelId}) and lt.id = #{locationTunnelId}
<if test="projectSn != null and projectSn != ''"> <if test="projectSn != null and projectSn != ''">
and d.project_sn = #{projectSn} and d.project_sn = #{projectSn}
</if> </if>
@ -23,9 +29,13 @@
<select id="getRealTimeLocationWorker" resultType="com.zhgd.xmgl.modules.location.entity.LocationData"> <select id="getRealTimeLocationWorker" resultType="com.zhgd.xmgl.modules.location.entity.LocationData">
select d.* select d.*
from location_data d from location_data d
join (select max(id) id from location_data group by cardno)t on t.id=d.id join (select max(id) id from location_data where project_sn = #{projectSn}
join worker_info wi on d.cardno = wi.location_cardno <if test="disappearTime != null and disappearTime != ''">
and create_time >= date_sub(now(),interval #{disappearTime} second )
</if>
group by cardno)t on t.id=d.id
join location_tunnel lt on lt.realtime_id=d.realtime_id join location_tunnel lt on lt.realtime_id=d.realtime_id
join worker_info wi on d.cardno = wi.location_cardno
where lt.id = #{locationTunnelId} where lt.id = #{locationTunnelId}
<if test="queryStr != null and queryStr != ''"> <if test="queryStr != null and queryStr != ''">
and (wi.worker_name like concat('%', #{queryStr}, '%') or and (wi.worker_name like concat('%', #{queryStr}, '%') or

View File

@ -12,6 +12,10 @@ import com.gexin.fastjson.JSON;
import com.gexin.fastjson.TypeReference; import com.gexin.fastjson.TypeReference;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant;
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
import com.zhgd.xmgl.modules.basicdata.mapper.DictionaryItemMapper;
import com.zhgd.xmgl.modules.location.entity.LocationData; import com.zhgd.xmgl.modules.location.entity.LocationData;
import com.zhgd.xmgl.modules.location.entity.LocationTunnel; import com.zhgd.xmgl.modules.location.entity.LocationTunnel;
import com.zhgd.xmgl.modules.location.entity.dto.JiLianDaRt; import com.zhgd.xmgl.modules.location.entity.dto.JiLianDaRt;
@ -22,6 +26,8 @@ import com.zhgd.xmgl.modules.location.service.ILocationDataService;
import com.zhgd.xmgl.util.RefUtil; import com.zhgd.xmgl.util.RefUtil;
import com.zhgd.xmgl.util.TimeUtil; import com.zhgd.xmgl.util.TimeUtil;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.mortbay.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -39,15 +45,19 @@ import java.util.List;
public class LocationDataServiceImpl extends ServiceImpl<LocationDataMapper, LocationData> implements ILocationDataService { public class LocationDataServiceImpl extends ServiceImpl<LocationDataMapper, LocationData> implements ILocationDataService {
@Autowired @Autowired
LocationTunnelMapper locationTunnelMapper; LocationTunnelMapper locationTunnelMapper;
@Autowired
DictionaryItemMapper dictionaryItemMapper;
@Override @Override
public List<RealTimeLocationWorkerVo> countRealTimeLocationWorker(HashMap<String, Object> paramMap) { public List<RealTimeLocationWorkerVo> countRealTimeLocationWorker(HashMap<String, Object> paramMap) {
setDisappearTimeIf(paramMap);
List<RealTimeLocationWorkerVo> realTimeLocationWorkerVos = baseMapper.countRealTimeLocationWorker(paramMap); List<RealTimeLocationWorkerVo> realTimeLocationWorkerVos = baseMapper.countRealTimeLocationWorker(paramMap);
return realTimeLocationWorkerVos; return realTimeLocationWorkerVos;
} }
@Override @Override
public List<LocationData> getRealTimeLocationWorker(HashMap<String, Object> paramMap) { public List<LocationData> getRealTimeLocationWorker(HashMap<String, Object> paramMap) {
setDisappearTimeIf(paramMap);
List<LocationData> locationDataList = baseMapper.getRealTimeLocationWorker(paramMap); List<LocationData> locationDataList = baseMapper.getRealTimeLocationWorker(paramMap);
for (LocationData locationData : locationDataList) { for (LocationData locationData : locationDataList) {
if (locationData.getWorkingTime() != null) { if (locationData.getWorkingTime() != null) {
@ -57,6 +67,19 @@ public class LocationDataServiceImpl extends ServiceImpl<LocationDataMapper, Loc
return locationDataList; return locationDataList;
} }
private void setDisappearTimeIf(HashMap<String, Object> paramMap) {
String projectSn = MapUtils.getString(paramMap, "projectSn");
DictionaryItem dictionaryItem = dictionaryItemMapper.getLocationDataDisappearTimeByProjectSn(projectSn, DictionaryConstant.LOCATION_DATA_PROJECT_SN_DISAPPEAR_TIME);
if (dictionaryItem != null) {
try {
String s = StringUtils.split(dictionaryItem.getData(), ",")[1];
paramMap.put("disappearTime", s);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override @Override
public IPage<LocationData> queryPageList(LocationData locationData, Integer pageNo, Integer pageSize, HttpServletRequest req) { public IPage<LocationData> queryPageList(LocationData locationData, Integer pageNo, Integer pageSize, HttpServletRequest req) {
String defaultAlias = "d."; String defaultAlias = "d.";
@ -83,7 +106,7 @@ public class LocationDataServiceImpl extends ServiceImpl<LocationDataMapper, Loc
locationData.setRealtimeId(l); locationData.setRealtimeId(l);
locationData.setTunnelId(locationData.getRegionId()); locationData.setTunnelId(locationData.getRegionId());
try { try {
locationData.setPY(Double.valueOf(RandomUtil.randomInt(tunnel.getYValueRandomRangeStart(), tunnel.getYValueRandomRangeEnd()))); locationData.setPY((double) RandomUtil.randomInt(tunnel.getYValueRandomRangeStart(), tunnel.getYValueRandomRangeEnd()));
} catch (Exception e) { } catch (Exception e) {
locationData.setPY(Double.valueOf(tunnel.getYValueRandomRangeStart())); locationData.setPY(Double.valueOf(tunnel.getYValueRandomRangeStart()));
} }

View File

@ -17,7 +17,8 @@ import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.redis.lock.RedisRepository; import com.zhgd.redis.lock.RedisRepository;
import com.zhgd.xmgl.entity.vo.ZwProjectDataVo; import com.zhgd.xmgl.entity.vo.ZwProjectDataVo;
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryItemConstant; import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant;
import com.zhgd.xmgl.modules.basicdata.entity.*; import com.zhgd.xmgl.modules.basicdata.entity.*;
import com.zhgd.xmgl.modules.basicdata.mapper.BaseModuleProjectMapper; import com.zhgd.xmgl.modules.basicdata.mapper.BaseModuleProjectMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyConfigMapper; import com.zhgd.xmgl.modules.basicdata.mapper.CompanyConfigMapper;
@ -762,7 +763,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
public List<ConstructionStageVo> countConstructionStage(Map<String, Object> map) { public List<ConstructionStageVo> countConstructionStage(Map<String, Object> map) {
companyService.getCompanyType(map); companyService.getCompanyType(map);
List<ConstructionStageVo> constructionStageVos = projectMapper.countConstructionStage(map); List<ConstructionStageVo> constructionStageVos = projectMapper.countConstructionStage(map);
List<DictionaryItem> dictionaryItems = dictionaryItemService.listEnableByConstructionStage(DictionaryItemConstant.PROJECT_CONSTRUCTION_STAGE); List<DictionaryItem> dictionaryItems = dictionaryItemService.listEnableByConstructionStage(DictionaryConstant.PROJECT_CONSTRUCTION_STAGE);
Map<Integer, ConstructionStageVo> csMap = constructionStageVos.stream().collect(Collectors.toMap(ConstructionStageVo::getConstructionStage, Function.identity())); Map<Integer, ConstructionStageVo> csMap = constructionStageVos.stream().collect(Collectors.toMap(ConstructionStageVo::getConstructionStage, Function.identity()));
ArrayList<ConstructionStageVo> list = new ArrayList<>(); ArrayList<ConstructionStageVo> list = new ArrayList<>();
for (DictionaryItem dictionaryItem : dictionaryItems) { for (DictionaryItem dictionaryItem : dictionaryItems) {

View File

@ -15,7 +15,7 @@ import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.async.AsyncAiAnalyse; import com.zhgd.xmgl.async.AsyncAiAnalyse;
import com.zhgd.xmgl.base.entity.vo.SectorOneVo; import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
import com.zhgd.xmgl.base.entity.vo.SectorVo; import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.constant.DictConstant; import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant;
import com.zhgd.xmgl.modules.basicdata.entity.Company; import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig; import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
@ -195,7 +195,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
@Override @Override
public SectorVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map) { public SectorVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map) {
List<SectorOneVo> list = aiAnalyseHardWareAlarmRecordMapper.getAiAnalyseHardWareAlarmTotal(map); List<SectorOneVo> list = aiAnalyseHardWareAlarmRecordMapper.getAiAnalyseHardWareAlarmTotal(map);
return SectorVo.getSectorVoByDict(list, dictionaryItemService.getDictList(DictConstant.AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE), true); return SectorVo.getSectorVoByDict(list, dictionaryItemService.getDictList(DictionaryConstant.AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE), true);
} }
/** /**