接口用例

Pro-Java search_read接口

POST #{papi_url}/ersoft-core-hr/spi/integration/search

var reqBody = {
    "model": "x_builder_xxx",
    "domain": [["code", "=", "code"]],
    "fields": [
        "id",
        "name",
        "write_date"
    ],
    "pager": 1,
    "size": 10,
    "order": "",
    "context": {"lang": "zh_CN"}
}

var respJson = httpPost(getProperty("post_url"), reqBody)
var isSuccess = respJson.code == 0 && respJson.data && respJson.data.data && respJson.data.data.length
if (isSuccess) {
	// 其他操作
}
isSuccess
? putToRel("SuccessRel", respJson)
: putToRel("failure", {"msg": context.getName() + "失败", "data": {"reqBody": reqBody, "respJson": respJson}})

Pro-Python search_read接口

POST #{papi_url}/papi/nal/integration/model/search_read

var reqBody = {
    "model": "x_builder_xxx",
    "domain": [["code", "=", "code"]],
    "fields": [
        "id",
        "name",
        "write_date"
    ],
    "offset": 0,
    "limit": 1,
    "order": "",
    "context": {
	"lang": "zh_CN"
    }
}

var respJson = httpPost(getProperty("post_url"), reqBody)
var isSuccess = respJson.code == 0 && respJson.data && respJson.data.data && respJson.data.data.length
if (isSuccess) {
	// 其他操作
}
isSuccess
? putToRel("SuccessRel", respJson)
: putToRel("failure", {"msg": context.getName() + "失败", "data": {"reqBody": reqBody, "respJson": respJson}})

Pro-Java upsert接口

POST #{papi_url}/ersoft-core-hr/spi/integration/upsert

var reqBody = {
    "model": "x_builder_xxx",
    "values": [{
        "id": getAttr("x_id"),
        "x_status": "1"
    }],
    "uniqueField": "id",
    "mode": "standard",
    "context": {"lang": "zh_CN"}
}
var respJson = httpPost(getProperty("post_url"), reqBody)
var isSuccess = respJson.code == 0

isSuccess
? putToRel("SuccessRel", event)
: putToRel("failure", {"msg": context.getName() + "失败", "data": {"reqBody": reqBody, "respJson": respJson}})

Pro-Python upsert接口

POST #{papi_url}/papi/nal/integration/model/upsert

var reqBody = {
    "model": "x_builder_xxx",
    "values": [{
        "id": getAttr("x_id"),
        "x_status": "1"
    }],
    "unique_field": "id",
    "standard_mode": true,
    "context": {"lang": "zh_CN"}
}
var respJson = httpPost(getProperty("post_url"), reqBody)
var isSuccess = respJson.code == 0

isSuccess
? putToRel("SuccessRel", event)
: putToRel("failure", {"msg": context.getName() + "失败", "data": {"reqBody": reqBody, "respJson": respJson}})

Pro-Python-批量打卡接口

var post_url = '#{papi_url}/papi/nal/attendance/data/batch_clock'
var reqBody = {
  "vals": event.datas.map(function(item) {
    return {
      "employee_id": item.employee_id, // 员工id
      "name": item.eventTime // 打卡时间,格式:yyyy-MM-dd hh:mm:ss
    }
  }).filter(function(item) {
    return item.employee_id
  }),
  "context": {"lang": "zh_CN"}
}

Pro-Java-批量打卡接口

#{ersoft_kratos_url}/ersoft-kratos/spi/attendance/punchSource/batchPunch
var reqBody = event.data.map(function(item) {
    return {
	"employeeNumber": item.employee_number, // 员工工号
        "punchDatetime": item.punchdatetime,// 打卡时间,格式:yyyy-MM-dd hh:mm:ss
        "userDevice": item.userdevice, // 设备标识
        "deviceCode": item.devicecode, // 设备编码,规则设置/高级设置/设备管理
	//"punchCategoryCode": "" // 打卡类型编码,实施助手/系统配置/打卡类型,不填存默认设备编码(PPCD000001),但是不能传空
    }
})

var respJson = httpPost(getProperty("post_url"), reqBody)
var isSuccess = respJson.code == 0 && respJson.data.total == respJson.data.success
if (isSuccess) {
	// 其他操作
}
isSuccess
? putToRel("SuccessRel", respJson)
: putToRel("failure", {"msg": context.getName() + "失败", "data": {"reqBody": reqBody, "respJson": respJson}})

Java-报表查询接口

POST #{ersoft_basic_url}/report/api/dataByWidget

原样输出:

