From 37539074a4218146a054e73d05801810e065a061 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Fri, 21 Mar 2025 11:21:39 +0800 Subject: [PATCH] =?UTF-8?q?dify=E8=B5=84=E6=96=99=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 22 +- .../controller/ModelDownloadController.java | 1027 +++++++++++++++++ .../controller/ModuleTalkController.java | 169 +++ .../controller/CarPassRecordController.java | 11 - ...AnalyseHardWareAlarmRecordServiceImpl.java | 20 +- .../zhgd/xmgl/security/WebSecurityConfig.java | 1 + src/main/resources/word/AI预警.docx | Bin 0 -> 15564 bytes src/main/resources/word/分包单位信息.docx | Bin 0 -> 17983 bytes src/main/resources/word/劳务.docx | Bin 0 -> 29623 bytes src/main/resources/word/安全.docx | Bin 0 -> 25300 bytes src/main/resources/word/环境监测数据.docx | Bin 0 -> 17833 bytes src/main/resources/word/质量.docx | Bin 0 -> 21015 bytes src/main/resources/word/进度管理.docx | Bin 0 -> 14363 bytes src/main/resources/word/项目基本信息.docx | Bin 0 -> 13650 bytes 14 files changed, 1221 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ModelDownloadController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ModuleTalkController.java create mode 100644 src/main/resources/word/AI预警.docx create mode 100644 src/main/resources/word/分包单位信息.docx create mode 100644 src/main/resources/word/劳务.docx create mode 100644 src/main/resources/word/安全.docx create mode 100644 src/main/resources/word/环境监测数据.docx create mode 100644 src/main/resources/word/质量.docx create mode 100644 src/main/resources/word/进度管理.docx create mode 100644 src/main/resources/word/项目基本信息.docx diff --git a/pom.xml b/pom.xml index 1b1832541..557107c0c 100644 --- a/pom.xml +++ b/pom.xml @@ -366,17 +366,23 @@ cn.afterturn easypoi-base - 4.0.0 + 4.4.0 cn.afterturn easypoi-annotation - 4.0.0 + 4.4.0 cn.afterturn easypoi-web - 4.0.0 + 4.4.0 + + + + org.apache.poi + ooxml-schemas + 1.4 @@ -987,7 +993,7 @@ <!–CustomClassLoader;WisdomSiteApplication;LicenseUtil;MyBootJarLauncher;MyJarClassLoader–> --> - + + <!–鞍钢–> B67960E5E329F6DD23AFFA354E12732BD41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E - - + <!–中科安信–> + <!–A6F449ECD7E1024F703F37F2294AC8F2D41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E–> @@ -1014,7 +1020,7 @@ - + --> diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ModelDownloadController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ModelDownloadController.java new file mode 100644 index 000000000..939deec82 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ModelDownloadController.java @@ -0,0 +1,1027 @@ +package com.zhgd.xmgl.modules.basicdata.controller; + + +import cn.afterturn.easypoi.word.WordExportUtil; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.base.entity.vo.SectorOneVo; +import com.zhgd.xmgl.base.entity.vo.TrendOneVo; +import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant; +import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem; +import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; +import com.zhgd.xmgl.modules.basicdata.service.IDictionaryItemService; +import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; +import com.zhgd.xmgl.modules.car.entity.CarInfo; +import com.zhgd.xmgl.modules.car.entity.CarPassRecord; +import com.zhgd.xmgl.modules.car.entity.CarType; +import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo; +import com.zhgd.xmgl.modules.car.entity.vo.TodayOutInNumber; +import com.zhgd.xmgl.modules.car.mapper.CarTypeMapper; +import com.zhgd.xmgl.modules.car.service.ICarInfoService; +import com.zhgd.xmgl.modules.car.service.ICarPassRecordService; +import com.zhgd.xmgl.modules.car.service.ICarTypeService; +import com.zhgd.xmgl.modules.environment.entity.*; +import com.zhgd.xmgl.modules.environment.service.*; +import com.zhgd.xmgl.modules.inspection.entity.vo.InspectTaskRecordVo; +import com.zhgd.xmgl.modules.inspection.service.IInspectTaskItemRecordService; +import com.zhgd.xmgl.modules.inspection.service.IInspectTaskRecordService; +import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise; +import com.zhgd.xmgl.modules.project.entity.ProjectExtend; +import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; +import com.zhgd.xmgl.modules.project.service.IProjectEnterpriseService; +import com.zhgd.xmgl.modules.project.service.IProjectExtendService; +import com.zhgd.xmgl.modules.project.service.IProjectService; +import com.zhgd.xmgl.modules.quality.entity.QualityRegion; +import com.zhgd.xmgl.modules.quality.entity.vo.RecordVo; +import com.zhgd.xmgl.modules.quality.service.IQualityInspectionRecordService; +import com.zhgd.xmgl.modules.quality.service.IQualityRegionService; +import com.zhgd.xmgl.modules.sprayrt.entity.SprayRtData; +import com.zhgd.xmgl.modules.sprayrt.entity.SprayRtDev; +import com.zhgd.xmgl.modules.sprayrt.service.ISprayRtDataService; +import com.zhgd.xmgl.modules.sprayrt.service.ISprayRtDevService; +import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgress; +import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressAlarm; +import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressContent; +import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressMaterialRel; +import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressAlarmService; +import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressContentService; +import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressService; +import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord; +import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; +import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService; +import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareRecordService; +import com.zhgd.xmgl.modules.worker.entity.*; +import com.zhgd.xmgl.modules.worker.entity.vo.TrainRecordVo; +import com.zhgd.xmgl.modules.worker.service.*; +import com.zhgd.xmgl.modules.xz.entity.XzAiDeductRule; +import com.zhgd.xmgl.modules.xz.entity.XzDeductScoreRecord; +import com.zhgd.xmgl.modules.xz.security.entity.vo.StatsByEnterpriseVo; +import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityInspectTaskRecordVo; +import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityQualityInspectionRecordTotalVo; +import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityRecordVo; +import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityInspectTaskItemRecordService; +import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityInspectTaskRecordService; +import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService; +import com.zhgd.xmgl.modules.xz.service.IXzAiDeductRuleService; +import com.zhgd.xmgl.modules.xz.service.IXzDeductScoreRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @program: wisdomSite + * @description: 下载 + * @author: Mr.Peng + * @create: 2020-12-21 09:33 + **/ +@RestController +@RequestMapping("/xmgl/modelDownload") +@Slf4j +@Api(tags = "下载") +public class ModelDownloadController { + + @Autowired + private IEnterpriseInfoService enterpriseInfoService; + + @Autowired + private IEnterpriseTypeService enterpriseTypeService; + + @Autowired + private IProjectEnterpriseService projectEnterpriseService; + + @Autowired + private IProjectEnterpriseSupplierInfoService projectEnterpriseSupplierInfoService; + + @Autowired + private IProjectService projectService; + + @Autowired + private ISystemUserService systemUserService; + + @Autowired + private ICarInfoService carInfoService; + + @Autowired + private ICarTypeService carTypeService; + + @Autowired + private CarTypeMapper carTypeMapper; + + @Autowired + private ICarPassRecordService carPassRecordService; + + @Autowired + private IXzSecurityQualityInspectionRecordService xzSecurityQualityInspectionRecordService; + + @Autowired + private IQualityInspectionRecordService qualityInspectionRecordService; + + @Autowired + private IXzSecurityInspectTaskRecordService xzSecurityInspectTaskRecordService; + + @Autowired + private IXzSecurityInspectTaskItemRecordService xzSecurityInspectTaskItemRecordService; + + @Autowired + private IInspectTaskRecordService inspectTaskRecordService; + + @Autowired + private IInspectTaskItemRecordService inspectTaskItemRecordService; + + @Autowired + private IDictionaryItemService dictionaryItemService; + + @Autowired + private IProjectExtendService projectExtendService; + + @Autowired + private ITaskProgressContentService taskProgressContentService; + + @Autowired + private ITaskProgressService taskProgressService; + + @Autowired + private ITaskProgressAlarmService taskProgressAlarmService; + + @Autowired + private IEnvironmentDevService environmentDevService; + + @Autowired + private IAiAnalyseHardWareRecordService aiAnalyseHardWareRecordService; + + @Autowired + private IAiAnalyseHardWareAlarmRecordService aiAnalyseHardWareAlarmRecordService; + + @Autowired + private IQualityRegionService qualityRegionService; + + @Autowired + private IWorkerInfoService workerInfoService; + + @Autowired + private IWorkerEvaluateService workerEvaluateService; + + @Autowired + private IXzDeductScoreRecordService xzDeductScoreRecordService; + + @Autowired + private IWorkerTypeService workerTypeService; + + @Autowired + private ITeamInfoService teamInfoService; + + @Autowired + private IDepartmentInfoService departmentInfoService; + + @Autowired + private IWorkerContractService workerContractService; + + @Autowired + private IWorkerCertificateService workerCertificateService; + + @Autowired + private IWorkerPhysicalsService workerPhysicalsService; + + @Autowired + private IWorkerInsuranceService workerInsuranceService; + + @Autowired + private IXzAiDeductRuleService xzAiDeductRuleService; + + @Autowired + private ISprayRtDevService sprayRtDevService; + + @Autowired + private IEnvironmentWarningService environmentWarningService; + + @Autowired + private IDustNoiseDataService dustNoiseDataService; + + @Autowired + private IEnvironmentAlarmService environmentAlarmService; + + @Autowired + private IEnvironmentAlarmTypeService environmentAlarmTypeService; + + @Autowired + private ISprayRtDataService sprayRtDataService; + + @Autowired + private IEnterpriseQualificationService enterpriseQualificationService; + + @Autowired + private IEnterpriseBadRecordService enterpriseBadRecordService; + + @ApiOperation(value = "按模版导出项目信息", notes = "按模版导出项目信息", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exportProjectInfo/{projectSn}") + public void exportProjectInfo(HttpServletResponse response, @PathVariable("projectSn")String projectSn) { + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); + ProjectExtend projectExtend = projectExtendService.getOne(Wrappers.lambdaQuery().eq(ProjectExtend::getProjectSn, projectSn)); + Map infoMap = getProjectInfo(projectInfoBySn); + Map extendMap = BeanUtil.beanToMap(projectExtend); + infoMap.putAll(extendMap); + try { + // 读取Word模板文件 +// ClassPathResource classPathResource = new ClassPathResource("word/项目基本信息.docx"); +// InputStream fis = classPathResource.getInputStream(); +// XWPFDocument doc = new XWPFDocument(fis); + XWPFDocument doc = WordExportUtil.exportWord07("word/项目基本信息.docx", infoMap); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "信息.docx", "UTF-8")); + doc.write(response.getOutputStream()); +// // 获取所有段落 +// List paragraphs = doc.getParagraphs(); +// // 替换文本数据 +// for (XWPFParagraph p : paragraphs) { +// List runs = p.getRuns(); +// for (XWPFRun r : runs) { +// String text = r.getText(0); +// for (String s : infoMap.keySet()) { +// if (text != null && text.contains("{{" + s + "}}")) { +// text = text.replace("{{" + s +"}}", infoMap.get(s).toString()); +// r.setText(text, 0); +// } +// } +// } +// } +// response.setCharacterEncoding("UTF-8"); +// response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); +// response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "信息.docx", "UTF-8")); +// doc.write(response.getOutputStream()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @ApiOperation(value = "按模版导出分包单位信息", notes = "按模版导出分包单位信息", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exportEnterprise/{projectSn}") + public void exportEnterprise(HttpServletResponse response, @PathVariable("projectSn")String projectSn) { + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); + List enterpriseId = projectEnterpriseService.list(Wrappers.lambdaQuery().eq(ProjectEnterprise::getProjectSn, projectSn)) + .stream().map(p -> p.getEnterpriseId()).collect(Collectors.toList()); + List enterpriseInfoList = enterpriseInfoService.listByIds(enterpriseId); + List enterpriseTypeList = enterpriseTypeService.list(); + Map resultMap = new HashMap<>(); + resultMap.put("projectName", projectInfoBySn.getProjectName()); + resultMap.put("total", enterpriseInfoList.size()); + for (EnterpriseType enterpriseType : enterpriseTypeList) { + resultMap.put("enterpriseType" + enterpriseType.getId(), enterpriseInfoList.stream().filter(e -> + e.getEnterpriseTypeId().toString().equals(enterpriseType.getId().toString())).count()); + } + resultMap.put("enterpriseList", getEnterpriseInfo(enterpriseInfoList, enterpriseTypeList)); + + List list = projectEnterpriseSupplierInfoService.list(Wrappers.lambdaQuery() + .eq(ProjectEnterpriseSupplierInfo::getProjectSn, projectSn)); + resultMap.put("supplierList", getEnterpriseSupplierInfo(list, enterpriseInfoList)); + + List qualificationList = enterpriseQualificationService.list(Wrappers.lambdaQuery() + .in(EnterpriseQualification::getEnterpriseId, enterpriseId)); + List> qualityList = new ArrayList<>(); + for (EnterpriseQualification enterpriseQualification : qualificationList) { + Map infoMap = BeanUtil.beanToMap(enterpriseQualification); + List itemList = enterpriseInfoList.stream().filter(p -> p.getId().toString().equals(enterpriseQualification.getEnterpriseId().toString())).collect(Collectors.toList()); + infoMap.put("enterpriseName", itemList.size() > 0 ? itemList.get(0).getEnterpriseName() : ""); + qualityList.add(infoMap); + } + resultMap.put("qualificationList", qualityList); + + List enterpriseBadRecordList = enterpriseBadRecordService.list(Wrappers.lambdaQuery() + .in(EnterpriseBadRecord::getEnterpriseId, enterpriseId)); + List> badRecordList = new ArrayList<>(); + for (EnterpriseBadRecord enterpriseBadRecord : enterpriseBadRecordList) { + Map infoMap = BeanUtil.beanToMap(enterpriseBadRecord); + List itemList = enterpriseInfoList.stream().filter(p -> p.getId().toString().equals(enterpriseBadRecord.getEnterpriseId().toString())).collect(Collectors.toList()); + infoMap.put("enterpriseName", itemList.size() > 0 ? itemList.get(0).getEnterpriseName() : ""); + badRecordList.add(infoMap); + } + resultMap.put("badRecord", badRecordList); + try { + XWPFDocument doc = WordExportUtil.exportWord07("word/分包单位信息.docx", resultMap); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "分包单位信息.docx", "UTF-8")); + doc.write(response.getOutputStream()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + + @ApiOperation(value = "按模版导出环境监测信息", notes = "按模版导出环境监测信息", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exportEnvironment/{projectSn}") + public void exportEnvironment(HttpServletResponse response, @PathVariable("projectSn")String projectSn) { + List enterpriseInfoList = enterpriseInfoService.list(); + List environmentAlarmTypeList = environmentAlarmTypeService.list(); + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); + // 扬尘设备 + List environmentDevList = environmentDevService.list(Wrappers.lambdaQuery().eq(EnvironmentDev::getProjectSn, projectSn)); + List> devMap = new ArrayList<>(); + for (EnvironmentDev environmentDev : environmentDevList) { + Map map = BeanUtil.beanToMap(environmentDev); + if (StringUtils.isNotBlank(environmentDev.getEnterpriseIds())) { + List list = Arrays.asList(environmentDev.getEnterpriseIds().split(",")); + map.put("enterpriseIds", enterpriseInfoList.stream().filter(e -> list.contains(e.getId().toString())).map(e -> e.getEnterpriseName()).collect(Collectors.joining(","))); + } + map.put("isEnable", environmentDev.getIsEnable() == 1 ? "在线" : "不在线"); + devMap.add(map); + } + Map infoMap = new HashMap<>(); + infoMap.put("projectName", projectInfoBySn.getProjectName()); + infoMap.put("environmentDev", devMap); + + // 喷淋设备 + List sprayDevList = sprayRtDevService.list(Wrappers.lambdaQuery().eq(SprayRtDev::getProjectSn, projectSn)); + List> devMap1 = new ArrayList<>(); + for (SprayRtDev sprayRtDev : sprayDevList) { + Map map = BeanUtil.beanToMap(sprayRtDev); + map.put("sprayMode", sprayRtDev.getSprayMode() == 1 ? "手动模式" : "自动模式"); + map.put("switchStatus", sprayRtDev.getSwitchStatus() == 1 ? "关" : "开"); + devMap1.add(map); + } + infoMap.put("sprayDev", devMap1); + + // 预警值设置 + List environmentWarningList = environmentWarningService.list(Wrappers.lambdaQuery() + .eq(EnvironmentWarning::getWarningType, 2) + .eq(EnvironmentWarning::getProjectSn, projectSn)); + List> devMap2 = new ArrayList<>(); + for (EnvironmentWarning warning : environmentWarningList) { + Map map = BeanUtil.beanToMap(warning); + List collect = environmentDevList.stream().filter(e -> e.getDeviceId().toString().equals(warning.getDeviceId().toString())).collect(Collectors.toList()); + if (collect.size() > 0) { + map.put("devName", collect.get(0).getDeviceName()); + map.put("devSn", collect.get(0).getDeviceId()); + } + if (warning.getIsNotPush() != null) { + map.put("isNotPush", warning.getIsNotPush() == 1 ? "推送" : "不推送"); + } + devMap2.add(map); + } + infoMap.put("warning", devMap2); + + // 报警值设置 + List environmentAlarmList = environmentWarningService.list(Wrappers.lambdaQuery() + .eq(EnvironmentWarning::getWarningType, 1) + .eq(EnvironmentWarning::getProjectSn, projectSn)); + List> devMap3 = new ArrayList<>(); + for (EnvironmentWarning warning : environmentAlarmList) { + Map map = BeanUtil.beanToMap(warning); + List collect = environmentDevList.stream().filter(e -> e.getDeviceId().toString().equals(warning.getDeviceId().toString())).collect(Collectors.toList()); + if (collect.size() > 0) { + map.put("devName", collect.get(0).getDeviceName()); + map.put("devSn", collect.get(0).getDeviceId()); + } + if (warning.getIsNotPush() != null) { + map.put("isNotPush", warning.getIsNotPush() == 1 ? "推送" : "不推送"); + } + devMap3.add(map); + } + infoMap.put("alarm", devMap3); + + // 环境监测数据 + List dustNoiseDataList = dustNoiseDataService.list(Wrappers.lambdaQuery() + .eq(DustNoiseData::getProjectSn, projectSn)); + List> devMap4 = new ArrayList<>(); + for (DustNoiseData dustNoiseData : dustNoiseDataList) { + Map map = BeanUtil.beanToMap(dustNoiseData); + List collect = environmentDevList.stream().filter(e -> e.getDeviceId().toString().equals(dustNoiseData.getDeviceId().toString())).collect(Collectors.toList()); + if (collect.size() > 0) { + map.put("devName", collect.get(0).getDeviceName()); + } + devMap4.add(map); + } + infoMap.put("dustNoiseDataList", devMap4); + + // 报警记录设置 + List environmentAlarms = environmentAlarmService.list(Wrappers.lambdaQuery() + .eq(EnvironmentAlarm::getProjectSn, projectSn)); + List> devMap5 = new ArrayList<>(); + for (EnvironmentAlarm alarm : environmentAlarms) { + Map map = BeanUtil.beanToMap(alarm); + List collect = environmentDevList.stream().filter(e -> e.getDeviceId().toString().equals(alarm.getDeviceId().toString())).collect(Collectors.toList()); + if (collect.size() > 0) { + map.put("devName", collect.get(0).getDeviceName()); + } + if (alarm.getAlarmTypeId() != null) { + List collect1 = environmentAlarmTypeList.stream().filter(e -> e.getId().toString().equals(alarm.getAlarmTypeId().toString())).collect(Collectors.toList()); + map.put("alarmTypeName", collect1.size() > 0 ? collect1.get(0).getAlarmType() : ""); + } + if (alarm.getType() != null) { + map.put("type", alarm.getType() == 1 ? "预警" : "报警"); + } + devMap5.add(map); + } + infoMap.put("environmentAlarms", devMap5); + + // 喷淋台账设置 + List sprayRtDataList = sprayRtDataService.list(Wrappers.lambdaQuery() + .eq(SprayRtData::getProjectSn, projectSn)); + List> devMap6 = new ArrayList<>(); + for (SprayRtData sprayRtData : sprayRtDataList) { + Map map = BeanUtil.beanToMap(sprayRtData); + List collect = sprayDevList.stream().filter(e -> e.getDevSn().toString().equals(sprayRtData.getDevSn().toString())).collect(Collectors.toList()); + if (collect.size() > 0) { + map.put("devName", collect.get(0).getDevName()); + } + devMap6.add(map); + } + infoMap.put("sprayRtData", devMap6); + try { + // 读取Word模板文件 + XWPFDocument doc = WordExportUtil.exportWord07("word/环境监测数据.docx", infoMap); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "环境监测信息.docx", "UTF-8")); + doc.write(response.getOutputStream()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @ApiOperation(value = "按模版导出AI识别信息", notes = "按模版导出AI识别信息", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exportAi/{projectSn}") + public void exportAi(HttpServletResponse response, @PathVariable("projectSn")String projectSn) { + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); + // AI设备 + List aiAnalyseHardWareRecordList = aiAnalyseHardWareRecordService.list(Wrappers.lambdaQuery() + .eq(AiAnalyseHardWareRecord::getProjectSn, projectSn)); + Map infoMap = new HashMap<>(); + infoMap.put("projectName", projectInfoBySn.getProjectName()); + infoMap.put("aiDev", aiAnalyseHardWareRecordList); + //扣分规则 + List deductRuleList = xzAiDeductRuleService.list(Wrappers.lambdaQuery().eq(XzAiDeductRule::getProjectSn, projectSn)); + List dict = dictionaryItemService.getDictList(DictionaryConstant.AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE, projectSn); + List> deductMapList = new ArrayList<>(); + for (XzAiDeductRule xzAiDeductRule : deductRuleList) { + Map map = BeanUtil.beanToMap(xzAiDeductRule); + List collect = dict.stream().filter(d -> d.getId().toString().equals(xzAiDeductRule.getDictionaryItemId().toString())).collect(Collectors.toList()); + if (collect.size() > 0) { + map.put("typeName", collect.get(0).getName()); + } + deductMapList.add(map); + } + infoMap.put("ruleList", deductMapList); + // AI预警记录 + List alarmList = aiAnalyseHardWareAlarmRecordService.list(Wrappers.lambdaQuery() + .eq(AiAnalyseHardWareAlarmRecord::getProjectSn, projectSn)); + List regionList = qualityRegionService.list(Wrappers.lambdaQuery() + .eq(QualityRegion::getProjectSn, projectSn)); + // 待处理的预警类型统计 + List> list1 = new ArrayList<>(); + for (DictionaryItem dictionaryItem : dict) { + Map map = new HashMap<>(); + map.put("name", dictionaryItem.getName()); + map.put("count", alarmList.stream().filter(a -> !a.getIsPushed() && a.getAlarmType().toString().equals(dictionaryItem.getData())).count()); + list1.add(map); + } + infoMap.put("list1", list1); + // 待处理的预警记录 + List unPushList = alarmList.stream().filter(a -> !a.getIsPushed()).collect(Collectors.toList()); + List> list2 = new ArrayList<>(); + for (AiAnalyseHardWareAlarmRecord aiAnalyseHardWareAlarmRecord : unPushList) { + Map map = BeanUtil.beanToMap(aiAnalyseHardWareAlarmRecord); + List collect = dict.stream().filter(d -> d.getData().toString().equals(aiAnalyseHardWareAlarmRecord.getAlarmType().toString())).collect(Collectors.toList()); + map.put("alarmTypeName", collect.size() > 0 ? collect.get(0).getName() : ""); + List collect1 = regionList.stream().filter(a -> a.getId().toString().equals(aiAnalyseHardWareAlarmRecord.getQualityRegionId().toString())).collect(Collectors.toList()); + map.put("qualityRegionName", collect1.size() > 0 ? collect1.get(0).getRegionName() : ""); + list2.add(map); + } + infoMap.put("list2", list2); + // 按区域划分未处理的预警 + List> list3 = new ArrayList<>(); + for (QualityRegion qualityRegion : regionList) { + Map map = new HashMap<>(); + map.put("name", qualityRegion.getRegionName()); + map.put("count", alarmList.stream().filter(a -> !a.getIsPushed() && a.getQualityRegionId().toString().equals(qualityRegion.getId().toString())).count()); + list3.add(map); + } + infoMap.put("list3", list3); + // 已处理的预警类型统计 + List> list4 = new ArrayList<>(); + for (DictionaryItem dictionaryItem : dict) { + Map map = new HashMap<>(); + map.put("name", dictionaryItem.getName()); + map.put("count", alarmList.stream().filter(a -> a.getIsPushed() && a.getAlarmType().toString().equals(dictionaryItem.getData())).count()); + list4.add(map); + } + infoMap.put("list4", list4); + // 已处理的预警记录 + Map paramMap = new HashMap<>(); + paramMap.put("pageNo", -1); + paramMap.put("pageSize", -1); + paramMap.put("projectSn", projectSn); + paramMap.put("isPushed", 1); + List pushList = aiAnalyseHardWareAlarmRecordService.queryAiAnalyseHardWareAlarmPageList(paramMap).getRecords(); + List> list5 = new ArrayList<>(); + for (AiAnalyseHardWareAlarmRecord aiAnalyseHardWareAlarmRecord : pushList) { + Map map = BeanUtil.beanToMap(aiAnalyseHardWareAlarmRecord); + List collect = dict.stream().filter(d -> d.getData().toString().equals(aiAnalyseHardWareAlarmRecord.getAlarmType().toString())).collect(Collectors.toList()); + map.put("alarmTypeName", collect.size() > 0 ? collect.get(0).getName() : ""); + List collect1 = regionList.stream().filter(a -> a.getId().toString().equals(aiAnalyseHardWareAlarmRecord.getQualityRegionId().toString())).collect(Collectors.toList()); + map.put("qualityRegionName", collect1.size() > 0 ? collect1.get(0).getRegionName() : ""); + list5.add(map); + } + infoMap.put("list5", list5); + // 按区域划分已处理的预警 + List> list6 = new ArrayList<>(); + for (QualityRegion qualityRegion : regionList) { + Map map = new HashMap<>(); + map.put("name", qualityRegion.getRegionName()); + map.put("count", alarmList.stream().filter(a -> a.getIsPushed() && a.getQualityRegionId().toString().equals(qualityRegion.getId().toString())).count()); + list6.add(map); + } + infoMap.put("list6", list6); + try { + // 读取Word模板文件 + XWPFDocument doc = WordExportUtil.exportWord07("word/AI预警.docx", infoMap); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "AI预警信息.docx", "UTF-8")); + doc.write(response.getOutputStream()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @ApiOperation(value = "按模版导出进度信息", notes = "按模版导出进度信息", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exportProgressInfo/{projectSn}") + public void exportProgressInfo(HttpServletResponse response, HttpServletRequest req, @PathVariable("projectSn")String projectSn) { + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); + Map infoMap = new HashMap<>(); + infoMap.put("projectName", projectInfoBySn.getProjectName()); + + HashMap paramMap = new HashMap<>(); + paramMap.put("projectSn", projectSn); + TaskProgressContent taskProgressContent = new TaskProgressContent(); + taskProgressContent.setProjectSn(projectSn); + List taskProgressContents = taskProgressContentService.queryList(taskProgressContent, req); + List taskProgresses = taskProgressService.list(Wrappers.lambdaQuery().eq(TaskProgress::getProjectSn, projectSn)); + List> taskList = new ArrayList<>(); + for (TaskProgressContent taskProgressContent1 : taskProgressContents) { + List collect = taskProgresses.stream().filter(t -> t.getId().toString().equals(taskProgressContent1.getTaskProgressId().toString())).collect(Collectors.toList()); + Map map = new HashMap<>(); + map.put("uploadDate", taskProgressContent1.getUploadDate()); + map.put("uploadUserName", taskProgressContent1.getUploadUserName()); + map.put("taskName", collect.size() > 0 ? collect.get(0).getTaskName() : ""); + map.put("progressRatio", taskProgressContent1.getProgressRatio()); + StringBuilder builder = new StringBuilder(); + for (TaskProgressMaterialRel taskProgressMaterialRel : taskProgressContent1.getTypeDataList()) { + builder.append(taskProgressMaterialRel.getName()).append(":").append(taskProgressMaterialRel.getActualUsage()).append(taskProgressMaterialRel.getUnit()).append(";"); + } + map.put("desc", builder.toString()); + taskList.add(map); + } + infoMap.put("taskList", taskList); + List alarmList = taskProgressAlarmService.list(Wrappers.lambdaQuery().eq(TaskProgressAlarm::getProjectSn, projectSn)); + infoMap.put("alarmList", alarmList); + try { + XWPFDocument doc = WordExportUtil.exportWord07("word/进度管理.docx", infoMap); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "进度信息.docx", "UTF-8")); + doc.write(response.getOutputStream()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @ApiOperation(value = "按模版导出安全质量信息", notes = "按模版导出安全质量信息", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exportSafetyInfo/{projectSn}") + public void exportSafetyInfo(HttpServletResponse response, HttpServletRequest req, @PathVariable("projectSn")String projectSn) { + String [] carModuleType = {"", "固定车", "预约车辆(长期)", "预约车辆(临时)"}; + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); + Map infoMap = new HashMap<>(); + infoMap.put("projectName", projectInfoBySn.getProjectName()); + Map paramMap = new HashMap<>(); + paramMap.put("projectSn", projectInfoBySn.getProjectSn()); + List carInfos = carInfoService.selectCarList(paramMap); + List> carList = new ArrayList<>(); + for (CarInfo carInfo : carInfos) { + Map map = BeanUtil.beanToMap(carInfo); + map.put("isBackName", carInfo.getIsBlack() == 0 ? "否" : "是"); + map.put("carModuleTypeName", carModuleType[carInfo.getCarModuleType()]); + if (carInfo.getEntryAndExitPermit() != null) { + map.put("entryAndExitPermitName", carInfo.getEntryAndExitPermit() == 0 ? "单次" : "多次"); + } + carList.add(map); + } + infoMap.put("carInfos", carList); + List carTypeList = carTypeService.list(Wrappers.lambdaQuery().eq(CarType::getProjectSn, projectSn)); + infoMap.put("carTypeList", carTypeList); + TodayOutInNumber todayOutInNumber = carPassRecordService.getTodayOutInNumber(projectSn, null); + Map map = BeanUtil.beanToMap(todayOutInNumber); + infoMap.putAll(map); + CountCarModuleTypeVo countCarModuleTypeVo = carInfoService.countCarModuleType(paramMap); + Integer totalNum = countCarModuleTypeVo.getCqcNum() + countCarModuleTypeVo.getGdcNum() + countCarModuleTypeVo.getLscNum(); + List> carModuleTypeList = new ArrayList<>(); + Map map1 = new HashMap<>(); + map1.put("name", "固定车"); + map1.put("num", countCarModuleTypeVo.getGdcNum()); + map1.put("ratio", new BigDecimal(countCarModuleTypeVo.getGdcNum()).divide(new BigDecimal(totalNum), 2 , BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100))); + carModuleTypeList.add(map1); + Map map2 = new HashMap<>(); + map2.put("name", "长期车"); + map2.put("num", countCarModuleTypeVo.getCqcNum()); + map2.put("ratio", new BigDecimal(countCarModuleTypeVo.getCqcNum()).divide(new BigDecimal(totalNum), 2 , BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100))); + carModuleTypeList.add(map2); + Map map3 = new HashMap<>(); + map3.put("name", "临时车"); + map3.put("num", countCarModuleTypeVo.getLscNum()); + map3.put("ratio", new BigDecimal(countCarModuleTypeVo.getLscNum()).divide(new BigDecimal(totalNum), 2 , BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100))); + carModuleTypeList.add(map3); + infoMap.put("carModuleTypeList", carModuleTypeList); + List carTypeStat = carTypeMapper.selectCarTypeTotalByCameraId(map); + List> carTypePass = new ArrayList<>(); + for (EntityMap entityMap : carTypeStat) { + Map passMap1 = new HashMap<>(); + map1.put("carTypeName", entityMap.get("carTypeName")); + map1.put("type", "进"); + map1.put("num", entityMap.get("innum")); + carTypePass.add(passMap1); + Map passMap2 = new HashMap<>(); + map1.put("carTypeName", entityMap.get("carTypeName")); + map1.put("type", "出"); + map1.put("num", entityMap.get("outnum")); + carTypePass.add(passMap2); + } + infoMap.put("carTypePass", carTypePass); + List carPassRecordList = carPassRecordService.getCarPassRecordList(paramMap); + List> passRecordList = new ArrayList<>(); + for (CarPassRecord carPassRecord : carPassRecordList) { + Map recordMap = BeanUtil.beanToMap(carPassRecord); + recordMap.put("carModuleTypeName", carModuleType[carPassRecord.getCarModuleType()]); + recordMap.put("typeName", carPassRecord.getType() == 0 ? "进" : "出"); + passRecordList.add(map); + } + paramMap.put("pageNo", 1); + paramMap.put("pageSize", 9999); + infoMap.put("passRecordList", passRecordList); + XzSecurityRecordVo xzSecurityRecordVo = xzSecurityQualityInspectionRecordService.selectQualityInspectionRecordPage(paramMap); + infoMap.putAll(BeanUtil.beanToMap(xzSecurityRecordVo.getTotal())); + infoMap.put("securityList", xzSecurityRecordVo.getPage().getRecords()); + List statsByEnterpriseVoPage = xzSecurityQualityInspectionRecordService.statsByEnterprise(paramMap).getRecords(); + infoMap.put("quality", statsByEnterpriseVoPage); + List xzSecurityQualityInspectionRecordTotalVos = xzSecurityQualityInspectionRecordService.riskChart(paramMap); + infoMap.put("yearMonth", xzSecurityQualityInspectionRecordTotalVos); + Map paramMap1 = new HashMap<>(); + paramMap1.put("projectSn", projectSn); + paramMap1.put("isNotQualified", 0); + paramMap1.put("isOverdueRectification", 1); + List data = xzSecurityQualityInspectionRecordService.countDangerLevel(paramMap1).getData(); + infoMap.put("data", data); + Map paramMap2 = new HashMap<>(); + paramMap2.put("projectSn", projectSn); + paramMap2.put("isNotQualified", 1); + paramMap2.put("isOverdueRectification", 0); + List data1 = xzSecurityQualityInspectionRecordService.countDangerLevel(paramMap2).getData(); + infoMap.put("data1", data1); + + HashMap paramMap3 = new HashMap<>(); + paramMap3.put("projectSn", projectSn); + paramMap3.put("enumType", ""); + List trendOne = xzSecurityQualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + paramMap3.put("enumType", "1"); + List trendOne1 = xzSecurityQualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + paramMap3.put("enumType", "2"); + List trendOne2 = xzSecurityQualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + paramMap3.put("enumType", "3"); + List trendOne3 = xzSecurityQualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + paramMap3.put("enumType", "4"); + List trendOne4 = xzSecurityQualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + List> trendOneList = new ArrayList<>(); + for (TrendOneVo trendOneVo : trendOne) { + Map map4 = new HashMap<>(); + String name = trendOneVo.getX(); + map4.put("name", name); + map4.put("all", trendOneVo.getY()); + List collect = trendOne1.stream().filter(t -> t.getX().equals(name)).collect(Collectors.toList()); + map4.put("enumType1", collect.size() > 0 ? collect.get(0).getY() : "0"); + List collect1 = trendOne2.stream().filter(t -> t.getX().equals(name)).collect(Collectors.toList()); + map4.put("enumType2", collect1.size() > 0 ? collect1.get(0).getY() : "0"); + List collect2 = trendOne3.stream().filter(t -> t.getX().equals(name)).collect(Collectors.toList()); + map4.put("enumType3", collect2.size() > 0 ? collect2.get(0).getY() : "0"); + List collect3 = trendOne4.stream().filter(t -> t.getX().equals(name)).collect(Collectors.toList()); + map4.put("enumType4", collect3.size() > 0 ? collect3.get(0).getY() : "0"); + trendOneList.add(map4); + } + infoMap.put("trendOneList", trendOneList); + String [] status = {"", "未开始", "进行中", "已完成", "已逾期"}; + HashMap paramMap4 = new HashMap<>(); + paramMap4.put("sn", projectSn); + paramMap4.put("type", 2); + paramMap4.put("pageNo", 1); + paramMap4.put("pageSize", 9999); + List records = xzSecurityInspectTaskRecordService.selectInspectTaskRecordPage(paramMap4).getRecords(); + List> taskList = new ArrayList<>(); + for (XzSecurityInspectTaskRecordVo inspectTaskRecordVo : records) { + Map map4 = BeanUtil.beanToMap(inspectTaskRecordVo); + map4.put("statusName", status[inspectTaskRecordVo.getTaskStatus()]); + taskList.add(map4); + } + infoMap.put("taskList", taskList); + List taskIds = records.stream().map(r -> r.getId().toString()).collect(Collectors.toList()); + List taskItem = xzSecurityInspectTaskItemRecordService.selectInspectTaskItemRecordPage(paramMap4).getRecords(); + taskItem = taskItem.stream().filter(t -> taskIds.contains(t.get("taskId").toString())).collect(Collectors.toList()); + for (EntityMap entityMap : taskItem) { + String [] userList = entityMap.get("userlist"); + entityMap.put("users", String.join(",", userList)); + } + infoMap.put("taskItem", taskItem); + try { + XWPFDocument doc = WordExportUtil.exportWord07("word/安全.docx", infoMap); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "安全信息.docx", "UTF-8")); + doc.write(response.getOutputStream()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @ApiOperation(value = "按模版导出质量信息", notes = "按模版导出质量信息", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exportQualityInfo/{projectSn}") + public void exportQualityInfo(HttpServletResponse response, HttpServletRequest req, @PathVariable("projectSn")String projectSn) { + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); + Map infoMap = new HashMap<>(); + infoMap.put("projectName", projectInfoBySn.getProjectName()); + Map paramMap = new HashMap<>(); + paramMap.put("projectSn", projectInfoBySn.getProjectSn()); + paramMap.put("pageNo", 1); + paramMap.put("pageSize", 9999); + RecordVo recordVo = qualityInspectionRecordService.selectQualityInspectionRecordPage(paramMap); + infoMap.putAll(BeanUtil.beanToMap(recordVo.getTotal())); + infoMap.put("securityList", recordVo.getPage().getRecords()); + List statsByEnterpriseVoPage = qualityInspectionRecordService.statsByEnterprise(paramMap).getRecords(); + infoMap.put("quality", statsByEnterpriseVoPage); + List xzSecurityQualityInspectionRecordTotalVos = qualityInspectionRecordService.riskChart(paramMap); + infoMap.put("yearMonth", xzSecurityQualityInspectionRecordTotalVos); + Map paramMap1 = new HashMap<>(); + paramMap1.put("projectSn", projectSn); + paramMap1.put("isNotQualified", 0); + paramMap1.put("isOverdueRectification", 1); + List data = qualityInspectionRecordService.countDangerLevel(paramMap1).getData(); + infoMap.put("data", data); + Map paramMap2 = new HashMap<>(); + paramMap2.put("projectSn", projectSn); + paramMap2.put("isNotQualified", 1); + paramMap2.put("isOverdueRectification", 0); + List data1 = qualityInspectionRecordService.countDangerLevel(paramMap2).getData(); + infoMap.put("data1", data1); + + HashMap paramMap3 = new HashMap<>(); + paramMap3.put("projectSn", projectSn); + paramMap3.put("enumType", ""); + List trendOne = qualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + paramMap3.put("enumType", "1"); + List trendOne1 = qualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + paramMap3.put("enumType", "2"); + List trendOne2 = qualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + paramMap3.put("enumType", "3"); + List trendOne3 = qualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + paramMap3.put("enumType", "4"); + List trendOne4 = qualityInspectionRecordService.countQualityInspectionRecordRegion(paramMap3); + List> trendOneList = new ArrayList<>(); + for (TrendOneVo trendOneVo : trendOne) { + Map map4 = new HashMap<>(); + String name = trendOneVo.getX(); + map4.put("name", name); + map4.put("all", trendOneVo.getY()); + List collect = trendOne1.stream().filter(t -> t.getX().equals(name)).collect(Collectors.toList()); + map4.put("enumType1", collect.size() > 0 ? collect.get(0).getY() : "0"); + List collect1 = trendOne2.stream().filter(t -> t.getX().equals(name)).collect(Collectors.toList()); + map4.put("enumType2", collect1.size() > 0 ? collect1.get(0).getY() : "0"); + List collect2 = trendOne3.stream().filter(t -> t.getX().equals(name)).collect(Collectors.toList()); + map4.put("enumType3", collect2.size() > 0 ? collect2.get(0).getY() : "0"); + List collect3 = trendOne4.stream().filter(t -> t.getX().equals(name)).collect(Collectors.toList()); + map4.put("enumType4", collect3.size() > 0 ? collect3.get(0).getY() : "0"); + trendOneList.add(map4); + } + infoMap.put("trendOneList", trendOneList); + String [] status = {"", "未开始", "进行中", "已完成", "已逾期"}; + HashMap paramMap4 = new HashMap<>(); + paramMap4.put("sn", projectSn); + paramMap4.put("type", 2); + paramMap4.put("pageNo", 1); + paramMap4.put("pageSize", 9999); + List records = inspectTaskRecordService.selectInspectTaskRecordPage(paramMap4).getRecords(); + List> taskList = new ArrayList<>(); + for (InspectTaskRecordVo inspectTaskRecordVo : records) { + Map map4 = BeanUtil.beanToMap(inspectTaskRecordVo); + map4.put("statusName", status[inspectTaskRecordVo.getTaskStatus()]); + taskList.add(map4); + } + infoMap.put("taskList", taskList); + List taskIds = records.stream().map(r -> r.getId().toString()).collect(Collectors.toList()); + List taskItem = inspectTaskItemRecordService.selectInspectTaskItemRecordPage(paramMap4).getRecords(); + taskItem = taskItem.stream().filter(t -> taskIds.contains(t.get("taskId").toString())).collect(Collectors.toList()); + for (EntityMap entityMap : taskItem) { + String [] userList = entityMap.get("userlist"); + entityMap.put("users", String.join(",", userList)); + } + infoMap.put("taskItem", taskItem); + try { + XWPFDocument doc = WordExportUtil.exportWord07("word/质量.docx", infoMap); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "安全信息.docx", "UTF-8")); + doc.write(response.getOutputStream()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @ApiOperation(value = "按模版导出劳务信息", notes = "按模版导出劳务信息", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exportWorkerInfo/{projectSn}") + public void exportWorkerInfo(HttpServletResponse response, HttpServletRequest req, @PathVariable("projectSn")String projectSn) { + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); + Map infoMap = new HashMap<>(); + infoMap.put("projectName", projectInfoBySn.getProjectName()); + Map paramMap = new HashMap<>(); + paramMap.put("projectSn", projectInfoBySn.getProjectSn()); + List systemUser = systemUserService.getProjectChildernSystemUserList(paramMap); + infoMap.put("systemUser", systemUser); + List qualityRegions = qualityRegionService.selectQualityRegionList(paramMap); + infoMap.put("qualityRegions", qualityRegions); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(WorkerType::getProjectSn, projectSn); + List workerTypes = workerTypeService.list(queryWrapper); + infoMap.put("workerTypes", workerTypes); + List teamInfoList = teamInfoService.selectTeamDetailsList(paramMap); + infoMap.put("teamInfoList", teamInfoList); + List departmentInfos = departmentInfoService.selectDepartmentDetailsList(paramMap); + infoMap.put("departmentInfos", departmentInfos); + paramMap.put("pageNo", 1); + paramMap.put("pageSize", 9999); + List workerList = workerInfoService.selectWorkerInfoList(paramMap).getRecords(); + infoMap.put("workerList", workerList); + List workerIds = workerList.stream().map(w -> w.getId()).collect(Collectors.toList()); + List workerContracts = workerContractService.list(Wrappers.lambdaQuery().in(WorkerContract::getWorkerId, workerIds)); + List> workerContractList = new ArrayList<>(); + for (WorkerContract workerContract : workerContracts) { + Map map = BeanUtil.beanToMap(workerContract); + List collect = workerList.stream().filter(w -> w.getId().toString().equals(workerContract.getWorkerId().toString())).collect(Collectors.toList()); + map.put("workerName", collect.size() > 0 ? collect.get(0).getWorkerName() : ""); + workerContractList.add(map); + } + infoMap.put("workerContractList", workerContractList); + List workerCertificates = workerCertificateService.list(Wrappers.lambdaQuery().in(WorkerCertificate::getWorkerId, workerIds)); + infoMap.put("workerCertificates", workerCertificates); + List workerPhysicals = workerPhysicalsService.list(Wrappers.lambdaQuery().in(WorkerPhysicals::getWorkerId, workerIds)); + infoMap.put("workerPhysicals", workerPhysicals); + List workerInsurances = workerInsuranceService.list(Wrappers.lambdaQuery().in(WorkerInsurance::getWorkerId, workerIds)); + infoMap.put("workerInsurances", workerInsurances); + List trainRecordVos = workerInfoService.getTrainRecordsByWorkerId(paramMap); + infoMap.put("trainRecordVos", trainRecordVos); + List evaluateList = workerEvaluateService.selectWorkerEvaluatePageList(paramMap).getRecords(); + List eventType1 = evaluateList.stream().filter(e -> e.get("eventType").toString().equals("1")).collect(Collectors.toList()); + infoMap.put("eventType1", eventType1); + List eventType2 = evaluateList.stream().filter(e -> e.get("eventType").toString().equals("2")).collect(Collectors.toList()); + infoMap.put("eventType2", eventType2); + HashMap paramMap1 = new HashMap<>(); + paramMap.put("projectSn", projectInfoBySn.getProjectSn()); + List xzDeductScoreRecords = xzDeductScoreRecordService.queryList(paramMap1); + infoMap.put("xzDeductScoreRecords", xzDeductScoreRecords); + try { + XWPFDocument doc = WordExportUtil.exportWord07("word/劳务.docx", infoMap); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(projectInfoBySn.getProjectName() + "劳务信息.docx", "UTF-8")); + doc.write(response.getOutputStream()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + private Map getProjectInfo(ProjectInfoExtVo projectInfoExtVo) { + List projectType = dictionaryItemService.getDictList("project_type", projectInfoExtVo.getProjectSn()); + List projectStructureType = dictionaryItemService.getDictList("project_structure_type", projectInfoExtVo.getProjectSn()); + List projectConstructionStage = dictionaryItemService.getDictList("project_construction_stage", projectInfoExtVo.getProjectSn()); + Map infoMap = BeanUtil.beanToMap(projectInfoExtVo); + List itemList = projectType.stream().filter(p -> p.getData().equals(projectInfoExtVo.getProjectType().toString())).collect(Collectors.toList()); + infoMap.put("projectTypeName", itemList.size() > 0 ? itemList.get(0).getName() : ""); + List itemList1 = projectStructureType.stream().filter(p -> p.getData().equals(projectInfoExtVo.getStructureType().toString())).collect(Collectors.toList()); + infoMap.put("structureTypeName", itemList1.size() > 0 ? itemList1.get(0).getName() : ""); + List itemList2 = projectConstructionStage.stream().filter(p -> p.getData().equals(projectInfoExtVo.getConstructionStage().toString())).collect(Collectors.toList()); + infoMap.put("constructionStageName", itemList2.size() > 0 ? itemList2.get(0).getName() : ""); + infoMap.put("majorProjectTypeName", projectInfoExtVo.getMajorProjectType() == 1 ? "是" : "否"); + infoMap.put("bulidStatusName", getProjectState(projectInfoExtVo.getBulidStatus())); + return infoMap; + } + + private List> getEnterpriseSupplierInfo(List list, List enterpriseInfoList) { + List> list1 = new ArrayList<>(); + String projectSn = list.get(0).getProjectSn(); + List projectType = dictionaryItemService.getDictList("project_type", projectSn); + List projectStructureType = dictionaryItemService.getDictList("project_structure_type", projectSn); + List projectConstructionStage = dictionaryItemService.getDictList("project_construction_stage", projectSn); + for (ProjectEnterpriseSupplierInfo projectEnterpriseSupplierInfo : list) { + Map infoMap = BeanUtil.beanToMap(projectEnterpriseSupplierInfo); + List itemList = projectType.stream().filter(p -> p.getData().equals(projectEnterpriseSupplierInfo.getProjectType().toString())).collect(Collectors.toList()); + infoMap.put("projectTypeName", itemList.size() > 0 ? itemList.get(0).getName() : ""); + List itemList1 = projectStructureType.stream().filter(p -> p.getData().equals(projectEnterpriseSupplierInfo.getStructureType().toString())).collect(Collectors.toList()); + infoMap.put("structureTypeName", itemList1.size() > 0 ? itemList1.get(0).getName() : ""); + List itemList2 = projectConstructionStage.stream().filter(p -> p.getData().equals(projectEnterpriseSupplierInfo.getConstructionStage().toString())).collect(Collectors.toList()); + infoMap.put("constructionStageName", itemList2.size() > 0 ? itemList2.get(0).getName() : ""); + infoMap.put("bulidStatusName", getProjectState(projectEnterpriseSupplierInfo.getBulidStatus())); + List itemList3 = enterpriseInfoList.stream().filter(p -> p.getId().toString().equals(projectEnterpriseSupplierInfo.getEnterpriseId().toString())).collect(Collectors.toList()); + infoMap.put("enterpriseName", itemList3.size() > 0 ? itemList3.get(0).getEnterpriseName() : ""); + list1.add(infoMap); + } + return list1; + } + + private List> getEnterpriseInfo(List enterpriseInfoList, List enterpriseTypeList) { + String [] nature = {"国有企业", "三资企业", "集体企业", "私营企业"}; + List> enterpriseMapList = new ArrayList<>(); + for (EnterpriseInfo enterpriseInfo : enterpriseInfoList) { + List collect = enterpriseTypeList.stream().filter(e -> e.getId().toString().equals(enterpriseInfo.getEnterpriseTypeId().toString())).collect(Collectors.toList()); + enterpriseInfo.setEnterpriseTypeName(collect.size() > 0 ? collect.get(0).getCompanyTypeName() : ""); + Map map = BeanUtil.beanToMap(enterpriseInfo); + map.put("enterpriseProperty", nature[enterpriseInfo.getEnterpriseProperty() + 1]); + enterpriseMapList.add(map); + } + return enterpriseMapList; + } + + private String getProjectState(int state) { + String name = ""; + switch (state) { + case 0 : + name = "未开工"; + break; + case 1 : + name = "在建"; + break; + case 2 : + name = "停工"; + break; + case 3 : + name = "验收"; + break; + case 4 : + name = "完工"; + break; + } + return name; + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ModuleTalkController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ModuleTalkController.java new file mode 100644 index 000000000..6db688eb7 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ModuleTalkController.java @@ -0,0 +1,169 @@ +package com.zhgd.xmgl.modules.basicdata.controller; + +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.modules.project.entity.ProjectExtend; +import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; +import com.zhgd.xmgl.modules.project.service.IProjectExtendService; +import com.zhgd.xmgl.modules.project.service.IProjectService; +import com.zhgd.xmgl.util.PageUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +/** + * @program: wisdomSite + * @description: dift接口 + * @author: Mr.Peng + * @create: 2020-12-21 09:33 + **/ +@RestController +@RequestMapping("/xmgl/modelDify") +@Slf4j +@Api(tags = "dify对话接口") +public class ModuleTalkController { + @Resource + private IProjectExtendService projectExtendService; + + @ApiOperation(value = "发起对话", notes = "对话", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "chatId", value = "对话ID(新对话无需传)", dataType = "String"), + @ApiImplicitParam(name = "content", value = "对话内容", required = true, dataType = "String"), + @ApiImplicitParam(name = "projectSn", value = "项目SN", required = true, dataType = "String") + }) + @PostMapping(value = "/chat") + public Result chat(@RequestBody @ApiIgnore Map map) { + ProjectExtend config = getConfig(map); + String url = "https://cloud.fastgpt.cn/api/v1/chat/completions"; + String chatId = MapUtils.getString(map, "chatId"); + String content = MapUtils.getString(map, "content"); + if (StringUtils.isBlank(chatId)) { + chatId = UUID.randomUUID().toString().replace("-", "").toUpperCase(); + } + Map param = new HashMap<>(16); + Map message = new HashMap<>(16); + message.put("role", "user"); + message.put("content", content); + List> messages = new ArrayList<>(); + messages.add(message); + param.put("chatId", chatId); + param.put("stream", false); + param.put("detail", false); + param.put("messages", messages); + String body = JSONUtil.toJsonStr(param); + String post = HttpUtil.createPost(url) + .addHeaders(buildHeader(config.getModelKey())).body(body).timeout(5000).execute().body(); + return Result.success(post); + } + + @ApiOperation(value = "对话列表", notes = "查询对话列表", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "偏移量,即从第几条数据开始取", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "记录数量", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "projectSn", value = "项目SN", required = true, dataType = "String") + }) + @PostMapping(value = "/chatList") + public Result chatList(@RequestBody @ApiIgnore Map map) { + ProjectExtend config = getConfig(map); + String url = "https://cloud.fastgpt.cn/api/core/chat/getHistories"; + Page page = PageUtil.getPage(map); + Map param = new HashMap<>(16); + param.put("appId", config.getModelUrl()); + param.put("offset", page.getCurrent()); + param.put("pageSize", page.getSize()); + param.put("source", "api"); + String body = JSONUtil.toJsonStr(param); + String post = HttpUtil.createPost(url) + .addHeaders(buildHeader(config.getModelKey())).body(body).timeout(5000).execute().body(); + return Result.success(post); + } + + @ApiOperation(value = "对话列表", notes = "修改对话标题", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "chatId", value = "对话ID", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "customTitle", value = "对话标题", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "projectSn", value = "项目SN", required = true, dataType = "String") + }) + @PostMapping(value = "/updateChatTitle") + public Result updateChatTitle(@RequestBody @ApiIgnore Map map) { + ProjectExtend config = getConfig(map); + String url = "https://cloud.fastgpt.cn/api/core/chat/updateHistory"; + Map param = new HashMap<>(16); + param.put("appId", config.getModelUrl()); + param.put("chatId", MapUtils.getString(map, "chatId")); + param.put("customTitle", MapUtils.getString(map, "customTitle")); + String body = JSONUtil.toJsonStr(param); + String post = HttpUtil.createPost(url) + .addHeaders(buildHeader(config.getModelKey())).body(body).timeout(5000).execute().body(); + return Result.success(post); + } + + @ApiOperation(value = "对话列表", notes = "置顶/取消置顶对话", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "chatId", value = "对话ID", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "top", value = "true/false", paramType = "query", required = true, dataType = "Boolean"), + @ApiImplicitParam(name = "projectSn", value = "项目SN", required = true, dataType = "String") + }) + @PostMapping(value = "/chatTop") + public Result chatTop(@RequestBody @ApiIgnore Map map) { + ProjectExtend config = getConfig(map); + String url = "https://cloud.fastgpt.cn/api/core/chat/updateHistory"; + Map param = new HashMap<>(16); + param.put("appId", config.getModelUrl()); + param.put("chatId", MapUtils.getString(map, "chatId")); + param.put("top", MapUtils.getString(map, "top")); + String body = JSONUtil.toJsonStr(param); + String post = HttpUtil.createPost(url) + .addHeaders(buildHeader(config.getModelKey())).body(body).timeout(5000).execute().body(); + return Result.success(post); + } + + @ApiOperation(value = "对话内容列表", notes = "查询对话内容", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "偏移量,即从第几条数据开始取", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "记录数量", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "chatId", value = "对话ID", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "projectSn", value = "项目SN", required = true, dataType = "String") + }) + @PostMapping(value = "/chatContentList") + public Result chatContentList(@RequestBody @ApiIgnore Map map) { + ProjectExtend config = getConfig(map); + String url = "https://cloud.fastgpt.cn/api/core/chat/getPaginationRecords"; + Page page = PageUtil.getPage(map); + Map param = new HashMap<>(16); + param.put("appId", config.getModelUrl()); + param.put("offset", page.getCurrent()); + param.put("pageSize", page.getSize()); + param.put("chatId", MapUtils.getString(map, "chatId")); + String body = JSONUtil.toJsonStr(param); + String post = HttpUtil.createPost(url) + .addHeaders(buildHeader(config.getModelKey())).body(body).timeout(5000).execute().body(); + return Result.success(post); + } + + private ProjectExtend getConfig(Map map) { + String projectSn = MapUtils.getString(map, "projectSn"); + ProjectExtend projectExtend = projectExtendService.getOne(Wrappers.lambdaQuery().eq(ProjectExtend::getProjectSn, projectSn)); + return projectExtend; + } + + private Map buildHeader(String apiKey) { + Map header = new HashMap<>(); + header.put("Authorization", "Bearer " + apiKey); + return header; + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/car/controller/CarPassRecordController.java b/src/main/java/com/zhgd/xmgl/modules/car/controller/CarPassRecordController.java index 08486665b..32a1dd191 100644 --- a/src/main/java/com/zhgd/xmgl/modules/car/controller/CarPassRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/car/controller/CarPassRecordController.java @@ -196,17 +196,6 @@ public class CarPassRecordController { map.put("closeup_pic", closeupPic); map.put("type", type); log.info("saveCarPassRecord:{}", JSON.toJSONString(map)); - if (EnvironmentUtil.getActiveEnvironment().equals("baise") && Objects.equals(parkId, "F20D19C31C5140C585185BAB10E8D9A2")) { - CompletableFuture.runAsync(() -> { - //木垒转发 - String result2 = HttpRequest.post(PathUtil.getMlTranspondUrl() + "/xmgl/carPassRecord/saveCarPassRecord") - .form(map) - .timeout(2000)//超时,毫秒 - .execute().body(); - log.info("木垒转发车牌识别结果:{}", result2); - }); - } - Map data = new HashMap<>(16); String online = "online"; String offline = "offline"; diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java index e15869a43..2d24a0584 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java @@ -187,16 +187,16 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl { - //木垒转发 - String result2 = HttpRequest.post(PathUtil.getMlTranspondUrl() + "/xmgl/api/saveHardWareAlarm") - .body(JSON.toJSONString(body)) - .timeout(2000)//超时,毫秒 - .execute().body(); - log.info("木垒AI预警转发结果:{}", result2); - }); - } +// if (EnvironmentUtil.getActiveEnvironment().equals("baise")) { +// CompletableFuture.runAsync(() -> { +// //木垒转发 +// String result2 = HttpRequest.post(PathUtil.getMlTranspondUrl() + "/xmgl/api/saveHardWareAlarm") +// .body(JSON.toJSONString(body)) +// .timeout(2000)//超时,毫秒 +// .execute().body(); +// log.info("木垒AI预警转发结果:{}", result2); +// }); +// } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(AiAnalyseHardWareRecord::getHardwareId, body.getString("hardwareId")); AiAnalyseHardWareRecord aiAnalyseHardWareRecord = aiAnalyseHardWareRecordMapper.selectOne(queryWrapper); diff --git a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java index 62b8f3dec..7873861de 100644 --- a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java +++ b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java @@ -428,6 +428,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/xmgl/workerAttendance/viewDayAttendanceList").permitAll() .antMatchers("/xmgl/workerAttendanceRule/queryById").permitAll() .antMatchers("/xmgl/tunnelBoringMachineCurrentData/add").permitAll() + .antMatchers("/xmgl/modelDownload/**").permitAll() .antMatchers(HttpMethod.OPTIONS, "/**").anonymous() .anyRequest().authenticated() // 剩下所有的验证都需要验证. .and() diff --git a/src/main/resources/word/AI预警.docx b/src/main/resources/word/AI预警.docx new file mode 100644 index 0000000000000000000000000000000000000000..cc93883b314041a2e970b0d2769b80f3f1621f21 GIT binary patch literal 15564 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 F{vW>2JJ|pL literal 0 HcmV?d00001 diff --git a/src/main/resources/word/分包单位信息.docx b/src/main/resources/word/分包单位信息.docx new file mode 100644 index 0000000000000000000000000000000000000000..f84fe8b4c484459ef33e1e016e37872af6c36d85 GIT binary patch literal 17983 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/word/劳务.docx b/src/main/resources/word/劳务.docx new file mode 100644 index 0000000000000000000000000000000000000000..5351a9473c480f51a4720ed4d9fa29cd655c26e7 GIT binary patch literal 29623 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 kKXtnQDz)S9z`s literal 0 HcmV?d00001 diff --git a/src/main/resources/word/安全.docx b/src/main/resources/word/安全.docx new file mode 100644 index 0000000000000000000000000000000000000000..c31cc9ee849300764aada41a4a6b8a3b8d2df55c GIT binary patch literal 25300 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/word/环境监测数据.docx b/src/main/resources/word/环境监测数据.docx new file mode 100644 index 0000000000000000000000000000000000000000..c6fa4540a208817c2075ff2147c657e2ac95f913 GIT binary patch literal 17833 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/word/质量.docx b/src/main/resources/word/质量.docx new file mode 100644 index 0000000000000000000000000000000000000000..7cf391080579d7fe2c19e241d32746ecc98f1d83 GIT binary patch literal 21015 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/word/进度管理.docx b/src/main/resources/word/进度管理.docx new file mode 100644 index 0000000000000000000000000000000000000000..7f33ce20ce21c1ba9a7322eb104a3c15c20152ff GIT binary patch literal 14363 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/word/项目基本信息.docx b/src/main/resources/word/项目基本信息.docx new file mode 100644 index 0000000000000000000000000000000000000000..cbfd5588555c7551c4875465786de4f58b74d99e GIT binary patch literal 13650 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