1
Huangxiaoqiang-03
2024-11-01 6e9f630e4e12738d98241b684e6227e02010b6c5
1
已删除1个文件
已修改29个文件
已添加17个文件
1846 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task_hty.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Client/src/router/viewGird.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_hty.vue 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/34759ef6-5185-4202-aea9-0e01a3ee10f2.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/58ea606d-ab88-4707-89f0-5981c83956f1.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/603bdb7a-2832-4a6c-ae3d-6e9e5ba8c276.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/82cd292b-85cb-46e8-8b2c-01490a3dfa79.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8aacaf85-dce8-47fa-9c53-6e1f7b6ace25.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Enum/TaskEnum.cs 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Enum/TaskRelocationStatusEnum.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/Task_HtyController.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/GetStackerObject.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/07acc35c-ead1-4994-b934-522e5a78c90a.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3353fedf-ce91-4adc-bdb9-d8450ade5d0a.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3b906d3f-9923-4824-a640-34936ca6bee2.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/a25ab2df-8d0e-478a-8bf5-7ede88f4c554.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/f9e8d8bc-d17e-44b5-842b-88f7aaeb9bc9.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/TaskEnum.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/LogHelper/Logger.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs 226 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Log/System/API请求/2024-11-01/入库任务下发241101.txt 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Log/System/API请求/2024-11-01/出库库任务下发241101.txt 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Log/System/API请求/2024-11-01/移库任务下发241101.txt 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task_hty.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
import gridBody from './extend/taskExecuteDetail.vue'
let extension = {
    components: {
        //查询界面扩展组件
        gridHeader: '',
        gridBody: gridBody,
        gridFooter: '',
        //新建、编辑弹出框扩展组件
        modelHeader: '',
        modelBody: '',
        modelFooter: ''
    },
    tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
    buttons: { view: [], box: [], detail: [] }, //扩展的按钮
    methods: {
        //下面这些方法可以保留也可以删除
        onInit() {
            // this.$Notice.success({ title: this.detailOptions.cnName + ',查询结果', desc: '返回的对象:' + JSON.stringify(data) });
            var previousButton = this.buttons.find((x) => x.value == "Previous");
            if (previousButton) previousButton.hidden = true;
            var nextButton = this.buttons.find((x) => x.value == "Next");
            if (nextButton) nextButton.hidden = true;
            var recoveryButton = this.buttons.find((x) => x.value == "TaskRecovery");
            if (recoveryButton) recoveryButton.hidden = true;
            //扩展页面初始化操作
            this.columns.push({
                field: '操作',
                title: '操作',
                width: 70,
                fixed: 'right',
                align: 'center',
                formatter: (row) => {
                    return (
                        '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">查看</i>'
                    );
                },
                click: (row) => {
                    this.$refs.gridBody.open(row);
                }
            });
        },
        onInited() {
            //框架初始化配置后
            //如果要配置明细表,在此方法操作
            //this.detailOptions.columns.forEach(column=>{ });
        },
        searchBefore(param) {
            //界面查询前,可以给param.wheres添加查询参数
            //返回false,则不会执行查询
            return true;
        },
        searchAfter(result) {
            //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
            return true;
        },
        addBefore(formData) {
            //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
            return true;
        },
        updateBefore(formData) {
            //编辑保存前formData为对象,包括明细表、删除行的Id
            return true;
        },
        rowClick({ row, column, event }) {
            //查询界面点击行事件
            this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
        },
        modelOpenAfter(row) {
            //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
            //(1)判断是编辑还是新建操作: this.currentAction=='Add';
            //(2)给弹出框设置默认值
            //(3)this.editFormFields.字段='xxx';
            //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
            //看不懂就把输出看:console.log(this.editFormOptions)
        }
    }
};
export default extension;
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/src/router/viewGird.js
@@ -53,6 +53,11 @@
    path: '/task',
    name: 'task',
    component: () => import('@/views/taskinfo/task.vue')
  },
  {
    path: '/task_hty',
    name: 'task_hty',
    component: () => import('@/views/taskinfo/task_hty.vue')
  }, {
    path: '/router',
    name: 'router',
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue
@@ -52,7 +52,7 @@
        },
        {
          title: "任务状态",
          field: "taskState",
          field: "taskStatus",
          type: "selectList",
          dataKey: "taskState",
          data: [],
@@ -111,7 +111,7 @@
        bind: { key: "taskType", data: [] },
      },
      {
        field: "taskState",
        field: "taskStatus",
        title: "任务状态",
        type: "int",
        width: 150,
@@ -132,20 +132,20 @@
        width: 120,
        align: "left",
      },
      {
        field: "currentAddress",
        title: "当前位置",
        type: "string",
        width: 120,
        align: "left",
      },
      {
        field: "nextAddress",
        title: "下一位置",
        type: "string",
        width: 120,
        align: "left",
      },
      // {
      //   field: "currentAddress",
      //   title: "当前位置",
      //   type: "string",
      //   width: 120,
      //   align: "left",
      // },
      // {
      //   field: "nextAddress",
      //   title: "下一位置",
      //   type: "string",
      //   width: 120,
      //   align: "left",
      // },
      {
        field: "exceptionMessage",
        title: "异常信息",
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_hty.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,236 @@
<template>
  <view-grid
    ref="grid"
    :columns="columns"
    :detail="detail"
    :editFormFields="editFormFields"
    :editFormOptions="editFormOptions"
    :searchFormFields="searchFormFields"
    :searchFormOptions="searchFormOptions"
    :table="table"
    :extend="extend"
  >
  </view-grid>
</template>
  <script>
import extend from "@/extension/taskinfo/task_hty.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
  setup() {
    const table = ref({
      key: "taskId",
      footer: "Foots",
      cnName: "任务历史信息",
      name: "task_hty",
      url: "/Task_Hty/",
      sortName: "CreateDate",
    });
    const editFormFields = ref({});
    const editFormOptions = ref([]);
    const searchFormFields = ref({
      taskNum: "",
      palletCode: "",
      roadway: "",
      sourceAddress: "",
      targetAddress: "",
      currentAddress: "",
      nextAddress: "",
      creater: "",
      createDate: "",
    });
    const searchFormOptions = ref([
      [
        { title: "任务号", field: "taskNum", type: "int" },
        { title: "托盘编号", field: "palletCode", type: "like" },
        {
          title: "任务类型",
          field: "taskType",
          type: "selectList",
          dataKey: "taskType",
          data: [],
        },
        {
          title: "任务状态",
          field: "taskStatus",
          type: "selectList",
          dataKey: "taskState",
          data: [],
        },
      ],
      [
        { title: "起始地址", field: "sourceAddress", type: "like" },
        { title: "目标地址", field: "targetAddress", type: "like" },
        // { title: "当前位置", field: "currentAddress", type: "like" },
        // { title: "下一位置", field: "nextAddress", type: "like" },
      ],
      [
        { title: "巷道号", field: "roadway", type: "like" },
        { title: "创建人", field: "creater", type: "like" },
        { title: "创建时间", field: "createDate", type: "datetime" },
      ],
    ]);
    const columns = ref([
      {
        field: "taskId",
        title: "TaskId",
        type: "int",
        width: 90,
        hidden: true,
        readonly: true,
        require: true,
        align: "left",
      },
      {
        field: "taskNum",
        title: "任务号",
        type: "int",
        width: 90,
        align: "left",
      },
      {
        field: "palletCode",
        title: "托盘编号",
        type: "string",
        width: 200,
        align: "left",
      },
      {
        field: "roadway",
        title: "巷道号",
        type: "string",
        width: 90,
        align: "left",
      },
      {
        field: "taskType",
        title: "任务类型",
        type: "int",
        width: 90,
        align: "left",
        bind: { key: "taskType", data: [] },
      },
      {
        field: "taskStatus",
        title: "任务状态",
        type: "int",
        width: 150,
        align: "left",
        bind: { key: "taskState", data: [] },
      },
      {
        field: "sourceAddress",
        title: "起始地址",
        type: "int",
        width: 120,
        align: "left",
      },
      {
        field: "targetAddress",
        title: "目标地址",
        type: "string",
        width: 120,
        align: "left",
      },
      // {
      //   field: "currentAddress",
      //   title: "当前位置",
      //   type: "string",
      //   width: 120,
      //   align: "left",
      // },
      // {
      //   field: "nextAddress",
      //   title: "下一位置",
      //   type: "string",
      //   width: 120,
      //   align: "left",
      // },
      {
        field: "exceptionMessage",
        title: "异常信息",
        type: "string",
        width: 90,
        align: "left",
        hidden: true,
      },
      {
        field: "grade",
        title: "优先级",
        type: "int",
        width: 80,
        align: "left",
      },
      {
        field: "dispatchertime",
        title: "任务下发时间",
        type: "datetime",
        width: 150,
        align: "left",
      },
      {
        field: "wMSId",
        title: "WMS任务主键",
        type: "int",
        width: 120,
        align: "left",
        hidden: true,
      },
      {
        field: "creater",
        title: "创建人",
        type: "string",
        width: 90,
        align: "left",
      },
      {
        field: "createDate",
        title: "创建时间",
        type: "datetime",
        width: 150,
        align: "left",
      },
      {
        field: "modifier",
        title: "修改人",
        type: "string",
        width: 100,
        align: "left",
      },
      {
        field: "modifyDate",
        title: "修改时间",
        type: "datetime",
        width: 160,
        align: "left",
      },
      {
        field: "remark",
        title: "备注",
        type: "string",
        width: 100,
        align: "left",
        hidden: true,
      },
    ]);
    const detail = ref({
      cnName: "",
      table: "",
      columns: [],
      sortName: "",
      key: "",
    });
    return {
      table,
      extend,
      editFormFields,
      editFormOptions,
      searchFormFields,
      searchFormOptions,
      columns,
      detail,
    };
  },
});
</script>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/34759ef6-5185-4202-aea9-0e01a3ee10f2.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/58ea606d-ab88-4707-89f0-5981c83956f1.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/603bdb7a-2832-4a6c-ae3d-6e9e5ba8c276.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/82cd292b-85cb-46e8-8b2c-01490a3dfa79.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8aacaf85-dce8-47fa-9c53-6e1f7b6ace25.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Enum/TaskEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,243 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEA_Core.Enums
{
    #region ä»»åŠ¡ç±»åž‹
    /// <summary>
    /// ä»»åŠ¡ç±»åž‹   100 å‡ºåº“;盘点出库 101; 102 åˆ†æ‹£å‡ºåº“;103 è´¨æ£€å‡ºåº“;200 å…¥åº“;盘点入库 201;分拣入库 202;质检入库 203;移库 300;库内移库 301;库外移库 302
    /// </summary>
    public enum TaskTypeEnum
    {
        /// <summary>
        /// å‡ºåº“ =100
        /// </summary>
        [Description("出库")]
        Outbound = 100,
        /// <summary>
        /// ç›˜ç‚¹å‡ºåº“
        /// </summary>
        [Description("盘点出库")]
        OutInventory = 101,
        /// <summary>
        /// åˆ†æ‹£å‡ºåº“
        /// </summary>
        [Description("分拣出库")]
        OutPick = 102,
        /// <summary>
        /// è´¨æ£€å‡ºåº“
        /// </summary>
        [Description("质检出库")]
        OutQuality = 103,
        /// <summary>
        /// å‡ºç©º
        /// </summary>
        [Description("出空")]
        PalletOutbound = 104,
        /// <summary>
        /// è¡¥ç©º
        /// </summary>
        [Description("补空")]
        PalletFillOutbound = 105,
        /// <summary>
        /// å…¥åº“
        /// </summary>
        [Description("入库")]
        Inbound = 200,
        /// <summary>
        /// ç›˜ç‚¹å…¥åº“
        /// </summary>
        [Description("盘点入库")]
        InInventory = 201,
        /// <summary>
        /// åˆ†æ‹£å…¥åº“
        /// </summary>
        [Description("分拣入库")]
        InPick = 202,
        /// <summary>
        /// è´¨æ£€å…¥åº“
        /// </summary>
        [Description("质检入库")]
        InQuality = 203,
        /// <summary>
        /// å…¥ç©º
        /// </summary>
        [Description("入空")]
        PalletInbound = 204,
        /// <summary>
        /// å›žç©º
        /// </summary>
        [Description("回空")]
        PalletReturnInbound = 205,
        /// <summary>
        /// ç§»åº“
        /// </summary>
        [Description("移库")]
        Relocation = 300,
        /// <summary>
        /// åº“内移库
        /// </summary>
        [Description("库内移库")]
        RelocationIn = 301,
        /// <summary>
        /// åº“外移库
        /// </summary>
        [Description("库外移库")]
        RelocationOut = 302,
        [Description("AGV搬运")]
        AGVCarry = 500,
    }
    #endregion ä»»åŠ¡ç±»åž‹
    #region å…¥åº“任务状态
    /// <summary>
    /// å…¥åº“任务状态
    /// </summary>
    public enum InTaskStatusEnum
    {
        /// <summary>
        /// æ–°å»ºå…¥åº“任务
        /// </summary>
        [Description("新建")]
        InNew = 200,
        /// <summary>
        /// å †åž›æœºå…¥åº“执行中
        /// </summary>
        [Description("堆垛机入库执行中")]
        SC_InExecuting = 230,
        /// <summary>
        /// å †åž›æœºå…¥åº“完成
        /// </summary>
        [Description("堆垛机入库完成")]
        SC_InFinish = 235,
        /// <summary>
        /// å…¥åº“任务完成
        /// </summary>
        [Description("入库任务完成")]
        InFinish = 290,
        /// <summary>
        /// å…¥åº“任务取消
        /// </summary>
        [Description("入库任务取消")]
        InCancel = 298,
        /// <summary>
        /// å…¥åº“任务异常
        /// </summary>
        [Description("入库任务异常")]
        InException = 299,
        /// <summary>
        /// æ–°å»ºç§»åº“任务
        /// </summary>
        [Description("新建移库任务")]
        RelocationNew = 300,
        /// <summary>
        /// ç§»åº“任务完成
        /// </summary>
        [Description("移库任务完成")]
        RelocationFinish = 310,
        /// <summary>
        /// ç§»åº“任务执行中
        /// </summary>
        [Description("移库任务执行中")]
        RelocationExecuting = 320,
        /// <summary>
        /// ç§»åº“任务取消
        /// </summary>
        [Description("移库任务取消")]
        RelocationCancel = 330,
        /// <summary>
        /// ç§»åº“任务异常
        /// </summary>
        [Description("移库任务异常")]
        RelocationException = 340,
    }
    #endregion å…¥åº“任务状态
    /// <summary>
    /// å‡ºåº“任务状态
    /// </summary>
    public enum OutTaskStatusEnum
    {
        /// <summary>
        /// æ–°å»ºä»»åŠ¡
        /// </summary>
        [Description("新建")]
        OutNew = 100,
        /// <summary>
        /// å †åž›æœºå‡ºåº“执行中
        /// </summary>
        [Description("堆垛机出库执行中")]
        SC_OutExecuting = 130,
        /// <summary>
        /// å †åž›æœºå‡ºåº“完成
        /// </summary>
        [Description("堆垛机出库完成")]
        SC_OutFinish = 135,
        /// <summary>
        /// å‡ºåº“任务完成
        /// </summary>
        [Description("出库任务完成")]
        OutFinish = 190,
        /// <summary>
        /// å‡ºåº“任务取消
        /// </summary>
        [Description("出库任务取消")]
        OutCancel = 198,
        /// <summary>
        /// å‡ºåº“任务异常
        /// </summary>
        [Description("出库任务异常")]
        OutException = 199
    }
    public enum AGVTaskStatusEnum
    {
        [Description("新建")]
        AGV_New = 500,
        [Description("执行中")]
        AGV_Executing = 510,
        [Description("完成")]
        AGV_Finish = 520
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Enum/TaskRelocationStatusEnum.cs
ÎļþÒÑɾ³ý
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs
@@ -36,7 +36,7 @@
        /// <summary>
        /// ä»»åŠ¡çŠ¶æ€
        /// </summary>
        public int TaskState { get; set; }
        public int TaskStatus { get; set; }
        /// <summary>
        /// èµ·ç‚¹
@@ -48,6 +48,13 @@
        /// </summary>
        public string TargetAddress {  get; set; }
        public string CurrentAddress { get; set; }
        /// <summary>
        /// ç»ˆç‚¹
        /// </summary>
        public string NextAddress { get; set; }
        /// <summary>
        /// ä¼˜å…ˆçº§
        /// </summary>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -75,7 +75,7 @@
        [ImporterHeader(Name = "任务状态")]
        [ExporterHeader(DisplayName = "任务状态")]
        [SugarColumn(IsNullable = false, ColumnDescription = "任务状态")]
        public int TaskState { get; set; }
        public int TaskStatus { get; set; }
        /// <summary>
        /// èµ·å§‹åœ°å€
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs
@@ -75,7 +75,7 @@
        [ImporterHeader(Name = "任务状态")]
        [ExporterHeader(DisplayName = "任务状态")]
        [SugarColumn(IsNullable = false, ColumnDescription = "任务状态")]
        public int TaskState { get; set; }
        public int TaskStatus { get; set; }
        /// <summary>
        /// èµ·å§‹åœ°å€
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs
@@ -21,6 +21,7 @@
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_Core.Caches;
using WIDESEAWCS_QuartzJob.DeviceEnum;
using WIDESEA_Core.Enums;
namespace WIDESEAWCS_WCSServer.Controllers.System
{
@@ -172,6 +173,28 @@
                        {
                            List<object> data = new List<object>();
                            #region TaskTypeEnum
                            {
                                Type type = typeof(TaskTypeEnum);
                                List<int> enums = Enum.GetValues(typeof(TaskTypeEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(TaskTypeEnum).GetField(((TaskTypeEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            #endregion
                            #region TaskInboundTypeEnum
                            {
                                Type type = typeof(TaskInboundTypeEnum);
@@ -289,6 +312,28 @@
                            }
                            #endregion
                            #region InTaskStatusEnum
                            {
                                Type type = typeof(InTaskStatusEnum);
                                List<int> enums = Enum.GetValues(typeof(InTaskStatusEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(InTaskStatusEnum).GetField(((InTaskStatusEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            #endregion
                            #region TaskOutStatusEnum
                            {
                                Type type = typeof(TaskOutStatusEnum);
@@ -311,6 +356,28 @@
                            }
                            #endregion
                            #region OutTaskStatusEnum
                            {
                                Type type = typeof(OutTaskStatusEnum);
                                List<int> enums = Enum.GetValues(typeof(OutTaskStatusEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(OutTaskStatusEnum).GetField(((OutTaskStatusEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            #endregion
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/Task_HtyController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_WCSServer.Controllers.Task
{
    [Route("api/Task_Hty")]
    [ApiController]
    public class Task_HtyController : ApiBaseController<ITask_HtyService, Dt_Task_Hty>
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        public Task_HtyController(ITask_HtyService service, IHttpContextAccessor httpContextAccessor) : base(service)
        {
            _httpContextAccessor = httpContextAccessor;
        }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
@@ -46,8 +46,8 @@
//builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
builder.Services.AddDbSetup();//Db å¯åŠ¨æœåŠ¡
builder.Services.AddScoped<QuartzJobCreateDataTabel>();
builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
//builder.Services.AddScoped<QuartzJobCreateDataTabel>();
//builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
builder.Services.AddAutoMapperSetup();
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs
@@ -22,6 +22,7 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Enums;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
@@ -48,14 +49,14 @@
                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskId == taskId);
                if (task == null) return;
                int taskNum = task.TaskNum;
                int taskState = task.TaskState;
                int TaskStatus = task.TaskStatus;
                if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
                if (!int.TryParse(Enum.Parse<OutTaskStatusEnum>(TaskStatus.ToString()).ToString(), out int result))
                {
                    if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
                        isNormal = false;
                }
                else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
                else if (!int.TryParse(Enum.Parse<InTaskStatusEnum>(TaskStatus.ToString()).ToString(), out result))
                {
                    if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish)
                        isNormal = false;
@@ -66,7 +67,7 @@
                    IsNormal = isNormal,
                    TaskNum = taskNum,
                    TaskId = taskId,
                    TaskState = taskState,
                    TaskState = TaskStatus,
                    Description = description,
                    CurrentAddress = task.CurrentAddress,
                    NextAddress = task.NextAddress,
@@ -90,14 +91,14 @@
                    Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == item);
                    if (task == null) return;
                    int taskNum = task.TaskNum;
                    int taskState = task.TaskState;
                    int TaskStatus = task.TaskStatus;
                    if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result))
                    if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(TaskStatus.ToString()).ToString(), out int result))
                    {
                        if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish)
                            isNormal = false;
                    }
                    else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result))
                    else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(TaskStatus.ToString()).ToString(), out result))
                    {
                        if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish)
                            isNormal = false;
@@ -108,7 +109,7 @@
                        IsNormal = isNormal,
                        TaskNum = taskNum,
                        TaskId = task.TaskId,
                        TaskState = taskState,
                        TaskState = TaskStatus,
                        Description = description,
                        CurrentAddress = task.CurrentAddress,
                        NextAddress = task.NextAddress,
@@ -187,7 +188,7 @@
                    {
                        throw new Exception($"任务类型错误,未找到该任务类型,任务号:【{taskNum}】,任务类型:【{task.TaskType}】");
                    }
                    active = steps.IndexOf(task.TaskState) + 1;
                    active = steps.IndexOf(task.TaskStatus) + 1;
                }
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -35,7 +35,6 @@
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.DB.Models;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.Enum;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
@@ -43,6 +42,8 @@
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_Core.Helper;
using WIDESEA_Core.Enums;
using WIDESEAWCS_Core.BaseRepository;
namespace WIDESEAWCS_TaskInfoService
{
@@ -50,6 +51,7 @@
    {
        private readonly IRouterService _routerService;
        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository;
        private readonly IMapper _mapper;
        private readonly ITask_HtyService _task_HtyService;
@@ -66,10 +68,12 @@
        public List<int> TaskInboundTypes => typeof(TaskInboundTypeEnum).GetEnumIndexList();
        public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList();
        public List<int> TaskTypeEnums => typeof(TaskTypeEnum).GetEnumIndexList();
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, ITask_HtyRepository task_HtyRepository) : base(BaseDal)
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, IUnitOfWorkManage unitOfWorkManage, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, ITask_HtyRepository task_HtyRepository) : base(BaseDal)
        {
            _routerService = routerService;
            _unitOfWorkManage = unitOfWorkManage;
            _taskExecuteDetailService = taskExecuteDetailService;
            _taskExecuteDetailRepository = taskExecuteDetailRepository;
            _mapper = mapper;
@@ -88,25 +92,24 @@
            try
            {
                List<Dt_Task> tasks = new List<Dt_Task>();
                _unitOfWorkManage.BeginTran();
                foreach (var item in taskDTOs)
                {
                    if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null)
                    {
                        continue;
                        throw new Exception($"有重复任务");
                    }
                    Dt_Task task = _mapper.Map<Dt_Task>(item);
                    task.Creater = "WMS";
                    tasks.Add(task);
                }
                BaseDal.AddData(tasks);
                _taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskNum).ToList(), "接收WMS任务");
                content = WebResponseContent.Instance.OK("成功");
                _unitOfWorkManage.CommitTran();
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error($"任务接收错误,错误信息:{ex.Message}");
                _unitOfWorkManage.RollbackTran();
                content = WebResponseContent.Instance.Error($"{ex.Message}");
            }
            return content;
        }
@@ -130,7 +133,7 @@
                    RoadWay = "SC01",
                    SourceAddress = sourceAddress,
                    TargetAddress = "SC01",
                    TaskState = TaskInStatusEnum.InNew.ObjToInt(),
                    TaskStatus = TaskInStatusEnum.InNew.ObjToInt(),
                    Id = 0,
                    TaskType = TaskInboundTypeEnum.Inbound.ObjToInt()
                };
@@ -152,7 +155,7 @@
        /// <returns></returns>
        public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress)
        {
            return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt() || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.SC_OutFinish.ObjToInt()) && x.CurrentAddress == currentAddress, TaskOrderBy);
            return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt() || TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.SC_OutFinish.ObjToInt()) && x.CurrentAddress == currentAddress, TaskOrderBy);
        }
        /// <summary>
@@ -163,7 +166,7 @@
        /// <returns></returns>
        public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress)
        {
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskState == TaskInStatusEnum.Line_InExecuting.ObjToInt() || x.TaskState == TaskOutStatusEnum.Line_OutExecuting.ObjToInt()), TaskOrderBy);
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskStatus == TaskInStatusEnum.Line_InExecuting.ObjToInt() || x.TaskStatus == TaskOutStatusEnum.Line_OutExecuting.ObjToInt()), TaskOrderBy);
        }
        /// <summary>
@@ -174,7 +177,7 @@
        /// <returns></returns>
        public Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress)
        {
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskState == TaskInStatusEnum.Line_InFinish.ObjToInt() || x.TaskState == TaskOutStatusEnum.Line_OutFinish.ObjToInt()), TaskOrderBy);
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskStatus == TaskInStatusEnum.Line_InFinish.ObjToInt() || x.TaskStatus == TaskOutStatusEnum.Line_OutFinish.ObjToInt()), TaskOrderBy);
        }
        /// <summary>
@@ -186,11 +189,11 @@
        public Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null)
        {
            if(taskTypeGroup == null)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.Line_InFinish.ObjToInt() || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt()), TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.Line_InFinish.ObjToInt() || TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt()), TaskOrderBy);
            if(taskTypeGroup.Value == TaskTypeGroup.InboundGroup)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.Line_InFinish.ObjToInt(), TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.Line_InFinish.ObjToInt(), TaskOrderBy);
            if(taskTypeGroup.Value == TaskTypeGroup.OutbondGroup)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
            return null;
        }
@@ -210,9 +213,9 @@
            else
            {
                if (string.IsNullOrEmpty(currentAddress))
                    return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt() || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt()), TaskOrderBy);
                    return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskTypeEnums.Contains(x.TaskType) && (x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt() ||  x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt())), TaskOrderBy);
                else
                    return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt()), TaskOrderBy);
                    return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt()), TaskOrderBy);
            }
        }
@@ -231,28 +234,28 @@
            }
            else
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                Dt_Task tasks = BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                Dt_Task task = BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                Dt_Task tasks = BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                if (task != null && tasks == null)
                {
                    if (string.IsNullOrEmpty(currentAddress))
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                    else
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                }
                else if (task == null && tasks != null)
                {
                    if (string.IsNullOrEmpty(currentAddress))
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                    else
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                }
                else
                {
                    if (string.IsNullOrEmpty(currentAddress))
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                    else
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                }
            }
        }
@@ -265,9 +268,9 @@
        public Dt_Task QueryStackerCraneRelocationTask(string deviceNo, string currentAddress = "")
        {
            if (string.IsNullOrEmpty(currentAddress))
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
            else
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
        }
        /// <summary>
@@ -285,28 +288,28 @@
            }
            else
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                Dt_Task tasks = BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                Dt_Task task = BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                Dt_Task tasks = BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                if (task != null && tasks == null)
                {
                    if (string.IsNullOrEmpty(currentAddress))
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                    else
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                }
                else if (task == null && tasks != null)
                {
                    if (string.IsNullOrEmpty(currentAddress))
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                    else
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                }
                else
                {
                    if (string.IsNullOrEmpty(currentAddress))
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt(), TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt(), TaskOrderBy);
                    else
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskInStatusEnum.InNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                        return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt() && x.CurrentAddress == currentAddress, TaskOrderBy);
                }
            }
@@ -327,7 +330,7 @@
            }
            else
            {
                return BaseDal.QueryData(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt() && x.TargetAddress == outStationCodes, TaskOrderBy);
                return BaseDal.QueryData(x => x.Roadway == deviceNo && TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt() && x.TargetAddress == outStationCodes, TaskOrderBy);
            }
        }
@@ -343,14 +346,19 @@
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
                {
                    task.TaskState = (int)TaskOutStatusEnum.OutPending;
                    task.TaskStatus = OutTaskStatusEnum.OutException.ObjToInt();
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
                {
                    task.TaskState = (int)TaskInStatusEnum.InPending;
                    task.TaskStatus = InTaskStatusEnum.InException.ObjToInt();
                }
                else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
                {
                    task.TaskStatus = InTaskStatusEnum.RelocationException.ObjToInt();
                }
                task.ExceptionMessage = message;
                task.ModifyDate = DateTime.Now;
                BaseDal.UpdateData(task);
@@ -375,7 +383,7 @@
        {
            Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
            if (task == null) return;
            task.TaskState = status;
            task.TaskStatus = status;
            task.ModifyDate = DateTime.Now;
            BaseDal.UpdateData(task);
        }
@@ -410,35 +418,33 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                int oldState = task.TaskState;
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                int oldState = task.TaskStatus;
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt()|| task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
                {
                    task.TaskState = TaskOutStatusEnum.SC_OutExecuting.ObjToInt();
                    task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
                {
                    task.TaskState = TaskInStatusEnum.SC_InExecuting.ObjToInt();
                    task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt();
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
                {
                    task.TaskState = TaskRelocationStatusEnum.RelocationExecuting.ObjToInt();
                    task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
                }
                else
                {
                    throw new Exception($"任务类型错误,未找到该任务类型,任务号:【{task.TaskNum}】,任务类型:【{task.TaskType}】");
                }
                if (task.TaskState <= 0)
                if (task.TaskStatus <= 0)
                {
                    return content = WebResponseContent.Instance.Error($"该任务状态不可跳转到下一步,任务号:【{task.TaskNum}】,任务状态:【{task.TaskState}】");
                    return content = WebResponseContent.Instance.Error($"该任务状态不可跳转到下一步,任务号:【{task.TaskNum}】,任务状态:【{task.TaskStatus}】");
                }
                task.ModifyDate = DateTime.Now;
                task.Modifier = "System";
                BaseDal.UpdateData(task);
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工手动将任务状态从【{oldState}】跳转到【{task.TaskState}】" : $"系统自动流程,任务状态从【{oldState}】转到【{task.TaskState}】");
                var response = HttpHelpers.Post<WebResponseContent>(url + "UpdateTaskStatus?", task.TaskNum, "入库任务下发");
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工手动将任务状态从【{oldState}】跳转到【{task.TaskStatus}】" : $"系统自动流程,任务状态从【{oldState}】转到【{task.TaskStatus}】");
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
@@ -496,9 +502,9 @@
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
                {
                    task.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
                    task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt();
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
@@ -514,9 +520,9 @@
                        content = WebResponseContent.Instance.Error(response.Message);
                    }
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState ==TaskInStatusEnum.SC_InExecuting.ObjToInt())
                else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt()  || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
                {
                    task.TaskState = TaskInStatusEnum.InFinish.ObjToInt();
                    task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt();
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
@@ -532,9 +538,9 @@
                        content = WebResponseContent.Instance.Error(response.Message);
                    }
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                else if (task.TaskType==TaskTypeEnum.Relocation.ObjToInt())
                {
                    task.TaskState = TaskRelocationStatusEnum.RelocationFinish.ObjToInt();
                    task.TaskStatus = InTaskStatusEnum.RelocationFinish.ObjToInt();
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
@@ -574,9 +580,9 @@
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState != TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
                if ((task.TaskType == TaskTypeEnum.Outbound.ObjToInt() && task.TaskStatus == OutTaskStatusEnum.SC_OutExecuting.ObjToInt()) || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
                {
                    task.TaskState = TaskOutStatusEnum.OutCancel.ObjToInt();
                    task.TaskStatus = OutTaskStatusEnum.OutCancel.ObjToInt();
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
@@ -592,9 +598,9 @@
                        content = WebResponseContent.Instance.Error(response.Message);
                    }
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState != TaskInStatusEnum.SC_InExecuting.ObjToInt())
                else if ((task.TaskType == TaskTypeEnum.Inbound.ObjToInt() && task.TaskStatus == InTaskStatusEnum.SC_InExecuting.ObjToInt()) || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
                {
                    task.TaskState = TaskInStatusEnum.InCancel.ObjToInt();
                    task.TaskStatus = InTaskStatusEnum.InCancel.ObjToInt();
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
@@ -610,9 +616,9 @@
                        content = WebResponseContent.Instance.Error(response.Message);
                    }
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup && task.TaskState != TaskRelocationStatusEnum.RelocationExecuting.ObjToInt())
                else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
                {
                    task.TaskState = TaskRelocationStatusEnum.RelocationCancel.ObjToInt();
                    task.TaskStatus = InTaskStatusEnum.RelocationCancel.ObjToInt();
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
@@ -657,25 +663,25 @@
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                if (task.TaskState != (int)TaskInStatusEnum.InPending && task.TaskState != (int)TaskOutStatusEnum.OutPending)
                if (task.TaskStatus != (int)TaskInStatusEnum.InPending && task.TaskStatus != (int)TaskOutStatusEnum.OutPending)
                {
                    return content = WebResponseContent.Instance.Error($"该任务状态不可恢复,任务号:【{taskNum}】,任务状态:【{task.TaskState}】");
                    return content = WebResponseContent.Instance.Error($"该任务状态不可恢复,任务号:【{taskNum}】,任务状态:【{task.TaskStatus}】");
                }
                Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.IsNormal, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } });
                if (taskExecuteDetail != null)
                {
                    task.TaskState = taskExecuteDetail.TaskState;
                    task.TaskStatus = taskExecuteDetail.TaskState;
                }
                else
                {
                    if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                    {
                        task.TaskState = (int)TaskOutStatusEnum.OutNew;
                        task.TaskStatus = (int)TaskOutStatusEnum.OutNew;
                    }
                    else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                    {
                        task.TaskState = (int)TaskInStatusEnum.InNew;
                        task.TaskStatus = (int)TaskInStatusEnum.InNew;
                    }
                    //todo
                }
@@ -684,7 +690,7 @@
                BaseDal.UpdateData(task);
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"人工恢复挂起任务,恢复挂起时任务状态【{task.TaskState}】");
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"人工恢复挂起任务,恢复挂起时任务状态【{task.TaskStatus}】");
                content = WebResponseContent.Instance.OK();
            }
@@ -708,24 +714,24 @@
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                int oldState = task.TaskState;
                Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } });
                int oldState = task.TaskStatus;
                Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskStatus && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } });
                if (taskExecuteDetail != null)
                {
                    task.TaskState = taskExecuteDetail.TaskState;
                    task.TaskStatus = taskExecuteDetail.TaskState;
                    task.CurrentAddress = taskExecuteDetail.CurrentAddress;
                    task.NextAddress = taskExecuteDetail.NextAddress;
                }
                else
                {
                    return content = WebResponseContent.Instance.Error($"未找到任务明细信息,该任务状态不可回滚到上一步,任务号:【{taskNum}】,任务状态:【{task.TaskState}】");
                    return content = WebResponseContent.Instance.Error($"未找到任务明细信息,该任务状态不可回滚到上一步,任务号:【{taskNum}】,任务状态:【{task.TaskStatus}】");
                }
                task.ExceptionMessage = string.Empty;
                BaseDal.UpdateData(task);
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"人工将任务状态从【{oldState}】回滚到【{task.TaskState}】");
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"人工将任务状态从【{oldState}】回滚到【{task.TaskStatus}】");
                content = WebResponseContent.Instance.OK();
            }
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -63,8 +63,6 @@
                    List<Task> tasks = new List<Task>();
                    foreach (string childDeviceCode in childDeviceCodes)
                    {
                        //Task task = Task.Run(() =>
                        //{
                            ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode);
                            if (command != null)
                            {
@@ -82,8 +80,7 @@
                                    }
                                }
                            }
                        //});
                        //tasks.Add(task);
                    }
                    Task.WaitAll(tasks.ToArray());
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Components.Routing;
using HslCommunication;
using Microsoft.AspNetCore.Components.Routing;
using Quartz;
using SqlSugar.Extensions;
using System;
@@ -8,12 +9,14 @@
using System.Net;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Enums;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_Tasks.StackerCraneJob;
@@ -93,7 +96,7 @@
            }
            catch (Exception ex)
            {
                Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString());
                //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString());
            }
            return Task.CompletedTask;
        }
@@ -131,8 +134,8 @@
            }
            else
            {
                bool flag = speStackerCrane.LastTaskType.GetValueOrDefault().GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup;
                if (flag)
                bool flag = speStackerCrane.LastTaskType == TaskTypeEnum.Inbound.ObjToInt() || speStackerCrane.LastTaskType == TaskTypeEnum.PalletInbound.ObjToInt();
                if (flag==false)
                {
                    task = _taskService.QueryStackerCraneInTask(speStackerCrane.DeviceCode);
                    if (task == null)
@@ -145,19 +148,6 @@
                    task = _taskService.QueryStackerCraneOutTask(speStackerCrane.DeviceCode);
                }
            }
            if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
            {
                List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(speStackerCrane.DeviceCode, task.TargetAddress);
                foreach (var item in tasks)
                {
                    return task;
                }
                return task;
            }
            return task;
        }
@@ -192,13 +182,34 @@
            return null;
        }
        /// <summary>
        /// ä»»åŠ¡å®žä½“è½¬æ¢æˆå‘½ä»¤Model
        /// </summary>
        /// <param name="task">任务实体</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task)
        public bool SendCommands(StackerCraneTaskCommand command,SpeStackerCrane speStackerCrane)
        {
            try
            {
                speStackerCrane.SetValue(StackerCraneDBName.TaskNum, command.TaskNum);
                speStackerCrane.SetValue(StackerCraneDBName.StartRow, command.StartRow);
                speStackerCrane.SetValue(StackerCraneDBName.StartColumn, command.StartColumn);
                speStackerCrane.SetValue(StackerCraneDBName.StartLayer, command.StartLayer);
                speStackerCrane.SetValue(StackerCraneDBName.EndRow, command.EndRow);
                speStackerCrane.SetValue(StackerCraneDBName.EndColumn, command.EndColumn);
                speStackerCrane.SetValue(StackerCraneDBName.EndLayer, command.EndLayer);
                speStackerCrane.SetValue(StackerCraneDBName.Barcode, command.Barcode);
                speStackerCrane.SetValue(StackerCraneDBName.WorkType, command.WorkType);
                speStackerCrane.SetValue(StackerCraneDBName.TrayType, command.TrayType);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }
            /// <summary>
            /// ä»»åŠ¡å®žä½“è½¬æ¢æˆå‘½ä»¤Model
            /// </summary>
            /// <param name="task">任务实体</param>
            /// <returns></returns>
            /// <exception cref="Exception"></exception>
            public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task)
        {
            StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand();
@@ -206,7 +217,7 @@
            stackerCraneTaskCommand.TaskNum = task.TaskNum;
            stackerCraneTaskCommand.WorkType = 1;
            stackerCraneTaskCommand.TrayType = 0;
            if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//判断是否是入库任务
            if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())//判断是否是入库任务
            {
                if (task.SourceAddress != null && task.TargetAddress != null)
                {
@@ -243,7 +254,7 @@
                    return null;
                }
            }
            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
            else if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
            {
                if (task.SourceAddress != null && task.TargetAddress != null)
                {
@@ -280,7 +291,7 @@
                    return null;
                }
            }
            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
            else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
            {
                if (task.SourceAddress != null && task.TargetAddress != null)
                {
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/GetStackerObject.cs
@@ -125,6 +125,5 @@
            }
            return StackerCraneStatus.Unkonw.ToString();
        }
        //public bool SetStackerObject(SpeStackerCrane speStackerCrane, StackerCraneDBName StackerDBName, int value) => speStackerCrane.SetValue(StackerDBName, value);
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs
@@ -72,6 +72,11 @@
        Barcode,
        /// <summary>
        /// æ‰˜ç›˜ç±»åž‹
        /// </summary>
        TrayType,
        /// <summary>
        /// è®¾å¤‡çŠ¶æ€
        /// </summary>
        StackerCraneStatus,
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js
@@ -20,7 +20,19 @@
        let TaskHandCancelBtn = this.buttons.find(x => x.value == 'TaskHandCancel');
      if (TaskHandCancelBtn) {
        TaskHandCancelBtn.onClick = function () {
          this.$message.success('自定义按钮点击事件');
          let rows = this.$refs.table.getSelected();
          if (rows.length == 0) return this.$error("请选择数据!");
          var param = rows[0].taskNum;
          this.http
            .post("api/Task/TaskCancel?taskNum="+param, "数据处理中...")
            .then((x) => {
              if (x.status) {
                this.$Message.success('任务取消成功.');
                this.refresh();
              } else {
                return this.$error(x.message);
              }
            });
        }
      }
      let TaskHandCompletedBtn = this.buttons.find(x => x.value == 'TaskHandCompleted');
@@ -33,7 +45,7 @@
            .post("api/Task/TaskCompleted?taskNum="+param, "数据处理中...")
            .then((x) => {
              if (x.status) {
                this.$Message.success('任务手动完成成功.');
                this.$Message.success('任务手动完成');
                this.refresh();
              } else {
                return this.$error(x.message);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue
@@ -134,20 +134,20 @@
        width: 120,
        align: "left",
      },
      {
        field: "currentAddress",
        title: "当前位置",
        type: "string",
        width: 120,
        align: "left",
      },
      {
        field: "nextAddress",
        title: "下一位置",
        type: "string",
        width: 120,
        align: "left",
      },
      // {
      //   field: "currentAddress",
      //   title: "当前位置",
      //   type: "string",
      //   width: 120,
      //   align: "left",
      // },
      // {
      //   field: "nextAddress",
      //   title: "下一位置",
      //   type: "string",
      //   width: 120,
      //   align: "left",
      // },
      {
        field: "exceptionMessage",
        title: "异常信息",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue
@@ -127,20 +127,20 @@
        width: 120,
        align: "left",
      },
      {
        field: "targetAddress",
        title: "目标地址",
        type: "string",
        width: 120,
        align: "left",
      },
      {
        field: "currentAddress",
        title: "当前位置",
        type: "string",
        width: 120,
        align: "left",
      },
      // {
      //   field: "targetAddress",
      //   title: "目标地址",
      //   type: "string",
      //   width: 120,
      //   align: "left",
      // },
      // {
      //   field: "currentAddress",
      //   title: "当前位置",
      //   type: "string",
      //   width: 120,
      //   align: "left",
      // },
      {
        field: "nextAddress",
        title: "下一位置",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/07acc35c-ead1-4994-b934-522e5a78c90a.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3353fedf-ce91-4adc-bdb9-d8450ade5d0a.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3b906d3f-9923-4824-a640-34936ca6bee2.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/a25ab2df-8d0e-478a-8bf5-7ede88f4c554.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/f9e8d8bc-d17e-44b5-842b-88f7aaeb9bc9.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs
@@ -249,7 +249,7 @@
            locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
            if (locationInfos.LocationStatus == LocationStatusEnum.Pallet.ObjToInt())
            if (beforeStartStatus == LocationStatusEnum.Pallet.ObjToInt())
            {
                locationInfos.LocationStatus = LocationStatusEnum.PalletLock.ObjToInt();
            }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/TaskEnum.cs
@@ -167,10 +167,22 @@
        RelocationFinish = 310,
        /// <summary>
        /// ç§»åº“任务执行中
        /// </summary>
        [Description("移库任务执行中")]
        RelocationExecuting = 320,
        /// <summary>
        /// ç§»åº“任务取消
        /// </summary>
        [Description("移库任务取消")]
        RelocationCancel = 320,
        RelocationCancel = 330,
        /// <summary>
        /// ç§»åº“任务异常
        /// </summary>
        [Description("移库任务异常")]
        RelocationException = 340,
    }
    #endregion å…¥åº“任务状态
@@ -197,18 +209,6 @@
        /// </summary>
        [Description("堆垛机出库完成")]
        SC_OutFinish = 135,
        /// <summary>
        /// ç§»åº“任务执行中
        /// </summary>
        [Description("移库任务执行中")]
        SC_RelocationExecuting = 140,
        /// <summary>
        /// ç§»åº“任务执行中
        /// </summary>
        [Description("移库任务执行中")]
        SC_RelocationFinish = 145,
        /// <summary>
        /// å‡ºåº“任务完成
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs
@@ -1,9 +1,13 @@
using System;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.LogHelper;
namespace WIDESEA_Core.Helper
{
@@ -100,5 +104,55 @@
            }
            return null;
        }
        public static T Post<T>(string url, object parm, string rquestName = "") where T : class
        {
            HttpWebResponse response = null;
            StreamReader resultReader = null;
            string responseContent = string.Empty;
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Timeout = 10 * 1000;
                request.Method = "POST";
                request.ContentType = "application/json; charset=UTF-8";
                parm = parm ?? "";
                byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(parm));
                request.ContentLength = data.Length;
                using (Stream newStream = request.GetRequestStream())
                {
                    newStream.Write(data, 0, data.Length);
                };
                response = (HttpWebResponse)request.GetResponse();
                Stream webStream = response.GetResponseStream();
                if (webStream == null)
                {
                    throw new Exception("Network error");
                }
                int statsCode = (int)response.StatusCode;
                resultReader = new StreamReader(webStream, Encoding.UTF8);
                responseContent = resultReader.ReadToEnd();
                if (response != null)
                    response.Close();
                if (resultReader != null)
                    resultReader.Close();
                if (statsCode != 200)
                {
                    throw new Exception("异常,响应码:" + statsCode.ToString());
                }
                Logger.Write_Log("System/API请求", rquestName, "请求成功", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent });
                return JsonConvert.DeserializeObject<T>(responseContent);
            }
            catch (Exception ex)
            {
                Logger.Write_Log("System/API请求", rquestName, "请求异常", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent, é”™è¯¯ = ex.Message });
                throw ex;
            }
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/LogHelper/Logger.cs
@@ -1,5 +1,6 @@

using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections.Generic;
@@ -65,6 +66,40 @@
        {
        }
        public static void Write_Log(string groupName, string logName, string content, object data = null)
        {
            DateTime nowTime = DateTime.Now;
            string basePath = System.Environment.CurrentDirectory + "/Log/" + $"/{groupName}/{nowTime.ToString("yyyy-MM-dd")}";
            //如果日志文件目录不存在,则创建
            if (!Directory.Exists(basePath))
            {
                Directory.CreateDirectory(basePath);
            }
            try
            {
                FileStream fs = new FileStream(basePath + "/" + logName + $"{nowTime.ToString("yyMMdd")}.txt", FileMode.Append);
                StreamWriter strwriter = new StreamWriter(fs);
                try
                {
                    strwriter.WriteLine(nowTime.ToString() + "." + nowTime.Millisecond);
                    strwriter.WriteLine(content);
                    if (data != null)
                    {
                        strwriter.WriteLine(JsonConvert.SerializeObject(data));
                    }
                    strwriter.WriteLine("-------------------------------");
                    strwriter.WriteLine();
                    strwriter.Flush();
                }
                catch { }
                finally
                {
                    strwriter.Close();
                    fs.Close();
                }
            }
            catch { }
        }
        public static void WriteApiLog2DB(HttpContext context, string requestParameter, DateTime beginDate, string responseParameter, DateTime endDate, LoggerStatus loggerStatus)
        {
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -38,7 +38,8 @@
        WebResponseContent GenerateInboundTask(string stationCode, int taskType, string palletCode);
        WebResponseContent TaskCompleted(int taskNum);
        WebResponseContent TaskCancel(SaveModel saveModel);
        WebResponseContent TaskCancel(int taskNum);
        WebResponseContent UpdateTaskStatus(int taskNum);
        WebResponseContent GenerateOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews);
@@ -46,9 +47,9 @@
        WebResponseContent PalletOutboundTask(string roadwayNo, string endStation);
        WebResponseContent CallMateriel(SaveModel saveModel);
        WebResponseContent CallMateriel(string endPoint);
        WebResponseContent MaterielCarry(SaveModel saveModelt);
        WebResponseContent MaterielCarry(string startPoint);
        WebResponseContent GetTaskInfo();
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs
@@ -50,12 +50,10 @@
        /// </summary>
        /// <param name="endPoint"></param>
        /// <returns></returns>
        public WebResponseContent CallMateriel(SaveModel saveModel)
        public WebResponseContent CallMateriel(string endPoint)
        {
            try
            {
                string endPoint = saveModel.MainData["endPoint"].ToString();
                Dt_CachePoint cachePoint = GetCachePointByEndPoint(endPoint);
                Dt_Task task = new Dt_Task()
@@ -91,12 +89,10 @@
        /// </summary>
        /// <param name="startPoint"></param>
        /// <returns></returns>
        public WebResponseContent MaterielCarry(SaveModel saveModel)
        public WebResponseContent MaterielCarry(string startPoint)
        {
            try
            {
                string startPoint = saveModel.MainData["startPoint"].ToString();
                Dt_CachePoint cachePoint = GetCachePointByStartPoint(startPoint);
                Dt_Task task = new()
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
@@ -9,11 +9,15 @@
using WIDESEA_Model.Models;
using WIDESEA_Core.Helper;
using Microsoft.Extensions.Logging;
using System.Net.Http.Headers;
using System.Security.Policy;
using Newtonsoft.Json;
namespace WIDESEA_TaskInfoService
{
    public partial class TaskService
    {
        public string url = AppSettings.Configuration["WCS"];
        /// <summary>
        /// PDA申请入库--堆垛机立库入库
        /// </summary>
@@ -100,6 +104,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                _unitOfWorkManage.BeginTran();
                Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(stationCode, taskType);
                //Dt_LocationInfo dt_LocationInfo = null;
                if (locationInfo != null)
@@ -107,7 +112,7 @@
                    Dt_Task task = new()
                    {
                        CurrentAddress = stationCode,
                        Grade = 0,
                        Grade = 2,
                        PalletCode = palletCode,
                        NextAddress = locationInfo.LocationCode,
                        Roadway = locationInfo.RoadwayNo,
@@ -144,14 +149,22 @@
                        _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
                    }
                    _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
                    List<Dt_Task> tasks = new List<Dt_Task>();
                    tasks.Add(task);
                    _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), orderNo, task.TaskNum);
                    var response = HttpHelper.Post<WebResponseContent>(url + "ReceiveTask/", tasks, "入库任务下发");
                    if (!response.Status)
                    {
                        return content = WebResponseContent.Instance.Error("任务下发异常");
                    }
                    _unitOfWorkManage.CommitTran();
                    return content = WebResponseContent.Instance.OK();
                }
                return content = WebResponseContent.Instance.Error("未找到可分配货位");
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return content;
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs
@@ -11,6 +11,7 @@
using Microsoft.AspNetCore.Http;
using System.Reflection.Metadata;
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
using SkiaSharp;
namespace WIDESEA_TaskInfoService
{
@@ -38,7 +39,7 @@
                        Dt_Task task = new()
                        {
                            CurrentAddress = stockInfo.LocationCode,
                            Grade = 0,
                            Grade = 2,
                            PalletCode = stockInfo.PalletCode,
                            NextAddress = roadwayInfo.OutSCStationCode,
                            Roadway = locationInfo.RoadwayNo,
@@ -154,17 +155,18 @@
                WebResponseContent content=new WebResponseContent();
                _unitOfWorkManage.BeginTran();
                //判断移库
                content=RelocationTasks(tasks.OrderBy(x=>x.Depth).ToList());
                if (content.Status)
                (List<Dt_Task>?, List<Dt_Task>?) result=RelocationTasks(tasks.OrderBy(x=>x.Depth).ToList());
                if(result.Item1 != null)
                {
                    _unitOfWorkManage.CommitTran();
                }
                else
                for (int i = 0; i < result.Item2.Count; i++)
                {
                    _unitOfWorkManage.RollbackTran();
                    return content;
                }
                //BaseDal.AddData(tasks);
                if (stockInfos != null && outboundOrderDetails != null && outStockLockInfos != null && locationInfos != null)
                {
                    content = _outboundService.OutboundOrderDetailService.LockOutboundStockDataUpdate(stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos, tasks: tasks);
@@ -198,90 +200,86 @@
            }
        }
        public WebResponseContent RelocationTasks(List<Dt_Task> task)
        public (List<Dt_Task>?, List<Dt_Task>?) RelocationTasks(List<Dt_Task> task)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                _unitOfWorkManage.BeginTran();
                List<Dt_Task>  tasks = new List<Dt_Task>();
                List<Dt_Task> relocationList=new List<Dt_Task>();
                if (task.Count > 0)
                {
                    for (int i = 0; i < task.Count; i++)
                    {
                        Dt_LocationInfo location = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task[i].SourceAddress && x.RoadwayNo == task[i].Roadway);
                        int befoStatus=location.LocationStatus.ObjToInt();
                        if (location != null)
                        {
                            //(Dt_LocationInfo?, int?) result = _basicService.LocationInfoService.isDepth(location);
                            (Dt_LocationInfo?, int?) result = isDepth(location);
                            if (result.Item1 != null && result.Item2 != LocationStatusEnum.Lock.ObjToInt() && result.Item2 != LocationStatusEnum.PalletLock.ObjToInt() && result.Item2 != LocationStatusEnum.Free.ObjToInt())
                            Dt_LocationInfo result = isDepth(location);
                            if (result != null && result.LocationStatus == LocationStatusEnum.Lock.ObjToInt() && result.LocationStatus != LocationStatusEnum.PalletLock.ObjToInt() && result.LocationStatus != LocationStatusEnum.Free.ObjToInt())
                            {
                                int sum = 0;
                                for (int j = 0; j < task.Count; j++)
                                {
                                    if (result.Item1.LocationCode == task[j].SourceAddress)
                                    if (result.LocationCode == task[j].SourceAddress)
                                    {
                                        sum++;
                                    }
                                }
                                if (sum == 0)
                                {
                                    return content = RelocationTask(task[i]);
                                    Dt_Task relocariontask = RelocationTask(result);
                                    task[i].Grade=1;
                                    tasks.Add(task[i]);
                                    relocationList.Add(relocariontask);
                                }
                                else
                                {
                                    BaseDal.AddData(task[i]);
                                    _basicService.LocationInfoService.UpdateLocationLock(location, task[i].TaskNum, StockChangeType.Outbound.ObjToInt(), true);
                                    tasks.Add(task[i]);
                                    content = WebResponseContent.Instance.OK();
                                }
                            }
                            else if (result.Item1 == null && result.Item2 == LocationStatusEnum.Free.ObjToInt())
                            else if (result == null)
                            {
                                BaseDal.AddData(task[i]);
                                location.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
                                _basicService.LocationInfoService.UpdateData(location);
                                tasks.Add(task[i]);
                                content = WebResponseContent.Instance.OK();
                            }
                            else if (result.Item1 != null && result.Item2 == LocationStatusEnum.Free.ObjToInt())
                            else if (result != null && result.LocationStatus == LocationStatusEnum.Free.ObjToInt())
                            {
                                BaseDal.AddData(task[i]);
                                location.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
                                _basicService.LocationInfoService.UpdateData(location);
                                _basicService.LocationInfoService.UpdateLocationLock(location, task[i].TaskNum, StockChangeType.Outbound.ObjToInt(), false);
                                tasks.Add(task[i]);
                                content = WebResponseContent.Instance.OK();
                            }
                            else if (result.Item1 != null && (result.Item2 == LocationStatusEnum.Lock.ObjToInt() || result.Item2 == LocationStatusEnum.PalletLock.ObjToInt()))
                            else if (result != null && (result.LocationStatus == LocationStatusEnum.Lock.ObjToInt() || result.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt()))
                            {
                                Dt_Task TaskInfo = BaseDal.QueryFirst(x => x.SourceAddress == result.Item1.LocationCode);
                                Dt_Task TaskInfo = BaseDal.QueryFirst(x => x.SourceAddress == result.LocationCode);
                                if (TaskInfo == null)
                                {
                                    return content = WebResponseContent.Instance.Error("货位被锁定不可出库");
                                    content = WebResponseContent.Instance.Error("货位被锁定不可出库");
                                    break;
                                }
                                else
                                {
                                    BaseDal.AddData(task[i]);
                                    location.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
                                    _basicService.LocationInfoService.UpdateData(location);
                                    tasks.Add(task[i]);
                                    content = WebResponseContent.Instance.OK();
                                }
                            }
                        }
                        else
                        {
                            return content = WebResponseContent.Instance.Error("任务异常");
                            content = WebResponseContent.Instance.Error("任务异常");
                            break;
                        }
                    }
                    return (tasks, relocationList);
                }
                else
                {
                    return content = WebResponseContent.Instance.Error("没有库存生成任务");
                    throw new Exception($"生成移库任务失败");
                }
                _unitOfWorkManage.CommitTran();
                return content;
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return content = WebResponseContent.Instance.Error(ex.Message);
                return (null, null);
            }
         }
        /// <summary>
@@ -289,111 +287,46 @@
        /// </summary>
        /// <param name="task"></param>
        /// <returns></returns>
        public WebResponseContent RelocationTask(Dt_Task task)
        public Dt_Task RelocationTask(Dt_LocationInfo location)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
                if (locationInfo != null)
                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.LocationCode == location.LocationCode);
                if (stockInfo != null)
                {
                    int beforeStatus = locationInfo.LocationStatus;
                    //(Dt_LocationInfo?,int?) Result = _basicService.LocationInfoService.isDepth(locationInfo);
                    (Dt_LocationInfo?,int?) Result = isDepth(locationInfo);
                    if (Result.Item1 != null&& Result.Item2== LocationStatusEnum.InStock.ObjToInt())
                    Dt_LocationInfo? locationInfos = _basicService.LocationInfoService.AssignLocation(location.RoadwayNo);
                    if (locationInfos != null)
                    {
                        Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.LocationCode == Result.Item1.LocationCode);
                        Dt_StockInfoDetail stockInfoDetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId==stockInfo.Id);
                        if (stockInfo != null&& stockInfoDetail != null)
                        Dt_Task tasks = new()
                        {
                            (Dt_Task ?, Dt_LocationInfo ?) result= AddRelocationTask(Result.Item1, stockInfo, task);
                            if (result.Item1!=null&&result.Item2!=null)
                            {
                                _basicService.LocationInfoService.RelocationLock(Result.Item1, result.Item2, result.Item1.TaskNum);
                                locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
                                _basicService.LocationInfoService.UpdateData(locationInfo);
                                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Relocation.ObjToInt(), "", task.TaskNum);
                                return content = WebResponseContent.Instance.OK();
                            }
                            else
                            {
                                return content = WebResponseContent.Instance.Error("移库任务生成失败");
                            }
                        }
                        else
                        {
                            return content = WebResponseContent.Instance.Error("未找到库存信息");
                        }
                    }
                    else if(Result.Item1 != null && Result.Item2 == LocationStatusEnum.Pallet.ObjToInt())
                    {
                        Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.LocationCode == Result.Item1.LocationCode);
                        if (stockInfo != null)
                        {
                            (Dt_Task?, Dt_LocationInfo?) result = AddRelocationTask(Result.Item1, stockInfo, task);
                            if (result.Item1 != null && result.Item2 != null)
                            {
                                _basicService.LocationInfoService.RelocationLock(Result.Item1, result.Item2, result.Item1.TaskNum);
                                locationInfo.LocationStatus = LocationStatusEnum.PalletLock.ObjToInt();
                                _basicService.LocationInfoService.UpdateData(locationInfo);
                                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Relocation.ObjToInt(), "", task.TaskNum);
                                return content = WebResponseContent.Instance.OK();
                            }
                            else
                            {
                                return content = WebResponseContent.Instance.Error("移库任务生成失败");
                            }
                        }
                        else
                        {
                            return content = WebResponseContent.Instance.Error("未找到库存信息");
                        }
                            CurrentAddress = location.LocationCode,
                            Grade = 0,
                            PalletCode = stockInfo.PalletCode,
                            NextAddress = locationInfos.LocationCode,
                            Roadway = location.RoadwayNo,
                            SourceAddress = location.LocationCode,
                            TargetAddress = locationInfos.LocationCode,
                            TaskStatus = InTaskStatusEnum.RelocationNew.ObjToInt(),
                            TaskType = TaskTypeEnum.Relocation.ObjToInt(),
                            TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum))
                        };
                        return tasks;
                    }
                    else
                    {
                        return content = WebResponseContent.Instance.Error("异常");
                        throw new Exception($"生成移库任务失败");
                    }
                }
                else
                {
                    return content = WebResponseContent.Instance.Error("任务信息异常");
                    throw new Exception("未找到库存信息");
                }
            }
            catch (Exception ex)
            {
                return content = WebResponseContent.Instance.Error(ex.Message);
                throw new Exception($"生成移库任务失败"); ;
            }
            finally
            {
            }
        }
        public (Dt_Task?,Dt_LocationInfo?) AddRelocationTask(Dt_LocationInfo location,Dt_StockInfo stockInfo,Dt_Task task)
        {
            Dt_LocationInfo? locationInfos = _basicService.LocationInfoService.AssignLocation(location.RoadwayNo);
            if (locationInfos != null)
            {
                Dt_Task tasks = new()
                {
                    CurrentAddress = location.LocationCode,
                    Grade = 0,
                    PalletCode = stockInfo.PalletCode,
                    NextAddress = locationInfos.LocationCode,
                    Roadway = location.RoadwayNo,
                    SourceAddress = location.LocationCode,
                    TargetAddress = locationInfos.LocationCode,
                    TaskStatus = InTaskStatusEnum.RelocationNew.ObjToInt(),
                    TaskType = TaskTypeEnum.Relocation.ObjToInt(),
                    TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum))
                };
                BaseDal.AddData(tasks);
                BaseDal.AddData(task);
                stockInfo.StockStatus = StockStatusEmun.移库锁定.ObjToInt();
                _stockService.StockInfoService.UpdateData(stockInfo);
            }
            return (task, locationInfos);
        }
        /// <summary>
        /// ç”Ÿæˆå‡ºåº“任务
@@ -508,7 +441,7 @@
            }
        }
        public (Dt_LocationInfo?, int?) isDepth(Dt_LocationInfo locationInfo)
        public Dt_LocationInfo isDepth(Dt_LocationInfo locationInfo)
        {
            if (locationInfo.Depth == 2)
            {
@@ -516,26 +449,11 @@
                {
                    Dt_LocationInfo dt_LocationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.Row == locationInfo.Row + 1 && x.Layer == locationInfo.Layer && x.Column == locationInfo.Column && x.RoadwayNo == locationInfo.RoadwayNo);
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
                    if (dt_LocationInfo != null)
                    {
                        return (dt_LocationInfo, LocationStatusEnum.InStock.ObjToInt());
                        return dt_LocationInfo;
                    }
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.Free.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.Free.ObjToInt());
                    }
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.Lock.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.Lock.ObjToInt());
                    }
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.PalletLock.ObjToInt());
                    }
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.Pallet.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.Pallet.ObjToInt());
                    }
                }
                else if (locationInfo.Row == 4 || locationInfo.Row == 8)
                {
@@ -543,27 +461,11 @@
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.InStock.ObjToInt());
                    }
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.Free.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.Free.ObjToInt());
                    }
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.Lock.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.Lock.ObjToInt());
                    }
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.PalletLock.ObjToInt());
                    }
                    if (dt_LocationInfo != null && dt_LocationInfo.LocationStatus == LocationStatusEnum.Pallet.ObjToInt())
                    {
                        return (dt_LocationInfo, LocationStatusEnum.Pallet.ObjToInt());
                        return dt_LocationInfo;
                    }
                }
            }
            return (null, LocationStatusEnum.Free.ObjToInt());
            return null;
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -109,11 +109,10 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent TaskCancel(SaveModel saveModel)
        public WebResponseContent TaskCancel(int taskNum)
        {
            try
            {
                int taskNum = int.Parse(saveModel.MainData["taskNum"].ToString());
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null)
                {
@@ -135,6 +134,39 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent UpdateTaskStatus(int taskNum)
        {
            try
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null)
                {
                    return WebResponseContent.Instance.Error("未找到任务信息");
                }
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
                {
                    task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
                }
                else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
                {
                    task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt();
                }
                else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
                {
                    task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
                }
                else
                {
                    throw new Exception($"任务类型错误,未找到该任务类型,任务号:【{task.TaskNum}】,任务类型:【{task.TaskType}】");
                }
                return WebResponseContent.Instance.Error("未找到任务类型对应业务处理逻辑");
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent InboundTaskCompleted(Dt_Task task)
        {
            try
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs
@@ -28,15 +28,15 @@
        }
        [HttpPost, Route("CallMateriel"), AllowAnonymous]
        public WebResponseContent CallMateriel([FromBody] SaveModel saveModel)
        public WebResponseContent CallMateriel([FromBody] string endPoint)
        {
            return _taskService.CallMateriel(saveModel);
            return _taskService.CallMateriel(endPoint);
        }
        [HttpPost, Route("MaterielCarry"), AllowAnonymous]
        public WebResponseContent MaterielCarry([FromBody] SaveModel saveModel)
        public WebResponseContent MaterielCarry([FromBody] string startPoint)
        {
            return _taskService.MaterielCarry(saveModel);
            return _taskService.MaterielCarry(startPoint);
        }
        [HttpPost, Route("MaterielGroup")]
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs
@@ -25,7 +25,7 @@
        }
        [HttpPost, Route("GetStockSelectViews"), AllowAnonymous]
        public List<StockSelectViewDTO> GetStockSelectViews([FromBody]string materielCode)
        public List<StockSelectViewDTO> GetStockSelectViews(string materielCode)
        {
            return Service.GetStockSelectViews(materielCode);
        }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -24,16 +24,20 @@
        }
        [HttpPost, Route("TaskCompleted"), AllowAnonymous]
        public WebResponseContent TaskCompleted([FromBody] int taskNum)
        public WebResponseContent TaskCompleted(int taskNum)
        {
            return Service.TaskCompleted(taskNum);
        }
        [HttpPost, Route("TaskCancel"), AllowAnonymous]
        public WebResponseContent TaskCancel([FromBody] SaveModel saveModel)
        public WebResponseContent TaskCancel(int taskNum)
        {
            return Service.TaskCancel(saveModel);
            return Service.TaskCancel(taskNum);
        }
        [HttpPost, Route("UpdateTaskStatus"), AllowAnonymous]
        public WebResponseContent UpdateTaskStatus(int taskNum)
        {
            return Service.UpdateTaskStatus(taskNum);
        }
        [HttpPost, Route("GenerateOutboundTask")]
        public WebResponseContent GenerateOutboundTask( int id, [FromBody] List<StockSelectViewDTO> stockSelectViews)
        {
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Log/System/APIÇëÇó/2024-11-01/Èë¿âÈÎÎñÏ·¢241101.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
2024/11/1 9:31:21.649
请求异常
{"请求报文":{"TaskId":0,"TaskNum":232,"PalletCode":"A00008","Roadway":"R01","TaskType":204,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-001-001-004-02","CurrentAddress":"001-001-001","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T09:31:08.2557414+08:00","Modifier":null,"ModifyDate":null},"接收报文":"","错误":"The remote server returned an error: (404) Not Found."}
-------------------------------
2024/11/1 9:35:00.714
请求异常
{"请求报文":[{"TaskId":0,"TaskNum":233,"PalletCode":"A00008","Roadway":"R01","TaskType":204,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-001-001-004-02","CurrentAddress":"001-001-001","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T09:34:55.0224368+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"","错误":"The remote server returned an error: (404) Not Found."}
-------------------------------
2024/11/1 9:36:55.462
请求异常
{"请求报文":[{"TaskId":0,"TaskNum":234,"PalletCode":"A00005","Roadway":"R01","TaskType":204,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-001-001-004-02","CurrentAddress":"001-001-001","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T09:36:53.3248437+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"","错误":"The remote server returned an error: (404) Not Found."}
-------------------------------
2024/11/1 9:37:41.472
请求异常
{"请求报文":[{"TaskId":0,"TaskNum":235,"PalletCode":"A00005","Roadway":"R01","TaskType":204,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-001-001-004-02","CurrentAddress":"001-001-001","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T09:37:34.8931853+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"","错误":"The remote server returned an error: (404) Not Found."}
-------------------------------
2024/11/1 9:39:37.274
请求异常
{"请求报文":[{"TaskId":0,"TaskNum":236,"PalletCode":"A00005","Roadway":"R01","TaskType":204,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-001-001-004-02","CurrentAddress":"001-001-001","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T09:39:23.4091352+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"","错误":"The operation has timed out."}
-------------------------------
2024/11/1 9:43:09.555
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":237,"PalletCode":"A00005","Roadway":"R01","TaskType":204,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-001-001-004-02","CurrentAddress":"001-001-001","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T09:43:02.7950148+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 11:49:20.887
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":238,"PalletCode":"A00001","Roadway":"R01","TaskType":200,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-001-001-001-02","CurrentAddress":"001-001-001","NextAddress":"R01-001-001-001-02","Depth":0,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T11:49:15.7593519+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 11:50:26.61
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":239,"PalletCode":"A00002","Roadway":"R01","TaskType":200,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-002-001-001-01","CurrentAddress":"001-001-001","NextAddress":"R01-002-001-001-01","Depth":0,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T11:50:25.5449866+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 11:50:43.802
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":240,"PalletCode":"A00003","Roadway":"R01","TaskType":200,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-001-001-002-02","CurrentAddress":"001-001-001","NextAddress":"R01-001-001-002-02","Depth":0,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T11:50:43.0725455+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 11:52:33.100
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":241,"PalletCode":"A00004","Roadway":"R01","TaskType":200,"TaskStatus":200,"SourceAddress":"001-001-001","TargetAddress":"R01-002-001-002-01","CurrentAddress":"001-001-001","NextAddress":"R01-002-001-002-01","Depth":0,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T11:52:32.5132244+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Log/System/APIÇëÇó/2024-11-01/³ö¿â¿âÈÎÎñÏ·¢241101.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
2024/11/1 13:34:24.853
请求成功
{"请求报文":{"TaskId":0,"TaskNum":242,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T13:34:18.907881+08:00","Modifier":null,"ModifyDate":null},"接收报文":"{\"status\":false,\"code\":0,\"message\":\"任务接收错误,错误信息:Object reference not set to an instance of an object.\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 13:40:11.285
请求成功
{"请求报文":{"TaskId":0,"TaskNum":248,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T13:40:07.2768798+08:00","Modifier":null,"ModifyDate":null},"接收报文":"{\"status\":false,\"code\":0,\"message\":\"任务接收错误,错误信息:Object reference not set to an instance of an object.\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:23:23.324
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":275,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:23:23.3004519+08:00","Modifier":null,"ModifyDate":null},{"TaskId":0,"TaskNum":276,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:23:23.3016749+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:31:05.947
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":279,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:31:05.922357+08:00","Modifier":null,"ModifyDate":null},{"TaskId":0,"TaskNum":280,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:31:05.9242038+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:37:09.583
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":283,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:37:09.561706+08:00","Modifier":null,"ModifyDate":null},{"TaskId":0,"TaskNum":284,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:37:09.5634395+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:41:20.424
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":287,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:41:20.3373694+08:00","Modifier":null,"ModifyDate":null},{"TaskId":0,"TaskNum":288,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:41:20.340493+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:45:37.950
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":291,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:45:32.1569581+08:00","Modifier":null,"ModifyDate":null},{"TaskId":0,"TaskNum":292,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:45:32.1596449+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:49:13.803
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":298,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:49:12.2052113+08:00","Modifier":null,"ModifyDate":null},{"TaskId":0,"TaskNum":299,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:49:12.2063816+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:40:01.476
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":309,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:39:59.068966+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:58:05.845
请求成功
{"请求报文":[],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:59:17.316
请求成功
{"请求报文":[],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:59:29.244
请求成功
{"请求报文":[],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:11:04.424
请求成功
{"请求报文":[],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:11:38.377
请求成功
{"请求报文":[],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:12:33.925
请求成功
{"请求报文":[],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Log/System/APIÇëÇó/2024-11-01/ÒÆ¿âÈÎÎñÏ·¢241101.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,215 @@
2024/11/1 13:34:24.22
请求成功
{"请求报文":{"TaskId":0,"TaskNum":242,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T13:34:18.907881+08:00","Modifier":null,"ModifyDate":null},"接收报文":"{\"status\":false,\"code\":0,\"message\":\"任务接收错误,错误信息:Object reference not set to an instance of an object.\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 13:38:22.913
请求异常
{"请求报文":{"TaskId":0,"TaskNum":245,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T13:38:12.8553407+08:00","Modifier":null,"ModifyDate":null},"接收报文":"","错误":"The operation has timed out."}
-------------------------------
2024/11/1 13:40:09.216
请求成功
{"请求报文":{"TaskId":0,"TaskNum":248,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T13:40:07.2768798+08:00","Modifier":null,"ModifyDate":null},"接收报文":"{\"status\":false,\"code\":0,\"message\":\"任务接收错误,错误信息:Object reference not set to an instance of an object.\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:13:07.386
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":251,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:13:07.1398787+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:13:09.248
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":252,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:13:09.2310498+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:13:38.124
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":255,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:13:38.1025405+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:13:54.35
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":256,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:13:54.0250995+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:15:04.687
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":259,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:15:04.6688543+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:15:06.306
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":260,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:15:06.2904233+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:15:26.948
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":263,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:15:26.9339128+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:15:28.570
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":264,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:15:28.5575187+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:17:04.450
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":267,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:17:04.4283907+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:17:56.362
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":268,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:17:56.3413553+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:20:58.237
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":271,"PalletCode":"A00001","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-001-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-001-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:20:20.9974835+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:21:00.651
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":272,"PalletCode":"A00002","Roadway":"R01","TaskType":100,"TaskStatus":100,"SourceAddress":"R01-001-001-002-02","TargetAddress":"004-000-001","CurrentAddress":"R01-001-001-002-02","NextAddress":"004-000-001","Depth":2,"OrderNo":null,"Grade":1,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:21:00.6222848+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:23:21.358
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":277,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:23:21.2154198+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:23:23.203
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":278,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-004-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:23:23.1852817+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:31:03.878
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":281,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:31:03.7293329+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:31:05.808
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":282,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-004-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:31:05.7926221+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:37:07.596
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":285,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:37:07.5409562+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:37:09.461
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":286,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-004-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:37:09.4480514+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:41:17.147
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":289,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:41:16.7511513+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:41:20.164
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":290,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-004-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:41:20.1113773+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:45:29.363
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":293,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:45:29.1214778+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:45:32.29
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":294,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-004-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:45:31.9937555+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:47:32.672
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":297,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:47:27.6689192+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 14:49:05.963
请求异常
{"请求报文":[{"TaskId":0,"TaskNum":300,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:48:51.3295703+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"","错误":"The operation has timed out."}
-------------------------------
2024/11/1 14:49:12.112
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":301,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T14:49:08.0474896+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":true,\"code\":0,\"message\":\"成功\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:05:02.645
请求异常
{"请求报文":[{"TaskId":0,"TaskNum":304,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:04:48.9092572+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"","错误":"An error occurred while sending the request."}
-------------------------------
2024/11/1 15:09:24.455
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":307,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:09:12.7471137+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:09:42.381
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":308,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:09:32.562272+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:39:58.821
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":311,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:39:58.6077409+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:42:13.319
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":314,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:42:13.283218+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:43:55.249
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":316,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:43:54.9826451+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:57:58.597
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":319,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:57:58.3778516+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:59:13.480
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":322,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:59:13.4611647+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 15:59:29.203
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":325,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T15:59:29.1779377+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:11:04.333
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":328,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T16:11:04.1124952+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:11:38.343
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":331,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T16:11:38.2219535+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:12:22.808
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":334,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T16:12:22.7799183+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:16:36.533
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":337,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T16:16:35.9430316+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:16:57.782
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":338,"PalletCode":"A00004","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-001-01","TargetAddress":"R01-001-001-003-02","CurrentAddress":"R01-002-001-001-01","NextAddress":"R01-001-001-003-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T16:16:57.1534742+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":\"有重复任务\",\"data\":null,\"devMessage\":null}"}
-------------------------------
2024/11/1 16:17:50.95
请求成功
{"请求报文":[{"TaskId":0,"TaskNum":341,"PalletCode":"A00003","Roadway":"R01","TaskType":300,"TaskStatus":300,"SourceAddress":"R01-002-001-002-01","TargetAddress":"R01-001-001-004-02","CurrentAddress":"R01-002-001-002-01","NextAddress":"R01-001-001-004-02","Depth":0,"OrderNo":null,"Grade":0,"SourceKey":0,"Dispatchertime":null,"Remark":null,"Creater":"admin","CreateDate":"2024-11-01T16:17:50.0077962+08:00","Modifier":null,"ModifyDate":null}],"接收报文":"{\"status\":false,\"code\":0,\"message\":null,\"data\":null,\"devMessage\":null}"}
-------------------------------
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -21,6 +21,9 @@
    // æ³¨æ„ï¼Œhttp://127.0.0.1:1818 å’Œ http://localhost:1818 æ˜¯ä¸ä¸€æ ·çš„
    "IPs": "http://127.0.0.1:8080,http://localhost:8080"
  },
  "WCS": "http://localhost:9291/api/Task/",
  "ApiName": "WIDESEA",
  "ExpMinutes": 120,
  "QuartzJobAutoStart": true,