var reqBody = { 
  "lang": "zh_CN",
  "paging": { "pageNo": 1, "pageSize": 3000 },
  "filters": [{
      "columnName": "X_BATCH_CODE",
      "filterType": "=",
      "values": [getAttr("x_batch_code")]
  }, {
      "columnName": "X_PAYROLL_PERIOD",
      "filterType": "=",
      "values": [getAttr("x_payroll_period")]
  }],
  "widgetId": getProperty("widgetId")
}

var respJson = httpPost(getProperty("post_url"), reqBody, {"header": {"user-id": 1}})
var isSuccess = respJson.data && respJson.data.length
if (isSuccess) {
    respJson.data = respJson.data.map(function(item) {
        var newItem = {}
        for(index in item) {
            var field = respJson.columnIndexList[index].name.toLowerCase()
            newItem[field] = item[index] === "null" ? null : item[index]
        }
        return newItem
    })
}

中文表头映射:

var reqBody = { 
  "lang": "zh_CN",
  "paging": { "pageNo": 1, "pageSize": 30000 },
  "filters": [{
      "columnName": "X_GJAHR",
      "filterType": "=",
      "values": [event.x_gjahr]
  }, {
      "columnName": "X_MONAT",
      "filterType": "=",
      "values": [event.x_monat]
  }],
  "widgetId": getProperty("widgetId")
}

var fieldsMapping = {
  "employee_name": "employee_name",
  "employee_no": "employee_number",
  "一级部门": "department_name1",
  "二级部门": "department_name2",
  "三级部门": "department_name3",
  "四级部门": "department_name4",
  "状态": "state"
}
var respJson = httpPost(getProperty("post_url"), reqBody, {"header": {"user-id": 1}})
var isSuccess = respJson.data && respJson.data.length
if (isSuccess) {
    event.datas = respJson.data.map(function(item) {
        var newItem = {}
        for(index in item) {
            var fieldCN = respJson.columnIndexList[index].name.toLowerCase()
            if (fieldsMapping[fieldCN] === undefined) continue
            newItem[fieldsMapping[fieldCN]] = item[index] === "null" ? null : item[index]
        }
        return newItem
    })
}

isSuccess
? putToRel("SuccessRel", event)
: putToRel("failure", {"msg": context.getName() + "失败", "data": {"reqBody": reqBody, "respJson": respJson}})

Pro-Java 获取附件base64接口

POST #{papi_url}/ersoft-core-hr/spi/file/getBaseByteByAttachement

var reqBody = {
	"fileUrl": ir_attachment_id
}
var respJson = httpPost(getProperty("pdfUrl"), reqBody, {"attributeRequest": false})
var isSuccess = respJson.code == 0
if (isSuccess) {
    event.pdf_attachment_base64 = respJson.data
}

isSuccess
? putToRel("SuccessRel", event)
: putToRel("failure", {"msg": context.getName() + "失败", "data": {"reqBody": reqBody, "respJson": respJson}})

Pro-Java 上传附件到OSS,并保存到附件接口

POST #{integration_url}/ersoft-integration/api/data-import/files/upload-base64

// integration_url: http://xjdprd-dataintegration-svc:20006
// 合同已完成,下载附件
if (event.success == 1 && event.status == 2) {
// 上传至OSS
var fileName = event.uuid + ".pdf"
var pdfUrl = "https://example.com/example.pdf"
var base64Obj = httpDownloadBase64Object(pdfUrl)
var reqBody = {
  "values": {
    "name": fileName,
    "datas": base64Obj.datas
  }
}
var respJson = httpPost(getProperty("post_oss_url"), reqBody, { "attributeRequest": "uploadToOss" })
var isSuccess = respJson.code == 0
if (isSuccess) {
    event.osdId = respJson.osdId
    // 写入附件表
    reqBody = {
      "model": "ir.attachment",
      "values": [{
        'type': 'minio',
        'minio_bucket': 'public',
        'name': fileName,
        'file_code': respJson.osdId,
        'mimetype': base64Obj.mimetype,
        'category_id': 8,
        // 'res_model': 'hr.contract',
        // 'res_id': item.id
      }],
      "uniqueField": "id",
      "mode": "standard",
      "context": { "lang": "zh_CN" }
    }
    respJson = httpPost(getProperty("post_upsert_url"), reqBody, { "attributeRequest": "upsertToIrAttachment" })
    isSuccess = respJson.code == 0
    if (isSuccess) {
        event.attachment_id = respJson.data.succeedList[0].id
    }
}

isSuccess
? putToRel("SuccessRel", event)
: putToRel("failure", {"code": 1, "msg": context.getName() + "失败", "data": {"reqBody": reqBody, "respJson": respJson}})
} else {
    putToRel("SuccessRel", event)
}

如需转载,请注明出处: https://chadou.me/p/261

最新发布