Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-module-operation
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-module-operation
Commits
a9d230af
提交
a9d230af
authored
10月 23, 2025
作者:
000516
浏览文件
操作
浏览文件
下载
差异文件
AP查询、填报权限规则整理
上级
464bcb1e
6aa474fb
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
331 行增加
和
25 行删除
+331
-25
ApDisplayCoreController.java
...ration/controller/sales/core/ApDisplayCoreController.java
+22
-0
ApPromotionCoreController.java
...tion/controller/sales/core/ApPromotionCoreController.java
+20
-0
ApDisplayQueryController.java
...tion/controller/sales/query/ApDisplayQueryController.java
+22
-14
ApPromotionQueryController.java
...on/controller/sales/query/ApPromotionQueryController.java
+30
-11
IQinceMarketEmployeeDao.java
.../operation/domain/feishu/dao/IQinceMarketEmployeeDao.java
+19
-0
QinceMarketEmployeeDaoImpl.java
...on/domain/feishu/dao/impl/QinceMarketEmployeeDaoImpl.java
+27
-0
QinceMarketEmployee.java
...a/operation/domain/feishu/entity/QinceMarketEmployee.java
+72
-0
QinceMarketEmployeeMapper.java
...ation/domain/feishu/mapper/QinceMarketEmployeeMapper.java
+23
-0
SalesApDisplayDaoImpl.java
...peration/domain/sales/dao/impl/SalesApDisplayDaoImpl.java
+5
-0
SalesApPromotionDisplayDaoImpl.java
...domain/sales/dao/impl/SalesApPromotionDisplayDaoImpl.java
+5
-0
SalesApPromotionImplDao.java
...ration/domain/sales/dao/impl/SalesApPromotionImplDao.java
+6
-0
SalesApSnacksDisplayDaoImpl.java
...on/domain/sales/dao/impl/SalesApSnacksDisplayDaoImpl.java
+5
-0
SalesApWq.java
...ain/java/com/sfa/operation/domain/sales/wq/SalesApWq.java
+2
-0
SalesApRequest.java
.../com/sfa/operation/pojo/sales/request/SalesApRequest.java
+2
-0
IQinceMarketEmployeeService.java
...sfa/operation/service/qc/IQinceMarketEmployeeService.java
+12
-0
QinceMarketEmployeeServiceImpl.java
...ation/service/qc/impl/QinceMarketEmployeeServiceImpl.java
+24
-0
IApDisplayQueryService.java
...m/sfa/operation/service/sales/IApDisplayQueryService.java
+2
-0
ApDisplayQueryServiceImpl.java
...eration/service/sales/impl/ApDisplayQueryServiceImpl.java
+6
-0
QinceMarketEmployeeMapper.xml
...ain/resources/mapper/feishu/QinceMarketEmployeeMapper.xml
+27
-0
没有找到文件。
src/main/java/com/sfa/operation/controller/sales/core/ApDisplayCoreController.java
浏览文件 @
a9d230af
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
);
}
}
}
}
src/main/java/com/sfa/operation/controller/sales/core/ApPromotionCoreController.java
浏览文件 @
a9d230af
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
);
}
}
}
}
src/main/java/com/sfa/operation/controller/sales/query/ApDisplayQueryController.java
浏览文件 @
a9d230af
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.
Se
t
;
import
java.util.
Lis
t
;
/**
/**
* @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
);
}
}
}
}
src/main/java/com/sfa/operation/controller/sales/query/ApPromotionQueryController.java
浏览文件 @
a9d230af
...
@@ -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
);
}
}
}
}
src/main/java/com/sfa/operation/domain/feishu/dao/IQinceMarketEmployeeDao.java
0 → 100644
浏览文件 @
a9d230af
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
);
}
src/main/java/com/sfa/operation/domain/feishu/dao/impl/QinceMarketEmployeeDaoImpl.java
0 → 100644
浏览文件 @
a9d230af
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
);
}
}
src/main/java/com/sfa/operation/domain/feishu/entity/QinceMarketEmployee.java
0 → 100644
浏览文件 @
a9d230af
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
src/main/java/com/sfa/operation/domain/feishu/mapper/QinceMarketEmployeeMapper.java
0 → 100644
浏览文件 @
a9d230af
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
);
}
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApDisplayDaoImpl.java
浏览文件 @
a9d230af
...
@@ -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
());
}
}
...
...
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApPromotionDisplayDaoImpl.java
浏览文件 @
a9d230af
...
@@ -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
())
...
...
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApPromotionImplDao.java
浏览文件 @
a9d230af
...
@@ -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
());
}
}
...
...
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApSnacksDisplayDaoImpl.java
浏览文件 @
a9d230af
...
@@ -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
())
...
...
src/main/java/com/sfa/operation/domain/sales/wq/SalesApWq.java
浏览文件 @
a9d230af
...
@@ -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
;
}
}
src/main/java/com/sfa/operation/pojo/sales/request/SalesApRequest.java
浏览文件 @
a9d230af
...
@@ -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
;
// ######################## 通用查询 ########################
// ######################## 通用查询 ########################
...
...
src/main/java/com/sfa/operation/service/qc/IQinceMarketEmployeeService.java
0 → 100644
浏览文件 @
a9d230af
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
);
}
src/main/java/com/sfa/operation/service/qc/impl/QinceMarketEmployeeServiceImpl.java
0 → 100644
浏览文件 @
a9d230af
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
);
}
}
src/main/java/com/sfa/operation/service/sales/IApDisplayQueryService.java
浏览文件 @
a9d230af
...
@@ -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
...
...
src/main/java/com/sfa/operation/service/sales/impl/ApDisplayQueryServiceImpl.java
浏览文件 @
a9d230af
...
@@ -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
();
...
...
src/main/resources/mapper/feishu/QinceMarketEmployeeMapper.xml
0 → 100644
浏览文件 @
a9d230af
<?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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论