package com.project.admin.controller.system; 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 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 * * @author manton */ @Api(value = "企业信息控制器", tags = {"企业信息管理"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/system/company") public class SysCompanyController extends BaseController { private final ISysCompanyService iSysCompanyService; @ApiOperation("查询企业信息列表") @GetMapping("/list") public TableDataInfo list(SysCompanyQueryBo bo) { startPage(); List 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 longs = new ArrayList<>(); for (String s : split) { long l = Long.parseLong(s); longs.add(l); } List 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 collect = list.stream().map(SysCompany::getQrcodeImg).collect(Collectors.toList()); List names = list.stream().map(SysCompany::getCompanyName).collect(Collectors.toList()); ZipUtils.downloadToZip(collect,names, response); } } @ApiOperation("导出企业信息列表") //@PreAuthorize("@ss.hasPermi('system:company:export')") @Log(title = "企业信息", businessType = BusinessType.EXPORT) @GetMapping("/export") @RepeatSubmit public AjaxResult export(SysCompanyQueryBo bo) { List list; if (bo==null){ list = new ArrayList<>(); } else { list = iSysCompanyService.queryList(bo); } ExcelUtil util = new ExcelUtil<>(SysCompanyVo.class); return util.exportExcel(list, "企业信息"); } @ApiOperation("获取企业信息详细信息") @GetMapping("/{companyId}") public AjaxResult getInfo(@PathVariable("companyId" ) Long companyId) { return AjaxResult.success(iSysCompanyService.queryById(companyId)); } @ApiOperation("新增企业信息") //@PreAuthorize("@ss.hasPermi('system:company:add')") @Log(title = "企业信息", businessType = BusinessType.INSERT) @PostMapping("/add") @RepeatSubmit public AjaxResult add(@RequestBody SysCompanyBo bo) { return toAjax(iSysCompanyService.insertByBo(bo) ? 1 : 0); } @ApiOperation("修改企业信息") //@PreAuthorize("@ss.hasPermi('system:company:edit')") @Log(title = "企业信息", businessType = BusinessType.UPDATE) @PostMapping("/upd") @RepeatSubmit public AjaxResult upd(@RequestBody SysCompanyBo bo) { return toAjax(iSysCompanyService.updateByBo(bo) ? 1 : 0); } @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) @DeleteMapping("/{companyIds}") @RepeatSubmit public AjaxResult remove(@PathVariable Long[] companyIds) { return toAjax(iSysCompanyService.deleteByIds(Arrays.asList(companyIds)) ? 1 : 0); } @ApiOperation("企业信息模板下载") @GetMapping("/exportTemplate") public AjaxResult exportTemplate() { ExcelUtil util = new ExcelUtil<>(SysCompanyVo.class); return util.exportExcel(null, "企业信息模板"); } @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 util = new ExcelUtil<>(SysCompanyVo.class); List list = util.importExcel(file.getInputStream()); 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); } }