From 6e2efc5a73e04fa8090c0fbbeb5141d5f9c9ac6e Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Thu, 19 Sep 2024 16:45:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=AE=9A=E4=BD=8D=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DownloadController.java | 12 +++++++++ .../service/ISafetyHatDevService.java | 8 ++++++ .../service/impl/SafetyHatDevServiceImpl.java | 24 ++++++++++++++++++ .../java/com/zhgd/xmgl/util/ExcelUtils.java | 22 ++++++++++++++++ .../resources/excel/安全帽设备导入模板.xlsx | Bin 8834 -> 9545 bytes 5 files changed, 66 insertions(+) diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/DownloadController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/DownloadController.java index 1294b3d6d..0978301aa 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/DownloadController.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/DownloadController.java @@ -8,6 +8,7 @@ import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService import com.zhgd.xmgl.modules.exam.service.IExamQuestionBankService; import com.zhgd.xmgl.modules.massrebound.service.IMassReboundSurveyAreaService; import com.zhgd.xmgl.modules.quality.service.IQualityInspectionRecordService; +import com.zhgd.xmgl.modules.safetyhat.service.ISafetyHatDevService; import com.zhgd.xmgl.modules.standard.service.IStandardAlarmService; import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; @@ -45,6 +46,8 @@ public class DownloadController { @Autowired private IWorkerInfoService workerInfoService; @Autowired + private ISafetyHatDevService safetyHatDevService; + @Autowired private IExamQuestionBankService examQuestionBankService; @Autowired private IWorkerMonthAttendanceStatisticsService workerMonthAttendanceStatisticsService; @@ -333,6 +336,15 @@ public class DownloadController { examQuestionBankService.exporExcelTemplate(response, projectSn); } + @ApiOperation(value = "人员安全帽导入模板下载", notes = "人员安全帽导入模板下载", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), + }) + @GetMapping(value = "/exporExcelSafeDevTemplate") + public void exporExcelSafeDevTemplate(HttpServletResponse response, String projectSn) { + safetyHatDevService.exporExcelSafeDevTemplate(response, projectSn); + } + @ApiOperation(value = "列表查询隐患检查记录信息下载", notes = "列表查询隐患检查记录信息下载", httpMethod = "GET") @ApiImplicitParams({ @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), diff --git a/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/ISafetyHatDevService.java b/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/ISafetyHatDevService.java index 2e53cba93..48c0c667f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/ISafetyHatDevService.java +++ b/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/ISafetyHatDevService.java @@ -6,6 +6,7 @@ import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatDev; import com.zhgd.xmgl.modules.vehicleposition.entity.vo.CountVehiclePositionDevVo; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; @@ -59,6 +60,13 @@ public interface ISafetyHatDevService extends IService { */ CountVehiclePositionDevVo countSafetyHatDev(HashMap paramMap); + /** + *题库导入模板下载 + * @param response + * @param projectSn + */ + void exporExcelSafeDevTemplate(HttpServletResponse response, String projectSn); + /** *模板增量导入 * @param excelFile diff --git a/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/impl/SafetyHatDevServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/impl/SafetyHatDevServiceImpl.java index 168f3fb52..0150d5b33 100644 --- a/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/impl/SafetyHatDevServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/safetyhat/service/impl/SafetyHatDevServiceImpl.java @@ -5,14 +5,17 @@ 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.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenPromptException; +import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatAlarm; import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatData; import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatDev; +import com.zhgd.xmgl.modules.safetyhat.entity.SafetyHatFence; import com.zhgd.xmgl.modules.safetyhat.mapper.SafetyHatAlarmMapper; import com.zhgd.xmgl.modules.safetyhat.mapper.SafetyHatDataMapper; import com.zhgd.xmgl.modules.safetyhat.mapper.SafetyHatDevMapper; @@ -25,11 +28,13 @@ import com.zhgd.xmgl.util.ExcelUtils; import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.RefUtil; +import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.util.HashMap; import java.util.List; @@ -124,9 +129,18 @@ public class SafetyHatDevServiceImpl extends ServiceImpl fenceList = safetyHatFenceMapper.selectList(Wrappers.lambdaQuery() + .eq(SafetyHatFence::getProjectSn, projectSn)); + ExcelUtils.exporExcelSafeDevTemplate(response, fenceList); + } + @Override @Transactional(rollbackFor = Exception.class, noRollbackFor = OpenPromptException.class) public void importExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception { + List safetyHatFenceList = safetyHatFenceMapper.selectList(Wrappers.lambdaQuery() + .eq(SafetyHatFence::getProjectSn, projectSn)); if (StrUtil.isBlank(projectSn)) { throw new OpenAlertException("projectSn不能为空"); } @@ -139,6 +153,14 @@ public class SafetyHatDevServiceImpl extends ServiceImpl { String name = m.get("人员名称"); String devSn = m.get("设备序号"); + String fenceName = m.get("围栏名称"); + Long fenceId = null; + if (!"".equals(fenceName) && !"#N/A".equals(fenceName)) { + List hatFences = safetyHatFenceList.stream().filter(s -> s.getFenceName().equals(fenceName)).collect(Collectors.toList()); + if (hatFences.size() > 0) { + fenceId = hatFences.get(0).getId(); + } + } List workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper() .eq(WorkerInfo::getProjectSn, projectSn) .eq(WorkerInfo::getInserviceType, 1) @@ -154,12 +176,14 @@ public class SafetyHatDevServiceImpl extends ServiceImpl fenceList) { + try { + ClassPathResource classPathResource = new ClassPathResource("excel/安全帽设备导入模板.xlsx"); + InputStream inputStream = classPathResource.getInputStream(); + XSSFWorkbook workbook = new XSSFWorkbook(inputStream); + //围栏下拉列 + XSSFSheet sheet2 = workbook.getSheet("围栏"); + if (fenceList.size() > 0) { + for (int i = 0; i < fenceList.size(); i++) { + XSSFRow row1 = sheet2.createRow(i); + XSSFCell cell1 = row1.createCell(0); + cell1.setCellType(CellType.STRING); + cell1.setCellValue(fenceList.get(i).getFenceName()); + } + } + downLoadExcel("安全帽设备导入模板.xlsx", response, workbook); + } catch (IOException e) { + log.error("error:", e); + } + } + public static void exporExcelWorkerEducation(HttpServletResponse response, Map map, WorkerSafeEducationWorker workerSafeEducationWorker, WorkerType workerType, String basePath) { try { ClassPathResource classPathResource = new ClassPathResource("excel/工人教育档案.xlsx"); diff --git a/src/main/resources/excel/安全帽设备导入模板.xlsx b/src/main/resources/excel/安全帽设备导入模板.xlsx index 2243dbbc05f0b4bb608151b26d1b4be129627e3f..f58bd1e91d886d3dc8b6260ed84a2905b8b1a729 100644 GIT binary patch delta 3978 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