安全帽调整(中北水利)
This commit is contained in:
parent
ea442ecd04
commit
79a7af577b
@ -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"));
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
/**
|
||||
* 设备序号
|
||||
*/
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
/**
|
||||
* 设备序号
|
||||
*/
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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);
|
||||
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user