From 746b1998b7b948e56bcda268aadc154371fb4fcd Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 29 十一月 2024 14:26:21 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/page/agvDetail/AgvDetailCreate.jsx | 7 -
zy-acs-flow/src/page/agvDetail/AgvDetailPanel.jsx | 11 ++
zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_04_UP.java | 11 ++
zy-acs-flow/src/page/agvDetail/AgvDetailEdit.jsx | 7 -
zy-acs-flow/src/i18n/zh.js | 3
zy-acs-flow/src/page/vehFaultRec/VehFaultRecList.jsx | 20 ++--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/VehicleFaultDto.java | 21 +++++
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java | 38 ++++++++
zy-acs-flow/src/map/header/FakeFab.jsx | 20 ++--
zy-acs-flow/.env | 8 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java | 13 +++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/AgvDetail.java | 12 ++
zy-acs-flow/src/i18n/en.js | 3
zy-acs-flow/src/page/task/TaskList.jsx | 6
zy-acs-flow/src/map/MapPage.jsx | 3
15 files changed, 127 insertions(+), 56 deletions(-)
diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_04_UP.java b/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_04_UP.java
index bd21377..07170e4 100644
--- a/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_04_UP.java
+++ b/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_04_UP.java
@@ -13,7 +13,16 @@
@Override
public byte[] writeToBytes() {
- return new byte[0];
+
+ return Utils.merge(
+ Utils.reverse(RadixTools.shortToByte((short) this.faultId))
+ , Utils.reverse(RadixTools.hexStringToBytes(this.hexFaultId))
+ , (byte) this.faultStatus
+ , (byte) this.faultLevel
+ , Utils.reverse(RadixTools.intToBytes(this.data1))
+ , Utils.reverse(RadixTools.intToBytes(this.data2))
+ , Utils.reverse(RadixTools.intToBytes(this.flag))
+ );
}
@Override
diff --git a/zy-acs-flow/.env b/zy-acs-flow/.env
index ecc2ec9..3b8a2b1 100644
--- a/zy-acs-flow/.env
+++ b/zy-acs-flow/.env
@@ -1,5 +1,5 @@
-VITE_BASE_IP=localhost
-VITE_BASE_PORT=8088
+# VITE_BASE_IP=localhost
+# VITE_BASE_PORT=8088
-# VITE_BASE_IP=192.168.1.100
-# VITE_BASE_PORT=8080
\ No newline at end of file
+VITE_BASE_IP=192.168.1.100
+VITE_BASE_PORT=8080
\ No newline at end of file
diff --git a/zy-acs-flow/src/i18n/en.js b/zy-acs-flow/src/i18n/en.js
index 911bbb3..de2d753 100644
--- a/zy-acs-flow/src/i18n/en.js
+++ b/zy-acs-flow/src/i18n/en.js
@@ -397,7 +397,8 @@
workTime: "work time",
workDistance: "mileage",
backpack: "backpack",
- password: "password",
+ error: "error",
+ errorTime: "errorTime",
online: 'online',
task: 'task',
},
diff --git a/zy-acs-flow/src/i18n/zh.js b/zy-acs-flow/src/i18n/zh.js
index 77bb5dd..693fa88 100644
--- a/zy-acs-flow/src/i18n/zh.js
+++ b/zy-acs-flow/src/i18n/zh.js
@@ -396,7 +396,8 @@
workTime: "宸ヤ綔鏃堕棿",
workDistance: "绱閲岀▼",
backpack: "鑳岀瘬",
- password: "瀵嗙爜",
+ error: "鏁呴殰",
+ errorTime: "鏁呴殰鏃堕棿",
online: '鍦ㄧ嚎',
task: '浠诲姟',
},
diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx
index 7d4ecfd..3fa87d0 100644
--- a/zy-acs-flow/src/map/MapPage.jsx
+++ b/zy-acs-flow/src/map/MapPage.jsx
@@ -419,8 +419,7 @@
>
<AltRoute />
</Fab>
- <FakeFab
- />
+ <FakeFab />
</>
)}
<Fab
diff --git a/zy-acs-flow/src/map/header/FakeFab.jsx b/zy-acs-flow/src/map/header/FakeFab.jsx
index f39f6d4..0f64e71 100644
--- a/zy-acs-flow/src/map/header/FakeFab.jsx
+++ b/zy-acs-flow/src/map/header/FakeFab.jsx
@@ -17,15 +17,17 @@
const handleToggle = () => {
getFakeSign(null, (res) => {
let pass = true;
- // if (!res) {
- // const pwd = prompt("please enter password:");
- // if (pwd === 'xltys1995') {
- // pass = true;
- // } else {
- // pass = false;
- // alert('Incorrect password');
- // }
- // }
+ if (!res) {
+ const pwd = prompt("please enter password:");
+ if (pwd === 'xltys1995') {
+ pass = true;
+ } else {
+ pass = false;
+ if (!pwd) {
+ alert('Incorrect password');
+ }
+ }
+ }
if (pass) {
setFakeSign(!res, (updatedSign) => {
setFakeRun(updatedSign);
diff --git a/zy-acs-flow/src/page/agvDetail/AgvDetailCreate.jsx b/zy-acs-flow/src/page/agvDetail/AgvDetailCreate.jsx
index edceace..dc54681 100644
--- a/zy-acs-flow/src/page/agvDetail/AgvDetailCreate.jsx
+++ b/zy-acs-flow/src/page/agvDetail/AgvDetailCreate.jsx
@@ -258,13 +258,6 @@
source="backpack"
/>
</Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.agvDetail.password"
- source="password"
- parse={v => v}
- />
- </Grid>
<Grid item xs={6} display="flex" gap={1}>
<StatusSelectInput />
diff --git a/zy-acs-flow/src/page/agvDetail/AgvDetailEdit.jsx b/zy-acs-flow/src/page/agvDetail/AgvDetailEdit.jsx
index 76421d7..95a6cf4 100644
--- a/zy-acs-flow/src/page/agvDetail/AgvDetailEdit.jsx
+++ b/zy-acs-flow/src/page/agvDetail/AgvDetailEdit.jsx
@@ -240,13 +240,6 @@
source="backpack"
/>
</Stack>
- <Stack direction='row' gap={2}>
- <TextInput
- label="table.field.agvDetail.password"
- source="password"
- parse={v => v}
- />
- </Stack>
</Grid>
<Grid item xs={12} md={4}>
diff --git a/zy-acs-flow/src/page/agvDetail/AgvDetailPanel.jsx b/zy-acs-flow/src/page/agvDetail/AgvDetailPanel.jsx
index 031ffd0..f9fdda9 100644
--- a/zy-acs-flow/src/page/agvDetail/AgvDetailPanel.jsx
+++ b/zy-acs-flow/src/page/agvDetail/AgvDetailPanel.jsx
@@ -186,11 +186,16 @@
</Grid>
<Grid item xs={6}>
<PanelTypography
- title="table.field.agvDetail.password"
- property={record.password}
+ title="table.field.agvDetail.error"
+ property={record.error}
/>
</Grid>
-
+ <Grid item xs={6}>
+ <PanelTypography
+ title="table.field.agvDetail.errorTime"
+ property={record.errorTime}
+ />
+ </Grid>
</Grid>
</CardContent>
</Card >
diff --git a/zy-acs-flow/src/page/task/TaskList.jsx b/zy-acs-flow/src/page/task/TaskList.jsx
index 5ec10b1..82b4880 100644
--- a/zy-acs-flow/src/page/task/TaskList.jsx
+++ b/zy-acs-flow/src/page/task/TaskList.jsx
@@ -89,14 +89,14 @@
<ReferenceInput source="taskType" label="table.field.task.taskType" reference="taskType">
<AutocompleteInput label="table.field.task.taskType" optionText="name" filterToQuery={(val) => ({ name: val })} />
</ReferenceInput>,
- <ReferenceInput source="agvId" label="table.field.task.agvId" reference="agv">
+ <ReferenceInput source="agvId" label="table.field.task.agvId" reference="agv" alwaysOn>
<AutocompleteInput label="table.field.task.agvId" optionText="uuid" filterToQuery={(val) => ({ uuid: val })} />
</ReferenceInput>,
// <DateInput source="ioTime" label="table.field.task.ioTime" />,
// <DateInput source="startTime" label="table.field.task.startTime" />,
// <DateInput source="endTime" label="table.field.task.endTime" />,
// <DateInput source="errTime" label="table.field.task.errTime" />,
- <ReferenceInput source="oriSta" label="table.field.task.oriSta" reference="sta" alwaysOn>
+ <ReferenceInput source="oriSta" label="table.field.task.oriSta" reference="sta">
<AutocompleteInput label="table.field.task.oriSta" optionText="staNo" filterToQuery={(val) => ({ staNo: val })} />
</ReferenceInput>,
<ReferenceInput source="oriLoc" label="table.field.task.oriLoc" reference="loc" alwaysOn>
@@ -105,7 +105,7 @@
<ReferenceInput source="oriCode" label="table.field.task.oriCode" reference="code">
<AutocompleteInput label="table.field.task.oriCode" optionText="data" filterToQuery={(val) => ({ data: val })} />
</ReferenceInput>,
- <ReferenceInput source="destSta" label="table.field.task.destSta" reference="sta" alwaysOn>
+ <ReferenceInput source="destSta" label="table.field.task.destSta" reference="sta">
<AutocompleteInput label="table.field.task.destSta" optionText="staNo" filterToQuery={(val) => ({ staNo: val })} />
</ReferenceInput>,
<ReferenceInput source="destLoc" label="table.field.task.destLoc" reference="loc" alwaysOn>
diff --git a/zy-acs-flow/src/page/vehFaultRec/VehFaultRecList.jsx b/zy-acs-flow/src/page/vehFaultRec/VehFaultRecList.jsx
index 35d7021..b40f636 100644
--- a/zy-acs-flow/src/page/vehFaultRec/VehFaultRecList.jsx
+++ b/zy-acs-flow/src/page/vehFaultRec/VehFaultRecList.jsx
@@ -63,7 +63,7 @@
<DateInput label='common.time.before' source="timeEnd" alwaysOn />,
<TextInput source="uuid" label="table.field.vehFaultRec.uuid" />,
- <ReferenceInput source="agvId" label="table.field.vehFaultRec.agvId" reference="agv">
+ <ReferenceInput source="agvId" label="table.field.vehFaultRec.agvId" reference="agv" alwaysOn>
<AutocompleteInput label="table.field.vehFaultRec.agvId" optionText="uuid" filterToQuery={(val) => ({ uuid: val })} />
</ReferenceInput>,
<TextInput source="faultNo" label="table.field.vehFaultRec.faultNo" />,
@@ -113,7 +113,7 @@
actions={(
<TopToolbar>
<FilterButton />
- <MyCreateButton onClick={() => { setCreateDialog(true) }} />
+ {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
<SelectColumnsButton preferenceKey='vehFaultRec' />
<MyExportButton />
</TopToolbar>
@@ -122,11 +122,11 @@
>
<StyledDatagrid
preferenceKey='vehFaultRec'
- bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
+ bulkActionButtons={false}
rowClick={(id, resource, record) => false}
expand={() => <VehFaultRecPanel />}
expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo']}
+ omit={['id', 'uuid', 'createTime', 'createBy', 'memo']}
>
<NumberField source="id" />
<TextField source="uuid" label="table.field.vehFaultRec.uuid" />
@@ -145,20 +145,20 @@
<DateField source="resetTime" label="table.field.vehFaultRec.resetTime" showTime />
<TextField source="state" label="table.field.vehFaultRec.state" />
- <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
+ {/* <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
<TextField source="nickname" />
</ReferenceField>
<DateField source="updateTime" label="common.field.updateTime" showTime />
<ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
<TextField source="nickname" />
- </ReferenceField>
- <DateField source="createTime" label="common.field.createTime" showTime />
- <BooleanField source="statusBool" label="common.field.status" sortable={false} />
+ </ReferenceField> */}
+ {/* <DateField source="createTime" label="common.field.createTime" showTime /> */}
+ {/* <BooleanField source="statusBool" label="common.field.status" sortable={false} /> */}
<TextField source="memo" label="common.field.memo" sortable={false} />
- <WrapperField cellClassName="opt" label="common.field.opt">
+ {/* <WrapperField cellClassName="opt" label="common.field.opt">
<EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
<DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
- </WrapperField>
+ </WrapperField> */}
</StyledDatagrid>
</List>
<VehFaultRecCreate
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/VehicleFaultDto.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/VehicleFaultDto.java
index 7671d26..e8e7b85 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/VehicleFaultDto.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/VehicleFaultDto.java
@@ -1,13 +1,32 @@
package com.zy.acs.manager.core.domain;
+import com.zy.acs.common.domain.protocol.IMessageBody;
import lombok.Data;
/**
* Created by vincent on 8/19/2024
*/
@Data
-public class VehicleFaultDto {
+public class VehicleFaultDto<T extends IMessageBody> {
private String vehicle;
+
+ private long timestamp;
+
+ private T t;
+
+ public VehicleFaultDto() {
+ }
+
+ public VehicleFaultDto(String vehicle, T t) {
+ this.vehicle = vehicle;
+ this.t = t;
+ }
+
+ public VehicleFaultDto(String vehicle, long timestamp, T t) {
+ this.vehicle = vehicle;
+ this.timestamp = timestamp;
+ this.t = t;
+ }
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
index f3c07bb..7fc2714 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
@@ -7,7 +7,9 @@
import com.zy.acs.common.utils.GsonUtils;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.framework.common.Cools;
+import com.zy.acs.framework.common.DateUtils;
import com.zy.acs.manager.core.domain.BackpackDto;
+import com.zy.acs.manager.core.domain.VehicleFaultDto;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.Code;
@@ -122,9 +124,18 @@
if (msgBody instanceof AGV_04_UP) {
AGV_04_UP agv_04_up = (AGV_04_UP) msgBody;
log.info("Agv [{}] 鏁呴殰鏁版嵁鍖� ===>> {}", protocol.getAgvNo(), JSON.toJSONString(agv_04_up));
-// faultProcessor.execute(new VehicleFaultDto());
+ faultProcessor.execute(new VehicleFaultDto<>(protocol.getAgvNo(), protocol.getTimestamp(), agv_04_up));
+ detail.setError(String.valueOf(agv_04_up.getFaultId()));
+ detail.setErrorTime(new Date());
}
+ // 鏁呴殰澶嶄綅
+ if (!Cools.isEmpty(detail.getError()) && !"NONE".equals(detail.getError())) {
+ assert detail.getErrorTime() != null;
+ if (DateUtils.diffToSeconds(detail.getErrorTime(), new Date()) > 20) {
+ detail.setError("NONE");
+ }
+ }
if (!agvDetailService.updateById(detail)) {
log.error("Agv [{}] 璇︽儏鏇存柊澶辫触 锛侊紒锛�", protocol.getAgvNo());
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
index de96d29..ea4d207 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
@@ -1,13 +1,22 @@
package com.zy.acs.manager.core.service;
+import com.zy.acs.common.domain.protocol.AGV_04_UP;
+import com.zy.acs.common.utils.GsonUtils;
+import com.zy.acs.framework.common.Cools;
+import com.zy.acs.framework.common.RadixTools;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.manager.core.domain.VehicleFaultDto;
+import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.VehFaultRec;
+import com.zy.acs.manager.manager.service.AgvDetailService;
+import com.zy.acs.manager.manager.service.AgvService;
import com.zy.acs.manager.manager.service.VehFaultRecService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
+
+import java.util.Date;
/**
* Created by vincent on 8/19/2024
@@ -20,15 +29,29 @@
private VehFaultRecService vehFaultRecService;
@Autowired
private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private AgvService agvService;
+ @Autowired
+ private AgvDetailService agvDetailService;
@Async
- public void execute(VehicleFaultDto dto) {
+ public void execute(VehicleFaultDto<AGV_04_UP> dto) {
try {
+ String vehicle = dto.getVehicle();
+ AGV_04_UP agv_04_up = dto.getT();
+ Date errorTime = new Date(dto.getTimestamp());
+
+ Agv agv = agvService.selectByUuid(vehicle);
VehFaultRec vehFaultRec = new VehFaultRec();
vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
-// vehFaultRec.setFaultHex();
-
+ vehFaultRec.setAgvId(agv.getId());
+ vehFaultRec.setFaultNo(String.valueOf(agv_04_up.getFaultId()));
+ vehFaultRec.setFaultHex(agv_04_up.getHexFaultId());
+ vehFaultRec.setFaultLev(agv_04_up.getFaultLevel());
+ vehFaultRec.setFaultData(GsonUtils.toJson(Cools.add("data1", agv_04_up.getData1()).add("data2", agv_04_up.getData2())));
+ vehFaultRec.setHappenTime(errorTime);
+ vehFaultRec.setProtocol(RadixTools.bytesToHexStr(agv_04_up.writeToBytes()));
if (!vehFaultRecService.save(vehFaultRec)) {
log.error("{}鍙疯溅杈嗘晠闅滐紒璁板綍鏁呴殰淇℃伅澶辫触......", dto.getVehicle());
@@ -39,4 +62,13 @@
}
}
+ public static void main(String[] args) {
+ short ss = 8193; // 2001
+ byte[] bytes = RadixTools.shortToByte(ss);
+// byte[] reverse = Utils.reverse(bytes);
+ System.out.println(RadixTools.bytesToHexStr(bytes));
+
+
+ }
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/AgvDetail.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/AgvDetail.java
index 57ec38b..dafe940 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/AgvDetail.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/AgvDetail.java
@@ -174,10 +174,16 @@
private String backpack;
/**
- * 瀵嗙爜
+ * 鏁呴殰淇℃伅
*/
- @ApiModelProperty(value= "瀵嗙爜")
- private String password;
+ @ApiModelProperty(value= "鏁呴殰淇℃伅")
+ private String error;
+
+ /**
+ * 鏁呴殰鏃堕棿
+ */
+ @ApiModelProperty(value= "鏁呴殰鏃堕棿")
+ private Date errorTime;
/**
* 鐘舵��
--
Gitblit v1.9.1