跳到主要内容

POST 新建服务工单

POST 新建售后服务工单。body 为 JSON:必填 title(工单标题)、type(工单类型名称,须为启用中的类型);正式建单(asDraft 不传或 false)还必填 customerId(服务客户ID)、usageLocation(产品使用地)、contactPhone(联系电话)、serviceAddress(服务地点)、faultDescription(客户问题或服务诉求)、serviceMode(服务方式:远程支持/上门服务/客户自处理指导/备件寄送/定期巡检)、serviceScopeLines(服务项目数组,至少1行,每行必填 name 名称、qty 数量>0、unit 单位;可选 disposition 费用判定 PENDING/IN_CONTRACT/IN_WARRANTY/EXTRA_CHARGE、basis 判定依据、unitPrice 额外收费单价、description);可选 asDraft(true 存为「待提交」草稿,此时只需 title/type)、urgency(紧急/高/中/低,默认中)、customerName、contactPerson、primarySourceType(SALES_ORDER/SALES_CONTRACT/SERVICE_CONTRACT/PROJECT/CUSTOMER_ONLY)与 primarySourceId/primarySourceNo(非 CUSTOMER_ONLY 时需指定来源单据)、acceptanceChannel、salesOrderId/contractId/projectId、symptom、impact、expectedTime(客户期望时间)、serviceLiability(free/quote/pending)、items(设备明细:productName、productModel、sn、qty、unit)、attachments、customFields(自定义字段,key=fieldName)。建成后状态为「待受理」(草稿为「待提交」),单号由服务端生成。

接口编码所需范围后端接口
sales.service-order.createsales:writePOST /v1/service-orders/create(comap-sales)

必填字段

字段依据
title参数说明、接口规格
type参数说明、接口规格
customerId参数说明
usageLocation参数说明、接口规格
contactPhone参数说明
serviceAddress参数说明
faultDescription参数说明
serviceMode参数说明
serviceScopeLines参数说明
serviceScopeLines[].name参数说明、接口规格
serviceScopeLines[].qty参数说明
serviceScopeLines[].unit参数说明
items[].productName接口规格
attachments[].fileId接口规格

条件必填(如「某状态时必填」)不在此表,以上方参数说明为准。 判定规则见必填字段的判定。

请求体字段(body)

