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
1d6ce1fb
提交
1d6ce1fb
authored
12月 17, 2025
作者:
窦馨雨
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dxy' 到 'qa'
增加店内执行计划导出/入功能 查看合并请求
!96
上级
bdd28e3f
2a4e62bf
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
70 行增加
和
34 行删除
+70
-34
ApImportExcelController.java
...ation/controller/sales/excel/ApImportExcelController.java
+5
-0
NormalDisplayImportStrategyImpl.java
...trategy/impl/imports/NormalDisplayImportStrategyImpl.java
+65
-34
没有找到文件。
src/main/java/com/sfa/operation/controller/sales/excel/ApImportExcelController.java
浏览文件 @
1d6ce1fb
package
com
.
sfa
.
operation
.
controller
.
sales
.
excel
;
import
com.sfa.common.core.constant.RoleConstants
;
import
com.sfa.common.core.domain.R
;
import
com.sfa.common.security.annotation.Logical
;
import
com.sfa.common.security.annotation.RequiresRoles
;
import
com.sfa.operation.pojo.sales.request.ImportApExcelRequest
;
import
com.sfa.operation.service.sales.export.IImportExcelService
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -28,7 +31,9 @@ public class ApImportExcelController {
return
importExcelService
.
importApExcel
(
request
);
}
@PostMapping
(
"/update"
)
@RequiresRoles
(
value
=
{
RoleConstants
.
OPERATION_AP_MANAGER
,
RoleConstants
.
OPERATIONZQ_AP_MANAGER
,
RoleConstants
.
OPERATIONDQ_AP_MANAGER
,
RoleConstants
.
DISTRICT_AP_MANAGER
},
logical
=
Logical
.
OR
)
public
R
updateApDisplayExcel
(
@RequestBody
ImportApExcelRequest
request
)
{
return
importExcelService
.
updateApEntity
(
request
);
}
...
...
src/main/java/com/sfa/operation/strategy/impl/imports/NormalDisplayImportStrategyImpl.java
浏览文件 @
1d6ce1fb
...
...
@@ -188,24 +188,6 @@ public class NormalDisplayImportStrategyImpl implements IImportApExcelStrategy<S
SalesApDisplay
updateDisplay
=
new
SalesApDisplay
();
BeanUtils
.
copyProperties
(
dbDisplay
,
updateDisplay
);
updateDisplay
.
setActualMainShelfType
(
dto
.
getActualMainShelfType
());
updateDisplay
.
setActualMainShelfQty
(
dto
.
getActualMainShelfQty
());
updateDisplay
.
setActualEndCapQty
(
dto
.
getActualEndCapQty
());
updateDisplay
.
setActualFloorStackArea
(
dto
.
getActualFloorStackArea
());
updateDisplay
.
setActualFloorStackQty
(
dto
.
getActualFloorStackQty
());
String
actualMultiDisplay
=
StringUtils
.
trimToNull
(
dto
.
getActualMultiDisplay
());
updateDisplay
.
setActualMultiDisplay
(
actualMultiDisplay
);
String
actualHangingStrip
=
StringUtils
.
trimToNull
(
dto
.
getActualHangingStripQuantityForm
());
updateDisplay
.
setActualHangingStripQuantityForm
(
actualHangingStrip
);
updateDisplay
.
setRemark
(
dto
.
getRemark
());
if
(
updateDisplay
.
getPlannedMainShelfType
()
!=
null
&&
updateDisplay
.
getPlannedMainShelfQty
()
!=
null
...
...
@@ -246,53 +228,102 @@ public class NormalDisplayImportStrategyImpl implements IImportApExcelStrategy<S
}
else
if
(
updateDisplay
.
getPlannedMainShelfType
()
!=
null
&&
updateDisplay
.
getPlannedMainShelfQty
()
!=
null
&&
(
updateDisplay
.
getActualMainShelfType
()
!=
null
||
dto
.
getActualMainShelfQty
()
!=
null
)
&&
(
dto
.
getActualMainShelfType
()
==
null
||
dto
.
getActualMainShelfQty
()
==
null
)
){
// 计划/实际值不全,清空执行状态
updateDisplay
.
setActualMainShelfExecuted
(
"未执行"
);
}
else
{
updateDisplay
.
setActualMainShelfExecuted
(
null
);
}
// 2. 端架执行状态计算
if
(
dto
.
getActualEndCapQty
()
!=
null
&&
updateDisplay
.
getPlannedEndCapQty
()
!=
null
)
{
if
(
updateDisplay
.
getPlannedEndCapQty
()
!=
null
)
{
Double
oldActualEndCapQty
=
updateDisplay
.
getActualEndCapQty
();
if
(
oldActualEndCapQty
!=
null
)
{
if
(
dto
.
getActualEndCapQty
()
!=
null
)
{
updateDisplay
.
setActualEndCapExecuted
(
dto
.
getActualEndCapQty
()
>=
updateDisplay
.
getPlannedEndCapQty
()
?
"执行"
:
"未执行"
);
}
else
{
updateDisplay
.
setActualEndCapExecuted
(
null
);
}
else
{
// DTO没值(原本有值→现在没值):改为未执行
updateDisplay
.
setActualEndCapExecuted
(
"未执行"
);
}
}
}
// 3. 地堆执行状态计算
if
(
updateDisplay
.
getPlannedFloorStackArea
()
!=
null
&&
updateDisplay
.
getPlannedFloorStackQty
()
!=
null
&&
dto
.
getActualFloorStackArea
()
!=
null
&&
dto
.
getActualFloorStackQty
()
!=
null
)
{
// 3. 地堆是否执行计算
if
(
updateDisplay
.
getPlannedFloorStackArea
()
!=
null
&&
updateDisplay
.
getPlannedFloorStackQty
()
!=
null
)
{
Double
oldActualFloorStackArea
=
updateDisplay
.
getActualFloorStackArea
();
Integer
oldActualFloorStackQty
=
updateDisplay
.
getActualFloorStackQty
();
boolean
hasOldActualValue
=
(
oldActualFloorStackArea
!=
null
)
||
(
oldActualFloorStackQty
!=
null
);
if
(
hasOldActualValue
)
{
boolean
hasNewArea
=
dto
.
getActualFloorStackArea
()
!=
null
;
boolean
hasNewQty
=
dto
.
getActualFloorStackQty
()
!=
null
;
if
(
hasNewArea
&&
hasNewQty
)
{
boolean
areaSufficient
=
dto
.
getActualFloorStackArea
()
>=
updateDisplay
.
getPlannedFloorStackArea
();
boolean
qtySufficient
=
dto
.
getActualFloorStackQty
()
>=
updateDisplay
.
getPlannedFloorStackQty
();
updateDisplay
.
setActualFloorStackExecuted
((
areaSufficient
&&
qtySufficient
)
?
"执行"
:
"未执行"
);
}
else
{
updateDisplay
.
setActualFloorStackExecuted
(
null
);
updateDisplay
.
setActualFloorStackExecuted
(
"未执行"
);
}
}
}
// 4. 多点陈列执行状态(处理空字符串)
if
(
updateDisplay
.
getPlannedMultiDisplay
()
!=
null
&&
actualMultiDisplay
!=
null
)
{
// 4. 多点陈列执行状态计算
// 计划有值才处理
if
(
updateDisplay
.
getPlannedMultiDisplay
()
!=
null
)
{
// 获取原有实际值(updateDisplay的旧值)
String
oldActualMultiDisplay
=
updateDisplay
.
getActualMultiDisplay
();
// 判断原有实际值是否有值(非空非空白)
// 原本实际有值
if
(
oldActualMultiDisplay
!=
null
&&
!
StringUtils
.
isBlank
(
oldActualMultiDisplay
))
{
// DTO传了新值:判断是否一致
if
(
updateDisplay
.
getActualMultiDisplay
()
!=
null
&&
!
StringUtils
.
isBlank
(
dto
.
getActualMultiDisplay
()))
{
updateDisplay
.
setActualMultiDisplayExecuted
(
StringUtils
.
equals
(
"执行与计划一致"
,
actualMultiDisplay
)
?
"执行"
:
"未执行"
StringUtils
.
equals
(
"执行与计划一致"
,
dto
.
getActualMultiDisplay
()
)
?
"执行"
:
"未执行"
);
}
else
{
updateDisplay
.
setActualMultiDisplayExecuted
(
null
);
}
else
{
// DTO没传新值(原本有值→现在没值):改为未执行
updateDisplay
.
setActualMultiDisplayExecuted
(
"未执行"
);
}
}
}
// 5. 挂条执行状态(处理空字符串)
if
(
updateDisplay
.
getPlannedHangingStripQuantityForm
()
!=
null
&&
actualHangingStrip
!=
null
)
{
if
(
updateDisplay
.
getPlannedHangingStripQuantityForm
()
!=
null
)
{
String
oldActualHangingStrip
=
updateDisplay
.
getActualHangingStripQuantityForm
();
if
(
oldActualHangingStrip
!=
null
&&
!
StringUtils
.
isBlank
(
oldActualHangingStrip
))
{
if
(
updateDisplay
.
getActualHangingStripQuantityForm
()
!=
null
&&
!
StringUtils
.
isBlank
(
dto
.
getActualHangingStripQuantityForm
()))
{
updateDisplay
.
setHangingStripExecuted
(
StringUtils
.
equals
(
"执行与计划一致"
,
actualHangingStrip
)
?
"执行"
:
"未执行"
StringUtils
.
equals
(
"执行与计划一致"
,
dto
.
getActualHangingStripQuantityForm
()
)
?
"执行"
:
"未执行"
);
}
else
{
updateDisplay
.
setHangingStripExecuted
(
null
);
updateDisplay
.
setHangingStripExecuted
(
"未执行"
);
}
}
}
updateDisplay
.
setActualMainShelfType
(
dto
.
getActualMainShelfType
());
updateDisplay
.
setActualMainShelfQty
(
dto
.
getActualMainShelfQty
());
updateDisplay
.
setActualEndCapQty
(
dto
.
getActualEndCapQty
());
updateDisplay
.
setActualFloorStackArea
(
dto
.
getActualFloorStackArea
());
updateDisplay
.
setActualFloorStackQty
(
dto
.
getActualFloorStackQty
());
String
actualMultiDisplay
=
StringUtils
.
trimToNull
(
dto
.
getActualMultiDisplay
());
updateDisplay
.
setActualMultiDisplay
(
actualMultiDisplay
);
String
actualHangingStrip
=
StringUtils
.
trimToNull
(
dto
.
getActualHangingStripQuantityForm
());
updateDisplay
.
setActualHangingStripQuantityForm
(
actualHangingStrip
);
// 添加到更新列表
updateEntityList
.
add
(
updateDisplay
);
}
return
updateEntityList
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论