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
44b9c1b6
提交
44b9c1b6
authored
12月 08, 2025
作者:
000516
浏览文件
操作
浏览文件
下载
差异文件
店内执行-城市经理看板,不返回没有城市经理的信息;
上级
b5c8ff50
7bf3b0b0
隐藏空白字符变更
内嵌
并排
正在显示
21 个修改的文件
包含
166 行增加
和
287 行删除
+166
-287
ControllerResponseAdvice.java
...va/com/sfa/operation/advice/ControllerResponseAdvice.java
+2
-1
ApDisplayCoreController.java
...ration/controller/sales/core/ApDisplayCoreController.java
+22
-8
ApPromotionCoreController.java
...tion/controller/sales/core/ApPromotionCoreController.java
+0
-61
ApDisplayQueryController.java
...tion/controller/sales/query/ApDisplayQueryController.java
+20
-9
ApPromotionQueryController.java
...on/controller/sales/query/ApPromotionQueryController.java
+0
-76
SalesApDisplayDaoImpl.java
...peration/domain/sales/dao/impl/SalesApDisplayDaoImpl.java
+7
-0
SalesApDisplayJDaoImpl.java
...eration/domain/sales/dao/impl/SalesApDisplayJDaoImpl.java
+7
-0
SalesApDisplaySDaoImpl.java
...eration/domain/sales/dao/impl/SalesApDisplaySDaoImpl.java
+7
-0
SalesApPromotionDisplayDaoImpl.java
...domain/sales/dao/impl/SalesApPromotionDisplayDaoImpl.java
+17
-9
SalesApPromotionImplDao.java
...ration/domain/sales/dao/impl/SalesApPromotionImplDao.java
+7
-3
SalesApSnacksDisplayDaoImpl.java
...on/domain/sales/dao/impl/SalesApSnacksDisplayDaoImpl.java
+7
-0
SalesApWq.java
...ain/java/com/sfa/operation/domain/sales/wq/SalesApWq.java
+5
-1
IApDisplayCoreService.java
...om/sfa/operation/service/sales/IApDisplayCoreService.java
+2
-0
IApDisplayQueryService.java
...m/sfa/operation/service/sales/IApDisplayQueryService.java
+2
-0
IApPromotionCoreService.java
.../sfa/operation/service/sales/IApPromotionCoreService.java
+0
-12
IApPromotionQueryService.java
...sfa/operation/service/sales/IApPromotionQueryService.java
+0
-13
ApDisplayCoreServiceImpl.java
...peration/service/sales/impl/ApDisplayCoreServiceImpl.java
+40
-0
ApDisplayQueryServiceImpl.java
...eration/service/sales/impl/ApDisplayQueryServiceImpl.java
+17
-1
ApPromotionCoreServiceImpl.java
...ration/service/sales/impl/ApPromotionCoreServiceImpl.java
+0
-59
ApPromotionQueryServiceImpl.java
...ation/service/sales/impl/ApPromotionQueryServiceImpl.java
+0
-30
SalesApDisplayMapper.xml
src/main/resources/mapper/sales/SalesApDisplayMapper.xml
+4
-4
没有找到文件。
src/main/java/com/sfa/operation/advice/ControllerResponseAdvice.java
浏览文件 @
44b9c1b6
...
@@ -25,7 +25,8 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object>{
...
@@ -25,7 +25,8 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object>{
*/
*/
@Override
@Override
public
boolean
supports
(
MethodParameter
methodParameter
,
Class
converterType
)
{
public
boolean
supports
(
MethodParameter
methodParameter
,
Class
converterType
)
{
if
(
methodParameter
.
getParameterType
().
isAssignableFrom
(
AjaxResult
.
class
))
{
String
parameterName
=
methodParameter
.
getParameterType
().
getCanonicalName
();
if
(
"com.sfa.common.core.web.domain.AjaxResult"
.
equals
(
parameterName
))
{
return
false
;
return
false
;
}
}
return
!
methodParameter
.
getParameterType
().
isAssignableFrom
(
R
.
class
);
return
!
methodParameter
.
getParameterType
().
isAssignableFrom
(
R
.
class
);
...
...
src/main/java/com/sfa/operation/controller/sales/core/ApDisplayCoreController.java
浏览文件 @
44b9c1b6
...
@@ -23,16 +23,14 @@ import java.util.Optional;
...
@@ -23,16 +23,14 @@ import java.util.Optional;
* @describe : 常规陈列、档期陈列、零食陈列
* @describe : 常规陈列、档期陈列、零食陈列
*/
*/
@RestController
@RestController
@RequestMapping
(
"/sales/ap_display"
)
public
class
ApDisplayCoreController
{
public
class
ApDisplayCoreController
{
@Autowired
@Autowired
private
IApDisplayCoreService
apDisplayCoreService
;
private
IApDisplayCoreService
apDisplayCoreService
;
@Autowired
private
IQinceMarketEmployeeService
qinceMarketEmployeeService
;
/**
/**
* 常规陈列 根据id更新
* 常规陈列 根据id更新
*/
*/
@PutMapping
(
"/core/{id}"
)
@PutMapping
(
"/
sales/ap_display/
core/{id}"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
public
void
putDetail
(
@PathVariable
(
"id"
)
Long
sadId
,
@RequestBody
SalesApRequest
request
){
public
void
putDetail
(
@PathVariable
(
"id"
)
Long
sadId
,
@RequestBody
SalesApRequest
request
){
// checkPermission();
// checkPermission();
...
@@ -43,7 +41,7 @@ public class ApDisplayCoreController {
...
@@ -43,7 +41,7 @@ public class ApDisplayCoreController {
/**
/**
* 档期陈列 根据id更新
* 档期陈列 根据id更新
*/
*/
@PutMapping
(
"/core_pro/{id}"
)
@PutMapping
(
"/
sales/ap_display/
core_pro/{id}"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
public
void
putProDisplayDetail
(
@PathVariable
(
"id"
)
Long
sapdId
,
@RequestBody
SalesApRequest
request
){
public
void
putProDisplayDetail
(
@PathVariable
(
"id"
)
Long
sapdId
,
@RequestBody
SalesApRequest
request
){
// checkPermission();
// checkPermission();
...
@@ -54,7 +52,7 @@ public class ApDisplayCoreController {
...
@@ -54,7 +52,7 @@ public class ApDisplayCoreController {
/**
/**
* 零食陈列 根据id更新
* 零食陈列 根据id更新
*/
*/
@PutMapping
(
"/core_snack/{id}"
)
@PutMapping
(
"/
sales/ap_display/
core_snack/{id}"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
public
void
putSnackDisplayDetail
(
@PathVariable
(
"id"
)
Long
sasdId
,
@RequestBody
SalesApRequest
request
){
public
void
putSnackDisplayDetail
(
@PathVariable
(
"id"
)
Long
sasdId
,
@RequestBody
SalesApRequest
request
){
// checkPermission();
// checkPermission();
...
@@ -65,7 +63,7 @@ public class ApDisplayCoreController {
...
@@ -65,7 +63,7 @@ public class ApDisplayCoreController {
/**
/**
* 三米两秒
* 三米两秒
*/
*/
@PutMapping
(
"/core_s/{id}"
)
@PutMapping
(
"/
sales/ap_display/
core_s/{id}"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
public
void
putDisplaySDetail
(
@PathVariable
(
"id"
)
Long
sadsId
,
@RequestBody
SalesApRequest
request
){
public
void
putDisplaySDetail
(
@PathVariable
(
"id"
)
Long
sadsId
,
@RequestBody
SalesApRequest
request
){
// checkPermission();
// checkPermission();
...
@@ -76,7 +74,7 @@ public class ApDisplayCoreController {
...
@@ -76,7 +74,7 @@ public class ApDisplayCoreController {
/**
/**
* 六小金刚
* 六小金刚
*/
*/
@PutMapping
(
"/core_j/{id}"
)
@PutMapping
(
"/
sales/ap_display/
core_j/{id}"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
public
void
putDisplayJDetail
(
@PathVariable
(
"id"
)
Long
sadjId
,
@RequestBody
SalesApRequest
request
){
public
void
putDisplayJDetail
(
@PathVariable
(
"id"
)
Long
sadjId
,
@RequestBody
SalesApRequest
request
){
// checkPermission();
// checkPermission();
...
@@ -84,6 +82,22 @@ public class ApDisplayCoreController {
...
@@ -84,6 +82,22 @@ public class ApDisplayCoreController {
apDisplayCoreService
.
putDisplayJDetail
(
request
);
apDisplayCoreService
.
putDisplayJDetail
(
request
);
}
}
/**
* 更新AP促销计划详情
* 大区总、战区经理、城市经理、TM,可以更新
*/
@PutMapping
(
"/sales/ap_promotion/core/{id}"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
public
void
putPromotionDetail
(
@PathVariable
(
"id"
)
Long
sapId
,
@RequestBody
SalesApRequest
request
)
{
// checkPermission();
request
.
setSapId
(
sapId
);
apDisplayCoreService
.
putPromotionDetail
(
request
);
}
// @Autowired
// private IQinceMarketEmployeeService qinceMarketEmployeeService;
// private void checkPermission(){
// private void checkPermission(){
// // 是区域销售部的人员,查看人客关系
// // 是区域销售部的人员,查看人客关系
// LoginUser loginUser = SecurityUtils.getLoginUser();
// LoginUser loginUser = SecurityUtils.getLoginUser();
...
...
src/main/java/com/sfa/operation/controller/sales/core/ApPromotionCoreController.java
deleted
100644 → 0
浏览文件 @
b5c8ff50
package
com
.
sfa
.
operation
.
controller
.
sales
.
core
;
import
com.sfa.common.core.constant.RoleConstants
;
import
com.sfa.common.core.enums.ECode
;
import
com.sfa.common.core.exception.CheckedException
;
import
com.sfa.common.security.annotation.Logical
;
import
com.sfa.common.security.annotation.RequiresRoles
;
import
com.sfa.common.security.utils.SecurityUtils
;
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.system.api.domain.SysRole
;
import
com.sfa.system.api.model.LoginUser
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.Optional
;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe : 档期计划
*/
@RestController
@RequestMapping
(
"/sales/ap_promotion/core"
)
public
class
ApPromotionCoreController
{
@Autowired
private
IApPromotionCoreService
apPromotionCoreService
;
@Autowired
private
IQinceMarketEmployeeService
qinceMarketEmployeeService
;
/**
* 更新AP促销计划详情
* 大区总、战区经理、城市经理、TM,可以更新
*/
@PutMapping
(
"/{id}"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
public
void
putDetail
(
@PathVariable
(
"id"
)
Long
sapId
,
@RequestBody
SalesApRequest
request
)
{
// checkPermission();
request
.
setSapId
(
sapId
);
apPromotionCoreService
.
updateDetail
(
request
);
}
// private void checkPermission(){
// // 是区域销售部的人员,查看人客关系
// LoginUser loginUser = SecurityUtils.getLoginUser();
// // 只有销售(促销AP管理:cxapgl)、大区TM(大区TM促销AP管理:dqtmcxapgl)两种角色才可以修改
// List<SysRole> roles = loginUser.getSysUser().getRoles();
// Optional<SysRole> first = roles.stream().filter(role -> RoleConstants.DISTRICT_AP_MANAGER.equals(role.getRoleKey()) || RoleConstants.OPERATION_AP_MANAGER.equals(role.getRoleKey())).findFirst();
// if (!first.isPresent()) {
// throw new CheckedException(ECode.ZZ_PRODUCT_QUALITY_AP_ERROR);
// }
//
//// 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
浏览文件 @
44b9c1b6
...
@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.GetMapping;
...
@@ -17,6 +17,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.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Optional
;
...
@@ -31,9 +32,7 @@ import java.util.Optional;
...
@@ -31,9 +32,7 @@ import java.util.Optional;
* 三米两秒
* 三米两秒
* 六小金刚
* 六小金刚
*/
*/
@RequiresPermissions
(
"promotion:display_schedule:list"
)
@RestController
@RestController
@RequestMapping
(
"/sales/ap_display/query"
)
public
class
ApDisplayQueryController
{
public
class
ApDisplayQueryController
{
@Autowired
@Autowired
private
IApDisplayQueryService
apDisplayQueryService
;
private
IApDisplayQueryService
apDisplayQueryService
;
...
@@ -45,7 +44,7 @@ public class ApDisplayQueryController {
...
@@ -45,7 +44,7 @@ public class ApDisplayQueryController {
/**
/**
* 常规陈列
* 常规陈列
*/
*/
@GetMapping
(
"/page"
)
@GetMapping
(
"/
sales/ap_display/query/
page"
)
public
PageInfo
page
(
SalesApRequest
salesApRequest
){
public
PageInfo
page
(
SalesApRequest
salesApRequest
){
checkPermission
(
salesApRequest
);
checkPermission
(
salesApRequest
);
return
apDisplayQueryService
.
page
(
salesApRequest
);
return
apDisplayQueryService
.
page
(
salesApRequest
);
...
@@ -54,7 +53,7 @@ public class ApDisplayQueryController {
...
@@ -54,7 +53,7 @@ public class ApDisplayQueryController {
/**
/**
* 档期陈列
* 档期陈列
*/
*/
@GetMapping
(
"/pro_page"
)
@GetMapping
(
"/
sales/ap_display/query/
pro_page"
)
public
PageInfo
proPage
(
SalesApRequest
salesApRequest
){
public
PageInfo
proPage
(
SalesApRequest
salesApRequest
){
checkPermission
(
salesApRequest
);
checkPermission
(
salesApRequest
);
return
apDisplayQueryService
.
proPage
(
salesApRequest
);
return
apDisplayQueryService
.
proPage
(
salesApRequest
);
...
@@ -63,7 +62,7 @@ public class ApDisplayQueryController {
...
@@ -63,7 +62,7 @@ public class ApDisplayQueryController {
/**
/**
* 零食陈列
* 零食陈列
*/
*/
@GetMapping
(
"/snack_page"
)
@GetMapping
(
"/s
ales/ap_display/query/s
nack_page"
)
public
PageInfo
snackPage
(
SalesApRequest
salesApRequest
){
public
PageInfo
snackPage
(
SalesApRequest
salesApRequest
){
checkPermission
(
salesApRequest
);
checkPermission
(
salesApRequest
);
return
apDisplayQueryService
.
snackPage
(
salesApRequest
);
return
apDisplayQueryService
.
snackPage
(
salesApRequest
);
...
@@ -72,7 +71,7 @@ public class ApDisplayQueryController {
...
@@ -72,7 +71,7 @@ public class ApDisplayQueryController {
/**
/**
* 三米两秒
* 三米两秒
*/
*/
@GetMapping
(
"/sl_page"
)
@GetMapping
(
"/s
ales/ap_display/query/s
l_page"
)
public
PageInfo
slPage
(
SalesApRequest
salesApRequest
){
public
PageInfo
slPage
(
SalesApRequest
salesApRequest
){
checkPermission
(
salesApRequest
);
checkPermission
(
salesApRequest
);
return
apDisplayQueryService
.
slPage
(
salesApRequest
);
return
apDisplayQueryService
.
slPage
(
salesApRequest
);
...
@@ -81,12 +80,21 @@ public class ApDisplayQueryController {
...
@@ -81,12 +80,21 @@ public class ApDisplayQueryController {
/**
/**
* 六小金刚
* 六小金刚
*/
*/
@GetMapping
(
"/jg_page"
)
@GetMapping
(
"/
sales/ap_display/query/
jg_page"
)
public
PageInfo
jgPage
(
SalesApRequest
salesApRequest
){
public
PageInfo
jgPage
(
SalesApRequest
salesApRequest
){
checkPermission
(
salesApRequest
);
checkPermission
(
salesApRequest
);
return
apDisplayQueryService
.
jgPage
(
salesApRequest
);
return
apDisplayQueryService
.
jgPage
(
salesApRequest
);
}
}
/**
* 档期计划
*/
@GetMapping
(
"/sales/ap_promotion/query/page"
)
public
PageInfo
promotionPage
(
SalesApRequest
salesApRequest
){
checkPermission
(
salesApRequest
);
return
apDisplayQueryService
.
promotionPage
(
salesApRequest
);
}
/**
/**
* 判断登录人权限
* 判断登录人权限
* 判断是否存在人客关系,存在:根据负责经销商查询数据;不存在:判断是否是销售部人员。是:根据部门查询;不是:返回全部数据
* 判断是否存在人客关系,存在:根据负责经销商查询数据;不存在:判断是否是销售部人员。是:根据部门查询;不是:返回全部数据
...
@@ -106,8 +114,11 @@ public class ApDisplayQueryController {
...
@@ -106,8 +114,11 @@ public class ApDisplayQueryController {
String
empNo
=
loginUser
.
getUsername
();
String
empNo
=
loginUser
.
getUsername
();
Optional
<
SysRole
>
first
=
roles
.
stream
().
filter
(
role
->
RoleConstants
.
DISTRICT_AP_MANAGER
.
equals
(
role
.
getRoleKey
())).
findFirst
();
Optional
<
SysRole
>
first
=
roles
.
stream
().
filter
(
role
->
RoleConstants
.
DISTRICT_AP_MANAGER
.
equals
(
role
.
getRoleKey
())).
findFirst
();
if
(
first
.
isPresent
())
{
if
(
first
.
isPresent
())
{
String
deptName
=
loginUser
.
getSysUser
().
getDept
().
getDeptName
();
ArrayList
<
String
>
deptNames
=
new
ArrayList
<>();
salesApRequest
.
setDeptNames
(
"000889"
.
equals
(
empNo
)
?
Arrays
.
asList
(
deptName
,
"北京特区"
)
:
Arrays
.
asList
(
deptName
));
deptNames
.
add
(
loginUser
.
getSysUser
().
getDept
().
getDeptName
());
if
(
"000889"
.
equals
(
empNo
)){
deptNames
.
add
(
"北京特区"
);
}
return
;
return
;
}
}
// 不是大区TM,判断是否是销售人员(人客关系)
// 不是大区TM,判断是否是销售人员(人客关系)
...
...
src/main/java/com/sfa/operation/controller/sales/query/ApPromotionQueryController.java
deleted
100644 → 0
浏览文件 @
b5c8ff50
package
com
.
sfa
.
operation
.
controller
.
sales
.
query
;
import
com.sfa.common.core.constant.RoleConstants
;
import
com.sfa.common.core.enums.ECode
;
import
com.sfa.common.core.exception.CheckedException
;
import
com.sfa.common.core.web.domain.PageInfo
;
import
com.sfa.common.security.utils.SecurityUtils
;
import
com.sfa.operation.config.ConstantValue
;
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.system.api.domain.SysRole
;
import
com.sfa.system.api.model.LoginUser
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Optional
;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe : 档期计划
*/
@RestController
@RequestMapping
(
"/sales/ap_promotion/query"
)
public
class
ApPromotionQueryController
{
@Autowired
private
IApPromotionQueryService
apPromotionQueryService
;
@Autowired
private
IQinceMarketEmployeeService
qinceMarketEmployeeService
;
@Autowired
private
ConstantValue
constantValue
;
@GetMapping
(
"/page"
)
public
PageInfo
page
(
SalesApRequest
salesApRequest
){
checkPermission
(
salesApRequest
);
return
apPromotionQueryService
.
page
(
salesApRequest
);
}
/**
* 判断登录人权限
* 判断是否存在人客关系,存在:根据负责经销商查询数据;不存在:判断是否是销售部人员。是:根据部门查询;不是:返回全部数据
*/
private
void
checkPermission
(
SalesApRequest
salesApRequest
)
{
LoginUser
loginUser
=
SecurityUtils
.
getLoginUser
();
String
ancestors
=
loginUser
.
getSysUser
().
getDept
().
getAncestors
();
List
<
SysRole
>
roles
=
loginUser
.
getSysUser
().
getRoles
();
// 不是区域销售部的人员,可以查看所有
if
(!
ancestors
.
contains
(
constantValue
.
deptYX
)
&&
roles
.
stream
().
filter
(
role
->
RoleConstants
.
OPERATION_CENTER_AP_MANAGER
.
equals
(
role
.
getRoleKey
())).
findFirst
().
isPresent
())
{
return
;
}
// 是区域销售部的人员:1、销售查看人客关系;2、大区TM查看当前部门下所有数据
// 判断是否是大区TM
String
empNo
=
loginUser
.
getUsername
();
Optional
<
SysRole
>
first
=
roles
.
stream
().
filter
(
role
->
RoleConstants
.
DISTRICT_AP_MANAGER
.
equals
(
role
.
getRoleKey
())).
findFirst
();
if
(
first
.
isPresent
())
{
String
deptName
=
loginUser
.
getSysUser
().
getDept
().
getDeptName
();
salesApRequest
.
setDeptNames
(
"000889"
.
equals
(
empNo
)
?
Arrays
.
asList
(
deptName
,
"北京特区"
)
:
Arrays
.
asList
(
deptName
));
return
;
}
// 不是大区TM,判断是否是销售人员(人客关系)
List
<
String
>
dealerCodes
=
qinceMarketEmployeeService
.
checkPermission
(
empNo
);
if
(
dealerCodes
.
isEmpty
())
{
throw
new
CheckedException
(
ECode
.
QC_MARKET_EMP_ERROR
);
}
// salesApRequest.setNickName(loginUser.getNickName());
salesApRequest
.
setDealerCodes
(
dealerCodes
);
}
}
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApDisplayDaoImpl.java
浏览文件 @
44b9c1b6
...
@@ -88,6 +88,13 @@ public class SalesApDisplayDaoImpl implements ISalesApDisplayDao {
...
@@ -88,6 +88,13 @@ public class SalesApDisplayDaoImpl implements ISalesApDisplayDao {
.
in
(
SalesApDisplay:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
.
in
(
SalesApDisplay:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getDeptName
())){
qw
.
and
(
wrapper
->
wrapper
.
like
(
SalesApDisplay:
:
getRegionName
,
salesApWq
.
getDeptName
())
.
or
()
.
like
(
SalesApDisplay:
:
getDistrictName
,
salesApWq
.
getDeptName
())
);
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
eq
(
SalesApDisplay:
:
getRegionManager
,
salesApWq
.
getNickName
())
wrapper
->
wrapper
.
eq
(
SalesApDisplay:
:
getRegionManager
,
salesApWq
.
getNickName
())
...
...
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApDisplayJDaoImpl.java
浏览文件 @
44b9c1b6
...
@@ -71,6 +71,13 @@ public class SalesApDisplayJDaoImpl implements ISalesApDisplayJDao {
...
@@ -71,6 +71,13 @@ public class SalesApDisplayJDaoImpl implements ISalesApDisplayJDao {
.
in
(
SalesApDisplayJ:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
.
in
(
SalesApDisplayJ:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getDeptName
()))
{
qw
.
and
(
wrapper
->
wrapper
.
like
(
SalesApDisplayJ:
:
getRegionName
,
salesApWq
.
getDeptName
())
.
or
()
.
like
(
SalesApDisplayJ:
:
getDistrictName
,
salesApWq
.
getDeptName
())
);
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
eq
(
SalesApDisplayJ:
:
getRegionManager
,
salesApWq
.
getNickName
())
wrapper
->
wrapper
.
eq
(
SalesApDisplayJ:
:
getRegionManager
,
salesApWq
.
getNickName
())
...
...
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApDisplaySDaoImpl.java
浏览文件 @
44b9c1b6
...
@@ -70,6 +70,13 @@ public class SalesApDisplaySDaoImpl implements ISalesApDisplaySDao {
...
@@ -70,6 +70,13 @@ public class SalesApDisplaySDaoImpl implements ISalesApDisplaySDao {
.
in
(
SalesApDisplayS:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
.
in
(
SalesApDisplayS:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getDeptName
()))
{
qw
.
and
(
wrapper
->
wrapper
.
like
(
SalesApDisplayS:
:
getRegionName
,
salesApWq
.
getDeptName
())
.
or
()
.
like
(
SalesApDisplayS:
:
getDistrictName
,
salesApWq
.
getDeptName
())
);
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
eq
(
SalesApDisplayS:
:
getRegionManager
,
salesApWq
.
getNickName
())
wrapper
->
wrapper
.
eq
(
SalesApDisplayS:
:
getRegionManager
,
salesApWq
.
getNickName
())
...
...
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApPromotionDisplayDaoImpl.java
浏览文件 @
44b9c1b6
...
@@ -32,6 +32,7 @@ import java.util.Objects;
...
@@ -32,6 +32,7 @@ import java.util.Objects;
public
class
SalesApPromotionDisplayDaoImpl
implements
ISalesApPromotionDisplayDao
{
public
class
SalesApPromotionDisplayDaoImpl
implements
ISalesApPromotionDisplayDao
{
@Autowired
@Autowired
private
SalesApPromotionDisplayMapper
salesApPromotionDisplayMapper
;
private
SalesApPromotionDisplayMapper
salesApPromotionDisplayMapper
;
@Override
@Override
public
PageInfo
page
(
SalesApWq
salesApWq
)
{
public
PageInfo
page
(
SalesApWq
salesApWq
)
{
LambdaQueryWrapper
<
SalesApPromotionDisplay
>
qw
=
buildWq
(
salesApWq
);
LambdaQueryWrapper
<
SalesApPromotionDisplay
>
qw
=
buildWq
(
salesApWq
);
...
@@ -42,30 +43,37 @@ public class SalesApPromotionDisplayDaoImpl implements ISalesApPromotionDisplayD
...
@@ -42,30 +43,37 @@ public class SalesApPromotionDisplayDaoImpl implements ISalesApPromotionDisplayD
@Override
@Override
public
void
updateDetail
(
SalesApPromotionDisplayDto
pdDto
)
{
public
void
updateDetail
(
SalesApPromotionDisplayDto
pdDto
)
{
SalesApPromotionDisplay
salesApPromotionDisplay
=
salesApPromotionDisplayMapper
.
selectById
(
pdDto
.
getSapdId
());
SalesApPromotionDisplay
salesApPromotionDisplay
=
salesApPromotionDisplayMapper
.
selectById
(
pdDto
.
getSapdId
());
if
(!
DateUtils
.
isSameYearMonth
(
salesApPromotionDisplay
.
getSalesMonth
(),
new
Date
()))
{
if
(!
DateUtils
.
isSameYearMonth
(
salesApPromotionDisplay
.
getSalesMonth
(),
new
Date
()))
{
throw
new
CheckedException
(
ECode
.
SALES_AP_UPDATE_ERROR
);
throw
new
CheckedException
(
ECode
.
SALES_AP_UPDATE_ERROR
);
}
}
SalesApPromotionDisplay
pd
=
new
SalesApPromotionDisplay
();
SalesApPromotionDisplay
pd
=
new
SalesApPromotionDisplay
();
BeanUtils
.
copyProperties
(
pdDto
,
pd
);
BeanUtils
.
copyProperties
(
pdDto
,
pd
);
salesApPromotionDisplayMapper
.
updateById
(
pd
);
salesApPromotionDisplayMapper
.
updateById
(
pd
);
}
}
private
LambdaQueryWrapper
<
SalesApPromotionDisplay
>
buildWq
(
SalesApWq
salesApWq
)
{
private
LambdaQueryWrapper
<
SalesApPromotionDisplay
>
buildWq
(
SalesApWq
salesApWq
)
{
LambdaQueryWrapper
<
SalesApPromotionDisplay
>
qw
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
SalesApPromotionDisplay
>
qw
=
new
LambdaQueryWrapper
<>();
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
()))
{
if
(!
CollectionUtils
.
isEmpty
(
salesApWq
.
getDealerCodes
()))
{
qw
.
in
(
SalesApPromotionDisplay:
:
getDealerCode
,
salesApWq
.
getDealerCodes
());
qw
.
in
(
SalesApPromotionDisplay:
:
getDealerCode
,
salesApWq
.
getDealerCodes
());
}
}
if
(!
CollectionUtils
.
isEmpty
(
salesApWq
.
getDeptNames
())){
if
(!
CollectionUtils
.
isEmpty
(
salesApWq
.
getDeptNames
()))
{
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
in
(
SalesApPromotionDisplay:
:
getRegionName
,
salesApWq
.
getDeptNames
())
wrapper
->
wrapper
.
in
(
SalesApPromotionDisplay:
:
getRegionName
,
salesApWq
.
getDeptNames
())
.
or
()
.
or
()
.
in
(
SalesApPromotionDisplay:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
.
in
(
SalesApPromotionDisplay:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getDeptName
()))
{
qw
.
and
(
wrapper
->
wrapper
.
like
(
SalesApPromotionDisplay:
:
getRegionName
,
salesApWq
.
getDeptName
())
.
or
()
.
like
(
SalesApPromotionDisplay:
:
getDistrictName
,
salesApWq
.
getDeptName
())
);
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
()))
{
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
eq
(
SalesApPromotionDisplay:
:
getRegionManager
,
salesApWq
.
getNickName
())
wrapper
->
wrapper
.
eq
(
SalesApPromotionDisplay:
:
getRegionManager
,
salesApWq
.
getNickName
())
.
or
()
.
or
()
...
@@ -74,24 +82,24 @@ public class SalesApPromotionDisplayDaoImpl implements ISalesApPromotionDisplayD
...
@@ -74,24 +82,24 @@ public class SalesApPromotionDisplayDaoImpl implements ISalesApPromotionDisplayD
.
eq
(
SalesApPromotionDisplay:
:
getCityManager
,
salesApWq
.
getNickName
())
.
eq
(
SalesApPromotionDisplay:
:
getCityManager
,
salesApWq
.
getNickName
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getDealerCN
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getDealerCN
()))
{
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
like
(
SalesApPromotionDisplay:
:
getDealerName
,
salesApWq
.
getDealerCN
())
wrapper
->
wrapper
.
like
(
SalesApPromotionDisplay:
:
getDealerName
,
salesApWq
.
getDealerCN
())
.
or
()
.
or
()
.
like
(
SalesApPromotionDisplay:
:
getDealerCode
,
salesApWq
.
getDealerCN
())
.
like
(
SalesApPromotionDisplay:
:
getDealerCode
,
salesApWq
.
getDealerCN
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getStoreCN
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getStoreCN
()))
{
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
like
(
SalesApPromotionDisplay:
:
getStoreName
,
salesApWq
.
getStoreCN
())
wrapper
->
wrapper
.
like
(
SalesApPromotionDisplay:
:
getStoreName
,
salesApWq
.
getStoreCN
())
.
or
()
.
or
()
.
like
(
SalesApPromotionDisplay:
:
getStoreCode
,
salesApWq
.
getStoreCN
())
.
like
(
SalesApPromotionDisplay:
:
getStoreCode
,
salesApWq
.
getStoreCN
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getLineNameLike
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getLineNameLike
()))
{
qw
.
like
(
SalesApPromotionDisplay:
:
getLineName
,
salesApWq
.
getLineNameLike
());
qw
.
like
(
SalesApPromotionDisplay:
:
getLineName
,
salesApWq
.
getLineNameLike
());
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getRqStatus
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getRqStatus
()))
{
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
eq
(
SalesApPromotionDisplay:
:
getActualEndCapExecuted
,
salesApWq
.
getRqStatus
())
wrapper
->
wrapper
.
eq
(
SalesApPromotionDisplay:
:
getActualEndCapExecuted
,
salesApWq
.
getRqStatus
())
.
or
()
.
or
()
...
...
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApPromotionImplDao.java
浏览文件 @
44b9c1b6
...
@@ -10,7 +10,6 @@ import com.sfa.common.core.utils.StringUtils;
...
@@ -10,7 +10,6 @@ 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.ISalesApPromotionDao
;
import
com.sfa.operation.domain.sales.dao.ISalesApPromotionDao
;
import
com.sfa.operation.domain.sales.entity.SalesApDisplay
;
import
com.sfa.operation.domain.sales.entity.SalesApPromotion
;
import
com.sfa.operation.domain.sales.entity.SalesApPromotion
;
import
com.sfa.operation.domain.sales.mapper.SalesApPromotionMapper
;
import
com.sfa.operation.domain.sales.mapper.SalesApPromotionMapper
;
import
com.sfa.operation.domain.sales.wq.SalesApWq
;
import
com.sfa.operation.domain.sales.wq.SalesApWq
;
...
@@ -20,8 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -20,8 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
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
;
...
@@ -93,6 +90,13 @@ public class SalesApPromotionImplDao implements ISalesApPromotionDao {
...
@@ -93,6 +90,13 @@ public class SalesApPromotionImplDao implements ISalesApPromotionDao {
.
in
(
SalesApPromotion:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
.
in
(
SalesApPromotion:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getDeptName
()))
{
qw
.
and
(
wrapper
->
wrapper
.
like
(
SalesApPromotion:
:
getRegionName
,
salesApWq
.
getDeptName
())
.
or
()
.
like
(
SalesApPromotion:
:
getDistrictName
,
salesApWq
.
getDeptName
())
);
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
eq
(
SalesApPromotion:
:
getRegionManager
,
salesApWq
.
getNickName
())
wrapper
->
wrapper
.
eq
(
SalesApPromotion:
:
getRegionManager
,
salesApWq
.
getNickName
())
...
...
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApSnacksDisplayDaoImpl.java
浏览文件 @
44b9c1b6
...
@@ -68,6 +68,13 @@ public class SalesApSnacksDisplayDaoImpl implements ISalesApSnacksDisplayDao {
...
@@ -68,6 +68,13 @@ public class SalesApSnacksDisplayDaoImpl implements ISalesApSnacksDisplayDao {
.
in
(
SalesApSnacksDisplay:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
.
in
(
SalesApSnacksDisplay:
:
getDistrictName
,
salesApWq
.
getDeptNames
())
);
);
}
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getDeptName
()))
{
qw
.
and
(
wrapper
->
wrapper
.
like
(
SalesApSnacksDisplay:
:
getRegionName
,
salesApWq
.
getDeptName
())
.
or
()
.
like
(
SalesApSnacksDisplay:
:
getDistrictName
,
salesApWq
.
getDeptName
())
);
}
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
if
(
StringUtils
.
isNotBlank
(
salesApWq
.
getNickName
())){
qw
.
and
(
qw
.
and
(
wrapper
->
wrapper
.
eq
(
SalesApSnacksDisplay:
:
getRegionManager
,
salesApWq
.
getNickName
())
wrapper
->
wrapper
.
eq
(
SalesApSnacksDisplay:
:
getRegionManager
,
salesApWq
.
getNickName
())
...
...
src/main/java/com/sfa/operation/domain/sales/wq/SalesApWq.java
浏览文件 @
44b9c1b6
...
@@ -16,9 +16,13 @@ public class SalesApWq {
...
@@ -16,9 +16,13 @@ public class SalesApWq {
private
Date
salesMonth
;
private
Date
salesMonth
;
private
String
cityManager
;
private
String
cityManager
;
/**
/**
* 大区/战区
*
前端搜索条件:
大区/战区
*/
*/
private
String
deptName
;
private
String
deptName
;
/**
* 根据登录人,默认重置大区/战区信息
* 与deptName,不冲突
*/
private
List
<
String
>
deptNames
;
private
List
<
String
>
deptNames
;
private
String
nickName
;
private
String
nickName
;
private
List
<
String
>
dealerCodes
;
private
List
<
String
>
dealerCodes
;
...
...
src/main/java/com/sfa/operation/service/sales/IApDisplayCoreService.java
浏览文件 @
44b9c1b6
...
@@ -17,4 +17,6 @@ public interface IApDisplayCoreService {
...
@@ -17,4 +17,6 @@ public interface IApDisplayCoreService {
void
putDisplaySDetail
(
SalesApRequest
request
);
void
putDisplaySDetail
(
SalesApRequest
request
);
void
putDisplayJDetail
(
SalesApRequest
request
);
void
putDisplayJDetail
(
SalesApRequest
request
);
void
putPromotionDetail
(
SalesApRequest
request
);
}
}
src/main/java/com/sfa/operation/service/sales/IApDisplayQueryService.java
浏览文件 @
44b9c1b6
...
@@ -21,6 +21,8 @@ public interface IApDisplayQueryService {
...
@@ -21,6 +21,8 @@ public interface IApDisplayQueryService {
PageInfo
jgPage
(
SalesApRequest
salesApRequest
);
PageInfo
jgPage
(
SalesApRequest
salesApRequest
);
PageInfo
promotionPage
(
SalesApRequest
salesApRequest
);
Object
queryStoreAPReport
(
SalesApRequest
request
);
Object
queryStoreAPReport
(
SalesApRequest
request
);
Object
queryDeptAPReport
(
SalesApRequest
request
);
Object
queryDeptAPReport
(
SalesApRequest
request
);
...
...
src/main/java/com/sfa/operation/service/sales/IApPromotionCoreService.java
deleted
100644 → 0
浏览文件 @
b5c8ff50
package
com
.
sfa
.
operation
.
service
.
sales
;
import
com.sfa.operation.pojo.sales.request.SalesApRequest
;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
public
interface
IApPromotionCoreService
{
void
updateDetail
(
SalesApRequest
request
);
}
src/main/java/com/sfa/operation/service/sales/IApPromotionQueryService.java
deleted
100644 → 0
浏览文件 @
b5c8ff50
package
com
.
sfa
.
operation
.
service
.
sales
;
import
com.sfa.common.core.web.domain.PageInfo
;
import
com.sfa.operation.pojo.sales.request.SalesApRequest
;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
public
interface
IApPromotionQueryService
{
PageInfo
page
(
SalesApRequest
salesApRequest
);
}
src/main/java/com/sfa/operation/service/sales/impl/ApDisplayCoreServiceImpl.java
浏览文件 @
44b9c1b6
package
com
.
sfa
.
operation
.
service
.
sales
.
impl
;
package
com
.
sfa
.
operation
.
service
.
sales
.
impl
;
import
cn.hutool.core.date.DatePattern
;
import
com.sfa.common.security.utils.SecurityUtils
;
import
com.sfa.common.security.utils.SecurityUtils
;
import
com.sfa.operation.domain.sales.dao.*
;
import
com.sfa.operation.domain.sales.dao.*
;
import
com.sfa.operation.pojo.sales.request.SalesApRequest
;
import
com.sfa.operation.pojo.sales.request.SalesApRequest
;
...
@@ -9,6 +10,10 @@ import org.springframework.beans.BeanUtils;
...
@@ -9,6 +10,10 @@ 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
java.text.ParseException
;
import
java.util.Date
;
import
java.util.Objects
;
/**
/**
* @author : liqiulin
* @author : liqiulin
* @date : 2025-09-16 16
* @date : 2025-09-16 16
...
@@ -26,6 +31,8 @@ public class ApDisplayCoreServiceImpl implements IApDisplayCoreService {
...
@@ -26,6 +31,8 @@ public class ApDisplayCoreServiceImpl implements IApDisplayCoreService {
private
ISalesApDisplaySDao
salesApDisplaySDao
;
private
ISalesApDisplaySDao
salesApDisplaySDao
;
@Autowired
@Autowired
private
ISalesApDisplayJDao
salesApDisplayJDao
;
private
ISalesApDisplayJDao
salesApDisplayJDao
;
@Autowired
private
ISalesApPromotionDao
salesApPromotionDao
;
@Override
@Override
public
void
updateDetail
(
SalesApRequest
request
)
{
public
void
updateDetail
(
SalesApRequest
request
)
{
SalesApDisplayDto
salesApDisplayDto
=
new
SalesApDisplayDto
();
SalesApDisplayDto
salesApDisplayDto
=
new
SalesApDisplayDto
();
...
@@ -70,4 +77,37 @@ public class ApDisplayCoreServiceImpl implements IApDisplayCoreService {
...
@@ -70,4 +77,37 @@ public class ApDisplayCoreServiceImpl implements IApDisplayCoreService {
djDto
.
setUpdateBy
(
SecurityUtils
.
getNickName
());
djDto
.
setUpdateBy
(
SecurityUtils
.
getNickName
());
salesApDisplayJDao
.
updateDetail
(
djDto
);
salesApDisplayJDao
.
updateDetail
(
djDto
);
}
}
@Override
public
void
putPromotionDetail
(
SalesApRequest
request
)
{
// 修改DB 日期值为null
try
{
SalesApPromotionDto
dto
=
new
SalesApPromotionDto
();
SalesApRequest
.
Promotion
promotion
=
request
.
getPromotion
();
BeanUtils
.
copyProperties
(
promotion
,
dto
);
dto
.
setSapId
(
request
.
getSapId
());
Date
parse
=
DatePattern
.
NORM_DATE_FORMAT
.
parse
(
"2000-01-01"
);
if
(
Objects
.
isNull
(
promotion
.
getActualPromotionStartDate
()))
{
dto
.
setIsActualPromotionStartDate
(
true
);
}
else
if
(
promotion
.
getActualPromotionStartDate
().
compareTo
(
parse
)
==
0
)
{
dto
.
setIsActualPromotionStartDate
(
false
);
}
else
{
dto
.
setIsActualPromotionStartDate
(
true
);
}
if
(
Objects
.
isNull
(
promotion
.
getActualPromotionEndDate
()))
{
// DB 日期值无需修改
dto
.
setIsActualPromotionEndDate
(
true
);
}
else
if
(
promotion
.
getActualPromotionEndDate
().
compareTo
(
parse
)
==
0
)
{
// DB 日期值无需修改
dto
.
setIsActualPromotionEndDate
(
false
);
}
else
{
dto
.
setIsActualPromotionEndDate
(
true
);
}
dto
.
setUpdateBy
(
SecurityUtils
.
getNickName
());
salesApPromotionDao
.
updateById
(
dto
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
}
}
src/main/java/com/sfa/operation/service/sales/impl/ApDisplayQueryServiceImpl.java
浏览文件 @
44b9c1b6
...
@@ -2,6 +2,7 @@ package com.sfa.operation.service.sales.impl;
...
@@ -2,6 +2,7 @@ package com.sfa.operation.service.sales.impl;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.sfa.common.core.utils.StringUtils
;
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.feishu.dao.IQinceMarketEmployeeDao
;
...
@@ -11,8 +12,11 @@ import com.sfa.operation.pojo.sales.request.SalesApRequest;
...
@@ -11,8 +12,11 @@ import com.sfa.operation.pojo.sales.request.SalesApRequest;
import
com.sfa.operation.service.sales.IApDisplayQueryService
;
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
org.springframework.util.CollectionUtils
;
import
java.awt.dnd.Autoscroll
;
import
java.awt.dnd.Autoscroll
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -32,7 +36,8 @@ public class ApDisplayQueryServiceImpl implements IApDisplayQueryService {
...
@@ -32,7 +36,8 @@ public class ApDisplayQueryServiceImpl implements IApDisplayQueryService {
private
ISalesApDisplaySDao
salesApDisplaySDao
;
private
ISalesApDisplaySDao
salesApDisplaySDao
;
@Autowired
@Autowired
private
ISalesApDisplayJDao
salesApDisplayJDao
;
private
ISalesApDisplayJDao
salesApDisplayJDao
;
@Autowired
private
ISalesApPromotionDao
salesApPromotionDao
;
@Override
@Override
public
PageInfo
page
(
SalesApRequest
salesApRequest
)
{
public
PageInfo
page
(
SalesApRequest
salesApRequest
)
{
...
@@ -59,6 +64,11 @@ public class ApDisplayQueryServiceImpl implements IApDisplayQueryService {
...
@@ -59,6 +64,11 @@ public class ApDisplayQueryServiceImpl implements IApDisplayQueryService {
return
salesApDisplayJDao
.
page
(
build
(
salesApRequest
));
return
salesApDisplayJDao
.
page
(
build
(
salesApRequest
));
}
}
@Override
public
PageInfo
promotionPage
(
SalesApRequest
salesApRequest
)
{
return
salesApPromotionDao
.
page
(
build
(
salesApRequest
));
}
@Override
@Override
public
Object
queryStoreAPReport
(
SalesApRequest
salesApRequest
)
{
public
Object
queryStoreAPReport
(
SalesApRequest
salesApRequest
)
{
return
salesApDisplayDao
.
queryStoreAPReport
(
build
(
salesApRequest
));
return
salesApDisplayDao
.
queryStoreAPReport
(
build
(
salesApRequest
));
...
@@ -73,6 +83,12 @@ public class ApDisplayQueryServiceImpl implements IApDisplayQueryService {
...
@@ -73,6 +83,12 @@ public class ApDisplayQueryServiceImpl implements IApDisplayQueryService {
SalesApWq
salesApWq
=
new
SalesApWq
();
SalesApWq
salesApWq
=
new
SalesApWq
();
BeanUtils
.
copyProperties
(
salesApRequest
,
salesApWq
);
BeanUtils
.
copyProperties
(
salesApRequest
,
salesApWq
);
salesApWq
.
setSalesMonth
(
salesApRequest
.
getSalesMonth
()
!=
null
?
DateUtil
.
parse
(
salesApRequest
.
getSalesMonth
()
+
"-01"
,
DatePattern
.
NORM_DATE_PATTERN
)
:
null
);
salesApWq
.
setSalesMonth
(
salesApRequest
.
getSalesMonth
()
!=
null
?
DateUtil
.
parse
(
salesApRequest
.
getSalesMonth
()
+
"-01"
,
DatePattern
.
NORM_DATE_PATTERN
)
:
null
);
// if (StringUtils.isNotBlank(salesApRequest.getDeptName())){
// List<String> deptNames = CollectionUtils.isEmpty(salesApWq.getDeptNames()) ? new ArrayList<>() : salesApWq.getDeptNames();
// deptNames.add(salesApRequest.getDeptName());
// salesApWq.setDeptNames(deptNames);
// }
return
salesApWq
;
return
salesApWq
;
}
}
}
}
src/main/java/com/sfa/operation/service/sales/impl/ApPromotionCoreServiceImpl.java
deleted
100644 → 0
浏览文件 @
b5c8ff50
package
com
.
sfa
.
operation
.
service
.
sales
.
impl
;
import
cn.hutool.core.date.DatePattern
;
import
com.sfa.common.security.utils.SecurityUtils
;
import
com.sfa.operation.domain.sales.dao.ISalesApPromotionDao
;
import
com.sfa.operation.pojo.sales.request.SalesApRequest
;
import
com.sfa.operation.pojo.sales.response.SalesApPromotionDto
;
import
com.sfa.operation.service.sales.IApPromotionCoreService
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.text.ParseException
;
import
java.util.Date
;
import
java.util.Objects
;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
@Service
public
class
ApPromotionCoreServiceImpl
implements
IApPromotionCoreService
{
@Autowired
private
ISalesApPromotionDao
salesApPromotionDao
;
@Override
public
void
updateDetail
(
SalesApRequest
request
)
{
// 修改DB 日期值为null
try
{
SalesApPromotionDto
dto
=
new
SalesApPromotionDto
();
SalesApRequest
.
Promotion
promotion
=
request
.
getPromotion
();
BeanUtils
.
copyProperties
(
promotion
,
dto
);
dto
.
setSapId
(
request
.
getSapId
());
Date
parse
=
DatePattern
.
NORM_DATE_FORMAT
.
parse
(
"2000-01-01"
);
if
(
Objects
.
isNull
(
promotion
.
getActualPromotionStartDate
()))
{
dto
.
setIsActualPromotionStartDate
(
true
);
}
else
if
(
promotion
.
getActualPromotionStartDate
().
compareTo
(
parse
)
==
0
)
{
dto
.
setIsActualPromotionStartDate
(
false
);
}
else
{
dto
.
setIsActualPromotionStartDate
(
true
);
}
if
(
Objects
.
isNull
(
promotion
.
getActualPromotionEndDate
()))
{
// DB 日期值无需修改
dto
.
setIsActualPromotionEndDate
(
true
);
}
else
if
(
promotion
.
getActualPromotionEndDate
().
compareTo
(
parse
)
==
0
)
{
// DB 日期值无需修改
dto
.
setIsActualPromotionEndDate
(
false
);
}
else
{
dto
.
setIsActualPromotionEndDate
(
true
);
}
dto
.
setUpdateBy
(
SecurityUtils
.
getNickName
());
salesApPromotionDao
.
updateById
(
dto
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
}
src/main/java/com/sfa/operation/service/sales/impl/ApPromotionQueryServiceImpl.java
deleted
100644 → 0
浏览文件 @
b5c8ff50
package
com
.
sfa
.
operation
.
service
.
sales
.
impl
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
com.sfa.common.core.utils.bean.BeanUtils
;
import
com.sfa.common.core.web.domain.PageInfo
;
import
com.sfa.operation.domain.sales.dao.ISalesApPromotionDao
;
import
com.sfa.operation.domain.sales.wq.SalesApWq
;
import
com.sfa.operation.pojo.sales.request.SalesApRequest
;
import
com.sfa.operation.service.sales.IApPromotionQueryService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
@Service
public
class
ApPromotionQueryServiceImpl
implements
IApPromotionQueryService
{
@Autowired
private
ISalesApPromotionDao
salesApPromotionDao
;
@Override
public
PageInfo
page
(
SalesApRequest
salesApRequest
)
{
SalesApWq
salesApWq
=
new
SalesApWq
();
BeanUtils
.
copyProperties
(
salesApRequest
,
salesApWq
);
salesApWq
.
setSalesMonth
(
salesApRequest
.
getSalesMonth
()
!=
null
?
DateUtil
.
parse
(
salesApRequest
.
getSalesMonth
()
+
"-01"
,
DatePattern
.
NORM_DATE_PATTERN
)
:
null
);
return
salesApPromotionDao
.
page
(
salesApWq
);
}
}
src/main/resources/mapper/sales/SalesApDisplayMapper.xml
浏览文件 @
44b9c1b6
...
@@ -80,6 +80,7 @@
...
@@ -80,6 +80,7 @@
</resultMap>
</resultMap>
<sql
id =
"commonQueryConditions"
>
<sql
id =
"commonQueryConditions"
>
and city_manager is not null
<if
test=
"salesMonth != null"
>
<if
test=
"salesMonth != null"
>
and sales_month = #{salesMonth}
and sales_month = #{salesMonth}
</if>
</if>
...
@@ -303,7 +304,7 @@
...
@@ -303,7 +304,7 @@
</where>
</where>
group by region_name, district_name,city_manager) sp
group by region_name, district_name,city_manager) sp
on ar.region_name = sp.region_name and ar.district_name = sp.district_name and
on ar.region_name = sp.region_name and ar.district_name = sp.district_name and
ar.city_manager = sp.city_manager
ar.city_manager = sp.city_manager
order by ar.region_name,ar.district_name
</select>
</select>
...
@@ -512,7 +513,7 @@
...
@@ -512,7 +513,7 @@
<include
refid=
"deptZQQuery"
/>
<include
refid=
"deptZQQuery"
/>
</where>
</where>
group by region_name, district_name) sp
group by region_name, district_name) sp
on ar.region_name = sp.region_name and ar.district_name = sp.district_name
on ar.region_name = sp.region_name and ar.district_name = sp.district_name
order by ar.region_name,ar.district_name
</select>
</select>
...
@@ -709,7 +710,6 @@
...
@@ -709,7 +710,6 @@
<include
refid=
"deptDQQuery"
/>
<include
refid=
"deptDQQuery"
/>
</where>
</where>
group by region_name) sp
group by region_name) sp
on ar.region_name = sp.region_name
on ar.region_name = sp.region_name order by ar.region_name
</select>
</select>
</mapper>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论