From c6f79f5720c5d4a700b8b759a93393559409fd1c Mon Sep 17 00:00:00 2001 From: chenhuan <czj123456> Date: 星期一, 20 五月 2024 15:11:58 +0800 Subject: [PATCH] Merge branch 'master' of http://117.78.1.188:8089/r/dkyChenJiang --- javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java | 102 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 98 insertions(+), 4 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..5b1692d 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,14 @@ */ @Service public class DeviceLogServiceImpl implements IDeviceLogService { + @Autowired private DeviceLogMapper deviceLogMapper; + + @Autowired + private IProjectService projectService; + + private String fileSaveDir = Global.getProfile() + "\\template\\" ; /** * 鏌ヨ璁惧鍑哄叆搴撹褰� @@ -54,10 +70,7 @@ */ @Override public int insertDeviceLog(DeviceLog deviceLog) { - if(ObjectUtils.isEmpty(deviceLog.getId())){ - deviceLog.setId(IdGenerate.nextId()); - } - deviceLog.setCreateTime(DateUtils.getNowDate()); + deviceLog.setCreateDate(DateUtils.getNowDate()); return deviceLogMapper.insertDeviceLog(deviceLog); } @@ -93,4 +106,85 @@ public int deleteDeviceLogById(String id) { return deviceLogMapper.deleteDeviceLogById(id); } + + + /** + * 瀵煎叆璁惧鍑哄叆搴撹褰� + */ + @Override + public String importDeviceLog(String projectId,MultipartFile file, boolean updateSupport) { + // 鍏宠仈椤圭洰淇℃伅 + Project project = projectService.selectProjectById(projectId); + // 鍏宠仈code + Integer number = deviceLogMapper.selectMaxDeviceLogId(projectId); + + try { + String dest = saveExcel(file); + List<DeviceLog> list = readData(dest); + for (DeviceLog item : list) { + // 杞崲椤圭洰淇℃伅 + item.setProjectId(projectId); + item.setProjectName(project.getFullName()); + + // 杞崲number淇℃伅 + if (ObjectUtils.isEmpty(number)){ + number = 1; + }else { + number++; + } + String code = "ZTCJ" + String.format("%06d", number); + item.setCode(code); + + item.setCreateDate(DateUtils.getNowDate()); + insertDeviceLog(item); + } + } catch (Exception e) { + return e.toString(); + } + return "瀵煎叆瀹屾瘯" ; + } + + + /** + * 鏌ヨ鏁版嵁搴撲腑id鏈�澶у�� + * @return + * + * TRUNCATE TABLE js_device_log; + * ALTER TABLE js_device_log AUTO_INCREMENT = 1; + */ + @Override + public Integer selectMaxDeviceLogId(String projectId) { + return deviceLogMapper.selectMaxDeviceLogId(projectId); + } + + 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("璁惧鍚嶇О", "deviceName"); + reader.addHeaderAlias("绫诲瀷", "type"); + reader.addHeaderAlias("鍏ュ簱鏃堕棿", "inboundDate"); + reader.addHeaderAlias("鍑哄簱鏃堕棿", "outboundDate"); + 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