From dfe35b46051d6c2e1390a727f6a9c49aed347ac2 Mon Sep 17 00:00:00 2001
From: chenhuan <czj123456>
Date: 星期二, 21 五月 2024 17:00:33 +0800
Subject: [PATCH] bg
---
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