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
f6a714d4
提交
f6a714d4
authored
12月 17, 2025
作者:
douxy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加店内执行计划导出/入功能:补充零食陈列导出策略实现代码
上级
5ecbd267
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
115 行增加
和
0 行删除
+115
-0
ExportColumnConfig.java
...ain/java/com/sfa/operation/config/ExportColumnConfig.java
+4
-0
ISalesApSnacksDisplayDao.java
.../operation/domain/sales/dao/ISalesApSnacksDisplayDao.java
+10
-0
SalesApSnacksDisplayDaoImpl.java
...on/domain/sales/dao/impl/SalesApSnacksDisplayDaoImpl.java
+13
-0
SnackDisplayExportStrategyImpl.java
...strategy/impl/exports/SnackDisplayExportStrategyImpl.java
+88
-0
没有找到文件。
src/main/java/com/sfa/operation/config/ExportColumnConfig.java
浏览文件 @
f6a714d4
...
@@ -53,6 +53,10 @@ public class ExportColumnConfig {
...
@@ -53,6 +53,10 @@ public class ExportColumnConfig {
// 标记:是否启用条件样式
// 标记:是否启用条件样式
private
boolean
conditionalStyling
=
false
;
private
boolean
conditionalStyling
=
false
;
// 标记:是否需要判断前一列是否包含某值
private
boolean
isContent
=
false
;
public
ExportColumnConfig
(
String
fieldName
,
String
headerName
,
String
format
,
ExcelStyleUtils
.
ExcelStyle
style
)
{
public
ExportColumnConfig
(
String
fieldName
,
String
headerName
,
String
format
,
ExcelStyleUtils
.
ExcelStyle
style
)
{
this
.
fieldName
=
fieldName
;
this
.
fieldName
=
fieldName
;
this
.
headerName
=
headerName
;
this
.
headerName
=
headerName
;
...
...
src/main/java/com/sfa/operation/domain/sales/dao/ISalesApSnacksDisplayDao.java
浏览文件 @
f6a714d4
package
com
.
sfa
.
operation
.
domain
.
sales
.
dao
;
package
com
.
sfa
.
operation
.
domain
.
sales
.
dao
;
import
com.sfa.common.core.web.domain.PageInfo
;
import
com.sfa.common.core.web.domain.PageInfo
;
import
com.sfa.operation.domain.sales.entity.SalesApSnacksDisplay
;
import
com.sfa.operation.domain.sales.wq.SalesApWq
;
import
com.sfa.operation.domain.sales.wq.SalesApWq
;
import
com.sfa.operation.pojo.sales.response.SalesApSnacksDisplayDto
;
import
com.sfa.operation.pojo.sales.response.SalesApSnacksDisplayDto
;
import
java.util.List
;
/**
/**
* @author : liqiulin
* @author : liqiulin
* @date : 2025-09-26 13
* @date : 2025-09-26 13
...
@@ -13,4 +16,11 @@ public interface ISalesApSnacksDisplayDao {
...
@@ -13,4 +16,11 @@ public interface ISalesApSnacksDisplayDao {
PageInfo
page
(
SalesApWq
salesApWq
);
PageInfo
page
(
SalesApWq
salesApWq
);
void
updateDetail
(
SalesApSnacksDisplayDto
sdDto
);
void
updateDetail
(
SalesApSnacksDisplayDto
sdDto
);
/**
* 导出 -根据条件查询导出数据
* @param build 查询条件
* @return 查询结果
*/
List
<
SalesApSnacksDisplay
>
querySnackByCondition
(
SalesApWq
build
);
}
}
src/main/java/com/sfa/operation/domain/sales/dao/impl/SalesApSnacksDisplayDaoImpl.java
浏览文件 @
f6a714d4
...
@@ -19,7 +19,9 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -19,7 +19,9 @@ 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.Collections
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
/**
/**
...
@@ -50,6 +52,17 @@ public class SalesApSnacksDisplayDaoImpl implements ISalesApSnacksDisplayDao {
...
@@ -50,6 +52,17 @@ public class SalesApSnacksDisplayDaoImpl implements ISalesApSnacksDisplayDao {
salesapsnackdsDisplayMapper
.
updateById
(
entity
);
salesapsnackdsDisplayMapper
.
updateById
(
entity
);
}
}
/**
* 导出-根据条件查询
* @param build 查询条件
* @return 查询结果
*/
@Override
public
List
<
SalesApSnacksDisplay
>
querySnackByCondition
(
SalesApWq
build
)
{
LambdaQueryWrapper
<
SalesApSnacksDisplay
>
wq
=
buildWq
(
build
);
return
salesapsnackdsDisplayMapper
.
selectList
(
wq
);
}
private
LambdaQueryWrapper
<
SalesApSnacksDisplay
>
buildWq
(
SalesApWq
salesApWq
)
{
private
LambdaQueryWrapper
<
SalesApSnacksDisplay
>
buildWq
(
SalesApWq
salesApWq
)
{
LambdaQueryWrapper
<
SalesApSnacksDisplay
>
qw
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
SalesApSnacksDisplay
>
qw
=
new
LambdaQueryWrapper
<>();
if
(
Objects
.
nonNull
(
salesApWq
.
getSalesMonth
())){
if
(
Objects
.
nonNull
(
salesApWq
.
getSalesMonth
())){
...
...
src/main/java/com/sfa/operation/strategy/impl/exports/SnackDisplayExportStrategyImpl.java
0 → 100644
浏览文件 @
f6a714d4
package
com
.
sfa
.
operation
.
strategy
.
impl
.
exports
;
import
com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager
;
import
com.sfa.operation.config.ExportColumnConfig
;
import
com.sfa.operation.domain.sales.entity.SalesApSnacksDisplay
;
import
com.sfa.operation.pojo.sales.request.SalesApRequest
;
import
com.sfa.operation.service.sales.IApDisplayQueryService
;
import
com.sfa.operation.strategy.IExportApExcelStrategy
;
import
com.sfa.operation.util.excel.ExcelStyleUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.List
;
/**
* @Author: DouXinYu
* @Date: 2025-12-16 15:49
* @Description: 零食陈列导出策略实现类
*/
@Component
(
"snackDisplayExportStrategy"
)
public
class
SnackDisplayExportStrategyImpl
implements
IExportApExcelStrategy
{
private
static
final
String
SNACK_FILE_NAME_PREFIX
=
"零食陈列"
;
private
static
final
String
SNACK_SHEET_NAME
=
"零食陈列"
;
@Autowired
private
IApDisplayQueryService
apDisplayQueryService
;
@Override
public
List
<
ExportColumnConfig
>
getExportColumnConfig
()
{
List
<
ExportColumnConfig
>
column
=
new
ArrayList
<>();
//特殊限制列处理
//实际陈列形式
ExportColumnConfig
actualDisplay
=
new
ExportColumnConfig
(
"actualDisplay"
,
"陈列形式(实际)"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
LIGHT_BLUE_BG
);
actualDisplay
.
setValidationValidOptions
(
Arrays
.
asList
(
"执行与计划一致"
,
"执行与计划不一致"
));
actualDisplay
.
setValidationErrorTitle
(
"输入错误"
);
actualDisplay
.
setValidationPromptMsg
(
"陈列形式(实际)必须输入“执行与计划一致”或“执行与计划不一致”!"
);
actualDisplay
.
setConditionalStyling
(
true
);
//实际端架数量
ExportColumnConfig
actualEndCapQty
=
new
ExportColumnConfig
(
"actualEndCapQty"
,
"端架数量(计划)"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
LIGHT_BLUE_BG
);
actualDisplay
.
setValidationValidOptions
(
Arrays
.
asList
(
"0"
,
"0.5"
,
"1"
,
"2"
));
actualDisplay
.
setValidationErrorTitle
(
"输入错误"
);
actualDisplay
.
setValidationErrorMsg
(
"端架数量(实际)必须是“0、0.5、1、2”之一!"
);
actualDisplay
.
setConditionalStyling
(
true
);
column
.
add
(
new
ExportColumnConfig
(
"sasdId"
,
"程序编号-请忽略"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
new
ExportColumnConfig
(
"salesMonth"
,
"计划月份"
,
"YYYY-MM"
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
new
ExportColumnConfig
(
"regionName"
,
"销售大区"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
new
ExportColumnConfig
(
"districtName"
,
"销售战区"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
new
ExportColumnConfig
(
"dealerCode"
,
"经销商代码"
,
"@"
,
ExcelStyleUtils
.
ExcelStyle
.
CHANGE_TEXT_STYLE
));
column
.
add
(
new
ExportColumnConfig
(
"dealerName"
,
"经销商名称"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
new
ExportColumnConfig
(
"storeCode"
,
"门店编码"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
new
ExportColumnConfig
(
"storeName"
,
"门店名称"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
new
ExportColumnConfig
(
"lineName"
,
"系统名称"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
new
ExportColumnConfig
(
"plannedDisplay"
,
"陈列形式(计划)"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
actualDisplay
);
column
.
add
(
new
ExportColumnConfig
(
"plannedEndCapQty"
,
"端架数量(计划)"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
UNMODIFIABLE
));
column
.
add
(
actualEndCapQty
);
column
.
add
(
new
ExportColumnConfig
(
"remark"
,
"备注"
,
""
,
ExcelStyleUtils
.
ExcelStyle
.
DEFAULT_STYLE
));
return
column
;
}
@Override
public
List
<
SalesApSnacksDisplay
>
queryData
(
SalesApRequest
salesApRequest
)
{
return
apDisplayQueryService
.
querySnackByCondition
(
salesApRequest
);
}
@Override
public
String
getExportSheetName
()
{
return
SNACK_SHEET_NAME
;
}
@Override
public
String
getExportFileNamePrefix
()
{
return
SNACK_FILE_NAME_PREFIX
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论