|
@@ -0,0 +1,161 @@
|
|
|
+package com.rongwei.sfcommon.sys.service.impl;
|
|
|
+
|
|
|
+
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.rongwe.scentity.domian.AspRiskSourceDo;
|
|
|
+import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
|
|
|
+import com.rongwei.rwadmincommon.system.domain.SysUserDo;
|
|
|
+import com.rongwei.rwadmincommon.system.service.SysOrganizationService;
|
|
|
+import com.rongwei.rwadmincommon.system.service.SysUserService;
|
|
|
+import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
+import com.rongwei.sfcommon.sys.dao.AspRiskSourceDao;
|
|
|
+import com.rongwei.sfcommon.sys.service.AspRiskSourceService;
|
|
|
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
|
+import org.apache.poi.ss.usermodel.Row;
|
|
|
+import org.apache.poi.ss.usermodel.Sheet;
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.LinkedList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class AspRiskSourceServiceImpl extends ServiceImpl<AspRiskSourceDao, AspRiskSourceDo> implements AspRiskSourceService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysUserService sysUserService;
|
|
|
+ @Autowired
|
|
|
+ private SysOrganizationService sysOrganizationService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void test(Boolean haveJob,String filePath,String category) {
|
|
|
+// //获取文件目录
|
|
|
+// String filePath = "C:\\Users\\shangmi\\Downloads\\设备活动分级管控清单.xls";
|
|
|
+ HashMap<String, String> map = new HashMap<>();
|
|
|
+ map.put("山东创新精铝金属制造有限公司","0001651000000017DRZ1");
|
|
|
+ map.put("山东创新板材有限公司","0001S31000000000J0TR");
|
|
|
+ map.put("山东创新箔材科技有限公司","0001651000000015EFDD");
|
|
|
+
|
|
|
+ HashMap<String, String> map2 = new HashMap<>();
|
|
|
+ map2.put("一","I");
|
|
|
+ map2.put("二","II");
|
|
|
+ map2.put("三","III");
|
|
|
+ map2.put("四","IV");
|
|
|
+
|
|
|
+
|
|
|
+ //初始化责任单位
|
|
|
+ HashMap<String, String> map3 = new HashMap<>();
|
|
|
+ List<SysOrganizationDo> organizationDoList = sysOrganizationService.list(new QueryWrapper<SysOrganizationDo>().lambda().isNotNull(SysOrganizationDo::getFullpid).eq(SysOrganizationDo::getDeleted,"0"));
|
|
|
+ for (SysOrganizationDo sysOrganizationDo : organizationDoList) {
|
|
|
+ map3.put(sysOrganizationDo.getFullpid().split(",")[1]+"-"+sysOrganizationDo.getFullname(), sysOrganizationDo.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ //初始化责任人
|
|
|
+ HashMap<String, String> map4 = new HashMap<>();
|
|
|
+ List<SysUserDo> userDoList = sysUserService.list(new QueryWrapper<SysUserDo>().lambda().eq(SysUserDo::getDeleted, "0"));
|
|
|
+ for (SysUserDo sysUserDo : userDoList) {
|
|
|
+ map4.put(sysUserDo.getName(),sysUserDo.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<AspRiskSourceDo> resList = new LinkedList<>();
|
|
|
+
|
|
|
+ //读取文件
|
|
|
+ try (FileInputStream fis = new FileInputStream(new File(filePath));
|
|
|
+ Workbook workbook = new HSSFWorkbook(fis)) {
|
|
|
+
|
|
|
+ Sheet sheet = workbook.getSheetAt(0); // 读取第一个工作表
|
|
|
+ for (Row row : sheet) {
|
|
|
+ String cell0 = row.getCell(0).getStringCellValue().trim();
|
|
|
+ if(ObjectUtil.isEmpty(cell0)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(!map.containsKey(cell0)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ AspRiskSourceDo aspRiskSourceDo = new AspRiskSourceDo();
|
|
|
+ //生成ID
|
|
|
+ aspRiskSourceDo.setId(SecurityUtil.getUUID());
|
|
|
+ //类别
|
|
|
+ aspRiskSourceDo.setCategory(category);
|
|
|
+
|
|
|
+ //所属工厂
|
|
|
+ aspRiskSourceDo.setTenantid(map.get(cell0));
|
|
|
+ //名称
|
|
|
+ aspRiskSourceDo.setName(row.getCell(1).getStringCellValue().trim());
|
|
|
+ if(haveJob) {
|
|
|
+ //作业活动
|
|
|
+ aspRiskSourceDo.setJobactivity(row.getCell(2).getStringCellValue().trim());
|
|
|
+ }
|
|
|
+ //作业步骤/内容(检查项目/作业步骤)
|
|
|
+ aspRiskSourceDo.setInspectionitem(row.getCell(3).getStringCellValue().trim());
|
|
|
+ //检查标准
|
|
|
+ aspRiskSourceDo.setInspectionstandard(row.getCell(4).getStringCellValue().trim());
|
|
|
+ //可能发生的事故类型及后果
|
|
|
+ aspRiskSourceDo.setEventuality(row.getCell(5).getStringCellValue().trim());
|
|
|
+ //工程技术措施
|
|
|
+ aspRiskSourceDo.setEngineeringmeasure(row.getCell(6).getStringCellValue().trim());
|
|
|
+ //管理措施
|
|
|
+ aspRiskSourceDo.setControlmeasure(row.getCell(7).getStringCellValue().trim());
|
|
|
+ //培训教育
|
|
|
+ aspRiskSourceDo.setEducationaltraining(row.getCell(8).getStringCellValue().trim());
|
|
|
+ //个体防护措施
|
|
|
+ aspRiskSourceDo.setSafeguardprocedures(row.getCell(9).getStringCellValue().trim());
|
|
|
+ //应急处置措施
|
|
|
+ aspRiskSourceDo.setImprintingmeasures(row.getCell(10).getStringCellValue().trim());
|
|
|
+ //评定级别
|
|
|
+ String cell15 = row.getCell(11).getStringCellValue().trim();
|
|
|
+ if(ObjectUtil.isEmpty(cell15)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(!map2.containsKey(cell15)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ aspRiskSourceDo.setRating(map2.get(cell15));
|
|
|
+ //风险分级
|
|
|
+ aspRiskSourceDo.setRiskranking(row.getCell(12).getStringCellValue().trim());
|
|
|
+ //管控层级
|
|
|
+ aspRiskSourceDo.setManagementlevel(row.getCell(13).getStringCellValue().trim());
|
|
|
+ //责任单位
|
|
|
+ String key = row.getCell(14).getStringCellValue().trim();
|
|
|
+ if(ObjectUtil.isNotEmpty(key)) {
|
|
|
+ String[] split = key.split("、");
|
|
|
+ List<String> orgNameList = new LinkedList<>();
|
|
|
+ List<String> orgIdList = new LinkedList<>();
|
|
|
+ for (String s : split) {
|
|
|
+ orgNameList.add(s);
|
|
|
+ orgIdList.add(map3.get(map.get(cell0) + "-" + s));
|
|
|
+ }
|
|
|
+ aspRiskSourceDo.setAccountabilityunnitname(String.join("/", orgNameList));
|
|
|
+ aspRiskSourceDo.setAccountabilityunnitid(String.join(",", orgIdList));
|
|
|
+ }
|
|
|
+ //责任人
|
|
|
+ String key2 = row.getCell(15).getStringCellValue().trim();
|
|
|
+ if(ObjectUtil.isNotEmpty(key2)) {
|
|
|
+ String[] split2 = key2.split("、");
|
|
|
+ List<String> userNameList = new LinkedList<>();
|
|
|
+ List<String> userIdList = new LinkedList<>();
|
|
|
+ for (String s : split2) {
|
|
|
+ userNameList.add(s);
|
|
|
+ userIdList.add(map4.get(key2));
|
|
|
+ }
|
|
|
+ aspRiskSourceDo.setDutyofficername(String.join(",", userNameList));
|
|
|
+ aspRiskSourceDo.setDutyofficerid(String.join(",", userIdList));
|
|
|
+ }
|
|
|
+
|
|
|
+ //合并
|
|
|
+ resList.add(aspRiskSourceDo);
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //插入数据
|
|
|
+ this.saveBatch(resList);
|
|
|
+ }
|
|
|
+}
|