提供给上海正芯数智APP第三方H5应用使用的SDK
npm install @cpzxrobot/sdkbash
npm i @cpzxrobot/sdk
`
$3
`javascript
import cpzxrobot from "@cpzxrobot/sdk"
cpzxrobot({
devAuth: "从上海正芯获得的开发临时token",
appCode: "上海正芯分配的App Code",
selectedFarm: {
code: "xxxx",
company_code: "xxxx",
id: 123456,
name: "自定义用户测试的工厂,请从后台根据业务选择合适的工厂",
},
selectedUnit: {
id: 123456,
name: "自定义用户测试的单元,请从后台根据业务选择合适的单元",
workshopName: 'A栋'
},
});
`
$3
如果出现CORS问题,请配置代理:
`javascript
// vite.config.js
server: {
proxy: {
"/api": {
target: "https://www.cpzxrobot.com/",
changeOrigin: true,
},
},
}
`
核心功能模块
1. 工厂管理
2. 设备管理
3. 摄像头管理
4. 料塔管理
5. 保温灯管理
6. 用户管理
7. 项目管理
8. 合同管理
9. 客户管理
10. 公司管理
11. 车辆管理
12. 新闻管理
13. 日志管理
14. AI网关管理
接口参考
$3
#### 获取工厂信息
`javascript
cpzxrobot().factory.workshops(factory_id)
`
参数:
- factory_id: 工厂id
#### 获取工厂单元
`javascript
cpzxrobot().factory.units(factory_id)
`
参数:
- factory_id: 工厂id
$3
#### 设备基础接口
`javascript
// 获取设备列表
cpzxrobot().device.list()
// 获取单个设备数据
cpzxrobot().device.data(deviceId)
// 验证设备有效性
cpzxrobot().device.validate(serialNumbers)
// 获取设备报警阈值
cpzxrobot().device.thresholdConfig.list()
// 获取设备报警列表
cpzxrobot().device.alert(factoryId, type)
// 报告设备问题
cpzxrobot().device.report(deviceId, status, description)
`
$3
获取工厂设备的告警列表
#### 参数
- factoryId: string - 工厂ID
- type?: string - (可选)告警类型
#### 返回值
Promise - 按时间排序的告警记录数组
#### 使用示例
`typescript
// 获取工厂123的所有告警
const alerts = await cpzxrobot().device.alert("123");
// 获取工厂123的温度相关告警
const tempAlerts = await cpzxrobot().device.alert("123", "temperature");
`
$3
`typescript
interface DeviceFault {
category: string; // 告警类别
time: Date; // 发生时间
resolved: boolean; // 是否已解决
repeated?: number; // 重复次数(可选)
value?: any; // 告警值(可选)
message?: string; // 告警消息(可选)
}
`
$3
报告设备问题状态
#### 参数
- deviceId: number - 设备ID
- status: number - 设备状态码,可选值如下:
- 0: 正常状态
- 1: 待确认错误
- 2: 需要检查的错误
- 3: 维护中
- 4: 需要自行修复的错误
- 5: 需要更换的错误
- 8: 等待修复
- 9: 等待更换
- 16: 正在修复
- 17: 正在更换
- 33: 已更换
- 64: 已废弃
- description: string - 问题描述
#### 返回值
Promise - 返回操作结果
#### 使用示例
`typescript
// 报告设备需要修复
await cpzxrobot().device.report(123, 4, "传感器读数异常");
// 报告设备已废弃
await cpzxrobot().device.report(456, 64, "设备已报废");
`
$3
获取设备故障记录
$3
- deviceId: number - 设备ID
- startTime: Date - 开始时间
- endTime: Date - 结束时间
$3
Promise - 按时间排序的故障记录数组
$3
`typescript
const faults = await cpzxrobot().device.faults(
123,
new Date('2023-01-01'),
new Date('2023-01-31')
);
faults.forEach(fault => {
console.log(时间: ${fault.time}, 类别: ${fault.category});
});
`
$3
`typescript
interface DeviceFault {
category: string; // 故障类别
time: Date; // 发生时间
resolved: boolean; // 是否已解决
repeated?: number; // 重复次数(可选)
value?: any; // 故障值(可选)
message?: string; // 故障消息(可选)
}
`
#### 料塔设备接口
`javascript
// 获取料塔列表
cpzxrobot().device.feedTower.list()
cpzxrobot().device.feedTower.v2.list()
// 料塔清零
cpzxrobot().device.feedTower.v2.adzero(towerId)
// 获取料塔统计
cpzxrobot().device.feedTower.stat(towerId)
// 料塔报警参数
cpzxrobot().device.feedTower.setAlarmParam(params)
cpzxrobot().device.feedTower.getAlarmParam(towerId)
cpzxrobot().device.feedTower.updateAlarmParam(params)
`
#### 设备管理V2接口
`javascript
// 设备增删改查
cpzxrobot().device.v2.add(deviceInfo)
cpzxrobot().device.v2.update(deviceInfo)
cpzxrobot().device.v2.list(params)
cpzxrobot().device.v2.delete(deviceId)
`
#### 设备故障记录
`javascript
// 获取设备故障记录
cpzxrobot().device.faults(deviceId, startTime, endTime)
`
$3
#### 摄像头搜索
`javascript
// 按单元搜索
cpzxrobot().camera.search({unit_id: unitId})
// 按工厂搜索
cpzxrobot().camera.search({factory_id: factoryId})
// 按车间搜索
cpzxrobot().camera.search({workshop_id: workshopId})
`
#### 摄像头控制
`javascript
// 控制摄像头移动
cpzxrobot().camera.control({
cameraId: string,
direction: 'left'|'right'|'up'|'down',
start: boolean, // 开始移动
stop: boolean // 停止移动
})
// 默认3秒自动停止
cpzxrobot().camera.control({
cameraId: string,
direction: 'left'|'right'|'up'|'down'
})
`
#### 摄像头状态获取
`javascript
// 获取摄像头实时画面
cpzxrobot().camera.liveView(cameraId)
// 获取摄像头信息
cpzxrobot().camera.info(cameraId)
// 获取摄像头历史记录
cpzxrobot().camera.history(cameraId, startTime, endTime)
`
$3
#### 保温灯配置管理
`javascript
// 添加保温灯配置
cpzxrobot().pigfarm.heatlamp.add(unitId, {
name: string,
dayAge: number,
temperature: number
})
// 获取保温灯列表
cpzxrobot().pigfarm.heatlamp.list(unitId)
// 获取保温灯详情
cpzxrobot().pigfarm.heatlamp.get(heatlampId)
// 更新保温灯配置
cpzxrobot().pigfarm.heatlamp.update({
id: number,
name?: string,
dayAge?: number,
temperature?: number
})
`
#### 保温灯状态控制
`javascript
// 设置保温灯工作日龄
cpzxrobot().pigfarm.heatlamp.set(heatlampId, {
action: "dayage",
argc: number // 天数
})
// 开关保温灯
cpzxrobot().pigfarm.heatlamp.switch(heatlampId, {
action: "on"|"off"
})
// 按单元批量控制
cpzxrobot().pigfarm.heatlamp.switchByUnit(unitId, {
action: "on"|"off"
})
// 获取任务状态
cpzxrobot().pigfarm.heatlamp.taskStatus(taskId)
`
#### 保温灯模板管理
`javascript
// 添加保温灯模板
cpzxrobot().pigfarm.heatlamp.template.add({
name: string,
stages: Array<{
dayAge: number,
temperature: number
}>
})
// 获取模板列表
cpzxrobot().pigfarm.heatlamp.template.list()
`
#### 单元统计信息
`javascript
// 获取单元统计信息
cpzxrobot().pigfarm.unitStat(unitId)
// 获取单元阈值配置
cpzxrobot().unit.thresholdConfig.get(unitId)
// 绑定单元阈值配置
cpzxrobot().unit.thresholdConfig.bind(unitId, config)
`
$3
#### 用户基础操作
`javascript
// 添加用户
cpzxrobot().user.add({
name: string,
mobile: string,
roleId: number,
factoryId: number
})
// 更新用户信息
cpzxrobot().user.update(userId, {
name?: string,
mobile?: string,
roleId?: number
})
// 获取用户列表
cpzxrobot().user.list({
factoryId: number,
page?: number,
size?: number
})
// 获取用户详情
cpzxrobot().user.info(userId)
// 按角色获取用户
cpzxrobot().user.listByRole({
companyId: number,
roleId: number
})
`
#### 用户审批流程
`javascript
// 获取审批列表
cpzxrobot().user.approval.list({
userId: number,
status: 'pending'|'approved'|'rejected'
})
// 获取审批数量
cpzxrobot().user.approval.count({
userId: number,
status: 'pending'|'approved'|'rejected'
})
// 提交审批
cpzxrobot().user.approval.submit({
userId: number,
type: string,
content: string
})
`
#### 用户考勤管理
`javascript
// 添加签到记录
cpzxrobot().user.checkin.add({
userId: number,
address: string
})
// 获取签到记录
cpzxrobot().user.checkin.list({
userId: number,
date: string // YYYY-MM-DD
})
`
#### 用户工作报告
`javascript
// 获取工作报告列表
cpzxrobot().user.workReport.list(userId)
// 添加工作报告
cpzxrobot().user.workReport.add({
userId: number,
content: string
})
// 更新工作报告
cpzxrobot().user.workReport.update(reportId, {
content: string
})
`
#### 用户统计分析
`javascript
// 全国用户统计
cpzxrobot().user.stat.china()
// 按地区统计
cpzxrobot().user.listByProvince(province)
cpzxrobot().user.listByCity(city)
// 部门关系查询
cpzxrobot().user.position.leader() // 获取领导信息
cpzxrobot().user.position.team() // 获取下属团队
`
$3
- ProjectGateway 类详细文档
#### 项目基础信息
`javascript
// 获取项目列表
cpzxrobot().project.list({
factoryId: number,
page?: number,
size?: number
})
// Code前缀管理
cpzxrobot().project.codePrefix = {
// 添加code前缀
add: (args: { codePrefix: string; description: string }) => Promise
// 获取code前缀列表
list: (args: {
pageNo: number;
pageSize: number;
projectCode?: string;
description?: string;
}) => Promise
// 获取单个code前缀详情
get: (id: number) => Promise
// 更新code前缀
update: (args: {
codePrefix: string;
description: string;
id: number
}) => Promise
// 删除code前缀
delete: (id: number) => Promise
}
// 使用示例
// 添加code前缀
await cpzxrobot().project.codePrefix.add({
codePrefix: "PRJ",
description: "项目编号前缀"
});
// 获取code前缀列表
const prefixes = await cpzxrobot().project.codePrefix.list({
pageNo: 1,
pageSize: 10
});
// 获取单个code前缀
const prefix = await cpzxrobot().project.codePrefix.get(123);
// 更新code前缀
await cpzxrobot().project.codePrefix.update({
codePrefix: "PROJ",
description: "项目编号前缀",
id: 123
});
// 删除code前缀
await cpzxrobot().project.codePrefix.delete(123);
`
// 获取项目详情
cpzxrobot().project.get(projectId)
// 新增项目
cpzxrobot().project.add({
projectCode: string, // 项目代码
projectName: string, // 项目名称
description: string, // 项目描述
image: string, // 项目图片
type: number, // 项目类型
scale: string, // 项目规模
amount: number, // 项目金额
principalId: number, // 负责人ID
startDate: string, // 开始日期(YYYY-MM-DD)
workDate: string, // 工作日期(YYYY-MM-DD)
endDate: string, // 结束日期(YYYY-MM-DD)
customerId: number, // 客户ID
progressPercentage: string, // 进度百分比
projectProgress: number, // 项目进度
projectPayment: number, // 项目付款
activeFlag: number, // 激活标志
fileId: number, // 文件ID
icpRecordNumber: string, // ICP备案号
supervise: string, // 监督人
supervisePhone: string, // 监督电话
areaCode: number, // 区域代码
address: string, // 地址
lat: string, // 纬度
lng: string, // 经度
budget: number, // 预算
expectedTransactionTime: string, // 预计交易时间
currentStage: string, // 当前阶段
customerContactId: number, // 客户联系人ID
projectStageId: number // 项目阶段ID
})
// 更新项目
cpzxrobot().project.update({
id: number, // 项目ID
projectCode: string, // 项目代码
projectName: string, // 项目名称
description: string, // 项目描述
image: string, // 项目图片
type: number, // 项目类型
scale: string, // 项目规模
amount: number, // 项目金额
principalId: number, // 负责人ID
startDate: string, // 开始日期(YYYY-MM-DD)
workDate: string, // 工作日期(YYYY-MM-DD)
endDate: string, // 结束日期(YYYY-MM-DD)
customerId: number, // 客户ID
progressPercentage: string, // 进度百分比
projectProgress: number, // 项目进度
projectPayment: number, // 项目付款
activeFlag: number, // 激活标志
fileId: number, // 文件ID
icpRecordNumber: string, // ICP备案号
supervise: string, // 监督人
supervisePhone: string, // 监督电话
areaCode: number, // 区域代码
address: string, // 地址
lat: string, // 纬度
lng: string, // 经度
budget: number, // 预算
expectedTransactionTime: string, // 预计交易时间
currentStage: string, // 当前阶段
customerContactId: number, // 客户联系人ID
projectStageId: number // 项目阶段ID
})
// 删除项目
cpzxrobot().project.delete(projectId: number) // 项目ID
// 全国项目统计
cpzxrobot().project.stat.china()
// 按地区统计
cpzxrobot().project.listByProvince(province)
`
#### 项目反馈管理
`javascript
// 获取反馈列表
cpzxrobot().project.feedback.list(projectId)
// 添加项目反馈
cpzxrobot().project.feedback.add({
projectId: number,
content: string
})
// 回复项目反馈
cpzxrobot().project.feedback.reply({
feedbackId: number,
content: string
})
`
#### 项目询盘管理
`javascript
// 获取询盘列表
cpzxrobot().project.inquiry.list(projectId)
// 添加询盘
cpzxrobot().project.inquiry.add({
projectId: number,
content: string
})
// 询盘审批
cpzxrobot().project.inquiry.approval({
inquiryId: number,
opinion: string
})
// 导出询盘
cpzxrobot().project.inquiry.export({
projectId: number,
fileName?: string
})
`
#### 项目资源管理
`javascript
// 获取项目文档
cpzxrobot().project.document.list(projectId)
// 获取物料到货
cpzxrobot().project.material.list(projectId)
// 获取施工队信息
cpzxrobot().project.constructionTeam.list(projectId)
// 获取考勤记录
cpzxrobot().project.attendance.list(projectId)
`
#### 项目关联产品
`javascript
// 获取产品列表
cpzxrobot().product.list({
factoryId: number,
page?: number,
size?: number
})
// 产品报价管理
cpzxrobot().product.price.list(productId)
cpzxrobot().product.price.add({
productId: number,
price: number,
currency: string
})
`
$3
#### 报价单基础操作
`javascript
// 获取报价单列表
cpzxrobot().quotation.list({
pageNo: number,
pageSize: number,
name?: string,
companyId?: number
})
// 创建报价单
cpzxrobot().quotation.add({
// 报价单数据
})
// 获取报价单详情
cpzxrobot().quotation.get(id: number)
// 更新报价单信息
cpzxrobot().quotation.update({
quotationTypeId: number,
quotationTypeName: string,
customerId: number,
customerName: string,
quotationContent: string,
customerContactId: number,
customerContactName: string,
contactPhone: string,
salesman: string,
amount: number,
quotationCost: number,
quotationGrossProfit: number,
quotationDemandDate: string,
companyId: number,
tax: number,
projectId: number,
validDay: number,
quotationDate: string
})
// 删除报价单
cpzxrobot().quotation.delete(id: number)
// 将报价单转化为合同
cpzxrobot().quotation.transform(id: number)
`
$3
- ContractGateway 类详细文档 - 包含所有合同管理接口和使用方法
#### 公司管理
`javascript
// 获取公司列表
cpzxrobot().company.list({
page?: number,
size?: number
})
// 公司营收统计
cpzxrobot().company.revenue.list({
year?: number,
month?: number
})
// 公司排名
cpzxrobot().company.rank.byRevenue()
cpzxrobot().company.rank.byProfit()
cpzxrobot().company.rank.byOrder()
`
#### 车辆管理
`javascript
// 全国车辆统计
cpzxrobot().car.stat.china()
// 按地区统计
cpzxrobot().car.listByProvince(province)
cpzxrobot().car.listByCity(city)
cpzxrobot().car.listByDistrict(district)
// 获取车辆运单
cpzxrobot().car.orders(factoryId)
cpzxrobot().car.ordersByFactory(factoryId)
// 更新车辆称重记录
cpzxrobot().car.updateRecord(factory: Factory, record: {
id: number, // 记录ID
manualLoadWeight: number, // 手动装载重量(kg)
manualLoadWeightTime: string, // 手动装载时间(格式: "YYYY-MM-DD HH:mm:ss")
manualCarWeight: number, // 手动车辆重量(kg)
manualCarWeightTime: string // 手动车辆称重时间(格式: "YYYY-MM-DD HH:mm:ss")
})
`
`
cpzxrobot({
devAuth: "从上海正芯获得的开发临时token",
appCode: "上海正芯分配的App Code",
selectedFarm: {
code: "xxxx",
company_code: "xxxx",
id: 123456,
name: "自定义用户测试的工厂,请从后台根据业务选择合适的工厂",
},
selectedUnit: {
id: 123456,
name: "自定义用户测试的单元,请从后台根据业务选择合适的单元",
workshopName: 'A栋'
},
});
`
使用上述模板进行sdk初始化
#### 2.2.1、开发时的CORS问题
如果上述配置后,出现调用接口CORS问题,请在初始化增加参数:
`
baseURL: "/"
`
并在vite.config.js等开发环境配置文件中配置:
`
server: {
proxy: {
"/api": {
target: "https://www.cpzxrobot.com/",
changeOrigin: true,
},
},
},
`
$3
#### 2.3.1、Vue使用方法
在App.vue中调用2.1所示初始化程序,即可完成SDK初始化。
在其他文件中需要使用sdk时,需要
* 引用库 import cpzxrobot from "@cpzxrobot/sdk"
* 调用对应的接口方法,例如cpzxrobot().factory.workshops(factory_id)
调用接口列表
主要包入口:
| 调用入口 | 功能说明 |
| ----------------------- | -------------------- |
| cpzxrobot().factory.xxx | 获得工厂的相关信息 |
| cpzxrobot().device.list | 获得常见设备的列表(当没有特殊类型需求时调用),列表接口提供data参数,可以同步获得多个设备的数据,尽量使用该接口获得设备数据 |
| cpzxrobot().device.data | 获得设备的数据,该接口用于获取单个设备的详细数据 |
| cpzxrobot().device.feedTower.list | 获得料塔设备的列表 |
| cpzxrobot().device.feedTower.v2.list | 获得料塔设备的列表(新版),暂不支持v1版本的data等附加参数,只支持按工厂获取 |
| cpzxrobot().device.feedTower.v2.adzero | 将某一个特定料塔设置清零 |
| cpzxrobot().device.xxx | 获得设备的相关信息 |
| cpzxrobot().device.v2.add | 新增设备(仅限v2设备) |
| cpzxrobot().device.v2.update | 更新设备(仅限v2设备) |
| cpzxrobot().device.v2.list | 删除设备(仅限v2设备) |
| cpzxrobot().device.v2.delete | 删除设备(仅限v2设备) |
| cpzxrobot().device.validate | 校验设备是否有效,传入serialNumbers数组,返回包含状态的设备列表 |
| cpzxrobot().camera.xxx | 获得摄像头的相关信息 |
| cpzxrobot().camera.control | 控制摄像头,例如:左移,右移,上移,下移等,如果传输start为true,则开始控制,如果传输stop为true,则停止控制,如果都没传输,则执行3秒后自动停止,传输start为true时,前端必须在需要停止时自行发送stop为true的消息 |
| cpzxrobot().factory.entry | 获得工厂的可显示动态信息 |
| cpzxrobot().factory.apps | 获得工厂的应用列表,如果指定withRoles为true,则返回app和app的详细角色信息 |
| cpzxrobot().factory.roles | 获得工厂的角色列表 |
| cpzxrobot().factory.addRole | 添加工厂的角色 |
| cpzxrobot().factory.deleteRole | 删除工厂的角色 |
| cpzxrobot().factory.listByCompany | 获得工厂列表,传入companyId参数 |
| cpzxrobot().factory.info.get | 获得工厂的附加信息 |
| cpzxrobot().factory.info.post | 更新或更新工厂的附加信息 |
| cpzxrobot().factory.banner.add | 添加工厂的banner图片,提交formdata,需要传入file参数 |
| cpzxrobot().factory.banner.delete | 删除工厂的banner图片,需要传入id参数 |
| cpzxrobot().factory.workshop.get | 获得工厂的某个车间信息 |
| cpzxrobot().factory.workshop.post | 添加车间信息 |
| cpzxrobot().factory.workshop.types | 获得车间的类型列表 |
| cpzxrobot().factory.workshop.delete | 删除车间信息,需要传入id参数 |
| cpzxrobot().factory.batch.list | 获得批次列表,传入factoryId参数 |
| cpzxrobot().transport.fodder.getDeviceByFodderld | 获得料单对应的设备 |
| cpzxrobot().transport.fodder.getRecentLoad | 获取料塔最近打料记录,传入towerId参数 |
| cpzxrobot().transport.fodder.delete | 删除饲料信息,需要传入id参数 |
| cpzxrobot().transport.pig.getCars | 根据栋舍获取车牌号列表信息,传入factoryId参数 |
| cpzxrobot().transport.pig.getBatchByTruck | 获取运输批次信息,传入workshopId和truckCode参数 |
| cpzxrobot().transport.pig.getBatchByDateRange | 获取运输批次信息,传入workshopId、startDate和endDate参数 |
| cpzxrobot().transport.pig.createBatch | 创建猪运输单,传入运输单数据 |
| cpzxrobot().transport.pig.getBatchDetail | 获取运输单详情,传入运输单id |
| cpzxrobot().pigfarm.heatlamp.xxx | 操作保温灯 |
| cpzxrobot().pigfarm.weightMeter.config.list | 获取称重计的配置信息 |
| cpzxrobot().pigfarm.weightMeter.config.bind | 添加称重计的配置信息,绑定到料塔 |
| cpzxrobot().pigfarm.weightMeter.config.update | 更新称重计的配置信息 |
| cpzxrobot().pigfarm.weightMeter.sensor.list | 获取称重计的传感器列表 |
| cpzxrobot().pigfarm.weightMeter.sensor.add | 添加称重计的传感器信息 |
| cpzxrobot().pigfarm.weightMeter.sensor.update | 更新称重计的传感器信息 |
| cpzxrobot().pigfarm.weightMeter.iccid | 获取称重计的iccid信息 |
| cpzxrobot().pigfarm.weightMeter.restart | 重启称重计 |
| cpzxrobot().device.feedTower.stat | 获得料塔设备的料耗,饲料重量 |
| cpzxrobot().device.feedTower.setAlarmParam | 设置料塔设备的报警参数 |
| cpzxrobot().device.feedTower.updateAlarmParam | 更新料塔设备的报警参数 |
| cpzxrobot().device.feedTower.getAlarmParam | 获得料塔设备的报警参数 |
| cpzxrobot().device.thresholdConfig.list | 获得设备报警阈值列表 |
| cpzxrobot().device.thresholdConfig.post | 添加或更新设备报警阈值(根据是否传入id) |
| cpzxrobot().device.thresholdConfig.delete | 删除设备报警阈值(根据id) |
| cpzxrobot().device.thresholdConfig.get | 获得设备报警阈值配置信息 |
| cpzxrobot().device.thresholdConfig.addRule | 获得设备报警阈值配置信息 |
| cpzxrobot().device.thresholdConfig.deleteRule | 删除设备报警阈值配置信息 |
| cpzxrobot().pigfarm.unitStat | 获得单元的统计信息,包括每日料耗,饲料消耗,日龄,存栏量等 |
| cpzxrobot().pigfarm.heatlamp.set | 设置保温灯的当前工作日龄,调用时,action传"dayage",argc传天数 |
| cpzxrobot().pigfarm.heatlamp.switch | 设置保温灯的当前工作日龄,调用时,action"on"或"off" |
| cpzxrobot().pigfarm.heatlamp.iotFields | 获取保温灯用于获取iot的字段列表 |
| cpzxrobot().pigfarm.heatlamp.switchByUnit | 按单元id开关,返回task |
| cpzxrobot().pigfarm.heatlamp.updateByUnit | 按单元id设置保温灯的参数,返回task |
| cpzxrobot().pigfarm.heatlamp.taskStatus | 获取保温灯的任务状态,传入taskId参数或者unitId和type自动查询 |
| cpzxrobot().pigfarm.heatlamp.template.add | 添加保温灯的模板 |
| cpzxrobot().pigfarm.heatlamp.template.list | 获取保温灯的模板列表 |
| cpzxrobot().pigfarm.threshold | 获取单元中特定类型的阈值信息 |
| cpzxrobot().scanQrcode | 调用扫码功能,获得扫码文字 |
| cpzxrobot().vibrate | 调用震动功能 |
| cpzxrobot().reloadGroup | 重新加载组织机构信息,传入字符串类型的工厂(公司)id |
| cpzxrobot().unit.v2.list | 获得单元列表,v2版本 |
| cpzxrobot().unit.v2.add | 添加单元,v2版本 |
| cpzxrobot().unit.v2.update | 更新单元,v2版本 |
| cpzxrobot().unit.v2.delete | 删除单元,v2版本 |
| cpzxrobot().unit.layout.get | 获取单元的展示布局 |
| cpzxrobot().unit.layout.post | 设置单元的展示布局 |
| cpzxrobot().unit.thresholdConfig.get | 获取单元的阈值配置信息 |
| cpzxrobot().unit.thresholdConfig.bind | 设置单元的阈值配置信息 |
| cpzxrobot().unit.thresholdConfig.delete | 删除单元的阈值配置信息,传入get获取的条目的具体id或对象本身 |
| cpzxrobot().unit.batch.bind | 绑定单元和生产批次关系 |
| cpzxrobot().unit.batch.create | 创建生产批次 |
| cpzxrobot().unit.batch.update | 更新生产批次信息,传入id参数和更新的内容 |
| cpzxrobot().unit.batch.clear | 清除单元绑定的生产批次 |
| cpzxrobot().unit.batch.getUnits | 获取批次的绑定单元信息 |
| cpzxrobot().unit.batch.searchInUnit | 搜索单元的生产批次信息 |
| cpzxrobot().unit.batch.list | 获取多个单元的生产批次信息 |
| cpzxrobot().unit.batch.operation | 获取批次操作记录,传入 batchNo 参数 |
| cpzxrobot().unit.batch.delete | 删除批次,传入批次 id 参数 |
| cpzxrobot().user.add | 添加用户 |
| cpzxrobot().user.update | 更新用户 |
| cpzxrobot().user.list | 列出用户(传入工厂) |
| cpzxrobot().user.info | 获取用户信息,传入userId参数 |
| cpzxrobot().user.listByRole | 列出用户(传入公司和角色) |
| cpzxrobot().user.approval.count | 获list | 获取用户审批列表,传入userId和status参数 |
| cpzxrobot().user.approval.取用户审批列表的数量,传入userId和status参数 |
| cpzxrobot().user.approval.submits | 获取已提交的用户审批 |
| cpzxrobot().user.checkin.add | 添加用户签到记录,传入userId和address参数 |
| cpzxrobot().user.checkin.list | 列出用户签到记录,传入userId和date参数 |
| cpzxrobot().user.searchHistory.list | 列出用户搜索历史记录,传入type参数 |
| cpzxrobot().user.searchHistory.add | 添加用户搜索历史记录,传入type参数和搜索内容 |
| cpzxrobot().user.searchHistory.delete | 删除用户搜索历史记录,传入ids参数 |
| cpzxrobot().user.stat.china | 获得员工在全国的统计信息 |
| cpzxrobot().user.listByProvince | 获得员工在某个省的统计信息,传入province参数 |
| cpzxrobot().user.listByCity | 获得员工在某个市的统计信息,传入city参数 |
| cpzxrobot().user.workReport.list | 列出用户的日报记录 |
| cpzxrobot().user.workReport.get | 获取用户的日报记录 |
| cpzxrobot().user.workReport.add | 添加用户的日报记录 |
| cpzxrobot().user.workReport.delete | 删除用户的日报记录,传入id参数 |
| cpzxrobot().user.workReport.update | 更新用户的日报记录,传入id参数和更新的内容 |
| cpzxrobot().user.position.leader | 获取当前用户的领导信息 |
| cpzxrobot().user.position.team | 获取当前用户的下属团队信息, 可输入searchName进行模糊搜索 |
| cpzxrobot().user.position.colleague | 获取当前用户的同组团队信息 |
| cpzxrobot().user.position.byDept | 按部门获得团队信息,传入deptName参数 |
| cpzxrobot().product.list | 获得产品列表,传入factory_id和必要的分页参数 |
| cpzxrobot().product.get | 获得产品信息,传入id参数 |
| cpzxrobot().product.price.list | 获得产品报价列表 |
| cpzxrobot().product.price.get | 获得产品报价信息,传入id参数 |
| cpzxrobot().product.price.add | 添加产品报价信息 |
| cpzxrobot().product.price.delete | 删除产品报价信息,传入id参数 |
| cpzxrobot().product.price.history.list | 获得产品报价历史信息 |
| cpzxrobot().product.price.history.get | 获得产品报价历史信息,传入id参数 |
| cpzxrobot().project.list | 获得项目列表,传入factory_id和必要的分页参数 |
| cpzxrobot().project.feedback.list | 获得项目反馈列表,传入project_id参数 |
| cpzxrobot().project.feedback.add | 添加项目反馈信息,传入project_id和反馈内容 |
| cpzxrobot().project.feedback.reply | 添加项目反馈回复,传入feedback_id和回复内容 |
| cpzxrobot().project.get | 获得项目信息,传入id参数 |
| cpzxrobot().project.stat.china | 获得项目在全国的统计信息 |
| cpzxrobot().project.inquiry.list | 获得项目询盘列表,传入project_id参数 |
| cpzxrobot().project.inquiry.get | 获得项目询盘信息,传入id参数 |
| cpzxrobot().project.inquiry.add | 添加项目询盘信息,传入project_id和询盘内容 |
| cpzxrobot().project.inquiry.export | 导出项目询盘信息,传入project_id参数,建议传入自定义文件名,否则默认文件名 |
| cpzxrobot().project.inquiry.approval | 审批项目询盘,传入id参数和审批意见 |
| cpzxrobot().project.inquiry.restart | 重新提交项目询盘,传入id参数 |
| cpzxrobot().project.inquiry.documents | 获得项目询盘文档列表 |
| cpzxrobot().project.document.list | 获得项目文档列表,传入project_id参数 |
| cpzxrobot().project.document.export | 导出项目文档信息,传入id参数,建议传入自定义文件名,否则默认文件名 |
| cpzxrobot().project.material.list | 获得项目物料到货列表,传入project_id参数 |
| cpzxrobot().project.attendance.list | 获得项目到岗列表,传入project_id参数 |
| cpzxrobot().project.constructionTeam.list | 获得项目施工队列表,传入project_id参数 |
| cpzxrobot().project.listByProvince | 获得项目在某个省的统计信息,传入province参数 |
| cpzxrobot().contract.list | 获得合同列表,传入factory_id和必要的分页参数 |
| cpzxrobot().contract.get | 获得合同信息,传入id参数 |
| cpzxrobot().contract.add | 添加合同 |
| cpzxrobot().contract.export | 导出合同信息,建议传入自定义文件名,否则默认文件名 |
| cpzxrobot().contract.approval | 审批合同,传入id参数和审批意见 |
| cpzxrobot().contract.restart | 重新提交合同审批,传入id等参数 |
| cpzxrobot().contract.types | 获得合同类型列表,传入factory_id参数 |
| cpzxrobot().customer.list | 获得客户列表,传入factory_id和必要的分页参数 |
| cpzxrobot().customer.listV2 | 更新版本的获得客户列表,传入factory_id和必要的分页参数,请逐步替换list的使用 |
| cpzxrobot().customer.get | 获得客户信息,传入id参数 |
| cpzxrobot().customer.add | 添加客户 |
| cpzxrobot().customer.update | 更新客户 |
| cpzxrobot().customer.visit.add | 添加客户拜访记录 |
| cpzxrobot().customer.stat.china | 获得客户在全国的统计信息 |
| cpzxrobot().customer.listByProvince | 获得客户在某个省的统计信息,传入province参数 |
| cpzxrobot().customer.accountManager | 获得客户对应的销售员 |
| cpzxrobot().customer.delete | 删除客户,传入id参数 |
| cpzxrobot().customer.types | 获得客户类型列表 |
| cpzxrobot().customer.status | 获得客户状态列表 |
| cpzxrobot().customer.categories | 获得客户类别列表 |
| cpzxrobot().customer.count.byStatus | 获取客户状态列表及各状态下的客户数量 |
| cpzxrobot().customer.visit.list | 获取客户拜访列表 |
| cpzxrobot().customer.stat.periodCount | 按周、月、年及类型对客户数量统计 |
| cpzxrobot().customer.stat.totalCount | 统计客户总数 |
| cpzxrobot().customer.stat.amount | 统计追踪、在建阶段的项目金额 |
| cpzxrobot().customer.stat.project | 追踪项目统计 |
| cpzxrobot().customer.contact | 获取客户联系人信息 |
| cpzxrobot().company.list | 获得公司列表,传入必要的分页参数 |
| cpzxrobot().company.rank.byRevenue | 按公司营收获取排名,传入必要的分页参数 |
| cpzxrobot().company.rank.byProfit | 按公司利润获取排名,传入必要的分页参数 |
| cpzxrobot().company.rank.byOrder | 按公司订单获取排名,传入必要的分页参数 |
| cpzxrobot().company.cost.byMonth | 按公司按月成本 |
| cpzxrobot().company.cost.byYear | 按公司按年成本 |
| cpzxrobot().company.revenue.groupSummary.byMonth | 按公司按类别按月营收统计 |
| cpzxrobot().company.revenue.groupSummary.byYear | 按公司按类别按年营收统计 |
| cpzxrobot().company.revenue.recentSummary.byMonth | 按公司当月营收统计 |
| cpzxrobot().company.revenue.recentSummary.byDay | 按公司当日营收统计 |
| cpzxrobot().company.revenue.recentSummary.byDecade | 按公司按旬营收统计 |
| cpzxrobot().company.revenue.list | 获得公司营收列表,传入必要的分页参数 |
| cpzxrobot().company.enterprise.revenue | 获得集团整体营收统计 |
| cpzxrobot().company.enterprise.userCount | 获得集团整体用户统计 |
| cpzxrobot().car.stat.china | 获得车辆在全国的统计信息 |
| cpzxrobot().car.listByProvince | 获得车辆在某个省的统计信息,传入province参数 |
| cpzxrobot().car.listByCity | 获得车辆在某个市的统计信息,传入city参数 |
| cpzxrobot().car.listByDistrict | 获得车辆在某个区域的统计信息,传入district参数 |
| cpzxrobot().car.orders | 获得车辆运单列表,传入工厂(按工厂上级返回) |
| cpzxrobot().car.ordersByFactory | 获得车辆运单列表,传入工厂,按工厂id返回 ,只返回未分配的运单 |
| cpzxrobot().news.add | 添加新闻 |
| cpzxrobot().news.list | 获得新闻列表,传入必要的分页参数 |
| cpzxrobot().news.alarm.add | 添加报警信息 |
| cpzxrobot().news.alarm.list | 获得报警列表,传入必要的分页参数 |
| cpzxrobot().getGeo | 获得地理位置信息 |
| cpzxrobot().logs.operations | 获得操作日志列表,传入必要的参数 |
| cpzxrobot().robot.cage | 获得栏位信息 |
| cpzxrobot().robot.alarm | 获得报警信息,传入必要的参数 |
| cpzxrobot().ai.detechDeviceType | 使用AI匹配设备类型 |
$3
#### cpzxrobot().factory.workshops(factory_id)
获得工厂的所有车间
入参:
factory_id: 工厂id
#### cpzxrobot().factory.units(factory_id)
获得工厂的所有单元
入参:
factory_id: 工厂id
$3
cpzxrobot().camera.search(args)
搜索摄像头
入参:
入参为json object,可接受多种参数中的一个
如果入参为:{unit_id:xxx}则按单元搜索
如果入参为:{factory_id:xxx}则按工厂搜索
如果入参为:{workshop_id:xxx}则按车间搜索
如果入参为Unit对象,则按Unit对象的id进行搜索
$3
cpzxrobot().saveBlob(blob,filname)
保存blob为文件
cpzxrobot().saveBase64(base64,filename)
保存Base64内容为文件
$3
heatlamp 属性提供了一组方法,用于管理猪场的热灯配置。它包含以下方法:
cpzxrobot().pigfarm.heatlamp.add(unit, data):添加新的热灯配置。
cpzxrobot().pigfarm.heatlamp.list(unit):列出指定单元的所有热灯配置。
cpzxrobot().pigfarm.heatlamp.get(id):获取指定 ID 的热灯配置。
cpzxrobot().pigfarm.heatlamp.update(lamp):更新热灯配置。
$3
以下是更新后的巡检任务相关接口,分组在 cpzxrobot().task 和 cpzxrobot().record 命名空间下:
#### 任务管理 (cpzxrobot().task)
1. 获取任务列表
`typescript
cpzxrobot().robot.task.list(unitId: number)
`
- 描述:获取指定单元的巡检任务列表
- 参数:unitId - 单元ID
- HTTP方法:GET
- 接口路径:/api/v2/robot/inspectTask/list/{unitId}
2. 新增任务
`typescript
cpzxrobot().robot.task.add(data: any)
`
- 描述:添加新的巡检任务
- 参数:data - 包含任务信息的对象
- HTTP方法:POST
- 接口路径:/api/v2/robot/inspectTask/add
3. 修改任务
`typescript
cpzxrobot().robot.task.update(data: any)
`
- 描述:更新现有的巡检任务
- 参数:data - 包含更新信息的对象
- HTTP方法:POST
- 接口路径:/api/v2/robot/inspectTask/update
4. 删除任务
`typescript
cpzxrobot().robot.task.delete(id: number)
`
- 描述:删除指定的巡检任务
- 参数:id - 任务ID
- HTTP方法:POST
- 接口路径:/api/v2/robot/inspectTask/delete/{id}
5. 下发任务
`typescript
cpzxrobot().robot.task.dispatch(taskId: number)
`
- 描述:下发指定的巡检任务
- 参数:taskId - 任务ID
- HTTP方法:POST
- 接口路径:/api/v2/robot/inspectTask/dispatch/{taskId}
#### 巡检记录 (cpzxrobot().record)
1. 获取巡检结果
`typescript
cpzxrobot().robot.record.list(taskId: number)
`
- 描述:获取指定巡检任务的结果列表
- 参数:taskId - 任务ID
- HTTP方法:GET
- 接口路径:/api/v2/robot/inspectRecord/list/{taskId}
注意:对于POST请求的接口,body参数统一使用 any 类型,具体参数结构需要根据实际API要求进行定义。
日志管理
$3
`javascript
// 查询操作日志
cpzxrobot().logs.operations({
userId?: number,
module?: string,
action?: string,
startTime?: string, // YYYY-MM-DD
endTime?: string, // YYYY-MM-DD
page?: number,
size?: number
})
// 获取设备操作日志
cpzxrobot().device.logs({
deviceId: number,
startTime?: string,
endTime?: string
})
`
$3
`javascript
// 添加报警信息
cpzxrobot().news.alarm.add({
deviceId: number,
type: string,
level: 'info'|'warning'|'error',
message: string
})
// 获取报警列表
cpzxrobot().news.alarm.list({
deviceId?: number,
type?: string,
resolved?: boolean,
startTime?: string,
endTime?: string,
page?: number,
size?: number
})
// 标记报警为已处理
cpzxrobot().news.alarm.resolve(alarmId)
`
$3
`javascript
// 获取系统运行日志
cpzxrobot().logs.system({
level?: 'info'|'warning'|'error',
startTime?: string,
endTime?: string,
page?: number,
size?: number
})
// 获取API调用日志
cpzxrobot().logs.api({
path?: string,
statusCode?: number,
startTime?: string,
endTime?: string
})
// 获取登录日志
cpzxrobot().logs.login({
userId?: number,
success?: boolean,
startTime?: string,
endTime?: string
})
`
$3
`javascript
// 获取巡检任务日志
cpzxrobot().robot.task.logs({
taskId?: number,
unitId?: number,
status?: 'pending'|'in_progress'|'completed'|'failed',
startTime?: string,
endTime?: string
})
// 获取巡检记录详情
cpzxrobot().robot.record.details(recordId)
`
附录
$3
- 所有列表查询接口都支持以下分页参数:
- page: 页码(从1开始)
- size: 每页数量(默认10)
- 时间范围参数格式: YYYY-MM-DD
- 所有ID参数均为数字类型
$3
所有接口调用错误都会返回统一格式:
`javascript
{
code: number, // 错误码
message: string, // 错误信息
details?: any // 错误详情(可选)
}
``