ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs
@@ -20,6 +20,7 @@
using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
using WIDESEA_DTO.Task;
using WIDESEA_External.Model;
using WIDESEA_Model.Models;
namespace WIDESEA_TaskInfoService
@@ -131,7 +132,7 @@
                {
                    return content.Error($"未找到组盘信息");
                }
                if (stockInfo.StockStatus != StockStatusEmun.手动组盘暂存.ObjToInt())
                if (stockInfo.StockStatus != StockStatusEmun.手动组盘暂存.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.组盘暂存.ObjToInt())
                {
                    return content.Error($"该托盘状态不正确,不可申请入库");
                }
@@ -140,6 +141,7 @@
                {
                    return content.Error($"未找到可分配巷道");
                }
                //生成任务
                Dt_Task newTask = new Dt_Task()
                {
                    CurrentAddress = stationCode,
@@ -153,11 +155,16 @@
                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
                    WarehouseId = stockInfo.WarehouseId,
                    PalletType = stockInfo.PalletType,
                    TaskLength = (int)stockInfo.MaterielWide
                };
                if (stockInfo.StockStatus == StockStatusEmun.手动组盘暂存.ObjToInt())
                {
                    stockInfo.StockStatus = StockStatusEmun.手动组盘入库确认.ObjToInt();
                }
                else
                {
                    stockInfo.StockStatus = StockStatusEmun.入库确认.ObjToInt();
                }
                _unitOfWorkManage.BeginTran();
                int taskId = BaseDal.AddData(newTask);
@@ -174,6 +181,86 @@
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// åŽŸæ–™è¯·æ±‚ç»„ç›˜
        /// </summary>
        /// <returns></returns>
        public WebResponseContent YLPurchaseBoxing(string palletCode)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_StockInfo stockInfoOld = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == palletCode);
                if (stockInfoOld != null && stockInfoOld.MaterielInvOrgId==MaterielInvOrgEnum.新厂.ObjToInt())
                {
                    return content.OK($"新厂临时入库{stockInfoOld.PalletCode}");
                }
                else if (stockInfoOld != null)
                {
                    return content.Error($"条码{stockInfoOld.PalletCode}信息已存在");
                }
                //获取采购信息
                Dt_PurchaseBSTOrderDetail purchaseBSTOrderDetail = _purchaseBSTOrderDetailRepository.QueryFirst(x=>x.Barcode== palletCode);
                if (purchaseBSTOrderDetail == null)
                {
                    return content.Error($"未找到条码{palletCode}采购信息");
                }
                if (purchaseBSTOrderDetail.PurchaseBSTOrderDetailStatus!=InOrderStatusEnum.未开始.ObjToInt())
                {
                    return content.Error($"采购{purchaseBSTOrderDetail.Barcode}信息已入库或入库中");
                }
                else
                {
                    purchaseBSTOrderDetail.PurchaseBSTOrderDetailStatus = InOrderStatusEnum.入库中.ObjToInt();
                }
                //获取采购主单
                Dt_PurchaseBSTOrder purchaseBSTOrder = _purchaseBSTOrderRepository.QueryFirst(x=>x.Id==purchaseBSTOrderDetail.PurchaseBSTOrderId);
                //获取物料
                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterialSourceId == purchaseBSTOrderDetail.MaterialId);
                //生成库存组盘信息
                Dt_StockInfo stockInfo = new Dt_StockInfo()
                {
                    MaterielInvOrgId = materielInfo.MaterielInvOrgId,
                    PalletCode = purchaseBSTOrderDetail.Barcode,
                    LocationCode = "",
                    PalletType = 1,
                    WarehouseId = materielInfo.WarehouseId,
                    StockAttribute = materielInfo.MaterielSourceType,
                    StockStatus = StockStatusEmun.组盘暂存.ObjToInt(),
                    MaterielSpec = materielInfo.MaterielSpec,
                    Unit = materielInfo.MaterielUnit,
                    MaterielThickness = purchaseBSTOrderDetail.MaterialThick,
                    MaterielWide = purchaseBSTOrderDetail.MaterialWide,
                    MaterielWeight = purchaseBSTOrderDetail.DeliveryQty,
                    MaterielCode = materielInfo.MaterielCode,
                    MaterielName = materielInfo.MaterielName,
                    StockLength= purchaseBSTOrderDetail.ProcurementLength,
                    MaterielId= purchaseBSTOrderDetail.MaterialId
                };
                if (purchaseBSTOrderDetail.MaterialWide > 1200)
                {
                    stockInfo.PalletType = 2;
                }
                _unitOfWorkManage.BeginTran();
                //新增组盘信息
                _stockRepository.StockInfoRepository.AddData(stockInfo);
                if (purchaseBSTOrder.PurchaseOrderStatus==InOrderStatusEnum.未开始.ObjToInt())
                {
                    purchaseBSTOrder.PurchaseOrderStatus = InOrderStatusEnum.入库中.ObjToInt();
                    _purchaseBSTOrderRepository.UpdateData(purchaseBSTOrder);
                }
                _purchaseBSTOrderDetailRepository.UpdateData(purchaseBSTOrderDetail);
                _unitOfWorkManage.CommitTran();
                content.OK("请求成功");
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                content.Error(ex.Message);
            }
            return content;
        }
        public string AssignYLRoadwayNo(string palletCode)
        {
@@ -192,16 +279,34 @@
                }
                string roadwayNo = "";
                if (stockInfo.MaterielThickness > 800)
                if (stockInfo.MaterielInvOrgId==MaterielInvOrgEnum.新厂.ObjToInt())
                {
                    List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("YL")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
                    roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
                    if (stockInfo.MaterielWide > 2200)
                    //限制直径
                    if (stockInfo.MaterielThickness <= 1250)
                    {
                        locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo=="SC02_YL").GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
                        roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
                        //获取分配
                        List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("YLDual")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
                        roadwayNo = HandleRoadway(locationCounts, warehouse);
                    }
                }
                else
                {
                    //限制直径
                    if (stockInfo.MaterielThickness >= 800 && stockInfo.MaterielThickness <= 1450)
                    {
                        //获取分配
                        List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("YL") && !x.RoadwayNo.Contains("YLDual")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
                        if (stockInfo.MaterielWide > 2200)
                        {
                            locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo == "SC02_YL").GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
                        }
                        roadwayNo = HandleRoadway(locationCounts, warehouse);
                    }
                }
                return !string.IsNullOrEmpty(roadwayNo) ? (roadwayNo) : throw new Exception("未找到可分配巷道");
            }
            catch (Exception ex)