字段类型必填说明
titlestring是工单标题
typestring是工单类型名称,取值来自启用中的 t_service_order_type.name
sourcestring—报修来源:客户来电/客户门户/内部创建/销售订单/项目/邮件
urgencystring—紧急程度:紧急/高/中/低,留空默认「中」
isShutdowninteger(int32)—是否停机:0否 1是
customerIdinteger(int64)—客户ID
customerNamestring—客户名称快照。后端不反查回填 —— 前端从客户选择器带出,留空则列表页客户列为空且搜不到
primarySourceTypestring—主要关联来源类型:SALES_ORDER/SALES_CONTRACT/SERVICE_CONTRACT/PROJECT/CUSTOMER_ONLY
primarySourceIdinteger(int64)—主要关联来源ID
primarySourceNostring—主要关联来源单号
primarySourceStorageTypestring—主要关联来源存储类型
acceptanceChannelstring—受理渠道
serviceCustomerIdinteger(int64)—服务客户ID(Q2 三类客户一致,前端三字段填同值)
serviceCustomerNamestring—服务客户名称
contractCustomerIdinteger(int64)—合同客户ID
contractCustomerNamestring—合同客户名称
settlementCustomerIdinteger(int64)—结算客户ID
settlementCustomerNamestring—结算客户名称
contactPersonstring—联系人
contactPhonestring—联系电话
serviceAddressstring—服务地址
usageLocationstring是产品使用地
usageLocationCorrectedinteger(int32)—使用地是否由现场提交人纠正:0否 1是
repairTicketIdinteger(int64)—来源报修单ID;从报修池转单时传入
productNamestring—主产品名称;多产品时取 items 第一条
productModelstring—主产品型号
snstring—主产品SN
salesOrderIdinteger(int64)—关联销售订单ID
salesOrderNostring—关联销售订单号
contractIdinteger(int64)—关联合同ID
contractNostring—关联合同号
projectIdinteger(int64)—关联项目ID
projectNamestring—关联项目名称
faultDescriptionstring—问题描述 / 服务内容
symptomstring—故障现象
impactstring—影响范围
expectedTimestring(date-time)—客户期望时间
serviceModestring—服务方式:远程支持/上门服务/客户自处理指导/备件寄送/定期巡检
needAppointmentinteger(int32)—是否需要预约:0否 1是
submittedDevicestring—提交渠道设备,如 移动端·iOS / Web
isChargeableinteger(int32)—是否有偿服务:0否 1是
serviceLiabilitystring—服务责任:free免费服务 / quote需要报价 / pending待人工判定
warrantyStatusstring—手填质保状态:质保内/已过保/未配置质保/需人工判断(仅自动匹配不到时生效)
warrantyStartstring(date-time)—手填质保起始日期(仅自动匹配不到时生效)
warrantyEndstring(date-time)—手填质保截止日期(仅自动匹配不到时生效)
warrantyCardIdinteger(int64)—手填/选定的质保卡ID(一般手填场景为空)
asDraftboolean—是否存为草稿:true 建成待提交,缺省建成待受理
items17ServiceOrderItemDTO[]—涉及产品明细
serviceScopeLines10ServiceOrderServiceLineDTO[]—服务项目(服务/收费行)
attachments6ServiceAttachmentDTO[]—建单附件
customFieldsobject—自定义字段值,key=fieldName

「必填」仅反映接口规格声明的部分。服务内还有未体现在规格里的校验, 标「—」不等于可以不传;租户在主站配置的字段必填不约束本接口。 详见必填字段的判定与字段清单与自定义字段。

请求示例

curl -X POST https://open.risemap.cn/v1/api/invoke \
-H "Authorization: Bearer <访问令牌>" \
-H "Content-Type: application/json" \
-d '{
"apiCode": "sales.service-order.create",
"body": {
"title": "string",
"type": "string",
"usageLocation": "string"
}
}'

响应 data 字段

