/// <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)); } } }
/// <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.保存失败); } }
/// <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)); } } }