From b7f3f1ed8d3311e3b7aa99731ced6745cc3413b4 Mon Sep 17 00:00:00 2001
From: suerwei <18810552194@163.com>
Date: 星期五, 17 五月 2024 11:57:23 +0800
Subject: [PATCH] 整理进出库管理功能

---
 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