ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSalespersonController.java
@@ -1,6 +1,8 @@ package com.ruoyi.web.controller.api; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; @@ -8,24 +10,31 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.WebUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TCrmSalespersonDTO; import com.ruoyi.system.model.TCrmBranch; import com.ruoyi.system.model.TCrmChangePoints; import com.ruoyi.system.model.TCrmSalesperson; import com.ruoyi.system.export.TCrmSalespersonExport; import com.ruoyi.system.model.*; import com.ruoyi.system.query.TCrmSalespersonQuery; import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.TCrmBranchService; import com.ruoyi.system.service.TCrmChangePointsService; import com.ruoyi.system.service.TCrmSalespersonService; import com.ruoyi.system.vo.TCrmSalespersonVO; import com.ruoyi.system.vo.TErpGoodsVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; 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.List; import java.util.Objects; import java.util.stream.Collectors; @@ -219,5 +228,45 @@ return R.ok(); } @Log(title = "crm业务员管理信息-crm业务员管理信息导出", businessType = BusinessType.EXPORT) @ApiOperation(value = "crm业务员管理信息导出") @PostMapping("/export") public void listExport(@RequestBody TCrmSalespersonQuery query) { Long userId = tokenService.getLoginUser().getUser().getUserId(); Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); if(roleType == 2){ // 查询分公司信息 TCrmBranch crmBranch = crmBranchService.getOne(Wrappers.lambdaQuery(TCrmBranch.class) .eq(TCrmBranch::getUserId, userId) .last("LIMIT 1")); query.setBranchId(crmBranch.getId()); } List<TCrmSalespersonExport> crmSalespersonExports = crmSalespersonService.listExport(query); Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TCrmSalespersonExport.class, crmSalespersonExports); HttpServletResponse response = WebUtils.response(); assert response != null; 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(); } finally { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmSalespersonExport.java
New file @@ -0,0 +1,32 @@ package com.ruoyi.system.export; import cn.afterturn.easypoi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; @Data @ApiModel(value = "crm业务员管理导出") public class TCrmSalespersonExport implements Serializable { @Excel(name = "业务员姓名", width = 20) private String salespersonName; @Excel(name = "联系电话", width = 20) private String phone; @Excel(name = "所属分公司", width = 20) private String branchName; @Excel(name = "剩余积分数", width = 20) private Integer userPoints; @Excel(name = "分佣比例", width = 20) private BigDecimal moneyCommission; @Excel(name = "获取1积分所需采购金额", width = 20) private BigDecimal pointsCommission; } ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSalespersonMapper.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.export.TCrmSalespersonExport; import com.ruoyi.system.model.TCrmSalesperson; import com.ruoyi.system.query.TCrmSalespersonQuery; import com.ruoyi.system.vo.TCrmSalespersonVO; @@ -26,4 +27,12 @@ * @return */ List<TCrmSalespersonVO> pageList(@Param("query") TCrmSalespersonQuery query, @Param("pageInfo")PageInfo<TCrmSalespersonVO> pageInfo); /** * 导出列表查询 * * @param query 列表查询参数 * @return */ List<TCrmSalespersonExport> listExport(@Param("query")TCrmSalespersonQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSalesperson.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.model; import cn.afterturn.easypoi.excel.annotation.Excel; import com.baomidou.mybatisplus.annotation.*; import com.ruoyi.common.core.domain.BaseModel; import io.swagger.annotations.ApiModel; ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSalespersonService.java
@@ -5,9 +5,12 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.dto.TCrmBranchDTO; import com.ruoyi.system.dto.TCrmSalespersonDTO; import com.ruoyi.system.export.TCrmSalespersonExport; import com.ruoyi.system.model.TCrmSalesperson; import com.ruoyi.system.query.TCrmSalespersonQuery; import com.ruoyi.system.vo.TCrmSalespersonVO; import java.util.List; /** * <p> @@ -46,4 +49,12 @@ * @return */ boolean isExit(TCrmSalespersonDTO dto); /** * crm业务员管理信息导出 * * @param query 查询参数 */ List<TCrmSalespersonExport> listExport(TCrmSalespersonQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSalespersonServiceImpl.java
@@ -8,6 +8,7 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.dto.TCrmSalespersonDTO; import com.ruoyi.system.export.TCrmSalespersonExport; import com.ruoyi.system.mapper.TCrmSalespersonMapper; import com.ruoyi.system.model.TCrmBranch; import com.ruoyi.system.model.TCrmBranchArea; @@ -104,4 +105,10 @@ return this.count(Wrappers.lambdaQuery(TCrmSalesperson.class).eq(TCrmSalesperson::getSalespersonName, dto.getSalespersonName())) > 0; } } @Override public List<TCrmSalespersonExport> listExport(TCrmSalespersonQuery query) { List<TCrmSalespersonExport> list = this.baseMapper.listExport(query); return list; } } ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSalespersonVO.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.vo; import cn.afterturn.easypoi.excel.annotation.Excel; import com.ruoyi.system.model.TCrmSalesperson; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-system/src/main/resources/mapper/system/TCrmSalespersonMapper.xml
@@ -47,5 +47,28 @@ </where> ORDER BY tcs.create_time DESC </select> <select id="listExport" resultType="com.ruoyi.system.export.TCrmSalespersonExport"> select tcs.id, tcs.user_id, tcs.salesperson_name, tcs.phone, tcs.branch_id, tcs.money_commission, tcs.points_commission, tcs.user_points, tcs.status, tcs.create_time, tcs.update_time, tcs.create_by, tcs.update_by, tcs.disabled, tcb.branch_name from t_crm_salesperson tcs left join t_crm_branch tcb on tcs.branch_id = tcb.id <where> <if test="query.salespersonName != null and query.salespersonName != ''"> and tcs.salesperson_name like concat('%',#{query.salespersonName},'%') </if> <if test="query.phone != null and query.phone != ''"> and tcs.phone like concat('%',#{query.phone},'%') </if> <if test="query.branchId != null and query.branchId != ''"> and tcs.branch_id = #{query.branchId} </if> <if test="query.status != null"> and tcs.status = #{query.status} </if> AND tcs.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY tcs.create_time DESC </select> </mapper>