diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/client/DtFeignClient.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/client/DtFeignClient.java new file mode 100644 index 0000000..7f73e7e --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/client/DtFeignClient.java @@ -0,0 +1,144 @@ +package com.chinaunicom.mall.ebtp.common.dt.client; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.constant.ServiceNameConstants; +import com.chinaunicom.mall.ebtp.common.dt.entity.*; +import com.chinaunicom.mall.ebtp.common.dt.fallback.DtFeignClientFallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + + +@FeignClient(name = ServiceNameConstants.EXTEND_SERVICE, fallback = DtFeignClientFallback.class) +public interface DtFeignClient { + + /** + * 获取Token接口 - 下面几个接口默认都会调用这个,这里只是做冗余 + 返回: + { + "code":0, + "message":"", + "success": true, + "data":{ + "effectiveTime":1440, + "token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtZG0iLCJpZCI6MjAxMTUsImlhdCI6MTc1MDM4MzYzMCwiZXhwIjoxNzUwNDcwMDMwfQ.4zFuXnls2GdBVk8ApBlkQ9wHnhyr0Huqe9rF67sFcsg" + } + } + 返回头header: + text/plain;charset=UTF-8 + * @return token信息 + */ + @PostMapping("/dt/api/token") + BaseResponse getToken(); + + + /** + * 客户数据单条维护接口 + * POST /mdm/maintain + 参数: + { + "masterDataCode": "ods_custsup_customer_vendor_info", + "opType": "C", + "updateColumns": { + "sourceId": "20001DERJ291", + "sourceStatus": "1", + "sourceCompany": "9999100300", + "sourceSystem": "XT20210873086", + "code": "30911103027886014929", + "name": "联通数字科技有限公司", + "nameLanguage": "ZH", + "localName": "联通数字科技有限公司", + "nature": "20", + "country": "CN", + "certificateType": "10", + "certificateId": "911103027886014929", + "organizationType": "30", + "createdDate": "2025-06-18 16:47:21", + "lastModifiedUser": "IRIS4", + "lastModifiedDate": "2025-06-18 16:47:21" + } + } + 返回: + { + "code":0, + "message":"操作成功", + "success": true, + "data":{ + "sourceID":"20001DERJ291", + "sapCode":"1000284811" + } + } + * @param request 维护请求体 + * @return 维护结果 + */ + @PostMapping("/dt/api/maintain") + BaseResponse maintain(@RequestBody DtMaintainRequest request); + + /** + * 客商主数据查询匹配接口 + 返回: + { + "code":0, + "message":"操作成功", + "success":true, + "data":{ + "pageCount":1, + "primaryColumn":"unique_code_id", + "total":2, + "pageIndex":1, + "structureType":"0", + "pageSize":10, + "rows":[{ + "sysVersion":"1", + "country":"CN", + "code":"CN1091210102667153558C30", + "nature":"11", + "hisId":"35198509", + "sysModifyStaffId":"999999", + "certificateId":"91210102667153558C", + "busStatus":"1", + "updateTime":"2024-07-15 08:58:40", + "modifyStaffName":"", + "nameLanguage":"ZH", + "complianceType":"0", + "organizationType":"30", + "uniqueCodeId":"c992c5ab761b40a47ef0806412bf7ba6", + "localName":"联通数字科技有限公司辽宁省分公司", + "sapCode":"1000277393", + "sysStatus":"1", + "validName":"联通数字科技辽宁", + "name":"联通数字科技有限公司辽宁省分公司", + "sysIsCurrentVersion":"1", + "certificateType":"10" + },{ + "sysVersion":"1", + "country":"CN", + "code":"CN1091110302788601492930", + "nature":"11", + "hisId":"35662315", + "sysModifyStaffId":"999999", + "certificateId":"911103027886014929", + "busStatus":"1", + "updateTime":"2024-07-15 08:58:40", + "modifyStaffName":"", + "nameLanguage":"ZH", + "complianceType":"0", + "organizationType":"30", + "uniqueCodeId":"a147603eaba75cd7876c22e239e2994b", + "localName":"联通数字科技有限公司", + "sapCode":"1000284811", + "sysStatus":"1", + "validName":"联通数字科技", + "name":"联通数字科技有限公司", + "sysIsCurrentVersion":"1", + "certificateType":"10" + }], + "sql":"" + } + } + * @param request 查询请求体 + * @return 查询结果 + */ + @PostMapping("/dt/api/queryMdmAll") + BaseResponse queryMdmAll(@RequestBody DtQueryMdmAllRequest request); +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtMaintainRequest.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtMaintainRequest.java new file mode 100644 index 0000000..9c4734c --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtMaintainRequest.java @@ -0,0 +1,49 @@ +package com.chinaunicom.mall.ebtp.common.dt.entity; + +import com.chinaunicom.mall.ebtp.common.dt.entity.maintain.Primary; +import com.chinaunicom.mall.ebtp.common.dt.entity.maintain.Update; +import lombok.Data; + +/** + * 若opType为C 或 S,不传primaryColumns + * 参数说明: + * masterDataCode 主数据模型编码(ods_custsup_customer_vendor_info) 必填 + * opType 操作类型,C新增、U更新、D停用(冻结)、E启用(解除冻结)、S保存、K校验 必填 + * updateColumns 该项为必须项,请按主数据标准要求填写(校验通过后返回集团SAPcode) 必填 + * 示例: + * { + * "masterDataCode": "ods_custsup_customer_vendor_info", + * "opType": "S", + * "updateColumns": { + * "name": "大连中远海运油品运输公司", + * "country": "CN" + * } + * } + */ +@Data +public class DtMaintainRequest { + /** + * 主数据模型编码(ods_custsup_customer_vendor_info) + * 必填 + */ + private String masterDataCode; + /** + * 操作类型 + * 必填 + * C 新增 + * U 更新 + * D 停用(冻结) + * E 启用(解除冻结) + * S 保存(用于不便区分操作类型的业务场景) + * K 校验(进行合规校验和标准校验,不正式写入) + */ + private String opType; + /** + * 更新字段 + * 必填 + * 该项为必须项,请按主数据标准要求填写。(校验通过后返回集团SAPcode。) + */ + private Update updateColumns; + + private Primary primaryColumns; +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtMaintainRespone.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtMaintainRespone.java new file mode 100644 index 0000000..c975c94 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtMaintainRespone.java @@ -0,0 +1,27 @@ +package com.chinaunicom.mall.ebtp.common.dt.entity; + +import lombok.Data; + +/** + * resultCode + * int + * 返回编码 + * 0成功 + * -1 失败 + * resultMsg + * String + * 返回结果说明 + * 成功返回:"SUCCESS" + * 失败返回:失败或出错原因。 + * sapCode + * String + * 返回编码 + * sourceID + * String + * 返回编码 + */ +@Data +public class DtMaintainRespone { + private String sapCode; + private String sourceID; +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtQueryMdmAllRequest.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtQueryMdmAllRequest.java new file mode 100644 index 0000000..c0d8a1e --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtQueryMdmAllRequest.java @@ -0,0 +1,50 @@ +package com.chinaunicom.mall.ebtp.common.dt.entity; + +import lombok.Data; + +import java.util.List; + +/** + * 客商主数据查询匹配接口请求体 + */ +@Data +public class DtQueryMdmAllRequest { + /** + * 主数据模型编码(customer_vendor_info) + */ + private String masterDataCode; + + /** + * 查询条件(支持多条件组合) + */ + private List queryColumns; + + /** + * 页码,默认从1开始 + */ + private Integer pageIndex; + + /** + * 每页大小,默认10条,不得超过25条 + */ + private Integer pageSize; + + + @Data + public static class QueryColumn { + /** + * 字段编码,如name、localName、certificateType、certificateId、sapCode + */ + private String columnCode; + /** + * 字段值 + */ + private String columnValue; + /** + * 匹配类型(1:精确匹配 2:模糊匹配) + */ + private Integer matchingType; + + } + +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtQueryMdmAllResponse.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtQueryMdmAllResponse.java new file mode 100644 index 0000000..46b55d9 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtQueryMdmAllResponse.java @@ -0,0 +1,74 @@ +package com.chinaunicom.mall.ebtp.common.dt.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 客商主数据查询匹配接口响应体 + */ +@Data +public class DtQueryMdmAllResponse { + /** + * 总条数 + */ + private Integer total; + /** + * 当前页码 + */ + private Integer pageIndex; + /** + * 每页大小 + */ + private Integer pageSize; + /** + * 总页数 + */ + private Integer pageCount; + /** + * 主键字段名 + */ + private String primaryColumn; + /** + * 结构类型 + */ + private String structureType; + /** + * 数据行 + */ + private List rows; + /** + * SQL语句 + */ + private String sql; + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class Row { + private String sysVersion; + private String country; + private String code; + private String nature; + private String hisId; + private String sysModifyStaffId; + private String certificateId; + private String busStatus; + private String updateTime; + private String modifyStaffName; + private String nameLanguage; + private String complianceType; + private String organizationType; + private String uniqueCodeId; + private String localName; + private String sapCode; + private String sysStatus; + private String validName; + private String name; + private String sysIsCurrentVersion; + private String certificateType; + } + +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtTokenResponse.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtTokenResponse.java new file mode 100644 index 0000000..f492aa9 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/DtTokenResponse.java @@ -0,0 +1,12 @@ +package com.chinaunicom.mall.ebtp.common.dt.entity; + +import lombok.Data; + +/** + {"resultCode":"0","resultMsg":"校验通过","resultObject":{"effectiveTime":1440,"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtZG0iLCJpZCI6MjAxMTUsImlhdCI6MTc1MDM4MzYzMCwiZXhwIjoxNzUwNDcwMDMwfQ.4zFuXnls2GdBVk8ApBlkQ9wHnhyr0Huqe9rF67sFcsg"}} + */ +@Data +public class DtTokenResponse { + private String token; + private Integer effectiveTime;// token有效时常,单位分钟 +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/maintain/Primary.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/maintain/Primary.java new file mode 100644 index 0000000..ab81bbb --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/maintain/Primary.java @@ -0,0 +1,9 @@ +package com.chinaunicom.mall.ebtp.common.dt.entity.maintain; + +import lombok.Data; + +@Data +public class Primary { + private String sourceId; + private String sourceCompany; +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/maintain/Update.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/maintain/Update.java new file mode 100644 index 0000000..e1f0d87 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/entity/maintain/Update.java @@ -0,0 +1,164 @@ +package com.chinaunicom.mall.ebtp.common.dt.entity.maintain; + +import lombok.Data; + +@Data +public class Update { + /** + * 客商业务编码,客户唯一识别码 + * 1. 境内:客商组织类型+统一社会信用编码 + * 2. 境外:客商组织类型+国家编码+增值税号VAT/TIN + * 3. 境内个人:客商组织类型+身份证号码 + * 4. 境外个人:客商组织类型+姓名+护照号码 + * 5. 集团内部门客商:客商组织类型+组织编码 + * 6. 集团个人供应商:客商组织类型+身份证号码 + * 7. 其他客户:客商组织类型+二级单位编码+6位流水码 + * 8. 临时/专用/功能性客商:客商组织类型+名称 + * 该字段可等同为客商主数据主键(真正主键为该值MD5加密形成)。 + * 建议二级公司按该字段建立与客商主数据的映射关系。 + * varchar(100) 必填 + */ + private String code; + + /** + * 来源系统客户标识id,来源系统客商标识(二级公司该数据的唯一标识,可为客户/供应商编码或主键) + * 该字段可等同为租户客商管理系统的主键。 + * 租户数据的更新、停用、启用根据该字段操作。 + * varchar(50) 必填 + */ + private String sourceId; + + /** + * 客商名称 + * 1. 境内企业:维护中文,全称须与工商注册或企业发文上的名称保持一致 + * 2. 境外企业:需填英文名称,遵守首字母大写、单词间一个空格、无缩写、无特殊字符 + * 3. 英文名称需在本地语言名称中维护中文信息 + * varchar(255) 必填 + */ + private String name; + + /** + * 客商本国语言代码(多语言),境内企业为中文,境外企业默认为英文,非英文需按标准填写 + * 参照维表字典值CUST001代码填写 + * varchar(2) 能填尽填 + */ + private String nameLanguage; + + /** + * 客商本国语言名称,根据当地证件上的标准名称填写,官方注册名称 + * 对于境内的客商,维护中文简体,全称须与工商注册或企业发文上的名称保持一致 + * varchar(255) 能填尽填 + */ + private String localName; + + /** + * 客商属性,客户、供应商、客户+供应商、贷款人等 + * 参照维表字典值CUST002代码填写 + * varchar(2) 必填 + */ + private String nature; + + /** + * 客商归属国家或地区 + * 参照维表字典值CUST003代码填写 + * varchar(3) 必填 + */ + private String country; + + /** + * 证件类型,营业执照、身份证、增值税号VAT、纳税人识别号、护照等 + * 参照维表字典值CUST004代码填写 + * varchar(2) 必填 + */ + private String certificateType; + + /** + * 证件号码 + * 1. 境内企业:统一社会信用代码 + * 2. 境内自然人:身份证号 + * 3. 境外企业:VAT/TIN号/UEN/商业登记证/企业注册码 + * 4. 境外自然人:护照号码 + * 5. 集团内部门客商:组织编码 + * 6. 集团内个人客商:身份证号 + * 7. 其他:按实际填写 + * varchar(20) 境内必填 + */ + private String certificateId; + + /** + * 客商组织类型,集团内客商、集团联营客商、第三方客商等 + * 参照维表字典值CUST005代码填写 + * varchar(2) 必填 + */ + private String organizationType; + + /** + * 集团北京SAP系统编码,SAP 客户编码,用于内部财务处理 + * varchar(50) 能填尽填 + */ + private String sapCode; + + /** + * 数据来源二级公司,填写数据来源二级公司编码,如:9999200000 + * 参照维表字典值CUST007代码填写 + * varchar(255) 必填 + */ + private String sourceCompany; + + /** + * 数据来源系统,填写来源系统的系统编码,如:XT20210864425 + * 参照维表字典值CUST008代码填写 + * varchar(13) 必填 + */ + private String sourceSystem; + + /** + * 二级公司状态,正常、冻结、风险 + * 参照维表字典值CUST006代码填写 + * varchar(2) 必填 + */ + private String sourceStatus; + + /** + * 创建时间,传输来源系统记录的数据创建时间,格式为YYYY-MM-DD HH:MI:SS + * 必填 + */ + private String createdDate; + + /** + * 最后的更新人员,传输来源系统记录的最后的更新人员,若无,可传输主数据对接人 + * varchar(30) 必填 + */ + private String lastModifiedUser; + + /** + * 最后的更新时间,传输来源系统记录的最后的更新时间,格式为YYYY-MM-DD HH:MI:SS + * 必填 + */ + private String lastModifiedDate; + + /** + * 数据来源二级公司SAP系统客商编码 + * varchar(30) 能填尽填 + */ + private String sourceCompanySapCode; + + /** + * 客商生效时间,主要用于客商组织类型发生变更时,新客商的业务生效时间,格式为YYYY-MM-DD + * 非必填 + */ + private String effectiveDate; + + /** + * 客商失效时间,主要用于客商组织类型发生变更时,旧客商的业务失效时间,默认为30001231,格式为YYYY-MM-DD + * 非必填 + */ + private String endDate; + + /** + * 操作符:C 新增、U 更新、D 停用(冻结)、E 启用(解除冻结)、S 保存、K(校验) + * 参照维表字典值CUST009代码填写 + * varchar(1) 必填 + */ + private String opTypeMdm; +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/fallback/DtFeignClientFallback.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/fallback/DtFeignClientFallback.java new file mode 100644 index 0000000..30581fd --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/dt/fallback/DtFeignClientFallback.java @@ -0,0 +1,48 @@ +package com.chinaunicom.mall.ebtp.common.dt.fallback; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.dt.client.DtFeignClient; +import com.chinaunicom.mall.ebtp.common.dt.entity.*; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Collections; + + +@Component +public class DtFeignClientFallback implements DtFeignClient { + + @Override + public BaseResponse getToken() { + DtTokenResponse dtTokenResponse = new DtTokenResponse(); + dtTokenResponse.setToken("eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtZG0iLCJpZCI6MjAxMTUsImlhdCI6MTc1MDM4MzYzMCwiZXhwIjoxNzUwNDcwMDMwfQ.4zFuXnls2GdBVk8ApBlkQ9wHnhyr0Huqe9rF67sFcsg"); + dtTokenResponse.setEffectiveTime(1440); + return BaseResponse.success(dtTokenResponse); + } + + @Override + public BaseResponse maintain(DtMaintainRequest request) { + DtMaintainRespone response = new DtMaintainRespone(); + response.setSapCode("1000284811"); + response.setSourceID("20001DERJ291"); + return BaseResponse.success(response); + } + + @Override + public BaseResponse queryMdmAll(DtQueryMdmAllRequest request) { + DtQueryMdmAllResponse response = new DtQueryMdmAllResponse(); + response.setPageCount(1); + response.setPageIndex(1); + response.setPageSize(10); + response.setPrimaryColumn("unique_code_id"); + response.setTotal(2); + response.setStructureType("0"); + response.setSql(""); + response.setRows(Collections.singletonList( + // {"sysVersion":"1","country":"CN","code":"CN1091210102667153558C30","nature":"11","hisId":"35198509","sysModifyStaffId":"999999","certificateId":"91210102667153558C","busStatus":"1","updateTime":"2024-07-15 08:58:40","modifyStaffName":"","nameLanguage":"ZH","complianceType":"0","organizationType":"30","uniqueCodeId":"c992c5ab761b40a47ef0806412bf7ba6","localName":"联通数字科技有限公司辽宁省分公司","sapCode":"1000277393","sysStatus":"1","validName":"联通数字科技辽宁","name":"联通数字科技有限公司辽宁省分公司","sysIsCurrentVersion":"1","certificateType":"10"},{"sysVersion":"1","country":"CN","code":"CN1091110302788601492930","nature":"11","hisId":"35662315","sysModifyStaffId":"999999","certificateId":"911103027886014929","busStatus":"1","updateTime":"2024-07-15 08:58:40","modifyStaffName":"","nameLanguage":"ZH","complianceType":"0","organizationType":"30","uniqueCodeId":"a147603eaba75cd7876c22e239e2994b","localName":"联通数字科技有限公司","sapCode":"1000284811","sysStatus":"1","validName":"联通数字科技","name":"联通数字科技有限公司","sysIsCurrentVersion":"1","certificateType":"10"} + new DtQueryMdmAllResponse.Row("1", "cn", "CN1091210102667153558C30", "11", "35198509", "999999", "91210102667153558C", "1", "2024-07-15 08:58:40", "", "ZH", "0", "30", "c992c5ab761b40a47ef0806412bf7ba6", "联通数字科技有限公司辽宁省分公司", "1000277393", "1", "联通数字科技辽宁", "联通数字科技有限公司辽宁省分公司", "1", "10") + )); + return BaseResponse.success(response); + + } +} \ No newline at end of file diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/client/IoaFeignClient.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/client/IoaFeignClient.java new file mode 100644 index 0000000..507df06 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/client/IoaFeignClient.java @@ -0,0 +1,24 @@ +package com.chinaunicom.mall.ebtp.common.ioa.client; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.constant.ServiceNameConstants; +import com.chinaunicom.mall.ebtp.common.ioa.entity.Flow; +import com.chinaunicom.mall.ebtp.common.ioa.fallback.IoaFeignClientFallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +@FeignClient(name = ServiceNameConstants.EXTEND_SERVICE, fallback = IoaFeignClientFallback.class) +public interface IoaFeignClient { + + @PostMapping("/ioa/task/create") + BaseResponse createTask(@RequestBody Flow flow); + + @PostMapping("/ioa/task/update") + BaseResponse updateTask(@RequestBody List bizTaskIds); + + @PostMapping("/ioa/task/delete") + BaseResponse deleteTask(@RequestBody List bizTaskIds); +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/entity/Flow.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/entity/Flow.java new file mode 100644 index 0000000..d757888 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/entity/Flow.java @@ -0,0 +1,38 @@ +package com.chinaunicom.mall.ebtp.common.ioa.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class Flow { + /** + * 流程ID (不传就是雪花ID) + */ + private String flowId; + /** + * 流程名称 (不传就是雪花ID) + */ + private String flowName; + /** + * 业务流程实例 id,流程实例在业务系统的唯一标识号 (不传就是雪花ID) + */ + private String bizInstanceId; + /** + * 创建时间,时间戳 (不传就是当前系统时间) + */ + private Long createDate; + /** + * 创建人姓名 + */ + private String creatorName; + /** + * 创建人id + */ + private String creatorId; + /** + * 待办待阅数据集合,最多100 + */ + private List tasks; + +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/entity/Task.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/entity/Task.java new file mode 100644 index 0000000..4df8ded --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/entity/Task.java @@ -0,0 +1,46 @@ +package com.chinaunicom.mall.ebtp.common.ioa.entity; + +import lombok.Data; + +import java.util.Map; + +@Data +public class Task { + /** + * 业务待办id,待办待阅在业务系统的唯一标识 id + */ + private String bizTaskId; + /** + * 工单号,工单在业务系统的唯一标识 + */ + private String workNum; + /** + * 单据类型,0:待办,1:待阅 + */ + private Integer taskType; + /** + * 业务类型 + */ + private String businessMode; + /** + * 当前处理人的用户ID + */ + private String handler; + /** + * 业务系统提供工单处理页面的Url + */ + private String formUrl; + /** + * 工单标题 + */ + private String title; + /** + * 优先级别,0:低,1:中,2:高 + */ + private Integer priority; + /** + * 扩展信息JSON,最多50个元素,键[a-z]{1,30},值<100字符 + */ + private Map ext; + +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/fallback/IoaFeignClientFallback.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/fallback/IoaFeignClientFallback.java new file mode 100644 index 0000000..77e4d87 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/ioa/fallback/IoaFeignClientFallback.java @@ -0,0 +1,30 @@ +package com.chinaunicom.mall.ebtp.common.ioa.fallback; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.ioa.client.IoaFeignClient; +import com.chinaunicom.mall.ebtp.common.ioa.entity.Flow; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class IoaFeignClientFallback implements IoaFeignClient { + + @Override + public BaseResponse createTask(Flow flow) { + String[] mockResponse = new String[]{"1935498644363452416"}; + return BaseResponse.success(mockResponse); + } + + @Override + public BaseResponse updateTask(List bizTaskIds) { + String[] mockResponse = new String[]{"1935498644363452416"}; + return BaseResponse.success(mockResponse); + } + + @Override + public BaseResponse deleteTask(List bizTaskIds) { + String[] mockResponse = new String[]{"1935498644363452416"}; + return BaseResponse.success(mockResponse); + } +} \ No newline at end of file