н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs
@@ -48,11 +48,11 @@ try { var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); var orders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "æ°å»º" && x.Warehouse_no == reslut); var orders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "æ°å»º" && x.Warehouse_no == reslut).ToList(); if (orders.Count < 1) return WebResponseContent.Instance.OK(); string url = "http://172.16.1.2:9357/file-admin/api/in/ediIn"; var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.OrderId)); var materielInfos = _materielInfoService.Repository.QueryData(x => cabinOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)); var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.OrderId)).ToList(); var materielInfos = _materielInfoService.Repository.QueryData(x => cabinOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList(); foreach (var order in orders) { order.Details = cabinOrderDetails.Where(x => x.OrderId == order.Id).ToList(); @@ -127,11 +127,11 @@ try { var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); var orders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "æ°å»º" && x.Warehouse_no == reslut); var orders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "æ°å»º" && x.Warehouse_no == reslut).ToList(); if (orders.Count < 1) return WebResponseContent.Instance.OK(); string url = "http://172.16.1.2:9357/file-admin/api/out/ediOut"; var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId)); var materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)); var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orders.Select(x => x.Id).ToList().Contains(x.DeliveryOrderId)).ToList(); var materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList(); foreach (var order in orders) { order.Details = deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id).ToList(); н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs
@@ -524,7 +524,11 @@ { //æ¾åºåæ¹æ¬¡ä¿¡æ¯ Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); if (inventory_Batch.SupplyQuantity != item.order_qty) throw new Exception($"ççå ¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); if (inventory_Batch.SupplyQuantity != item.order_qty) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERPæ¥æ¥æº¢å ¥åºé误", $"ççå ¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); throw new Exception($"ççå ¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); } //æ¾ææåºå List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); foreach (var inventoryInfo in inventoryInfos) @@ -614,7 +618,12 @@ //æ¾åºåæ¹æ¬¡ä¿¡æ¯ Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); var Qty = Math.Abs(inventory_Batch.SupplyQuantity); if (Qty != item.order_qty) throw new Exception($"ççå ¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); if (Qty != item.order_qty) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERPæ¥æ¥æº¢å ¥åºé误", $"ççå ¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); throw new Exception($"ççå ¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); } //æ¾ææåºå List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); //è·åç«åºçç¹å·®å¼æ° @@ -626,9 +635,12 @@ var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity)); var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity); if (LkQty + DJQty != Qty) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERPæ¥æ¥æº¢å ¥åºé误", $"ççå ¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯ççæ°éä¸ç¬¦"); } if (LkQty + DJQty != Qty) throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯ççæ°éä¸ç¬¦"); if (LkQty == 0)//ç«åºæ å·®å¼ { #region åºåãåºåæ¹æ¬¡å¹³è´¦ @@ -701,7 +713,7 @@ cabinOrdersAdd.Add(entityOrder); #endregion } else else // LkQty != 0 表示ç«åºæå·®å¼ { #region 大件åºåºå平账 inventoryInfos = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs
@@ -633,6 +633,340 @@ #endregion #region å建çäºåºåºå //public WebResponseContent CreateCheckOutOrder(UpstramOutOrderInfo order) //{ // WebResponseContent content = new WebResponseContent(); // try // { // string WareCodeMJ = WarehouseEnum.麻精åº.ObjToInt().ToString("000"); // string WareCodeLD = WarehouseEnum.å·å»åº.ObjToInt().ToString("000"); // List<Dt_SupplyTask_Hty> supplyTask_Hties = new List<Dt_SupplyTask_Hty>(); // List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>(); // List<Dt_InventoryInfo> infosUp = new List<Dt_InventoryInfo>(); // var codes = order.details.Select(x => x.goods_no).ToList(); // #region ç¹æ®åºæ¿ // if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD) // { // List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); // List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); // #region åºåãåºåæ¹æ¬¡å¹³è´¦ // foreach (var item in order.details) // { // //æ¾åºåæ¹æ¬¡ä¿¡æ¯ // Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); // var Qty = Math.Abs(inventory_Batch.SupplyQuantity); // if (Qty != item.order_qty) // { // _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); // throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); // } // //æ¾ææåºå // List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); // foreach (var inventoryInfo in inventoryInfos) // { // #region æ·»å çäºåºåºä»»å¡ // if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) // { // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() // { // WarehouseCode = inventoryInfo.WarehouseCode, // OperateType = OperateTypeEnum.èªå¨å®æ.ToString(), // InsertTime = DateTime.Now, // TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt(), // BatchNo = inventoryInfo.BatchNo, // MaterielName = inventoryInfo.MaterielName, // MaterielCode = inventoryInfo.MaterielCode, // MaterielSpec = inventoryInfo.MaterielSpec, // TaskType = TaskTypeEnum.ChenckOut.ObjToInt(), // CreateDate = DateTime.Now, // Creater = App.User.UserName, // LocationCode = inventoryInfo.LocationCode, // OrderNo = order.order_no, // StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity), // SupplyQuantity = 0, // Remark = "çäºå ¥åº" // }; // //_supplyTaskHtyService.AddData(supplyTask_Hty); // supplyTask_Hties.Add(supplyTask_Hty); // } // #endregion // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; // inventoryInfo.SupplyQuantity = 0; // inventoryInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); // // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ // } // inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; // inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; // inventory_Batch.SupplyQuantity = 0; // infosUp.AddRange(inventoryInfos); // batchesUp.Add(inventory_Batch); // // æ£æ¥æ¹æ¬¡åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ // //_inventoryInfoService.UpdateData(inventoryInfos); // //_inventory_BatchServices.UpdateData(inventory_Batch); // } // #endregion // #region å建çç¹å // var entityOrder = new Dt_DeliveryOrder // { // Out_no = order.order_no, // Out_type = order.order_type, // Client_no = order.client_no, // Client_name = order.client_name, // OutStatus = "已宿", // Account_time = order.account_time, // Warehouse_no = order.warehouse_no, // Details = order.details.Select(d => new Dt_DeliveryOrderDetail // { // Goods_no = d.goods_no, // Order_qty = Math.Abs(d.order_qty), // Order_Outqty = Math.Abs(d.order_qty), // Batch_num = d.batch_num, // Exp_date = d.exp_date, // Reservoirarea = order.warehouse_no, // OotDetailStatus = "已宿", // Status = 2, // }).ToList() // }; // _unitOfWorkManage.BeginTran(); // _supplyTaskHtyService.AddData(supplyTask_Hties); // _inventoryInfoService.UpdateData(infosUp); // _inventory_BatchServices.UpdateData(batchesUp); // //BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); // _unitOfWorkManage.CommitTran(); // #endregion // } // #endregion // else // { // List<Dt_DeliveryOrder> deliveryOrdersAdd = new List<Dt_DeliveryOrder>(); // string WareCodeLK = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); // string WareCodeDJ = WarehouseEnum.大件åº.ObjToInt().ToString("000"); // List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)); // List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)); // foreach (var item in order.details) // { // //æ¾åºåæ¹æ¬¡ä¿¡æ¯ // Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); // var Qty = Math.Abs(inventory_Batch.SupplyQuantity); // if (Qty != item.order_qty) // { // _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); // throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); // } // //æ¾ææåºå // List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); // //è·åç«åºçç¹å·®å¼æ° // var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First(); // //var LkQty = Math.Abs(inventoryLK.SupplyQuantity); // var LkQty = inventoryLK.SupplyQuantity; // //è·å大件åºçç¹å·®å¼æ° // var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); // //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity)); // var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity); // var count = Math.Abs(LkQty + DJQty); // if (count != Qty) { // _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); // throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯çäºæ°éä¸ç¬¦"); // } // if (LkQty == 0)//ç«åºæ çç¹å·®å¼ï¼åªæå¤§ä»¶åºæå·®å¼ // { // #region åºåãåºåæ¹æ¬¡å¹³è´¦ // foreach (var inventoryInfo in inventoryInfos) // { // #region æ·»å çäºåºåºä»»å¡ // if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) // { // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() // { // WarehouseCode = inventoryInfo.WarehouseCode, // OperateType = OperateTypeEnum.èªå¨å®æ.ToString(), // InsertTime = DateTime.Now, // TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt(), // BatchNo = inventoryInfo.BatchNo, // MaterielName = inventoryInfo.MaterielName, // MaterielCode = inventoryInfo.MaterielCode, // MaterielSpec = inventoryInfo.MaterielSpec, // TaskType = TaskTypeEnum.ChenckOut.ObjToInt(), // CreateDate = DateTime.Now, // Creater = App.User.UserName, // LocationCode = inventoryInfo.LocationCode, // OrderNo = order.order_no, // StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity), // SupplyQuantity = 0, // Remark = "çäºå ¥åº" // }; // //_supplyTaskHtyService.AddData(supplyTask_Hty); // supplyTask_Hties.Add(supplyTask_Hty); // } // #endregion // // æ´æ°åºåä¿¡æ¯ // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; // inventoryInfo.SupplyQuantity = 0; // inventoryInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); // // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ // } // //æ´æ°æ¹æ¬¡ä¿¡æ¯ // //_inventoryInfoService.UpdateData(inventoryInfos); // inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; // inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; // inventory_Batch.SupplyQuantity = 0; // //_inventory_BatchServices.UpdateData(inventory_Batch); // infosUp.AddRange(inventoryInfos); // batchesUp.Add(inventory_Batch); // #endregion // #region å建大件åºçç¹å // var entityOrder = new Dt_DeliveryOrder // { // Out_no = order.order_no, // Out_type = order.order_type, // Client_no = order.client_no, // Account_time = order.account_time, // OutStatus = "已宿", // Client_name = order.client_name, // Warehouse_no = WareCodeDJ, // Details = order.details.Select(d => new Dt_DeliveryOrderDetail // { // Goods_no = d.goods_no, // Order_qty = Math.Abs(d.order_qty), // Order_Outqty = Math.Abs(d.order_qty), // Batch_num = d.batch_num, // Exp_date = d.exp_date, // Reservoirarea = WareCodeDJ, // OotDetailStatus = "已宿", // Status = 2, // }).ToList() // }; // //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); // //Repository.AddData(entityOrder); // deliveryOrdersAdd.Add(entityOrder); // #endregion // } // else //ç«åºæçç¹å·®å¼ï¼éè¦åºåºï¼ï¼å¤§ä»¶åºå¯è½æææ²¡æå·®å¼ // { // #region 大件åºåºå平账 // inventoryInfos = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); // foreach (var inventoryInfo in inventoryInfos) // { // #region æ·»å çäºåºåºä»»å¡ // if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) // { // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() // { // WarehouseCode = inventoryInfo.WarehouseCode, // OperateType = OperateTypeEnum.èªå¨å®æ.ToString(), // InsertTime = DateTime.Now, // TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt(), // BatchNo = inventoryInfo.BatchNo, // MaterielName = inventoryInfo.MaterielName, // MaterielCode = inventoryInfo.MaterielCode, // MaterielSpec = inventoryInfo.MaterielSpec, // TaskType = TaskTypeEnum.ChenckOut.ObjToInt(), // CreateDate = DateTime.Now, // Creater = App.User.UserName, // LocationCode = inventoryInfo.LocationCode, // OrderNo = order.order_no, // StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity), // SupplyQuantity = 0, // Remark = "çäºåºåº" // }; // //_supplyTaskHtyService.AddData(supplyTask_Hty); // supplyTask_Hties.Add(supplyTask_Hty); // } // #endregion // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; // inventoryInfo.SupplyQuantity = 0; // inventoryInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); // } // //_inventoryInfoService.UpdateData(inventoryInfos); // infosUp.AddRange(inventoryInfos); // #endregion // #region å建大件åºçç¹å // if (DJQty != 0) // { // var cabinOrder = new Dt_DeliveryOrder // { // Out_no = order.order_no, // Out_type = order.order_type, // Client_name = order.client_name, // Account_time = order.account_time, // OutStatus = "已宿", // Client_no = order.client_no, // Warehouse_no = WareCodeDJ, // Details = order.details.Select(d => new Dt_DeliveryOrderDetail // { // Goods_no = d.goods_no, // Order_qty = DJQty, // Order_Outqty = DJQty, // Batch_num = d.batch_num, // Exp_date = d.exp_date, // Reservoirarea = WareCodeDJ, // OotDetailStatus = "已宿", // Status = 2, // }).ToList() // }; // //Repository.AddData(cabinOrder); // //Db.InsertNav(cabinOrder).Include(it => it.Details).ExecuteCommand(); // deliveryOrdersAdd.Add(cabinOrder); // } // #endregion // //è¿é // #region å建ç«åºçç¹å // var entityOrder = new Dt_DeliveryOrder // { // Out_no = order.order_no, // Out_type = order.order_type, // Client_no = order.client_no, // Account_time = order.account_time, // OutStatus = "æ°å»º", // Client_name = order.client_name, // Warehouse_no = WareCodeLK, // Details = order.details.Select(d => new Dt_DeliveryOrderDetail // { // Goods_no = d.goods_no, // Order_qty = Math.Abs(LkQty), //ç»ä¸æ¸¸WCSçæ¯è¦æ´æ° // Batch_num = d.batch_num, // Exp_date = d.exp_date, // Reservoirarea = WareCodeLK, // OotDetailStatus = "æ°å»º", // Status = 0, // }).ToList() // }; // //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); // //Repository.AddData(entityOrder); // deliveryOrdersAdd.Add(entityOrder); // #endregion // } // //return WebResponseContent.Instance.OK("æå"); // } // _unitOfWorkManage.BeginTran(); // _supplyTaskHtyService.AddData(supplyTask_Hties); // _inventoryInfoService.UpdateData(infosUp); // _inventory_BatchServices.UpdateData(batchesUp); // BaseDal.Db.InsertNav(deliveryOrdersAdd).Include(it => it.Details).ExecuteCommand(); // _unitOfWorkManage.CommitTran(); // } // return WebResponseContent.Instance.OK("æå"); // } // catch (Exception ex) // { // _unitOfWorkManage.RollbackTran(); // content.Error(ex.Message); // } // return content; //} #endregion #region å建çäºåºåºå ï¼æ·»å å é¤åºå为0çæ åµï¼ public WebResponseContent CreateCheckOutOrder(UpstramOutOrderInfo order) { WebResponseContent content = new WebResponseContent(); @@ -642,20 +976,29 @@ string WareCodeLD = WarehouseEnum.å·å»åº.ObjToInt().ToString("000"); List<Dt_SupplyTask_Hty> supplyTask_Hties = new List<Dt_SupplyTask_Hty>(); List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>(); List<Dt_Inventory_Batch> batchesDel = new List<Dt_Inventory_Batch>();//å é¤ List<Dt_InventoryInfo> infosUp = new List<Dt_InventoryInfo>(); List<Dt_InventoryInfo> infosDel = new List<Dt_InventoryInfo>();//å é¤ var codes = order.details.Select(x => x.goods_no).ToList(); #region ç¹æ®åºæ¿ if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD) { List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)); List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)); List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); #region åºåãåºåæ¹æ¬¡å¹³è´¦ foreach (var item in order.details) { //æ¾åºåæ¹æ¬¡ä¿¡æ¯ Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); var Qty = Math.Abs(inventory_Batch.SupplyQuantity); if (Qty != item.order_qty) throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); if (Qty != item.order_qty) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); } //æ¾ææåºå List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); foreach (var inventoryInfo in inventoryInfos) @@ -682,22 +1025,31 @@ SupplyQuantity = 0, Remark = "çäºå ¥åº" }; //_supplyTaskHtyService.AddData(supplyTask_Hty); supplyTask_Hties.Add(supplyTask_Hty); } #endregion inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; inventoryInfo.SupplyQuantity = 0; inventoryInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ if (inventoryInfo.StockQuantity <= 0) infosDel.Add(inventoryInfo); else infosUp.Add(inventoryInfo); } inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; inventory_Batch.SupplyQuantity = 0; infosUp.AddRange(inventoryInfos); batchesUp.Add(inventory_Batch); //_inventoryInfoService.UpdateData(inventoryInfos); //_inventory_BatchServices.UpdateData(inventory_Batch); // æ£æ¥æ¹æ¬¡åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ if (inventory_Batch.StockQuantity <= 0) batchesDel.Add(inventory_Batch); else batchesUp.Add(inventory_Batch); } #endregion @@ -723,10 +1075,19 @@ Status = 2, }).ToList() }; _unitOfWorkManage.BeginTran(); _supplyTaskHtyService.AddData(supplyTask_Hties); _inventoryInfoService.UpdateData(infosUp); _inventory_BatchServices.UpdateData(batchesUp); if (infosUp.Any()) _inventoryInfoService.UpdateData(infosUp); if (infosDel.Any()) _inventoryInfoService.DeleteData(infosDel); if (batchesUp.Any()) _inventory_BatchServices.UpdateData(batchesUp); if (batchesDel.Any()) _inventory_BatchServices.DeleteData(batchesDel); BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); _unitOfWorkManage.CommitTran(); #endregion @@ -739,25 +1100,35 @@ string WareCodeDJ = WarehouseEnum.大件åº.ObjToInt().ToString("000"); List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)); List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)); foreach (var item in order.details) { //æ¾åºåæ¹æ¬¡ä¿¡æ¯ Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); var Qty = Math.Abs(inventory_Batch.SupplyQuantity); if (Qty != item.order_qty) throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); if (Qty != item.order_qty) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); } //æ¾ææåºå List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); //è·åç«åºçç¹å·®å¼æ°.ãããããããããããã //è·åç«åºçç¹å·®å¼æ° var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First(); //var LkQty = Math.Abs(inventoryLK.SupplyQuantity); var LkQty = inventoryLK.SupplyQuantity; //è·å大件åºçç¹å·®å¼æ° var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity)); var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity); var count = Math.Abs(LkQty + DJQty); if (count != Qty) throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯çäºæ°éä¸ç¬¦"); if (LkQty == 0)//ç«åºæ å·®å¼ if (count != Qty) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯çäºæ°éä¸ç¬¦"); } if (LkQty == 0)//ç«åºæ çç¹å·®å¼ï¼åªæå¤§ä»¶åºæå·®å¼ { #region åºåãåºåæ¹æ¬¡å¹³è´¦ foreach (var inventoryInfo in inventoryInfos) @@ -784,22 +1155,33 @@ SupplyQuantity = 0, Remark = "çäºå ¥åº" }; //_supplyTaskHtyService.AddData(supplyTask_Hty); supplyTask_Hties.Add(supplyTask_Hty); } #endregion // æ´æ°åºåä¿¡æ¯ inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; inventoryInfo.SupplyQuantity = 0; inventoryInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ if (inventoryInfo.StockQuantity <= 0) infosDel.Add(inventoryInfo); else infosUp.Add(inventoryInfo); } //_inventoryInfoService.UpdateData(inventoryInfos); //æ´æ°æ¹æ¬¡ä¿¡æ¯ inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; inventory_Batch.SupplyQuantity = 0; //_inventory_BatchServices.UpdateData(inventory_Batch); infosUp.AddRange(inventoryInfos); batchesUp.Add(inventory_Batch); // æ£æ¥æ¹æ¬¡åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ if (inventory_Batch.StockQuantity <= 0) batchesDel.Add(inventory_Batch); else batchesUp.Add(inventory_Batch); #endregion #region å建大件åºçç¹å @@ -824,16 +1206,14 @@ Status = 2, }).ToList() }; //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); //Repository.AddData(entityOrder); deliveryOrdersAdd.Add(entityOrder); #endregion } else else //ç«åºæçç¹å·®å¼ï¼éè¦åºåºï¼ï¼å¤§ä»¶åºå¯è½æææ²¡æå·®å¼ { #region 大件åºåºå平账 inventoryInfos = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); foreach (var inventoryInfo in inventoryInfos) var inventoryInfosDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); foreach (var inventoryInfo in inventoryInfosDJ) { #region æ·»å çäºåºåºä»»å¡ if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) @@ -857,17 +1237,21 @@ SupplyQuantity = 0, Remark = "çäºåºåº" }; //_supplyTaskHtyService.AddData(supplyTask_Hty); supplyTask_Hties.Add(supplyTask_Hty); } #endregion inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; inventoryInfo.SupplyQuantity = 0; inventoryInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ if (inventoryInfo.StockQuantity <= 0) infosDel.Add(inventoryInfo); else infosUp.Add(inventoryInfo); } //_inventoryInfoService.UpdateData(inventoryInfos); infosUp.AddRange(inventoryInfos); #endregion #region å建大件åºçç¹å @@ -894,12 +1278,10 @@ Status = 2, }).ToList() }; //Repository.AddData(cabinOrder); //Db.InsertNav(cabinOrder).Include(it => it.Details).ExecuteCommand(); deliveryOrdersAdd.Add(cabinOrder); } #endregion //è¿é #region å建ç«åºçç¹å var entityOrder = new Dt_DeliveryOrder { @@ -921,20 +1303,27 @@ Status = 0, }).ToList() }; //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); //Repository.AddData(entityOrder); deliveryOrdersAdd.Add(entityOrder); #endregion } //return WebResponseContent.Instance.OK("æå"); } _unitOfWorkManage.BeginTran(); _supplyTaskHtyService.AddData(supplyTask_Hties); _inventoryInfoService.UpdateData(infosUp); _inventory_BatchServices.UpdateData(batchesUp); if (infosUp.Any()) _inventoryInfoService.UpdateData(infosUp); if (infosDel.Any()) _inventoryInfoService.DeleteData(infosDel); if (batchesUp.Any()) _inventory_BatchServices.UpdateData(batchesUp); if (batchesDel.Any()) _inventory_BatchServices.DeleteData(batchesDel); BaseDal.Db.InsertNav(deliveryOrdersAdd).Include(it => it.Details).ExecuteCommand(); _unitOfWorkManage.CommitTran(); } return WebResponseContent.Instance.OK("æå"); } catch (Exception ex) @@ -1029,7 +1418,12 @@ return content; } /// <summary> /// å¤çåºåºåãåºåä¿¡æ¯ãåºåºä»»å¡ãè°æ¨ä»»å¡ /// </summary> /// <param name="supplyTask"></param> /// <returns></returns> public WebResponseContent OutTaskFinish(Dt_SupplyTask supplyTask, Dt_DeliveryOrder deliveryOrder) { WebResponseContent content = new WebResponseContent(); @@ -1063,8 +1457,7 @@ #endregion #region åºåæ¹æ¬¡ 妿任å¡ç±»åæ¯è°æ¨åºåºä»»å¡ï¼8ï¼å°±ä¸ä¿®æ¹æ¹æ¬¡åºå Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode); Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode ==inventoryInfo.MaterielCode); if (supplyTask.TaskType != TaskTypeEnum.AllocatOut.ObjToInt()) { inventory_Batch.StockQuantity -= supplyTask.StockQuantity; @@ -1074,12 +1467,12 @@ supplyTask.TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt(); _unitOfWorkManage.BeginTran(); if (inventory_Batch.StockQuantity <= 0) if (inventory_Batch.StockQuantity <= 0)//妿åºåæ°éå°äº0å°±å é¤åºåæ¹æ¬¡ä¿¡æ¯ _inventory_BatchServices.DeleteData(inventory_Batch); else _inventory_BatchServices.UpdateData(inventory_Batch); //_materielInfoService.UpdateData(materielInfo); if (inventoryInfo.StockQuantity <= 0) if (inventoryInfo.StockQuantity <= 0)//妿åºåæ°éå°äº0å°±å é¤åºåä¿¡æ¯ _inventoryInfoService.DeleteData(inventoryInfo); else _inventoryInfoService.UpdateData(inventoryInfo); @@ -1118,6 +1511,7 @@ return content; } public WebResponseContent OutTaskFinish(Dt_SupplyTask supplyTask) { WebResponseContent content = new WebResponseContent(); н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/LKBusiness/DeliveryOrderServicesLK.cs
@@ -11,6 +11,8 @@ using WIDESEA_Core.Enums; using WIDESEA_ISquareCabinServices; using WIDESEA_Core.Helper; using WIDESEA_Common; using static WIDESEA_DTO.SquareCabin.OrderDto; namespace WIDESEA_SquareCabinServices { @@ -25,6 +27,8 @@ List<Dt_SupplyTask_Hty> supplyTask_Hties = new List<Dt_SupplyTask_Hty>(); List<Dt_InventoryInfo> infosUp = new List<Dt_InventoryInfo>(); List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>(); List<Dt_InventoryInfo> infosDel = new List<Dt_InventoryInfo>();//æ·»å å é¤ List<Dt_Inventory_Batch> batchesDel = new List<Dt_Inventory_Batch>(); List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrder.Details.Select(x => x.Goods_no).ToList().Contains(x.MaterielCode)); List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => deliveryOrder.Warehouse_no == x.WarehouseCode && deliveryOrder.Details.Select(x => x.Goods_no).ToList().Contains(x.MaterielCode)); List<Dt_Inventory_Batch> inventory_Batches = _inventory_BatchServices.Repository.QueryData(x => deliveryOrder.Details.Select(x => x.Goods_no).ToList().Contains(x.MaterielCode)); @@ -37,11 +41,20 @@ foreach (var detail in request.details) { Dt_DeliveryOrderDetail? orderDetail = deliveryOrder.Details.FirstOrDefault(x => x.Goods_no == detail.productCode && x.Batch_num == detail.batchNo); if (orderDetail == null) throw new Exception($"æªæ¾å°çç¹åã{deliveryOrder.Out_no}ãç©æç¼å·ã{detail.productCode}ãç©ææ¹æ¬¡ã{detail.batchNo}ãçæç»ä¿¡æ¯"); if (orderDetail == null) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "çäºåºåºå", $"æªæ¾å°çç¹åã{deliveryOrder.Out_no}ãç©æç¼å·ã{detail.productCode}ãç©ææ¹æ¬¡ã{detail.batchNo}ãçæç»ä¿¡æ¯"); throw new Exception($"æªæ¾å°çç¹åã{deliveryOrder.Out_no}ãç©æç¼å·ã{detail.productCode}ãç©ææ¹æ¬¡ã{detail.batchNo}ãçæç»ä¿¡æ¯"); } decimal orderQty = detail.orderDetails?.Sum(x => decimal.TryParse(x.quantity, out var q) ? Math.Abs(q) : 0) ?? 0; Dt_InventoryInfo inventoryInfo = inventoryInfos.Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo).First(); if (orderQty != Math.Abs(inventoryInfo.SupplyQuantity)) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "çäºåºåºå", $"çäºåºåºæ°éä¸ä¸è´,ä¸ä¼ æ°éã{orderQty}ã,åºåçäºæ°éã{Math.Abs(inventoryInfo.SupplyQuantity)}ã"); throw new Exception($"çäºåºåºæ°éä¸ä¸è´,ä¸ä¼ æ°éã{orderQty}ã,åºåçäºæ°éã{Math.Abs(inventoryInfo.SupplyQuantity)}ã"); } //æ·»å ç©æä¿¡æ¯ä¸çç«åºä¸å¡åºåä¿¡æ¯ var mater = materielInfos.FirstOrDefault(x => x.MaterielCode == detail.productCode); if (mater != null) @@ -53,13 +66,24 @@ inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; inventoryInfo.SupplyQuantity = 0; inventoryInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); infosUp.Add(inventoryInfo); // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ if (inventoryInfo.StockQuantity <= 0) infosDel.Add(inventoryInfo); else infosUp.Add(inventoryInfo); //infosUp.Add(inventoryInfo); //åºåæ¹æ¬¡ Dt_Inventory_Batch inventory_Batch = inventory_Batches.First(x => x.MaterielCode == inventoryInfo.MaterielCode && x.BatchNo == inventoryInfo.BatchNo); inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; inventory_Batch.SupplyQuantity = 0; batchesUp.Add(inventory_Batch); orderDetail.OotDetailStatus = "已宿"; orderDetail.Order_Outqty = orderQty; //宿æ°é if (inventory_Batch.StockQuantity<=0) batchesDel.Add(inventory_Batch); else batchesUp.Add(inventory_Batch); cabinOrderDetailsUp.Add(orderDetail); #region æ·»å çäºåºåºä»»å¡ Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() @@ -85,6 +109,7 @@ #endregion } deliveryOrder.OutStatus = "已宿"; //仿æåºåºæç»ä¸ï¼çéåºé£äºä¸å¨å·²å®æå表ä¸çæç»é¡¹ if (deliveryOrder.Details.Where(x => !cabinOrderDetailsUp.Select(x => x.Id).Contains(x.Id)).Any()) deliveryOrder.OutStatus = "å¼å§"; _unitOfWorkManage.BeginTran(); @@ -111,9 +136,17 @@ { decimal orderQty = detail.orderDetails?.Sum(x => decimal.TryParse(x.quantity, out var q) ? Math.Abs(q) : 0) ?? 0; Dt_SupplyTask? supplyTask = supplyTasks.FirstOrDefault(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo); if (supplyTask == null) throw new Exception($"æªæ¾å°è®¢åå·ã{request.externalOrderNo}ãç©æç¼å·ã{detail.productCode}ãçåºåºä»»å¡"); if (supplyTask == null) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "åºåºå", $"æªæ¾å°è®¢åå·ã{request.externalOrderNo}ãç©æç¼å·ã{detail.productCode}ãçåºåºä»»å¡"); throw new Exception($"æªæ¾å°è®¢åå·ã{request.externalOrderNo}ãç©æç¼å·ã{detail.productCode}ãçåºåºä»»å¡"); } if (supplyTask.StockQuantity != orderQty) { _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "åºåºå", $"订åå·ã{request.orderNo}ãç©æç¼å·ã{detail.productCode}ãçåºåºæ°éä¸åºåºä»»å¡æ°éä¸ç¸ç"); throw new Exception($"订åå·ã{request.orderNo}ãç©æç¼å·ã{detail.productCode}ãçåºåºæ°éä¸åºåºä»»å¡æ°éä¸ç¸ç"); } //å¤çåºåºåãåºåä¿¡æ¯ãåºåºä»»å¡ãè°æ¨ä»»å¡ content = OutTaskFinish(supplyTask, deliveryOrder); if (!content.Status) throw new Exception(content.Message); } н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs
@@ -16,6 +16,171 @@ public partial class Business { #region è·åERPå ¥åºå //static string SearchInOrderDate = "2025-11-01 00:00:00"; //public WebResponseContent GetInOrder() //{ // WebResponseContent content = new WebResponseContent(); // try // { // var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder"; // string GetOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // if (string.IsNullOrEmpty(SearchInOrderDate)) SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // var requestData = new { searchDate = SearchInOrderDate }; // //SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // var result = HttpHelper.Post(url, requestData.ToJsonString()); // var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result); // if (response == null) return content; // if (response.data.Count < 1) // { // SearchInOrderDate = GetOutOrderDate; // return content; // } // var ordernos = response.data.Select(x => x.order_no).ToList(); // var existingOrderNos = _cabinOrderServices.Repository.QueryData(x => ordernos.Contains(x.Order_no)).Select(x => x.Order_no).Distinct().ToList(); // var newOrders = response.data.Where(order => !existingOrderNos.Contains(order.order_no)).ToList(); // if (newOrders.Count < 1) // { // SearchInOrderDate = GetOutOrderDate; // return content; // } // int messQty = 0; // foreach (var order in newOrders) // { // try // { // if (order.order_type == "1") // { // content = _cabinOrderServices.CreateInboundOrder(order); // if (!content.Status) messQty++; // } // else if (order.order_type == "3")//å ¥åºéæ // { // #region 转æ¢ä¸ºåºåºå // UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo() // { // order_no = order.order_no, // order_type = order.order_type, // warehouse_no = order.warehouse_no, // details = new List<UpstreamOutOrderDetail>() // }; // foreach (var item in order.details) // { // UpstreamOutOrderDetail detail = new UpstreamOutOrderDetail() // { // batch_num = item.batch_num, // goods_no = item.goods_no, // order_qty = item.order_qty, // exp_date = item.exp_date, // }; // upstramOutOrderInfo.details.Add(detail); // } // #endregion // content = _deliveryOrderServices.CreateOutboundOrder(upstramOutOrderInfo); // if (!content.Status) messQty++; // } // else if (order.order_type == "5")//æ¥æº¢å ¥åº // { // content = _cabinOrderServices.CreateCheckInOrder(order); // if (!content.Status) messQty++; // } // } // catch (Exception ex) // { // continue; // } // } // if (messQty == 0) SearchInOrderDate = GetOutOrderDate; // return content.OK(); // } // catch (Exception ex) // { // Console.WriteLine("è·åERPå ¥åºåä¿¡æ¯å¼å¸¸ï¼" + ex.Message); // return content.Error(ex.Message); // } //} #endregion #region è·åERPåºåºå //static string SearchOutOrderDate = "2025-11-01 00:00:00"; //public WebResponseContent GetOutOrder() //{ // WebResponseContent content = new WebResponseContent(); // try // { // //var url = "http://121.37.118.63:80/GYZ2/95fck/outOrder"; // var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/366751306?apifoxApiId=366751306"; // string GetOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // if (string.IsNullOrEmpty(SearchOutOrderDate)) SearchOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // var requestData = new { searchDate = SearchOutOrderDate }; // var result = HttpHelper.Post(url, requestData.ToJsonString()); // var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(result); // if (response == null) return content; // if (response.data.Count < 1) // { // SearchOutOrderDate = GetOutOrderDate; // return content; // } // var ordernos = response.data.Select(x => x.order_no).ToList(); // var existingOutOrderNos = _deliveryOrderServices.Repository.QueryData(x => ordernos.Contains(x.Out_no)).Select(x => x.Out_no).Distinct().ToList(); // var newOutOrders = response.data.Where(outorder => !existingOutOrderNos.Contains(outorder.order_no)).ToList(); // if (newOutOrders.Count < 1) // { // SearchOutOrderDate = GetOutOrderDate; // return content; // } // int messQty = 0; // foreach (var outorder in newOutOrders) // { // if (outorder.order_type == "1")// æ£å¸¸åºåºå // { // content = _deliveryOrderServices.CreateOutboundOrder(outorder); // if (!content.Status) messQty++; // } // else if (outorder.order_type == "2")//åºåºéè´§ // { // #region è½¬æ¢æå ¥åºå // UpstreamOrderInfo order = new UpstreamOrderInfo() // { // order_no = outorder.order_no, // order_type = outorder.order_type, // warehouse_no = outorder.warehouse_no, // details = new List<UpstreamOrderDetail>() // }; // foreach (var item in outorder.details) // { // UpstreamOrderDetail detail = new UpstreamOrderDetail() // { // batch_num = item.batch_num, // goods_no = item.goods_no, // order_qty = item.order_qty, // exp_date = item.exp_date, // }; // order.details.Add(detail); // } // #endregion // content = _cabinOrderServices.CreateInboundOrder(order); // if (!content.Status) messQty++; // } // else if (outorder.order_type == "6")//æ¥æåºåº // { // content = _deliveryOrderServices.CreateCheckOutOrder(outorder); // if (!content.Status) messQty++; // } // } // if (messQty == 0) SearchOutOrderDate = GetOutOrderDate; // } // catch (Exception ex) // { // content.Error(ex.Message); // } // return content; //} #endregion #region è·åERPå ¥åºå static string SearchInOrderDate = "2025-11-01 00:00:00"; public WebResponseContent GetInOrder() { @@ -26,7 +191,6 @@ string GetOutOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); if (string.IsNullOrEmpty(SearchInOrderDate)) SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var requestData = new { searchDate = SearchInOrderDate }; //SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var result = HttpHelper.Post(url, requestData.ToJsonString()); var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result); if (response == null) return content; @@ -35,14 +199,33 @@ SearchInOrderDate = GetOutOrderDate; return content; } var ordernos = response.data.Select(x => x.order_no).ToList(); var existingOrderNos = _cabinOrderServices.Repository.QueryData(x => ordernos.Contains(x.Order_no)).Select(x => x.Order_no).Distinct().ToList(); var newOrders = response.data.Where(order => !existingOrderNos.Contains(order.order_no)).ToList(); // å ³é®ä¿®æ¹ï¼æè®¢åç±»åå嫿£æ¥å¯¹åºç表 var inOrderTypes = new List<string> { "1", "5" }; // å ¥åºç±»å var outOrderTypes = new List<string> { "3" }; // åºåºç±»å // æ£æ¥å ¥åºå表ï¼åªæ£æ¥å ¥åºç±»åç订åï¼æ¯å¦åå¨ var existingInOrderNos = _cabinOrderServices.Repository.QueryData(x => ordernos.Contains(x.Order_no)) .Select(x => x.Order_no).Distinct().ToList(); // æ£æ¥åºåºå表ï¼åªæ£æ¥åºåºç±»åç订åï¼ var existingOutOrderNos = _deliveryOrderServices.Repository.QueryData(x => ordernos.Contains(x.Out_no)) .Select(x => x.Out_no).Distinct().ToList(); // çéæ°è®¢åï¼å ¥åºç±»åæ£æ¥å ¥åºè¡¨ï¼åºåºç±»åæ£æ¥åºåºè¡¨ éåºä¸å å«å·²åå¨å¨ var newOrders = response.data.Where(order => (inOrderTypes.Contains(order.order_type) && !existingInOrderNos.Contains(order.order_no)) || (outOrderTypes.Contains(order.order_type) && !existingOutOrderNos.Contains(order.order_no)) ).ToList(); if (newOrders.Count < 1) { SearchInOrderDate = GetOutOrderDate; return content; } int messQty = 0; foreach (var order in newOrders) { @@ -60,6 +243,9 @@ { order_no = order.order_no, order_type = order.order_type, client_no=order.supplier_no, client_name=order.supplier_name, account_time=order.account_time, warehouse_no = order.warehouse_no, details = new List<UpstreamOutOrderDetail>() }; @@ -120,16 +306,35 @@ SearchOutOrderDate = GetOutOrderDate; return content; } var ordernos = response.data.Select(x => x.order_no).ToList(); var existingOutOrderNos = _deliveryOrderServices.Repository.QueryData(x => ordernos.Contains(x.Out_no)).Select(x => x.Out_no).Distinct().ToList(); var newOutOrders = response.data.Where(outorder => !existingOutOrderNos.Contains(outorder.order_no)).ToList(); if (newOutOrders.Count < 1) // æè®¢åç±»åå嫿£æ¥å¯¹åºç表 var outOrderTypes = new List<string> { "1", "6" }; // åºåºç±»å var inOrderTypes = new List<string> { "2" }; // å ¥åºç±»å // æ£æ¥åºåºå表ï¼åªæ£æ¥åºåºç±»åç订åï¼ var existingOutOrderNos = _deliveryOrderServices.Repository.QueryData(x => ordernos.Contains(x.Out_no)) .Select(x => x.Out_no).Distinct().ToList(); // æ£æ¥å ¥åºå表ï¼åªæ£æ¥å ¥åºç±»åç订åï¼ var existingInOrderNos = _cabinOrderServices.Repository.QueryData(x => ordernos.Contains(x.Order_no)) .Select(x => x.Order_no).Distinct().ToList(); // çéæ°è®¢åï¼åºåºç±»åæ£æ¥åºåºè¡¨ï¼å ¥åºç±»åæ£æ¥å ¥åºè¡¨ var newOrders = response.data.Where(order => (outOrderTypes.Contains(order.order_type) && !existingOutOrderNos.Contains(order.order_no)) || (inOrderTypes.Contains(order.order_type) && !existingInOrderNos.Contains(order.order_no)) ).ToList(); if (newOrders.Count < 1) { SearchOutOrderDate = GetOutOrderDate; return content; } int messQty = 0; foreach (var outorder in newOutOrders) foreach (var outorder in newOrders) { if (outorder.order_type == "1")// æ£å¸¸åºåºå { @@ -143,6 +348,9 @@ { order_no = outorder.order_no, order_type = outorder.order_type, supplier_no=outorder.client_no, supplier_name=outorder.client_name, account_time=outorder.account_time, warehouse_no = outorder.warehouse_no, details = new List<UpstreamOrderDetail>() }; @@ -167,6 +375,7 @@ if (!content.Status) messQty++; } } if (messQty == 0) SearchOutOrderDate = GetOutOrderDate; } catch (Exception ex) @@ -175,6 +384,8 @@ } return content; } #endregion #endregion } } н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Allocat.cs
@@ -112,7 +112,7 @@ #endregion #region 大件åºè¡¥ç«åºåç«åºä¸å¡åºåæ°è¿æ¯å°äºç«åºæå°åºåæ°ï¼æ·»å æç¤ºä¿¡æ¯ #region 大件åºè¡¥ç«åºåç«åºä¸å¡åºmaterielInfo.Business_qtyåæ°è¿æ¯å°äºç«åºæå°åºåæ°ï¼æ·»å æç¤ºä¿¡æ¯ //æ·»å æ¥è¦ä¿¡æ¯ if (materielInfo.Business_qty < materielInfo.MinQty) { н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs
@@ -33,11 +33,18 @@ //List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>(); List<Dt_SupplyTask> supplyTasks1 = new List<Dt_SupplyTask>(); List<Dt_InventoryInfo> _InventoryInfos = new List<Dt_InventoryInfo>(); List<Dt_Inventory_Batch> inventory_Batches = _inventory_BatchServices.Repository.QueryData(x => keys.Contains(x.Id)); List<Dt_Inventory_Batch> inventory_Batches = _inventory_BatchServices.Repository.QueryData(x => keys.Contains(x.Id)).ToList(); foreach (var item in inventory_Batches) { var supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == item.MaterielCode && x.BatchNo == item.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).ToList(); if (item.SupplyQuantity != 0) throw new Exception($"ç©æç¼å·ã{item.MaterielCode}ãæ¹æ¬¡å·ã{item.BatchNo}ãå·²åå¨çç¹å·®å¼!"); //if (item.SupplyQuantity != 0) throw new Exception($"ç©æç¼å·ã{item.MaterielCode}ãæ¹æ¬¡å·ã{item.BatchNo}ãå·²åå¨çç¹å·®å¼!"); if (item.SupplyQuantity != 0) { item.SupplyQuantity = 0; // è¿ééè¦æ´æ°æ¹æ¬¡è¡¨ç差弿°é _inventory_BatchServices.UpdateData(item); } if (supplyTasks.Count > 0) throw new Exception($"ç©æç¼å·ã{item.MaterielCode}ãæ¹æ¬¡å·ã{item.BatchNo}ãå·²åå¨çç¹ä»»å¡ï¼è¯·å 宿å½åçç¹ä»»å¡"); supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == item.MaterielCode && x.BatchNo == item.BatchNo && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).ToList(); if (supplyTasks.Count > 0) throw new Exception($"ç©æç¼å·ã{item.MaterielCode}ãæ¹æ¬¡å·ã{item.BatchNo}ãå·²åå¨åºåºä»»å¡ï¼è¯·å 宿å½ååºåºä»»å¡"); @@ -79,6 +86,8 @@ #region å建çç¹ä»»å¡ foreach (var inventory in items) { //å¨å建çç¹ä»»å¡æ¶éç½®åºåççç¹å·®å¼ä¸º0 inventory.SupplyQuantity = 0; Dt_SupplyTask supplyTask = new Dt_SupplyTask() { WarehouseCode = inventory.WarehouseCode, @@ -206,7 +215,7 @@ { var LocationCode = saveModel.MainData["locationCode"].ToString(); var TaskId = saveModel.MainData["taskId"].ObjToInt(); var qty = saveModel.MainData["qty"].ObjToInt(); var qty = saveModel.MainData["qty"].ObjToDecimal(); Dt_SupplyTask supplyTask = _supplyTaskService.Repository.QueryFirst(x => x.TaskId == TaskId && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()); if (supplyTask == null) throw new Exception("å½åçç¹ä»»å¡å·²å®æ"); if (supplyTask.LocationCode != LocationCode) throw new Exception($"å½åçç¹è´§ä½ã{LocationCode}ãä¸ä»»å¡åé è´§ä½ä¸å¹é "); @@ -249,8 +258,8 @@ #endregion #region åºå List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => cabinOrder.Details.Select(x => x.Goods_no).Contains(x.MaterielCode)); List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => cabinOrder.Details.Select(x => x.Goods_no).Contains(x.MaterielCode) && x.WarehouseCode == supplyTask.WarehouseCode && x.StockStatus == StockStatusEmun.çç¹éå®.ObjToInt()); List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => cabinOrder.Details.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList(); List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => cabinOrder.Details.Select(x => x.Goods_no).Contains(x.MaterielCode) && x.WarehouseCode == supplyTask.WarehouseCode && x.StockStatus == StockStatusEmun.çç¹éå®.ObjToInt()).ToList(); Dt_InventoryInfo? inventoryInfo = new(); List<Dt_InventoryInfo> inventoryInfosDel = new List<Dt_InventoryInfo>(); if (supplyTask.WarehouseCode != WarehouseEnum.ç«åº.ObjToInt().ToString("000")) @@ -263,7 +272,7 @@ inventoryInfo = inventoryInfos.FirstOrDefault(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no); } if (inventoryInfo == null) return WebResponseContent.Instance.Error($"æªæ¾å°ç«åºçåºåä¿¡æ¯"); inventoryInfo.SupplyQuantity = supplyTask.SupplyQuantity - inventoryInfo.StockQuantity; inventoryInfo.SupplyQuantity = supplyTask.SupplyQuantity - inventoryInfo.StockQuantity;//çç¹å·®å¼æ° #endregion List<Dt_SupplyTask> supplyTasks = _supplyTaskService.Repository.QueryData(x => x.OrderNo == supplyTask.OrderNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.TaskId != supplyTask.TaskId).ToList();//æ¥æ¾å½åçç¹åççç¹ä»»å¡ @@ -275,7 +284,7 @@ #region å¤çå½åç©ææ¹æ¬¡çåºååæ¹æ¬¡ä¿¡æ¯ Dt_Inventory_Batch inventory_Batch = inventory_Batchs.First(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode); var SupplyQuantitys = inventoryInfos.Where(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode).Sum(x => x.SupplyQuantity); if (SupplyQuantitys == 0) if (SupplyQuantitys == 0)//ä¸åå¨çç¹å·®å¼ { foreach (var item in inventoryInfos.Where(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode)) {