From feea6a61a270993e5ec7899192d8719e631f70f4 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 13 九月 2025 14:58:02 +0800 Subject: [PATCH] 业务员导出 --- ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSalesperson.java | 1 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSalespersonServiceImpl.java | 7 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSalespersonService.java | 11 +++ ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSalespersonVO.java | 1 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSalespersonController.java | 55 +++++++++++++++++- ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmSalespersonExport.java | 32 ++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSalespersonMapper.java | 9 +++ ruoyi-system/src/main/resources/mapper/system/TCrmSalespersonMapper.xml | 23 +++++++ 8 files changed, 136 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSalespersonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSalespersonController.java index a09d5e5..6b5a85d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSalespersonController.java +++ b/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; @@ -218,6 +227,46 @@ crmChangePointsService.save(changePoints); 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(); + } + } + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmSalespersonExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmSalespersonExport.java new file mode 100644 index 0000000..f444f41 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmSalespersonExport.java @@ -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; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSalespersonMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSalespersonMapper.java index a2e7f17..e7dc0cd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSalespersonMapper.java +++ b/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); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSalesperson.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSalesperson.java index 2485364..d9a76f7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSalesperson.java +++ b/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; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSalespersonService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSalespersonService.java index 3baa8c3..e43599f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSalespersonService.java +++ b/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); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSalespersonServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSalespersonServiceImpl.java index d81f766..44b5426 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSalespersonServiceImpl.java +++ b/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; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSalespersonVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSalespersonVO.java index 9bb70a2..82310bb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSalespersonVO.java +++ b/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; diff --git a/ruoyi-system/src/main/resources/mapper/system/TCrmSalespersonMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TCrmSalespersonMapper.xml index 4547c35..0edef6a 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TCrmSalespersonMapper.xml +++ b/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> -- Gitblit v1.7.1