@@ -210,20 +315,38 @@
                throw new Exception(ex.Message);
            }
        }
        //处理分配巷道 ä»»åŠ¡æ•°é‡
        public string HandleRoadway(List<LocationCount> locationCounts, Dt_Warehouse warehouse)
        {
            //巷道任务分配数量
            List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => x.WarehouseId == warehouse.WarehouseId
            && locationCounts.Select(j => j.RoadwayNo).Distinct().Contains(x.Roadway)
            && TaskInboundTypes.Contains(x.TaskType)).GroupBy(x => x.Roadway).Select(x => new LocationCount { RoadwayNo = x.Roadway, Count = SqlFunc.AggregateCount(x) }).ToList();
            foreach (var item in locationCounts)
            {
                LocationCount? count = useLocationCounts.FirstOrDefault(x => x.RoadwayNo == item.RoadwayNo);
                if (count != null)
                {
                    item.Count -= count.Count;
                }
            }
            return locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
        }
        /// <summary>
        /// å…¥åº“完成
        /// </summary>
        public WebResponseContent InboundTaskCompleted(Dt_Task task)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId);
                if (warehouse.WarehouseCode == WarehouseEnum.LLDCP.ToString()) //成品完成
                if (warehouse.WarehouseCode == WarehouseEnum.LLDCP.ToString() || warehouse.WarehouseCode == WarehouseEnum.LLDFL.ToString()) //成品/辅料完成
                {
                    Dt_LocationInfo locationInfoEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
                    if (locationInfoEnd == null)
                    {
                        return WebResponseContent.Instance.Error($"未找到对应的终点货位信息");
                        return content.Error($"未找到对应的终点货位信息");
                    }
                    Dt_AGVStationInfo agvstation = _agvStationInfoRepository.QueryFirst(x => x.AGVStationCode == task.SourceAddress && ( x.StationArea == AGVStationAreaEnum.AreaA.ObjToInt() || x.StationArea == AGVStationAreaEnum.AreaC.ObjToInt()));
                    if (agvstation != null)
@@ -268,22 +391,24 @@
                    }
                    else
                    {
                        return WebResponseContent.Instance.Error($"未找到对应库存信息");
                        return content.Error($"未找到对应库存信息");
                    }
                }
                else//原料库完成
                {
                    //获取库存
                    Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == task.PalletCode);
                    if (stockInfo == null)
                    {
                        return WebResponseContent.Instance.Error($"未找到对应库存信息");
                        return content.Error($"未找到对应库存信息");
                    }
                    //获取货位信息
                    Dt_LocationInfo locationInfoEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
                    if (locationInfoEnd == null)
                    {
                        return WebResponseContent.Instance.Error($"未找到对应的终点货位信息");
                        return content.Error($"未找到对应的终点货位信息");
                    }
                    //更新状态
                    task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                    _unitOfWorkManage.BeginTran();
                    if (task.TaskType == TaskTypeEnum.InPick.ObjToInt())
