From c0f16750cb9097a8db7b68f8c1794c2aec28ca15 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期四, 24 七月 2025 15:01:10 +0800
Subject: [PATCH] 新增

---
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/CompanyBasicServiceImpl.java |  105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 105 insertions(+), 0 deletions(-)

diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/CompanyBasicServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/CompanyBasicServiceImpl.java
index db75ca6..3e6c240 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/CompanyBasicServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/CompanyBasicServiceImpl.java
@@ -1,5 +1,6 @@
 package com.gkhy.exam.system.service.impl;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gkhy.exam.common.api.CommonPage;
 import com.gkhy.exam.common.api.CommonResult;
@@ -7,15 +8,23 @@
 import com.gkhy.exam.common.exception.ApiException;
 import com.gkhy.exam.common.utils.PageUtils;
 import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.common.utils.StringUtils;
 import com.gkhy.exam.system.domain.CompanyBasic;
+import com.gkhy.exam.system.domain.ExQuestion;
 import com.gkhy.exam.system.domain.SysCompany;
 import com.gkhy.exam.system.mapper.CompanyBasicMapper;
 import com.gkhy.exam.system.service.CompanyBasicService;
 import com.gkhy.exam.system.service.SysCompanyService;
+import org.apache.poi.ss.usermodel.*;
 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.io.IOException;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 @Service
@@ -87,4 +96,100 @@
         }
         return CommonResult.failed();
     }
+
+    @Override
+    @Transactional
+    public CommonResult uploadBasic(MultipartFile file) {
+        Workbook workbook = null;
+        List<CompanyBasic> companyBasicslist = new ArrayList<>();
+        StringBuffer stringBuffer = new StringBuffer();
+        Integer t=0;
+        try {
+            workbook = WorkbookFactory.create(file.getInputStream());
+            Sheet sheetAt = workbook.getSheetAt(0);
+            LoginUserDetails loginUser = SecurityUtils.getLoginUser();
+            for (int i = 1; i <= sheetAt.getLastRowNum(); i++) {
+                Row row = sheetAt.getRow(i);
+                String cellValueAsString = getCellValueAsString(row.getCell(1));
+                if (StringUtils.isEmpty(cellValueAsString)){
+                    continue;
+                }
+                CompanyBasic companyBasic = new CompanyBasic();
+                if (row!=null ){
+
+                    companyBasic.setBasic(getCellValueAsString(row.getCell(1)));
+                    companyBasic.setIntroduce(getCellValueAsString(row.getCell(2)));
+                    companyBasic.setTarget(getCellValueAsString(row.getCell(3)));
+                    companyBasic.setQuality(getCellValueAsString(row.getCell(4)));
+                    companyBasic.setActivity(getCellValueAsString(row.getCell(5)));
+                    companyBasic.setAudit(getCellValueAsString(row.getCell(6)));
+                    companyBasic.setEpiboly(getCellValueAsString(row.getCell(7)));
+                    companyBasic.setResource(getCellValueAsString(row.getCell(8)));
+                    companyBasic.setCreateTime(LocalDateTime.now());
+                    companyBasic.setCreateBy(SecurityUtils.getUsername());
+                    SysCompany sysCompany = sysCompanyService.selectCompanyByName(getCellValueAsString(row.getCell(0)));
+                    companyBasic.setCompanyName(sysCompany.getName());
+                    companyBasic.setCompanyId(Math.toIntExact(sysCompany.getId()));
+
+                }
+                companyBasicslist.add(companyBasic);
+            }
+            for (CompanyBasic companyBasic : companyBasicslist) {
+                List<CompanyBasic> companyBasics = companyBasicMapper.selectCompanyBasicList(companyBasic.getCompanyId());
+                if (companyBasics.size()>0){
+                    stringBuffer.append(companyBasic.getCompanyName()).append(",");
+                }else {
+                    if (!SecurityUtils.adminUser()){
+                        if (companyBasic.getCompanyId() != null && SecurityUtils.getCompanyId() == companyBasic.getCompanyId().longValue()) {
+                            t+=companyBasicMapper.insert(companyBasic);
+                        } else {
+                            stringBuffer.append(companyBasic.getCompanyName()).append(",");
+                        }
+                    }else {
+                        t+=companyBasicMapper.insert(companyBasic);
+                    }
+                }
+            }
+
+            if (t<1){
+                throw new ApiException("导入公司基本信息失败");
+            }
+            workbook.close();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        if (stringBuffer.length()>0){
+            return CommonResult.failed("只能导入本企业数据或该企业已有数据 ["+stringBuffer.toString()+"]");
+        }
+        return CommonResult.success();
+    }
+
+    /**
+     * 安全获取单元格值
+     */
+    private String getCellValueAsString(Cell cell) {
+        if (cell == null) return "";
+
+        switch (cell.getCellType()) {
+            case STRING:
+                return cell.getStringCellValue().trim();
+            case NUMERIC:
+                if (DateUtil.isCellDateFormatted(cell)) {
+                    return cell.getDateCellValue().toString();
+                } else {
+                    return String.valueOf((long) cell.getNumericCellValue());
+                }
+            case BOOLEAN:
+                return String.valueOf(cell.getBooleanCellValue());
+            case FORMULA:
+                try {
+                    return cell.getStringCellValue();
+                } catch (IllegalStateException e) {
+                    return String.valueOf(cell.getNumericCellValue());
+                }
+            default:
+                return "";
+        }
+    }
+
 }

--
Gitblit v1.9.2