Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-export
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
wangxiaolu-export
Commits
aa21b0f6
提交
aa21b0f6
authored
1月 14, 2026
作者:
douxy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
CP计划小程序改造,新增呢个照片逻辑保存
上级
0974ac19
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
73 行增加
和
38 行删除
+73
-38
ActivityToFeishuSheetServiceImpl.java
...export/service/impl/ActivityToFeishuSheetServiceImpl.java
+73
-38
没有找到文件。
src/main/java/com/wangxiaolu/export/service/impl/ActivityToFeishuSheetServiceImpl.java
浏览文件 @
aa21b0f6
...
...
@@ -33,6 +33,32 @@ import java.util.stream.Collectors;
@Service
public
class
ActivityToFeishuSheetServiceImpl
implements
ActivityToFeishuSheetService
{
// ========== 新增:照片类型常量定义 ==========
/** 推广试吃照片 */
private
static
final
int
PHOTO_TYPE_TGSC
=
1
;
/** 推广互动照片 */
private
static
final
int
PHOTO_TYPE_TGHD
=
2
;
/** 推广成交照片 */
private
static
final
int
PHOTO_TYPE_TGCJ
=
3
;
/** 上班打卡图片 */
private
static
final
int
PHOTO_TYPE_CLOCK_IN
=
4
;
/** 午休下班打卡图片 */
private
static
final
int
PHOTO_TYPE_NOON_CLOCK_OUT
=
5
;
/** 午休上班打卡图片 */
private
static
final
int
PHOTO_TYPE_NOON_CLOCK_IN
=
6
;
/** 下班打卡图片 */
private
static
final
int
PHOTO_TYPE_CLOCK_OUT
=
7
;
/** 当日销量POS机页面凭证 */
private
static
final
int
PHOTO_TYPE_POS_SELL_VOUCHER
=
8
;
/** 试吃照片 */
private
static
final
int
PHOTO_TYPE_TASTY_PHOTO
=
9
;
/** 配发赠品照片 */
private
static
final
int
PHOTO_TYPE_SEND_GIFT_PHOTO
=
10
;
/** 高峰期在岗 */
private
static
final
int
PHOTO_TYPE_RANDOM_TASK
=
11
;
/** 试吃物料照片 */
private
static
final
int
PHOTO_TYPE_TASTY_MATERIALS
=
12
;
private
static
FeishuSheetRecordDO
sheetInfoD
=
null
;
@Value
(
"${feishu.activity_robot_1.app_id}"
)
...
...
@@ -44,6 +70,7 @@ public class ActivityToFeishuSheetServiceImpl implements ActivityToFeishuSheetSe
@Value
(
"${feishu.activity_robot_2.app_secret}"
)
private
String
appSecret2
;
@Autowired
RedisCache
redisCache
;
@Autowired
...
...
@@ -232,61 +259,71 @@ public class ActivityToFeishuSheetServiceImpl implements ActivityToFeishuSheetSe
* 打卡类型大于等于9 的 单独筛选出处理
*/
Map
<
Integer
,
String
>
clockMap
=
activityPhotoDOS
.
stream
()
.
filter
(
photo
->
photo
.
getType
()
<
9
&&
photo
.
getType
()
>=
4
)
.
filter
(
photo
->
photo
.
getType
()
>=
PHOTO_TYPE_CLOCK_IN
&&
photo
.
getType
()
<=
PHOTO_TYPE_CLOCK_OUT
)
.
collect
(
Collectors
.
toMap
(
TemporaryActivityPhotoDO:
:
getType
,
TemporaryActivityPhotoDO:
:
getPhotoUrl
));
Map
<
Integer
,
List
<
TemporaryActivityPhotoDO
>>
taskMap
=
activityPhotoDOS
.
stream
()
.
filter
(
photo
->
photo
.
getType
()
>=
PHOTO_TYPE_POS_SELL_VOUCHER
)
.
collect
(
Collectors
.
groupingBy
(
TemporaryActivityPhotoDO:
:
getType
));
// 上班打卡照片 >>>
if
(
clockMap
.
containsKey
(
4
))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AB"
,
"AB"
),
clockMap
.
get
(
4
));
if
(
clockMap
.
containsKey
(
PHOTO_TYPE_CLOCK_IN
))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AB"
,
"AB"
),
clockMap
.
get
(
PHOTO_TYPE_CLOCK_IN
));
}
StringBuilder
pct
=
new
StringBuilder
();
List
<
TemporaryActivityPhotoDO
>
photosType1
=
Objects
.
isNull
(
photoTypeMap
.
get
(
1
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
1
);
List
<
TemporaryActivityPhotoDO
>
photosType1
=
Objects
.
isNull
(
photoTypeMap
.
get
(
PHOTO_TYPE_TGSC
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
PHOTO_TYPE_TGSC
);
List
<
TemporaryActivityPhotoDO
>
photosType9
=
Objects
.
isNull
(
photoTypeMap
.
get
(
PHOTO_TYPE_TASTY_PHOTO
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
PHOTO_TYPE_TASTY_PHOTO
);
List
<
TemporaryActivityPhotoDO
>
photosType12
=
Objects
.
isNull
(
photoTypeMap
.
get
(
PHOTO_TYPE_TASTY_MATERIALS
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
PHOTO_TYPE_TASTY_MATERIALS
);
List
<
TemporaryActivityPhotoDO
>
photosType10
=
Objects
.
isNull
(
photoTypeMap
.
get
(
PHOTO_TYPE_SEND_GIFT_PHOTO
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
PHOTO_TYPE_SEND_GIFT_PHOTO
);
int
photosType9Size
=
photosType9
.
size
();
int
photosType1Size
=
photosType1
.
size
();
// 推广试吃照片1 >>>
if
(!(
photosType1Size
<
1
||
Objects
.
isNull
(
photosType1
.
get
(
0
))))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AC"
,
"AC"
),
photosType1
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"试吃1:"
+
DateUtil
.
formatDateTime
(
photosType1
.
get
(
0
).
getCreateTime
()));
int
photosType12Size
=
photosType12
.
size
();
int
photosType10Size
=
photosType10
.
size
();
// 试吃品照片
if
(!(
photosType9Size
<
1
||
Objects
.
isNull
(
photosType9
.
get
(
0
))))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AC"
,
"AC"
),
photosType9
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"试吃品照片:"
+
DateUtil
.
formatDateTime
(
photosType9
.
get
(
0
).
getCreateTime
()));
}
//
推广试吃照片2
>>>
if
(!(
photosType1
Size
<
2
||
Objects
.
isNull
(
photosType1
.
get
(
1
))))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AD"
,
"AD"
),
photosType1
.
get
(
1
).
getPhotoUrl
());
pct
.
append
(
"、试吃
2:"
+
DateUtil
.
formatDateTime
(
photosType1
.
get
(
1
).
getCreateTime
()));
//
试吃必备物料(试吃台/盘/杯)照片
>>>
if
(!(
photosType1
2Size
<
1
||
Objects
.
isNull
(
photosType12
.
get
(
0
))))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AD"
,
"AD"
),
photosType1
2
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"、试吃
必备物料:"
+
DateUtil
.
formatDateTime
(
photosType12
.
get
(
0
).
getCreateTime
()));
}
//
推广试吃照片4
>>>
if
(!(
photosType1
Size
<
4
||
Objects
.
isNull
(
photosType1
.
get
(
3
))))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AE"
,
"AE"
),
photosType1
.
get
(
3
).
getPhotoUrl
());
pct
.
append
(
"、
试吃4:"
+
DateUtil
.
formatDateTime
(
photosType1
.
get
(
3
).
getCreateTime
()));
//
配发赠品照片
>>>
if
(!(
photosType1
0Size
<
1
||
Objects
.
isNull
(
photosType10
.
get
(
0
))))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AE"
,
"AE"
),
photosType1
0
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"、
配发赠品照片:"
+
DateUtil
.
formatDateTime
(
photosType10
.
get
(
0
).
getCreateTime
()));
}
log
.
info
(
"上传推广-试吃照片完成,行号:{}"
,
rowNumStr
);
// 午休下班打卡照片 >>>
if
(
clockMap
.
containsKey
(
5
))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AF"
,
"AF"
),
clockMap
.
get
(
5
));
if
(
clockMap
.
containsKey
(
PHOTO_TYPE_NOON_CLOCK_OUT
))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AF"
,
"AF"
),
clockMap
.
get
(
PHOTO_TYPE_NOON_CLOCK_OUT
));
}
// 午休上班打卡照片 >>>
if
(
clockMap
.
containsKey
(
6
))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AG"
,
"AG"
),
clockMap
.
get
(
6
));
if
(
clockMap
.
containsKey
(
PHOTO_TYPE_NOON_CLOCK_IN
))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AG"
,
"AG"
),
clockMap
.
get
(
PHOTO_TYPE_NOON_CLOCK_IN
));
}
/**
* 推广试吃照片
*/
// 推广试吃照片3 >>>
if
(!(
photosType1Size
<
3
||
Objects
.
isNull
(
photosType1
.
get
(
2
))))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AH"
,
"AH"
),
photosType1
.
get
(
2
).
getPhotoUrl
());
pct
.
append
(
"、试吃3:"
+
DateUtil
.
formatDateTime
(
photosType1
.
get
(
2
).
getCreateTime
()));
// 试吃执行照片 推广试吃照片3 >>>
if
(!(
photosType1Size
<
1
||
Objects
.
isNull
(
photosType1
.
get
(
0
))))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AH"
,
"AH"
),
photosType1
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"、试吃3:"
+
DateUtil
.
formatDateTime
(
photosType1
.
get
(
0
).
getCreateTime
()));
}
/**
* 推广互动照片
*/
List
<
TemporaryActivityPhotoDO
>
photosType2
=
Objects
.
isNull
(
photoTypeMap
.
get
(
2
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
2
);
List
<
TemporaryActivityPhotoDO
>
photosType2
=
Objects
.
isNull
(
photoTypeMap
.
get
(
PHOTO_TYPE_TGHD
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
PHOTO_TYPE_TGHD
);
int
photosType2Size
=
photosType2
.
size
();
// 推广互动照片
1
>>>
// 推广互动照片 >>>
if
(!(
photosType2Size
<
1
||
Objects
.
isNull
(
photosType2
.
get
(
0
))))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AI"
,
"AI"
),
photosType2
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"、互动1:"
+
DateUtil
.
formatDateTime
(
photosType2
.
get
(
0
).
getCreateTime
()));
...
...
@@ -296,37 +333,34 @@ public class ActivityToFeishuSheetServiceImpl implements ActivityToFeishuSheetSe
/**
* 推广成交照片
*/
List
<
TemporaryActivityPhotoDO
>
photosType3
=
Objects
.
isNull
(
photoTypeMap
.
get
(
3
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
3
);
List
<
TemporaryActivityPhotoDO
>
photosType3
=
Objects
.
isNull
(
photoTypeMap
.
get
(
PHOTO_TYPE_TGCJ
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
PHOTO_TYPE_TGCJ
);
int
photosType3Size
=
photosType3
.
size
();
// 推广成交照片1 >>>
if
(!(
photosType3Size
<
1
||
Objects
.
isNull
(
photosType3
.
get
(
0
))))
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AJ"
,
"AJ"
),
photosType3
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"、成交
1
:"
+
DateUtil
.
formatDateTime
(
photosType3
.
get
(
0
).
getCreateTime
()));
pct
.
append
(
"、成交:"
+
DateUtil
.
formatDateTime
(
photosType3
.
get
(
0
).
getCreateTime
()));
}
Map
<
Integer
,
List
<
TemporaryActivityPhotoDO
>>
taskMap
=
activityPhotoDOS
.
stream
()
.
filter
(
photo
->
photo
.
getType
()
>=
9
)
.
collect
(
Collectors
.
groupingBy
(
TemporaryActivityPhotoDO:
:
getType
));
//
随机任务
照片
List
<
TemporaryActivityPhotoDO
>
randTaskPhotos
=
taskMap
.
get
(
10
);
//
高峰期在岗
照片
List
<
TemporaryActivityPhotoDO
>
randTaskPhotos
=
taskMap
.
get
(
PHOTO_TYPE_RANDOM_TASK
);
if
(
ObjectUtil
.
isNotEmpty
(
randTaskPhotos
)
&&
randTaskPhotos
.
size
()
>
0
&&
ObjectUtil
.
isNotEmpty
(
randTaskPhotos
.
get
(
0
)))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AK"
,
"AK"
),
randTaskPhotos
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"、
随机任务
:"
+
DateUtil
.
formatDateTime
(
randTaskPhotos
.
get
(
0
).
getCreateTime
()));
pct
.
append
(
"、
高峰期在岗
:"
+
DateUtil
.
formatDateTime
(
randTaskPhotos
.
get
(
0
).
getCreateTime
()));
}
/**
* 推广照>> 真实pos证明反馈
*/
List
<
TemporaryActivityPhotoDO
>
photosType8
=
Objects
.
isNull
(
photoTypeMap
.
get
(
8
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
8
);
List
<
TemporaryActivityPhotoDO
>
photosType8
=
Objects
.
isNull
(
photoTypeMap
.
get
(
PHOTO_TYPE_POS_SELL_VOUCHER
))
?
new
ArrayList
<>()
:
photoTypeMap
.
get
(
PHOTO_TYPE_POS_SELL_VOUCHER
);
int
photosType8Size
=
photosType8
.
size
();
// 真实pos证明反馈1 >>>
if
(!(
photosType8Size
<
1
||
Objects
.
isNull
(
photosType8
.
get
(
0
)))
)
{
valuesImageToSheet
(
String
.
format
(
rangFormat
,
"AL"
,
"AL"
),
photosType8
.
get
(
0
).
getPhotoUrl
());
pct
.
append
(
"、销额POS证明:"
+
DateUtil
.
formatDateTime
(
photosType8
.
get
(
0
).
getCreateTime
()));
}
else
if
(
StringUtils
.
isNotBlank
(
rdo
.
getPosManualSalesRecord
()
))
{
row
.
add
(
rdo
.
getPosManualSalesRecord
());
}
...
...
@@ -334,14 +368,15 @@ public class ActivityToFeishuSheetServiceImpl implements ActivityToFeishuSheetSe
// 真实pos证明反馈2 >>>
if
(!(
photosType8Size
<
2
||
Objects
.
isNull
(
photosType8
.
get
(
1
))))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AM"
,
"AM"
),
photosType8
.
get
(
1
).
getPhotoUrl
());
pct
.
append
(
"、销额POS证明(补充):"
+
DateUtil
.
formatDateTime
(
photosType8
.
get
(
1
).
getCreateTime
()));
}
else
if
(
StringUtils
.
isNotBlank
(
rdo
.
getPosManualSalesRecord
()
))
{
row
.
add
(
rdo
.
getPosManualSalesRecord
());
}
// 下班打卡照片 >>>
if
(
clockMap
.
containsKey
(
7
))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AN"
,
"AN"
),
clockMap
.
get
(
7
));
if
(
clockMap
.
containsKey
(
PHOTO_TYPE_CLOCK_OUT
))
{
valuesImageToSheetByRobot2
(
String
.
format
(
rangFormat
,
"AN"
,
"AN"
),
clockMap
.
get
(
PHOTO_TYPE_CLOCK_OUT
));
}
log
.
info
(
"上传打卡照片完成,行号:{}"
,
rowNumStr
);
// 推广类照片上传时间
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论