| | |
| | | package com.ruoyi.web.controller.api; |
| | | |
| | | |
| | | import cn.afterturn.easypoi.excel.ExcelExportUtil; |
| | | import cn.afterturn.easypoi.excel.entity.ExportParams; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.common.annotation.Log; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.common.constant.DictConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.enums.BusinessType; |
| | | import com.ruoyi.common.utils.DictUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.*; |
| | | import com.ruoyi.system.dto.TTenantDTO; |
| | | import com.ruoyi.system.export.ContractExport; |
| | | import com.ruoyi.system.model.TContract; |
| | | import com.ruoyi.system.model.TTenant; |
| | | import com.ruoyi.system.query.TContractQuery; |
| | | import com.ruoyi.system.query.TTenantQuery; |
| | | import com.ruoyi.system.service.TContractService; |
| | | import com.ruoyi.system.service.TTenantService; |
| | | import com.ruoyi.system.vo.TenantVO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.poi.ss.usermodel.Workbook; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.net.URLEncoder; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | public class TTenantController { |
| | | |
| | | private final TTenantService tenantService; |
| | | private final TContractService contractService; |
| | | @Autowired |
| | | public TTenantController(TTenantService tenantService) { |
| | | public TTenantController(TTenantService tenantService, TContractService contractService) { |
| | | this.tenantService = tenantService; |
| | | this.contractService = contractService; |
| | | } |
| | | |
| | | /** |
| | | * 获取租户管理列表 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:tenant:list')") |
| | | @PreAuthorize("@ss.hasPermi('tenant:list')") |
| | | @ApiOperation(value = "获取租户分页列表") |
| | | @PostMapping(value = "/pageList") |
| | | public R<PageInfo<TenantVO>> pageList(@RequestBody TTenantQuery query) { |
| | |
| | | /** |
| | | * 添加租户管理 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:tenant:add')") |
| | | @PreAuthorize("@ss.hasPermi('tenant:list:add')") |
| | | @Log(title = "租户信息-新增租户", businessType = BusinessType.INSERT) |
| | | @ApiOperation(value = "添加租户") |
| | | @PostMapping(value = "/add") |
| | | public R<Boolean> add(@Validated @RequestBody TTenantDTO dto) { |
| | | if(tenantService.isExit(dto)){ |
| | | return R.fail("该账号已存在"); |
| | | } |
| | | // 密码加密 |
| | | dto.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); |
| | | return R.ok(tenantService.save(dto)); |
| | |
| | | /** |
| | | * 修改租户 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:tenant:update')") |
| | | @PreAuthorize("@ss.hasPermi('tenant:list:edit')") |
| | | @Log(title = "租户信息-修改租户", businessType = BusinessType.UPDATE) |
| | | @ApiOperation(value = "修改租户") |
| | | @PostMapping(value = "/update") |
| | | public R<Boolean> update(@Validated @RequestBody TTenantDTO dto) { |
| | | if(tenantService.isExit(dto)){ |
| | | return R.fail("该账号已存在"); |
| | | } |
| | | // 密码加密 |
| | | if(StringUtils.isNotBlank(dto.getPassword())){ |
| | | dto.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); |
| | |
| | | /** |
| | | * 查看租户详情 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:tenant:detail')") |
| | | @PreAuthorize("@ss.hasPermi('tenant:list:detail')") |
| | | @ApiOperation(value = "查看租户详情") |
| | | @GetMapping(value = "/getDetailById") |
| | | public R<TTenant> getDetailById(@RequestParam String id) { |
| | | TTenant tenant = tenantService.getById(id); |
| | | tenant.setTenantAttributes(StringUtils.isNotEmpty(tenant.getTenantAttributes())?DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_ATTRIBUTE,tenant.getTenantAttributes()):""); |
| | | tenant.setTenantType(StringUtils.isNotEmpty(tenant.getTenantType())?DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_TYPE,tenant.getTenantType()):""); |
| | | // tenant.setTenantAttributes(StringUtils.isNotEmpty(tenant.getTenantAttributes())?DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_ATTRIBUTE,tenant.getTenantAttributes()):""); |
| | | // tenant.setTenantType(StringUtils.isNotEmpty(tenant.getTenantType())?DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_TYPE,tenant.getTenantType()):""); |
| | | return R.ok(tenant); |
| | | } |
| | | |
| | | // @PreAuthorize("@ss.hasPermi('system:contract:list')") |
| | | // @ApiOperation(value = "获取合同分页列表") |
| | | // @PostMapping(value = "/contractList") |
| | | // public R<PageInfo<TContract>> contractList(@RequestBody TContractQuery query) { |
| | | // return R.ok(contractService.contractList(query)); |
| | | // } |
| | | @ApiOperation(value = "获取合同分页列表") |
| | | @GetMapping(value = "/contractListByTenantId") |
| | | public R<List<TContract>> contractListByTenantId(@RequestParam String tenantId) { |
| | | String businessDeptId = SecurityUtils.getBusinessDeptId(); |
| | | return R.ok(contractService.list(Wrappers.lambdaQuery(TContract.class) |
| | | .eq(!businessDeptId.equals("0"), TContract::getBusinessDeptId, businessDeptId) |
| | | .eq(TContract::getTenantId, tenantId))); |
| | | } |
| | | |
| | | /** |
| | | * 删除租户 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:tenant:delete')") |
| | | @PreAuthorize("@ss.hasPermi('tenant:list:edit')") |
| | | @Log(title = "租户信息-删除租户", businessType = BusinessType.DELETE) |
| | | @ApiOperation(value = "删除租户") |
| | | @DeleteMapping(value = "/deleteById") |
| | |
| | | /** |
| | | * 批量删除租户 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:tenant:delete')") |
| | | @PreAuthorize("@ss.hasPermi('tenant:list:edit')") |
| | | @Log(title = "租户信息-删除租户", businessType = BusinessType.DELETE) |
| | | @ApiOperation(value = "批量删除租户") |
| | | @DeleteMapping(value = "/deleteByIds") |
| | |
| | | return R.ok(tenantService.removeByIds(ids)); |
| | | } |
| | | |
| | | /** |
| | | * 导出 |
| | | */ |
| | | @ApiOperation(value = "导出") |
| | | @Log(title = "导出", businessType = BusinessType.EXPORT) |
| | | @PostMapping("/export") |
| | | public void exportOpticalInspection(@Validated @RequestBody TContractQuery query) |
| | | { |
| | | List<ContractExport> contractExports = new ArrayList<>(); |
| | | List<TContract> exportList = contractService.list(Wrappers.lambdaQuery(TContract.class).eq(TContract::getTenantId, query.getTenantId())); |
| | | for (TContract contract : exportList) { |
| | | ContractExport contractExport = new ContractExport(); |
| | | contractExport.setContractNumber(contract.getContractNumber()); |
| | | contractExport.setContractName(contract.getContractName()); |
| | | contractExport.setPartyOneName(contract.getPartyOneName()); |
| | | contractExport.setPartyTwoName(contract.getPartyTwoName()); |
| | | contractExport.setCreateTime(DateUtils.localDateTimeToStringYear(contract.getCreateTime())); |
| | | contractExport.setStartTime(DateUtils.localDateTimeToStringYear(contract.getStartTime())); |
| | | contractExport.setEndTime(DateUtils.localDateTimeToStringYear(contract.getEndTime())); |
| | | contractExport.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,contract.getPayType())); |
| | | contractExport.setDeposit(contract.getDeposit()+""); |
| | | contractExport.setStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_STATUS,contract.getStatus())); |
| | | contractExports.add(contractExport); |
| | | } |
| | | Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), ContractExport.class, contractExports); |
| | | HttpServletResponse response = WebUtils.response(); |
| | | response.setContentType("application/vnd.ms-excel"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | ServletOutputStream outputStream = null; |
| | | try { |
| | | String fileName = URLEncoder.encode("合同列表.xls", "utf-8"); |
| | | response.setHeader("Content-Disposition", "attachment;filename=" + fileName); |
| | | response.setContentType("application/vnd.ms-excel;charset=UTF-8"); |
| | | response.setHeader("Pragma", "no-cache"); |
| | | response.setHeader("Cache-Control", "no-cache"); |
| | | outputStream = response.getOutputStream(); |
| | | workbook.write(outputStream); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | System.err.println("合同列表信息导出失败"); |
| | | } finally { |
| | | try { |
| | | outputStream.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |