增加企业微信获取用户信息和发起审批的方法
This commit is contained in:
parent
24333d23cf
commit
1a48086d5c
@ -32,8 +32,12 @@ export class ChainTaskClass extends BaseModule {
|
|||||||
public name: string
|
public name: string
|
||||||
@prop()
|
@prop()
|
||||||
public desc: string
|
public desc: string
|
||||||
|
// 谁发起的
|
||||||
@prop()
|
@prop()
|
||||||
public starter: string
|
public starter: string
|
||||||
|
// 发起人的名称
|
||||||
|
@prop()
|
||||||
|
public starterName: string
|
||||||
|
|
||||||
@prop({ type: mongoose.Schema.Types.Mixed })
|
@prop({ type: mongoose.Schema.Types.Mixed })
|
||||||
public taskData: any
|
public taskData: any
|
||||||
@ -128,9 +132,9 @@ export class ChainTaskClass extends BaseModule {
|
|||||||
/**
|
/**
|
||||||
* 解析企业微信审批信息
|
* 解析企业微信审批信息
|
||||||
*/
|
*/
|
||||||
public static async parseWxApprovalInfo({ taskId, name, desc, data, starter }) {
|
public static async parseWxApprovalInfo({ taskId, name, desc, data, starter, starterName }) {
|
||||||
let maxTryCount = parseInt(process.env.CHAIN_MAX_TRY)
|
let maxTryCount = parseInt(process.env.CHAIN_MAX_TRY)
|
||||||
let chainTask = await ChainTask.insertOrUpdate({ taskId }, { name, desc, starter, data })
|
let chainTask = await ChainTask.insertOrUpdate({ taskId }, { name, desc, starter, starterName, data })
|
||||||
let subTasks: any = []
|
let subTasks: any = []
|
||||||
if (chainTask.newRecord) {
|
if (chainTask.newRecord) {
|
||||||
let subTask
|
let subTask
|
||||||
|
@ -90,6 +90,108 @@ export class WechatWorkService {
|
|||||||
})
|
})
|
||||||
return response
|
return response
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 获取用户信息
|
||||||
|
* @param userid
|
||||||
|
*/
|
||||||
|
public async fetchUserInfo(userid: string) {
|
||||||
|
const url = `${WX_API_HOST}/cgi-bin/user/get`
|
||||||
|
const access_token = await this.getAccessToken()
|
||||||
|
let config: AxiosRequestConfig = {
|
||||||
|
method: 'get',
|
||||||
|
url,
|
||||||
|
params: {
|
||||||
|
access_token,
|
||||||
|
userid,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
let response = await axios.request(config).then(response => {
|
||||||
|
return response.data
|
||||||
|
})
|
||||||
|
if (response.errcode) {
|
||||||
|
throw new Error(response.errmsg)
|
||||||
|
}
|
||||||
|
return response
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发起一个审核, 用于流程结束时的通知
|
||||||
|
* @param userid
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
public async beginApproval({
|
||||||
|
userid,
|
||||||
|
title,
|
||||||
|
desc,
|
||||||
|
info,
|
||||||
|
}: {
|
||||||
|
userid: string
|
||||||
|
title: string
|
||||||
|
desc: string
|
||||||
|
info: string
|
||||||
|
}) {
|
||||||
|
const url = `${WX_API_HOST}/cgi-bin/oa/applyevent`
|
||||||
|
const access_token = await this.getAccessToken()
|
||||||
|
let config: AxiosRequestConfig = {
|
||||||
|
method: 'post',
|
||||||
|
url,
|
||||||
|
params: {
|
||||||
|
access_token,
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
creator_userid: userid,
|
||||||
|
template_id: process.env.WX_NOTIFY_TEMPLATE_ID,
|
||||||
|
use_template_approver: 0,
|
||||||
|
approver: [
|
||||||
|
{
|
||||||
|
userid: userid,
|
||||||
|
attr: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
apply_data: {
|
||||||
|
contents: [
|
||||||
|
{
|
||||||
|
control: 'Text',
|
||||||
|
id: process.env.WX_NOTIFY_TEXT_ID,
|
||||||
|
value: {
|
||||||
|
text: title,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
summary_list: [
|
||||||
|
{
|
||||||
|
summary_info: [
|
||||||
|
{
|
||||||
|
text: title,
|
||||||
|
lang: 'zh_CN',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
summary_info: [
|
||||||
|
{
|
||||||
|
text: desc,
|
||||||
|
lang: 'zh_CN',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
summary_info: [
|
||||||
|
{
|
||||||
|
text: info,
|
||||||
|
lang: 'zh_CN',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
let response = await axios.request(config).then(response => {
|
||||||
|
return response.data
|
||||||
|
})
|
||||||
|
return response
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 调用企业微信审核详情接口, 并处理返回数据
|
* 调用企业微信审核详情接口, 并处理返回数据
|
||||||
* @param spNo 审批单号
|
* @param spNo 审批单号
|
||||||
@ -122,9 +224,11 @@ export class WechatWorkService {
|
|||||||
if (!fileId) {
|
if (!fileId) {
|
||||||
throw new Error('no file')
|
throw new Error('no file')
|
||||||
}
|
}
|
||||||
|
let userInfo = await this.fetchUserInfo(starter)
|
||||||
|
let starterName = userInfo.name
|
||||||
let filePath = await this.fetchFile(fileId)
|
let filePath = await this.fetchFile(fileId)
|
||||||
let data = excelToJson(filePath)
|
let data = excelToJson(filePath)
|
||||||
return { taskId: spNo, name, desc, data, starter }
|
return { taskId: spNo, name, desc, data, starter, starterName }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user