查验结果
This commit is contained in:
lixiao 2025-10-27 14:14:55 +08:00
parent 8a4a73f19e
commit f2e13a9f35
6 changed files with 161 additions and 52 deletions

View File

@ -762,6 +762,8 @@ declare namespace API {
name?: string;
params?: Record<string, any>;
remark?: string;
robotId?: string;
robotIp?: string
stationId?: number;
status?: string;
updateBy?: string;

View File

@ -6,6 +6,8 @@ import { RebootControl } from './utils/Control'
import { promptAction, router } from '@kit.ArkUI'
import { CommandCode, commandService } from '../../utils/CommandService'
import Logger from '../../utils/Logger'
import { getPadRecordInfoUsingGet } from '../../api/padController'
import { getDeviceId } from '../../utils/System'
function TouchEventWrapper(callback: Function) {
let tick: number = -1
@ -31,7 +33,7 @@ function TouchEventWrapper(callback: Function) {
@Entry
struct Control {
@State select: number = 0
@State line: API.VcInspectionLine[] = AppStorage.get("line") || []
@State line: API.VcInspectionLine[] = []
@State mode: number[] = []
private control: RebootControl = new RebootControl("ws://192.168.7.101:10000")
private forward: (event: TouchEvent) => void = TouchEventWrapper(() => {
@ -48,11 +50,20 @@ struct Control {
})
async aboutToAppear(): Promise<void> {
await this.control.init()
this.mode = this.line.map(() => 0)
this.control.getMode().then(res => {
Logger.info(res)
this.mode[this.select] = res.mode
this.getPadInfo()
}
async getPadInfo() {
let deviceId = await getDeviceId()
getPadRecordInfoUsingGet({ imei: deviceId }).then(async (res) => {
this.line = res.data?.lines || []
this.control = new RebootControl(`ws://${this.line[this.select]?.robotIp}:10000`)
await this.control.init()
this.mode = this.line.map(() => 0)
this.control.getMode().then(res => {
Logger.info(res)
this.mode[this.select] = res.mode
})
})
}
@ -123,11 +134,13 @@ struct Control {
ForEach(this.line, (menu: API.VcInspectionLine, index: number) => {
CusMenuItem({ text: menu.name, active: this.select === index })
.margin({ bottom: 24 })
.onClick(() => {
.onClick(async () => {
if (this.mode[this.select] === 1) {
this.control.setMode(0)
}
this.select = index
this.control = new RebootControl(`ws://${this.line[this.select]?.robotIp}:10000`)
await this.control.init()
})
})
}.width("100%").padding({ left: 24, right: 24 })

View File

@ -3,6 +3,7 @@ import { TaskPool } from '../../../utils/TaskPool'
import { EventType, WebsocketClient } from '../../../utils/WebsocketUtils'
import { VehicleBean, VehicleInfo } from './Model'
import { BusinessError } from '@kit.BasicServicesKit'
import { promptAction } from '@kit.ArkUI'
const Tag = "RebootControl"
@ -58,7 +59,14 @@ export class RebootControl {
}
setMode(mode: number) {
return this.service.send(JSON.stringify({ mode }))
return new Promise<boolean>((resolve, reject) => {
this.service.send(JSON.stringify({ mode })).then(resolve).catch((err: BusinessError) => {
promptAction.showToast({
message: JSON.stringify(err)
})
reject(err)
})
})
}
destroy() {

View File

@ -4,20 +4,49 @@ import { Title } from '../components/title/Index'
import { promptAction, router } from '@kit.ArkUI'
import { getStepListUsingGet } from '../../api/padController'
import { CusMenuItem } from './components/MenuItem'
import { CommandCode, commandService } from '../../utils/CommandService'
import {
CommandCode,
commandService,
CommandType,
Message,
PostCurrentStepMessage,
} from '../../utils/CommandService'
import Logger from '../../utils/Logger'
interface RouterParams {
lineId: number
}
const Tag = "[Process]"
@Component
@Entry
struct Process {
@State process: API.StepVo[] = []
@State select: number = -1
@State currentStep: number = 6
// @State currentStep: number = 0
private lineId: number = -1
private onProcess = (msg: Message<PostCurrentStepMessage>) => {
if (msg.type === CommandType.PostCurrentStep) {
Logger.info(Tag, msg)
if (Number(msg.body.lineId) === this.lineId) {
let current = 0
for (let i = 0; i < this.process.length; i++) {
if (this.process[i].code === msg.body.stepCode) {
this.process[i].status === "2"
current = i
} else if (i < current) {
this.process[i].status === "1"
} else {
this.process[i].status === "0"
}
}
getStepListUsingGet({ lineId: this.lineId }).then(res => {
this.process = res.data || []
})
}
}
}
aboutToAppear(): void {
const params = router.getParams() as RouterParams;
@ -25,32 +54,11 @@ struct Process {
getStepListUsingGet({ lineId: this.lineId }).then(res => {
this.process = res.data || []
})
// getStageAndStepInfoUsingGet().then(res => {
// let len = 0
// this.process = (res.data || []).map((item) => {
// let result: API.StageAndStepRsp = {
// stageCode: item.stageCode,
// stageId: item.stageId,
// stageName: item.stageName,
// stepList: item.stepList?.map((sub, index) => {
// return {
// code: sub.code,
// id: sub.id,
// name: sub.name,
// orderNo: sub.orderNo,
// stageId: sub.stageId,
// index: len + index + 1
// } as API.StepVo
// }),
// count: len
// }
// len += item.stepList?.length || 0
// return result
// })
// if (this.process.length > 0) {
// this.select = this.process[0].stepList?.[0]?.id || -1
// }
// })
commandService.subscribe(this.onProcess)
}
aboutToDisappear(): void {
commandService.unsubscribe(this.onProcess)
}
build() {
@ -84,9 +92,6 @@ struct Process {
CusMenuItem({
step: step,
index: index + 1,
// onSelect: (id) => {
// this.select = id
// }
})
})
}.width("100%").padding({ left: 24, right: 24 })

View File

@ -192,14 +192,14 @@ struct Detail {
Text("左前45度照片").label()
}.margin({ right: 6 }).layoutWeight(1).height("100%")
Stack({ alignContent: Alignment.TopStart }) {
Image(this.rightBackward)
.alt($rawfile("images/vehicle/default.png"))
.width("100%")
.height("100%")
.objectFit(ImageFit.Fill)
Text("右后45度照片").label()
}.margin({ left: 6 }).layoutWeight(1).height("100%")
// Stack({ alignContent: Alignment.TopStart }) {
// Image(this.rightBackward)
// .alt($rawfile("images/vehicle/default.png"))
// .width("100%")
// .height("100%")
// .objectFit(ImageFit.Fill)
// Text("右后45度照片").label()
// }.margin({ left: 6 }).layoutWeight(1).height("100%")
}.margin({ right: 6 }).layoutWeight(1)
Row() {
@ -223,6 +223,81 @@ struct Detail {
Text("左前45度视频").label()
}.margin({ right: 6 }).layoutWeight(1).height("100%")
// Stack({ alignContent: Alignment.TopStart }) {
// if (this.rightBackward) {
// VideoPlayer({
// isFullScreen: this.isFullScreen,
// showPreview: true,
// attribute: {
// preview: $rawfile("images/vehicle/default.png"),
// type: "network"
// },
// url: this.rightBackward
// })
// } else {
// Image($rawfile("images/vehicle/default.png"))
// .width("100%")
// .height("100%")
// .objectFit(ImageFit.Fill)
// }
// Text("右后45度视频").label()
// }.margin({ left: 6 }).layoutWeight(1).height("100%")
}.margin({ right: 6 }).layoutWeight(1)
}
.width("100%")
.padding({ left: 6, top: 12, bottom: 12 })
.height(240)
.margin({ bottom: 18 })
.backgroundColor(0xE7F3FF)
Row() {
Column() {
Label({ mode: 2, label: "号牌号码", value: this.data.licensePlateNumber })
Label({ mode: 2, label: "车辆品牌", value: this.data.vehicleBrandName })
Label({ mode: 2, label: "车身颜色", value: this.data.vehicleColor })
}.margin({ right: 6 }).layoutWeight(1).justifyContent(FlexAlign.SpaceBetween).height("100%")
Row() {
// Stack({ alignContent: Alignment.TopStart }) {
// Image(this.leftForward)
// .alt($rawfile("images/vehicle/default.png"))
// .width("100%")
// .height("100%")
// .objectFit(ImageFit.Fill)
// Text("左前45度照片").label()
// }.margin({ right: 6 }).layoutWeight(1).height("100%")
Stack({ alignContent: Alignment.TopStart }) {
Image(this.rightBackward)
.alt($rawfile("images/vehicle/default.png"))
.width("100%")
.height("100%")
.objectFit(ImageFit.Fill)
Text("右后45度照片").label()
}.margin({ left: 6 }).layoutWeight(1).height("100%")
}.margin({ right: 6 }).layoutWeight(1)
Row() {
// Stack({ alignContent: Alignment.TopStart }) {
// if (this.leftForward) {
// VideoPlayer({
// isFullScreen: this.isFullScreen,
// showPreview: true,
// attribute: {
// preview: $rawfile("images/vehicle/default.png"),
// type: "network"
// },
// url: this.leftForward
// })
// } else {
// Image($rawfile("images/vehicle/default.png"))
// .width("100%")
// .height("100%")
// .objectFit(ImageFit.Fill)
// }
// Text("左前45度视频").label()
// }.margin({ right: 6 }).layoutWeight(1).height("100%")
Stack({ alignContent: Alignment.TopStart }) {
if (this.rightBackward) {
VideoPlayer({
@ -243,7 +318,6 @@ struct Detail {
Text("右后45度视频").label()
}.margin({ left: 6 }).layoutWeight(1).height("100%")
}.margin({ right: 6 }).layoutWeight(1)
}
.width("100%")
.padding({ left: 6, top: 12, bottom: 12 })

View File

@ -5,7 +5,7 @@ import { util } from '@kit.ArkTS';
const Tag = "CommandService"
interface Message<T = Object> {
export interface Message<T = Object> {
type: CommandType
reqCode: string
body: T
@ -22,15 +22,22 @@ interface CommandBody {
name: string
}
interface ResponseMessage {
export interface ResponseMessage {
code: string
msg: string
}
enum CommandType {
export interface PostCurrentStepMessage {
lineId: string
stepCode: string
stepName: string
}
export enum CommandType {
HandleAlarm = "handleAlarm",
PostCmd = "postCmd",
PostCmdRsp = "postCmdRsp"
PostCmdRsp = "postCmdRsp",
PostCurrentStep = "postCurrentStep"
}
export enum CommandCode {