分支自 SuZhouGuanHong/TaiYuanTaiZhong

dengjunjie
2024-05-11 14f174a37b0368167610119ee1b8ce7b610b5a9d
优化人工出库逻辑
已修改6个文件
115 ■■■■ 文件已修改
代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail_hty.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_inventoryService.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs
@@ -47,20 +47,10 @@
                            #region 
                            dt_stationinfo stationinfo = null;
                            if (Station.area == "1")
                            {
                                //查找当前货位同列是否存在入库任务
                                if (stationinfoRepository.Find(x => x.column == Station.column && x.area == "1" && x.location_state == LocationStateEnum.InBusy.ToString()).Any()) continue;
                            //查找当前货位同行是否存在入库任务
                            if (stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.location_state == LocationStateEnum.InBusy.ToString()).Any()) continue;
                                stationinfo = stationinfoRepository.Find(x => x.column == Station.column && x.enable && x.area == "1" && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderBy(x => x.line).FirstOrDefault();
                            }
                            else
                            {
                                //查找当前货位同列是否存在入库任务
                                if (stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.location_state == LocationStateEnum.InBusy.ToString()).Any()) continue;
                                stationinfo = stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderByDescending(x => x.column).FirstOrDefault();
                            }
                            stationinfo = stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderByDescending(x => x.column).FirstOrDefault();
                            if (stationinfo != null)
                            {
                                if (stationinfoRepository.Find(x => x.line == stationinfo.line && x.area == stationinfo.area && x.column > stationinfo.column && !x.enable).Any())
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs
@@ -77,7 +77,22 @@
        [Editable(true)]
        public string heatBatchID { get; set; }
        /// <summary>
        ///完成时间
        /// </summary>
        [Display(Name = "完成时间")]
        [Column(TypeName = "datetime")]
        [Editable(true)]
        public DateTime? FinishTime { get; set; }
        /// <summary>
        ///工单状态
        /// </summary>
        [Display(Name = "工单状态")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [Editable(true)]
        public string Status { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail_hty.cs
@@ -105,6 +105,13 @@
       [Editable(true)]
       public string compeletor { get; set; }
        /// <summary>
        ///工单状态
        /// </summary>
        [Display(Name = "工单状态")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [Editable(true)]
        public string Status { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs
@@ -179,6 +179,14 @@
        public DateTime CreateTime { get; set; }
        /// <summary>
        ///完成时间
        /// </summary>
        [Display(Name = "完成时间")]
        [Column(TypeName = "datetime")]
        [Editable(true)]
        public DateTime? FinishTime { get; set; }
        /// <summary>
        ///创建者
        /// </summary>
        [Display(Name = "创建者")]
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_inventoryService.cs
@@ -36,6 +36,7 @@
using WIDESEA_Comm.MES_Info;
using System.Reflection;
using static System.Collections.Specialized.BitVector32;
using WIDESEA_Comm;
namespace WIDESEA_WMS.Services
{
@@ -246,7 +247,7 @@
                            detail detail = new detail();
                            detail.sn = inventory.SN;
                            lists.Add(detail);
                            str = str == "" ? inventory.SN : "," + inventory.SN;
                            str += str == "" ? inventory.SN : "," + inventory.SN;
                        }
                        agvInWarehousePara outWarehousePara = new agvInWarehousePara()
                        {
@@ -271,11 +272,31 @@
                            foreach (var inventory in inventorys)
                            {
                                var station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault();
                                var bindSNS = station.bindSN.Split(",");
                                station.bindSN = ToMesServer.OperStr(bindSNS, inventory.SN);
                                var billetS = station.billetID.Split(",");
                                station.billetID = ToMesServer.OperStr(billetS, inventory.BilletNumber.ToString());
                                station.quantity = station.quantity - 1;
                                if (station.quantity == 0)
                                {
                                    station.stationType = string.Empty;
                                    station.heatNumber = string.Empty;
                                    station.Number = string.Empty;
                                    station.billetID = string.Empty;
                                    station.bindSN = string.Empty;
                                    station.enable = false;
                                    station.tray_status = string.Empty;
                                    station.location_state = LocationStateEnum.Empty.ToString();
                                }
                                else
                                {
                                    var bindSNS = station.bindSN.Split(",");
                                    station.bindSN = ToMesServer.OperStr(bindSNS, inventory.SN);
                                    var billetS = station.billetID.Split(",");
                                    station.billetID = ToMesServer.OperStr(billetS, inventory.BilletNumber.ToString());
                                }
                                #region å–消跟踪DbContext中被跟踪的实体
                                var currentEntry = stationinfoRepository.DbContext.ChangeTracker.Entries<dt_stationinfo>().FirstOrDefault();
                                if (currentEntry != null) currentEntry.State = EntityState.Detached;
                                #endregion
                                stationinfoRepository.Update(station, true);
                                _repository.Delete(inventory, true);
                            }
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
using System.Collections.Generic;
@@ -47,6 +48,7 @@
                        list.Add(SN);
                }
                var inventoryList = inventoryRepository.Find(x => list.Contains(x.SN)).ToList();
                foreach (var inventorys in inventoryList.GroupBy(x => x.stationCode))
                {
                    try
@@ -57,7 +59,7 @@
                            detail detail = new detail();
                            detail.sn = inventory.SN;
                            lists.Add(detail);
                            str = str == "" ? inventory.SN : "," + inventory.SN;
                            str += str == "" ? inventory.SN : "," + inventory.SN;
                        }
                        agvInWarehousePara outWarehousePara = new agvInWarehousePara()
                        {
@@ -82,11 +84,31 @@
                            foreach (var inventory in inventorys)
                            {
                                var station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault();
                                var bindSNS = station.bindSN.Split(",");
                                station.bindSN = OperStr(bindSNS, inventory.SN);
                                var billetS = station.billetID.Split(",");
                                station.billetID = OperStr(billetS, inventory.BilletNumber.ToString());
                                station.quantity = station.quantity - 1;
                                if (station.quantity == 0)
                                {
                                    station.stationType = string.Empty;
                                    station.heatNumber = string.Empty;
                                    station.Number = string.Empty;
                                    station.billetID = string.Empty;
                                    station.bindSN = string.Empty;
                                    station.enable = false;
                                    station.tray_status = string.Empty;
                                    station.location_state = LocationStateEnum.Empty.ToString();
                                }
                                else
                                {
                                    var bindSNS = station.bindSN.Split(",");
                                    station.bindSN = OperStr(bindSNS, inventory.SN);
                                    var billetS = station.billetID.Split(",");
                                    station.billetID = OperStr(billetS, inventory.BilletNumber.ToString());
                                }
                                #region å–消跟踪DbContext中被跟踪的实体
                                var currentEntry = stationinfoRepository.DbContext.ChangeTracker.Entries<dt_stationinfo>().FirstOrDefault();
                                if (currentEntry != null) currentEntry.State = EntityState.Detached;
                                #endregion
                                stationinfoRepository.Update(station, true);
                                inventoryRepository.Delete(inventory, true);
                            }