From 5e697a70c7e49e18bc3bc2f75c2e9ad5bda17489 Mon Sep 17 00:00:00 2001 From: zmk <496160012@qq.com> Date: 星期五, 17 五月 2024 15:40:23 +0800 Subject: [PATCH] Merge branch 'master' of ssh://117.78.1.188:29418/dkyChenJiang --- javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 95 insertions(+), 1 deletions(-) diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java index ee49ede..f958545 100644 --- a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java +++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java @@ -1,9 +1,18 @@ package com.javaweb.geo.service.impl; +import java.io.File; import java.util.List; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; +import com.javaweb.common.config.Global; import com.javaweb.common.utils.DateUtils; import com.javaweb.common.utils.IdGenerate; +import com.javaweb.geo.domain.Device; +import com.javaweb.geo.domain.Project; +import com.javaweb.geo.enums.RecordType; +import com.javaweb.geo.service.IDeviceService; +import com.javaweb.geo.service.IProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.javaweb.geo.mapper.DeviceLogMapper; @@ -11,6 +20,7 @@ import com.javaweb.geo.service.IDeviceLogService; import com.javaweb.common.core.text.Convert; import org.springframework.util.ObjectUtils; +import org.springframework.web.multipart.MultipartFile; import tk.mybatis.mapper.genid.GenIdUtil; /** @@ -21,8 +31,17 @@ */ @Service public class DeviceLogServiceImpl implements IDeviceLogService { + @Autowired private DeviceLogMapper deviceLogMapper; + + @Autowired + private IProjectService projectService; + + @Autowired + private IDeviceService deviceService; + + private String fileSaveDir = Global.getProfile() + "\\template\\" ; /** * 鏌ヨ璁惧鍑哄叆搴撹褰� @@ -57,7 +76,7 @@ if(ObjectUtils.isEmpty(deviceLog.getId())){ deviceLog.setId(IdGenerate.nextId()); } - deviceLog.setCreateTime(DateUtils.getNowDate()); + deviceLog.setCreateDate(DateUtils.getNowDate()); return deviceLogMapper.insertDeviceLog(deviceLog); } @@ -93,4 +112,79 @@ public int deleteDeviceLogById(String id) { return deviceLogMapper.deleteDeviceLogById(id); } + + + /** + * 瀵煎叆璁惧鍑哄叆搴撹褰� + */ + @Override + public String importDeviceLog(String projectId,MultipartFile file, boolean updateSupport) { + // 鍏宠仈椤圭洰淇℃伅 + Project project = projectService.selectProjectById(projectId); + + try { + String dest = saveExcel(file); + List<DeviceLog> list = readData(dest); + for (DeviceLog item : list) { + // 杞崲椤圭洰淇℃伅 + item.setProjectId(projectId); + item.setProjectName(project.getFullName()); + + // 杞崲鍑哄叆搴撶被鍨� + String proTypeCode = RecordType.getKeyByName(item.getType()); + item.setType(proTypeCode); + + // 杞崲璁惧缂栫爜 + String deviceCode = item.getDeviceCode(); + if (!ObjectUtils.isEmpty(deviceCode)){ + Device param = new Device(); + param.setCode(deviceCode); + List<Device> devices = deviceService.selectDeviceList(param); + if (!ObjectUtils.isEmpty(devices)){ + Device device = devices.get(0); + item.setDeviceId(device.getId()); + item.setDeviceCode(device.getCode()); + item.setDeviceName(device.getName()); + } + } + + item.setCreateDate(DateUtils.getNowDate()); + insertDeviceLog(item); + } + } catch (Exception e) { + return e.toString(); + } + return "瀵煎叆瀹屾瘯" ; + } + + private String saveExcel(MultipartFile file) { + String filename = file.getOriginalFilename(); + File dir = new File(fileSaveDir); + if (!dir.exists()) { + dir.mkdir(); + } + String addr = fileSaveDir + filename; + try { + File dest = new File(addr); + file.transferTo(dest); + } catch (Exception e) { + return null; + } + return addr; + } + + private List<DeviceLog> readData(String filepath) { + ExcelReader reader = ExcelUtil.getReader(filepath, 0); + reader.addHeaderAlias("鍑哄叆搴撳崟瀛愬彿", "code"); + reader.addHeaderAlias("璁惧缂栫爜", "deviceCode"); + reader.addHeaderAlias("鍑哄叆搴撶被鍨�", "type"); + reader.addHeaderAlias("鍑哄叆搴撴椂闂�", "transactionDate"); + reader.addHeaderAlias("缁忓姙浜�", "optUser"); + reader.addHeaderAlias("浣跨敤浜�", "applyUser"); + reader.addHeaderAlias("鍑哄叆搴撴暟閲�", "number"); + reader.addHeaderAlias("澶囨敞", "remark"); + + List<DeviceLog> list = reader.readAll(DeviceLog.class); + return list; + } } -- Gitblit v1.9.1