Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-module-job
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-module-job
Commits
e254fdc4
提交
e254fdc4
authored
12月 31, 2025
作者:
douxy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增同步【基本单位建议零售价】到勤策
上级
1464786c
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
85 行增加
和
3 行删除
+85
-3
EventCallbackLuzx.java
...n/java/com/sfa/job/consumer/feishu/EventCallbackLuzx.java
+12
-3
EventCallbackServiceImpl.java
.../com/sfa/job/service/feishu/EventCallbackServiceImpl.java
+0
-0
IEventCallbackService.java
...ava/com/sfa/job/service/feishu/IEventCallbackService.java
+6
-0
QinCeUtils.java
src/main/java/com/sfa/job/util/QinCeUtils.java
+67
-0
没有找到文件。
src/main/java/com/sfa/job/consumer/feishu/EventCallbackLuzx.java
浏览文件 @
e254fdc4
...
@@ -41,6 +41,9 @@ public class EventCallbackLuzx {
...
@@ -41,6 +41,9 @@ public class EventCallbackLuzx {
private
String
encryptKeyP
;
private
String
encryptKeyP
;
@Value
(
"${feishu.approval.scfy}"
)
@Value
(
"${feishu.approval.scfy}"
)
private
String
scfyCode
;
private
String
scfyCode
;
@Value
(
"${feishu.approval.xpss_cpdj}"
)
private
String
xpssCode
;
@Autowired
@Autowired
private
IEventCallbackService
eventCallbackService
;
private
IEventCallbackService
eventCallbackService
;
@Autowired
@Autowired
...
@@ -122,9 +125,15 @@ public class EventCallbackLuzx {
...
@@ -122,9 +125,15 @@ public class EventCallbackLuzx {
EventCallBackDto
eventCallBackDto
=
JSONObject
.
parseObject
(
decrypt
,
EventCallBackDto
.
class
);
EventCallBackDto
eventCallBackDto
=
JSONObject
.
parseObject
(
decrypt
,
EventCallBackDto
.
class
);
EventCallBackDto
.
Event
event
=
eventCallBackDto
.
getEvent
();
EventCallBackDto
.
Event
event
=
eventCallBackDto
.
getEvent
();
// 市场推广费用申请(审批实例CODE:258B4D93-96D4-49E4-B9E1-DA6AB45740B0)
// 市场推广费用申请(审批实例CODE:258B4D93-96D4-49E4-B9E1-DA6AB45740B0)
if
(
Constants
.
FEISHU_APPROVAL_INSTANCE
.
equals
(
event
.
getType
())
&&
scfyCode
.
equals
(
event
.
getApprovalCode
())){
// if (Constants.FEISHU_APPROVAL_INSTANCE.equals(event.getType()) && scfyCode.equals(event.getApprovalCode())){
if
(!
event
.
getStatus
().
equals
(
PlanStatus
.
PENDING
.
name
())){
// if (!event.getStatus().equals(PlanStatus.PENDING.name())){
eventCallbackService
.
planCP
(
event
);
// eventCallbackService.planCP(event);
// }
// }
// 新品上市产品定价申请 (审批实例CODE: B4DBC1A9-D555-469D-AB69-4F353D8D2985)
if
(
Constants
.
FEISHU_APPROVAL_INSTANCE
.
equals
(
event
.
getType
())
&&
xpssCode
.
equals
(
event
.
getApprovalCode
())){
if
(
event
.
getStatus
().
equals
(
PlanStatus
.
APPROVED
.
name
())){
eventCallbackService
.
getMinimumSellingPrice
(
event
,
xpssCode
);
}
}
}
}
}
}
...
...
src/main/java/com/sfa/job/service/feishu/EventCallbackServiceImpl.java
浏览文件 @
e254fdc4
差异被折叠。
点击展开。
src/main/java/com/sfa/job/service/feishu/IEventCallbackService.java
浏览文件 @
e254fdc4
...
@@ -19,4 +19,10 @@ public interface IEventCallbackService {
...
@@ -19,4 +19,10 @@ public interface IEventCallbackService {
void
userUpdateByPersonId
(
String
personId
);
void
userUpdateByPersonId
(
String
personId
);
void
userResigned
(
String
employmentId
);
void
userResigned
(
String
employmentId
);
/**
* 自动获取最小销售价设置给勤策
* @param event
*/
void
getMinimumSellingPrice
(
EventCallBackDto
.
Event
event
,
String
approveTemplateCode
);
}
}
src/main/java/com/sfa/job/util/QinCeUtils.java
浏览文件 @
e254fdc4
...
@@ -52,6 +52,11 @@ public class QinCeUtils {
...
@@ -52,6 +52,11 @@ public class QinCeUtils {
public
static
final
String
MODIFY_USER
=
"/api/employee/v3/modifyEmployee/"
;
public
static
final
String
MODIFY_USER
=
"/api/employee/v3/modifyEmployee/"
;
// 商品信息查询
public
static
final
String
QUERY_PRODUCT_INFO
=
"/api/product/v1/queryProduct/"
;
// 商品价格更新
public
static
final
String
MODIFY_PRODUCT_PRICE
=
"/api/pd/v2/modifyProduct/"
;
public
String
builderUrl
(
String
sidepath
,
Map
<
String
,
Object
>
params
)
{
public
String
builderUrl
(
String
sidepath
,
Map
<
String
,
Object
>
params
)
{
String
msgId
=
UUID
.
randomUUID
().
toString
();
String
msgId
=
UUID
.
randomUUID
().
toString
();
...
@@ -129,4 +134,66 @@ public class QinCeUtils {
...
@@ -129,4 +134,66 @@ public class QinCeUtils {
JSONObject
jsonObject
=
postQC
(
url
,
params
);
JSONObject
jsonObject
=
postQC
(
url
,
params
);
return
jsonObject
.
getJSONArray
(
"response_data"
);
return
jsonObject
.
getJSONArray
(
"response_data"
);
}
}
/**
* 构建勤策商品查询参数(贴合官方queryProduct接口要求)
* @param productCode 产品编码(官方必传字段)
* @return 符合官方规范的查询参数
*/
public
Map
<
String
,
Object
>
queryProductOfficialParams
(
String
productCode
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
// 官方必传:产品编码(prd_code为勤策官方字段名)
params
.
put
(
"prd_code"
,
productCode
);
return
params
;
}
/**
* 调用勤策官方查询商品接口(pd/v2/queryProduct)
* @param productCode 产品编码
* @return 商品信息JSON对象(返回第一条数据)
* @throws Exception 接口调用异常
*/
public
JSONObject
queryProductInfo
(
String
productCode
)
throws
Exception
{
Map
<
String
,
Object
>
params
=
queryProductOfficialParams
(
productCode
);
String
url
=
builderUrl
(
QUERY_PRODUCT_INFO
,
params
);
log
.
info
(
"调用勤策官方商品查询接口,URL:{},参数:{}"
,
url
,
params
);
JSONObject
result
=
postQC
(
url
,
params
);
JSONArray
dataArray
=
result
.
getJSONArray
(
"response_data"
);
return
CollectionUtils
.
isEmpty
(
dataArray
)
?
null
:
dataArray
.
getJSONObject
(
0
);
}
public
boolean
modifyProductByFullJson
(
JSONObject
fullProductJson
)
{
// 空值校验
if
(
fullProductJson
==
null
||
fullProductJson
.
isEmpty
())
{
log
.
error
(
"勤策修改商品的JSON为空,无法调用接口"
);
return
false
;
}
try
{
// 将JSONObject转为Map,满足builderUrl生成digest的要求(你原有逻辑依赖Map)
Map
<
String
,
Object
>
modifyParams
=
JSONObject
.
parseObject
(
fullProductJson
.
toJSONString
(),
Map
.
class
);
// 复用你原有builderUrl方法生成接口地址(传入修改参数Map)
String
url
=
builderUrl
(
MODIFY_PRODUCT_PRICE
,
modifyParams
);
log
.
info
(
"调用勤策商品修改接口,URL:{},参数:{}"
,
url
,
modifyParams
);
// 复用你原有postQC方法(保持异常抛出逻辑一致)
JSONObject
respObj
=
postQC
(
url
,
modifyParams
);
// 解析返回结果(沿用你原有return_code校验逻辑)
String
returnCode
=
respObj
.
getString
(
"return_code"
);
if
(
"0"
.
equals
(
returnCode
))
{
log
.
info
(
"勤策商品修改成功,修改字段:prd_suggest_price,商品编码:{}"
,
fullProductJson
.
getString
(
"prd_code"
));
return
true
;
}
else
{
log
.
error
(
"勤策商品修改失败,返回信息:{}"
,
respObj
);
return
false
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"调用勤策修改商品接口异常,JSON:{}"
,
fullProductJson
.
toJSONString
(),
e
);
return
false
;
}
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论