@@ -296,15 +421,33 @@
                    _stockService.StockInfoService.Repository.UpdateData(stockInfo);
                    _basicService.LocationInfoService.UpdateLocationStatus(locationInfoEnd, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
                    BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.人工完成 : WIDESEA_Core.Enums.OperateTypeEnum.自动完成);
                    //上报老厂ERP
                    if (stockInfo.MaterielInvOrgId == MaterielInvOrgEnum.老厂.ObjToInt())
                    {
                        int Qty = Convert.ToInt32(stockInfo.MaterielWeight);
                        BSTPurchaseUpModel bSTPurchaseUpModel = new BSTPurchaseUpModel()
                        {
                            Barcode = stockInfo.PalletCode,
                            BarcodeQty = Qty,
                            Rfid = stockInfo.PalletCode,
                            RfidUpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        BSTResponse bSTResponse = _invokeERPService.BSTPurchaseUp(bSTPurchaseUpModel).DeserializeObject<BSTResponse>();
                        if (bSTResponse.Code == 500)
                        {
                            throw new Exception($"BST一期ERP同步入库信息失败,错误信息:{bSTResponse.Msg}");
                        }
                    }
                    _unitOfWorkManage.CommitTran();
                }
                return WebResponseContent.Instance.OK();
                return content.OK();
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return WebResponseContent.Instance.Error(ex.Message);
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// åˆ†é…æˆå“å··é“
@@ -314,16 +457,11 @@
        {
            try
            {
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == 2);
                if (warehouse == null)
                {
                    throw new Exception($"未找到巷道对应仓库信息");
                }
                string roadwayNo = "";
                List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("CP")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
                //获取巷道可分配的货位数量
                List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == WarehouseEnum.LLDCP.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("CP")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
                //筛选当前入库任务中已分配巷道任务数量
                List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => x.WarehouseId == warehouse.WarehouseId
                List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => (x.WarehouseId == WarehouseEnum.LLDCP.ObjToInt()|| x.WarehouseId == WarehouseEnum.LLDFL.ObjToInt())
                && locationCounts.Select(j=>j.RoadwayNo).Contains(x.Roadway)
                && TaskInboundTypes.Contains(x.TaskType)).GroupBy(x => x.Roadway).Select(x => new LocationCount { RoadwayNo = x.Roadway, Count = SqlFunc.AggregateCount(x) }).ToList();
                foreach (var item in locationCounts)
@@ -334,6 +472,7 @@
                        item.Count -= count.Count;
                    }
                }
                //通过可用货位数量排序,最多的优先分配
                roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
                return !string.IsNullOrEmpty(roadwayNo) ? (roadwayNo) : throw new Exception("未找到可分配巷道");
            }
@@ -382,7 +521,6 @@
                    task.TaskStatus = TaskStatusEnum.SC_Execute.ObjToInt();
                }
                LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus;
                //更新锁定货位
                _unitOfWorkManage.BeginTran();
@@ -398,54 +536,7 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="taskNum"></param>
        /// <param name="roadwayNo"></param>
        /// <param name="heightType"></param>
        /// <returns></returns>
        public WebResponseContent AssignInboundTaskLocationByHeight(int taskNum, string roadwayNo, int heightType)
        {
            try
            {
                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null)
                {
                    return WebResponseContent.Instance.Error($"未找到该入库任务");
                }
                if (_basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress) != null)
                {
                    return WebResponseContent.Instance.OK(data: task.TargetAddress);
                }
                Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayNo, task.PalletType, task.WarehouseId, heightType: heightType);
                if (locationInfo == null)
                {
                    return WebResponseContent.Instance.Error($"货位分配失败,未找到可分配货位");
                }
                task.Roadway = roadwayNo;
                task.TargetAddress = locationInfo.LocationCode;
                task.TaskStatus = TaskStatusEnum.SC_Execute.ObjToInt();
                LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus;
                _unitOfWorkManage.BeginTran();
                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationStatusEnum.Lock, LocationChangeType.InboundAssignLocation);
                _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, task.PalletType, LocationStatusEnum.Lock, task.WarehouseId);
                BaseDal.UpdateData(task);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK(data: locationInfo.LocationCode);
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// ç©ºæ¡†å›žåº“
        /// </summary>
