コード例 #1
0
        /// <summary>
        /// 保存出库记录表
        /// </summary>
        /// <param name="currentArrayCount"></param>
        /// <param name="twoDimensionCode"></param>
        /// <param name="orderID"></param>
        /// <param name="speedChangeBoxID"></param>
        /// <param name="planTotoalCount"></param>
        /// <param name="totalCount"></param>
        /// <param name="isForceRemoval"></param>
        /// <returns></returns>
        public static RemovalResultEnum SaveRemalWarehouseInfo(out List <WebPutInWarehouseRecord> barCodeList, out int currentArrayCount, string twoDimensionCode, int orderID, int speedChangeBoxID, int planTotoalCount, int totalCount, bool isForceRemoval = false)
        {
            currentArrayCount = 0;
            barCodeList       = new List <WebPutInWarehouseRecord>();
            if (string.IsNullOrWhiteSpace(twoDimensionCode))
            {
                return(RemovalResultEnum.参数错误);
            }
            using (var db = new WarehouseContext())
            {
                var twoDimensionCodeList = RepositoryIoc.GetTwoDimensioncodeRepository(db).FirstOrDefault(r => r.TwoDimensionCodeNum == twoDimensionCode && r.StateID == (int)RecordState.Show, string.Format("{0},{1}", CommonHelper.GetPropName <TwoDimensioncode>(r => r.WarehouseMs), CommonHelper.GetPropName <TwoDimensioncode>(r => r.SpeedChangeBoxType)));
                if (twoDimensionCodeList == null)
                {
                    return(RemovalResultEnum.此二维码信息不存在);
                }

                if (twoDimensionCodeList.SpeedChangeBoxType.SpeedChangeBoxTypeID != speedChangeBoxID)
                {
                    return(RemovalResultEnum.变速箱型号不一致);
                }

                var warehouseList = twoDimensionCodeList.WarehouseMs;
                var removalWarehouseRepository = RepositoryIoc.GetRemovalWarehourseRecordRepository(db);
                var order = RepositoryIoc.GetRemovalWarehouseOrderRepository(db).FirstOrDefault(r => r.OrderID == orderID);
                if (order == null)
                {
                    return(RemovalResultEnum.出库订单信息不存在);
                }

                currentArrayCount = warehouseList.Count();

                foreach (var item in warehouseList)
                {
                    var removalWarehouse = new RemovalWarehouseRecord();
                    if (removalWarehouse.StateID == (int)RecordState.Delete)
                    {
                        return(RemovalResultEnum.当前二维码已经出库);
                    }

                    removalWarehouse.StateID              = (int)RecordState.Show;
                    removalWarehouse.WarehouseID          = item.WarehouseID;
                    removalWarehouse.RemovalWarehouseTime = DateTime.Now;
                    removalWarehouse.OrderID              = order.OrderID;
                    removalWarehouseRepository.Insert(removalWarehouse);
                    removalWarehouse.RemovalWarehouseTime = DateTime.Now;
                    item.StateID = (int)RecordState.Delete;

                    barCodeList.Add(new WebPutInWarehouseRecord()
                    {
                        BarCode       = item.BarCode,
                        Place         = item.Place,
                        PutInUserName = item.PutInUserName,
                        PutInTime     = item.WarehouseTime,
                    });
                }

                if (!isForceRemoval)
                {
                    if (currentArrayCount + totalCount > planTotoalCount)
                    {
                        return(RemovalResultEnum.当前出库数量已经大于设置的出库数量);
                    }
                }

                twoDimensionCodeList.StateID = (int)RecordState.Delete;
                if (db.SaveChanges() > 0)
                {
                    return(RemovalResultEnum.执行成功);
                }
                barCodeList.Clear();
                return(RemovalResultEnum.保存失败);
            }
        }
コード例 #2
0
        /// <summary>
        /// 根据订单ID获得出库记录表
        /// </summary>
        /// <param name="orderID"></param>
        /// <param name="totalCount"></param>
        /// <param name="searchName"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="orderEnum"></param>
        /// <param name="ascending"></param>
        /// <returns></returns>
        public CResult <List <WebRemovalWarehouse> > GetRemovalWarehouseInfoListByOrderID(int orderID, out int totalCount, string searchName = "", int pageIndex = -1, int pageSize = 100, RemovalListOrderEnum orderEnum = RemovalListOrderEnum.DispathTime, bool ascending = false)
        {
            totalCount = 0;
            using (var db = new WarehouseContext())
            {
                Expression <Func <RemovalWarehouseRecord, bool> > filter = r => r.StateID == (int)RecordState.Show;
                filter = filter.And(r => r.OrderID == orderID);
                if (!string.IsNullOrWhiteSpace(searchName))
                {
                    filter = filter.And(r => r.RemovalWarehouseOrder.Staff.Contains(searchName) ||
                                        r.WarehouseM.BarCode.Contains(searchName) ||
                                        r.RemovalWarehouseOrder.DispathPlace.Contains(searchName));
                }
                var removalWareIQueary = RepositoryIoc.GetRemovalWarehourseRecordRepository(db).LazyGet(out totalCount, filter, CommonHelper.GetPropName <RemovalWarehouseRecord>(r => r.WarehouseM));
                switch (orderEnum)
                {
                case RemovalListOrderEnum.BarCode:
                    if (ascending)
                    {
                        removalWareIQueary = removalWareIQueary.OrderBy(r => r.WarehouseM.BarCode);
                    }
                    else
                    {
                        removalWareIQueary = removalWareIQueary.OrderByDescending(r => r.WarehouseM.BarCode);
                    }
                    break;

                case RemovalListOrderEnum.DispathPlace:
                    if (ascending)
                    {
                        removalWareIQueary = removalWareIQueary.OrderBy(r => r.RemovalWarehouseOrder.DispathPlace);
                    }
                    else
                    {
                        removalWareIQueary = removalWareIQueary.OrderByDescending(r => r.RemovalWarehouseOrder.DispathPlace);
                    }
                    break;

                case RemovalListOrderEnum.DispathTime:
                    if (ascending)
                    {
                        removalWareIQueary = removalWareIQueary.OrderBy(r => r.RemovalWarehouseTime);
                    }
                    else
                    {
                        removalWareIQueary = removalWareIQueary.OrderByDescending(r => r.RemovalWarehouseTime);
                    }
                    break;

                case RemovalListOrderEnum.Staff:
                    if (ascending)
                    {
                        removalWareIQueary = removalWareIQueary.OrderBy(r => r.RemovalWarehouseOrder.Staff);
                    }
                    else
                    {
                        removalWareIQueary = removalWareIQueary.OrderByDescending(r => r.RemovalWarehouseOrder.Staff);
                    }
                    break;
                }
                removalWareIQueary = removalWareIQueary.Page(out totalCount, null, true, pageIndex, pageSize);
                var result = (from f in removalWareIQueary
                              select new WebRemovalWarehouse()
                {
                    BarCode = f.WarehouseM.BarCode,
                    RemovalWarehouseTime = f.RemovalWarehouseTime,
                    SpeedChangeBoxName = f.WarehouseM.TwoDimensioncode.SpeedChangeBoxType.SpeedChangeBoxName,
                    Staff = f.RemovalWarehouseOrder.Staff,
                    DispathPlace = f.RemovalWarehouseOrder.DispathPlace,
                }).ToList();
                return(new CResult <List <WebRemovalWarehouse> >(result));
            }
        }