From 7f89db04cc75a842352087099ee6a7431b7357e0 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期二, 09 十二月 2025 15:12:24 +0800
Subject: [PATCH] 修改返回所有数据

---
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandingBookServiceImpl.java |  131 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 130 insertions(+), 1 deletions(-)

diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandingBookServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandingBookServiceImpl.java
index 7c0d37c..4ef1cae 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandingBookServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandingBookServiceImpl.java
@@ -1,19 +1,36 @@
 package com.gkhy.exam.system.service.impl;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelReader;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.read.listener.ReadListener;
+import com.alibaba.excel.read.metadata.ReadSheet;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.gkhy.exam.common.api.CommonPage;
 import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.api.ImportResult;
+import com.gkhy.exam.common.domain.entity.SysDept;
+import com.gkhy.exam.common.domain.entity.SysUser;
 import com.gkhy.exam.common.utils.PageUtils;
 import com.gkhy.exam.common.utils.SecurityUtils;
-import com.gkhy.exam.system.domain.Correction;
+import com.gkhy.exam.system.domain.DTO.StandingBookImportDTO;
 import com.gkhy.exam.system.domain.StandingBook;
+import com.gkhy.exam.system.domain.vo.DeptVo;
 import com.gkhy.exam.system.mapper.StandingBookMapper;
+import com.gkhy.exam.system.mapper.SysDeptMapper;
+import com.gkhy.exam.system.mapper.SysUserMapper;
 import com.gkhy.exam.system.service.StandingBookService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -28,6 +45,13 @@
 
     @Autowired
     private StandingBookMapper standingBookMapper;
+
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
+
+    @Autowired
+
+    private SysUserMapper sysUserMapper;
     @Override
     public CommonPage selectStandingBookList(StandingBook standingBook) {
         PageUtils.startPage();
@@ -71,4 +95,109 @@
         }
         return CommonResult.failed();
     }
+
+    @Override
+    @Transactional
+    public ImportResult importStandingBooks(Long companyId, MultipartFile file) {
+        ImportResult result = new ImportResult();
+        result.setSuccessCount(0);
+        result.setFailCount(0);
+        result.setErrorMessages(new ArrayList<>());
+
+        SysDept sysDept = new SysDept();
+        sysDept.setCompanyId(companyId);
+        List<DeptVo> deptVos = sysDeptMapper.selectDeptList(sysDept);
+        Map<String, Long> deptNameIdMap = deptVos.stream()
+                .collect(Collectors.toMap(DeptVo::getDeptName, DeptVo::getDeptId));
+
+        LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SysUser::getCompanyId, companyId);
+        queryWrapper.eq(SysUser::getDelFlag, 0);
+        List<SysUser> sysUsers = sysUserMapper.selectList(queryWrapper);
+        Map<String, Long> userNameIdMap = sysUsers.stream()
+                .collect(Collectors.toMap(SysUser::getName, SysUser::getId));
+
+        try {
+            // 使用EasyExcel读取文件
+            ReadListener<StandingBookImportDTO> listener = new ReadListener<StandingBookImportDTO>() {
+                @Override
+                public void invoke(StandingBookImportDTO dto, AnalysisContext context) {
+                    try {
+                        // 转换为实体对象
+                        StandingBook standingBook = new StandingBook();
+                        standingBook.setCompanyId(companyId);
+                        standingBook.setDeptId(deptNameIdMap.get(dto.getDeptName()) == null ? 0L : deptNameIdMap.get(dto.getDeptName()));
+                        standingBook.setName(dto.getName());
+                        standingBook.setModel(dto.getModel());
+                        standingBook.setPersonResponsible(userNameIdMap.get(dto.getPersonResponsible()) == null ? 0L : userNameIdMap.get(dto.getPersonResponsible()));
+                        String deviceType = dto.getDeviceType();
+                        switch (deviceType) {
+                            case "计算机设备":
+                                standingBook.setDeviceType(1);
+                                break;
+                            case "办公自动化设备":
+                                standingBook.setDeviceType(2);
+                                break;
+                            case "外部设备":
+                                standingBook.setDeviceType(3);
+                                break;
+                            case "生产设备":
+                                standingBook.setDeviceType(5);
+                                break;
+                            default:
+                                standingBook.setDeviceType(4);
+                                break;
+                        }
+                        standingBook.setNumber(dto.getNumber());
+                        standingBook.setBrand(dto.getBrand());
+                        standingBook.setConfidentiality(dto.getConfidentiality());
+                        switch (dto.getStatus()) {
+                            case "完好":
+                                standingBook.setStatus(1);
+                                break;
+                            case "需整改":
+                                standingBook.setStatus(2);
+                                break;
+                            default:
+                                standingBook.setStatus(3);
+                                break;
+                        }
+                        standingBook.setPurpose(dto.getPurpose());
+                        standingBook.setLocation(dto.getLocation());
+                        standingBook.setUsed(dto.getUsed());
+                        standingBook.setRemark(dto.getRemark());
+                        standingBook.setCreateTime(LocalDateTime.now());
+                        standingBook.setCreateBy(SecurityUtils.getUsername());
+                        standingBookMapper.insert(standingBook);
+                        result.setSuccessCount(result.getSuccessCount() + 1);
+                    } catch (Exception e) {
+                        result.getErrorMessages().add("行" + context.readRowHolder().getRowIndex() + "导入失败:" + e.getMessage());
+                        result.setFailCount(result.getFailCount() + 1);
+                    }
+                }
+
+
+
+
+                @Override
+                public void doAfterAllAnalysed(AnalysisContext context) {
+                    // 导入完成后的处理
+                }
+            };
+
+            // 创建读取器
+            ExcelReader excelReader = EasyExcel.read(file.getInputStream(), StandingBookImportDTO.class, listener).build();
+            ReadSheet readSheet = EasyExcel.readSheet(0).build();
+            excelReader.read(readSheet);
+
+        } catch (Exception e) {
+            result.getErrorMessages().add("导入失败:" + e.getMessage());
+        }
+
+        return result;
+    }
+
+
+
+
 }

--
Gitblit v1.9.2