123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package com.malk.service.xbongbong.impl;
- import cn.hutool.core.util.ObjectUtil;
- import com.alibaba.fastjson.JSON;
- import com.malk.server.common.McR;
- import com.malk.server.common.VenR;
- import com.malk.server.xbongbong.DigestUtil;
- import com.malk.server.xbongbong.XBBConf;
- import com.malk.server.xbongbong.XBBR;
- import com.malk.service.xbongbong.XBBClient;
- import com.malk.utils.UtilMap;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.validation.constraints.NotNull;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Map;
- @Slf4j
- @Service
- public class XBBImplClient implements XBBClient {
- @Autowired
- private XBBConf xbbConf;
- // 获取签名 [字符]
- public static String getDataSign(Map data, String token) {
- return getDataSign(JSON.toJSONString(data), token);
- }
- // 获取签名 [字典]
- public static String getDataSign(String data, String token) {
- return DigestUtil.Encrypt(data + token, "SHA-256");
- }
- // 获取请求签名: string/map
- public Map getHeaderSign(Object param) {
- String sign = null;
- if (param instanceof String) {
- sign = getDataSign((String) param, xbbConf.getToken());
- } else {
- sign = getDataSign((Map) param, xbbConf.getToken());
- }
- Map header = UtilMap.map("sign", sign);
- return header;
- }
- /**
- * 表单模板列表接口
- *
- * @apiNote https://profapi.xbongbong.com/#/apilist/177
- */
- @Override
- public List<Map> getFormList(String name, @NotNull int saasMark, int businessType) {
- Map body = UtilMap.map("name, saasMark, businessType, corpid, userId", name, saasMark, businessType, xbbConf.getCorpid(), xbbConf.getUserId());
- XBBR xbbr = (XBBR) XBBR.doPost("https://proapi.xbongbong.com/pro/v2/api/form/list", getHeaderSign(body), null, body, VenR.RC_XBB);
- Map<String, List<Map>> rsp = (Map<String, List<Map>>) xbbr.getResult();
- return rsp.get("formList");
- }
- /**
- * 表单模板列表接口
- *
- * @apiNote https://profapi.xbongbong.com/#/apilist/178
- */
- @Override
- public List<Map> getFormDefine(long formId, int subBusinessType) {
- Map body = UtilMap.map("formId, subBusinessType, corpid, userId", formId, subBusinessType, xbbConf.getCorpid(), xbbConf.getUserId());
- XBBR xbbr = (XBBR) XBBR.doPost("https://proapi.xbongbong.com/pro/v2/api/form/get", getHeaderSign(body), null, body, VenR.RC_XBB);
- Map<String, List<Map>> rsp = (Map<String, List<Map>>) xbbr.getResult();
- return rsp.get("explainList");
- }
- /**
- * 表单列表接口
- *
- * @apiNote https://profapi.xbongbong.com/#/apilist/181
- */
- @Override
- public Map getDataResult(String url, @NotNull long formId, List<Map> conditions, Map extInfo) {
- Map body = UtilMap.map("formId, conditions, corpid, userId", formId, conditions, xbbConf.getCorpid(), xbbConf.getUserId());
- if (ObjectUtil.isNotNull(extInfo)) {
- body.putAll(extInfo);
- } else {
- body.put("pageSize", 100);
- }
- XBBR xbbr = (XBBR) XBBR.doPost(url, getHeaderSign(body), null, body, VenR.RC_XBB);
- return (Map) xbbr.getResult();
- }
- /**
- * 表单列表接口 [返回list]
- */
- @Override
- public List<Map> getDataList(String url, @NotNull long formId, List<Map> conditions, Map extInfo) {
- return (List<Map>) getDataResult(url, formId, conditions, extInfo).get("list");
- }
- /// 获取表单以及表单定义, 查询与数据处理, 获取后可在程序内固定, 避免无效调用
- @Override
- public List<Map> testDefine(String name, @NotNull int saasMark, int businessType) {
- List<Map> rsp = this.getFormList(name, saasMark, businessType);
- long formId = UtilMap.getLong(rsp.get(0), "formId");
- return this.getFormDefine(formId, businessType); // 表单定义
- }
- @Override
- public Map workOrderComplete(Long workOrderId) {
- Map body = UtilMap.map("workOrderId, corpid, userId", workOrderId, xbbConf.getCorpid(), xbbConf.getUserId());
- XBBR xbbr = (XBBR) XBBR.doPost("https://proapi.xbongbong.com/pro/v2/api/workOrder/complete", getHeaderSign(body), null, body, VenR.RC_XBB);
- return (Map) xbbr.getResult();
- }
- @Override
- public Map getWorkOrderInfo(String workOrderSerierNO) {
- // 构建查询条件(根据接口要求,value需要是集合类型)
- List<Map<String, Object>> conditions = new ArrayList<>();
- conditions.add(UtilMap.map(
- "attr, symbol, value",
- "serialNo",
- "equal",
- Collections.singletonList(workOrderSerierNO) // 修正为Java集合初始化
- ));
- Map body = UtilMap.map("conditions, formId, corpid, userId", conditions, 5798, xbbConf.getCorpid(), xbbConf.getUserId());
- XBBR xbbr = (XBBR) XBBR.doPost("https://proapi.xbongbong.com/pro/v2/api/workOrder/list", getHeaderSign(body), null, body, VenR.RC_XBB);
- return (Map) xbbr.getResult();
- }
- }
|