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