提交 a9d230af authored 作者: 000516's avatar 000516

AP查询、填报权限规则整理

package com.sfa.operation.controller.sales.core; package com.sfa.operation.controller.sales.core;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.CheckedException;
import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.operation.pojo.sales.request.SalesApRequest; import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.qc.IQinceMarketEmployeeService;
import com.sfa.operation.service.sales.IApDisplayCoreService; import com.sfa.operation.service.sales.IApDisplayCoreService;
import com.sfa.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
* @date : 2025-09-16 15 * @date : 2025-09-16 15
...@@ -15,11 +22,14 @@ import org.springframework.web.bind.annotation.*; ...@@ -15,11 +22,14 @@ import org.springframework.web.bind.annotation.*;
public class ApDisplayCoreController { public class ApDisplayCoreController {
@Autowired @Autowired
private IApDisplayCoreService apDisplayCoreService; private IApDisplayCoreService apDisplayCoreService;
@Autowired
private IQinceMarketEmployeeService qinceMarketEmployeeService;
/** /**
* 常规陈列 根据id更新 * 常规陈列 根据id更新
*/ */
@PutMapping("/core/{id}") @PutMapping("/core/{id}")
public void putDetail(@PathVariable("id") Long sadId, @RequestBody SalesApRequest request){ public void putDetail(@PathVariable("id") Long sadId, @RequestBody SalesApRequest request){
checkPermission();
request.setSadId(sadId); request.setSadId(sadId);
apDisplayCoreService.updateDetail(request); apDisplayCoreService.updateDetail(request);
} }
...@@ -29,6 +39,7 @@ public class ApDisplayCoreController { ...@@ -29,6 +39,7 @@ public class ApDisplayCoreController {
*/ */
@PutMapping("/core_pro/{id}") @PutMapping("/core_pro/{id}")
public void putProDisplayDetail(@PathVariable("id") Long sapdId, @RequestBody SalesApRequest request){ public void putProDisplayDetail(@PathVariable("id") Long sapdId, @RequestBody SalesApRequest request){
checkPermission();
request.setSapdId(sapdId); request.setSapdId(sapdId);
apDisplayCoreService.putProDisplayDetail(request); apDisplayCoreService.putProDisplayDetail(request);
} }
...@@ -38,8 +49,19 @@ public class ApDisplayCoreController { ...@@ -38,8 +49,19 @@ public class ApDisplayCoreController {
*/ */
@PutMapping("/core_snack/{id}") @PutMapping("/core_snack/{id}")
public void putSnackDisplayDetail(@PathVariable("id") Long sasdId, @RequestBody SalesApRequest request){ public void putSnackDisplayDetail(@PathVariable("id") Long sasdId, @RequestBody SalesApRequest request){
checkPermission();
request.setSasdId(sasdId); request.setSasdId(sasdId);
apDisplayCoreService.putSnackDisplayDetail(request); apDisplayCoreService.putSnackDisplayDetail(request);
} }
private void checkPermission(){
// 是区域销售部的人员,查看人客关系
LoginUser loginUser = SecurityUtils.getLoginUser();
String empNo = loginUser.getUsername();
List<String> dealerCodes = qinceMarketEmployeeService.checkPermission(empNo);
if (dealerCodes.isEmpty()){
throw new CheckedException(ECode.QC_MARKET_EMP_ERROR);
}
}
} }
package com.sfa.operation.controller.sales.core; package com.sfa.operation.controller.sales.core;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.CheckedException;
import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.operation.pojo.sales.request.SalesApRequest; import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.qc.IQinceMarketEmployeeService;
import com.sfa.operation.service.sales.IApPromotionCoreService; import com.sfa.operation.service.sales.IApPromotionCoreService;
import com.sfa.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
* @date : 2025-09-17 15 * @date : 2025-09-17 15
...@@ -15,9 +22,22 @@ import org.springframework.web.bind.annotation.*; ...@@ -15,9 +22,22 @@ import org.springframework.web.bind.annotation.*;
public class ApPromotionCoreController { public class ApPromotionCoreController {
@Autowired @Autowired
private IApPromotionCoreService apPromotionCoreService; private IApPromotionCoreService apPromotionCoreService;
@Autowired
private IQinceMarketEmployeeService qinceMarketEmployeeService;
@PutMapping("/{id}") @PutMapping("/{id}")
public void putDetail(@PathVariable("id") Long sapId, @RequestBody SalesApRequest request) { public void putDetail(@PathVariable("id") Long sapId, @RequestBody SalesApRequest request) {
checkPermission();
request.setSapId(sapId); request.setSapId(sapId);
apPromotionCoreService.updateDetail(request); apPromotionCoreService.updateDetail(request);
} }
private void checkPermission(){
// 是区域销售部的人员,查看人客关系
LoginUser loginUser = SecurityUtils.getLoginUser();
String empNo = loginUser.getUsername();
List<String> dealerCodes = qinceMarketEmployeeService.checkPermission(empNo);
if (dealerCodes.isEmpty()){
throw new CheckedException(ECode.QC_MARKET_EMP_ERROR);
}
}
} }
package com.sfa.operation.controller.sales.query; package com.sfa.operation.controller.sales.query;
import com.sfa.common.core.context.UserRoles;
import com.sfa.common.core.web.domain.PageInfo; import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.common.security.annotation.RequiresPermissions; import com.sfa.common.security.annotation.RequiresPermissions;
import com.sfa.common.security.utils.SecurityUtils; import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.operation.pojo.sales.request.SalesApRequest; import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.qc.IQinceMarketEmployeeService;
import com.sfa.operation.service.sales.IApDisplayQueryService; import com.sfa.operation.service.sales.IApDisplayQueryService;
import com.sfa.system.api.model.LoginUser; import com.sfa.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Set; import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -28,11 +28,12 @@ import java.util.Set; ...@@ -28,11 +28,12 @@ import java.util.Set;
public class ApDisplayQueryController { public class ApDisplayQueryController {
@Autowired @Autowired
private IApDisplayQueryService apDisplayQueryService; private IApDisplayQueryService apDisplayQueryService;
@Autowired
private IQinceMarketEmployeeService qinceMarketEmployeeService;
/** /**
* 常规陈列 * 常规陈列
*/ */
// @RequiresPermissions("promotion:display_schedule:list")
@GetMapping("/page") @GetMapping("/page")
public PageInfo page(SalesApRequest salesApRequest){ public PageInfo page(SalesApRequest salesApRequest){
checkPermission(salesApRequest); checkPermission(salesApRequest);
...@@ -42,7 +43,6 @@ public class ApDisplayQueryController { ...@@ -42,7 +43,6 @@ public class ApDisplayQueryController {
/** /**
* 档期陈列 * 档期陈列
*/ */
// @RequiresPermissions("promotion:display_schedule:list")
@GetMapping("/pro_page") @GetMapping("/pro_page")
public PageInfo proPage(SalesApRequest salesApRequest){ public PageInfo proPage(SalesApRequest salesApRequest){
checkPermission(salesApRequest); checkPermission(salesApRequest);
...@@ -52,7 +52,6 @@ public class ApDisplayQueryController { ...@@ -52,7 +52,6 @@ public class ApDisplayQueryController {
/** /**
* 零食陈列 * 零食陈列
*/ */
// @RequiresPermissions("promotion:display_schedule:list")
@GetMapping("/snack_page") @GetMapping("/snack_page")
public PageInfo snackPage(SalesApRequest salesApRequest){ public PageInfo snackPage(SalesApRequest salesApRequest){
checkPermission(salesApRequest); checkPermission(salesApRequest);
...@@ -61,18 +60,27 @@ public class ApDisplayQueryController { ...@@ -61,18 +60,27 @@ public class ApDisplayQueryController {
/** /**
* 判断登录人权限 * 判断登录人权限
* 判断是否存在人客关系,存在:根据负责经销商查询数据;不存在:判断是否是销售部人员。是:根据部门查询;不是:返回全部数据
*/ */
private void checkPermission(SalesApRequest salesApRequest){ private void checkPermission(SalesApRequest salesApRequest) {
// 判断登录人权限
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
Set<String> roles = loginUser.getRoles(); String ancestors = loginUser.getSysUser().getDept().getAncestors();
// 促销AP管理角色,可查看所有数据 // todo 不是区域销售部的人员,可以查看所有
if (!roles.contains(UserRoles.PROMOTION_AP_MANAGER) && !SecurityUtils.isAdmin(loginUser.getUserid())) { if (!ancestors.contains("2732")) {
// 查询当前人员部门、姓名 return;
}
// 是区域销售部的人员,查看人客关系
String empNo = loginUser.getUsername();
List<String> dealerCodes = qinceMarketEmployeeService.checkPermission(empNo);
// 没有人客关系,根据部门查询
if (dealerCodes.isEmpty()) {
String deptName = loginUser.getSysUser().getDept().getDeptName(); String deptName = loginUser.getSysUser().getDept().getDeptName();
String nickname = loginUser.getNickName(); salesApRequest.setDeptName(deptName);
salesApRequest.setDeptName(deptName) return;
.setNickName(nickname);
} }
// 有人客关系,根据负责经销商查询
salesApRequest.setDealerCodes(dealerCodes);
} }
} }
...@@ -5,6 +5,7 @@ import com.sfa.common.core.web.domain.PageInfo; ...@@ -5,6 +5,7 @@ import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.common.security.annotation.RequiresPermissions; import com.sfa.common.security.annotation.RequiresPermissions;
import com.sfa.common.security.utils.SecurityUtils; import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.operation.pojo.sales.request.SalesApRequest; import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.qc.IQinceMarketEmployeeService;
import com.sfa.operation.service.sales.IApPromotionQueryService; import com.sfa.operation.service.sales.IApPromotionQueryService;
import com.sfa.system.api.model.LoginUser; import com.sfa.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Set; import java.util.Set;
/** /**
...@@ -24,22 +26,39 @@ import java.util.Set; ...@@ -24,22 +26,39 @@ import java.util.Set;
public class ApPromotionQueryController { public class ApPromotionQueryController {
@Autowired @Autowired
private IApPromotionQueryService apPromotionQueryService; private IApPromotionQueryService apPromotionQueryService;
@Autowired
private IQinceMarketEmployeeService qinceMarketEmployeeService;
@RequiresPermissions("promotion:display_schedule:list")
@GetMapping("/page") @GetMapping("/page")
public PageInfo page(SalesApRequest salesApRequest){ public PageInfo page(SalesApRequest salesApRequest){
// 判断登录人权限 checkPermission(salesApRequest);
return apPromotionQueryService.page(salesApRequest);
}
/**
* 判断登录人权限
* 判断是否存在人客关系,存在:根据负责经销商查询数据;不存在:判断是否是销售部人员。是:根据部门查询;不是:返回全部数据
*/
private void checkPermission(SalesApRequest salesApRequest) {
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
Set<String> roles = loginUser.getRoles(); String ancestors = loginUser.getSysUser().getDept().getAncestors();
// 促销AP管理角色,可查看所有数据 // todo 不是区域销售部的人员,可以查看所有
if (!roles.contains(UserRoles.PROMOTION_AP_MANAGER) && !SecurityUtils.isAdmin(loginUser.getUserid())) { if (!ancestors.contains("2732")) {
// 查询当前人员部门、姓名 return;
}
// 是区域销售部的人员,查看人客关系
String empNo = loginUser.getNickName();
List<String> dealerCodes = qinceMarketEmployeeService.checkPermission(empNo);
// 没有人客关系,根据部门查询
if (dealerCodes.isEmpty()) {
String deptName = loginUser.getSysUser().getDept().getDeptName(); String deptName = loginUser.getSysUser().getDept().getDeptName();
String nickname = loginUser.getNickName(); salesApRequest.setDeptName(deptName);
salesApRequest.setDeptName(deptName) return;
.setNickName(nickname);
} }
return apPromotionQueryService.page(salesApRequest); // 有人客关系,根据负责经销商查询
salesApRequest.setDealerCodes(dealerCodes);
} }
} }
package com.sfa.operation.domain.feishu.dao;
import java.util.List;
/**
* @author : liqiulin
* @date : 2025-10-22 16
* @describe :
*/
public interface IQinceMarketEmployeeDao {
/**
* 人客关系,工号查询经销商编码
* @param empNo 飞书员工编号
* @return 关联的经销商编码列表
*/
List<String> dealerCodesByEmpNo(String empNo);
}
package com.sfa.operation.domain.feishu.dao.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.sfa.operation.domain.feishu.dao.IQinceMarketEmployeeDao;
import com.sfa.operation.domain.feishu.mapper.QinceMarketEmployeeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author : liqiulin
* @date : 2025-10-22 16
* @describe :
*/
@DS("promotion")
@Service
public class QinceMarketEmployeeDaoImpl implements IQinceMarketEmployeeDao {
@Autowired
private QinceMarketEmployeeMapper qinceMarketEmployeeMapper;
@Override
public List<String> dealerCodesByEmpNo(String empNo) {
return qinceMarketEmployeeMapper.dealerCodesByEmpNo(empNo);
}
}
package com.sfa.operation.domain.feishu.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 勤策-经销商人客关系表,来源:https://wangxiaolu.feishu.cn/sheets/QIYlsvCL9hwmBJtJ7v5ctYVsnDF?sheet=3eadb4
* @TableName qince_market_employee
*/
@TableName(value ="qince_market_employee")
@Data
public class QinceMarketEmployee implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**
* 经销商代码
*/
private String dealerCode;
/**
* 经销商名称
*/
private String dealerName;
/**
* 大区部门编码
*/
private String dqDeptCode;
/**
* 战区部门编码
*/
private String zqDeptCode;
/**
* 大区总工号
*/
private String dqEmpNo;
/**
* 战区经理工号
*/
private String zqEmpNo;
/**
* 城市经理工号
*/
private String csEmpNo;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date modifyTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.sfa.operation.domain.feishu.mapper;
import com.sfa.operation.domain.feishu.entity.QinceMarketEmployee;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author a02200059
* @description 针对表【qince_market_employee(勤策-经销商人客关系表,来源:https://wangxiaolu.feishu.cn/sheets/QIYlsvCL9hwmBJtJ7v5ctYVsnDF?sheet=3eadb4)】的数据库操作Mapper
* @createDate 2025-10-22 16:34:40
* @Entity com.sfa.operation.domain.feishu.entity.QinceMarketEmployee
*/
@Repository
public interface QinceMarketEmployeeMapper extends BaseMapper<QinceMarketEmployee> {
List<String> dealerCodesByEmpNo(String empNo);
}
...@@ -8,12 +8,14 @@ import com.sfa.common.core.web.domain.PageInfo; ...@@ -8,12 +8,14 @@ import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.common.core.web.page.TableSupport; import com.sfa.common.core.web.page.TableSupport;
import com.sfa.operation.domain.sales.dao.ISalesApDisplayDao; import com.sfa.operation.domain.sales.dao.ISalesApDisplayDao;
import com.sfa.operation.domain.sales.entity.SalesApDisplay; import com.sfa.operation.domain.sales.entity.SalesApDisplay;
import com.sfa.operation.domain.sales.entity.SalesApPromotion;
import com.sfa.operation.domain.sales.mapper.SalesApDisplayMapper; import com.sfa.operation.domain.sales.mapper.SalesApDisplayMapper;
import com.sfa.operation.domain.sales.wq.SalesApWq; import com.sfa.operation.domain.sales.wq.SalesApWq;
import com.sfa.operation.pojo.sales.response.SalesApDisplayDto; import com.sfa.operation.pojo.sales.response.SalesApDisplayDto;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Objects; import java.util.Objects;
...@@ -48,6 +50,9 @@ public class SalesApDisplayDaoImpl implements ISalesApDisplayDao { ...@@ -48,6 +50,9 @@ public class SalesApDisplayDaoImpl implements ISalesApDisplayDao {
if (StringUtils.isNotBlank(salesApWq.getDealerCode())) { if (StringUtils.isNotBlank(salesApWq.getDealerCode())) {
qw.eq(SalesApDisplay::getDealerCode, salesApWq.getDealerCode()); qw.eq(SalesApDisplay::getDealerCode, salesApWq.getDealerCode());
} }
if (!CollectionUtils.isEmpty(salesApWq.getDealerCodes())) {
qw.in(SalesApDisplay::getDealerCode, salesApWq.getDealerCodes());
}
if (StringUtils.isNotBlank(salesApWq.getCityManager())) { if (StringUtils.isNotBlank(salesApWq.getCityManager())) {
qw.eq(SalesApDisplay::getCityManager, salesApWq.getCityManager()); qw.eq(SalesApDisplay::getCityManager, salesApWq.getCityManager());
} }
......
...@@ -7,6 +7,7 @@ import com.sfa.common.core.utils.StringUtils; ...@@ -7,6 +7,7 @@ import com.sfa.common.core.utils.StringUtils;
import com.sfa.common.core.web.domain.PageInfo; import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.common.core.web.page.TableSupport; import com.sfa.common.core.web.page.TableSupport;
import com.sfa.operation.domain.sales.dao.ISalesApPromotionDisplayDao; import com.sfa.operation.domain.sales.dao.ISalesApPromotionDisplayDao;
import com.sfa.operation.domain.sales.entity.SalesApDisplay;
import com.sfa.operation.domain.sales.entity.SalesApPromotionDisplay; import com.sfa.operation.domain.sales.entity.SalesApPromotionDisplay;
import com.sfa.operation.domain.sales.mapper.SalesApPromotionDisplayMapper; import com.sfa.operation.domain.sales.mapper.SalesApPromotionDisplayMapper;
import com.sfa.operation.domain.sales.wq.SalesApWq; import com.sfa.operation.domain.sales.wq.SalesApWq;
...@@ -14,6 +15,7 @@ import com.sfa.operation.pojo.sales.response.SalesApPromotionDisplayDto; ...@@ -14,6 +15,7 @@ import com.sfa.operation.pojo.sales.response.SalesApPromotionDisplayDto;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Objects; import java.util.Objects;
...@@ -46,6 +48,9 @@ public class SalesApPromotionDisplayDaoImpl implements ISalesApPromotionDisplayD ...@@ -46,6 +48,9 @@ public class SalesApPromotionDisplayDaoImpl implements ISalesApPromotionDisplayD
if (Objects.nonNull(salesApWq.getSalesMonth())){ if (Objects.nonNull(salesApWq.getSalesMonth())){
qw.eq(SalesApPromotionDisplay::getSalesMonth, salesApWq.getSalesMonth()); qw.eq(SalesApPromotionDisplay::getSalesMonth, salesApWq.getSalesMonth());
} }
if (!CollectionUtils.isEmpty(salesApWq.getDealerCodes())) {
qw.in(SalesApPromotionDisplay::getDealerCode, salesApWq.getDealerCodes());
}
if (StringUtils.isNotBlank(salesApWq.getDeptName())){ if (StringUtils.isNotBlank(salesApWq.getDeptName())){
qw.and( qw.and(
wrapper -> wrapper.eq(SalesApPromotionDisplay::getRegionName, salesApWq.getDeptName()) wrapper -> wrapper.eq(SalesApPromotionDisplay::getRegionName, salesApWq.getDeptName())
......
...@@ -17,7 +17,10 @@ import com.sfa.operation.pojo.sales.response.SalesApPromotionDto; ...@@ -17,7 +17,10 @@ import com.sfa.operation.pojo.sales.response.SalesApPromotionDto;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Collection;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.Objects; import java.util.Objects;
...@@ -72,6 +75,9 @@ public class SalesApPromotionImplDao implements ISalesApPromotionDao { ...@@ -72,6 +75,9 @@ public class SalesApPromotionImplDao implements ISalesApPromotionDao {
if (StringUtils.isNotBlank(salesApWq.getDealerCode())) { if (StringUtils.isNotBlank(salesApWq.getDealerCode())) {
qw.eq(SalesApPromotion::getDealerCode, salesApWq.getDealerCode()); qw.eq(SalesApPromotion::getDealerCode, salesApWq.getDealerCode());
} }
if (!CollectionUtils.isEmpty(salesApWq.getDealerCodes())) {
qw.in(SalesApPromotion::getDealerCode, salesApWq.getDealerCodes());
}
if (StringUtils.isNotBlank(salesApWq.getCityManager())) { if (StringUtils.isNotBlank(salesApWq.getCityManager())) {
qw.eq(SalesApPromotion::getCityManager, salesApWq.getCityManager()); qw.eq(SalesApPromotion::getCityManager, salesApWq.getCityManager());
} }
......
...@@ -7,6 +7,7 @@ import com.sfa.common.core.utils.StringUtils; ...@@ -7,6 +7,7 @@ import com.sfa.common.core.utils.StringUtils;
import com.sfa.common.core.web.domain.PageInfo; import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.common.core.web.page.TableSupport; import com.sfa.common.core.web.page.TableSupport;
import com.sfa.operation.domain.sales.dao.ISalesApSnacksDisplayDao; import com.sfa.operation.domain.sales.dao.ISalesApSnacksDisplayDao;
import com.sfa.operation.domain.sales.entity.SalesApPromotionDisplay;
import com.sfa.operation.domain.sales.entity.SalesApSnacksDisplay; import com.sfa.operation.domain.sales.entity.SalesApSnacksDisplay;
import com.sfa.operation.domain.sales.mapper.SalesApSnacksDisplayMapper; import com.sfa.operation.domain.sales.mapper.SalesApSnacksDisplayMapper;
import com.sfa.operation.domain.sales.wq.SalesApWq; import com.sfa.operation.domain.sales.wq.SalesApWq;
...@@ -14,6 +15,7 @@ import com.sfa.operation.pojo.sales.response.SalesApSnacksDisplayDto; ...@@ -14,6 +15,7 @@ import com.sfa.operation.pojo.sales.response.SalesApSnacksDisplayDto;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Objects; import java.util.Objects;
...@@ -46,6 +48,9 @@ public class SalesApSnacksDisplayDaoImpl implements ISalesApSnacksDisplayDao { ...@@ -46,6 +48,9 @@ public class SalesApSnacksDisplayDaoImpl implements ISalesApSnacksDisplayDao {
if (Objects.nonNull(salesApWq.getSalesMonth())){ if (Objects.nonNull(salesApWq.getSalesMonth())){
qw.eq(SalesApSnacksDisplay::getSalesMonth, salesApWq.getSalesMonth()); qw.eq(SalesApSnacksDisplay::getSalesMonth, salesApWq.getSalesMonth());
} }
if (!CollectionUtils.isEmpty(salesApWq.getDealerCodes())) {
qw.in(SalesApSnacksDisplay::getDealerCode, salesApWq.getDealerCodes());
}
if (StringUtils.isNotBlank(salesApWq.getDeptName())){ if (StringUtils.isNotBlank(salesApWq.getDeptName())){
qw.and( qw.and(
wrapper -> wrapper.eq(SalesApSnacksDisplay::getRegionName, salesApWq.getDeptName()) wrapper -> wrapper.eq(SalesApSnacksDisplay::getRegionName, salesApWq.getDeptName())
......
...@@ -3,6 +3,7 @@ package com.sfa.operation.domain.sales.wq; ...@@ -3,6 +3,7 @@ package com.sfa.operation.domain.sales.wq;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -16,4 +17,5 @@ public class SalesApWq { ...@@ -16,4 +17,5 @@ public class SalesApWq {
private String cityManager; private String cityManager;
private String deptName; private String deptName;
private String nickName; private String nickName;
private List<String> dealerCodes;
} }
...@@ -7,6 +7,7 @@ import lombok.experimental.Accessors; ...@@ -7,6 +7,7 @@ import lombok.experimental.Accessors;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -22,6 +23,7 @@ public class SalesApRequest { ...@@ -22,6 +23,7 @@ public class SalesApRequest {
private String cityManager; private String cityManager;
private String deptName; private String deptName;
private String nickName; private String nickName;
private List<String> dealerCodes;
// ######################## 通用查询 ######################## // ######################## 通用查询 ########################
......
package com.sfa.operation.service.qc;
import java.util.List;
/**
* @author : liqiulin
* @date : 2025-10-22 19
* @describe :
*/
public interface IQinceMarketEmployeeService {
List<String> checkPermission(String empNo);
}
package com.sfa.operation.service.qc.impl;
import com.sfa.operation.domain.feishu.dao.IQinceMarketEmployeeDao;
import com.sfa.operation.service.qc.IQinceMarketEmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author : liqiulin
* @date : 2025-10-22 19
* @describe :
*/
@Service
public class QinceMarketEmployeeServiceImpl implements IQinceMarketEmployeeService {
@Autowired
private IQinceMarketEmployeeDao qinceMarketEmployeeDao;
@Override
public List<String> checkPermission(String empNo) {
return qinceMarketEmployeeDao.dealerCodesByEmpNo(empNo);
}
}
...@@ -3,6 +3,8 @@ package com.sfa.operation.service.sales; ...@@ -3,6 +3,8 @@ package com.sfa.operation.service.sales;
import com.sfa.common.core.web.domain.PageInfo; import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.pojo.sales.request.SalesApRequest; import com.sfa.operation.pojo.sales.request.SalesApRequest;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
* @date : 2025-09-08 14 * @date : 2025-09-08 14
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.date.DatePattern; ...@@ -4,6 +4,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.sfa.common.core.utils.bean.BeanUtils; import com.sfa.common.core.utils.bean.BeanUtils;
import com.sfa.common.core.web.domain.PageInfo; import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.domain.feishu.dao.IQinceMarketEmployeeDao;
import com.sfa.operation.domain.sales.dao.ISalesApDisplayDao; import com.sfa.operation.domain.sales.dao.ISalesApDisplayDao;
import com.sfa.operation.domain.sales.dao.ISalesApPromotionDisplayDao; import com.sfa.operation.domain.sales.dao.ISalesApPromotionDisplayDao;
import com.sfa.operation.domain.sales.dao.ISalesApSnacksDisplayDao; import com.sfa.operation.domain.sales.dao.ISalesApSnacksDisplayDao;
...@@ -13,6 +14,9 @@ import com.sfa.operation.service.sales.IApDisplayQueryService; ...@@ -13,6 +14,9 @@ import com.sfa.operation.service.sales.IApDisplayQueryService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.awt.dnd.Autoscroll;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
* @date : 2025-09-08 14 * @date : 2025-09-08 14
...@@ -26,6 +30,8 @@ public class ApDisplayQueryServiceImpl implements IApDisplayQueryService { ...@@ -26,6 +30,8 @@ public class ApDisplayQueryServiceImpl implements IApDisplayQueryService {
private ISalesApPromotionDisplayDao salesApPromotionDisplayDao; private ISalesApPromotionDisplayDao salesApPromotionDisplayDao;
@Autowired @Autowired
private ISalesApSnacksDisplayDao salesapsnackdsDisplayDao; private ISalesApSnacksDisplayDao salesapsnackdsDisplayDao;
@Override @Override
public PageInfo page(SalesApRequest salesApRequest) { public PageInfo page(SalesApRequest salesApRequest) {
SalesApWq salesApWq = new SalesApWq(); SalesApWq salesApWq = new SalesApWq();
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sfa.operation.domain.feishu.mapper.QinceMarketEmployeeMapper">
<resultMap id="QinceMarketEmployeeBase" type="com.sfa.operation.domain.feishu.entity.QinceMarketEmployee">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="dealerCode" column="dealer_code" jdbcType="VARCHAR"/>
<result property="dealerName" column="dealer_name" jdbcType="VARCHAR"/>
<result property="dqDeptCode" column="dq_dept_code" jdbcType="VARCHAR"/>
<result property="zqDeptCode" column="zq_dept_code" jdbcType="VARCHAR"/>
<result property="dqEmpNo" column="dq_emp_no" jdbcType="VARCHAR"/>
<result property="zqEmpNo" column="zq_emp_no" jdbcType="VARCHAR"/>
<result property="csEmpNo" column="cs_emp_no" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="dealerCodesByEmpNo" parameterType="java.lang.String" resultType="java.lang.String">
select dealer_code
from qince_market_employee
where dq_emp_no = #{empNo}
or zq_emp_no = #{empNo}
or cs_emp_no = #{empNo}
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论