| | |
| | | using Magicodes.IE.Core; |
| | | using MailKit.Search; |
| | | using System; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core; |
| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | #region MyRegion |
| | | Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(productionlineDTO.Barcode); |
| | | if (stockInfo != null) throw new Exception($"æçã{productionlineDTO.Barcode}ãå·²åå¨åºåä¿¡æ¯"); |
| | | stockInfo = new Dt_StockInfo(); |
| | | stockInfo.Details = new List<Dt_StockInfoDetail>(); |
| | | var OrderNo = productionlineDTO.batchNo.Split('T')[0]; |
| | | Dt_InboundOrder inboundOrder = _inboundService.InbounOrderService.GetInboundOrder(OrderNo); |
| | | if (inboundOrder == null) throw new Exception($"æªæ¾å°å
¥åºåã{OrderNo}ã"); |
| | | Dt_InboundOrderDetail inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.BatchNo == productionlineDTO.batchNo); |
| | | if (inboundOrderDetail == null) throw new Exception($"æªæ¾å°æ¹å·ã{productionlineDTO.batchNo}ãçå
¥åºè¯¦æ
"); |
| | | if (inboundOrderDetail.OrderQuantity - inboundOrderDetail.ReceiptQuantity < 1) throw new Exception($"æ¹å·ã{productionlineDTO.batchNo}ãç»çæ°éè¶
åº"); |
| | | #region MyRegion |
| | | string OrderNo = productionlineDTO.batchNo.Substring(0, 8);// DateTime.Now.ToString("yyMMdd"); |
| | | Dt_InboundOrder? inboundOrder = _inboundService.InbounOrderService.GetInboundOrder(OrderNo); |
| | | if (inboundOrder == null) throw new Exception($"æªæ¾å°æ¹å·ä¸ºã{OrderNo}ãçå
¥åºå"); |
| | | //var BatchNo = string.Join("", productionlineDTO.batchNo.Except(OrderNo)); |
| | | var BatchNo = productionlineDTO.batchNo.Substring(8); |
| | | Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.Where(x => x.BatchNo == BatchNo).FirstOrDefault(); |
| | | if (inboundOrderDetail == null) throw new Exception($"æ¹å·ã{OrderNo}ãçå
¥åºåæªæ¾å°æå·ã{BatchNo}ã"); |
| | | if (inboundOrderDetail.OrderQuantity - inboundOrderDetail.ReceiptQuantity < 1) throw new Exception($"æ¹å·ã{OrderNo}ãçæå·ã{BatchNo}ãå¯ç»çæ°éä¸è¶³"); |
| | | |
| | | Dt_Task dt_Task = new Dt_Task() |
| | | { |
| | |
| | | Creater = "System", |
| | | PalletCode = productionlineDTO.Barcode, |
| | | Roadway = "SC01", |
| | | OrderNo = OrderNo, |
| | | TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | OrderNo = productionlineDTO.batchNo,// inboundOrder.OrderNo, |
| | | TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | TaskState = InTaskStatusEnum.InNew.ObjToInt(), |
| | | TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | //TaskType = productionlineDTO.traytype == 2 ? TaskTypeEnum.PalletInbound.ObjToInt() : TaskTypeEnum.PalletReturnInbound.ObjToInt(), |
| | | CreateDate = DateTime.Now, |
| | | Dispatchertime = DateTime.Now, |
| | | }; |
| | | |
| | | productionlineDTO.batchNo = BatchNo; |
| | | content = _stockService.StockInfoService.AddStockInfo(ref stockInfo, ref inboundOrder, productionlineDTO); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | Db.Ado.BeginTran(); |
| | |
| | | AddData(dt_Task); |
| | | content.OK(data: dt_Task); |
| | | Db.Ado.CommitTran(); |
| | | #endregion |
| | | #region MyRegion |
| | | //switch (productionlineDTO.traytype) |
| | | //{ |
| | | // case 1://æ¾ç©ºæ |
| | | // case 3://æ¾ç©ºç |
| | | // //case 5://æ¾æ»¡ç |
| | | // { |
| | | // //æ¥æ¾ç©æææåºå |
| | | // var stockInfos = _stockService.StockInfoService.Repository.GetStockInfos(productionlineDTO.traytype.ToString()); |
| | | // //æ¥æ¾å
å
¥ç©æè´§ä½æåå
¥åºç©æ |
| | | // var stockInfo = stockInfos.Where(x => x.LocationCode == stockInfos.OrderBy(x => x.InDate).FirstOrDefault()?.LocationCode).OrderByDescending(x => x.InDate).FirstOrDefault(); |
| | | // if (stockInfo == null) throw new Exception($"æ ç©æç¼å·ã{productionlineDTO.traytype}ãçåºå"); |
| | | // var location = _basicService.LocationInfoService.GetLocation(stockInfo.LocationCode); |
| | | // #region çæåºåºä»»å¡ |
| | | // Dt_Task dt_Task = new Dt_Task() |
| | | // { |
| | | // CurrentAddress = stockInfo.LocationCode, |
| | | // NextAddress = "SC01", |
| | | // SourceAddress = stockInfo.LocationCode, |
| | | // TargetAddress = productionlineDTO.stationCode, |
| | | // Creater = "System", |
| | | // PalletCode = stockInfo.PalletCode, |
| | | // OrderNo = null, |
| | | // Roadway = "SC01", |
| | | // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | // TaskState = OutTaskStatusEnum.OutNew.ObjToInt(), |
| | | // TaskType = productionlineDTO.traytype == 1 ? TaskTypeEnum.PalletOutbound.ObjToInt() : TaskTypeEnum.PalletFillOutbound.ObjToInt(), |
| | | // IsPickPlace = location.MaxQty - location.CurrentQty == 0, |
| | | // CreateDate = DateTime.Now, |
| | | // Dispatchertime = DateTime.Now, |
| | | // }; |
| | | // #endregion |
| | | // location.CurrentQty--; |
| | | // location.LocationStatus = LocationStatusEnum.Outbounding.ObjToInt(); |
| | | // stockInfo.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); |
| | | // stockInfo.Details.FirstOrDefault().Status = StockStatusEmun.åºåºéå®.ObjToInt(); |
| | | |
| | | // Db.Ado.BeginTran(); |
| | | // AddData(dt_Task); |
| | | // _basicService.LocationInfoService.UpdateData(location); |
| | | // _stockService.StockInfoService.Repository.UpdateDataWithDetail(stockInfo); |
| | | // content.OK(data: dt_Task); |
| | | // Db.Ado.CommitTran(); |
| | | // } |
| | | // break; |
| | | // case 2://å空æ |
| | | // case 4://åæ»¡ç |
| | | // case 6://å空ç |
| | | // { |
| | | // Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(productionlineDTO.Barcode); |
| | | // if (stockInfo != null) throw new Exception($"æçã{productionlineDTO.Barcode}ãå·²åå¨åºåä¿¡æ¯"); |
| | | // productionlineDTO.QtySum = Array.ConvertAll(productionlineDTO.productQty.Split(","), s => decimal.Parse(s)).Sum();//å
¥åºæ»æ° |
| | | // stockInfo = new Dt_StockInfo(); |
| | | // stockInfo.Details = new List<Dt_StockInfoDetail>(); |
| | | // Dt_InboundOrder inboundOrder = null; |
| | | // #region çæå
¥åºä»»å¡ |
| | | // Dt_Task dt_Task = new Dt_Task() |
| | | // { |
| | | // CurrentAddress = productionlineDTO.stationCode, |
| | | // NextAddress = "SC01", |
| | | // SourceAddress = productionlineDTO.stationCode, |
| | | // TargetAddress = "SC01", |
| | | // Creater = "System", |
| | | // PalletCode = productionlineDTO.Barcode, |
| | | // Roadway = "SC01", |
| | | // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | // TaskState = InTaskStatusEnum.InNew.ObjToInt(), |
| | | // TaskType = productionlineDTO.traytype == 2 ? TaskTypeEnum.PalletInbound.ObjToInt() : TaskTypeEnum.PalletReturnInbound.ObjToInt(), |
| | | // CreateDate = DateTime.Now, |
| | | // Dispatchertime = DateTime.Now, |
| | | // }; |
| | | // #endregion |
| | | // if (productionlineDTO.traytype == 4) |
| | | // { |
| | | // var OrderNo = productionlineDTO.batchNo.Split('T')[0]; |
| | | // inboundOrder = _inboundService.InbounOrderService.GetInboundOrder(OrderNo); |
| | | // if (inboundOrder == null) throw new Exception($"æªæ¾å°å
¥åºåã{OrderNo}ã"); |
| | | // Dt_InboundOrderDetail inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.BatchNo == productionlineDTO.batchNo); |
| | | // if (inboundOrderDetail == null) throw new Exception($"æªæ¾å°æ¹å·ã{productionlineDTO.batchNo}ãçå
¥åºè¯¦æ
"); |
| | | // if (inboundOrderDetail.OrderQuantity - inboundOrderDetail.ReceiptQuantity < 1) throw new Exception($"æ¹å·ã{productionlineDTO.batchNo}ãç»çæ°éè¶
åº"); |
| | | |
| | | // dt_Task.OrderNo = OrderNo; |
| | | // dt_Task.TaskType = TaskTypeEnum.Inbound.ObjToInt(); |
| | | // } |
| | | // content = _stockService.StockInfoService.AddStockInfo(ref stockInfo, ref inboundOrder, productionlineDTO); |
| | | // if (!content.Status) throw new Exception(content.Message); |
| | | // Db.Ado.BeginTran(); |
| | | // if (inboundOrder != null) _inboundService.InbounOrderService.UpdateDataWithDetail(inboundOrder); |
| | | // _stockService.StockInfoService.AddMaterielGroup(stockInfo); |
| | | // AddData(dt_Task); |
| | | // content.OK(data: dt_Task); |
| | | // Db.Ado.CommitTran(); |
| | | // } |
| | | // break; |
| | | // default: |
| | | // throw new Exception("æªå®ä¹æçç±»å"); |
| | | //} |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | |
| | | PalletCode = lineDTO.Barcode, |
| | | OrderNo = StockInfoDetails.Count() == 1 ? StockInfoDetails.First().OrderNo : null, |
| | | Roadway = "SC01", |
| | | TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | TaskState = InTaskStatusEnum.InNew.ObjToInt(), |
| | | TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | }; |