| | |
| | | using HslCommunication; |
| | | using MailKit.Search; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.Data.SqlClient; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | | using System; |
| | |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Common.WareHouseEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_DTO.SquareCabin; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_ISquareCabinServices; |
| | | using WIDESEA_IWMsInfoServices; |
| | |
| | | { |
| | | public class CabinOrderServices : ServiceBase<Dt_CabinOrder, IRepository<Dt_CabinOrder>>, ICabinOrderServices |
| | | { |
| | | static string SearchDate = ""; |
| | | private readonly IBasicService _basicService; |
| | | private readonly IMedicineGoodsServices _medicineGoodsServices; |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly IInventory_BatchServices _inventory_BatchServices; |
| | | private readonly IInventoryInfoService _inventoryInfoService; |
| | | private readonly ICabinOrderDetailServices _cabinOrderDetailServices; |
| | | private readonly ISupplyTaskService _supplyTaskService; |
| | | private readonly ISupplyTaskHtyService _supplyTaskHtyService; |
| | | private readonly ILocationInfoService _locationInfoService; |
| | | private readonly IMaterielInfoService _materielInfoService; |
| | | private readonly IMessageInfoService _messageInfoService; |
| | | public IRepository<Dt_CabinOrder> Repository => BaseDal; |
| | | |
| | | public CabinOrderServices(IRepository<Dt_CabinOrder> BaseDal, IBasicService basicService, IMedicineGoodsServices medicineGoodsServices, IUnitOfWorkManage unitOfWorkManage, IInventory_BatchServices inventory_BatchServices, IInventoryInfoService inventoryInfoService, ICabinOrderDetailServices cabinOrderDetailServices, ICabinOrderHtyServices cabinOrderHtyServices, ICabinOrderDetailHtyServices cabinOrderDetailHtyServices, ISupplyTaskService supplyTaskService) : base(BaseDal) |
| | | public CabinOrderServices(IRepository<Dt_CabinOrder> BaseDal, IMedicineGoodsServices medicineGoodsServices, IUnitOfWorkManage unitOfWorkManage, IInventory_BatchServices inventory_BatchServices, IInventoryInfoService inventoryInfoService, ICabinOrderDetailServices cabinOrderDetailServices, ICabinOrderHtyServices cabinOrderHtyServices, ICabinOrderDetailHtyServices cabinOrderDetailHtyServices, ISupplyTaskService supplyTaskService, ISupplyTaskHtyService supplyTaskHtyService, IMessageInfoService messageInfoService, IMaterielInfoService materielInfoService, ILocationInfoService locationInfoService) : base(BaseDal) |
| | | { |
| | | _basicService = basicService; |
| | | _medicineGoodsServices = medicineGoodsServices; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _inventory_BatchServices = inventory_BatchServices; |
| | | _inventoryInfoService = inventoryInfoService; |
| | | _cabinOrderDetailServices = cabinOrderDetailServices; |
| | | _supplyTaskService = supplyTaskService; |
| | | _supplyTaskHtyService = supplyTaskHtyService; |
| | | _messageInfoService = messageInfoService; |
| | | _materielInfoService = materielInfoService; |
| | | _locationInfoService = locationInfoService; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// pdaæ¥è¯¢å
¥åºåä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="saveModel"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetCabinOrders(SaveModel saveModel) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// pdaæ¥çå
¥åºè¯¦æ
表 |
| | | /// </summary> |
| | | /// <param name="pageNo"></param> |
| | | /// <param name="orderNo"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetCabinOrderDetail(int pageNo, string orderNo) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Includes(x => x.Details).First(x => x.Order_no == orderNo); |
| | | List<Dt_CabinOrderDetail> cabinOrderDetails = cabinOrder.Details.Where(x => x.Reservoirarea == pageNo.ToString()).ToList(); |
| | | List<Dt_CabinOrderDetail> cabinOrderDetails = cabinOrder.Details.Where(x => x.Status == 2 && x.OrderDetailStatus != "已宿").ToList(); |
| | | content.OK(data: cabinOrderDetails); |
| | | return content; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// Padå
¥åºå®æ |
| | | /// </summary> |
| | | /// <param name="saveModel"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent FeedbackIn([FromBody] SaveModel saveModel) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | var LocationCode = saveModel.MainData["LocationCode"].ToString(); |
| | | var orderNo = saveModel.MainData["orderNo"].ToString(); |
| | | var batchNo = saveModel.MainData["batchNo"].ToString(); |
| | | var materielCode = saveModel.MainData["materielCode"].ToString(); |
| | | var Inqty = saveModel.MainData["Inqty"].ObjToInt(); |
| | | var warehouseCode = saveModel.MainData["warehouseCode"].ToString(); |
| | | Dt_CabinOrder cabinOrder = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == orderNo && x.Warehouse_no == warehouseCode).Includes(x => x.Details).First(); |
| | | if (cabinOrder == null) return WebResponseContent.Instance.Error($"å
¥åºå已宿"); |
| | | Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Batch_num == batchNo && x.Reservoirarea == warehouseCode).First(); |
| | | if (cabinOrderDetail == null) return WebResponseContent.Instance.Error($"å
¥åºåæç»å·²å®æ"); |
| | | Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == cabinOrderDetail.Goods_no); |
| | | if (cabinOrder == null || cabinOrder.OdrderStatus == "已宿") |
| | | return WebResponseContent.Instance.Error($"å
¥åºå已宿"); |
| | | Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Goods_no == materielCode && x.Batch_num == batchNo && x.Status == 2).FirstOrDefault(); |
| | | if (cabinOrderDetail == null || cabinOrderDetail.OrderDetailStatus == "已宿") |
| | | return WebResponseContent.Instance.Error($"å
¥åºåæç»å·²å®æ"); |
| | | Dt_MaterielInfo materielInfo = _materielInfoService.Repository.QueryFirst(x => x.MaterielCode == cabinOrderDetail.Goods_no); |
| | | if (materielInfo == null) return WebResponseContent.Instance.Error($"请维æ¤ç©æç¼å·ã{cabinOrderDetail.Goods_no}ãçç©æä¿¡æ¯"); |
| | | cabinOrderDetail.Order_Inqty += Inqty; |
| | | if (cabinOrderDetail.Order_Inqty > cabinOrderDetail.Order_qty) |
| | |
| | | if (cabinOrderDetail.Order_Inqty == cabinOrderDetail.Order_qty) |
| | | { |
| | | cabinOrderDetail.OrderDetailStatus = "已宿"; |
| | | _cabinOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetail, OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | else |
| | | { |
| | | _cabinOrderDetailServices.Repository.UpdateData(cabinOrderDetail); |
| | | } |
| | | var cabinOrder1 = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == cabinOrder.Order_no).Includes(x => x.Details).First(); |
| | | if (cabinOrder1.Details == null || cabinOrder1.Details.Count < 1) cabinOrder.OdrderStatus = "已宿"; |
| | | _cabinOrderDetailServices.Repository.UpdateData(cabinOrderDetail); |
| | | var cabinOrder1 = BaseDal.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == cabinOrder.Order_no && x.Warehouse_no == warehouseCode).Includes(x => x.Details).First(); |
| | | if (!cabinOrder1.Details.Where(x => x.OrderDetailStatus != "已宿").Any()) cabinOrder.OdrderStatus = "已宿"; |
| | | Repository.UpdateData(cabinOrder); |
| | | #endregion |
| | | |
| | | #region è´§ä½ |
| | | var location = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode); |
| | | var location = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode); |
| | | if (location == null) return WebResponseContent.Instance.Error($"请维æ¤è´§ä½ç¼å·ã{LocationCode}ãçè´§ä½ä¿¡æ¯"); |
| | | if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt()) |
| | | return WebResponseContent.Instance.Error($"è´§ä½ç¼å·ã{LocationCode}ãå·²ç¦ç¨ï¼è¯·æ¢å¤æ£å¸¸å使ç¨"); |
| | | if (location.LocationStatus != LocationStatusEnum.InStock.ObjToInt()) |
| | | if (location.WarehouseCode != cabinOrderDetail.Reservoirarea) |
| | | return WebResponseContent.Instance.Error($"è´§ä½ç¼å·ã{LocationCode}ãæå±åºæ¿ä¸å½åå
¥åºåæå±åºæ¿ä¸å¹é
"); |
| | | if (location.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | | { |
| | | location.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | _basicService.LocationInfoService.UpdateData(location); |
| | | _locationInfoService.UpdateData(location); |
| | | } |
| | | #endregion |
| | | |
| | |
| | | if (inventoryInfo != null) |
| | | { |
| | | inventoryInfo.StockQuantity += Inqty; |
| | | inventoryInfo.AvailableQuantity += Inqty; |
| | | inventoryInfo.InDate = DateTime.Now; |
| | | _inventoryInfoService.UpdateData(inventoryInfo); |
| | | } |
| | | else |
| | |
| | | MaterielSpec = materielInfo.MaterielSpec, |
| | | OutboundQuantity = 0, |
| | | StockQuantity = Inqty, |
| | | AvailableQuantity = Inqty, |
| | | StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(), |
| | | ValidityPeriod = cabinOrderDetail.Exp_date, |
| | | WarehouseCode = cabinOrderDetail.Reservoirarea, |
| | |
| | | Creater = App.User.UserName, |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | switch (inventoryInfo.WarehouseCode) |
| | | { |
| | | case "001": |
| | | inventoryInfo.Remark = "æºè½ç«åº"; |
| | | break; |
| | | case "002": |
| | | inventoryInfo.Remark = "大件åº"; |
| | | break; |
| | | case "003": |
| | | inventoryInfo.Remark = "麻精åº"; |
| | | break; |
| | | case "010": |
| | | inventoryInfo.Remark = "å·å»åº"; |
| | | break; |
| | | } |
| | | _inventoryInfoService.AddData(inventoryInfo); |
| | | } |
| | | #endregion |
| | | |
| | | #region ä»»å¡è®°å½ |
| | | Dt_SupplyTask supplyTask = new Dt_SupplyTask() |
| | | #region MyRegion |
| | | //Dt_SupplyTask supplyTask = new Dt_SupplyTask() |
| | | //{ |
| | | // WarehouseCode = cabinOrderDetail.Reservoirarea, |
| | | // TaskNum = cabinOrderDetail.Id, |
| | | // TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(), |
| | | // BatchNo = inventoryInfo.BatchNo, |
| | | // MaterielName = inventoryInfo.MaterielName, |
| | | // MaterielCode = inventoryInfo.MaterielCode, |
| | | // MaterielSpec = inventoryInfo.MaterielSpec, |
| | | // TaskType = TaskTypeEnum.InPick.ObjToInt(), |
| | | // CreateDate = DateTime.Now, |
| | | // Creater = App.User.UserName, |
| | | // LocationCode = location.LocationCode, |
| | | // OrderNo = cabinOrder.Order_no, |
| | | // StockQuantity = Inqty, |
| | | // SupplyQuantity = 0, |
| | | // Remark = "å
¥åº" |
| | | //}; |
| | | //_supplyTaskService.AddData(supplyTask); |
| | | #endregion |
| | | Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() |
| | | { |
| | | WarehouseCode = cabinOrderDetail.Reservoirarea, |
| | | BatchNo=inventoryInfo.BatchNo, |
| | | MaterielName= inventoryInfo.MaterielName, |
| | | MaterielCode= inventoryInfo.MaterielCode, |
| | | MaterielSpec= inventoryInfo.MaterielSpec, |
| | | TaskType=TaskTypeEnum.InPick.ObjToInt(), |
| | | TaskNum = cabinOrderDetail.Id, |
| | | OperateType = OperateTypeEnum.äººå·¥å®æ.ToString(), |
| | | InsertTime = DateTime.Now, |
| | | TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(), |
| | | BatchNo = inventoryInfo.BatchNo, |
| | | MaterielName = inventoryInfo.MaterielName, |
| | | MaterielCode = inventoryInfo.MaterielCode, |
| | | MaterielSpec = inventoryInfo.MaterielSpec, |
| | | TaskType = cabinOrder.Order_type == "1" ? TaskTypeEnum.In.ObjToInt() : TaskTypeEnum.OutReturn.ObjToInt(), |
| | | CreateDate = DateTime.Now, |
| | | Creater = App.User.UserName, |
| | | LocationCode = location.LocationCode, |
| | |
| | | SupplyQuantity = 0, |
| | | Remark = "å
¥åº" |
| | | }; |
| | | _supplyTaskService.AddData(supplyTask); |
| | | _supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | #endregion |
| | | |
| | | #region åºåæ¹æ¬¡ |
| | |
| | | if (inventory_Batch != null) |
| | | { |
| | | inventory_Batch.StockQuantity += Inqty; |
| | | inventory_Batch.AvailableQuantity += Inqty; |
| | | _inventory_BatchServices.UpdateData(inventory_Batch); |
| | | } |
| | | else |
| | |
| | | ProductionDate = inventoryInfo.ProductionDate, |
| | | Status = false, |
| | | StockQuantity = inventoryInfo.StockQuantity, |
| | | ValidityPeriod = inventoryInfo.ValidityPeriod, |
| | | AvailableQuantity = inventoryInfo.StockQuantity, |
| | | ValidityPeriod = inventoryInfo.ValidityPeriod.ObjToDate(), |
| | | SupplyQuantity = inventoryInfo.SupplyQuantity, |
| | | }; |
| | | _inventory_BatchServices.AddData(inventory_Batch); |
| | |
| | | return content; |
| | | } |
| | | |
| | | |
| | | #region å建å
¥åºå |
| | | /// <summary> |
| | | /// è·å䏿¸¸ç³»ç»çå
¥åºå |
| | | /// å建å
¥åºå,è¿åä¸ä¸ªå
¥åºåéåå°data |
| | | /// </summary> |
| | | /// <param name="searchDate"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetUpstreamOrder() |
| | | public WebResponseContent CreateInboundOrder(UpstreamOrderInfo order) |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | WebResponseContent webResponseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | // 请æ±å°å |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder"; |
| | | //if (string.IsNullOrEmpty(SearchDate)) SearchDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | //// 请æ±åæ° |
| | | var requestData = new |
| | | string WareCodeMJ = WarehouseEnum.麻精åº.ObjToInt().ToString("000"); |
| | | string WareCodeLD = WarehouseEnum.å·å»åº.ObjToInt().ToString("000"); |
| | | List<Dt_CabinOrder> dt_CabinOrders = new List<Dt_CabinOrder>(); |
| | | #region ç¹æ®è¯åå
¥ç¹æ®åºæ¿ |
| | | if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD) |
| | | { |
| | | //searchDate = SearchDate |
| | | searchDate = "2022-10-10 20:45:16" // æ£ç¡®çæ ¼å¼ |
| | | }; |
| | | //SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss"); |
| | | // åèµ·è¯·æ± |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | |
| | | // ååºåå |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result); |
| | | |
| | | if (response.resultCode != "0") |
| | | { |
| | | // è°ç¨å¼å¸¸æ¥å£ |
| | | SendErrorToUpstream(1, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | { |
| | | return responseContent.OK("æ æ°å
¥åºåæ°æ®"); |
| | | } |
| | | // è·åææå·²åå¨çå
¥åºåå· |
| | | var existingOrderNos = BaseDal.Db.Queryable<Dt_CabinOrder>() |
| | | .Select(x => x.Order_no) |
| | | .ToList(); |
| | | |
| | | // è¿æ»¤æå·²åå¨çå
¥åºå |
| | | var newOrders = response.data |
| | | .Where(order => !existingOrderNos.Contains(order.order_no)) |
| | | .ToList(); |
| | | |
| | | if (!newOrders.Any()) |
| | | { |
| | | return responseContent.OK("ææå
¥åºåå·²åå¨ï¼æ éæ°å¢"); |
| | | } |
| | | |
| | | Db.Ado.BeginTran(); |
| | | try |
| | | { |
| | | List<Dt_CabinOrder> _CabinOrders = new List<Dt_CabinOrder>(); |
| | | //åå¨å
¥åºåå· |
| | | List<string> orderNos = new List<string>(); |
| | | |
| | | foreach (var order in newOrders) |
| | | var entityOrder = new Dt_CabinOrder |
| | | { |
| | | 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 |
| | | { |
| | | 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 = new List<Dt_CabinOrderDetail>() |
| | | //Details = order.details.Select(d => new Dt_CabinOrderDetail |
| | | //{ |
| | | // //OrderId è¦æ¿å°å
¥åºå表ä¸çidï¼å¦ä½æ¿ä¸å°å°±å°è¿ä¸ªå段æ¹äºï¼æ¹æå
¥åºåå· |
| | | // // SqlSugar InsertNavå·¥ä½åçå
æå
¥ä¸»è¡¨ (Dt_CabinOrder)//è·åçæç主é®ID//èªå¨è®¾ç½®å表çå
³èåæ®µ (OrderId)//åæå
¥(Dt_CabinOrderDetail) |
| | | // Goods_no = d.goods_no, |
| | | // Order_qty = d.order_qty, |
| | | // Batch_num = d.batch_num, |
| | | // Exp_date = d.exp_date, |
| | | // OrderDetailStatus = "æ°å»º", |
| | | // Status = order.warehouse_no == "001" ? 0 : 2, //妿æ¯001æ¿é£ä¹å°±æ¯æªåæ¥ç¶æï¼å¦æä¸æ¯001æ¿é£ä¹å°±æ¯æ éåæ¥ç¶æ |
| | | //}).ToList() |
| | | }; |
| | | foreach (var item in order.details) |
| | | Reservoirarea = order.warehouse_no, |
| | | Goods_no = d.goods_no, |
| | | Order_qty = Math.Abs(d.order_qty), |
| | | Batch_num = d.batch_num, |
| | | Exp_date = d.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 2, //妿æ¯001æ¿é£ä¹å°±æ¯æªåæ¥ç¶æï¼å¦æä¸æ¯001æ¿é£ä¹å°±æ¯æ éåæ¥ç¶æ |
| | | }).ToList() |
| | | }; |
| | | dt_CabinOrders.Add(entityOrder); |
| | | webResponseContent.OK(data: dt_CabinOrders); |
| | | } |
| | | #endregion |
| | | else |
| | | { |
| | | 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 = WarehouseEnum.大件åº.ObjToInt().ToString("000"), |
| | | Details = new List<Dt_CabinOrderDetail>() |
| | | }; |
| | | var entityOrderLK = 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 = WarehouseEnum.ç«åº.ObjToInt().ToString("000"), |
| | | Details = new List<Dt_CabinOrderDetail>() |
| | | }; |
| | | foreach (var item in order.details) |
| | | { |
| | | // å°ä¸æ¸¸å
¥åºæ°éè½¬ä¸ºæ£æ° |
| | | item.order_qty = Math.Abs(item.order_qty); |
| | | #region æ ¹æ®ç©æç¼ç æ¥è¯¢ç©æä¿¡æ¯ |
| | | Dt_MaterielInfo materielInfo = _materielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no); |
| | | if (materielInfo == null) throw new Exception($"æªæ¾å°è¯åç¼ç ã{item.goods_no}ãçä¿¡æ¯"); |
| | | if (!Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType)) |
| | | throw new Exception($"请设置è¯åç¼å·ã{item.goods_no}ãç屿§åç±»"); |
| | | #endregion |
| | | #region 大件 |
| | | if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart)//å¦æç©ææ¯å¤§ä»¶ |
| | | { |
| | | // å°ä¸æ¸¸å
¥åºæ°éè½¬ä¸ºæ£æ° |
| | | item.order_qty = Math.Abs(item.order_qty); |
| | | #region æ ¹æ®ç©æç¼ç æ¥è¯¢ç©æä¿¡æ¯ |
| | | //Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no); |
| | | Dt_MedicineGoods materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>().Where(x => x.Goods_no == item.goods_no).First(); |
| | | ///æ ¹æ®ç©æä¿¡æ¯å¤§å°ä»¶å±æ§åºåæ¯å¦å
¥ç«åº //大件å
¥å¹³åº |
| | | if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart) |
| | | Dt_CabinOrderDetail orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Dt_CabinOrderDetail orderDetail = new Dt_CabinOrderDetail() |
| | | Reservoirarea = entityOrder.Warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = item.order_qty, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 2 |
| | | }; |
| | | entityOrder.Details.Add(orderDetail); |
| | | } |
| | | #endregion |
| | | else |
| | | { |
| | | if (materielInfo.BoxQty < 1) throw new Exception($"请设置è¯åç¼å·ã{item.goods_no}ãçç®±è§æ°é"); |
| | | if (materielInfo.MinQty < 1) throw new Exception($"请设置è¯åç¼å·ã{item.goods_no}ãçç«åºæä½åºåæ°"); |
| | | Dt_CabinOrderDetail orderDetail = null; |
| | | var ys = item.order_qty % materielInfo.BoxQty; //ä¸è½æ´é¤ç®±è§çæ£ä»¶æ° |
| | | var xs = (int)(item.order_qty / materielInfo.BoxQty);//ä¿çæ´æ° |
| | | #region 夿æ¯å¦ææ£ä»¶ |
| | | if (ys > 0) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Reservoirarea = order.warehouse_no, |
| | | Reservoirarea = entityOrderLK.Warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = item.order_qty, |
| | | Order_qty = ys, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 0 |
| | | }; |
| | | materielInfo.Business_qty += ys; |
| | | } |
| | | #endregion |
| | | |
| | | #region 夿ç«åºåºåæ¯å¦å¤§äºç«åºæä½åºåæ° |
| | | while (materielInfo.Business_qty < materielInfo.MinQty && xs > 0) //å½ä¸å¡æ°éåæ´ç®±æ°é½å¤§äº0çæ¶åæä¼åæ¢å¾ªç¯ |
| | | { |
| | | xs--; |
| | | if (orderDetail == null) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Reservoirarea = entityOrderLK.Warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = materielInfo.BoxQty, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 0 |
| | | }; |
| | | materielInfo.Business_qty += materielInfo.BoxQty; |
| | | } |
| | | else |
| | | { |
| | | orderDetail.Order_qty += materielInfo.BoxQty; |
| | | materielInfo.Business_qty += materielInfo.BoxQty; |
| | | } |
| | | } |
| | | |
| | | if (orderDetail != null) entityOrderLK.Details.Add(orderDetail); |
| | | #endregion |
| | | |
| | | #region å©ä½æ´ä»¶å
¥å¹³åº |
| | | if (xs > 0) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Reservoirarea = entityOrder.Warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = materielInfo.BoxQty * xs, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | |
| | | }; |
| | | entityOrder.Details.Add(orderDetail); |
| | | } |
| | | else |
| | | { |
| | | Dt_CabinOrderDetail orderDetail = null; |
| | | var ys = item.order_qty % materielInfo.BoxQty; //ä¸è½æ´é¤ç®±è§çæ£ä»¶æ° |
| | | var xs = item.order_qty / materielInfo.BoxQty;//æ´ç®±æ°é |
| | | #region çæç«åºå
¥åºå |
| | | |
| | | #region 夿æ¯å¦ææ£ä»¶ |
| | | if (ys > 0) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Reservoirarea = order.warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = ys, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 0 |
| | | }; |
| | | materielInfo.Business_qty += ys; |
| | | } |
| | | #endregion |
| | | |
| | | #region 夿ç«åºåºåæ¯å¦å¤§äºç«åºæä½åºåæ° |
| | | while (materielInfo.Business_qty < materielInfo.MinQty && xs > 0) |
| | | { |
| | | xs--; |
| | | if (orderDetail == null) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Reservoirarea = order.warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = materielInfo.BoxQty, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 0 |
| | | }; |
| | | materielInfo.Business_qty += materielInfo.BoxQty; |
| | | } |
| | | else |
| | | { |
| | | orderDetail.Order_qty += materielInfo.BoxQty; |
| | | materielInfo.Business_qty += materielInfo.BoxQty; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | if (orderDetail != null) entityOrder.Details.Add(orderDetail); |
| | | #endregion |
| | | |
| | | #region å©ä½æ´ä»¶å
¥å¹³åº |
| | | if (xs > 0) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Reservoirarea = order.warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = materielInfo.BoxQty * xs, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 2 |
| | | }; |
| | | entityOrder.Details.Add(orderDetail); |
| | | } |
| | | #endregion |
| | | } |
| | | //_basicService.MaterielInfoService.Repository.UpdateData(materielInfo); |
| | | _medicineGoodsServices.Db.Updateable(materielInfo).ExecuteCommand(); |
| | | #endregion |
| | | } |
| | | _CabinOrders.Add(entityOrder); |
| | | orderNos.Add(order.order_no); |
| | | }; |
| | | BaseDal.Db.InsertNav(_CabinOrders).Include(x => x.Details).ExecuteCommand(); |
| | | |
| | | //å¨ä¸åç»wcs |
| | | //var reslut= EdiIn(); //åç»ä¸æ¸¸ |
| | | //妿è¿ä¸ªæ¹æ³æåäºï¼é£ä¹å°±è°ç¨CompleteOrderæ¥å£ï¼ç¶åæ¹å |
| | | Db.Ado.CommitTran(); |
| | | return responseContent.OK("忥å
¥åºåæå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Db.Ado.RollbackTran(); |
| | | SendErrorToUpstream(1, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | _materielInfoService.UpdateData(materielInfo); |
| | | } |
| | | if (entityOrder.Details.Count > 0) dt_CabinOrders.Add(entityOrder); |
| | | if (entityOrderLK.Details.Count > 0) dt_CabinOrders.Add(entityOrderLK); |
| | | webResponseContent.OK(data: dt_CabinOrders); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // å
¨å±å¼å¸¸æ¶ï¼ä¹æ¨éå¼å¸¸ç»ä¸æ¸¸ |
| | | SendErrorToUpstream(1, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | webResponseContent.Error(ex.Message); |
| | | } |
| | | return webResponseContent; |
| | | } |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 对没æè¿è¡ç»´æ¤ååä¿¡æ¯è¡¨çå
¥åºåè¿è¡è¿æ»¤å¤ç |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetUpstreamOrder2() |
| | | #region å建ççå
¥åºå |
| | | public WebResponseContent CreateCheckInOrder(UpstreamOrderInfo order) |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | // 请æ±å°å |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder"; |
| | | //if (string.IsNullOrEmpty(SearchDate)) SearchDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | //// 请æ±åæ° |
| | | var requestData = new |
| | | _unitOfWorkManage.BeginTran(); |
| | | string WareCodeMJ = WarehouseEnum.麻精åº.ObjToInt().ToString("000"); |
| | | string WareCodeLD = WarehouseEnum.å·å»åº.ObjToInt().ToString("000"); |
| | | #region ç¹æ®åºæ¿ |
| | | if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD) |
| | | { |
| | | //searchDate = SearchDate |
| | | searchDate = "2020-10-10 20:45:16" // æ£ç¡®çæ ¼å¼ |
| | | }; |
| | | //SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result); |
| | | |
| | | if (response.resultCode != "0") |
| | | { |
| | | SendErrorToUpstream(1, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | return responseContent.OK("æ æ°å
¥åºåæ°æ®"); |
| | | |
| | | var existingOrderNos = BaseDal.Db.Queryable<Dt_CabinOrder>() |
| | | .Select(x => x.Order_no) |
| | | .ToList(); |
| | | |
| | | var newOrders = response.data |
| | | .Where(order => !existingOrderNos.Contains(order.order_no)) |
| | | .ToList(); |
| | | |
| | | if (!newOrders.Any()) |
| | | return responseContent.OK("ææå
¥åºåå·²åå¨ï¼æ éæ°å¢"); |
| | | |
| | | Db.Ado.BeginTran(); |
| | | try |
| | | { |
| | | List<Dt_CabinOrder> _CabinOrders = new(); |
| | | List<string> orderNos = new(); |
| | | |
| | | foreach (var order in newOrders) |
| | | #region åºåãåºåæ¹æ¬¡å¹³è´¦ |
| | | foreach (var item in order.details) |
| | | { |
| | | bool skipOrder = false; // æ è®°æ¯å¦è·³è¿è¯¥å
¥åºå |
| | | var entityOrder = new Dt_CabinOrder |
| | | //æ¾åºåæ¹æ¬¡ä¿¡æ¯ |
| | | Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num); |
| | | var Qty = Math.Abs(inventory_Batch.StockQuantity - inventory_Batch.SupplyQuantity); |
| | | if (Qty != item.order_qty) throw new Exception($"ççå
¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); |
| | | //æ¾ææåºå |
| | | List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo); |
| | | foreach (var inventoryInfo in inventoryInfos) |
| | | { |
| | | 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 = new List<Dt_CabinOrderDetail>() |
| | | }; |
| | | |
| | | foreach (var item in order.details) |
| | | { |
| | | item.order_qty = Math.Abs(item.order_qty); |
| | | |
| | | // æ¥è¯¢ç©æä¿¡æ¯ |
| | | var materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>() |
| | | .Where(x => x.Goods_no == item.goods_no) |
| | | .First(); |
| | | |
| | | |
| | | //å¦æç©æä¿¡æ¯ä¸åå¨ï¼è·³è¿æ´ä¸ªå
¥åºå |
| | | if (materielInfo == null) |
| | | #region æ·»å ççå
¥åºä»»å¡ |
| | | if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) |
| | | { |
| | | skipOrder = true; |
| | | Console.WriteLine($"è·³è¿å
¥åºå {order.order_no}ï¼åå ï¼æªæ¾å°åå [{item.goods_no}] çç©æä¿¡æ¯ã"); |
| | | break; |
| | | } |
| | | |
| | | // è¥ç©æä¸å卿 MaterielSourceType 为空ï¼åè·³è¿æ´ä¸ªå
¥åºå |
| | | if (materielInfo == null || !Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType)) |
| | | { |
| | | skipOrder = true; |
| | | break; |
| | | } |
| | | |
| | | // åºå大件/å°ä»¶ |
| | | if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart) |
| | | { |
| | | var detail = new Dt_CabinOrderDetail |
| | | Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() |
| | | { |
| | | Reservoirarea = order.warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = item.order_qty, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 2 |
| | | 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.StockQuantity - inventoryInfo.SupplyQuantity), |
| | | SupplyQuantity = 0, |
| | | Remark = "ççå
¥åº" |
| | | }; |
| | | entityOrder.Details.Add(detail); |
| | | _supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | } |
| | | else |
| | | { |
| | | Dt_CabinOrderDetail orderDetail = null; |
| | | var ys = item.order_qty % materielInfo.BoxQty; // ä¸è½æ´é¤çæ£ä»¶ |
| | | var xs = item.order_qty / materielInfo.BoxQty; // æ´ç®±æ°é |
| | | |
| | | // ææ£ä»¶ |
| | | if (ys > 0) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail |
| | | { |
| | | Reservoirarea = order.warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = ys, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 0 |
| | | }; |
| | | materielInfo.Business_qty += ys; |
| | | } |
| | | |
| | | // ä¸è¶³æä½åºåæ¶è¡¥å
¥ç«åº |
| | | while (materielInfo.Business_qty < materielInfo.MinQty && xs > 0) |
| | | { |
| | | xs--; |
| | | if (orderDetail == null) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail |
| | | { |
| | | Reservoirarea = order.warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = materielInfo.BoxQty, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 0 |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | orderDetail.Order_qty += materielInfo.BoxQty; |
| | | } |
| | | materielInfo.Business_qty += materielInfo.BoxQty; |
| | | } |
| | | |
| | | if (orderDetail != null) entityOrder.Details.Add(orderDetail); |
| | | |
| | | // å©ä½æ´ç®±å
¥å¹³åº |
| | | if (xs > 0) |
| | | { |
| | | entityOrder.Details.Add(new Dt_CabinOrderDetail |
| | | { |
| | | Reservoirarea = order.warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = materielInfo.BoxQty * xs, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 2 |
| | | }); |
| | | } |
| | | } |
| | | |
| | | _medicineGoodsServices.Db.Updateable(materielInfo).ExecuteCommand(); |
| | | #endregion |
| | | inventoryInfo.StockQuantity = inventoryInfo.SupplyQuantity; |
| | | inventoryInfo.SupplyQuantity = 0; |
| | | inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | } |
| | | inventory_Batch.StockQuantity = inventory_Batch.SupplyQuantity; |
| | | inventory_Batch.SupplyQuantity = 0; |
| | | _inventoryInfoService.UpdateData(inventoryInfos); |
| | | _inventory_BatchServices.UpdateData(inventory_Batch); |
| | | } |
| | | #endregion |
| | | |
| | | // âå¦æè·³è¿è¯¥åï¼åç´æ¥continueï¼ä¸ä¿å |
| | | if (skipOrder) |
| | | #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 |
| | | { |
| | | Console.WriteLine($"è·³è¿å
¥åºå {order.order_no}ï¼å 为å卿ªå®ä¹ç©æå±æ§çååã"); |
| | | continue; |
| | | } |
| | | |
| | | _CabinOrders.Add(entityOrder); |
| | | orderNos.Add(order.order_no); |
| | | } |
| | | |
| | | if (_CabinOrders.Any()) |
| | | { |
| | | BaseDal.Db.InsertNav(_CabinOrders).Include(x => x.Details).ExecuteCommand(); |
| | | Db.Ado.CommitTran(); |
| | | return responseContent.OK($"æå忥 {_CabinOrders.Count} æ¡å
¥åºå"); |
| | | } |
| | | else |
| | | { |
| | | Db.Ado.RollbackTran(); |
| | | return responseContent.OK("æ å¯å¤ççå
¥åºåï¼åå屿§æªå®ä¹ææªæ¾å°ï¼"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Db.Ado.RollbackTran(); |
| | | SendErrorToUpstream(1, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | SendErrorToUpstream(1, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¼ ç»wcs |
| | | /// </summary> |
| | | public WebResponseContent EdiIn() |
| | | { |
| | | try |
| | | { |
| | | //2.æ¥è¯¢ç¬¦åæ¡ä»¶ç订åï¼è¡¨å¤´ = æ°å»º && å
嫿ææç»ï¼ |
| | | //var orders = BaseDal.Db.Queryable<Dt_CabinOrder>() |
| | | // .Where(o => o.OdrderStatus == "æ°å»º") |
| | | // .Includes(o => o.Details, d => d.MedicineGoods) |
| | | // .ToList(); |
| | | //æ¥åºå
å«å
¨é¨çå
¥åºåï¼å
å«å
¨é¨æç»+ä¸ä¸ªæç»å¯¹åºä¸ä¸ªåå |
| | | var orders = BaseDal.Db.CopyNew() |
| | | .Queryable<Dt_CabinOrder>() |
| | | .Where(o => o.OdrderStatus == "æ°å»º") |
| | | .Includes(o => o.Details, d => d.MedicineGoods) |
| | | .ToList(); |
| | | // 3. åè¿æ»¤æä¸ç¬¦åæ¡ä»¶çæç»ï¼åªä¿ç Status=0ï¼ |
| | | foreach (var order in orders) |
| | | { |
| | | order.Details = order.Details.Where(d => d.Status == 0).ToList(); |
| | | } |
| | | |
| | | if (orders == null || !orders.Any()) |
| | | { |
| | | Console.WriteLine("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | return WebResponseContent.Instance.Error("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | } |
| | | |
| | | |
| | | // 4. éå订åï¼ç»è£
DTO å¹¶æ¨é |
| | | foreach (var order in orders) |
| | | { |
| | | string materialCode = "YY";//é»è®¤å¼ |
| | | //è·åå½å订åç第ä¸ä¸ªæç»é¡¹ |
| | | var firstDetail = order.Details.FirstOrDefault(); |
| | | if (firstDetail?.MedicineGoods != null && !string.IsNullOrEmpty(firstDetail.MedicineGoods.MaterialCode)) |
| | | { |
| | | //妿æ¡ä»¶æ»¡è¶³ï¼å°ç©æä»£ç 设置为第ä¸ä¸ªæç»é¡¹å¯¹åºçè¯åç©æä»£ç |
| | | materialCode = firstDetail.MedicineGoods.MaterialCode; |
| | | } |
| | | |
| | | var ediDto = new ToediInInfo |
| | | { |
| | | |
| | | //客æ·ä»£ç |
| | | customerCode = "905", |
| | | //ç©æç±»å |
| | | materialCode = materialCode, |
| | | //å
¥åºåå· |
| | | externalOrderNo = order.Order_no, |
| | | //å
¥åºåç±»å |
| | | inOrderType = order.Order_type == "1" ? "10" : "20", |
| | | //ä¼å
级 |
| | | priority = 0, |
| | | //æ¯å¦åæ¶ |
| | | Is_cancel = 0, |
| | | details = order.Details.Select(d => new ToediInDetail |
| | | { |
| | | //æ¹å· |
| | | batchNo = d.Batch_num, |
| | | //产å |
| | | productCode = d.Goods_no, |
| | | //skuåç§° |
| | | productName = d.MedicineGoods?.Goods_spm, |
| | | //skuè§æ ¼ |
| | | productSpecifications = d.MedicineGoods?.Model, |
| | | //æ°é |
| | | quantity = (int)d.Order_qty, |
| | | //ææ |
| | | validityPeriod = d.Exp_date, |
| | | //ç产åå®¶ |
| | | manufacturer = d.MedicineGoods?.Factory, |
| | | //æ¿å· |
| | | libraryNo = order.Warehouse_no, |
| | | //ççå
¥åº |
| | | //stocktakingDetails = new List<ToediInStock>() |
| | | //stocktakingDetails = new List<ToediInStock>() |
| | | //{ |
| | | // new ToediInStock |
| | | // { |
| | | // //æç®±å· |
| | | // palletCode = "PDA001", |
| | | // //æ°é |
| | | // quantity = d.Order_qty.ToString() |
| | | // } |
| | | // } |
| | | 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() |
| | | }; |
| | | |
| | | var url = "http://172.16.1.2:9357/file-admin/api/in/ediIn"; |
| | | var result = HttpHelper.Post(url, ediDto.ToJsonString()); |
| | | var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); |
| | | |
| | | if (resp != null && resp.code == "0") |
| | | { |
| | | // æ´æ°è¡¨å¤´ç¶æ |
| | | BaseDal.Db.Updateable<Dt_CabinOrder>() |
| | | .SetColumns(o => new Dt_CabinOrder { OdrderStatus = "å¼å§" }) |
| | | .Where(o => o.Id == order.Id) |
| | | .ExecuteCommand(); |
| | | |
| | | // æ´æ°æç»ç¶æä¸ºå·²åæ¥ |
| | | BaseDal.Db.Updateable<Dt_CabinOrderDetail>() |
| | | .SetColumns(d => new Dt_CabinOrderDetail { Status = 1, OrderDetailStatus = "已宿" }) |
| | | .Where(d => d.OrderId == order.Id && d.Status == 0) |
| | | .ExecuteCommand(); |
| | | |
| | | Console.WriteLine($"订å {order.Order_no} æ¨éæå"); |
| | | } |
| | | else |
| | | { |
| | | SendErrorToUpstream(3, order.Order_no, resp?.msg ?? "WCS æ¨é失败", ""); |
| | | Console.WriteLine($"订å {order.Order_no} æ¨é失败ï¼{resp?.msg}"); |
| | | return new WebResponseContent { Status = false, Message = "è®¢åæ¨é失败" }; |
| | | } |
| | | Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); |
| | | //Repository.AddData(entityOrder); |
| | | #endregion |
| | | } |
| | | return new WebResponseContent { Status = true, Message = "æ¨éæå" }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | Console.WriteLine("EdiIn å¼å¸¸ï¼" + ex.Message); |
| | | return new WebResponseContent { Status = false, Message = ex.Message }; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å
¥åºæ¥å®ææ¥å£ |
| | | /// </summary> |
| | | /// <param name="order_no">å
¥åºåå·</param> //å
æ£æ¥æ¯å¦æææç»é½å·²å®æï¼å¦ææ¯ï¼é£ä¹æ´æ°è¡¨å¤´ç¶æä¸ºå·²å®æ |
| | | /// <returns></returns> |
| | | public WebResponseContent CompleteAllOrders() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | // æ¥æ¾ææâå¼å§âç¶æçå
¥åºå |
| | | var orders = BaseDal.Db.Queryable<Dt_CabinOrder>() |
| | | .Where(o => o.OdrderStatus == "å¼å§") |
| | | .ToList(); |
| | | |
| | | if (orders == null || !orders.Any()) |
| | | #endregion |
| | | else |
| | | { |
| | | return responseContent.OK("ææ éè¦å¤ççå
¥åºå"); |
| | | } |
| | | string WareCodeLK = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | string WareCodeDJ = WarehouseEnum.大件åº.ObjToInt().ToString("000"); |
| | | |
| | | int successCount = 0; |
| | | int failCount = 0; |
| | | |
| | | foreach (var order in orders) |
| | | { |
| | | try |
| | | foreach (var item in order.details) |
| | | { |
| | | BaseDal.Db.Ado.BeginTran(); |
| | | |
| | | // æ¥è¯¢è¯¥åçæç» |
| | | var details = BaseDal.Db.Queryable<Dt_CabinOrderDetail>() |
| | | .Where(d => d.OrderId == order.Id) |
| | | .ToList(); |
| | | |
| | | // 夿æ¯å¦å
¨é¨å®æ |
| | | var totalCount = details.Count; |
| | | var completedCount = details.Count(d => d.OrderDetailStatus == "已宿"); |
| | | |
| | | if (totalCount > 0 && completedCount == totalCount) |
| | | //æ¾åºåæ¹æ¬¡ä¿¡æ¯ |
| | | Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num); |
| | | var Qty = Math.Abs(inventory_Batch.StockQuantity - inventory_Batch.SupplyQuantity); |
| | | if (Qty != item.order_qty) throw new Exception($"ççå
¥åºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçççæ°éæè¯¯"); |
| | | //æ¾ææåºå |
| | | List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo); |
| | | //è·åç«åºçç¹å·®å¼æ° |
| | | var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First(); |
| | | var LkQty = Math.Abs(inventoryLK.StockQuantity - inventoryLK.SupplyQuantity); |
| | | //è·å大件åºçç¹å·®å¼æ° |
| | | var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); |
| | | var DJQty = Math.Abs(inventoryDJ.Sum(x => x.StockQuantity) - inventoryDJ.Sum(x => x.SupplyQuantity)); |
| | | if (LkQty + DJQty != Qty) throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯ççæ°éä¸ç¬¦"); |
| | | if (LkQty == 0)//ç«åºæ å·®å¼ |
| | | { |
| | | // æ´æ°è¡¨å¤´ç¶æ |
| | | order.OdrderStatus = "已宿"; |
| | | BaseDal.Db.Updateable(order).ExecuteCommand(); |
| | | |
| | | // è°ç¨ä¸æ¸¸æ¥å£ |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk"; |
| | | var result = HttpHelper.Post(url, new { order_no = order.Order_no }.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result); |
| | | |
| | | if (response.resultCode == "0") |
| | | #region åºåãåºåæ¹æ¬¡å¹³è´¦ |
| | | foreach (var inventoryInfo in inventoryInfos) |
| | | { |
| | | // === æ¥éª¤ 1ï¼æå
¥åå²è¡¨ === |
| | | |
| | | // 1.1 æå
¥è¡¨å¤´åå² |
| | | var orderHistory = new Dt_CabinOrder_Hty |
| | | #region æ·»å ççå
¥åºä»»å¡ |
| | | if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) |
| | | { |
| | | Id = order.Id, |
| | | Order_no = order.Order_no, |
| | | Order_type = order.Order_type, |
| | | Supplier_no = order.Supplier_no, |
| | | Supplier_name = order.Supplier_name, |
| | | Account_tiem = order.Account_tiem, |
| | | Warehouse_no = order.Warehouse_no, |
| | | OdrderStatus = order.OdrderStatus, |
| | | |
| | | }; |
| | | var historyId = BaseDal.Db.Insertable(orderHistory).ExecuteReturnIdentity(); |
| | | |
| | | // 1.2 æå
¥æç»åå² |
| | | var detailsHistory = details.Select(d => new Dt_CabinOrderDetail_Hty |
| | | { |
| | | Id = d.Id, |
| | | Reservoirarea = d.Reservoirarea, |
| | | Goods_no = d.Goods_no, |
| | | Order_qty = d.Order_qty, |
| | | Order_Inqty = d.Order_Inqty, |
| | | Batch_num = d.Batch_num, |
| | | Exp_date = d.Exp_date, |
| | | OrderDetailStatus = d.OrderDetailStatus, |
| | | Status = d.Status, |
| | | |
| | | }).ToList(); |
| | | |
| | | BaseDal.Db.Insertable(detailsHistory).ExecuteCommand(); |
| | | |
| | | // === æ¥éª¤ 2ï¼å é¤åå§è¡¨ === |
| | | BaseDal.Db.Deleteable<Dt_CabinOrderDetail>().Where(d => d.OrderId == order.Id).ExecuteCommand(); |
| | | BaseDal.Db.Deleteable<Dt_CabinOrder>().Where(o => o.Id == order.Id).ExecuteCommand(); |
| | | |
| | | // æäº¤äºå¡ |
| | | BaseDal.Db.Ado.CommitTran(); |
| | | successCount++; |
| | | 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.StockQuantity - inventoryInfo.SupplyQuantity), |
| | | SupplyQuantity = 0, |
| | | Remark = "ççå
¥åº" |
| | | }; |
| | | _supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | } |
| | | #endregion |
| | | inventoryInfo.StockQuantity = inventoryInfo.SupplyQuantity; |
| | | inventoryInfo.SupplyQuantity = 0; |
| | | inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | } |
| | | else |
| | | _inventoryInfoService.UpdateData(inventoryInfos); |
| | | inventory_Batch.StockQuantity = inventory_Batch.SupplyQuantity; |
| | | inventory_Batch.SupplyQuantity = 0; |
| | | _inventory_BatchServices.UpdateData(inventory_Batch); |
| | | #endregion |
| | | |
| | | #region å建大件åºçç¹å |
| | | var entityOrder = new Dt_CabinOrder |
| | | { |
| | | BaseDal.Db.Ado.RollbackTran(); |
| | | failCount++; |
| | | SendErrorToUpstream(2, "", $"䏿¸¸æ¥å£è¿å失败: {response.resultMsg}", order.Order_no); |
| | | } |
| | | 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(); |
| | | |
| | | #endregion |
| | | } |
| | | else |
| | | { |
| | | BaseDal.Db.Ado.RollbackTran(); |
| | | #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.StockQuantity - inventoryInfo.SupplyQuantity), |
| | | SupplyQuantity = 0, |
| | | Remark = "ççå
¥åº" |
| | | }; |
| | | _supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | } |
| | | #endregion |
| | | inventoryInfo.StockQuantity = inventoryInfo.SupplyQuantity; |
| | | inventoryInfo.SupplyQuantity = 0; |
| | | inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | } |
| | | _inventoryInfoService.UpdateData(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(); |
| | | |
| | | } |
| | | #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 = 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(); |
| | | #endregion |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | BaseDal.Db.Ado.RollbackTran(); |
| | | failCount++; |
| | | SendErrorToUpstream(1, "", ex.Message, order.Order_no); |
| | | } |
| | | } |
| | | |
| | | return responseContent.OK($"æ¹éå¤çå®æï¼æå {successCount} åï¼å¤±è´¥ {failCount} åã"); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return responseContent.Error("æ¹éå¤ç失败ï¼" + ex.Message); |
| | | _unitOfWorkManage.RollbackTran(); |
| | | //_messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "å建ççå
¥åºå", ex.Message); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¨éå¼å¸¸ä¿¡æ¯ç»ä¸æ¸¸ç³»ç»1.å
¥åºåæ¥å£ï¼2.å
¥åºåæ¥å®ææ¥å£ï¼3.åºåºåæ¥å£ï¼4.åºåºæ¥å®ææ¥å£ï¼5.è¯ååºç¡ä¿¡æ¯åæ¥æ¥å£ï¼6.ä¾åºåä¿¡æ¯æ¥å£ï¼7.客æ·ä¿¡æ¯æ¥å£ï¼8.åºå |
| | | /// 人工å
¥åºå®æ |
| | | /// </summary> |
| | | public void SendErrorToUpstream(int type, string code, string message, string remark) |
| | | /// <param name="key"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent FinishInOrder(int key) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/lexceptionLogog"; |
| | | Dt_CabinOrder cabinOrder = BaseDal.QueryFirst(x => x.Id == key); |
| | | List<Dt_CabinOrder> cabinOrders = Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == cabinOrder.Order_no).Includes(x => x.Details).ToList();//æ¾åºææåºåºåå·ç¸åçåºåºå |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | var requestData = new |
| | | foreach (var item in cabinOrders) |
| | | { |
| | | type = type.ToString(), |
| | | code = code, |
| | | message = message, |
| | | remark = remark |
| | | }; |
| | | if (item.Details != null) |
| | | _cabinOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.äººå·¥å®æ); |
| | | item.Modifier = App.User.UserName; |
| | | item.ModifyDate = DateTime.Now; |
| | | item.Details = null; |
| | | } |
| | | BaseDal.DeleteAndMoveIntoHty(cabinOrders, OperateTypeEnum.äººå·¥å®æ); |
| | | |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | // å¯ä»¥ååºååæ£æ¥ resultCode æ¯å¦ä¸º0 |
| | | if (cabinOrder.Order_type == InOrderTypeEnum.Allocat.ObjToInt().ToString()) |
| | | _unitOfWorkManage.CommitTran(); |
| | | else |
| | | { |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk"; |
| | | var requestDate = new |
| | | { |
| | | order_no = cabinOrder.Order_no |
| | | }; |
| | | var result = HttpHelper.Post(url, requestDate.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result); |
| | | if (response == null) throw new Exception("䏿¥ERPå
¥åºåå®æå¤±è´¥ï¼"); |
| | | if (response.resultCode != "0") throw new Exception(response.resultMsg); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | content.OK(); |
| | | } |
| | | catch (Exception e) |
| | | catch (Exception ex) |
| | | { |
| | | // è¿éä¸è¦åæå¼å¸¸äºï¼é¿å
æ»å¾ªç¯ |
| | | Console.WriteLine("å¼å¸¸æ¥å£æ¨é失败ï¼" + e.Message); |
| | | _unitOfWorkManage.RollbackTran(); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |