1
huangxiaoqiang
2024-11-18 06407e013aeb7cf346352542dfbd4cc207622d92
1
已添加6个文件
已修改32个文件
691 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/WIDESEAWCS_BasicInfoRepository.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Http/HttpHelpers.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskEnumHelper.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskStatusEnum.cs 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskStatusGroup.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskTypeEnum.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskTypeGroup.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/WIDESEAWCS_IBasicInfoRepository.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/WIDESEAWCS_IBasicInfoService.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/WIDESEAWCS_ISystemRepository.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/WIDESEAWCS_ISystemServices.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/WIDESEAWCS_ITaskInfoRepository.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/WIDESEAWCS_ITaskInfoService.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Modified_Date.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/WIDESEAWCS_SystemRepository.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/WIDESEAWCS_SystemServices.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/WIDESEAWCS_TaskInfoRepository.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/LogJob/LogJob.cs 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/GetStackerObject.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Filter/ApiAuthorizeFilter.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/WIDESEAWCS_BasicInfoRepository.csproj
@@ -7,7 +7,7 @@
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
  </ItemGroup>
  <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj
@@ -7,8 +7,8 @@
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
    <PackageReference Include="WIDESEAWCS_QuartzJob" Version="2.0.4" />
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    <PackageReference Include="WIDESEAWCS_QuartzJob" Version="2.1.0" />
  </ItemGroup>
  <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Http/HttpHelpers.cs
@@ -62,7 +62,7 @@
            }
            catch (Exception ex)
            {
                WriteLog.Write_Log("System/API请求", rquestName, "请求异常", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent, é”™è¯¯ = ex.Message });
                WriteLog.Write_Log("API", rquestName, "请求异常", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent, é”™è¯¯ = ex.Message });
                throw ex;
            }
        }
@@ -119,7 +119,7 @@
            }
            catch (Exception ex)
            {
                WriteLog.Write_Log("System/API请求", rquestName, "请求异常", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent, é”™è¯¯ = ex.Message });
                WriteLog.Write_Log("API", rquestName, "请求异常", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent, é”™è¯¯ = ex.Message });
                throw ex;
            }
        }
@@ -184,12 +184,12 @@
                    throw new Exception("异常,响应码:" + statsCode.ToString());
                }
                WriteLog.Write_Log("System/API请求", rquestName, "请求成功", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent });
                WriteLog.Write_Log("API", rquestName, "请求成功", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent });
                return JsonConvert.DeserializeObject<T>(responseContent);
            }
            catch (Exception ex)
            {
                WriteLog.Write_Log("System/API请求", rquestName, "请求异常", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent, é”™è¯¯ = ex.Message });
                WriteLog.Write_Log("API", rquestName, "请求异常", new { è¯·æ±‚报文 = parm, æŽ¥æ”¶æŠ¥æ–‡ = responseContent, é”™è¯¯ = ex.Message });
                throw ex;
            }
        }
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj
@@ -7,7 +7,7 @@
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
  </ItemGroup>
</Project>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskEnumHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_DTO.TaskEnum
{
    public static class TaskEnumHelper
    {
        public static List<int> GetEnumIndexList(this Type type)
        {
            if (type is null) throw new ArgumentNullException("type");
            if (!type.IsEnum) return new List<int>();
            return Enum.GetValues(type).Cast<int>().ToList();
        }
        public static TaskTypeGroup GetTaskTypeGroup(this int taskType)
        {
            if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(taskType.ToString()).ToString(), out int result))
            {
                return TaskTypeGroup.OutbondGroup;
            }
            else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskType.ToString()).ToString(), out result))
            {
                return TaskTypeGroup.InboundGroup;
            }
            else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(taskType.ToString()).ToString(), out result))
            {
                return TaskTypeGroup.RelocationGroup;
            }
            else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(taskType.ToString()).ToString(), out result))
            {
                return TaskTypeGroup.OtherGroup;
            }
            else
            {
                throw new NotImplementedException();
            }
        }
        public static int GetNextNotCompletedStatus<T>(this int currentStatus) where T : Enum
        {
            Type type = typeof(T);
            if (type is null) throw new ArgumentNullException();
            if (!type.IsEnum) return 0;
            if (type == typeof(TaskInStatusEnum))
            {
                List<int> taskInboundTypes = type.GetEnumIndexList();
                return taskInboundTypes.Where(x => x > currentStatus && x < (int)TaskInStatusEnum.InFinish).OrderBy(x => x).FirstOrDefault();
            }
            else if (type == typeof(TaskOutStatusEnum))
            {
                return type.GetEnumIndexList().Where(x => x > currentStatus && x < (int)TaskOutStatusEnum.OutFinish).OrderBy(x => x).FirstOrDefault();
            }
            else
            {
                throw new NotImplementedException();
            }
        }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskStatusEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,147 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_DTO.TaskEnum
{
    public enum TaskInStatusEnum
    {
        /// <summary>
        /// æ–°å»ºå…¥åº“任务
        /// </summary>
        [Description("新建入库任务")]
        InNew = 200,
        ///// <summary>
        ///// AGV入库执行中
        ///// </summary>
        //[Description("AGV入库执行中")]
        //AGV_InExecuting = 210,
        ///// <summary>
        ///// AGV入库完成
        ///// </summary>
        //[Description("AGV搬运完成")]
        //AGV_InFinish = 215,
        /// <summary>
        /// è¾“送线入库执行中
        /// </summary>
        [Description("输送线入库执行中")]
        Line_InExecuting = 220,
        /// <summary>
        /// è¾“送线入库完成
        /// </summary>
        [Description("输送线输送完成")]
        Line_InFinish = 225,
        /// <summary>
        /// å †åž›æœºå…¥åº“执行中
        /// </summary>
        [Description("堆垛机入库执行中")]
        SC_InExecuting = 230,
        /// <summary>
        /// å †åž›æœºå…¥åº“完成
        /// </summary>
        [Description("堆垛机入库完成")]
        SC_InFinish = 235,
        /// <summary>
        /// å…¥åº“任务完成
        /// </summary>
        [Description("入库任务完成")]
        InFinish = 290,
        /// <summary>
        /// å…¥åº“任务挂起
        /// </summary>
        [Description("入库任务挂起")]
        InPending = 297,
        /// <summary>
        /// å…¥åº“任务取消
        /// </summary>
        [Description("入库任务取消")]
        InCancel = 298,
        /// <summary>
        /// å…¥åº“任务异常
        /// </summary>
        [Description("入库任务异常")]
        InException = 299,
    }
    public enum TaskOutStatusEnum
    {
        /// <summary>
        /// æ–°å»ºå‡ºåº“任务
        /// </summary>
        [Description("新建出库任务")]
        OutNew = 100,
        /// <summary>
        /// å †åž›æœºå‡ºåº“执行中
        /// </summary>
        [Description("堆垛机出库执行中")]
        SC_OutExecuting = 110,
        /// <summary>
        /// å †åž›æœºå‡ºåº“完成
        /// </summary>
        [Description("堆垛机出库完成")]
        SC_OutFinish = 115,
        /// <summary>
        /// è¾“送线出库执行中
        /// </summary>
        [Description("输送线出库执行中")]
        Line_OutExecuting = 120,
        /// <summary>
        /// è¾“送线出库完成
        /// </summary>
        [Description("输送线输送完成")]
        Line_OutFinish = 125,
        ///// <summary>
        ///// AGV出库执行中
        ///// </summary>
        //[Description("AGV出库执行中")]
        //AGV_OutExecuting = 130,
        ///// <summary>
        ///// AGV出库完成
        ///// </summary>
        //[Description("AGV搬运完成")]
        //AGV_OutFinish = 135,
        /// <summary>
        /// å‡ºåº“任务完成
        /// </summary>
        [Description("出库任务完成")]
        OutFinish = 190,
        /// <summary>
        /// å‡ºåº“任务挂起
        /// </summary>
        [Description("出库任务挂起")]
        OutPending = 197,
        /// <summary>
        /// å‡ºåº“任务取消
        /// </summary>
        [Description("出库任务取消")]
        OutCancel = 198,
        /// <summary>
        /// å‡ºåº“任务异常
        /// </summary>
        [Description("出库任务异常")]
        OutException = 199,
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskStatusGroup.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_DTO.TaskEnum
{
    public enum TaskStatusGroup
    {
        NotCompleted,
        Completed,
        Exception
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskTypeEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_DTO.TaskEnum
{
    public enum TaskInboundTypeEnum
    {
        /// <summary>
        /// å…¥åº“
        /// </summary>
        [Description("入库")]
        Inbound = 200,
        /// <summary>
        /// ç›˜ç‚¹å…¥åº“
        /// </summary>
        [Description("盘点入库")]
        InInventory = 201,
        /// <summary>
        /// åˆ†æ‹£å…¥åº“
        /// </summary>
        [Description("分拣入库")]
        InPick = 202,
        /// <summary>
        /// è´¨æ£€å…¥åº“
        /// </summary>
        [Description("质检入库")]
        InQuality = 203
    }
    public enum TaskOutboundTypeEnum
    {
        /// <summary>
        /// å‡ºåº“
        /// </summary>
        [Description("出库")]
        Outbound = 100,
        /// <summary>
        /// ç›˜ç‚¹å‡ºåº“
        /// </summary>
        [Description("盘点出库")]
        OutInventory = 101,
        /// <summary>
        /// åˆ†æ‹£å‡ºåº“
        /// </summary>
        [Description("分拣出库")]
        OutPick = 102,
        /// <summary>
        /// è´¨æ£€å‡ºåº“
        /// </summary>
        [Description("质检出库")]
        OutQuality = 103,
    }
    public enum TaskRelocationTypeEnum
    {
        /// <summary>
        /// åº“内移库
        /// </summary>
        [Description("库内移库")]
        Relocation = 300,
        /// <summary>
        /// åº“外移库
        /// </summary>
        [Description("库外移库")]
        RelocationIn = 301
    }
    public enum TaskOtherTypeEnum
    {
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskEnum/TaskTypeGroup.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_DTO.TaskEnum
{
    public enum TaskTypeGroup
    {
        InboundGroup,
        OutbondGroup,
        RelocationGroup,
        OtherGroup
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj
@@ -15,7 +15,7 @@
    </ItemGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
</Project>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/WIDESEAWCS_IBasicInfoRepository.csproj
@@ -7,7 +7,7 @@
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
  </ItemGroup>
  <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/WIDESEAWCS_IBasicInfoService.csproj
@@ -7,7 +7,7 @@
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
    <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
  </ItemGroup>
  <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/WIDESEAWCS_ISystemRepository.csproj
@@ -7,7 +7,7 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/WIDESEAWCS_ISystemServices.csproj
@@ -7,7 +7,7 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/WIDESEAWCS_ITaskInfoRepository.csproj
@@ -7,7 +7,7 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -27,6 +27,7 @@
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_DTO.TaskEnum;
namespace WIDESEAWCS_ITaskInfoService
{
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/WIDESEAWCS_ITaskInfoService.csproj
@@ -7,7 +7,7 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj
@@ -8,8 +8,8 @@
    <ItemGroup>
        <PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
        <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
        <PackageReference Include="WIDESEAWCS_Core" Version="1.0.4" />
        <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
        <PackageReference Include="WIDESEAWCS_Core" Version="1.0.6" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs
@@ -22,6 +22,7 @@
using WIDESEAWCS_Core.Caches;
using WIDESEAWCS_QuartzJob.DeviceEnum;
using WIDESEA_Core.Enums;
using WIDESEAWCS_DTO.TaskEnum;
namespace WIDESEAWCS_WCSServer.Controllers.System
{
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Modified_Date.json
@@ -1 +1 @@
{"MM":"1","LogTime":"2024-11-11"}
{"MM":"1","LogTime":"2024-11-12"}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
@@ -119,7 +119,7 @@
//todo
//app.UseRecordAccessLogsMiddle();
app.UseCors(AppSettings.app(new string[] { "Cors", "PolicyName" }));
app.UseCors(AppSettings.Get(new string[] { "Cors", "PolicyName" }));
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
@@ -74,7 +74,7 @@
    <ItemGroup>
        <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
        <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
        <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -19,7 +19,7 @@
    "EnableAllIPs": true, //当为true时,开放所有IP均可访问。
    // æ”¯æŒå¤šä¸ªåŸŸåç«¯å£ï¼Œæ³¨æ„ç«¯å£å·åŽä¸è¦å¸¦/斜杆:比如localhost:8000/,是错的
    // æ³¨æ„ï¼Œhttp://127.0.0.1:1818 å’Œ http://localhost:1818 æ˜¯ä¸ä¸€æ ·çš„
    "IPs": "http://127.0.0.1:8080,http://localhost:8080"
    "IPs": "http://127.0.0.1:8080,http://localhost:8080,http://127.0.0.1:8081,http://localhost:8081"
  },
  "WMS": "http://localhost:9290/api/Task/",
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/WIDESEAWCS_SystemRepository.csproj
@@ -7,7 +7,7 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/WIDESEAWCS_SystemServices.csproj
@@ -7,7 +7,7 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/WIDESEAWCS_TaskInfoRepository.csproj
@@ -7,7 +7,7 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs
@@ -26,6 +26,7 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.TaskEnum;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -17,24 +17,12 @@
using AutoMapper;
using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Comm.Http;
using WIDESEA_Common.Log;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.DB.Models;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
@@ -44,6 +32,8 @@
using WIDESEAWCS_Core.Helper;
using WIDESEA_Core.Enums;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_DTO.TaskEnum;
namespace WIDESEAWCS_TaskInfoService
{
@@ -491,17 +481,16 @@
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                task.ModifyDate = DateTime.Now;
                task.Modifier = "WMS";
                if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)OutTaskStatusEnum.OutFinish;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                    if(App.User.UserId > 0)
                    {
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (response.Status)
                        {
@@ -514,6 +503,8 @@
                            return content = WebResponseContent.Instance.Error(response.Message);
                        }
                    }
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _unitOfWorkManage.CommitTran();
                    return content.OK();
                }
@@ -521,13 +512,10 @@
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)InTaskStatusEnum.InFinish;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机入库完成");
                    if (App.User.UserId > 0)
                    {
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (response.Status)
                        {
@@ -540,6 +528,8 @@
                            return content = WebResponseContent.Instance.Error(response.Message);
                        }
                    }
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _unitOfWorkManage.CommitTran();
                    return content.OK();
                }
@@ -547,13 +537,10 @@
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)InTaskStatusEnum.RelocationFinish;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机移库完成");
                    if (App.User.UserId > 0)
                    {
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (response.Status)
                        {
@@ -566,6 +553,8 @@
                            return content = WebResponseContent.Instance.Error(response.Message);
                        }
                    }
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _unitOfWorkManage.CommitTran();
                    return content.OK();
                }
@@ -581,7 +570,7 @@
            }
            finally
            {
                WriteLog.GetLog("完成任务").Write($"操作人:{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "完成任务");
                WriteLog.GetLog("完成任务").Write($"操作人:{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}任务号:{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "完成任务");
            }
            return content;
        }
@@ -594,17 +583,18 @@
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                task.ModifyDate = DateTime.Now;
                task.Modifier = "WMS";
                if (task.TaskType == (int)TaskTypeEnum.Outbound  || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)OutTaskStatusEnum.OutCancel;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库取消");
                    if (App.User.UserId > 0)
                    {
                        BaseDal.DeleteData(task);
                        _task_HtyService.AddTaskHty(task);
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "取消任务");
                        if (response.Status)
                        {
@@ -625,13 +615,10 @@
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)InTaskStatusEnum.InCancel;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机入库取消");
                    if (App.User.UserId > 0)
                    {
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "取消任务");
                        if (response.Status)
                        {
@@ -645,6 +632,8 @@
                            return content = WebResponseContent.Instance.Error(response.Message);
                        }
                    }
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _unitOfWorkManage.CommitTran();
                    return content.OK();
                }
@@ -652,13 +641,10 @@
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)InTaskStatusEnum.RelocationCancel;
                    task.ModifyDate = DateTime.Now;
                    task.Modifier = "System";
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机移库取消");
                    if (App.User.UserId > 0)
                    {
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "取消任务");
                        if (response.Status)
                        {
@@ -672,6 +658,8 @@
                            return content = WebResponseContent.Instance.Error(response.Message);
                        }
                    }
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _unitOfWorkManage.CommitTran();
                    return content.OK();
                }
@@ -687,7 +675,7 @@
            }
            finally
            {
                WriteLog.GetLog("取消任务").Write($"操作人:{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "取消任务");
                WriteLog.GetLog("取消任务").Write($"操作人:{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}任务号:{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "取消任务");
            }
        }
        /// <summary>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj
@@ -7,7 +7,7 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/LogJob/LogJob.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,132 @@
using HslCommunication;
using HslCommunication.Core;
using Microsoft.VisualBasic.FileIO;
using Newtonsoft.Json;
using Quartz;
using SixLabors.ImageSharp.PixelFormats;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
namespace WIDESEAWCS_Tasks
{
    [DisallowConcurrentExecution]
    public class LogJob : IJob
    {
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
                #region
                //CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                //Console.Out.WriteLine(commonStackerCrane.DeviceName + "状态:" + commonStackerCrane.StackerCraneStatusDes);
                //Console.Out.WriteLine(commonStackerCrane.DeviceName + "手自动状态:" + commonStackerCrane.StackerCraneAutoStatusDes);
                //Console.Out.WriteLine(commonStackerCrane.DeviceName + "作业状态:" + commonStackerCrane.StackerCraneWorkStatusDes);
                //Console.Out.WriteLine(commonStackerCrane.DeviceName + "当前任务号:" + commonStackerCrane.GetValue<StackerCraneDBName, int>(StackerCraneDBName.CurrentTaskNum));
                //commonStackerCrane.SetValue(StackerCraneDBName.CurrentTaskNum, DateTime.Now.Second);
                //OperateResult<TimeSpan> operateResult = commonStackerCrane.Communicator.Wait("DB1.18", 1000, 60000, 1);
                //Console.Out.WriteLine(operateResult.Serialize());
                //byte[] bytes = commonStackerCrane.Communicator.Read("DB1.1", 2);
                //Console.Out.WriteLine(bytes.ToBoolArray().ToList().Serialize());
                //bool[] bools = new bool[] { true, false, true };
                //byte[] bytes1 = bools.ToByteArray();
                //Console.Out.WriteLine(bytes1.ToList().Serialize());
                //Console.Out.WriteLine(DateTime.Now);
                //Console.Out.WriteLine();
                #endregion
                Task.Run(() =>
                {
                    while (true)
                    {
                        try
                        {
                            string date = DateTime.Now.ToString("yyyy-MM-dd");
                            string json = File.ReadAllText(AppContext.BaseDirectory + "Modified_Date.json", Encoding.UTF8);
                            var LogsTime = JsonConvert.DeserializeObject<TimeList>(json);
                            if (date != LogsTime.LogTime)
                            {
                                LogsTime.LogTime = date;
                                string modifiedJson = JsonConvert.SerializeObject(LogsTime);
                                File.WriteAllText("Modified_Date.json", modifiedJson);
                                string folderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log");
                                DateTime tenDaysAgo = DateTime.Now.AddDays(-14); // èŽ·å–å½“å‰æ—¶é—´çš„ä¸ƒå¤©ä¹‹å‰çš„æ—¥æœŸ
                                DeleteLogs(folderPath, tenDaysAgo);
                            }
                            Thread.Sleep(1000 * 60 * 60 * 24);
                        }
                        catch
                        {
                            Thread.Sleep(1000 * 60 * 60);
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                Console.Out.WriteLine(nameof(LogJob) + ":" + ex.Message);
            }
            return Task.CompletedTask;
        }
        public static void DeleteLogs(string path, DateTime dateTime)
        {
            DirectoryInfo directory = new DirectoryInfo(path);
            foreach (FileSystemInfo file in directory.GetFileSystemInfos())
            {
                if (file is FileInfo && ((FileInfo)file).LastWriteTime < dateTime ||
                    file is DirectoryInfo && ((DirectoryInfo)file).CreationTime < dateTime)
                {
                    try
                    {
                        if (file is FileInfo)
                        {
                            ((FileInfo)file).Delete();
                        }
                        else if (file is DirectoryInfo)
                        {
                            DeleteLogs(file.FullName, dateTime);
                            ((DirectoryInfo)file).Delete(true);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("无法删除文件或文件夹: " + file.FullName + "\n错误信息: " + ex.Message);
                    }
                }
            }
        }
        public class TimeList
        {
            public string MM { get; set; }
            public string LogTime { get; set; }
        }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -1,27 +1,15 @@
using HslCommunication;
using Microsoft.AspNetCore.Components.Routing;
using Newtonsoft.Json;
using Quartz;
using Quartz;
using SqlSugar.Extensions;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.Log;
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_QuartzJob.StackerCrane;
using WIDESEAWCS_Tasks.StackerCraneJob;
namespace WIDESEAWCS_Tasks
@@ -34,11 +22,11 @@
        private readonly ITaskRepository _taskRepository;
        private readonly IRouterService _routerService;
        public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService)
        public CommonStackerCraneJob(ITaskService taskService, ITaskRepository taskRepository, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService)
        {
            _taskService = taskService;
            _taskExecuteDetailService = taskExecuteDetailService;
            _taskRepository = taskRepository;
            _taskExecuteDetailService = taskExecuteDetailService;
            _routerService = routerService;
        }
@@ -47,16 +35,16 @@
            try
            {
                SpeStackerCrane speStackerCrane = (SpeStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                GetStackerObject getStackerObject = new GetStackerObject(speStackerCrane);
                if (speStackerCrane != null)
                {
                    GetStackerObject getStackerObject = new GetStackerObject(speStackerCrane);
                    if (!getStackerObject.IsEventSubscribed)
                    {
                        getStackerObject.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订阅任务完成事件
                    }
                    if (getStackerObject.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && getStackerObject.StackerCraneStatusValue == StackerCraneStatus.Ready)
                    {
                        getStackerObject.CheckStackerCraneTaskCompleted();//检测完成事件
                        getStackerObject.CheckStackerCraneTaskCompleted();//检测堆垛机任务完成事件
                        if(getStackerObject.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
                        {
@@ -80,7 +68,7 @@
            }
            catch (Exception ex)
            {
                WriteLog.GetLog($"堆垛机异常").Write($"{nameof(CommonStackerCraneJob)}:{ex.Message}", "堆垛机异常");
                //WriteLog.GetLog($"堆垛机异常").Write($"{nameof(CommonStackerCraneJob)}:{ex.Message}", "堆垛机异常");
            }
            return Task.CompletedTask;
        }
@@ -90,14 +78,13 @@
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e)
        private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, StackerCraneTaskCompletedEventArgs e)
        {
            SpeStackerCrane? speStackerCrane = sender as SpeStackerCrane;
            if (speStackerCrane != null)
            {
                if (speStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5)
                {
                    Console.Out.WriteLine("TaskCompleted" + e.TaskNum);
                    _taskService.StackCraneTaskCompleted(e.TaskNum);
                    speStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
                }
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/GetStackerObject.cs
@@ -1,17 +1,10 @@
using HslCommunication;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.StackerCrane;
using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
namespace WIDESEAWCS_Tasks.StackerCraneJob
{
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj
@@ -7,8 +7,8 @@
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.0.0" />
      <PackageReference Include="WIDESEAWCS_QuartzJob" Version="2.0.4" />
      <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.1" />
      <PackageReference Include="WIDESEAWCS_QuartzJob" Version="2.1.0" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/Filter/ApiAuthorizeFilter.cs
@@ -38,7 +38,7 @@
        /// <param name="context"></param>
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            if (!App.HostEnvironment.IsProduction() || context.HttpContext.Request.Path.Value == loginPath || context.HttpContext.Request.Path.Value == vierificationCodePath)
            //if (!App.HostEnvironment.IsProduction() || context.HttpContext.Request.Path.Value == loginPath || context.HttpContext.Request.Path.Value == vierificationCodePath)
            {
                if (context.ActionDescriptor.EndpointMetadata.Any(item => item is IAllowAnonymous))
                {
@@ -58,14 +58,14 @@
                    return;
                }
            }
            else
            {
                if (!context.HttpContext.User.Identity?.IsAuthenticated ?? false || !context.HttpContext.Request.Headers.ContainsKey(AppSecret.TokenHeaderName))
                {
                    context.Unauthorized("未授权");
                    return;
                }
            }
            //else
            //{
            //    if (!context.HttpContext.User.Identity?.IsAuthenticated ?? false || !context.HttpContext.Request.Headers.ContainsKey(AppSecret.TokenHeaderName))
            //    {
            //        context.Unauthorized("未授权");
            //        return;
            //    }
            //}
            #region å•点登录
            if (string.IsNullOrEmpty(App.User.Token))
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -128,7 +128,7 @@
            }
            finally
            {
                WriteLog.GetLog("任务完成").Write($"操作人:{(App.User.UserId>0? App.User.UserName: "System")}{ Environment.NewLine}{ JsonConvert.SerializeObject(content)}", "任务完成");
                WriteLog.GetLog("任务完成").Write($"操作人:{(App.User.UserId>0? App.User.UserName: "System")}{ Environment.NewLine}任务号:{taskNum}{Environment.NewLine}{ JsonConvert.SerializeObject(content)}", "任务完成");
            }
        }
        public WebResponseContent TaskCancel(int taskNum)
@@ -175,7 +175,7 @@
            }
            finally
            {
                WriteLog.GetLog("任务取消").Write($"操作人:{(App.User.UserId > 0 ? App.User.UserName : "System")}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "任务取消");
                WriteLog.GetLog("任务取消").Write($"操作人:{(App.User.UserId > 0 ? App.User.UserName : "System")}{Environment.NewLine}任务号:{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "任务取消");
            }
        }
@@ -277,7 +277,7 @@
                    LocationCode = task.TargetAddress,
                    StockStatus = StockStatusEmun.已入库.ObjToInt(),
                    Creater = App.User.UserId > 0 ? App.User.UserName : "System",
                    CreateDate = App.User.UserId > 0 ? DateTime.Now : DateTime.Now,
                    CreateDate = DateTime.Now,
                };
                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs
@@ -10,6 +10,7 @@
using WIDESEA_ITaskInfoService;
using System.IO;
using WIDESEA_Model.Models;
using System;
namespace WIDESEA_WMSServer.Controllers
{
@@ -52,12 +53,28 @@
            return _inboundService.InbounOrderService.QueryOrderInfo(pageNo, orderNo);
        }
        //[HttpPost, HttpGet, Route("UploadApp"), AllowAnonymous]
        //public WebResponseContent UploadApp(IEnumerable<IFormFile> fileInput)
        //{
        [HttpPost, HttpGet, Route("UploadApp"), AllowAnonymous]
        public async Task<WebResponseContent> UploadApk(IEnumerable<IFormFile> fileInput)
         {
            // æ£€æŸ¥æ˜¯å¦æœ‰æ–‡ä»¶ä¸Šä¼ 
            if (fileInput == null || !fileInput.Any())
            {
                return WebResponseContent.Instance.Error("文件未上传");
            }
        //    //return PDAOperate.UploadApp(Request.Form.Files.ToList());
        //}
            var formFile = fileInput.First();
            var uploadFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Upload");
            Directory.CreateDirectory(uploadFolder);
            var fileName = $"WMS-PDA.apk";
            var filePath = Path.Combine(uploadFolder, fileName);
            using (var stream = new FileStream(filePath, FileMode.Create))
            {
                await formFile.CopyToAsync(stream);
            }
            return WebResponseContent.Instance.OK("文件上传成功"); ;
        }
        [HttpPost, HttpGet, Route("GetPDAVersion"), AllowAnonymous]
        public WebResponseContent GetPDAVersion(string version)
@@ -87,31 +104,8 @@
                stream.CopyTo(memory);
            }
            memory.Position = 0;
            return File(memory, GetContentType(filePath), Path.GetFileName(filePath));
        }
        private string GetContentType(string path)
        {
            var types = GetMimeTypes();
            var ext = Path.GetExtension(path).ToLowerInvariant();
            return types[ext];
        }
        private Dictionary<string, string> GetMimeTypes()
        {
            return new Dictionary<string, string>
            {
                { ".txt", "text/plain" },
                { ".pdf", "application/pdf" },
                { ".doc", "application/vnd.ms-word" },
                { ".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" },
                { ".xls", "application/vnd.ms-excel" },
                { ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" },
                { ".png", "image/png" },
                { ".jpg", "image/jpeg" },
                { ".jpeg", "image/jpeg" },
                { ".gif", "image/gif" },
                { ".csv", "text/csv" },
                { ".apk", "application/vnd.android.package-archive" }
            };
            var ext = Path.GetExtension(filePath).ToLowerInvariant();
            return File(memory, new Dictionary<string, string>{{ ".apk", "application/vnd.android.package-archive" }}[ext], Path.GetFileName(filePath));
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs
@@ -18,19 +18,19 @@
        {
        }
        [HttpPost, Route("GetAllStockViews"), AllowAnonymous]
        [HttpPost, Route("GetAllStockViews"),AllowAnonymous]
        public List<StockViewDTO> GetAllStockViews()
        {
            return Service.Repository.GetAllStockViews();
        }
        [HttpPost, Route("GetStockSelectViews"), AllowAnonymous]
        public List<StockSelectViewDTO> GetStockSelectViews(string materielCode)
        public List<StockSelectViewDTO> GetStockSelectViews([FromBody]string materielCode)
        {
            return Service.GetStockSelectViews(materielCode);
        }
        [HttpPost, Route("GetPalletStockInfo"), AllowAnonymous]
        public Dt_StockInfo GetPalletStockInfo(string roadwayNo)
        public Dt_StockInfo GetPalletStockInfo([FromBody] string roadwayNo)
        {
            return Service.Repository.GetPalletStockInfo(roadwayNo);
        }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -27,5 +27,5 @@
  "ApiName": "WIDESEA",
  "ExpMinutes": 120,
  "QuartzJobAutoStart": true,
  "PDAVersion": "20"
  "PDAVersion": "2"
}