安全帽调整(中北水利)

This commit is contained in:
pengjie 2024-12-13 17:43:19 +08:00
parent ea442ecd04
commit 79a7af577b
14 changed files with 105 additions and 48 deletions

View File

@ -86,16 +86,16 @@ public class SafetyHatWSClient {
JSONObject joLocationInfo = joData.getJSONObject("location_info");
if (joLocationInfo != null) {
//纬度(坐标系高德地图 GCJ-02)
Double xPoint = joLocationInfo.getDouble("x_point");
Double yPoint = joLocationInfo.getDouble("y_point");
Long ctime = joLocationInfo.getLong("ctime");
SafetyHatData data = new SafetyHatData();
data.setWorkerInfoId(dev.getWorkerInfoId());
data.setDevSn(dev.getDevSn());
data.setLatitude(xPoint);
data.setLongitude(yPoint);
data.setUploadTime(new Date(ctime * 1000L));
data.setProjectSn(dev.getProjectSn());
// Double xPoint = joLocationInfo.getDouble("x_point");
// Double yPoint = joLocationInfo.getDouble("y_point");
// Long ctime = joLocationInfo.getLong("ctime");
// SafetyHatData data = new SafetyHatData();
// data.setWorkerInfoId(dev.getWorkerInfoId());
// data.setDevSn(dev.getDevSn());
// data.setLatitude(xPoint);
// data.setLongitude(yPoint);
// data.setUploadTime(new Date(ctime * 1000L));
// data.setProjectSn(dev.getProjectSn());
try {
//不从这里获取实时坐标因为从这里获取的轨迹没有经过过滤
//SpringContextUtils.getBean(ISafetyHatDataService.class).add(data);
@ -173,6 +173,7 @@ public class SafetyHatWSClient {
alarm.setLongitude(xPoint);
alarm.setFenceId(dev.getFenceId());
alarm.setType(dev.getType());
alarm.setWorkerInfoName(dev.getWorkerInfoName());
if (dev.getType() == 2) {
alarm.setAlarmInfo(jo.getString("msg"));
}

View File

@ -36,10 +36,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@ -205,15 +202,19 @@ public class SafetyHatDevController {
@GetMapping(value = "/enterprise/tree/list")
public Result<List<QueryEnterpriseTreeVo>> queryEnterpriseTreeList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
List<SafetyHatDev> safetyHatDevs = safetyHatDevService.queryList(paramMap);
List<Long> workerIds = safetyHatDevs.stream().map(safetyHatDev -> safetyHatDev.getWorkerInfoId()).collect(Collectors.toList());
if (CollUtil.isEmpty(workerIds)) {
workerIds.add(-1L);
// List<Long> workerIds = safetyHatDevs.stream().map(safetyHatDev -> safetyHatDev.getWorkerInfoId()).collect(Collectors.toList());
// if (CollUtil.isEmpty(workerIds)) {
// workerIds.add(-1L);
// }
// List<WorkerInfo> workerInfos = workerInfoService.list(new LambdaQueryWrapper<WorkerInfo>().in(WorkerInfo::getId, workerIds));
List<String> enterpriseIds = new ArrayList<>();
for (SafetyHatDev safetyHatDev : safetyHatDevs) {
enterpriseIds.addAll(Arrays.asList(safetyHatDev.getEnterpriseIds().split(",")));
}
List<WorkerInfo> workerInfos = workerInfoService.list(new LambdaQueryWrapper<WorkerInfo>().in(WorkerInfo::getId, workerIds));
List<Long> enterpriseIds = workerInfos.stream().map(WorkerInfo::getEnterpriseId).collect(Collectors.toList());
Map<Long, List<WorkerInfo>> enterpriseMap = workerInfos.stream().collect(Collectors.groupingBy(WorkerInfo::getEnterpriseId));
// List<Long> enterpriseIds = safetyHatDevs.stream().map(WorkerInfo::getEnterpriseId).collect(Collectors.toList());
// Map<Long, List<WorkerInfo>> enterpriseMap = workerInfos.stream().collect(Collectors.groupingBy(WorkerInfo::getEnterpriseId));
if (CollUtil.isEmpty(enterpriseIds)) {
enterpriseIds.add(-1L);
enterpriseIds.add("-1");
}
List<EnterpriseInfo> enterpriseInfos = enterpriseInfoService.list(new LambdaQueryWrapper<EnterpriseInfo>().in(EnterpriseInfo::getId, enterpriseIds));
List<QueryEnterpriseTreeVo> rt = new ArrayList<>();
@ -221,14 +222,15 @@ public class SafetyHatDevController {
QueryEnterpriseTreeVo vo = new QueryEnterpriseTreeVo();
vo.setName(enterpriseInfo.getEnterpriseName());
vo.setEnterpriseId(enterpriseInfo.getId());
List<SafetyHatDev> hatDevs = safetyHatDevs.stream().filter(safetyHatDev -> {
safetyHatDev.setName(safetyHatDev.getWorkerName());
List<WorkerInfo> l = enterpriseMap.get(enterpriseInfo.getId());
if (CollUtil.isNotEmpty(l)) {
return l.stream().anyMatch(workerInfo -> safetyHatDev.getWorkerInfoId().equals(workerInfo.getId()));
}
return false;
}).collect(Collectors.toList());
// List<SafetyHatDev> hatDevs = safetyHatDevs.stream().filter(safetyHatDev -> {
// safetyHatDev.setName(safetyHatDev.getWorkerName());
// List<WorkerInfo> l = enterpriseMap.get(enterpriseInfo.getId());
// if (CollUtil.isNotEmpty(l)) {
// return l.stream().anyMatch(workerInfo -> safetyHatDev.getWorkerInfoId().equals(workerInfo.getId()));
// }
// return false;
// }).collect(Collectors.toList());
List<SafetyHatDev> hatDevs = safetyHatDevs.stream().filter(s -> s.getEnterpriseIds().contains(enterpriseInfo.getId().toString())).collect(Collectors.toList());
vo.setSafetyHatDevs(hatDevs);
rt.add(vo);
}

View File

@ -37,6 +37,12 @@ public class SafetyHatAlarm implements Serializable {
@Excel(name = "人员id", width = 15)
@ApiModelProperty(value = "人员id")
private java.lang.Long workerInfoId;
/**
* 人员姓名
*/
@Excel(name = "人员姓名", width = 15)
@ApiModelProperty(value = "人员姓名")
private java.lang.String workerInfoName;
/**
* 设备序号
*/

View File

@ -38,6 +38,12 @@ public class SafetyHatData implements Serializable {
@Excel(name = "人员id", width = 15)
@ApiModelProperty(value = "人员id")
private java.lang.Long workerInfoId;
/**
* 人员姓名
*/
@Excel(name = "人员姓名", width = 15)
@ApiModelProperty(value = "人员姓名")
private java.lang.String workerInfoName;
/**
* 设备序号
*/
@ -104,6 +110,14 @@ public class SafetyHatData implements Serializable {
@TableField(exist = false)
private java.lang.String workerName;
/**
* 企业名称
*/
@Excel(name = "企业名称", width = 15)
@ApiModelProperty(value = "企业名称")
@TableField(exist = false)
private java.lang.String enterpriseName;
@TableField(exist = false)
@ApiModelProperty(value = "身份证号")
private java.lang.String idCard;

View File

@ -1,9 +1,6 @@
package com.zhgd.xmgl.modules.safetyhat.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -36,7 +33,15 @@ public class SafetyHatDev implements Serializable {
*/
@Excel(name = "人员id", width = 15)
@ApiModelProperty(value = "人员id")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private java.lang.Long workerInfoId;
/**
* 人员姓名
*/
@Excel(name = "人员姓名", width = 15)
@ApiModelProperty(value = "人员姓名")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private java.lang.String workerInfoName;
/**
* 设备序号
*/

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.safetyhat.mapper.SafetyHatAlarmMapper">
<select id="queryList" resultType="com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatAlarm">
select sha.*, wi.worker_name, hf.fence_name
select sha.*, CONCAT(IFNULL(wi.worker_name, ''), IFNULL(sha.worker_info_name, '')) worker_name, hf.fence_name
from safety_hat_alarm sha
left join worker_info wi on wi.id = sha.worker_info_id
left join safety_hat_fence hf on hf.id = sha.fence_id

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.safetyhat.mapper.SafetyHatDataMapper">
<select id="queryList" resultType="com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatData">
select shd.*, wi.worker_name
select shd.*, CONCAT(IFNULL(wi.worker_name, ''), IFNULL(shd.worker_info_name, '')) worker_name
from safety_hat_data shd
left join worker_info wi on wi.id = shd.worker_info_id
${ew.customSqlSegment}
@ -22,7 +22,7 @@
</select>
<select id="getNewestList" resultType="com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatData">
select shd.*, wi.worker_name from safety_hat_data shd join (
select shd.*, wi.worker_name, ei.enterprise_name from safety_hat_data shd join (
select max(upload_time) as upload_time, dev_sn
from safety_hat_data
where project_sn = #{projectSn}
@ -35,6 +35,7 @@
group by dev_sn
)t on t.upload_time=shd.upload_time and t.dev_sn=shd.dev_sn
left join worker_info wi on wi.id = shd.worker_info_id
left join enterprise_info ei on wi.enterprise_id = ei.id
group by t.dev_sn
</select>

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.safetyhat.mapper.SafetyHatDevMapper">
<select id="queryList" resultType="com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatDev">
select shd.*,wi.worker_name, hf.fence_name
select shd.*, CONCAT(IFNULL(wi.worker_name, ''), IFNULL(shd.worker_info_name, '')) worker_name, hf.fence_name
from safety_hat_dev shd
left join worker_info wi on wi.id = shd.worker_info_id
left join safety_hat_fence hf on hf.id = shd.fence_id

View File

@ -87,6 +87,7 @@ public class SafetyHatAlarmServiceImpl extends ServiceImpl<SafetyHatAlarmMapper,
safetyHatAlarm.setAlarmInfo(str);
}
safetyHatAlarm.setWorkerInfoId(dev.getWorkerInfoId());
safetyHatAlarm.setWorkerInfoName(dev.getWorkerInfoName());
safetyHatAlarm.setProjectSn(dev.getProjectSn());
safetyHatAlarm.setId(null);
baseMapper.insert(safetyHatAlarm);

View File

@ -120,6 +120,7 @@ public class SafetyHatDataServiceImpl extends ServiceImpl<SafetyHatDataMapper, S
safetyHatData.setProjectSn(dev.getProjectSn());
safetyHatData.setId(null);
safetyHatData.setWorkerInfoId(dev.getWorkerInfoId());
safetyHatData.setWorkerInfoName(dev.getWorkerInfoName());
baseMapper.insert(safetyHatData);
if (dev.getType() == 1) {
@ -266,7 +267,7 @@ public class SafetyHatDataServiceImpl extends ServiceImpl<SafetyHatDataMapper, S
data.setUploadTime(new Date(time * 1000L));
data.setProjectSn(dev.getProjectSn());
data.setIsPlatformData(1);
data.setWorkerName(dev.getWorkerName());
data.setWorkerInfoName(dev.getWorkerInfoName());
hatDataArrayList.add(data);
}
return CollUtil.reverse(hatDataArrayList);
@ -291,8 +292,7 @@ public class SafetyHatDataServiceImpl extends ServiceImpl<SafetyHatDataMapper, S
String projectSn = MapUtils.getString(param, "projectSn");
List<SafetyHatData> datas = safetyHatDataMapper.selectList(new LambdaQueryWrapper<SafetyHatData>()
.eq(SafetyHatData::getProjectSn, projectSn)
.ge(SafetyHatData::getUploadTime, DateUtil.formatDate(DateUtil.offsetDay(new Date(), -6)))
);
.ge(SafetyHatData::getUploadTime, DateUtil.formatDate(DateUtil.offsetDay(new Date(), -6))));
List<SafetyHatFence> regions = safetyHatFenceService.queryList(new MapBuilder<String, Object>()
.put("projectSn", projectSn)
.build());

View File

@ -147,7 +147,8 @@ public class SafetyHatDevServiceImpl extends ServiceImpl<SafetyHatDevMapper, Saf
public void exporExcelSafeDevTemplate(HttpServletResponse response, String projectSn) {
List<SafetyHatFence> fenceList = safetyHatFenceMapper.selectList(Wrappers.<SafetyHatFence>lambdaQuery()
.eq(SafetyHatFence::getProjectSn, projectSn));
ExcelUtils.exporExcelSafeDevTemplate(response, fenceList);
List<EnterpriseInfo> enterpriseInfoList = enterpriseInfoMapper.selectBySnAndNumberOneList(projectSn, null);
ExcelUtils.exporExcelSafeDevTemplate(response, fenceList, enterpriseInfoList);
}
@Override
@ -155,6 +156,7 @@ public class SafetyHatDevServiceImpl extends ServiceImpl<SafetyHatDevMapper, Saf
public void importExcelTemplate(MultipartFile excelFile, String projectSn, Integer type) throws Exception {
List<SafetyHatFence> safetyHatFenceList = safetyHatFenceMapper.selectList(Wrappers.<SafetyHatFence>lambdaQuery()
.eq(SafetyHatFence::getProjectSn, projectSn));
List<EnterpriseInfo> enterpriseInfoList = enterpriseInfoMapper.selectBySnAndNumberOneList(projectSn, null);
if (StrUtil.isBlank(projectSn)) {
throw new OpenAlertException("projectSn不能为空");
}
@ -168,37 +170,49 @@ public class SafetyHatDevServiceImpl extends ServiceImpl<SafetyHatDevMapper, Saf
String name = m.get("人员名称");
String devSn = m.get("设备序号");
String fenceName = m.get("围栏名称");
String enterpriseName = m.get("分包单位");
Long fenceId = null;
Long enterpriseId = null;
if (!"".equals(fenceName) && !"#N/A".equals(fenceName)) {
List<SafetyHatFence> hatFences = safetyHatFenceList.stream().filter(s -> s.getFenceName().equals(fenceName)).collect(Collectors.toList());
if (hatFences.size() > 0) {
fenceId = hatFences.get(0).getId();
}
}
if (!"".equals(enterpriseName) && !"#N/A".equals(enterpriseName)) {
List<EnterpriseInfo> enterpriseInfos = enterpriseInfoList.stream().filter(s -> s.getEnterpriseName().equals(enterpriseName)).collect(Collectors.toList());
if (enterpriseInfos.size() > 0) {
enterpriseId = enterpriseInfos.get(0).getId();
}
}
List<WorkerInfo> workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper<WorkerInfo>()
.eq(WorkerInfo::getProjectSn, projectSn)
.eq(WorkerInfo::getInserviceType, 1)
);
Map<String, WorkerInfo> nameMap = workerInfos.stream().collect(Collectors.toMap(WorkerInfo::getWorkerName, Function.identity(), (workerInfo, workerInfo2) -> null));
WorkerInfo workerInfo = nameMap.get(name);
if (workerInfo == null) {
sb.append(devSn + ",");
return;
}
// if (workerInfo == null) {
// sb.append(devSn + ",");
// return;
// }
SafetyHatDev oneDev = safetyHatDevMapper.selectOne(new LambdaQueryWrapper<SafetyHatDev>()
.eq(SafetyHatDev::getDevSn, devSn));
if (oneDev != null) {
oneDev.setWorkerInfoId(workerInfo.getId());
oneDev.setWorkerInfoId(workerInfo == null ? null : workerInfo.getId());
oneDev.setProjectSn(projectSn);
oneDev.setFenceId(fenceId == null ? "" : String.valueOf(fenceId));
oneDev.setEnterpriseIds(enterpriseId == null ? "" : String.valueOf(enterpriseId));
oneDev.setWorkerInfoName(workerInfo == null ? name : "");
baseMapper.updateById(oneDev);
} else {
SafetyHatDev dev = new SafetyHatDev();
dev.setWorkerInfoId(workerInfo.getId());
dev.setWorkerInfoId(workerInfo == null ? null : workerInfo.getId());
dev.setDevSn(devSn);
dev.setProjectSn(projectSn);
dev.setFenceId(fenceId == null ? "" : String.valueOf(fenceId));
dev.setEnterpriseIds(enterpriseId == null ? "" : String.valueOf(enterpriseId));
dev.setType(type);
dev.setWorkerInfoName(workerInfo == null ? name : "");
baseMapper.insert(dev);
}
});

View File

@ -169,6 +169,7 @@ public class SafetyHatTask {
data.setProjectSn(dev.getProjectSn());
data.setIsPlatformData(1);
data.setType(dev.getType());
data.setWorkerInfoName(dev.getWorkerInfoName());
safetyHatDataService.add(data);
}
} else {
@ -241,6 +242,7 @@ public class SafetyHatTask {
data.setUploadTime(new Date(time * 1000L));
data.setProjectSn(dev.getProjectSn());
data.setIsPlatformData(1);
data.setWorkerInfoName(dev.getWorkerInfoName());
safetyHatDataMapper.insert(data);
}
} else {

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.util;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.exam.entity.ExamSubject;
import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatFence;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.WorkerSafeEducationWorker;
import com.zhgd.xmgl.modules.worker.entity.WorkerType;
import lombok.extern.slf4j.Slf4j;
@ -253,7 +254,7 @@ public class ExcelUtils {
}
}
public static void exporExcelSafeDevTemplate(HttpServletResponse response, List<SafetyHatFence> fenceList) {
public static void exporExcelSafeDevTemplate(HttpServletResponse response, List<SafetyHatFence> fenceList, List<EnterpriseInfo> enterpriseInfoList) {
try {
ClassPathResource classPathResource = new ClassPathResource("excel/安全帽设备导入模板.xlsx");
InputStream inputStream = classPathResource.getInputStream();
@ -268,6 +269,16 @@ public class ExcelUtils {
cell1.setCellValue(fenceList.get(i).getFenceName());
}
}
//分包单位下拉列
XSSFSheet sheet3 = workbook.getSheet("分包单位");
if (enterpriseInfoList.size() > 0) {
for (int i = 0; i < enterpriseInfoList.size(); i++) {
XSSFRow row1 = sheet3.createRow(i);
XSSFCell cell1 = row1.createCell(0);
cell1.setCellType(CellType.STRING);
cell1.setCellValue(enterpriseInfoList.get(i).getEnterpriseName());
}
}
downLoadExcel("安全帽设备导入模板.xlsx", response, workbook);
} catch (IOException e) {
log.error("error", e);