ZQN
2025-05-19 0e12e4ab45db6768a0f45d8952f78b0ae9190723
project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java
@@ -1,25 +1,35 @@
package com.project.admin.controller.system;
import java.util.List;
import java.util.Arrays;
import com.project.common.annotation.Log;
import com.project.common.annotation.RepeatSubmit;
import com.project.common.core.controller.BaseController;
import com.project.common.core.domain.AjaxResult;
import com.project.common.core.page.TableDataInfo;
import com.project.common.enums.BusinessType;
import com.project.common.utils.SensitiveUtil;
import com.project.common.utils.StringUtils;
import com.project.common.utils.file.ImageUtils;
import com.project.common.utils.poi.ExcelUtil;
import com.project.common.utils.zip.ZipUtils;
import com.project.system.domain.SysCompany;
import com.project.system.domain.bo.editBo.SysCompanyBo;
import com.project.system.domain.bo.queryBo.SysCompanyQueryBo;
import com.project.system.domain.vo.SysCompanyResultVo;
import com.project.system.domain.vo.SysCompanyVo;
import com.project.system.service.ISysCompanyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.project.common.annotation.Log;
import com.project.common.core.controller.BaseController;
import com.project.common.core.domain.AjaxResult;
import com.project.common.enums.BusinessType;
import com.project.system.domain.vo.SysCompanyVo;
import com.project.system.domain.bo.editBo.SysCompanyBo;
import com.project.system.domain.bo.queryBo.SysCompanyQueryBo;
import com.project.system.service.ISysCompanyService;
import com.project.common.utils.poi.ExcelUtil;
import com.project.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 企业信息Controller
@@ -35,15 +45,44 @@
    private final ISysCompanyService iSysCompanyService;
    @ApiOperation("查询企业信息列表")
    @GetMapping("/list")
    public TableDataInfo list(SysCompanyQueryBo bo)
    {
        startPage();
        List<SysCompanyVo> list = iSysCompanyService.queryList(bo);
        list.forEach(SensitiveUtil::desensitize);
        return getDataTable(list);
    }
    @ApiOperation("下载二维码")
    @GetMapping("/downloadQrcode")
    public void downloadQrcode(String companyIds, HttpServletResponse response)
    {
        if (StringUtils.isNotEmpty(companyIds)){
            String[] split = companyIds.split(",");
            List<Long> longs = new ArrayList<>();
            for (String s : split) {
                long l = Long.parseLong(s);
                longs.add(l);
            }
            List<SysCompany> list = iSysCompanyService.list(iSysCompanyService.lq()
                    .in(StringUtils.isNotEmpty(longs), SysCompany::getCompanyId, longs)
            );
            list.forEach(e->{
                if (StringUtils.isEmpty(e.getQrcodeImg())){
                    String qrcode = ImageUtils.createQrcode(e.getCompanyCode(), e.getCompanyName(), "2");
                    e.setQrcodeImg(qrcode);
                    iSysCompanyService.updateById(e);
                }
            });
            List<String> collect = list.stream().map(SysCompany::getQrcodeImg).collect(Collectors.toList());
            List<String> names = list.stream().map(SysCompany::getCompanyName).collect(Collectors.toList());
            ZipUtils.downloadToZip(collect,names, response);
        }
    }
    @ApiOperation("导出企业信息列表")
@@ -53,7 +92,12 @@
    @RepeatSubmit
    public AjaxResult export(SysCompanyQueryBo bo)
    {
        List<SysCompanyVo> list = iSysCompanyService.queryList(bo);
        List<SysCompanyVo> list;
        if (bo==null){
            list = new ArrayList<>();
        } else {
            list = iSysCompanyService.queryList(bo);
        }
        ExcelUtil<SysCompanyVo> util = new ExcelUtil<>(SysCompanyVo.class);
        return util.exportExcel(list, "企业信息");
    }
@@ -89,6 +133,17 @@
    }
    @ApiOperation("企业信息状态开关")
    //@PreAuthorize("@ss.hasPermi('system:company:edit')")
    @Log(title = "企业信息状态开关", businessType = BusinessType.UPDATE)
    @PostMapping("/updStatus")
    @RepeatSubmit
    public AjaxResult updStatus(@RequestBody SysCompanyBo bo)
    {
        return toAjax(iSysCompanyService.updStatus(bo) ? 1 : 0);
    }
    @ApiOperation("删除企业信息")
    //@PreAuthorize("@ss.hasPermi('system:company:remove')")
    @Log(title = "企业信息" , businessType = BusinessType.DELETE)
@@ -108,12 +163,34 @@
        return util.exportExcel(null, "企业信息模板");
    }
    @ApiOperation(value = "导入活动指标")
    @PostMapping("/import")
    public AjaxResult importList(@RequestParam MultipartFile file) throws Exception
    @ApiOperation(value = "处理导入信息")
    @Log(title = "导入企业信息处理" , businessType = BusinessType.OTHER)
    @ApiImplicitParam(value = "企业信息", name = "file", dataType = "file", dataTypeClass = MultipartFile.class)
    @PostMapping("/doImport")
    public AjaxResult doImport(@RequestPart(value = "file") MultipartFile file) throws Exception
    {
        ExcelUtil<SysCompanyVo> util = new ExcelUtil<>(SysCompanyVo.class);
        List<SysCompanyVo> list = util.importExcel(file.getInputStream());
        return toAjax(iSysCompanyService.importList(list) ? 1 : 0);
        return AjaxResult.success(iSysCompanyService.doImport(list));
    }
    @ApiOperation(value = "校验导入信息")
    @Log(title = "导入企业信息校验" , businessType = BusinessType.OTHER)
    @PostMapping("/checkImport")
    public AjaxResult checkImport(@RequestBody SysCompanyResultVo resultVo)
    {
        return AjaxResult.success(iSysCompanyService.checkImport(resultVo));
    }
    @ApiOperation(value = "保存导入信息")
    @Log(title = "导入企业信息保存" , businessType = BusinessType.IMPORT)
    @RepeatSubmit
    @PostMapping("/saveImport")
    public AjaxResult saveImport(@RequestBody SysCompanyResultVo resultVo)
    {
        return toAjax(iSysCompanyService.saveImport(resultVo) ? 1 : 0);
    }
}