Admin
9 小时以前 7a70c16d9fb28646a0f22e9f699746df6c651e8c
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
@@ -1,18 +1,19 @@
using System;
using MailKit.Search;
using Microsoft.Extensions.Logging;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Enums;
using WIDESEA_Core;
using WIDESEA_Model.Models;
using WIDESEA_Core.Helper;
using Microsoft.Extensions.Logging;
using MailKit.Search;
using System.Reflection.Metadata;
using static WIDESEA_ITaskInfoService.ITaskService;
using WIDESEA_Common.Log;
using WIDESEA_Core;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Model.Models;
using static WIDESEA_ITaskInfoService.ITaskService;
namespace WIDESEA_TaskInfoService
{
@@ -245,6 +246,17 @@
                            _stockService.StockInfoService.Repository.AddData(dt_Stock);
                        }
                    }
                    /*else if(generate.SourceAddress == "R01-002-042-001-01")
                    {
                        WebResponseContent webResponse= Queryinventory(generate);
                        if (!webResponse.Status)
                        {
                            return content = WebResponseContent.Instance.Error($"组盘失败:{webResponse.Message}");
                        }
                    }*/
                    Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode && x.StockStatus== (int)StockStatusEmun.组盘暂存);
                    if (dt_StockInfo != null)
                    {
@@ -280,17 +292,18 @@
                                Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.OrderName == targetCodes[0]);
                                if (dt_Inbound.Startingcolumn != 0 || dt_Inbound.Terminationcolumn != 0)
                                {
                                    newLocation = _basicService.LocationInfoService.GetLocation2(newSourceAddress.RoadwayNo, Locationtype, dt_Inbound.Startingcolumn, dt_Inbound.Terminationcolumn);
                                    newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype, dt_Inbound.Startingcolumn, dt_Inbound.Terminationcolumn);
                                }
                                else
                                {
                                    newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype);
                                    newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype,0,0);
                                }
                            }
                            else
                            {
                                newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype);
                                newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype, 0, 0);
                            }
@@ -473,6 +486,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                string[] targetCodes = generate.PalletCode.Split("*");
                if (targetCodes.Length == 5)
@@ -485,7 +499,18 @@
                        return content = WebResponseContent.Instance.Error($"第五位物料状态编码解析错误:{generate.PalletCode}");
                    }
                    if (dt_Inbound != null)
                    int xzrktype = 1;
                    if(dt_Inbound.OrderType == (int)InventoryMaterialType.成品)
                    {
                        xzrktype = 2;
                    }
                    WebResponseContent webResponsePD = QueryinveCount(dt_Inbound.OrderType, dt_Inbound.Startingcolumn, dt_Inbound.Terminationcolumn);
                    if (!webResponsePD.Status) { return webResponsePD; }
                    if (dt_Inbound != null && webResponsePD.Status)
                    {
                        string PalletCodetarget = string.Join("*", targetCodes.Take(3));
                        Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode.Contains(PalletCodetarget));
@@ -602,7 +627,16 @@
                            {
                                if (dt_StockInfo.StockStatus == (int)StockStatusEmun.组盘暂存)
                                {
                                    return content = WebResponseContent.Instance.OK(data: 1);
                                    List<Dt_Task> dt_Tasks= BaseDal.QueryData(x => x.PalletCode.Contains(PalletCodetarget));
                                    if (dt_Tasks.Count > 0)
                                    {
                                        return content = WebResponseContent.Instance.Error($"库存已有该条码,条码信息:{generate.PalletCode}");
                                    }
                                    else
                                    {
                                        return content = WebResponseContent.Instance.OK(data: 1);
                                    }
                                }
                                else
                                {
@@ -786,15 +820,89 @@
        {
            WebResponseContent content = new WebResponseContent();
            List<Dt_LocationInfo> locationinfoData = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo=="2" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() 
            && x.LocationType == (int)LocationTypeEnum.EmptyCube && x.EnableStatus == (int)EnableStatusEnum.Normal);
            if (locationinfoData.Count < 20)
            && x.LocationType == (int)LocationTypeEnum.EmptyCube && x.EnableStatus == (int)EnableStatusEnum.Normal && x.Layer > 10);
            if (locationinfoData.Count <= 15)
            {
                return content = WebResponseContent.Instance.OK(data: 1);
                List<Dt_LocationInfo> locationinfoDataSC1 = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "1" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt()
            && x.LocationType == (int)LocationTypeEnum.EmptyCube && x.EnableStatus == (int)EnableStatusEnum.Normal && x.Layer > 9);
                if (locationinfoDataSC1.Count >= 15)
                {
                    return content = WebResponseContent.Instance.OK(data: 1);
                }
                else
                {
                    return content = WebResponseContent.Instance.Error("1巷道空托入库失败::入库失败,当前不可入库,浅货位小于15,不可再进行入库");
                }
            }
            else
            {
                return content = WebResponseContent.Instance.OK(data: 3);
            }
        }
        public WebResponseContent QueryinveCount(int wltype,int InitialColumn, int EndColumn)
        {
            WebResponseContent content = new WebResponseContent();
            if (wltype == (int)InventoryMaterialType.原材料)
            {
                List<Dt_LocationInfo> locationinfoData = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "2" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt()
                && x.LocationType == (int)LocationTypeEnum.MaterialsCube && x.EnableStatus == (int)EnableStatusEnum.Normal && x.Layer <= 10 && x.Depth==1);
                if (locationinfoData.Count <= 15)
                {
                    List<Dt_LocationInfo> locationinfoDataSC1 = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "1" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt()
                && x.EnableStatus == (int)EnableStatusEnum.Normal && x.Layer <= 9 && x.Depth==1);
                    if (locationinfoDataSC1.Count > 15)
                    {
                        return content.OK();
                    }
                    else
                    {
                        return content.Error($"1巷道(成品):入库失败,浅货位只剩下:{locationinfoDataSC1.Count},不可再进行入库");
                    }
                }
                else
                {
                    return content.OK();
                }
            }
            else if(wltype == (int)InventoryMaterialType.成品)
            {
                if(InitialColumn!=0 && EndColumn != 0)
                {
                    List<Dt_LocationInfo> locationinfoDataSC1 = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "1" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt()
                && x.EnableStatus == (int)EnableStatusEnum.Normal && x.Layer <= 9 && x.Column>= InitialColumn && x.Column <= EndColumn && x.Depth==1);
                    if (locationinfoDataSC1.Count > 10)
                    {
                        return content.OK();
                    }
                    else
                    {
                        return content.Error($"1巷道(回料库):入库失败,浅货位只剩下:{locationinfoDataSC1.Count},不可再进行入库");
                    }
                }
                else
                {
                    List<Dt_LocationInfo> locationinfoDataSC1 = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "1" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt()&& x.EnableStatus == (int)EnableStatusEnum.Normal && x.Layer <= 9 && x.Depth == 1);
                    if (locationinfoDataSC1.Count > 15)
                    {
                        return content.OK();
                    }
                    else
                    {
                        return content.Error($"1巷道(成品):入库失败,浅货位只剩下:{locationinfoDataSC1.Count},不可再进行入库");
                    }
                }
            }
            else
            {
                return content.OK();
            }
        }
    }
}