н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs
@@ -1,6 +1,7 @@ using HslCommunication; using Newtonsoft.Json; using Quartz.Util; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; @@ -167,6 +168,13 @@ return "æªç¥"; } /// <summary> /// åç»ä¸æ¸¸wcs忥è¯åä¿¡æ¯ /// </summary> /// <returns></returns> #region 忥䏿¸¸ç©ææ¥å£ public WebResponseContent ProductSynchronous() { try @@ -222,82 +230,84 @@ return WebResponseContent.Instance.Error(ex.Message); } } /// <summary> /// åç»ä¸æ¸¸wcs忥è¯åä¿¡æ¯ /// </summary> /// <returns></returns> public WebResponseContent ProductSynchronous1() { try { //æå°ä»¶æªä¸åççä¿¡æ¯åç®±è§ä¸º0ï¼æä½åºå为0çè¿æ»¤æ //var list = BaseDal.Db.Queryable<Dt_MaterielInfo>().Where(x => x.GoodStatusState == "æªä¸å" && x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart).ToList(); var list = BaseDal.QueryData(x => x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart && x.BoxQty > 0 && x.MinQty > 0 && x.GoodStatusState == "æªä¸å").ToList(); if (list.Count < 1) { return new WebResponseContent().OK("æ æªä¸åè¯å"); } //æ¾å°äºå°±å°æ´ä¸ªliståç»ä¸æ¸¸ç³»ç» foreach (var item in list) { var medicineDTO = new ProductInfo { //ç¨æ·code customerCode = "905", //ç©æç±»å materialCode = item.MaterielErpType, //产åç¼ç productCode = item.MaterielCode, //产åå productName = item.MaterielName, //äº§åæ¡ç productBarCode = item.Barcode, #endregion //è¯å medicine = item.Dosage_form,//è¿éè¦è°ç¨æ¹æ³ï¼è½¬åæ¹æ³ //è§æ ¼ productSpecifications = item.MaterielSpec, //åä½ unit = item.MaterielUnit, //é¿ singleProductLongNum = (item.MaterielLength ?? 0).ToString(), //宽 singleProductWideNum = (item.MaterielWide ?? 0).ToString(), //é« singleProductHighNum = (item.MaterielHeight ?? 0).ToString(), //éé singleProductWeight = (item.MaterielWeight ?? 0).ToString(), //ä½ç§¯ singleProductVolume = (item.MaterielVolume ?? 0).ToString(), //æ¯å¦åæ¶ 0æ¯ä¸å é¤ï¼1å é¤ isDelete = "0" }; var url = "http://172.16.1.2:9357/file-admin/api/product/productSynchronous"; var result = HttpHelper.Post(url, medicineDTO.ToJsonString()); var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); #region æå¨å ³éæ°æ®åºè¿æ¥ 忥䏿¸¸ç©æ //public WebResponseContent ProductSynchronous() //{ // using (var db = new SqlSugarClient(new ConnectionConfig // { // ConnectionString = "Data Source=.;Initial Catalog=WIDESEA_WMSDBF_Z22;User ID=sa;Password=48PYX_h7KS@f;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", // DbType = DbType.SqlServer, // IsAutoCloseConnection = true, // å ³é®é ç½®ï¼èªå¨å ³éè¿æ¥ // MoreSettings = new ConnMoreSettings() // { // IsAutoRemoveDataCache = true // } // })) // { // try // { // List<Dt_MaterielInfo> materielInfos = db.Queryable<Dt_MaterielInfo>().Where(x => x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart && x.BoxQty > 0 && x.MinQty > 0 && x.GoodStatusState == "æªä¸å").ToList(); // if (materielInfos.Count < 1) // { if (resp != null && resp.code == "0") { item.GoodStatusState = "ä¸å宿"; } else { continue; } // return WebResponseContent.Instance.Error("æ æªä¸åè¯å"); // } // var url = "http://172.16.1.2:9357/file-admin/api/product/productSynchronous"; // foreach (var item in materielInfos) // { // var medicineDTO = new ProductInfo // { // //ç¨æ·code // customerCode = "905", // //ç©æç±»å // materialCode = item.MaterielErpType, // //产åç¼ç // productCode = item.MaterielCode, // //产åå // productName = item.MaterielName, // //äº§åæ¡ç // productBarCode = item.Barcode, } BaseDal.UpdateData(list); //Db.Updateable(list).ExecuteCommand(); return new WebResponseContent { Status = true, Message = "æå" }; } catch (Exception ex) { Console.WriteLine("ProductSynchronous å¼å¸¸ï¼" + ex.Message); return new WebResponseContent { Status = false, Message = ex.Message }; } // //è¯å // medicine = item.Dosage_form,//è¿éè¦è°ç¨æ¹æ³ï¼è½¬åæ¹æ³ } // //è§æ ¼ // productSpecifications = item.MaterielSpec, // //åä½ // unit = item.MaterielUnit, // //é¿ // singleProductLongNum = (item.MaterielLength ?? 0).ToString(), // //宽 // singleProductWideNum = (item.MaterielWide ?? 0).ToString(), // //é« // singleProductHighNum = (item.MaterielHeight ?? 0).ToString(), // //éé // singleProductWeight = (item.MaterielWeight ?? 0).ToString(), // //ä½ç§¯ // singleProductVolume = (item.MaterielVolume ?? 0).ToString(), // //æ¯å¦åæ¶ 0æ¯ä¸å é¤ï¼1å é¤ // isDelete = "0" // }; // var result = HttpHelper.Post(url, medicineDTO.ToJsonString()); // var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); // if (resp != null && resp.code == "0") item.GoodStatusState = "ä¸å宿"; // } // db.Updateable(materielInfos).ExecuteCommand(); // return WebResponseContent.Instance.OK(); // } // catch (Exception ex) // { // Console.WriteLine("ä¸åWCSç©æä¿¡æ¯å¼å¸¸ï¼" + ex.Message); // return WebResponseContent.Instance.Error(ex.Message); // } // } //} #endregion public override WebResponseContent DeleteData(object[] keys) { WebResponseContent content = new WebResponseContent(); н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs
@@ -120,6 +120,9 @@ return content; } /// <summary> /// æ¶æ¯å¤ç忍é WebSocket宿¶æ¨é /// </summary> public void GetMessageInfo() { try н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs
@@ -19,6 +19,7 @@ using static WIDESEA_DTO.SquareCabin.AlarmDto; using OfficeOpenXml.Style; using System.Security.Policy; using SqlSugar; namespace WIDESEA_SquareCabinServices { @@ -43,6 +44,164 @@ } #region ä¸åç«åºå ¥åºå //public WebResponseContent EdiIn() //{ // try // { // var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); // 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)).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(); // foreach (var item in order.Details) // { // item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First(); // } // #region ä¸åWCS // string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY"; // var ediDto = new ToediInInfo // { // //客æ·ä»£ç // customerCode = "905", // //ç©æç±»å // materialCode = materialCode, // //å ¥åºåå· // externalOrderNo = order.Order_no, // //å ¥åºåç±»å // inOrderType = order.Order_type == "5" ? "20" : "10", // //ä¼å 级 // priority = 0, // //æ¯å¦åæ¶ // Is_cancel = 0, // details = order.Details.Select(d => new ToediInDetail // { // //æ¹å· // batchNo = d.Batch_num, // //产å // productCode = d.Goods_no, // //skuåç§° // productName = d.MedicineGoods.MaterielName, // //skuè§æ ¼ // productSpecifications = d.MedicineGoods.MaterielSpec, // //æ°é // quantity = (int)d.Order_qty, // //ææ // validityPeriod = d.Exp_date, // //ç产åå®¶ // manufacturer = d.MedicineGoods.Factory, // //æ¿å· // libraryNo = order.Warehouse_no, // }).ToList() // }; // var result = HttpHelper.Post(url, ediDto.ToJsonString()); // var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); // if (resp != null && resp.code == "0") // { // order.OdrderStatus = "å¼å§"; // foreach (var item in cabinOrderDetails.Where(x => x.OrderId == order.Id)) // { // item.Status = 1; // item.OrderDetailStatus = "å¼å§"; // } // } // #endregion // } // _cabinOrderServices.UpdateData(orders); // _cabinDetailServices.UpdateData(cabinOrderDetails); // return WebResponseContent.Instance.OK(); // } // catch (Exception ex) // { // Console.WriteLine("ä¸åWCSå ¥åºåå¼å¸¸ï¼" + ex.Message); // return WebResponseContent.Instance.Error(ex.Message); // } //} #endregion #region ä¸åç«åºåºåºå //public WebResponseContent EdiOut() //{ // try // { // var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); // 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)).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(); // foreach (var item in order.Details) // { // item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First(); // } // #region ä¸åWCS // string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY"; // var ediDto = new ToediOutInfo // { // //客æ·ä»£ç // customerCode = "905", // //ç©æç±»å // materialCode = materialCode, // externalOrderNo = order.Out_no, // outOrderType = order.Out_type, // priority = 1, // Is_cancel = 0, // details = order.Details.Select(d => new ToeOutdiInDetail // { // batchNo = d.Batch_num, // productCode = d.Goods_no, // productName = d.MedicineGoods.MaterielName, // productSpecifications = d.MedicineGoods.MaterielModel, // quantity = (int)d.Order_qty, // }).ToList() // }; // switch (order.Out_type) // { // case "1"://æ£å¸¸åºåº // case "3"://å ¥åºéè´§ // ediDto.outOrderType = "10";//ä¸è¬äº¤æåºåºå // break; // case "6"://çäºåºåº // ediDto.outOrderType = "30";//çäºåºåºå // break; // } // var result = HttpHelper.Post(url, ediDto.ToJsonString()); // var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); // if (resp != null && resp.code == "0") // { // order.OutStatus = "å¼å§"; // foreach (var item in deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id)) // { // item.Status = 1; // item.OotDetailStatus = "å¼å§"; // } // } // #endregion // } // _deliveryOrderServices.UpdateData(orders); // _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails); // return WebResponseContent.Instance.OK(); // } // catch (Exception ex) // { // Console.WriteLine("ä¸åWCSåºåºåå¼å¸¸ï¼" + ex.Message); // return WebResponseContent.Instance.Error(ex.Message); // } //} #endregion // ä½¿ç¨ SqlSugar ç Ado.Connection æå¨ç®¡ç #region ä¸åç«åºå ¥åºå public WebResponseContent EdiIn() { try @@ -50,58 +209,64 @@ var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); 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)).ToList(); var materielInfos = _materielInfoService.Repository.QueryData(x => cabinOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList(); var orderIds = orders.Select(x => x.Id).ToList(); var cabinOrderDetails = _cabinDetailServices.Repository.QueryData(x => orderIds.Contains(x.OrderId)).ToList(); var goodsCodes = cabinOrderDetails.Select(x => x.Goods_no).Distinct().ToList(); var materielInfos = _materielInfoService.Repository.QueryData(x => goodsCodes.Contains(x.MaterielCode)).ToList(); foreach (var order in orders) { order.Details = cabinOrderDetails.Where(x => x.OrderId == order.Id).ToList(); foreach (var item in order.Details) { item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First(); } // å ³é®ä¿®æ¹ï¼ä¸è®¾ç½®å¯¼èªå±æ§ï¼é¿å 触åå»¶è¿å è½½ // foreach (var item in order.Details) // { // item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First(); // } #region ä¸åWCS string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY"; // ç´æ¥ä» materielInfos æ¥è¯¢ï¼ä¸éè¿å¯¼èªå±æ§ var firstDetail = order.Details.FirstOrDefault(); var firstMedicine = firstDetail != null ? materielInfos.FirstOrDefault(x => x.MaterielCode == firstDetail.Goods_no) : null; string materialCode = firstMedicine?.MaterielErpType ?? "YY"; var ediDto = new ToediInInfo { //客æ·ä»£ç customerCode = "905", //ç©æç±»å materialCode = materialCode, //å ¥åºåå· externalOrderNo = order.Order_no, //å ¥åºåç±»å inOrderType = order.Order_type == "5" ? "20" : "10", //ä¼å 级 priority = 0, //æ¯å¦åæ¶ Is_cancel = 0, details = order.Details.Select(d => new ToediInDetail details = order.Details.Select(d => { //æ¹å· var medicine = materielInfos.FirstOrDefault(x => x.MaterielCode == d.Goods_no); return new ToediInDetail { batchNo = d.Batch_num, //产å productCode = d.Goods_no, //skuåç§° productName = d.MedicineGoods.MaterielName, //skuè§æ ¼ productSpecifications = d.MedicineGoods.MaterielSpec, //æ°é productName = medicine?.MaterielName ?? string.Empty, productSpecifications = medicine?.MaterielSpec ?? string.Empty, quantity = (int)d.Order_qty, //ææ validityPeriod = d.Exp_date, //ç产åå®¶ manufacturer = d.MedicineGoods.Factory, //æ¿å· manufacturer = medicine?.Factory ?? string.Empty, libraryNo = order.Warehouse_no, }; }).ToList() }; var result = HttpHelper.Post(url, ediDto.ToJsonString()); var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); if (resp != null && resp.code == "0") { order.OdrderStatus = "å¼å§"; foreach (var item in cabinOrderDetails.Where(x => x.OrderId == order.Id)) foreach (var item in order.Details) { item.Status = 1; item.OrderDetailStatus = "å¼å§"; @@ -109,6 +274,7 @@ } #endregion } _cabinOrderServices.UpdateData(orders); _cabinDetailServices.UpdateData(cabinOrderDetails); return WebResponseContent.Instance.OK(); @@ -119,6 +285,7 @@ return WebResponseContent.Instance.Error(ex.Message); } } #endregion #region ä¸åç«åºåºåºå @@ -129,37 +296,55 @@ var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); 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)).ToList(); var materielInfos = _materielInfoService.Repository.QueryData(x => deliveryOrderDetails.Select(x => x.Goods_no).Contains(x.MaterielCode)).ToList(); var orderIds = orders.Select(x => x.Id).ToList(); var deliveryOrderDetails = _deliveryOrderDetailServices.Repository.QueryData(x => orderIds.Contains(x.DeliveryOrderId)).ToList(); var goodsCodes = deliveryOrderDetails.Select(x => x.Goods_no).Distinct().ToList(); var materielInfos = _materielInfoService.Repository.QueryData(x => goodsCodes.Contains(x.MaterielCode)).ToList(); foreach (var order in orders) { order.Details = deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id).ToList(); foreach (var item in order.Details) { item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First(); } // å ³é®ä¿®æ¹ï¼ä¸è®¾ç½®å¯¼èªå±æ§ï¼é¿å 触åå»¶è¿å è½½ // foreach (var item in order.Details) // { // item.MedicineGoods = materielInfos.Where(x => x.MaterielCode == item.Goods_no).First(); // } #region ä¸åWCS string materialCode = order.Details.FirstOrDefault()?.MedicineGoods?.MaterielErpType ?? "YY"; // ç´æ¥ä» materielInfos æ¥è¯¢ï¼ä¸éè¿å¯¼èªå±æ§ var firstDetail = order.Details.FirstOrDefault(); var firstMedicine = firstDetail != null ? materielInfos.FirstOrDefault(x => x.MaterielCode == firstDetail.Goods_no) : null; string materialCode = firstMedicine?.MaterielErpType ?? "YY"; var ediDto = new ToediOutInfo { //客æ·ä»£ç customerCode = "905", //ç©æç±»å materialCode = materialCode, externalOrderNo = order.Out_no, outOrderType = order.Out_type, priority = 1, Is_cancel = 0, details = order.Details.Select(d => new ToeOutdiInDetail details = order.Details.Select(d => { var medicine = materielInfos.FirstOrDefault(x => x.MaterielCode == d.Goods_no); return new ToeOutdiInDetail { batchNo = d.Batch_num, productCode = d.Goods_no, productName = d.MedicineGoods.MaterielName, productSpecifications = d.MedicineGoods.MaterielModel, productName = medicine.MaterielName, productSpecifications = medicine.MaterielModel, quantity = (int)d.Order_qty, }; }).ToList() }; switch (order.Out_type) { case "1"://æ£å¸¸åºåº @@ -170,12 +355,13 @@ ediDto.outOrderType = "30";//çäºåºåºå break; } var result = HttpHelper.Post(url, ediDto.ToJsonString()); var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); if (resp != null && resp.code == "0") { order.OutStatus = "å¼å§"; foreach (var item in deliveryOrderDetails.Where(x => x.DeliveryOrderId == order.Id)) foreach (var item in order.Details) { item.Status = 1; item.OotDetailStatus = "å¼å§"; @@ -183,6 +369,7 @@ } #endregion } _deliveryOrderServices.UpdateData(orders); _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails); return WebResponseContent.Instance.OK(); @@ -195,6 +382,10 @@ } #endregion #region å ¥åºå®æä¸æ¥ERP /// <summary> /// å ¥åºæ¥å®ææ¥å£ н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs
@@ -9,6 +9,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Transactions; using WIDESEA_Common; using WIDESEA_Common.LocationEnum; using WIDESEA_Common.OrderEnum; @@ -502,6 +503,338 @@ #endregion #region å建ççå ¥åºå //public WebResponseContent CreateCheckInOrder(UpstreamOrderInfo 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)); // List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)); // #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(); // 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) // { // #region æ·»å ççå ¥åºä»»å¡ // if (inventoryInfo.SupplyQuantity != 0) // { // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() // { // WarehouseCode = inventoryInfo.WarehouseCode, // OperateType = OperateTypeEnum.èªå¨å®æ.ToString(), // InsertTime = DateTime.Now, // TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(), // BatchNo = inventoryInfo.BatchNo, // MaterielName = inventoryInfo.MaterielName, // MaterielCode = inventoryInfo.MaterielCode, // MaterielSpec = inventoryInfo.MaterielSpec, // TaskType = TaskTypeEnum.ChenckIn.ObjToInt(), // CreateDate = DateTime.Now, // Creater = App.User.UserName, // LocationCode = inventoryInfo.LocationCode, // OrderNo = order.order_no, // StockQuantity = 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(); // } // infosUp.AddRange(inventoryInfos); // inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; // inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; // inventory_Batch.SupplyQuantity = 0; // batchesUp.Add(inventory_Batch); // //_inventoryInfoService.UpdateData(inventoryInfos); // //_inventory_BatchServices.UpdateData(inventory_Batch); // } // #endregion // #region å建çç¹å // var entityOrder = new Dt_CabinOrder // { // Order_no = order.order_no, // Order_type = order.order_type, // Supplier_no = order.supplier_no, // Account_tiem = order.account_time, // OdrderStatus = "已宿", // Supplier_name = order.supplier_name, // Warehouse_no = order.warehouse_no, // Details = order.details.Select(d => new Dt_CabinOrderDetail // { // Goods_no = d.goods_no, // Order_qty = Math.Abs(d.order_qty), // Order_Inqty = Math.Abs(d.order_qty), // Batch_num = d.batch_num, // Exp_date = d.exp_date, // Reservoirarea = order.warehouse_no, // OrderDetailStatus = "已宿", // Status = 2, // }).ToList() // }; // _unitOfWorkManage.BeginTran(); // if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties); // if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp); // if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp); // BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); // _unitOfWorkManage.CommitTran(); // //Repository.AddData(entityOrder); // #endregion // } // #endregion // else // { // List<Dt_CabinOrder> cabinOrdersAdd = new List<Dt_CabinOrder>(); // 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)).ToList(); // List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); // 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.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(); // //è·åç«åºçç¹å·®å¼æ° // var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault(); //ä¿®æ¹è¿éæå¯è½åªæå¤§ä»¶åºæä¼åå¨å·®å¼ // //var LkQty = Math.Abs(inventoryLK.SupplyQuantity); // var LkQty = inventoryLK?.SupplyQuantity ?? 0; // //è·å大件åºçç¹å·®å¼æ° // 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 == 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.InFinish.ObjToInt(), // BatchNo = inventoryInfo.BatchNo, // MaterielName = inventoryInfo.MaterielName, // MaterielCode = inventoryInfo.MaterielCode, // MaterielSpec = inventoryInfo.MaterielSpec, // TaskType = TaskTypeEnum.ChenckIn.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); // inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; // inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; // inventory_Batch.SupplyQuantity = 0; // //_inventory_BatchServices.UpdateData(inventory_Batch); // batchesUp.Add(inventory_Batch); // #endregion // #region å建大件åºçç¹å // var entityOrder = new Dt_CabinOrder // { // Order_no = order.order_no, // Order_type = order.order_type, // Supplier_no = order.supplier_no, // Account_tiem = order.account_time, // OdrderStatus = "已宿", // Supplier_name = order.supplier_name, // Warehouse_no = WareCodeDJ, // Details = order.details.Select(d => new Dt_CabinOrderDetail // { // Goods_no = d.goods_no, // Order_qty = Math.Abs(d.order_qty), // Order_Inqty = Math.Abs(d.order_qty), // Batch_num = d.batch_num, // Exp_date = d.exp_date, // Reservoirarea = WareCodeDJ, // OrderDetailStatus = "已宿", // Status = 2, // }).ToList() // }; // //Repository.AddData(entityOrder); // //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); // cabinOrdersAdd.Add(entityOrder); // #endregion // } // else // LkQty != 0 表示ç«åºæå·®å¼ // { // #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.InFinish.ObjToInt(), // BatchNo = inventoryInfo.BatchNo, // MaterielName = inventoryInfo.MaterielName, // MaterielCode = inventoryInfo.MaterielCode, // MaterielSpec = inventoryInfo.MaterielSpec, // TaskType = TaskTypeEnum.ChenckIn.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_CabinOrder // { // Order_no = order.order_no, // Order_type = order.order_type, // Supplier_no = order.supplier_no, // Account_tiem = order.account_time, // OdrderStatus = "已宿", // Supplier_name = order.supplier_name, // Warehouse_no = WareCodeDJ, // Details = order.details.Select(d => new Dt_CabinOrderDetail // { // Goods_no = d.goods_no, // Order_qty = DJQty, // Order_Inqty = DJQty, // Batch_num = d.batch_num, // Exp_date = d.exp_date, // Reservoirarea = WareCodeDJ, // OrderDetailStatus = "已宿", // Status = 2, // }).ToList() // }; // //Repository.AddData(cabinOrder); // //Db.InsertNav(cabinOrder).Include(it => it.Details).ExecuteCommand(); // cabinOrdersAdd.Add(cabinOrder); // } // #endregion // #region å建ç«åºçç¹å // var entityOrder = new Dt_CabinOrder // { // Order_no = order.order_no, // Order_type = order.order_type, // Supplier_no = order.supplier_no, // Account_tiem = order.account_time, // OdrderStatus = "æ°å»º", // Supplier_name = order.supplier_name, // Warehouse_no = WareCodeLK, // Details = order.details.Select(d => new Dt_CabinOrderDetail // { // Goods_no = d.goods_no, // Order_qty = Math.Abs(LkQty), // Batch_num = d.batch_num, // Exp_date = d.exp_date, // Reservoirarea = WareCodeLK, // OrderDetailStatus = "æ°å»º", // Status = 0, // }).ToList() // }; // //Repository.AddData(entityOrder); // //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); // cabinOrdersAdd.Add(entityOrder); // #endregion // } // } // _unitOfWorkManage.BeginTran(); // if (supplyTask_Hties.Count > 1) _supplyTaskHtyService.AddData(supplyTask_Hties); // if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp); // if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp); // if (cabinOrdersAdd.Count > 0) BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand(); // _unitOfWorkManage.CommitTran(); // // æ·»å äºå¡æäº¤åçæ£æ¥ // Console.WriteLine($"äºå¡æäº¤å®æï¼åå¤è¿åãcabinOrdersAddæ°é: {cabinOrdersAdd.Count}"); // } // } // catch (Exception ex) // { // _unitOfWorkManage.RollbackTran(); // //_messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "å建ççå ¥åºå", ex.Message); // //return content.Error(ex.Message); // throw ex; // } // //return content; // return content.OK($"ççå ¥åºå {order.order_no} å建æå"); //} #endregion #region å建ççå ¥åºå(ä¿®æ¹åçå 为åé¢è®¢åå建失败导è´åé¢ä¹å建ä¸äºé®é¢) public WebResponseContent CreateCheckInOrder(UpstreamOrderInfo order) { WebResponseContent content = new WebResponseContent(); @@ -573,7 +906,6 @@ //_inventory_BatchServices.UpdateData(inventory_Batch); } #endregion #region å建çç¹å var entityOrder = new Dt_CabinOrder { @@ -596,13 +928,14 @@ Status = 2, }).ToList() }; _unitOfWorkManage.BeginTran(); _supplyTaskHtyService.AddData(supplyTask_Hties); _inventoryInfoService.UpdateData(infosUp); _inventory_BatchServices.UpdateData(batchesUp); using (var scop = new TransactionScope(TransactionScopeOption.RequiresNew)) { if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties); if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp); if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp); BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); _unitOfWorkManage.CommitTran(); //Repository.AddData(entityOrder); scop.Complete(); } #endregion } #endregion @@ -627,9 +960,9 @@ //æ¾ææåºå 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 inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault(); //ä¿®æ¹è¿éæå¯è½åªæå¤§ä»¶åºæä¼åå¨å·®å¼ //var LkQty = Math.Abs(inventoryLK.SupplyQuantity); var LkQty = inventoryLK.SupplyQuantity; var LkQty = inventoryLK?.SupplyQuantity ?? 0; //è·å大件åºçç¹å·®å¼æ° var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); @@ -811,25 +1144,27 @@ #endregion } } _unitOfWorkManage.BeginTran(); _supplyTaskHtyService.AddData(supplyTask_Hties); _inventoryInfoService.UpdateData(infosUp); _inventory_BatchServices.UpdateData(batchesUp); BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand(); _unitOfWorkManage.CommitTran(); using (var scop = new TransactionScope(TransactionScopeOption.RequiresNew)) { if (supplyTask_Hties.Count > 0) _supplyTaskHtyService.AddData(supplyTask_Hties); if (infosUp.Count > 0) _inventoryInfoService.UpdateData(infosUp); if (batchesUp.Count > 0) _inventory_BatchServices.UpdateData(batchesUp); if (cabinOrdersAdd.Count > 0) BaseDal.Db.InsertNav(cabinOrdersAdd).Include(it => it.Details).ExecuteCommand(); scop.Complete(); } } } catch (Exception ex) { _unitOfWorkManage.RollbackTran(); //_messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "å建ççå ¥åºå", ex.Message); content.Error(ex.Message); throw ex; } return content; //return content; return content.OK($"ççå ¥åºåå建æå"); } #endregion /// <summary> /// äººå·¥å ¥åºå®æ /// </summary> н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs
@@ -354,9 +354,9 @@ List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>(); List<Dt_InventoryInfo> inventoryInfosUp = new List<Dt_InventoryInfo>(); List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>(); List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)); var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)); var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.å ¥åºå®æ.ObjToInt() && x.AvailableQuantity > 0 && (x.WarehouseCode == WareCodeDJ || x.WarehouseCode == WareCodeLK)); List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)).ToList(); var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)).ToList(); var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.å ¥åºå®æ.ObjToInt() && x.AvailableQuantity > 0 && (x.WarehouseCode == WareCodeDJ || x.WarehouseCode == WareCodeLK)).ToList(); foreach (var detail in outorder.details) { #region æ¥è¯¢åºåæ¹æ¬¡ååºå @@ -1098,8 +1098,8 @@ 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)); 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(); foreach (var item in order.details) { @@ -1115,8 +1115,8 @@ //æ¾ææåºå 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 = inventoryLK.SupplyQuantity; var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault(); var LkQty = inventoryLK?.SupplyQuantity??0; //è·å大件åºçç¹å·®å¼æ° var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity); н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs
@@ -5,6 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Common; using WIDESEA_Core; using WIDESEA_Core.Helper; using WIDESEA_ISquareCabinServices; @@ -187,7 +188,8 @@ WebResponseContent content = new WebResponseContent(); try { var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder"; //var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder"; var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363009261"; 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 }; @@ -286,6 +288,10 @@ } #endregion #region è·åERPåºåºå static string SearchOutOrderDate = "2025-11-01 00:00:00"; public WebResponseContent GetOutOrder() н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_LogService.cs
@@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_ISystemService; @@ -14,6 +15,27 @@ { public Sys_LogService(IRepository<Sys_Log> BaseDal) : base(BaseDal) { } /// <summary> /// 宿¶å 餿¥å¿ /// </summary> /// <returns></returns> public WebResponseContent ScheduledDeletion() { WebResponseContent response = new WebResponseContent(); try { var deleteDate = DateTime.Now.AddDays(-7); // 7天åçæ¥æ var logs = BaseDal.QueryData(x => x.BeginDate < deleteDate).ToList(); var deleteCount = BaseDal.DeleteData(logs); } catch (Exception ex) { return response.Error(ex.Message ); } return response; } } }