Exemplo n.º 1
0
        /// <summary>
        /// 保存二维码信息
        /// </summary>
        /// <param name="twoDimensioncodeNum"></param>
        /// <param name="warehouseIDs"></param>
        /// <param name="speedChangeTypeID"></param>
        /// <returns></returns>
        public static CResult <bool> SaveTwoDimensioncode(string twoDimensioncodeNum, IEnumerable <int> warehouseIDs, int speedChangeTypeID)
        {
            if (string.IsNullOrWhiteSpace(twoDimensioncodeNum))
            {
                return(new CResult <bool>(false, ErrorCode.ParameterError));
            }

            using (var db = new WarehouseContext())
            {
                var twoDimensioncodeRepository = RepositoryIoc.GetTwoDimensioncodeRepository(db);
                var twoDimensionCode           = twoDimensioncodeRepository.FirstOrDefault(r => r.TwoDimensionCodeNum == twoDimensioncodeNum);
                if (twoDimensionCode == null)
                {
                    twoDimensionCode = new TwoDimensioncode();
                    twoDimensionCode.TwoDimensionCodeNum = twoDimensioncodeNum;
                    twoDimensionCode.Count = warehouseIDs.Count();
                    twoDimensionCode.SpeedChangeBoxTypeID = speedChangeTypeID;
                }
                else
                {
                    return(new CResult <bool>(false, ErrorCode.TwoDimensioncodeHasExist));
                }
                if (db.SaveChanges() > 0)
                {
                    var warehouseRepository = RepositoryIoc.GetWarehouseMRepository(db);
                    var warehouseList       = warehouseRepository.Get(r => warehouseIDs.Contains(r.WarehouseID));
                    foreach (var item in warehouseList)
                    {
                        item.TwoDimensioncodeID = twoDimensionCode.TwoDimensioncodeID;
                    }
                    return(new CResult <bool>(db.SaveChanges() > 0));
                }
                else
                {
                    return(new CResult <bool>(false, ErrorCode.SaveDbChangesFailed));
                }
            }
        }
Exemplo n.º 2
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.保存失败);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 保存入库信息
        /// </summary>
        /// <param name="barCodeList">条形码</param>
        /// <param name="twoDimensioncodeNum">二维码型号</param>
        /// <param name="speedChangeTypeID">产品类型ID</param>
        /// <param name="putInUserName">UserName</param>
        /// <param name="place">地点</param>
        /// <returns></returns>
        public static CResult <bool> SavePutInWarehouseInfo(List <string> barCodeList, string twoDimensioncodeNum, int speedChangeTypeID, string putInUserName, string place)
        {
            if (barCodeList == null)
            {
                return(new CResult <bool>(false, ErrorCode.ParameterError));
            }

            if (string.IsNullOrWhiteSpace(twoDimensioncodeNum))
            {
                return(new CResult <bool>(false, ErrorCode.ParameterError));
            }

            using (var db = new WarehouseContext())
            {
                var twoDimensioncodeRepository = RepositoryIoc.GetTwoDimensioncodeRepository(db);
                var twoDimensionCode           = twoDimensioncodeRepository.FirstOrDefault(r => r.TwoDimensionCodeNum == twoDimensioncodeNum);
                if (twoDimensionCode == null)
                {
                    twoDimensionCode = new TwoDimensioncode();
                    twoDimensionCode.TwoDimensionCodeNum = twoDimensioncodeNum;
                    twoDimensionCode.Count   = barCodeList.Count();
                    twoDimensionCode.StateID = (int)RecordState.Show;
                    twoDimensionCode.SpeedChangeBoxTypeID = speedChangeTypeID;
                    twoDimensioncodeRepository.Insert(twoDimensionCode);
                }
                else
                {
                    return(new CResult <bool>(false, ErrorCode.TwoDimensioncodeHasExist));
                }
                if (db.SaveChanges() <= 0)
                {
                    return(new CResult <bool>(false, ErrorCode.SaveDbChangesFailed));
                }
                var warehouseRepository = RepositoryIoc.GetWarehouseMRepository(db);
                foreach (var item in barCodeList)
                {
                    var warehouse = warehouseRepository.FirstOrDefault(r => r.BarCode == item);
                    if (warehouse == null)
                    {
                        warehouse                    = new WarehouseM();
                        warehouse.BarCode            = item;
                        warehouse.StateID            = (int)RecordState.Show;
                        warehouse.WarehouseTime      = DateTime.Now;
                        warehouse.PutInUserName      = putInUserName;
                        warehouse.Place              = place;
                        warehouse.TwoDimensioncodeID = twoDimensionCode.TwoDimensioncodeID;

                        var putInWare = new PutInWarehouseRecord();
                        putInWare.PutInTime     = DateTime.Now;
                        putInWare.Place         = place;
                        putInWare.PutInUserName = putInUserName;
                        putInWare.StateID       = (int)RecordState.Show;
                        putInWare.WarehouseID   = warehouse.WarehouseID;
                        warehouse.PutInWarehouseRecords.Add(putInWare);

                        warehouseRepository.Insert(warehouse);
                    }
                    else
                    {
                        if (warehouse.StateID == (int)RecordState.Show)
                        {
                            return(new CResult <bool>(false, ErrorCode.PutInInfoHasExist));
                        }
                        else
                        {
                            warehouse.WarehouseTime      = DateTime.Now;
                            warehouse.PutInUserName      = putInUserName;
                            warehouse.Place              = place;
                            warehouse.StateID            = (int)RecordState.Show;
                            warehouse.TwoDimensioncodeID = twoDimensionCode.TwoDimensioncodeID;
                            var putInWare = new PutInWarehouseRecord();
                            putInWare.PutInTime     = DateTime.Now;
                            putInWare.Place         = place;
                            putInWare.PutInUserName = putInUserName;
                            putInWare.StateID       = (int)RecordState.Show;
                            putInWare.WarehouseID   = warehouse.WarehouseID;
                            warehouse.PutInWarehouseRecords.Add(putInWare);
                        }
                    }
                }
                if (db.SaveChanges() > 0)
                {
                    return(new CResult <bool>(true));
                }
                else
                {
                    twoDimensioncodeRepository.Delete(twoDimensionCode);
                    db.SaveChanges();
                    return(new CResult <bool>(false, ErrorCode.SaveDbChangesFailed));
                }
            }
        }