diff --git a/src/settings/siteSetting.ts b/src/settings/siteSetting.ts
index a594b9e..5d99ddf 100644
--- a/src/settings/siteSetting.ts
+++ b/src/settings/siteSetting.ts
@@ -5,4 +5,4 @@ export const GITHUB_URL = 'http://47.103.100.52:3000/huojin/ZhongYou-Vue3.git';
export const DOC_URL = 'https://help.cpte.com';
// site url
-export const SITE_URL = 'http://www.cpte.com';
+export const SITE_URL = '10.180.9.60:80';
diff --git a/src/views/agvTask/AgvTask.api.ts b/src/views/agvTask/AgvTask.api.ts
index 8975ea5..79dcbd8 100644
--- a/src/views/agvTask/AgvTask.api.ts
+++ b/src/views/agvTask/AgvTask.api.ts
@@ -11,6 +11,8 @@ enum Api {
deleteBatch = '/agvTask/deleteBatch',
importExcel = '/agvTask/importExcel',
exportXls = '/agvTask/exportXls',
+ taskReporter = '/api/robot/reporter/task',
+ callBackTask='/tes/apiv2/callBackTask',
}
/**
@@ -70,3 +72,25 @@ export const saveOrUpdate = (params, isUpdate) => {
let url = isUpdate ? Api.edit : Api.save;
return defHttp.post({ url: url, params }, { isTransformResponse: false });
}
+
+/**
+ * AGV任务上报
+ * @param params
+ */
+export const taskReporter = (params) => {
+ return defHttp.post({url: Api.taskReporter, params}, {
+ joinParamsToUrl: false,
+ isTransformResponse: false
+ });
+}
+
+/**
+ * TES任务上报
+ * @param params
+ */
+export const callBackTask = (params) => {
+ return defHttp.post({url: Api.callBackTask, params}, {
+ joinParamsToUrl: false,
+ isTransformResponse: false
+ });
+}
diff --git a/src/views/agvTask/HikAgvList.vue b/src/views/agvTask/HikAgvList.vue
index 7f209f3..e48c068 100644
--- a/src/views/agvTask/HikAgvList.vue
+++ b/src/views/agvTask/HikAgvList.vue
@@ -53,7 +53,7 @@
import { BasicTable, TableAction } from '/@/components/Table';
import { useListPage } from '/@/hooks/system/useListPage';
import { columns } from './HikAgv.data';
- import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './AgvTask.api';
+ import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, taskReporter } from './AgvTask.api';
import HikAgvModal from './components/HikAgvModal.vue';
import { useUserStore } from '/@/store/modules/user';
import { useMessage } from '/@/hooks/web/useMessage';
@@ -144,6 +144,35 @@
await deleteOne({ id: record.id }, handleSuccess);
}
+ /**
+ * 任务完成事件
+ */
+ async function hanndleComplete(record) {
+ const params = {
+ robotTaskCode: record.id,
+ singleRobotCode: '',
+ extra: {
+ async: '0',
+ values: {
+ method: 'end',
+ carrierCode: record.carrierCode,
+ slotCode: record.endCode,
+ },
+ },
+ };
+ try {
+ const res = await taskReporter(params);
+ if (res && res.code === 'SUCCESS') {
+ createMessage.success('操作成功');
+ handleSuccess();
+ } else {
+ createMessage.error(res.message || '任务处理失败');
+ }
+ } catch (error) {
+ createMessage.error('请求异常: ' + error.message);
+ }
+ }
+
/**
* 批量删除事件
*/
@@ -177,17 +206,28 @@
function getDropDownAction(record) {
return [
{
- label: '详情',
+ label: '任务详情',
onClick: handleDetail.bind(null, record),
},
{
- label: '删除',
+ label: '任务完成',
popConfirm: {
- title: '是否确认删除',
+ title: '是否确认完成?',
+ confirm: hanndleComplete.bind(null, record),
+ placement: 'topLeft',
+ },
+ auth: 'agvTask:data_agv_task:edit',
+ disabled: record.status === 4 || record.status === 1
+ },
+ {
+ label: '任务删除',
+ popConfirm: {
+ title: '是否确认删除?',
confirm: handleDelete.bind(null, record),
placement: 'topLeft',
},
auth: 'agvTask:data_agv_task:delete',
+ disabled: record.status != 1
},
];
}
diff --git a/src/views/agvTask/TesAgvList.vue b/src/views/agvTask/TesAgvList.vue
index a99d445..9648949 100644
--- a/src/views/agvTask/TesAgvList.vue
+++ b/src/views/agvTask/TesAgvList.vue
@@ -53,7 +53,7 @@
import { BasicTable, TableAction } from '/@/components/Table';
import { useListPage } from '/@/hooks/system/useListPage';
import { columns } from './TesAgv.data';
- import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './AgvTask.api';
+ import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, callBackTask } from './AgvTask.api';
import TesAgvModal from './components/TesAgvModal.vue';
import { useUserStore } from '/@/store/modules/user';
import { useMessage } from '/@/hooks/web/useMessage';
@@ -151,6 +151,32 @@
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
}
+ /**
+ * 任务完成事件
+ */
+ async function hanndleComplete(record) {
+ const params = {
+ messageType: 10,
+ content: {
+ bizID: record.id,
+ status: 4,
+ podID: record.carrierCode,
+ },
+ };
+
+ try {
+ const res = await callBackTask(params);
+ if (res && res.returnCode === 0) {
+ createMessage.success('操作成功');
+ handleSuccess();
+ } else {
+ createMessage.error(res.message || '任务处理失败');
+ }
+ } catch (error) {
+ createMessage.error('请求异常: ' + error.message);
+ }
+ }
+
/**
* 成功回调
*/
@@ -177,17 +203,28 @@
function getDropDownAction(record) {
return [
{
- label: '详情',
+ label: '任务详情',
onClick: handleDetail.bind(null, record),
},
{
- label: '删除',
+ label: '任务完成',
popConfirm: {
- title: '是否确认删除',
+ title: '是否确认完成?',
+ confirm: hanndleComplete.bind(null, record),
+ placement: 'topLeft',
+ },
+ auth: 'agvTask:data_agv_task:edit',
+ disabled: record.status === 4 || record.status === 1,
+ },
+ {
+ label: '删除任务',
+ popConfirm: {
+ title: '是否确认删除?',
confirm: handleDelete.bind(null, record),
placement: 'topLeft',
},
auth: 'agvTask:data_agv_task:delete',
+ disabled: record.status != 1,
},
];
}
diff --git a/src/views/agvTask/components/HikAgvForm.vue b/src/views/agvTask/components/HikAgvForm.vue
index 5eb2d89..b1e03c2 100644
--- a/src/views/agvTask/components/HikAgvForm.vue
+++ b/src/views/agvTask/components/HikAgvForm.vue
@@ -14,11 +14,11 @@
-
+
-
+
是否启用
-
+
diff --git a/src/views/base/point/PointList.vue b/src/views/base/point/PointList.vue
index d7626e9..dd22297 100644
--- a/src/views/base/point/PointList.vue
+++ b/src/views/base/point/PointList.vue
@@ -7,7 +7,12 @@
库区
-
+
@@ -19,7 +24,7 @@
状态
-
+
@@ -93,7 +98,7 @@
import { JInputTypeEnum } from '@/enums/cpteEnum';
import JInput from '../../../components/Form/src/jeecg/components/JInput.vue';
import SwitchStatus from '/@/views/base/SwitchStatus.vue';
- import { JDictSelectTag,JSearchSelect } from '@/components/Form';
+ import { JDictSelectTag, JSearchSelect } from '@/components/Form';
const fieldPickers = reactive({});
@@ -141,6 +146,10 @@
width: 120,
fixed: 'right',
},
+ defSort: {
+ column: 'areaId',
+ order: 'asc',
+ },
beforeFetch: async (params) => {
for (let key in fieldPickers) {
if (queryParam[key] && fieldPickers[key]) {
diff --git a/src/views/inventory/Inventory.data.ts b/src/views/inventory/Inventory.data.ts
index ffe435c..a0ec47e 100644
--- a/src/views/inventory/Inventory.data.ts
+++ b/src/views/inventory/Inventory.data.ts
@@ -1,64 +1,74 @@
-import {BasicColumn} from '/@/components/Table';
+import { BasicColumn } from '/@/components/Table';
//列表数据
export const columns: BasicColumn[] = [
- {
- title: '容器',
- align: "center",
- dataIndex: 'stockId_dictText'
- },
{
title: '物料',
- align: "center",
- dataIndex: 'itemId_dictText'
+ align: 'center',
+ dataIndex: 'itemId_dictText',
+ width: 120,
},
{
title: '库位',
- align: "center",
- dataIndex: 'pointId_dictText'
+ align: 'center',
+ dataIndex: 'pointId_dictText',
+ width: 120,
+ },
+ {
+ title: '容器',
+ align: 'center',
+ dataIndex: 'stockId_dictText',
+ width: 120,
},
{
title: '数量',
- align: "center",
- dataIndex: 'quantity'
+ align: 'center',
+ dataIndex: 'quantity',
+ width: 100,
},
{
title: '占用数',
- align: "center",
- dataIndex: 'queuedQty'
+ align: 'center',
+ dataIndex: 'queuedQty',
+ width: 100,
},
{
title: '库存状态',
- align: "center",
- dataIndex: 'status_dictText'
+ align: 'center',
+ dataIndex: 'status_dictText',
+ width: 100,
+
},
{
title: '批次号',
- align: "center",
- dataIndex: 'propC1'
+ align: 'center',
+ dataIndex: 'propC1',
+ width: 100,
},
{
title: '外部仓库',
- align: "center",
- dataIndex: 'whCode'
+ align: 'center',
+ dataIndex: 'whCode',
+ width: 100,
},
{
title: '外部库存状态',
- align: "center",
- dataIndex: 'propC3'
+ align: 'center',
+ dataIndex: 'propC3',
+ width: 110,
},
{
title: '生产日期',
- align: "center",
+ align: 'center',
dataIndex: 'propD1',
- customRender:({text}) =>{
- text = !text ? "" : (text.length > 10 ? text.substr(0,10) : text);
+ width: 100,
+ customRender: ({ text }) => {
+ text = !text ? '' : text.length > 10 ? text.substr(0, 10) : text;
return text;
},
},
{
title: '描述',
- align: "center",
- dataIndex: 'description'
- }
+ align: 'center',
+ dataIndex: 'description',
+ },
];
-
diff --git a/src/views/inventory/InventoryList.vue b/src/views/inventory/InventoryList.vue
index 39aecb6..be96ba1 100644
--- a/src/views/inventory/InventoryList.vue
+++ b/src/views/inventory/InventoryList.vue
@@ -4,23 +4,12 @@