字段类型必填说明
idinteger(int64)—工单ID
orderNostring—工单编号
titlestring—工单标题
typestring—工单类型
sourcestring—报修来源
primarySourceTypestring—主要关联来源类型
primarySourceNostring—主要关联来源单号
statusstring—工单状态(原始值)
canonicalStatusstring—归一后的规范状态
derivedViewstring—派生视图码:appointment(待预约),其余为空
urgencystring—紧急程度
isShutdowninteger(int32)—是否停机:0否 1是
customerIdinteger(int64)—客户ID
customerNamestring—客户名称
contactPersonstring—联系人
contactPhonestring—联系电话
usageLocationstring—产品使用地
usageLocationCorrectedinteger(int32)—使用地是否由现场提交人纠正:0否 1是
repairTicketIdinteger(int64)—来源报修单ID
repairTicketNostring—来源报修单号
productNamestring—主产品名称
productModelstring—主产品型号
snstring—主产品SN
warrantyStatusstring—质保状态:质保内/已过保/未配置质保/需人工判断
assigneeIdinteger(int64)—负责工程师ID
assigneestring—负责工程师姓名
deptstring—所属服务团队
serviceModestring—服务方式
needAppointmentinteger(int32)—是否需要预约:0否 1是
planStartstring(date-time)—计划上门时间
isOvertimeinteger(int32)—是否超时:0否 1是
slaDeadlineAtstring(date-time)—响应截止时间
slaPausedAtstring(date-time)—当前暂停开始时间
slaBreachedAtstring(date-time)—实际超时时间点
responseMinsinteger(int32)—响应时长(分钟)
mergedIntoIdinteger(int64)—被合并到的目标工单ID
splitFromIdinteger(int64)—拆分来源父工单ID
isChargeableinteger(int32)—是否有偿服务:0否 1是
serviceLiabilitystring—服务责任:free免费服务 / quote需要报价 / pending待人工判定
chargeStatusstring—商业状态
partRequestCountinteger(int32)—关联备件申请数量
unreconciledPartQtynumber—备件未闭环数量合计
confirmStatusstring—客户确认状态
createdBystring—创建人
createTimestring(date-time)—创建时间
customFieldsobject—自定义字段值,key 为字段名;无读权限的字段不会出现
serviceAddressstring—服务地址
salesOrderIdinteger(int64)—关联销售订单ID
salesOrderNostring—关联销售订单号
contractIdinteger(int64)—关联合同ID
contractNostring—关联合同号
projectIdinteger(int64)—关联项目ID
projectNamestring—关联项目名称
warrantyStartstring(date-time)—质保起始(快照)
warrantyEndstring(date-time)—质保截止(快照)
warrantyCardIdinteger(int64)—主质保卡ID
warrantyCardIdsstring—全部匹配到的质保卡ID,逗号分隔
faultDescriptionstring—问题描述 / 服务内容
symptomstring—故障现象
impactstring—影响范围
expectedTimestring(date-time)—客户期望时间
planEndstring(date-time)—预计结束时间
handleHoursnumber—处理时长(小时)
submittedDevicestring—提交渠道设备
rejectReasonstring—驳回/拒单原因
slaLevelstring—SLA 等级
slaTotalPausedMinsinteger(int32)—累计暂停分钟数
slaPauseReasonstring—暂停原因
splitNotestring—拆分说明
mergedFromIdsinteger(int64)[]—合并进来的源工单ID列表
childIdsinteger(int64)[]—拆分出的子工单ID列表
items30ServiceOrderItemVO[]—涉及产品明细
primarySourceIdinteger(int64)—主要关联来源ID
primarySourceStorageTypestring—主要关联来源存储类型
acceptanceChannelstring—受理渠道
serviceCustomerIdinteger(int64)—服务客户ID
serviceCustomerNamestring—服务客户名称
contractCustomerIdinteger(int64)—合同客户ID
contractCustomerNamestring—合同客户名称
settlementCustomerIdinteger(int64)—结算客户ID
settlementCustomerNamestring—结算客户名称
sourceVersioninteger(int32)—来源版本(来源重确认乐观锁,重确认时需原样回传)
fees27ServiceOrderFeeVO[]—费用行(含五态收费责任,逐项核定用)
attachments8ServiceAttachmentVO[]—工单附件
allowedActionsstring[]—当前允许的操作动作码
closeTypestring—关闭类型
closeReasonstring—关闭原因
closedAtstring(date-time)—关闭时间
closedBystring—关闭操作人
closedFromStatusstring—关闭前的工单状态
serviceCycleNointeger(int32)—服务周期号
updateTimestring(date-time)—更新时间
versioninteger(int32)—乐观锁版本,编辑时需原样回传

错误处理​

响应统一信封 { code, message, data },code == 200 为成功。以下是本接口可能返回的开放平台层错误:

错误码说明可重试
92101访问凭证无效否
92201接口未登记或已停用否
92202超出凭证授权范围——本接口需 sales:write否
92204绑定员工无此接口的功能权限否
92203上游服务调用失败先查询处理结果,禁止盲目重试
92301请求过于频繁是
92205写操作处理超时,结果未知(下游可能仍在执行)否,先查询确认结果
92302有参数相同的写请求正在处理中等待并确认前一次结果,勿重复提交

除此之外,comap-sales 自身的业务校验失败会原样透传其业务码与提示 (如字段校验、状态不允许、数据不存在),这类码不在开放平台的号段内, 以响应里的 message 为准。完整的平台层错误码见错误码说明。

← 返回服务工单