From 6d5fc7859473d30a2e4c1f20f748abae652342b8 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期五, 28 十一月 2025 13:11:26 +0800
Subject: [PATCH] 功能修改
---
multi-system/src/main/java/com/gkhy/exam/system/service/impl/CompanyBasicServiceImpl.java | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 106 insertions(+), 6 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 ca36ea6..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
@@ -31,8 +40,7 @@
@Override
public CommonPage selectCompanyBasicList(Integer companyId) {
- boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId());
- if (!admin){
+ if (!SecurityUtils.adminUser()){
if (companyId==null){
throw new ApiException("非管理员操作,查询条件不可为空");
}
@@ -63,10 +71,6 @@
@Override
public CommonResult updateCompanyBasic(CompanyBasic companyBasic) {
LoginUserDetails loginUser = SecurityUtils.getLoginUser();
- List<CompanyBasic> companyBasics = companyBasicMapper.selectCompanyBasicList(companyBasic.getCompanyId());
- if (companyBasics.size()>0){
- throw new ApiException("当前企业已有相关数据,请删除原有数据后重试");
- }
SysCompany sysCompany = sysCompanyService.selectCompanyById(Long.valueOf(companyBasic.getCompanyId()));
companyBasic.setCompanyName(sysCompany.getName());
companyBasic.setUpdateBy(loginUser.getUsername());
@@ -92,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