@@ -484,15 +575,13 @@
                //分配巷道
                string roadWay=AssignCPRoadwayNo();
                
                //获取成品库
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.LLDCP.ToString());
                Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo()
                {
                    PalletCode=barCode,
                    ProStockAttribute=ProStockAttributeEnum.空托.ObjToInt(),
                    PalletType=1,
                    LocationCode="",
                    WarehouseId=warehouse.WarehouseId,
                    WarehouseId= WarehouseEnum.LLDFL.ObjToInt(),
                    StockStatus=StockStatusEmun.MES空托退库.ObjToInt()
                }; 
@@ -507,7 +596,7 @@
                    TargetAddress = "",
                    TaskType = TaskTypeEnum.EmptyProductBack.ObjToInt(),
                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
                    WarehouseId = warehouse.WarehouseId,
                    WarehouseId = WarehouseEnum.LLDFL.ObjToInt(),
                    PalletType = 1
                };
                _unitOfWorkManage.BeginTran();
@@ -526,14 +615,14 @@
            }
            return content;
        }
        private readonly static object _lockerFL = new object();
        private readonly static object _lockerFLorCP = new object();
        /// <summary>
        /// è¾…料入库
        /// è¾…æ–™/成品临时入库
        /// </summary>
        /// <returns></returns>
        public WebResponseContent InboundFLTask(string barCode, string startPoint,string matCode,int matCount)
        public WebResponseContent InboundFLOrCPTask(string barCode, string startPoint,string matCode,int matCount)
        {
            lock (_lockerFL)
            lock (_lockerFLorCP)
            {
                WebResponseContent content = new WebResponseContent();
                try
@@ -544,7 +633,8 @@
                    //{
                    //    return content.Error($"框码格式错误{barCode}");
                    //}
                    Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == matCode && x.MaterielInvOrgId == MaterielInvOrgEnum.新厂.ObjToInt() && x.MaterielSourceType == MaterielTypeEnum.辅料备件.ObjToInt());
                    //获取物料
                    Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == matCode && x.MaterielInvOrgId == MaterielInvOrgEnum.新厂.ObjToInt() && (x.WarehouseId==WarehouseEnum.LLDCP.ObjToInt() || x.WarehouseId == WarehouseEnum.LLDFL.ObjToInt()));
                    if (materielInfo == null)
                    {
                        return content.Error($"未找到物料信息{matCode}");
@@ -574,20 +664,23 @@
                    string roadWay = AssignCPRoadwayNo();
                    //获取成品库
                    Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.LLDCP.ToString());
                    WarehouseEnum warehouseEnum = materielInfo.MaterielSourceType == MaterielTypeEnum.成品.ObjToInt() ? WarehouseEnum.LLDCP : WarehouseEnum.LLDFL;
                    Dt_ProStockInfoDetail proStockInfoDetail = new Dt_ProStockInfoDetail()
                    {
                        ProductCode = matCode,
                        ProductCode = materielInfo.MaterielCode,
                        ProductName= materielInfo.MaterielName,
                        ProductSpec=materielInfo.MaterielSpec,
                        ProductUnit=materielInfo.MaterielUnit,
                        StockQty = matCount,
                        ProStockDetailStatus = StockStatusEmun.手动组盘入库确认.ObjToInt()
                    };
                    Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo()
                    {
                        PalletCode = barCode,
                        ProStockAttribute = ProStockAttributeEnum.辅料备件.ObjToInt(),
                        ProStockAttribute = materielInfo.MaterielSourceType,
                        PalletType = 1,
                        LocationCode = "",
                        WarehouseId = warehouse.WarehouseId,
                        WarehouseId = warehouseEnum.ObjToInt(),
                        StockStatus = StockStatusEmun.手动组盘入库确认.ObjToInt(),
                        proStockInfoDetails = new List<Dt_ProStockInfoDetail> { proStockInfoDetail }
                    };
@@ -603,7 +696,7 @@
                        TargetAddress = "",
                        TaskType = TaskTypeEnum.Inbound.ObjToInt(),
                        TaskStatus = TaskStatusEnum.New.ObjToInt(),
                        WarehouseId = warehouse.WarehouseId,
                        WarehouseId = warehouseEnum.ObjToInt(),
                        PalletType = 1
                    };
                    _unitOfWorkManage.BeginTran();