diff --git a/pom.xml b/pom.xml index b0fcb79db..af2914870 100644 --- a/pom.xml +++ b/pom.xml @@ -362,6 +362,17 @@ easypoi-spring-boot-starter 4.4.0 + + + com.documents4j + documents4j-local + 1.0.3 + + + com.documents4j + documents4j-transformer-msoffice-word + 1.0.3 + commons-beanutils diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/CivilEngineeringQualityInspectionOrderController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/CivilEngineeringQualityInspectionOrderController.java index 6260a66e5..b273df529 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/CivilEngineeringQualityInspectionOrderController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/CivilEngineeringQualityInspectionOrderController.java @@ -1,7 +1,17 @@ package com.zhgd.xmgl.modules.baotou.controller; +import java.io.File; +import java.io.IOException; import java.util.Date; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.zhgd.annotation.OperLog; +import com.zhgd.xmgl.modules.baotou.entity.FirstOrderFire; +import com.zhgd.xmgl.util.EasyPoiUtil; +import com.zhgd.xmgl.util.Fileutils; import com.zhgd.xmgl.util.FlowUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -26,8 +36,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.alibaba.fastjson.JSON; +import javax.servlet.http.HttpServletResponse; - /** + +/** * @Title: Controller * @Description: 土建工程质量检测委托单 * @author: pds @@ -199,4 +211,81 @@ public class CivilEngineeringQualityInspectionOrderController { return Result.success(civilEngineeringQualityInspectionOrderService.queryById(id)); } + + @OperLog(operModul = "土建工程质量检测委托单管理", operType = "", operDesc = "导出pdf文件") + @ApiOperation(value = "导出pdf文件", notes = "导出pdf文件", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "id", paramType = "query", required = true, dataType = "String") + @GetMapping("exportPdf") + public void exportPdf(HttpServletResponse response, @RequestParam(name = "id", required = true) String id) throws IOException { + Map map = new HashMap<>(); + CivilEngineeringQualityInspectionOrder fire = civilEngineeringQualityInspectionOrderService.queryById(id); + + map.put("id", fire.getId()); + map.put("num", fire.getNum()); + map.put("project", fire.getProject()); + map.put("deviceUnitId", fire.getDeviceUnitId()); + map.put("testingMethod", fire.getTestingMethod()); + map.put("testingCategory", fire.getTestingCategory()); + map.put("projectUseLocation", fire.getProjectUseLocation()); + map.put("testingCommissionBasisStandard", fire.getTestingCommissionBasisStandard()); + map.put("testingCodeList", fire.getTestingCodeList()); + map.put("testPieceSampleSamplingGroupNumber", fire.getTestPieceSampleSamplingGroupNumber()); + map.put("testPieceSampleNumber", fire.getTestPieceSampleNumber()); + map.put("testPieceSampleModelSpecification", fire.getTestPieceSampleModelSpecification()); + map.put("testPieceSampleRepresentativeBatch", fire.getTestPieceSampleRepresentativeBatch()); + map.put("originManufacturer", fire.getOriginManufacturer()); + map.put("productBatchFurnaceNumber", fire.getProductBatchFurnaceNumber()); + map.put("weldingTestPieceOperator", fire.getWeldingTestPieceOperator()); + map.put("weldingTestPieceOperationCertificateNumber", fire.getWeldingTestPieceOperationCertificateNumber()); + map.put("trademark", fire.getTrademark()); + map.put("factoryCertificateNumber", fire.getFactoryCertificateNumber()); + map.put("testingClient", fire.getTestingClient()); + map.put("testingClientUser", fire.getTestingClientUser()); + map.put("testingClientPhoneNumber", fire.getTestingClientPhoneNumber()); + map.put("testingCommissionTime", DateUtil.format(fire.getTestingCommissionTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("samplingSampleDeliveryPerson", fire.getSamplingSampleDeliveryPerson()); + map.put("epcContractor", fire.getEpcContractor()); + map.put("professionalEngineer", fire.getProfessionalEngineer()); + map.put("supervisingWitness", fire.getSupervisingWitness()); + map.put("supervisingWitnessUser", fire.getSupervisingWitnessUser()); + map.put("clientPhoneNumber", fire.getClientPhoneNumber()); + map.put("witnessRecord", fire.getWitnessRecord()); + map.put("witnessRecordPicture", fire.getWitnessRecordPicture()); + map.put("testingUnit", fire.getTestingUnit()); + map.put("client", fire.getClient()); + map.put("testingReportIssuanceCommitmentTimeLimit", DateUtil.format(fire.getTestingReportIssuanceCommitmentTimeLimit(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("mattersExplained", fire.getMattersExplained()); + map.put("projectSn", fire.getProjectSn()); + map.put("createDate", fire.getCreateDate()); + map.put("updateDate", fire.getUpdateDate()); + map.put("deviceUnitName", fire.getDeviceUnitName()); + map.put("deviceUnitNo", fire.getDeviceUnitNo()); + map.put("weldingTestPieceOperatorName", fire.getWeldingTestPieceOperatorName()); + map.put("testingClientName", fire.getTestingClientName()); + map.put("testingClientUserName", fire.getTestingClientUserName()); + map.put("samplingSampleDeliveryPersonName", fire.getSamplingSampleDeliveryPersonName()); + map.put("epcContractorName", fire.getEpcContractorName()); + map.put("professionalEngineerName", fire.getProfessionalEngineerName()); + map.put("supervisingWitnessName", fire.getSupervisingWitnessName()); + map.put("supervisingWitnessUserName", fire.getSupervisingWitnessUserName()); + map.put("testingUnitName", fire.getTestingUnitName()); + map.put("clientName", fire.getClientName()); + String url; +// url = "C:\\Users\\Administrator\\Desktop\\土建工程质量模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/土建工程质量模板.docx").getAbsolutePath(); + String detail = fire.getTestingCodeList(); + JSONArray detailJa = JSON.parseArray(detail); + if (CollUtil.isNotEmpty(detailJa)) { + for (int i = 0; i < detailJa.size(); i++) { + JSONObject jo = detailJa.getJSONObject(i); + map.put("a" + (i + 1), FlowUtil.getPullDownString(jo,"field1368566793132")); + map.put("b" + (i + 1), FlowUtil.getPullDownString(jo,"field4604066799427")); + } + } + File tempFile = File.createTempFile(IdUtil.simpleUUID(), ".docx"); + EasyPoiUtil.exportWord(map, url, tempFile); + + EasyPoiUtil.wordToPdfExport(response, tempFile); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ConfinedSpaceOperationController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ConfinedSpaceOperationController.java index bb11b3b79..abdb10aa1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ConfinedSpaceOperationController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ConfinedSpaceOperationController.java @@ -1,13 +1,23 @@ package com.zhgd.xmgl.modules.baotou.controller; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.baotou.entity.ConfinedSpaceOperation; import com.zhgd.xmgl.modules.baotou.service.IConfinedSpaceOperationService; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; +import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl; +import com.zhgd.xmgl.util.EasyPoiUtil; +import com.zhgd.xmgl.util.Fileutils; import com.zhgd.xmgl.util.FlowUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -18,10 +28,15 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.simpleframework.xml.core.Validate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; /** @@ -36,6 +51,9 @@ import java.util.*; @Slf4j @Api(tags = "受限空间作业相关Api") public class ConfinedSpaceOperationController { + @Lazy + @Autowired + WorkerInfoServiceImpl workerInfoService; @Autowired private IConfinedSpaceOperationService confinedSpaceOperationService; @@ -103,7 +121,7 @@ public class ConfinedSpaceOperationController { Long safetyQualityEnvironmentalProtectionDepartment = Optional.ofNullable(map.get("safetyQualityEnvironmentalProtectionDepartment")).map(o -> Convert.toLong(((List) o).get(0))).orElse(null); Long operatorSignature = Optional.ofNullable(map.get("operatorSignature")).map(o -> Convert.toLong(((List) o).get(0))).orElse(null); Long guardianSignature = Optional.ofNullable(map.get("guardianSignature")).map(o -> Convert.toLong(((List) o).get(0))).orElse(null); - String operator = Optional.ofNullable(map.get("operator")).map(o -> StringUtils.join(((List)o),",")).orElse(null); + String operator = Optional.ofNullable(map.get("operator")).map(o -> StringUtils.join(((List) o), ",")).orElse(null); String jobHazardIdentificationDetail = Optional.ofNullable(map.get("jobHazardIdentificationDetail")).map(JSON::toJSONString).orElse(null); String num = MapUtils.getString(map, "num"); String constructionProject = MapUtils.getString(map, "constructionProject"); @@ -227,4 +245,110 @@ public class ConfinedSpaceOperationController { return Result.success(confinedSpaceOperationService.queryById(id)); } + @OperLog(operModul = "受限空间作业管理", operType = "", operDesc = "导出pdf文件") + @ApiOperation(value = "导出pdf文件", notes = "导出pdf文件", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "id", paramType = "query", required = true, dataType = "String") + @GetMapping("exportPdf") + public void exportPdf(HttpServletResponse response, @RequestParam(name = "id", required = true) String id) throws IOException { + Map map = new HashMap<>(); + ConfinedSpaceOperation fire = confinedSpaceOperationService.queryById(id); + + map.put("id", fire.getId()); + map.put("num", fire.getNum()); + map.put("constructionProject", fire.getConstructionProject()); + map.put("projectGroupId", fire.getProjectGroupId()); + map.put("jobApplicationUnit", fire.getJobApplicationUnit()); + map.put("deviceUnitId", fire.getDeviceUnitId()); + map.put("facilityLocationName", fire.getFacilityLocationName()); + map.put("originalMedium", fire.getOriginalMedium()); + map.put("jobContent", fire.getJobContent()); + map.put("operator", fire.getOperator()); + map.put("jobStartTime", DateUtil.format(fire.getJobStartTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("jobEndTime", DateUtil.format(fire.getJobEndTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("jobHazardIdentificationDetail", fire.getJobHazardIdentificationDetail()); + map.put("applicantSignature", fire.getApplicantSignature()); + map.put("applicantSignatureTime", DateUtil.format(fire.getApplicantSignatureTime(), "yyyy年MM月dd日")); + map.put("contractorSignature", fire.getContractorSignature()); + map.put("supervisorSignature", fire.getSupervisorSignature()); + map.put("detectionAndAnalysisOxygenContent", fire.getDetectionAndAnalysisOxygenContent()); + map.put("detectionAndAnalysisCombustibleGas", fire.getDetectionAndAnalysisCombustibleGas()); + map.put("detectionAndAnalysisToxicity", fire.getDetectionAndAnalysisToxicity()); + map.put("detectionAndAnalysisDust", fire.getDetectionAndAnalysisDust()); + map.put("detectionAndAnalysisTime", DateUtil.format(fire.getDetectionAndAnalysisTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("detectionAndAnalysisLocation", fire.getDetectionAndAnalysisLocation()); + map.put("detectionAndAnalysisSignature", fire.getDetectionAndAnalysisSignature()); + map.put("conclusion", fire.getConclusion()); + map.put("operationSupervisor", fire.getOperationSupervisor()); + map.put("operationApplicationUnitConfirmation", getYesOrNot(fire.getOperationApplicationUnitConfirmation())); + map.put("operationSupervisorTime", DateUtil.format(fire.getOperationSupervisorTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("epcContractor1", fire.getEpcContractor1()); + map.put("epcContractor2", fire.getEpcContractor2()); + map.put("epcContractorConfirmation", getYesOrNot(fire.getEpcContractorConfirmation())); + map.put("epcContractorTime", DateUtil.format(fire.getEpcContractorTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("supervisor1", fire.getSupervisor1()); + map.put("supervisor2", fire.getSupervisor2()); + map.put("supervisorConfirmation", getYesOrNot(fire.getSupervisorConfirmation())); + map.put("supervisorTime", DateUtil.format(fire.getSupervisorTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("projectTeam1", fire.getProjectTeam1()); + map.put("projectTeam2", fire.getProjectTeam2()); + map.put("projectTeamConfirmation", getYesOrNot(fire.getProjectTeamConfirmation())); + map.put("projectTeamTime", DateUtil.format(fire.getProjectTeamTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("safetyQualityEnvironmentalProtectionDepartment", fire.getSafetyQualityEnvironmentalProtectionDepartment()); + map.put("safetyQualityEnvironmentalProtectionDepartmentConfirmation", getYesOrNot(fire.getSafetyQualityEnvironmentalProtectionDepartmentConfirmation())); + map.put("safetyQualityEnvironmentalProtectionDepartmentTime", DateUtil.format(fire.getSafetyQualityEnvironmentalProtectionDepartmentTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("operatorSignature", fire.getOperatorSignature()); + map.put("guardianSignature", fire.getGuardianSignature()); + map.put("signatureTime", DateUtil.format(fire.getSignatureTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("projectSn", fire.getProjectSn()); + map.put("createTime", DateUtil.format(fire.getCreateTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("updateTime", DateUtil.format(fire.getUpdateTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("workType", fire.getWorkType()); + map.put("jobApplicationUnitName", fire.getJobApplicationUnitName()); + map.put("projectGroupName", fire.getProjectGroupName()); + map.put("deviceUnitName", fire.getDeviceUnitName()); + map.put("operatorName", fire.getOperatorName()); + map.put("applicantSignatureName", fire.getApplicantSignatureName()); + map.put("contractorSignatureName", fire.getContractorSignatureName()); + map.put("supervisorSignatureName", fire.getSupervisorSignatureName()); + map.put("detectionAndAnalysisSignatureName", fire.getDetectionAndAnalysisSignatureName()); + map.put("operationSupervisorName", fire.getOperationSupervisorName()); + map.put("epcContractor1Name", fire.getEpcContractor1Name()); + map.put("epcContractor2Name", fire.getEpcContractor2Name()); + map.put("supervisor1Name", fire.getSupervisor1Name()); + map.put("supervisor2Name", fire.getSupervisor2Name()); + map.put("projectTeam1Name", fire.getProjectTeam1Name()); + map.put("projectTeam2Name", fire.getProjectTeam2Name()); + map.put("safetyQualityEnvironmentalProtectionDepartmentName", fire.getSafetyQualityEnvironmentalProtectionDepartmentName()); + map.put("operatorSignatureName", fire.getOperatorSignatureName()); + map.put("guardianSignatureName", fire.getGuardianSignatureName()); + + String url; +// url = "C:\\Users\\Administrator\\Desktop\\受限空间模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/受限空间模板.docx").getAbsolutePath(); + Map workerMap = workerInfoService.list(new LambdaQueryWrapper() + .eq(WorkerInfo::getProjectSn, fire.getProjectSn()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().collect(Collectors.toMap(WorkerInfo::getId, WorkerInfo::getWorkerName)); + String detail = fire.getJobHazardIdentificationDetail(); + JSONArray detailJa = JSON.parseArray(detail); + if (CollUtil.isNotEmpty(detailJa)) { + for (int i = 0; i < detailJa.size(); i++) { + JSONObject jo = detailJa.getJSONObject(i); + map.put("a" + (i + 1), jo.getString("field5703120857118")); + map.put("b" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field8506620872502"))); + map.put("c" + (i + 1), getYesOrNot(jo.getString("field4427420877151"))); + map.put("d" + (i + 1), jo.getString("field9463720880350")); + } + } + File tempFile = File.createTempFile(IdUtil.simpleUUID(), ".docx"); + EasyPoiUtil.exportWord(map, url, tempFile); + + EasyPoiUtil.wordToPdfExport(response, tempFile); + } + + private String getYesOrNot(String s) { + if (Objects.equals(s, "是")) { + return "☑"; + } else { + return "□"; + } + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/FirstOrderFireController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/FirstOrderFireController.java index e78e7c052..c49084cad 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/FirstOrderFireController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/FirstOrderFireController.java @@ -1,13 +1,25 @@ package com.zhgd.xmgl.modules.baotou.controller; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.baotou.entity.FirstOrderFire; import com.zhgd.xmgl.modules.baotou.service.IFirstOrderFireService; +import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; +import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl; +import com.zhgd.xmgl.util.EasyPoiUtil; +import com.zhgd.xmgl.util.Fileutils; +import com.zhgd.xmgl.util.FlowUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -16,10 +28,15 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.simpleframework.xml.core.Validate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; /** @@ -34,8 +51,14 @@ import java.util.*; @Slf4j @Api(tags = "一级二级三级动火相关Api") public class FirstOrderFireController { + @Lazy + @Autowired + WorkerInfoServiceImpl workerInfoService; @Autowired private IFirstOrderFireService firstOrderFireService; + @Lazy + @Autowired + private ISystemUserService systemUserService; /** * 分页列表查询 @@ -265,4 +288,175 @@ public class FirstOrderFireController { return Result.success(firstOrderFireService.queryById(id)); } + @OperLog(operModul = "动火管理", operType = "", operDesc = "导出pdf文件") + @ApiOperation(value = "导出pdf文件", notes = "导出pdf文件", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "id", paramType = "query", required = true, dataType = "String") + @GetMapping("exportPdf") + public void exportPdf(HttpServletResponse response, @RequestParam(name = "id", required = true) String id) throws IOException { + Map map = new HashMap<>(); + FirstOrderFire fire = firstOrderFireService.queryById(id); + map.put("level", fire.getLevel()); + map.put("number", fire.getNumber()); + map.put("hotFireUnit", fire.getHotFireUnit()); + map.put("hotFireContent", fire.getHotFireContent()); + map.put("hotFireArea", fire.getHotFireArea()); + map.put("applicationStartTime", DateUtil.format(fire.getApplicationStartTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("applicationEndTime", DateUtil.format(fire.getApplicationEndTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("detailedList", fire.getDetailedList()); + map.put("applicant1", fire.getApplicant1()); + map.put("applicant2", fire.getApplicant2()); + map.put("guardian1", fire.getGuardian1()); + map.put("guardian2", fire.getGuardian2()); + map.put("confirmer1", fire.getConfirmer1()); + map.put("confirmer2", fire.getConfirmer2()); + map.put("hotFireOperator1", fire.getHotFireOperator1()); + map.put("specialQualificationCertificateNumber1", fire.getSpecialQualificationCertificateNumber1()); + map.put("hotFireOperator2", fire.getHotFireOperator2()); + map.put("specialQualificationCertificateNumber2", fire.getSpecialQualificationCertificateNumber2()); + map.put("testingAndAnalysisTime", DateUtil.format(fire.getTestingAndAnalysisTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("testingAndAnalysisLocation", fire.getTestingAndAnalysisLocation()); + map.put("testingAndAnalysisData", fire.getTestingAndAnalysisData()); + map.put("testingAndAnalysisConclusion", fire.getTestingAndAnalysisConclusion()); + map.put("testingAndAnalysisPerson", fire.getTestingAndAnalysisPerson()); + map.put("testingAndAnalysisSheetAttached", fire.getTestingAndAnalysisSheetAttached()); + map.put("epcSiteManagerReviewer", fire.getEpcSiteManagerReviewer()); + map.put("supervisingDirectorReviewer", fire.getSupervisingDirectorReviewer()); + map.put("projectTeamReviewer", fire.getProjectTeamReviewer()); + map.put("safetyQualityEnvironmentDepartmentReviewer", fire.getSafetyQualityEnvironmentDepartmentReviewer()); + map.put("projectDirectorSafetyApprover", fire.getProjectDirectorSafetyApprover()); + map.put("dateTime", DateUtil.format(fire.getDateTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("hotFireEndInspectionPerson", fire.getHotFireEndInspectionPerson()); + map.put("hotFirePersonSignatureDateTime", DateUtil.format(fire.getHotFirePersonSignatureDateTime(), "yyyy年MM月dd日")); + map.put("hotFireEndInspectionGuardian", fire.getHotFireEndInspectionGuardian()); + map.put("guardianSignatureDateTime", DateUtil.format(fire.getGuardianSignatureDateTime(), "yyyy年MM月dd日")); + map.put("projectSn", fire.getProjectSn()); +// map.put("createTime", fire.getCreateTime()); +// map.put("updateTime", fire.getUpdateTime()); + map.put("epcSafetyManager", fire.getEpcSafetyManager()); + map.put("supervisorGeneralAgent", fire.getSupervisorGeneralAgent()); + map.put("projectConstructionManager", fire.getProjectConstructionManager()); + map.put("safetyQualityEnvironmentDepartmentManager", fire.getSafetyQualityEnvironmentDepartmentManager()); + map.put("contractorConstructionManagerReviewer", fire.getContractorConstructionManagerReviewer()); + map.put("supervisingSafetyEngineerReviewer", fire.getSupervisingSafetyEngineerReviewer()); + map.put("projectTeamConstructionManagerApprover", fire.getProjectTeamConstructionManagerApprover()); + map.put("constructionContent", fire.getConstructionContent()); + map.put("hotStartMethod", fire.getHotStartMethod()); + map.put("constructionManager", fire.getConstructionManager()); + map.put("constructionManagerPhoneNumber", fire.getConstructionManagerPhoneNumber()); + map.put("constructionFireMonitor", fire.getConstructionFireMonitor()); + map.put("constructionFireMonitorPhoneNumber", fire.getConstructionFireMonitorPhoneNumber()); + map.put("hotStartPersonnel", fire.getHotStartPersonnel()); + map.put("specialOperatorIdentificationNumber", fire.getSpecialOperatorIdentificationNumber()); + map.put("hotStartTime", DateUtil.format(fire.getHotStartTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("hotEndTime", DateUtil.format(fire.getHotEndTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("analysisTime", DateUtil.format(fire.getAnalysisTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("samplingLocation", fire.getSamplingLocation()); + map.put("analyst", fire.getAnalyst()); + try { + String[] ad = {"氧气%(19.5%-23.5%)", "硫化氢(<10mg/)", "可燃气体%(LEL>4%时,<0.5%),%(LEL<4%时,<0.2%)"}; + map.put("analysisData", ad[fire.getAnalysisData() - 1]); + } catch (Exception e) { + log.error("",e); + map.put("analysisData", null); + } + map.put("safetyProtectionMeasure", fire.getSafetyProtectionMeasure()); + map.put("contractorConstructionManagerApplication", fire.getContractorConstructionManagerApplication()); + map.put("contractorConstructionManagerApplicationTime", DateUtil.format(fire.getContractorConstructionManagerApplicationTime(), "yyyy年MM月dd日")); + map.put("contractorSafetyManagerReview", fire.getContractorSafetyManagerReview()); + map.put("contractorSafetyManagerReviewTime", DateUtil.format(fire.getContractorSafetyManagerReviewTime(), "yyyy年MM月dd日")); + map.put("contractorProjectManagerApproval", fire.getContractorProjectManagerApproval()); + map.put("contractorProjectManagerApprovalTime", DateUtil.format(fire.getContractorProjectManagerApprovalTime(), "yyyy年MM月dd日")); + map.put("operationFireMonitor", fire.getOperationFireMonitor()); + map.put("completionTime", DateUtil.format(fire.getCompletionTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("hotFireUnitName", fire.getHotFireUnitName()); + map.put("applicant1Name", fire.getApplicant1Name()); + map.put("applicant2Name", fire.getApplicant2Name()); + map.put("guardian1Name", fire.getGuardian1Name()); + map.put("guardian2Name", fire.getGuardian2Name()); + map.put("confirmer1Name", fire.getConfirmer1Name()); + map.put("confirmer2Name", fire.getConfirmer2Name()); + map.put("hotFireOperator1Name", fire.getHotFireOperator1Name()); + map.put("hotFireOperator2Name", fire.getHotFireOperator2Name()); + map.put("epcSiteManagerReviewerName", fire.getEpcSiteManagerReviewerName()); + map.put("supervisingDirectorReviewerName", fire.getSupervisingDirectorReviewerName()); + map.put("projectTeamReviewerName", fire.getProjectTeamReviewerName()); + map.put("safetyQualityEnvironmentDepartmentReviewerName", fire.getSafetyQualityEnvironmentDepartmentReviewerName()); + map.put("projectDirectorSafetyApproverName", fire.getProjectDirectorSafetyApproverName()); + map.put("hotFireEndInspectionPersonName", fire.getHotFireEndInspectionPersonName()); + map.put("hotFireEndInspectionGuardianName", fire.getHotFireEndInspectionGuardianName()); + map.put("epcSafetyManagerName", fire.getEpcSafetyManagerName()); + map.put("supervisorGeneralAgentName", fire.getSupervisorGeneralAgentName()); + map.put("projectConstructionManagerName", fire.getProjectConstructionManagerName()); + map.put("safetyQualityEnvironmentDepartmentManagerName", fire.getSafetyQualityEnvironmentDepartmentManagerName()); + map.put("contractorConstructionManagerReviewerName", fire.getContractorConstructionManagerReviewerName()); + map.put("supervisingSafetyEngineerReviewerName", fire.getSupervisingSafetyEngineerReviewerName()); + map.put("projectTeamConstructionManagerApproverName", fire.getProjectTeamConstructionManagerApproverName()); + map.put("constructionManagerName", fire.getConstructionManagerName()); + map.put("constructionFireMonitorName", fire.getConstructionFireMonitorName()); + map.put("hotStartPersonnelName", fire.getHotStartPersonnelName()); + map.put("contractorConstructionManagerApplicationName", fire.getContractorConstructionManagerApplicationName()); + map.put("contractorSafetyManagerReviewName", fire.getContractorSafetyManagerReviewName()); + map.put("contractorProjectManagerApprovalName", fire.getContractorProjectManagerApprovalName()); + map.put("operationFireMonitorName", fire.getOperationFireMonitorName()); + String url; + if (Objects.equals(fire.getLevel(), 1)) { +// url = "C:\\Users\\Administrator\\Desktop\\一级动火模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/一级动火模板.docx").getAbsolutePath(); + } else if (Objects.equals(fire.getLevel(), 2)) { +// url = "C:\\Users\\Administrator\\Desktop\\二级动火模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/二级动火模板.docx").getAbsolutePath(); + } else if (Objects.equals(fire.getLevel(), 3)) { +// url = "C:\\Users\\Administrator\\Desktop\\三级动火模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/三级动火模板.docx").getAbsolutePath(); + } else { +// url = "C:\\Users\\Administrator\\Desktop\\普通动火模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/普通动火模板.docx").getAbsolutePath(); + } + Map workerMap = workerInfoService.list(new LambdaQueryWrapper() + .eq(WorkerInfo::getProjectSn, fire.getProjectSn()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().collect(Collectors.toMap(WorkerInfo::getId, WorkerInfo::getWorkerName)); + String detail = fire.getDetailedList(); + JSONArray detailJa = JSON.parseArray(detail); + if (CollUtil.isNotEmpty(detailJa)) { + for (int i = 0; i < detailJa.size(); i++) { + JSONObject jo = detailJa.getJSONObject(i); + if (Objects.equals(fire.getLevel(), 1)) { + map.put("a" + (i + 1), jo.getString("field1113539018413")); + map.put("b" + (i + 1), jo.getString("field6295298020011")); + map.put("c" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field7181898419375"))); + } else if (Objects.equals(fire.getLevel(), 2)) { + map.put("a" + (i + 1), jo.getString("field4919535369636")); + map.put("b" + (i + 1), jo.getString("field6278135426318")); + map.put("c" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field4233935375452"))); + } else if (Objects.equals(fire.getLevel(), 3)) { + map.put("a" + (i + 1), jo.getString("field4155160069776")); + map.put("b" + (i + 1), jo.getString("field5042360362968")); + map.put("c" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field4503360073890"))); + } + + } + } + JSONArray safeJa = JSON.parseArray(fire.getSafetyProtectionMeasure()); + if (CollUtil.isNotEmpty(safeJa)) { + for (int i = 0; i < safeJa.size(); i++) { + JSONObject jo = safeJa.getJSONObject(i); + map.put("a" + (i + 1), jo.getString("field9704462412249")); + map.put("b" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field8981162420235"))); + map.put("c" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field4093861906891"))); + } + } + JSONArray specialJa = JSON.parseArray(fire.getSpecialOperatorIdentificationNumber()); + if (CollUtil.isNotEmpty(specialJa)) { + for (int i = 0; i < specialJa.size(); i++) { + JSONObject jo = specialJa.getJSONObject(i); + map.put("s" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field2567362300101"))); + map.put("sc" + (i + 1), jo.getString("field4813762306585")); + } + } + File tempFile = File.createTempFile(IdUtil.simpleUUID(), ".docx"); + EasyPoiUtil.exportWord(map, url, tempFile); + + EasyPoiUtil.wordToPdfExport(response, tempFile); + } + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/HeightPermitController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/HeightPermitController.java index dd52b49df..11cd7a140 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/HeightPermitController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/HeightPermitController.java @@ -1,14 +1,23 @@ package com.zhgd.xmgl.modules.baotou.controller; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.baotou.entity.HeightPermit; import com.zhgd.xmgl.modules.baotou.service.IHeightPermitService; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; +import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl; +import com.zhgd.xmgl.util.EasyPoiUtil; +import com.zhgd.xmgl.util.Fileutils; import com.zhgd.xmgl.util.FlowUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -16,16 +25,20 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang3.StringUtils; import org.simpleframework.xml.core.Validate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; /** @@ -40,6 +53,9 @@ import java.util.Optional; @Slf4j @Api(tags = "高处作业许可证相关Api") public class HeightPermitController { + @Lazy + @Autowired + WorkerInfoServiceImpl workerInfoService; @Autowired private IHeightPermitService heightPermitService; @@ -197,8 +213,81 @@ public class HeightPermitController { @ApiImplicitParam(name = "selectType", value = "查询类型,1、24小时,2近七天,3最近30天", paramType = "body", required = true, dataType = "Integer"), }) @GetMapping(value = "/countWork") - public Result> countWork(@ApiIgnore @RequestParam HashMap param) { + public Result> countWork(@ApiIgnore @RequestParam HashMap param) { return Result.success(heightPermitService.countWork(param)); } + @OperLog(operModul = "高处作业许可证管理", operType = "", operDesc = "导出pdf文件") + @ApiOperation(value = "导出pdf文件", notes = "导出pdf文件", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "id", paramType = "query", required = true, dataType = "String") + @GetMapping("exportPdf") + public void exportPdf(HttpServletResponse response, @RequestParam(name = "id", required = true) String id) throws IOException { + Map map = new HashMap<>(); + HeightPermit fire = heightPermitService.queryById(id); + map.put("applicant", fire.getApplicant()); + map.put("constructionLocation", fire.getConstructionLocation()); + map.put("workContent", fire.getWorkContent()); + map.put("workHeight", fire.getWorkHeight()); + try { + String[] wc = {"一级(2-5m)", "二级(5-15m)", "三级(15-30m)", "特级(>30m)", "特殊"}; + map.put("workCategory", wc[fire.getWorkCategory() - 1]); + } catch (Exception e) { + log.error("", e); + map.put("workCategory", ""); + } + map.put("worker", fire.getWorker()); + map.put("workerTimeBegin", DateUtil.format(fire.getWorkerTimeBegin(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("workerTimeEnd", DateUtil.format(fire.getWorkerTimeEnd(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("supplementaryMeasure", fire.getSupplementaryMeasure()); + map.put("applicantTeamLeader", fire.getApplicantTeamLeader()); + map.put("applicantTeamLeaderTime", DateUtil.format(fire.getApplicantTeamLeaderTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("guardianContractor", fire.getGuardianContractor()); + map.put("guardianContractorTime", DateUtil.format(fire.getGuardianContractorTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("constructionContractorManager", fire.getConstructionContractorManager()); + map.put("constructionContractorManagerTime", DateUtil.format(fire.getConstructionContractorManagerTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("epcContractorManager", fire.getEpcContractorManager()); + map.put("epcContractorManagerTime", DateUtil.format(fire.getEpcContractorManagerTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("supervisionUnitManager", fire.getSupervisionUnitManager()); + map.put("supervisionUnitManagerTime", DateUtil.format(fire.getSupervisionUnitManagerTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("projectTeam", fire.getProjectTeam()); + map.put("projectTeamTime", DateUtil.format(fire.getProjectTeamTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("safetyDepartmentManager", fire.getSafetyDepartmentManager()); + map.put("safetyDepartmentManagerTime", DateUtil.format(fire.getSafetyDepartmentManagerTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("guardian", fire.getGuardian()); + map.put("guardianTime", DateUtil.format(fire.getGuardianTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("projectSn", fire.getProjectSn()); + map.put("createTime", fire.getCreateTime()); + map.put("updateTime", fire.getUpdateTime()); + map.put("safeControlMeasure", fire.getSafeControlMeasure()); + map.put("applicantName", fire.getApplicantName()); + map.put("workerName", fire.getWorkerName()); + map.put("applicantTeamLeaderName", fire.getApplicantTeamLeaderName()); + map.put("guardianContractorName", fire.getGuardianContractorName()); + map.put("constructionContractorManagerName", fire.getConstructionContractorManagerName()); + map.put("epcContractorManagerName", fire.getEpcContractorManagerName()); + map.put("supervisionUnitManagerName", fire.getSupervisionUnitManagerName()); + map.put("projectTeamName", fire.getProjectTeamName()); + map.put("safetyDepartmentManagerName", fire.getSafetyDepartmentManagerName()); + map.put("guardianName", fire.getGuardianName()); + String url; +// url = "C:\\Users\\Administrator\\Desktop\\高处作业许可模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/高处作业许可模板.docx").getAbsolutePath(); + Map workerMap = workerInfoService.list(new LambdaQueryWrapper() + .eq(WorkerInfo::getProjectSn, fire.getProjectSn()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().collect(Collectors.toMap(WorkerInfo::getId, WorkerInfo::getWorkerName)); + String detail = fire.getSafeControlMeasure(); + JSONArray detailJa = JSON.parseArray(detail); + if (CollUtil.isNotEmpty(detailJa)) { + for (int i = 0; i < detailJa.size(); i++) { + JSONObject jo = detailJa.getJSONObject(i); + map.put("a" + (i + 1), jo.getString("field9539657401800")); + map.put("b" + (i + 1), jo.getString("field9282320023273")); + map.put("c" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field8640601863915"))); + } + } + File tempFile = File.createTempFile(IdUtil.simpleUUID(), ".docx"); + EasyPoiUtil.exportWord(map, url, tempFile); + + EasyPoiUtil.wordToPdfExport(response, tempFile); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/LiftingOperationController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/LiftingOperationController.java index 821c10b99..748a62066 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/LiftingOperationController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/LiftingOperationController.java @@ -1,13 +1,23 @@ package com.zhgd.xmgl.modules.baotou.controller; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.baotou.entity.LiftingOperation; import com.zhgd.xmgl.modules.baotou.service.ILiftingOperationService; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; +import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; +import com.zhgd.xmgl.util.EasyPoiUtil; +import com.zhgd.xmgl.util.Fileutils; import com.zhgd.xmgl.util.FlowUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -17,10 +27,15 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.simpleframework.xml.core.Validate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; /** @@ -37,6 +52,9 @@ import java.util.*; public class LiftingOperationController { @Autowired private ILiftingOperationService liftingOperationService; + @Lazy + @Autowired + private IWorkerInfoService workerInfoService; /** * 分页列表查询 @@ -126,6 +144,7 @@ public class LiftingOperationController { Date operationSupervisorDate = Optional.ofNullable(map.get("operationSupervisorDate")).map(o -> DateUtil.parse(o.toString())).orElse(null); Date safetyEngineerDate = Optional.ofNullable(map.get("safetyEngineerDate")).map(o -> DateUtil.parse(o.toString())).orElse(null); LiftingOperation operation = new LiftingOperation(); + operation.setNum(FlowUtil.getString(map,"num")); operation.setApplicant(applicant); operation.setOperationEquipment(operationEquipment); operation.setOperationLocation(operationLocation); @@ -212,4 +231,117 @@ public class LiftingOperationController { return Result.success(liftingOperationService.queryById(id)); } + @OperLog(operModul = "起重吊装作业管理", operType = "", operDesc = "导出pdf文件") + @ApiOperation(value = "导出pdf文件", notes = "导出pdf文件", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "id", paramType = "query", required = true, dataType = "String") + @GetMapping("exportPdf") + public void exportPdf(HttpServletResponse response, @RequestParam(name = "id", required = true) String id) throws IOException { + Map map = new HashMap<>(); + LiftingOperation fire = liftingOperationService.queryById(id); + map.put("id", fire.getId()); + map.put("applicant", fire.getApplicant()); + map.put("operationEquipment", fire.getOperationEquipment()); + map.put("operationLocation", fire.getOperationLocation()); + map.put("operationContent", fire.getOperationContent()); + map.put("operationStartTime", DateUtil.format(fire.getOperationStartTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("operationEndTime", DateUtil.format(fire.getOperationEndTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("craneTypeLicensePlateNumber", fire.getCraneTypeLicensePlateNumber()); + map.put("loadDescription", fire.getLoadDescription()); + try { + String[] levels = {"一级(M>100吨)", "二级(40吨≤M≤100吨)", "三级(M<40吨)"}; + map.put("level", levels[fire.getLevel() - 1]); + } catch (Exception e) { + log.error("", e); + map.put("level", ""); + } + map.put("num", fire.getNum()); + map.put("operatorLicenseNumber", fire.getOperatorLicenseNumber()); + map.put("safetyMeasuresList", fire.getSafetyMeasuresList()); + map.put("operationUnitConstructionApplicant", fire.getOperationUnitConstructionApplicant()); + map.put("operationUnitConstructionApplicantDate", DateUtil.format(fire.getOperationUnitConstructionApplicantDate(), "yyyy年MM月dd日")); + map.put("operationSupervision", fire.getOperationSupervision()); + map.put("operationSupervisionDate", DateUtil.format(fire.getOperationSupervisionDate(), "yyyy年MM月dd日")); + map.put("projectConstructionManagerOfConstructionContractor", fire.getProjectConstructionManagerOfConstructionContractor()); + map.put("projectConstructionManagerTime", DateUtil.format(fire.getProjectConstructionManagerTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("safetyManagerOfConstructionContractor", fire.getSafetyManagerOfConstructionContractor()); + map.put("safetyManagerTimeOfConstructionContractor", DateUtil.format(fire.getSafetyManagerTimeOfConstructionContractor(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("siteManagerProfessionalEngineer", fire.getSiteManagerProfessionalEngineer()); + map.put("siteManagerProfessionalEngineerTime", DateUtil.format(fire.getSiteManagerProfessionalEngineerTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("safetyManagerOfEpcContractor", fire.getSafetyManagerOfEpcContractor()); + map.put("safetyManagerTimeOfEpcContractor", DateUtil.format(fire.getSafetyManagerTimeOfEpcContractor(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("safetyEngineerOfSupervisionUnit", fire.getSafetyEngineerOfSupervisionUnit()); + map.put("safetyEngineerTimeOfSupervisionUnit", DateUtil.format(fire.getSafetyEngineerTimeOfSupervisionUnit(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("directorGeneralAgent", fire.getDirectorGeneralAgent()); + map.put("directorGeneralAgentTime", DateUtil.format(fire.getDirectorGeneralAgentTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("professionalEngineerOfProjectTeam", fire.getProfessionalEngineerOfProjectTeam()); + map.put("professionalEngineerDateOfProjectTeam", DateUtil.format(fire.getProfessionalEngineerDateOfProjectTeam(), "yyyy年MM月dd日")); + map.put("projectConstructionManagerOfProjectTeam", fire.getProjectConstructionManagerOfProjectTeam()); + map.put("projectConstructionManagerDateOfProjectTeam", DateUtil.format(fire.getProjectConstructionManagerDateOfProjectTeam(), "yyyy年MM月dd日")); + map.put("professionalEngineerOfConstructionManagementDepartment", fire.getProfessionalEngineerOfConstructionManagementDepartment()); + map.put("professionalEngineerDateOfConstructionManagementDepartment", DateUtil.format(fire.getProfessionalEngineerDateOfConstructionManagementDepartment(), "yyyy年MM月dd日")); + map.put("departmentManager", fire.getDepartmentManager()); + map.put("departmentManagerDate", DateUtil.format(fire.getDepartmentManagerDate(), "yyyy年MM月dd日")); + map.put("operationSupervisor", fire.getOperationSupervisor()); + map.put("operationSupervisorDate", DateUtil.format(fire.getOperationSupervisorDate(), "yyyy年MM月dd日")); + map.put("safetyEngineer", fire.getSafetyEngineer()); + map.put("safetyEngineerDate", DateUtil.format(fire.getSafetyEngineerDate(), "yyyy年MM月dd日")); + map.put("projectSn", fire.getProjectSn()); + map.put("createTime", DateUtil.format(fire.getCreateTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("updateTime", DateUtil.format(fire.getUpdateTime(), "yyyy年MM月dd日HH时mm分ss秒")); + map.put("applicantName", fire.getApplicantName()); + map.put("operationUnitConstructionApplicantName", fire.getOperationUnitConstructionApplicantName()); + map.put("operationSupervisionName", fire.getOperationSupervisionName()); + map.put("projectConstructionManagerOfConstructionContractorName", fire.getProjectConstructionManagerOfConstructionContractorName()); + map.put("safetyManagerOfConstructionContractorName", fire.getSafetyManagerOfConstructionContractorName()); + map.put("siteManagerProfessionalEngineerName", fire.getSiteManagerProfessionalEngineerName()); + map.put("safetyManagerOfEpcContractorName", fire.getSafetyManagerOfEpcContractorName()); + map.put("safetyEngineerOfSupervisionUnitName", fire.getSafetyEngineerOfSupervisionUnitName()); + map.put("directorGeneralAgentName", fire.getDirectorGeneralAgentName()); + map.put("professionalEngineerOfProjectTeamName", fire.getProfessionalEngineerOfProjectTeamName()); + map.put("projectConstructionManagerOfProjectTeamName", fire.getProjectConstructionManagerOfProjectTeamName()); + map.put("professionalEngineerOfConstructionManagementDepartmentName", fire.getProfessionalEngineerOfConstructionManagementDepartmentName()); + map.put("departmentManagerName", fire.getDepartmentManagerName()); + map.put("operationSupervisorName", fire.getOperationSupervisorName()); + map.put("safetyEngineerName", fire.getSafetyEngineerName()); + map.put("operationEquipmentName", fire.getOperationEquipmentName()); + + String url; +// url = "C:\\Users\\Administrator\\Desktop\\起重吊装作业模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/起重吊装作业模板.docx").getAbsolutePath(); + Map workerMap = workerInfoService.list(new LambdaQueryWrapper() + .eq(WorkerInfo::getProjectSn, fire.getProjectSn()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().collect(Collectors.toMap(WorkerInfo::getId, WorkerInfo::getWorkerName)); + String num = fire.getOperatorLicenseNumber(); + JSONArray numJa = JSON.parseArray(num); + if (CollUtil.isNotEmpty(numJa)) { + for (int i = 0; i < numJa.size(); i++) { + JSONObject jo = numJa.getJSONObject(i); + map.put("s" + (i + 1), workerMap.get(FlowUtil.getPullDownLong(jo, "field6438549419062"))); + map.put("sc" + (i + 1), jo.getString("field8297449432862")); + } + } + JSONArray safeJa = JSON.parseArray(fire.getSafetyMeasuresList()); + if (CollUtil.isNotEmpty(safeJa)) { + for (int i = 0; i <= 24; i++) { + try { + JSONObject jo = safeJa.getJSONObject(i); + map.put("c" + (i + 1), getYesOrNot(jo.getString("field4905649477307"))); + map.put("d" + (i + 1), jo.getString("field9615049464860")); + } catch (Exception e) { + } + } + } + + File tempFile = File.createTempFile(IdUtil.simpleUUID(), ".docx"); + EasyPoiUtil.exportWord(map, url, tempFile); + + EasyPoiUtil.wordToPdfExport(response, tempFile); + } + + private String getYesOrNot(String s) { + if (Objects.equals(s, "是")) { + return "☑"; + } else { + return "□"; + } + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/NondestructiveTestOrderTicketController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/NondestructiveTestOrderTicketController.java index 4ecb77640..96aa1ed74 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/NondestructiveTestOrderTicketController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/NondestructiveTestOrderTicketController.java @@ -1,14 +1,20 @@ package com.zhgd.xmgl.modules.baotou.controller; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.gexin.fastjson.JSON; +import com.gexin.fastjson.JSONArray; +import com.gexin.fastjson.JSONObject; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.modules.baotou.entity.NondestructiveTestOrderTicket; import com.zhgd.xmgl.modules.baotou.entity.PipelineWeldingRecord; import com.zhgd.xmgl.modules.baotou.service.INondestructiveTestOrderTicketService; import com.zhgd.xmgl.modules.baotou.service.IPipelineWeldingRecordService; +import com.zhgd.xmgl.util.EasyPoiUtil; +import com.zhgd.xmgl.util.Fileutils; import com.zhgd.xmgl.util.FlowUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -22,6 +28,9 @@ import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; import java.util.*; @@ -226,4 +235,98 @@ public class NondestructiveTestOrderTicketController { return Result.success(nondestructiveTestOrderTicketService.queryById(id)); } + @OperLog(operModul = "无损检测委托单管理", operType = "", operDesc = "导出pdf文件") + @ApiOperation(value = "导出pdf文件", notes = "导出pdf文件", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "id", paramType = "query", required = true, dataType = "String") + @GetMapping("exportPdf") + public void exportPdf(HttpServletResponse response, @RequestParam(name = "id", required = true) String id) throws IOException { + Map map = new HashMap<>(); + NondestructiveTestOrderTicket fire = nondestructiveTestOrderTicketService.queryById(id); + map.put("id", fire.getId()); + map.put("num", fire.getNum()); + map.put("projectName", fire.getProjectName()); + map.put("deviceUnitId", fire.getDeviceUnitId()); + map.put("testPieceName", fire.getTestPieceName()); + map.put("pipelineInformationId", fire.getPipelineInformationId()); + map.put("commissioningUnit", fire.getCommissioningUnit()); + map.put("weldingMethod", fire.getWeldingMethod()); + map.put("medium", fire.getMedium()); + map.put("grooveForm", fire.getGrooveForm()); + map.put("testingRatio", fire.getTestingRatio()); + try { + String[] tm = {"RT(射线检测)", "PT(渗透检测)", "MT(磁粉检测)", "UT(超声检测)", "TOF(衍射时差法超声检)", "GP(光谱检测)", "YD(硬度检测)", "CH(超声测厚)", "TCH(涂层测厚)", "DHH(电火花检测)", "WL(涡流检测)", "TST(铁素体检测)"}; + map.put("testingMethod", tm[fire.getTestingMethod() - 1]); + } catch (Exception e) { + log.error("", e); + map.put("testingMethod", ""); + } + map.put("temperature", fire.getTemperature()); + map.put("weldNumber", fire.getWeldNumber()); + try { + String[] ql = {"一级", "二级", "三级"}; + map.put("qualifiedLevel", ql[fire.getQualifiedLevel() - 1]); + } catch (Exception e) { + log.error("", e); + map.put("qualifiedLevel", ""); + } + map.put("testingStandard", fire.getTestingStandard()); + map.put("pressure", fire.getPressure()); + map.put("testNumber", fire.getTestNumber()); + map.put("testingDate", DateUtil.format(fire.getTestingDate(), "yyyy年MM月dd日")); + map.put("craterList", fire.getCraterList()); + map.put("mainDescriptionAttachedPicture", fire.getMainDescriptionAttachedPicture()); + map.put("testingReportAttachment", fire.getTestingReportAttachment()); + map.put("constructionUnit", fire.getConstructionUnit()); + map.put("qualityChargePersonSignature", fire.getQualityChargePersonSignature()); + map.put("qualityChargePersonSignatureDate", DateUtil.format(fire.getQualityChargePersonSignatureDate(), "yyyy年MM月dd日")); + map.put("epcContractor", fire.getEpcContractor()); + map.put("professionalEngineerSignature", fire.getProfessionalEngineerSignature()); + map.put("professionalEngineerSignatureDate", DateUtil.format(fire.getProfessionalEngineerSignatureDate(), "yyyy年MM月dd日")); + map.put("supervisingUnit", fire.getSupervisingUnit()); + map.put("supervisingEngineerSignature", fire.getSupervisingEngineerSignature()); + map.put("supervisingEngineerSignatureDate", DateUtil.format(fire.getSupervisingEngineerSignatureDate(),"yyyy年MM月dd日")); + map.put("testingUnit", fire.getTestingUnit()); + map.put("testingUnitChargePersonSignature", fire.getTestingUnitChargePersonSignature()); + map.put("testingUnitChargePersonSignatureDate", DateUtil.format(fire.getTestingUnitChargePersonSignatureDate(),"yyyy年MM月dd日")); + map.put("projectSn", fire.getProjectSn()); + map.put("createDate", fire.getCreateDate()); + map.put("updateDate", fire.getUpdateDate()); + map.put("deviceUnitName", fire.getDeviceUnitName()); + map.put("deviceUnitNo", fire.getDeviceUnitNo()); + map.put("commissioningUnitName", fire.getCommissioningUnitName()); + map.put("constructionUnitName", fire.getConstructionUnitName()); + map.put("qualityChargePersonSignatureName", fire.getQualityChargePersonSignatureName()); + map.put("epcContractorName", fire.getEpcContractorName()); + map.put("professionalEngineerSignatureName", fire.getProfessionalEngineerSignatureName()); + map.put("supervisingUnitName", fire.getSupervisingUnitName()); + map.put("supervisingEngineerSignatureName", fire.getSupervisingEngineerSignatureName()); + map.put("testingUnitName", fire.getTestingUnitName()); + map.put("testingUnitChargePersonSignatureName", fire.getTestingUnitChargePersonSignatureName()); + map.put("pipelineNumber", fire.getPipelineNumber()); + String url; +// url = "C:\\Users\\Administrator\\Desktop\\无损检测模板.docx"; + url = Fileutils.getExportTemplateFile("excel/work/无损检测模板.docx").getAbsolutePath(); + List> list = new ArrayList<>(); + map.put("list", list); + String detail = fire.getCraterList(); + JSONArray detailJa = JSON.parseArray(detail); + if (CollUtil.isNotEmpty(detailJa)) { + for (int i = 0; i < detailJa.size(); i++) { + JSONObject jo = detailJa.getJSONObject(i); + Map m = new HashMap<>(); + m.put("d0", i+1); + m.put("d1", FlowUtil.getPullDownString(jo, "field5496713710010")); + m.put("d2", jo.getString("field4898340503658")); + m.put("d3", jo.getString("field8195640514474")); + m.put("d4", jo.getString("field8807940520346")); + m.put("d5", jo.getString("field7676440525389")); + list.add(m); + } + } + File tempFile = File.createTempFile(IdUtil.simpleUUID(), ".docx"); + EasyPoiUtil.exportWord(map, url, tempFile); + + EasyPoiUtil.wordToPdfExport(response, tempFile); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/PipelineWeldingRecordController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/PipelineWeldingRecordController.java index dcf02bfa1..55e62093a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/PipelineWeldingRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/PipelineWeldingRecordController.java @@ -13,7 +13,6 @@ import com.zhgd.xmgl.modules.baotou.service.IPipelineWeldingRecordService; import com.zhgd.xmgl.util.ExcelUtils; import com.zhgd.xmgl.util.Fileutils; import com.zhgd.xmgl.util.FlowUtil; -import com.zhgd.xmgl.util.MapBuilder; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -208,7 +207,7 @@ public class PipelineWeldingRecordController { } //将项目清单集合添加到map中 map.put("listMap", listMap); - File out = Fileutils.getExportExcelTemplateFile("excel/焊接记录导出模版.xlsx"); + File out = Fileutils.getExportTemplateFile("excel/焊接记录导出模版.xlsx"); TemplateExportParams params = new TemplateExportParams(out.getAbsolutePath(), 0); Workbook workbook = ExcelExportUtil.exportExcel(params, map); ExcelUtils.downLoadExcel("管道焊接记录.xlsx", response, workbook); diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionController.java index 4741d1f27..19d849f52 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionController.java @@ -439,7 +439,7 @@ public class WorkerAdmissionController { if (CollUtil.isNotEmpty(allList)) { int i = 1; for (Map map : allList) { - TemplateExportParams params = new TemplateExportParams(Fileutils.getExportExcelTemplateFile("excel/导出人员申请表模板.xlsx").getAbsolutePath()); + TemplateExportParams params = new TemplateExportParams(Fileutils.getExportTemplateFile("excel/导出人员申请表模板.xlsx").getAbsolutePath()); Workbook workbook = ExcelExportUtil.exportExcel(params, map); String fileName = map.get("certificateIssuingUnitName") + "-" + map.get("certificateIssuingPersonName") + "-" + DateUtil.format(DateUtil.parse(map.get("addTime").toString()), "yyyyMMddHHmmss") + "-" + i++; fileName = Fileutils.checkFileName(fileName) + ".xlsx"; diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/CivilEngineeringQualityInspectionOrder.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/CivilEngineeringQualityInspectionOrder.java index d960e54b0..c227a7eb2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/CivilEngineeringQualityInspectionOrder.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/CivilEngineeringQualityInspectionOrder.java @@ -1,216 +1,294 @@ package com.zhgd.xmgl.modules.baotou.entity; -import java.io.Serializable; -import java.util.Date; 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 lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + /** * @Description: 土建工程质量检测委托单 * @author: pds - * @date: 2024-08-27 + * @date: 2024-08-27 * @version: V1.0 */ @Data @TableName("civil_engineering_quality_inspection_order") -@ApiModel(value="CivilEngineeringQualityInspectionOrder实体类",description="CivilEngineeringQualityInspectionOrder") +@ApiModel(value = "CivilEngineeringQualityInspectionOrder实体类", description = "CivilEngineeringQualityInspectionOrder") public class CivilEngineeringQualityInspectionOrder implements Serializable { private static final long serialVersionUID = 1L; - /**id*/ - @TableId(type = IdType.ASSIGN_ID) - @ApiModelProperty(value="id") - private java.lang.Long id ; - /**编号*/ - @Excel(name = "编号", width = 15) - @ApiModelProperty(value="编号") - private java.lang.String num ; - /**项目*/ - @Excel(name = "项目", width = 15) - @ApiModelProperty(value="项目") - private java.lang.String project ; - /**装置管理id*/ - @Excel(name = "装置管理id", width = 15) - @ApiModelProperty(value="装置管理id") - private java.lang.Long deviceUnitId ; - /**检测方式:1:试验窒检测;2:现场检测;*/ - @Excel(name = "检测方式:1:试验窒检测;2:现场检测;", width = 15) - @ApiModelProperty(value="检测方式:1:试验窒检测;2:现场检测;") - private java.lang.Integer testingMethod ; - /**检测类别:1:见证取样检测;2:专项检测;*/ - @Excel(name = "检测类别:1:见证取样检测;2:专项检测;", width = 15) - @ApiModelProperty(value="检测类别:1:见证取样检测;2:专项检测;") - private java.lang.Integer testingCategory ; - /**工程使用部位*/ - @Excel(name = "工程使用部位", width = 15) - @ApiModelProperty(value="工程使用部位") - private java.lang.String projectUseLocation ; - /**检测委托依据标准*/ - @Excel(name = "检测委托依据标准", width = 15) - @ApiModelProperty(value="检测委托依据标准") - private java.lang.String testingCommissionBasisStandard ; - /**检测代码列表*/ - @Excel(name = "检测代码列表", width = 15) - @ApiModelProperty(value="检测代码列表") - private java.lang.String testingCodeList ; - /**试件/样抽样组数*/ - @Excel(name = "试件/样抽样组数", width = 15) - @ApiModelProperty(value="试件/样抽样组数") - private java.lang.String testPieceSampleSamplingGroupNumber ; - /**试件/样编号*/ - @Excel(name = "试件/样编号", width = 15) - @ApiModelProperty(value="试件/样编号") - private java.lang.String testPieceSampleNumber ; - /**试件/样型号规格*/ - @Excel(name = "试件/样型号规格", width = 15) - @ApiModelProperty(value="试件/样型号规格") - private java.lang.String testPieceSampleModelSpecification ; - /**试件/样代表批量*/ - @Excel(name = "试件/样代表批量", width = 15) - @ApiModelProperty(value="试件/样代表批量") - private java.lang.String testPieceSampleRepresentativeBatch ; - /**产地/厂商*/ - @Excel(name = "产地/厂商", width = 15) - @ApiModelProperty(value="产地/厂商") - private java.lang.String originManufacturer ; - /**产品批号/炉号*/ - @Excel(name = "产品批号/炉号", width = 15) - @ApiModelProperty(value="产品批号/炉号") - private java.lang.String productBatchFurnaceNumber ; - /**焊接试件操作员*/ - @Excel(name = "焊接试件操作员", width = 15) - @ApiModelProperty(value="焊接试件操作员") - private java.lang.Long weldingTestPieceOperator ; - /**焊接试件操作证号*/ - @Excel(name = "焊接试件操作证号", width = 15) - @ApiModelProperty(value="焊接试件操作证号") - private java.lang.String weldingTestPieceOperationCertificateNumber ; - /**商标*/ - @Excel(name = "商标", width = 15) - @ApiModelProperty(value="商标") - private java.lang.String trademark ; - /**出厂合格证编号*/ - @Excel(name = "出厂合格证编号", width = 15) - @ApiModelProperty(value="出厂合格证编号") - private java.lang.String factoryCertificateNumber ; - /**检测委托方*/ - @Excel(name = "检测委托方", width = 15) - @ApiModelProperty(value="检测委托方") - private java.lang.Long testingClient ; - /**检测委托人*/ - @Excel(name = "检测委托人", width = 15) - @ApiModelProperty(value="检测委托人") - private java.lang.Long testingClientUser ; - /**检测委托人电话*/ - @Excel(name = "检测委托人电话", width = 15) - @ApiModelProperty(value="检测委托人电话") - private java.lang.String testingClientPhoneNumber ; - /**检测委托时间*/ - @Excel(name = "检测委托时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value="检测委托时间") - private java.util.Date testingCommissionTime ; - /**取样/送样人*/ - @Excel(name = "取样/送样人", width = 15) - @ApiModelProperty(value="取样/送样人") - private java.lang.Long samplingSampleDeliveryPerson ; - /**EPC承包商*/ - @Excel(name = "EPC承包商", width = 15) - @ApiModelProperty(value="EPC承包商") - private java.lang.Long epcContractor ; - /**专业工程师*/ - @Excel(name = "专业工程师", width = 15) - @ApiModelProperty(value="专业工程师") - private java.lang.Long professionalEngineer ; - /**监理见证方*/ - @Excel(name = "监理见证方", width = 15) - @ApiModelProperty(value="监理见证方") - private java.lang.Long supervisingWitness ; - /**监理见证人*/ - @Excel(name = "监理见证人", width = 15) - @ApiModelProperty(value="监理见证人") - private java.lang.Long supervisingWitnessUser ; - /**委托人电话*/ - @Excel(name = "委托人电话", width = 15) - @ApiModelProperty(value="委托人电话") - private java.lang.String clientPhoneNumber ; - /**见证记录*/ - @Excel(name = "见证记录", width = 15) - @ApiModelProperty(value="见证记录") - private java.lang.String witnessRecord ; - /**见证记录图片*/ - @Excel(name = "见证记录图片", width = 15) - @ApiModelProperty(value="见证记录图片") - private java.lang.String witnessRecordPicture ; - /**检测单位*/ - @Excel(name = "检测单位", width = 15) - @ApiModelProperty(value="检测单位") - private java.lang.Long testingUnit ; - /**委托接受人*/ - @Excel(name = "委托接受人", width = 15) - @ApiModelProperty(value="委托接受人") - private java.lang.Long client ; - /**检测报告出具承诺时限*/ - @Excel(name = "检测报告出具承诺时限", width = 15) - @ApiModelProperty(value="检测报告出具承诺时限") - private Date testingReportIssuanceCommitmentTimeLimit ; - /**需要说明事项*/ - @Excel(name = "需要说明事项", width = 15) - @ApiModelProperty(value="需要说明事项") - private java.lang.String mattersExplained ; - /**所属项目SN*/ - @Excel(name = "所属项目SN", width = 15) - @ApiModelProperty(value="所属项目SN") - private java.lang.String projectSn ; - /**创建时间*/ - @ApiModelProperty(value="创建时间") - private java.util.Date createDate ; - /**更新时间*/ - @ApiModelProperty(value="更新时间") - private java.util.Date updateDate ; + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.Long id; + /** + * 编号 + */ + @Excel(name = "编号", width = 15) + @ApiModelProperty(value = "编号") + private java.lang.String num; + /** + * 项目 + */ + @Excel(name = "项目", width = 15) + @ApiModelProperty(value = "项目") + private java.lang.String project; + /** + * 装置管理id + */ + @Excel(name = "装置管理id", width = 15) + @ApiModelProperty(value = "装置管理id") + private java.lang.Long deviceUnitId; + /** + * 检测方式:1:试验窒检测;2:现场检测; + */ + @Excel(name = "检测方式:1:试验窒检测;2:现场检测;", width = 15) + @ApiModelProperty(value = "检测方式:1:试验窒检测;2:现场检测;") + private java.lang.Integer testingMethod; + /** + * 检测类别:1:见证取样检测;2:专项检测; + */ + @Excel(name = "检测类别:1:见证取样检测;2:专项检测;", width = 15) + @ApiModelProperty(value = "检测类别:1:见证取样检测;2:专项检测;") + private java.lang.Integer testingCategory; + /** + * 工程使用部位 + */ + @Excel(name = "工程使用部位", width = 15) + @ApiModelProperty(value = "工程使用部位") + private java.lang.String projectUseLocation; + /** + * 检测委托依据标准 + */ + @Excel(name = "检测委托依据标准", width = 15) + @ApiModelProperty(value = "检测委托依据标准") + private java.lang.String testingCommissionBasisStandard; + /** + * 检测代码列表 + */ + @Excel(name = "检测代码列表", width = 15) + @ApiModelProperty(value = "检测代码列表") + private java.lang.String testingCodeList; + /** + * 试件/样抽样组数 + */ + @Excel(name = "试件/样抽样组数", width = 15) + @ApiModelProperty(value = "试件/样抽样组数") + private java.lang.String testPieceSampleSamplingGroupNumber; + /** + * 试件/样编号 + */ + @Excel(name = "试件/样编号", width = 15) + @ApiModelProperty(value = "试件/样编号") + private java.lang.String testPieceSampleNumber; + /** + * 试件/样型号规格 + */ + @Excel(name = "试件/样型号规格", width = 15) + @ApiModelProperty(value = "试件/样型号规格") + private java.lang.String testPieceSampleModelSpecification; + /** + * 试件/样代表批量 + */ + @Excel(name = "试件/样代表批量", width = 15) + @ApiModelProperty(value = "试件/样代表批量") + private java.lang.String testPieceSampleRepresentativeBatch; + /** + * 产地/厂商 + */ + @Excel(name = "产地/厂商", width = 15) + @ApiModelProperty(value = "产地/厂商") + private java.lang.String originManufacturer; + /** + * 产品批号/炉号 + */ + @Excel(name = "产品批号/炉号", width = 15) + @ApiModelProperty(value = "产品批号/炉号") + private java.lang.String productBatchFurnaceNumber; + /** + * 焊接试件操作员 + */ + @Excel(name = "焊接试件操作员", width = 15) + @ApiModelProperty(value = "焊接试件操作员") + private java.lang.Long weldingTestPieceOperator; + /** + * 焊接试件操作证号 + */ + @Excel(name = "焊接试件操作证号", width = 15) + @ApiModelProperty(value = "焊接试件操作证号") + private java.lang.String weldingTestPieceOperationCertificateNumber; + /** + * 商标 + */ + @Excel(name = "商标", width = 15) + @ApiModelProperty(value = "商标") + private java.lang.String trademark; + /** + * 出厂合格证编号 + */ + @Excel(name = "出厂合格证编号", width = 15) + @ApiModelProperty(value = "出厂合格证编号") + private java.lang.String factoryCertificateNumber; + /** + * 检测委托方 + */ + @Excel(name = "检测委托方", width = 15) + @ApiModelProperty(value = "检测委托方") + private java.lang.Long testingClient; + /** + * 检测委托人 + */ + @Excel(name = "检测委托人", width = 15) + @ApiModelProperty(value = "检测委托人") + private java.lang.Long testingClientUser; + /** + * 检测委托人电话 + */ + @Excel(name = "检测委托人电话", width = 15) + @ApiModelProperty(value = "检测委托人电话") + private java.lang.String testingClientPhoneNumber; + /** + * 检测委托时间 + */ + @Excel(name = "检测委托时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "检测委托时间") + private java.util.Date testingCommissionTime; + /** + * 取样/送样人 + */ + @Excel(name = "取样/送样人", width = 15) + @ApiModelProperty(value = "取样/送样人") + private java.lang.Long samplingSampleDeliveryPerson; + /** + * EPC承包商 + */ + @Excel(name = "EPC承包商", width = 15) + @ApiModelProperty(value = "EPC承包商") + private java.lang.Long epcContractor; + /** + * 专业工程师 + */ + @Excel(name = "专业工程师", width = 15) + @ApiModelProperty(value = "专业工程师") + private java.lang.Long professionalEngineer; + /** + * 监理见证方 + */ + @Excel(name = "监理见证方", width = 15) + @ApiModelProperty(value = "监理见证方") + private java.lang.Long supervisingWitness; + /** + * 监理见证人 + */ + @Excel(name = "监理见证人", width = 15) + @ApiModelProperty(value = "监理见证人") + private java.lang.Long supervisingWitnessUser; + /** + * 委托人电话 + */ + @Excel(name = "委托人电话", width = 15) + @ApiModelProperty(value = "委托人电话") + private java.lang.String clientPhoneNumber; + /** + * 见证记录 + */ + @Excel(name = "见证记录", width = 15) + @ApiModelProperty(value = "见证记录") + private java.lang.String witnessRecord; + /** + * 见证记录图片 + */ + @Excel(name = "见证记录图片", width = 15) + @ApiModelProperty(value = "见证记录图片") + private java.lang.String witnessRecordPicture; + /** + * 检测单位 + */ + @Excel(name = "检测单位", width = 15) + @ApiModelProperty(value = "检测单位") + private java.lang.Long testingUnit; + /** + * 委托接受人 + */ + @Excel(name = "委托接受人", width = 15) + @ApiModelProperty(value = "委托接受人") + private java.lang.Long client; + /** + * 检测报告出具承诺时限 + */ + @Excel(name = "检测报告出具承诺时限", width = 15) + @ApiModelProperty(value = "检测报告出具承诺时限") + private Date testingReportIssuanceCommitmentTimeLimit; + /** + * 需要说明事项 + */ + @Excel(name = "需要说明事项", width = 15) + @ApiModelProperty(value = "需要说明事项") + private java.lang.String mattersExplained; + /** + * 所属项目SN + */ + @Excel(name = "所属项目SN", width = 15) + @ApiModelProperty(value = "所属项目SN") + private java.lang.String projectSn; + /** + * 创建时间 + */ + @ApiModelProperty(value = "创建时间") + private java.util.Date createDate; + /** + * 更新时间 + */ + @ApiModelProperty(value = "更新时间") + private java.util.Date updateDate; - @TableField(exist = false) - @ApiModelProperty(value="装置单位名称") - private java.lang.String deviceUnitName ; - @TableField(exist = false) - @ApiModelProperty(value="装置单位号") - private java.lang.String deviceUnitNo ; - @TableField(exist = false) - @ApiModelProperty(value="焊接试件操作员名称") - private java.lang.String weldingTestPieceOperatorName ; - @TableField(exist = false) - @ApiModelProperty(value="检测委托方名称") - private java.lang.String testingClientName ; - @TableField(exist = false) - @ApiModelProperty(value="检测委托人名称") - private java.lang.String testingClientUserName ; - @TableField(exist = false) - @ApiModelProperty(value="取样/送样人名称") - private java.lang.String samplingSampleDeliveryPersonName ; - @TableField(exist = false) - @ApiModelProperty(value="EPC承包商名称") - private java.lang.String epcContractorName ; - @TableField(exist = false) - @ApiModelProperty(value="专业工程师名称") - private java.lang.String professionalEngineerName ; - @TableField(exist = false) - @ApiModelProperty(value="监理见证方名称") - private java.lang.String supervisingWitnessName ; - @TableField(exist = false) - @ApiModelProperty(value="监理见证人名称") - private java.lang.String supervisingWitnessUserName ; - @TableField(exist = false) - @ApiModelProperty(value="检测单位名称") - private java.lang.String testingUnitName ; - @TableField(exist = false) - @ApiModelProperty(value="委托接受人名称") - private java.lang.String clientName ; + @TableField(exist = false) + @ApiModelProperty(value = "装置单位名称") + private java.lang.String deviceUnitName; + @TableField(exist = false) + @ApiModelProperty(value = "装置单位号") + private java.lang.String deviceUnitNo; + @TableField(exist = false) + @ApiModelProperty(value = "焊接试件操作员名称") + private java.lang.String weldingTestPieceOperatorName; + @TableField(exist = false) + @ApiModelProperty(value = "检测委托方名称") + private java.lang.String testingClientName; + @TableField(exist = false) + @ApiModelProperty(value = "检测委托人名称") + private java.lang.String testingClientUserName; + @TableField(exist = false) + @ApiModelProperty(value = "取样/送样人名称") + private java.lang.String samplingSampleDeliveryPersonName; + @TableField(exist = false) + @ApiModelProperty(value = "EPC承包商名称") + private java.lang.String epcContractorName; + @TableField(exist = false) + @ApiModelProperty(value = "专业工程师名称") + private java.lang.String professionalEngineerName; + @TableField(exist = false) + @ApiModelProperty(value = "监理见证方名称") + private java.lang.String supervisingWitnessName; + @TableField(exist = false) + @ApiModelProperty(value = "监理见证人名称") + private java.lang.String supervisingWitnessUserName; + @TableField(exist = false) + @ApiModelProperty(value = "检测单位名称") + private java.lang.String testingUnitName; + @TableField(exist = false) + @ApiModelProperty(value = "委托接受人名称") + private java.lang.String clientName; } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/LiftingOperation.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/LiftingOperation.java index 869dd95d4..bdbe130a5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/LiftingOperation.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/LiftingOperation.java @@ -31,6 +31,8 @@ public class LiftingOperation implements Serializable { @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "id") private java.lang.Long id; + @ApiModelProperty(value = "编号") + private java.lang.String num; /** * 申请单位 */ diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/CivilEngineeringQualityInspectionOrderMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/CivilEngineeringQualityInspectionOrderMapper.xml index e78d62297..241bd8ae0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/CivilEngineeringQualityInspectionOrderMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/CivilEngineeringQualityInspectionOrderMapper.xml @@ -13,7 +13,7 @@ ei3.enterprise_name as supervising_witness_name, wi3.worker_name as supervising_witness_user_name, ei4.enterprise_name as testing_unit_name, - wi4.worker_name as asclient_namey, + wi4.worker_name as client_name, wi5.worker_name as sampling_sample_delivery_person_name from civil_engineering_quality_inspection_order t left join device_unit du on t.device_unit_id = du.id @@ -42,7 +42,7 @@ ei3.enterprise_name as supervising_witness_name, wi3.worker_name as supervising_witness_user_name, ei4.enterprise_name as testing_unit_name, - wi4.worker_name as asclient_namey, + wi4.worker_name as client_name, wi5.worker_name as sampling_sample_delivery_person_name from civil_engineering_quality_inspection_order t left join device_unit du on t.device_unit_id = du.id diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/MainProjectCompleteDetailServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/MainProjectCompleteDetailServiceImpl.java index 26e64e046..08baf303a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/MainProjectCompleteDetailServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/MainProjectCompleteDetailServiceImpl.java @@ -325,9 +325,9 @@ public class MainProjectCompleteDetailServiceImpl extends ServiceImpl totalMap = this.getOverviewTotalMap(sheetList, overviewYears, colList, treeNames); sheetList.add(0, totalMap); // File out = FileUtil.file("C:\\Users\\GUO\\Desktop\\mm.xlsx"); - File out = Fileutils.getExportExcelTemplateFile("excel/主要工程量完成情况计划总览导出模板.xlsx"); + File out = Fileutils.getExportTemplateFile("excel/主要工程量完成情况计划总览导出模板.xlsx"); TemplateExportParams params = new TemplateExportParams(out.getAbsolutePath()); params.setColForEach(true); Workbook workbook = ExcelExportUtil.exportExcelClone(realMap, params); diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamTrainRecordController.java b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamTrainRecordController.java index 0ffbb6706..2eb387157 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamTrainRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamTrainRecordController.java @@ -10,7 +10,6 @@ import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.xmgl.modules.baotou.entity.ConstructionPlanLedgerSet; import com.zhgd.xmgl.modules.exam.entity.ExamAnswerQuestion; import com.zhgd.xmgl.modules.exam.entity.ExamTrainRecord; import com.zhgd.xmgl.modules.exam.service.IExamTrainRecordService; @@ -19,7 +18,6 @@ import com.zhgd.xmgl.modules.exam.vo.SpecialWorkerVo; import com.zhgd.xmgl.util.ExcelUtils; import com.zhgd.xmgl.util.Fileutils; import com.zhgd.xmgl.util.PageUtil; -import com.zhgd.xmgl.util.ReflectUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -325,7 +323,7 @@ public class ExamTrainRecordController { } //将项目清单集合添加到map中 map.put("listMap", listMap); - File out = Fileutils.getExportExcelTemplateFile("excel/一级安全教育培训台账模版.xlsx"); + File out = Fileutils.getExportTemplateFile("excel/一级安全教育培训台账模版.xlsx"); TemplateExportParams params = new TemplateExportParams(out.getAbsolutePath(), 0); Workbook workbook = ExcelExportUtil.exportExcel(params, map); ExcelUtils.downLoadExcel("安全教育培训台账.xlsx", response, workbook); @@ -351,7 +349,7 @@ public class ExamTrainRecordController { } } map.put("listMap", listMap); - File out = Fileutils.getExportExcelTemplateFile("excel/特种作业人员登记台账模版.xlsx"); + File out = Fileutils.getExportTemplateFile("excel/特种作业人员登记台账模版.xlsx"); TemplateExportParams params = new TemplateExportParams(out.getAbsolutePath()); Workbook workbook = ExcelExportUtil.exportExcel(params, map); ExcelUtils.downLoadExcel("特种作业人员登记台账.xlsx", response, workbook); diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java index be82eba39..fbc9d78ea 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java @@ -85,6 +85,7 @@ public class QualityInspectionRecordServiceImpl extends ServiceImpl map, String url, File tempFile) { + try { + XWPFDocument doc = WordExportUtil.exportWord07(url, map); + FileOutputStream fos = new FileOutputStream(tempFile); + doc.write(fos); + fos.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * word转pdf导出 + * + * @param response + * @param tempFile word文档文件 + */ + public static void wordToPdfExport(HttpServletResponse response, File tempFile) { + response.setContentType("application/pdf"); + response.setHeader("Content-Disposition", "attachment; filename=name.pdf"); + try (InputStream docxInputStream = new FileInputStream(tempFile); + OutputStream pdfOutputStream = response.getOutputStream() +// OutputStream pdfOutputStream = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\管道焊接记录.pdf") + ) { + + IConverter converter = LocalConverter.builder().build(); + converter + .convert(docxInputStream) + .as(DocumentType.DOCX) + .to(pdfOutputStream) + .as(DocumentType.PDF) + .execute(); + + // 通常不需要在这里调用 flush(),因为 execute()方法可能已经完成了它,但如果遇到特定问题,可以尝试调用它 + // pdfOutputStream.flush(); + + } catch (Exception e) { + // 设置适当的 HTTP 状态码和错误消息 + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + // 可以在这里记录错误或向客户端发送错误消息(但注意,响应流可能已关闭) + e.printStackTrace(); + } finally { + // 清理临时文件 + if (!tempFile.delete()) { + tempFile.deleteOnExit(); + } + } + } + + + public static void main(String[] args) { +// EasyPoiUtil.wordToPdfExport(null, new File("C:\\Users\\Administrator\\Desktop\\中科佳成优化.docx")); + } +} diff --git a/src/main/java/com/zhgd/xmgl/util/Fileutils.java b/src/main/java/com/zhgd/xmgl/util/Fileutils.java index 9012a2423..8923aabdf 100644 --- a/src/main/java/com/zhgd/xmgl/util/Fileutils.java +++ b/src/main/java/com/zhgd/xmgl/util/Fileutils.java @@ -71,13 +71,13 @@ public class Fileutils { } /** - * 获取导出的excel的模板 + * 获取导出的模板 * * @param classPath * @return * @throws IOException */ - public static File getExportExcelTemplateFile(String classPath) throws IOException { + public static File getExportTemplateFile(String classPath) throws IOException { InputStream fis = null; File out = null; try { diff --git a/src/main/java/com/zhgd/xmgl/util/FlowUtil.java b/src/main/java/com/zhgd/xmgl/util/FlowUtil.java index bbbcfa712..95d8c077a 100644 --- a/src/main/java/com/zhgd/xmgl/util/FlowUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/FlowUtil.java @@ -128,6 +128,10 @@ public class FlowUtil { return Optional.ofNullable(map.get(key)).map(o -> "".equals(o) ? null : Convert.toInt(((List) o).get(0))).orElse(null); } + public static String getPullDownString(Map map, String key) { + return Optional.ofNullable(map.get(key)).map(o -> "".equals(o) ? null : Convert.toStr(((List) o).get(0))).orElse(null); + } + public static String getLongitude(Map map, String key) { return Optional.ofNullable(map.get(key)).map(o -> "".equals(o) ? null : JSON.parseObject(o.toString()).getString("lng")).orElse(null); } diff --git a/src/main/resources/excel/work/一级动火模板.docx b/src/main/resources/excel/work/一级动火模板.docx new file mode 100644 index 000000000..1e9066b93 --- /dev/null +++ b/src/main/resources/excel/work/一级动火模板.docx @@ -0,0 +1,193 @@ + 一级动火作业许可证 +建设项目: 编号:{{number}} + 动火单位 + {{hotFireUnitName}} + 动火内容 + {{hotFireContent}} + 动火区域/地点 + {{hotFireArea}} + 申请作业时间 + {{applicationStartTime}} +至 {{applicationEndTime}} + 动火危害识别 + 安 全 控 制 措 施 + 措施落实情况 + + + 确认 + 落实人 +㈠ +动火环境 +1动火过程由于未进行处理或处理不当,现场环境发生着火、爆燃,造成人员伤害及物质损失。 + +2存在有毒有害介质造成人员急、慢性中毒。 +{{a1}} +{{b1}} +{{c1}} + + +{{a2}} +{{b2}} +{{c2}} + + +{{a3}} +{{b3}} +{{c3}} + + +{{a4}} +{{b4}} +{{c4}} + + +{{a5}} +{{b5}} +{{c5}} + + +{{a6}} +{{b6}} +{{c6}} + + +{{a7}} +{{b7}} +{{c7}} +㈡ +设备内部处理 +由于处理不当、不合格,在动火过程发生着火、爆燃、爆炸,造成人员巨大伤害及物质重大损失。 +{{a8}} +{{b9}} +{{c8}} + + +{{a9}} +{{b10}} +{{c9}} + + +{{a10}} +{{b11}} +{{c10}} + + +{{a11}} +{{b12}} +{{c11}} + + +{{a12}} +{{b13}} +{{c12}} + + +{{a13}} +{{b14}} +{{3}} + ㈢ + 动火作业单位 +1由于安全控制措施落实不到位,在动火过程发生着火、爆燃、爆炸,造成人员巨大伤害及物质重大损失。 + +2由于违反焊工安全通则等其它安全规定发生器具损毁,造成人员伤害及物质损失 +{{a14}} +{{b15}} +{{c14}} + + +{{a15}} +{{b16}} +{{c15}} + + +{{a16}} +{{b17}} +{{c16}} + + +{{a17}} +{{b18}} +{{c17}} + + +{{a18}} +{{b19}} +{{c18}} + + +{{a19}} +{{b20}} +{{c19}} + + +{{a20}} +{{b21}} +{{c20}} + 申请、监护、确认、审批、备案 + + 责 任 内 容 + 签 名 + 签 名 + 申请人 +1已经进行了危害识别;2落实了相关安全控制措施;3安排了检测分析;4.作业人已交底。 + {{applicant1Name}} + {{applicant2Name}} + 确认人 +1已经进行了危害识别,落实了相关安全控制措施;2.作业人已交底。 + {{confirmer1Name}} + {{confirmer2Name}} + 监护人 +已明确了职责,确认安全控制措施全部落实。 + {{guardian1Name}} + {{guardian2Name}} + 动火作业人 + 姓 名 + 特种作业资质证件号 + 姓 名 + 特种作业资质证件号 + + {{hotFireOperator1Name}} + {{specialQualificationCertificateNumber1}} + {{hotFireOperator2Name}} + {{specialQualificationCertificateNumber2}} + 检测分析 + 时间 + {{testingAndAnalysisTime}} + 地 点 + {{testingAndAnalysisLocation}} +数据 +{{testingAndAnalysisData}} + + 结论 + {{testingAndAnalysisConclusion}} +分析人 +{{testingAndAnalysisPerson}} +检测分析单附后 +审核人 +我已到现场检查,各项安全措施均已落实。 + +EPC现场经理: {{epcSiteManagerReviewerName}} + + +监理总监: {{supervisingDirectorReviewerName}} + + +项目组: {{projectTeamReviewerName}} + + +安质环部:{{safetyQualityEnvironmentDepartmentReviewerName}} +批准人 +我已经到现场检查,各项安全控制措施均已落实。同意动火。 +项目分管安全副主任: +{{projectDirectorSafetyApproverName}} + {{dateTime}} + 动火结束检查 +我已在动火结束后,检查了周围环境,现场已清理干净,没有留有余火。 + 动火人 + {{hotFireEndInspectionPersonName}} {{hotFirePersonSignatureDateTime}} + + + 监护人 + {{hotFireEndInspectionGuardianName}} {{guardianSignatureDateTime}} + +本证一式四份:监护、作业、审批、备案人各一份。本作业许可自批准起8小时内在本区动火有效,离开本区动火本许可自动作废。"措施落实情况":"落实人"为承包商技术负责人,"确认人"为监理和项目组专业工程师,"申请人"为承包商项目经理。 diff --git a/src/main/resources/excel/work/三级动火模板.docx b/src/main/resources/excel/work/三级动火模板.docx new file mode 100644 index 000000000..806fb438c --- /dev/null +++ b/src/main/resources/excel/work/三级动火模板.docx @@ -0,0 +1,132 @@ + 三级动火作业许可证 +建设项目: 编号:{{number}} + 动火单位 + {{hotFireUnitName}} + 动火内容 + {{hotFireContent}} + 动火区域/地点 + {{hotFireArea}} + 申请作业时间 +{{applicationStartTime}} +至 {{applicationEndTime}} + 动火危害识别 + 安 全 控 制 措 施 + 措施落实情况 + + + 落实人 + 确认 + 动火环境 + 与动火作业单位 +1动火过程由于未进行处理或处理不当,现场环境发生着火、爆燃,造成人员伤害及物质损失。 + +2由于违反焊工安全通则等其它安全规定发生器具损毁,造成人员伤害及物质损失 +{{a1}} +{{b1}} +{{c1}} + + +{{a2}} +{{b2}} +{{c2}} + + +{{a3}} +{{b3}} +{{c3}} + + +{{a4}} +{{b4}} +{{c4}} + + +{{a5}} +{{b5}} +{{c5}} + + +{{a6}} +{{b6}} +{{c6}} + + +{{a7}} +{{b7}} +{{c7}} + + +{{a8}} +{{b8}} +{{c8}} + 申请、监护、确认、审批、备案 + +责 任 内 容 + 签名 + 签 名 + 申请人 +1.已经进行了危害识别;2落实了安全控制措施;3.作业人已交底。 + {{applicant1Name}} + {{applicant2Name}} +监护人 +已明确了职责,确认安全控制措施已经全部落实。 + {{guardian1Name}} + {{guardian2Name}} +确认人 +1.已经进行了危害识别,落实了相关安全控制措施;2.作业人已交底。 + {{confirmer1Name}} + {{confirmer2Name}} + 动火作业人 + 姓名 + 特种作业资质证件 + 姓名 + 特种作业资质证件 + + {{hotFireOperator1Name}} + {{specialQualificationCertificateNumber1}} + {{hotFireOperator2Name}} + {{specialQualificationCertificateNumber2}} + + + + + + 检测分析 + 时间 + {{testingAndAnalysisTime}} + 地 点 + {{testingAndAnalysisLocation}} +数据 +{{testingAndAnalysisData}} + + 结论 + {{testingAndAnalysisConclusion}} +分析人 +{{testingAndAnalysisPerson}} +检测分析单附后 + 审核人 +我已到现场检查,各项安全措施均已落实。 + 承包商施工经理 + {{contractorConstructionManagerReviewerName}} + + + EPC安全经理 + {{epcSafetyManagerName}} + + + 监理安全工程师 + {{supervisingSafetyEngineerReviewerName}} + 批准人 +我已到现场检查,各项安全措施均已落实。同意动火作业。 + 项目组施工经理 + {{projectTeamConstructionManagerApproverName}} + 动火结束检查 +我已在动火结束后,检查了周围环境,现场已清理干净,没有留有余火。 + 动火人 + {{hotFireEndInspectionPersonName}} {{hotFirePersonSignatureDateTime}} + + + 监护人 + {{hotFireEndInspectionGuardianName}} {{guardianSignatureDateTime}} + 本证一式三份:监护、作业、审批人各一份。本作业许可自批准起72小时内在本区动火有效,离开本区动火本许可自动作废。"措施落实情况":"落实人"为承包商专业工程师,"确认人"为监理工程师,"申请人"为承包商施工经理/项目经理。 + diff --git a/src/main/resources/excel/work/二级动火模板.docx b/src/main/resources/excel/work/二级动火模板.docx new file mode 100644 index 000000000..b28b469d2 --- /dev/null +++ b/src/main/resources/excel/work/二级动火模板.docx @@ -0,0 +1,191 @@ + 二级动火作业许可证 +建设项目: 编号:{{number}} + 动火单位 + {{hotFireUnitName}} + 动火内容 + {{hotFireContent}} + 动火区域/地点 + {{hotFireArea}} + 申请作业时间 +{{applicationStartTime}} +至 {{applicationEndTime}} + 动火危害识别 + 安 全 控 制 措 施 + 措施落实情况 + + + 确认 + 落实人 +㈠ +动火环境 +1动火过程由于未进行处理或处理不当,现场环境发生着火、爆燃,造成人员伤害及物质损失。 + +2存在有毒有害介质造成人员急、慢性中毒。 +{{a1}} +{{b1}} +{{c1}} + + +{{a2}} +{{b2}} +{{c2}} + + +{{a3}} +{{b3}} +{{c3}} + + +{{a4}} +{{b4}} +{{c4}} + + +{{a5}} +{{b5}} +{{c5}} + + +{{a6}} +{{b6}} +{{c6}} + + +{{a7}} +{{b7}} +{{c7}} +㈡ +设备内部处理 +由于处理不当、不合格,在动火过程发生着火、爆燃、爆炸,造成人员巨大伤害及物质重大损失。 +{{a8}} +{{b8}} +{{c8}} + + +{{a9}} +{{b9}} +{{c9}} + + +{{a10}} +{{b10}} +{{c10}} + + +{{a11}} +{{b11}} +{{c11}} + + +{{a12}} +{{b12}} +{{c12}} + + +{{a13}} +{{b13}} +{{c13}} + ㈢ + 动火作业单位 +1由于安全控制措施落实不到位,在动火过程发生着火、爆燃、爆炸,造成人员巨大伤害及物质重大损失。 +2由于违反焊工安全通则等其它安全规定发生器具损毁,造成人员伤害及物质损失。 +{{a14}} +{{b14}} +{{c14}} + + +{{a15}} +{{b15}} +{{c15}} + + +{{a16}} +{{b16}} +{{c16}} + + +{{a17}} +{{b17}} +{{c17}} + + +{{a18}} +{{b18}} +{{c18}} + + +{{a19}} +{{b19}} +{{c19}} + 申请、监护、确认、审批、备案 + + 责 任 内 容 + 签 名 + 签名 + 申请人 +1已经进行了危害识别;2落实了相关安全控制措施;3安排了检测分析;4.作业人已交底。 + {{applicant1Name}} + {{applicant2Name}} + 确认人 +1已经进行了危害识别,落实了相关安全控制措施;2.作业人已交底。 + {{confirmer1Name}} + {{confirmer2Name}} + 监护人 +我已明确了职责,确认安全控制措施全部落实。 + {{guardian1Name}} + {{guardian2Name}} + 动火作业人 + 姓 名 + 特种作业资质证件 + 姓 名 + 特种作业资质证件 + + {{hotFireOperator1Name}} + {{specialQualificationCertificateNumber1}} + {{hotFireOperator2Name}} + {{specialQualificationCertificateNumber2}} + + + + + + 检测 + 分析 +时间 + {{testingAndAnalysisTime}} + 地 点 + {{testingAndAnalysisLocation}} +数据 +{{testingAndAnalysisData}} + +结论 + {{testingAndAnalysisConclusion}} +分析人 + {{testingAndAnalysisPerson}} +检测分析单附后 + 审核人 +我已到现场检查,各项安全措施均已落实。 + + EPC安全经理 + {{epcSafetyManagerName}} + + + 监理总代 + {{supervisorGeneralAgentName}} + + + 项目组施工经理 + {{projectConstructionManagerName}} + 批准人 +我已到现场检查,各项安全措施均已落实,同意动火。 +安质环部安全经理 + {{safetyQualityEnvironmentDepartmentManagerName}} + 动火结束检查 +我已在动火结束后,检查了周围环境,现场已清理干净,没有留有余火。 + 动火人 + {{hotFireEndInspectionPersonName}} {{hotFirePersonSignatureDateTime}} + + + 监护人 + {{hotFireEndInspectionGuardianName}} {{guardianSignatureDateTime}} +本证一式三份:监护、作业、审批人各一份。本作业许可自批准起72小时内在本区动火有效,离开本区动火本许可自动作废。"措施落实情况":"落实人"为承包商技术负责人,"确认人"项目组和监理专业工程师,"申请人"为承包商项目经理/施工经理。 diff --git a/src/main/resources/excel/work/受限空间模板.docx b/src/main/resources/excel/work/受限空间模板.docx new file mode 100644 index 000000000..ba32fff58 --- /dev/null +++ b/src/main/resources/excel/work/受限空间模板.docx @@ -0,0 +1,194 @@ + 受限(类受限)空间作业许可证 + 编号:{{num}} + 建设项目 +{{constructionProject}} + 项目组 +{{projectGroupName}} + 作业申请单位 +{{jobApplicationUnitName}} + 装置/单元 +{{deviceUnitName}} + 设施地点名称 +{{facilityLocationName}} + 原有介质 +{{originalMedium}} + 作 业 内 容 +{{jobContent}} + 作 业 人 员 +{{operatorName}} + 作 业 时 间 + {{jobStartTime}}至{{jobEndTime}} + 作业危害识别 + 安全控制措施 + (措施落实情况落实人必须签字,确认检查合格的打√) + 措施落实情况 + + + 落实人 + 确认 + 补充措施 + 作业申请单位及作业单位 +作业前,安全处理措施不落实或不到位,可造成人员中毒窒息事故。 +{{a1}} +{{b1}} +{{c1}} +{{d1}} + + +{{a2}} +{{b2}} +{{c2}} +{{d2}} + + +{{a3}} +{{b3}} +{{c3}} +{{d3}} + +作业过程中,安全措施不落实,监护不到位,可能造成人员中毒窒息、高坠伤害,同时可能发生爆燃事故。 +{{a4}} +{{b4}} +{{c4}} +{{d4}} + + +{{a5}} +{{b5}} +{{c5}} +{{d5}} + + +{{a6}} +{{b6}} +{{c6}} +{{d6}} + + +{{a7}} +{{b7}} +{{c7}} +{{d7}} + + +{{a8}} +{{b8}} +{{c8}} +{{d8}} + +作业人员个人防护不到位,应急器材准备不足,无法及时施救,造成事故的扩大。 +{{a9}} +{{b9}} +{{c9}} +{{d9}} + + +{{a10}} +{{b10}} +{{c10}} +{{d10}} + + +{{a11}} +{{b11}} +{{c11}} +{{d11}} + + +其他补充措施: + + + + 申请人 +已组织危害识别并与作业单位共同进行了技术交底。 + 签字 +{{applicantSignatureName}} + 监护人 +已落实职责及现场安全措施。 + 签字 +承包商:{{contractorSignatureName}} + + + +{{applicantSignatureTime}} + + + +监理:{{supervisorSignatureName}} + 检测 + 分析 + 氧含量 + {{detectionAndAnalysisOxygenContent}} + 时间 + {{detectionAndAnalysisTime}} + 将检测分析单贴于本许可证背面 + 结论 + {{conclusion}} + + 可燃气 + {{detectionAndAnalysisCombustibleGas}} + 地点 + {{detectionAndAnalysisLocation}} + + + + + 有毒 + {{detectionAndAnalysisToxicity}} + 签字 + {{detectionAndAnalysisSignatureName}} + + + + + 粉尘 + {{detectionAndAnalysisDust}} + + + + + + 作业申请单位 + 现场措施已到位,作业人、监护人到位 + {{operationApplicationUnitConfirmation}} +作业负责人;{{operationSupervisorName}} + 时间 + {{operationSupervisorTime}} + EPC承包商 +已到作业现场进行检查,安全措施到位,监护人到位,并进行作业全过程安全监督 + {{epcContractorConfirmation}} + {{epcContractor1Name}} + {{epcContractor2Name}} + 时间 + {{epcContractorTime}} + 监理单位 + + {{supervisorConfirmation}} + {{supervisor1Name}} + {{supervisor2Name}} + 时间 + {{supervisorTime}} + 项目组 +已到现场落实各项安全措施,监护人到位,定期到作业现场进行检查确认 + {{projectTeamConfirmation}} + {{projectTeam1Name}} + {{projectTeam2Name}} + 时间 + {{projectTeamTime}} +安质环部 +现场各项安全措施已落实,监护人已到位,现场进行巡检 +{{safetyQualityEnvironmentalProtectionDepartmentConfirmation}} + {{safetyQualityEnvironmentalProtectionDepartmentName}} +{{safetyQualityEnvironmentalProtectionDepartmentTime}} + 作业结束检查 +作业结束,作业人员、工具及材料已全部检查,空间内已清理干净。 + 作业人签字 + 监护人签字 + {{operatorSignatureName}} + {{guardianSignatureName}} + 时间 + {{signatureTime}} +说明:1、如果作业条件、工作范围等发生异常变化,必须立即停止作业,本许可证作废。本许可证保存期为一年。 +2、一式两联,一联作业负责人,二联监护人;作业结束签字,一联承包商保存,二联项目组保存,其他存复印件。3、落实人为承包商专业技术人员,申请人为承包商作业负责人。 + + diff --git a/src/main/resources/excel/work/土建工程质量模板.docx b/src/main/resources/excel/work/土建工程质量模板.docx new file mode 100644 index 000000000..dcb843503 --- /dev/null +++ b/src/main/resources/excel/work/土建工程质量模板.docx @@ -0,0 +1,82 @@ + + 土建工程质量检测委托单 + 编号:{{num}} +项目:{{project}} +装置/单元:{{deviceUnitName}} +装置/单元号:{{deviceUnitNo}} +检测方式:{{testingMethod}} +检测类别:{{testingCategory}} +工程使用部位: +{{projectUseLocation}} + +检测委托依据标准:{{testingCommissionBasisStandard}} + 委 托 检 测 内 容 + 分项代码 + 分项名称 +试件/样抽样组数:{{testPieceSampleSamplingGroupNumber}} +{{a1}} +{{b1}} +试件/样编号:{{testPieceSampleNumber}} +{{a2}} +{{b2}} +试件/样型号规格:{{testPieceSampleModelSpecification}} +{{a3}} +{{b3}} +试件/样代表批量:{{testPieceSampleRepresentativeBatch}} +{{a4}} +{{b4}} +产地/厂商:{{originManufacturer}} +{{a5}} +{{b5}} +产品批号/炉号:{{productBatchFurnaceNumber}} +{{a6}} +{{b6}} +焊接试件操作证号(焊工姓名和证号):{{weldingTestPieceOperatorName}} {{weldingTestPieceOperationCertificateNumber}} +{{a7}} +{{b7}} +商 标:{{trademark}} +{{a8}} +{{b8}} +出厂合格证编号:{{factoryCertificateNumber}} +{{a9}} +{{b9}} + 检测委托方 +{{testingClientName}} +{{a10}} +{{b10}} + 检测委托人 +{{testingClientUserName}} +{{a11}} +{{b11}} + 检测委托时间 +{{testingCommissionTime}} +{{a12}} +{{b12}} + 取样/送样人 +{{samplingSampleDeliveryPersonName}} +{{a13}} +{{b13}} + 监理见证方 +{{supervisingWitnessName}} +{{a14}} +{{b14}} + 监理见证人 +{{supervisingWitnessUserName}} +{{a15}} +{{b15}} + 委托方电话 +{{testingClientPhoneNumber}} + 检测单位 + 委托接受人 + 电 话 + 检测报告出具承诺时限 + {{testingUnitName}} + {{clientName}} + {{clientPhoneNumber}} + {{testingReportIssuanceCommitmentTimeLimit}} +需要说明事项: +{{mattersExplained}} + + +注:选择项采用符号""表示。 + diff --git a/src/main/resources/excel/work/无损检测模板.docx b/src/main/resources/excel/work/无损检测模板.docx new file mode 100644 index 000000000..ddd78f20c --- /dev/null +++ b/src/main/resources/excel/work/无损检测模板.docx @@ -0,0 +1,70 @@ + 无损检测委托单 + 编号:{{num}} + 项目名称 + {{projectName}} + 装置/单元 + {{deviceUnitName}} + 装置号 + {{deviceUnitNo}} + 检件名称 + {{testPieceName}} + 管线号 + {{pipelineNumber}} + 委托单位 + {{commissioningUnitName}} + 焊接方法 + {{weldingMethod}} + 介质 + {{medium}} + 坡口形式 + {{grooveForm}} + 检测比例 + {{testingRatio}} + 检测方法 + {{testingMethod}} + 温度 + {{temperature}} + 焊口数量 + {{weldNumber}} + 合格级别 + {{qualifiedLevel}} + 检测标准 + {{testingStandard}} + 压力 + {{pressure}} + 检测数量 + {{testNumber}} + 检测日期 + {{testingDate}} + 序号 + 焊口号 + 规 格 + 材 质 + 焊工号 + 备注 + {{$fe: list t.d0 }} + t.d1 + t.d2 + t.d3 + t.d4 + t.d5}} +{{mainDescriptionAttachedPicture}} + +施工单位:{{constructionUnitName}} + + +质量负责人签字:{{qualityChargePersonSignatureName}} {{qualityChargePersonSignatureDate}} +EPC承包商:{{epcContractorName}} + + +专业工程师签字:{{professionalEngineerSignatureName}} {{professionalEngineerSignatureDate}} +监理单位:{{supervisingUnitName}} + + +监理工程师签字:{{supervisingEngineerSignatureName}} {{supervisingEngineerSignatureDate}} +检测单位:{{testingUnitName}} + + +负责人签字:{{testingUnitChargePersonSignatureName}} {{testingUnitChargePersonSignatureDate}} + + diff --git a/src/main/resources/excel/work/普通动火模板.docx b/src/main/resources/excel/work/普通动火模板.docx new file mode 100644 index 000000000..ffa88871e --- /dev/null +++ b/src/main/resources/excel/work/普通动火模板.docx @@ -0,0 +1,81 @@ + 普通动火作业许可证 +建设项目: 编号:{{number}} +动火单位 + {{hotFireUnitName}} + 动火区域/地点 +{{hotFireArea}} + 施工内容 + {{constructionContent}} + 动火方式 + {{hotStartMethod}} + 施工负责人及电话 + {{constructionManagerName}} {{constructionManagerPhoneNumber}} + 施工监火人及电话 + {{constructionFireMonitorName}} {{constructionFireMonitorPhoneNumber}} + 动火人员 + {{hotStartPersonnelName}} + 特种作业人员证号 + {{s1}} + {{sc1}} + {{s2}} + {{sc2}} + + {{s3}} + {{sc3}} + {{s4}} + {{sc4}} + 动火时间 +{{hotStartTime}}至{{hotEndTime}} + 分析时间 + {{analysisTime}} + 采样地点 + {{samplingLocation}} + 分 析 人 + {{analyst}} + 分析数据 +{{analysisData}} + 安 全 防 护 措 施 + 作业人检查确认签字 + 施工经理检查确认签字 +{{a1}} +{{b1}} +{{c1}} +{{a2}} +{{b2}} +{{c2}} +{{a3}} +{{b3}} +{{c3}} +{{a4}} +{{b4}} +{{c4}} +{{a5}} +{{b5}} +{{c5}} +{{a6}} +{{b6}} +{{c6}} +{{a7}} +{{b7}} +{{c7}} +{{a8}} +{{b8}} +{{c8}} + 补充措施 + + + + + + + + 承包商施工负责人申请 + 承包商安全经理审核 + 承包商项目经理审批 +{{contractorConstructionManagerApplicationName}} {{contractorConstructionManagerApplicationTime}} + {{contractorSafetyManagerReviewName}} {{contractorSafetyManagerReviewTime}} +{{contractorProjectManagerApprovalName}} {{contractorProjectManagerApprovalTime}} + 完工验收 +作业监火人:{{operationFireMonitorName}} + 完工时间: {{completionTime}} + 本证一式三份:监护、作业、审批人各一份,动火时间不允许超过1个月,条件变化自动作废。 diff --git a/src/main/resources/excel/work/起重吊装作业模板.docx b/src/main/resources/excel/work/起重吊装作业模板.docx new file mode 100644 index 000000000..638592bdf --- /dev/null +++ b/src/main/resources/excel/work/起重吊装作业模板.docx @@ -0,0 +1,112 @@ + 起重吊装作业许可证 + 编号:{{num}} + 申请单位 + {{applicantName}} + 作业装置 + {{operationEquipmentName}} + 作业地点 + {{operationLocation}} + 作业内容 + {{operationContent}} + 作业时间 + {{operationStartTime}}至{{operationEndTime}} + 吊车类型/车牌号 + {{craneTypeLicensePlateNumber}} + 负荷描述 + {{loadDescription}} + 级别 + {{level}} + 作业人员及证号 + {{s1}} + {{sc1}} + {{s2}} + {{sc2}} + + {{s3}} + {{sc3}} + {{s4}} + {{sc4}} +安全措施(对已有措施在□内打对勾"☑",对没有措施或影响在□内打叉"☒") +{{c1}} {{d1}} +{{c2}} {{d2}} +{{c3}} {{d3}} +{{c4}} {{d4}} +{{c5}} {{d5}} +{{c6}} {{d6}} +{{c7}} {{d7}} +{{c8}} {{d8}} +{{c9}} {{d9}} +{{c10}} {{d10}} +{{c11}} {{d11}} +{{c12}} {{d12}} +{{c13}} {{d13}} +{{c14}} {{d14}} +{{c15}} {{d15}} +{{c16}} {{d16}} +{{c17}} {{d17}} +{{c18}} {{d18}} +{{c19}} {{d19}} +{{c20}} {{d20}} +{{c21}} {{d21}} +{{c22}} {{d22}} +{{c23}} {{d23}} +{{c24}} {{d24}} +我保证我及我下属,已阅读理解并遵照执行安全方案和本作业许可,并在作业过程中负责落实各项安全措施和应急预案。 作业单位施工申请人: {{operationUnitConstructionApplicantName}} {{operationUnitConstructionApplicantDate}} +本人已阅读本作业许可并确认所有作业条件都已满足吊装作业要求,并承诺只要吊装作业不结束一定坚守在作业现场,直至作业结束。 作 业 监 护:{{operationSupervisionName}} {{operationSupervisionDate}} +作业许可审批 +施工承包商(申请办理作业许可) +EPC承包商 (审核承包商作业许可) +监理单位(审批三级级吊装许可) + 项目经理/施工经理 + {{projectConstructionManagerOfConstructionContractorName}} + 时间 + {{projectConstructionManagerTime}} + 现场经理/专业工程师 + {{siteManagerProfessionalEngineerName}} + 时间 + {{siteManagerProfessionalEngineerTime}} + 安全工程师 + {{safetyEngineerOfSupervisionUnitName}} + 时间 + {{safetyEngineerTimeOfSupervisionUnit}} + 安全经理 + {{safetyManagerOfConstructionContractorName}} + 时间 + {{safetyManagerTimeOfConstructionContractor}} + 安全经理 + {{safetyManagerOfEpcContractorName}} + 时间 + {{safetyManagerTimeOfEpcContractor}} + 总监/总代 + {{directorGeneralAgentName}} + 时间 + {{directorGeneralAgentTime}} + 项目组(审批二级吊装作业许可) + 施工管理部(审批一级吊装许可) + 专业工程师 + {{professionalEngineerOfProjectTeamName}} + 日期 + {{professionalEngineerDateOfProjectTeam}} + 专业工程师 + {{professionalEngineerOfConstructionManagementDepartmentName}} + 日期 + {{professionalEngineerDateOfConstructionManagementDepartment}} + 项目经理/施工经理 + {{projectConstructionManagerOfProjectTeamName}} + 日期 + {{projectConstructionManagerDateOfProjectTeam}} + 部门经理 + {{departmentManagerName}} + 日期 + {{departmentManagerDate}} + 作业单位负责作业许可证关闭,关闭后要进行备案 +作业负责人 +{{operationSupervisorName}} +日期 +{{operationSupervisorDate}} +安全工程师 +{{safetyEngineerName}} +日期 +{{safetyEngineerDate}} + 说明:1.三级由监理安全工程师审批;二级由项目组审批,一级由施工部审批;一级吊装作业许可申请办理由承包商项目经理签字,EPC承包商由现场经理签字,监理由总监签字,项目组由施工经理/项目经理签字。2.本证一式三份,承包商作业人、监护人、监理;3.作业关闭后,作业单位必须复印本许可证向签发单位备案。 + diff --git a/src/main/resources/excel/work/高处作业许可模板.docx b/src/main/resources/excel/work/高处作业许可模板.docx new file mode 100644 index 000000000..352c73aab --- /dev/null +++ b/src/main/resources/excel/work/高处作业许可模板.docx @@ -0,0 +1,140 @@ + 高处作业许可证 + 申请单位 + {{applicantName}} + 施工地点 + {{constructionLocation}} + 作业内容 + {{workContent}} + 作业高度 + {{workHeight}} + 作业类别 +{{workCategory}} + 作业人员 +{{workerName}} + 作业时间 +{{workerTimeBegin}}至{{workerTimeEnd}} + 作业申请周期 +一、二级作业不超过7天;三级不超过5天;特级、特殊不超过3天 + 作业危害 + 识别 + 安全控制措施(有√无x) + 措施落实情况 + + + 确认() + 落实人签名 +作业前安全措施不落实或不到位,可造成人员坠落事故 +{{a1}} +{{b1}} +{{c1}} + +{{a2}} +{{b2}} +{{c2}} + +{{a3}} +{{b3}} +{{c3}} + +{{a4}} +{{b4}} +{{c4}} + +{{a5}} +{{b5}} +{{c5}} + +{{a6}} +{{b6}} +{{c6}} +作业过程中,安全措施不落实,监护不到位,可造成人员坠落、中毒窒息、爆燃事故 +{{a7}} +{{b7}} +{{c7}} + +{{a8}} +{{b8}} +{{c8}} + +{{a9}} +{{b9}} +{{c9}} + +{{a10}} +{{b10}} +{{c10}} + +{{a11}} +{{b11}} +{{c11}} + +{{a12}} +{{b12}} +{{c12}} +个人防护不到位,应急器材不足,施救部及时,造成事故扩大 +{{a13}} +{{b13}} +{{c13}} + +{{a14}} +{{b14}} +{{c14}} + +{{a15}} +{{b15}} +{{c15}} + +{{a16}} +{{b16}} +{{c16}} + +{{a17}} +{{b17}} +{{c17}} + 补充措施 +{{supplementaryMeasure}} +申请人(班组长) +已组织危害识别并与作业单位/班组进行了安全技术交底 +签字 {{applicantTeamLeaderName}} + 监护人 + 已落实职责及现场安全措施 +签字(承包商){{guardianContractorName}} + + +时间 {{applicantTeamLeaderTime}} + + +签字(监理) +措施确认 +已到作业现场检查,措施到位,监护人到位监护,并进行作业全过程安全监督 + 施工承包商 + EPC承包商 + 监理单位 + 项目组 + 施工负责人 + {{constructionContractorManagerName}} +施工负责人 + {{epcContractorManagerName}} + 监理负责人 + {{supervisionUnitManagerName}} + 施工负责人 + {{projectTeamName}} + 时间 + {{constructionContractorManagerTime}} +时间 + {{epcContractorManagerTime}} + 时间 + {{supervisionUnitManagerTime}} + 时间 + {{projectTeamTime}} + 安质环部 +特级及特殊高处作业前,已编制安全方案并审批,已落实现场安全措施 + {{safetyDepartmentManagerName}} +时间 {{safetyDepartmentManagerTime}} + 监护人 +作业结束,作业地点已检查,无安全隐患。 + {{guardianName}} +时间 {{guardianTime}} + 说明:1.一、二级由监理签发;三级项目组签发;特级、特殊安质环部签发;2.若作业条件、工作范围有变,须立即停止作业,本证作废;3.本证一式三份,承包商作业人员、承包商监护人、监理单位;4.许可证申请人:班组长;措施确认人:专业工程师/技术员;施工承包商负责人:施工经理/安全经理/项目经理;EPC负责人:现场经理/安全经理;监理负责人:监理工程师、安全工程师;项目组负责人:施工经理/专业工程师、安全经理。(特级和特殊高处作业申请时,承包商必须由项目经理签字,监理由总监签字,项目组由项目经理签字)。 + +