| | |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_SquareCabinRepository; |
| | | using static WIDESEA_DTO.SquareCabin.OrderDto; |
| | | using static WIDESEA_DTO.SquareCabin.TowcsDto; |
| | | |
| | | |
| | | namespace WIDESEA_SquareCabinServices |
| | | { |
| | |
| | | { |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | static string SearchDate = ""; |
| | | |
| | | /// <summary> |
| | | /// è·å䏿¸¸åºåºå 0æå1失败 |
| | | /// </summary> |
| | | /// <param name="searchDate"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetUpstreamOutOrder(DateTime searchDate) |
| | | public WebResponseContent GetUpstreamOutOrder() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | //请æ±å°å |
| | | var url = "http:/127.0.0.1:9000/GYZ2/95fck/outOrder"; |
| | | //请æ±åæ° |
| | | var requestDate = new |
| | | { |
| | | searchDate = searchDate.ToString("yyyy-MM-dd:mm:ss") |
| | | }; |
| | | // 请æ±å°å |
| | | var url = "http://127.0.0.1:9000/GYZ2/95fck/outOrder"; |
| | | |
| | | //åèµ·è¯·æ± |
| | | var reslu = HttpHelper.Post(url, requestDate.ToJsonString()); |
| | | //ååºåå |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(reslu); |
| | | if (string.IsNullOrEmpty(SearchDate)) SearchDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | //// 请æ±åæ° |
| | | var requestData = new |
| | | { |
| | | searchDate = SearchDate |
| | | }; |
| | | SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss"); |
| | | // åèµ·è¯·æ± |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | |
| | | // ååºåå |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(result); |
| | | |
| | | if (response.resultCode != "0") |
| | | { |
| | | // è°ç¨å¼å¸¸æ¥å£ |
| | | SendErrorToUpstream(1, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | SendErrorToUpstream(3, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | { |
| | | return responseContent.OK("æ æ°å
¥åºåæ°æ®"); |
| | | return responseContent.OK("æ æ°åºåºåæ°æ®"); |
| | | } |
| | | |
| | | //å¼å¯äºå¡ |
| | | Db.Ado.BeginTran(); |
| | | |
| | | foreach (var outorder in response.data) |
| | | { |
| | | try |
| | | { |
| | | //æå
¥åºåºå |
| | | var OutOders = new Dt_DeliveryOrder |
| | | // æå
¥åºåºå |
| | | var entityOrder = new Dt_DeliveryOrder |
| | | { |
| | | Out_no = outorder.out_no, |
| | | Out_type = outorder.out_type, |
| | | Client_no=outorder.client_no, |
| | | Client_no = outorder.client_no, |
| | | Account_time = outorder.account_time, |
| | | OutStatus= "æªå®æ", |
| | | }; |
| | | var outorderId = Db.Insertable(outorder).ExecuteReturnIdentity();//è¿å主é®id |
| | | var outorderId = BaseDal.Db.Insertable(entityOrder).ExecuteReturnIdentity(); |
| | | |
| | | //æå
¥åºåºåæç» |
| | | var OutOrderDetails = outorder.details.Select(d => new Dt_DeliveryOrderDetail |
| | | // æå
¥åºåºåæç» |
| | | var detailEntities = outorder.details.Select(d => new Dt_DeliveryOrderDetail |
| | | { |
| | | DeliveryOrderId = outorderId, |
| | | Goods_no = d.goods_no, |
| | | Order_qty = d.out_qty, |
| | | Batch_num = d.batch_num, |
| | | Exp_date = d.exp_date |
| | | Exp_date = d.exp_date, |
| | | OotDetailStatus="æ°å»º" |
| | | }).ToList(); |
| | | Db.Insertable(OutOrderDetails).ExecuteCommand(); |
| | | BaseDal.Db.Insertable(detailEntities).ExecuteCommand(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | // éå¯¹ææ¡è®¢åæ¥éæ¶ï¼æ¨éå¼å¸¸ç»ä¸æ¸¸ |
| | | SendErrorToUpstream(3, outorder.out_no, ex.Message, ""); |
| | | throw; // æåºå¼å¸¸ï¼è®©å¤å±æè·åæ» |
| | | throw; // 让å¤å±æè·å¹¶åæ» |
| | | } |
| | | } |
| | | |
| | | Db.Ado.CommitTran(); |
| | | return responseContent.OK("忥å
¥åºåæå"); |
| | | return responseContent.OK("忥åºåºåæå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // å
¨å±å¼å¸¸æ¶ï¼ä¹æ¨éå¼å¸¸ç»ä¸æ¸¸ |
| | | SendErrorToUpstream(3, "", ex.Message, ""); |
| | | Db.Ado.RollbackTran(); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºåæ¨éç» WCS |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent EdiOut() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | // 1. æ¥è¯¢ç¬¦åæ¡ä»¶ç订åï¼è¡¨å¤´=æ°å»º && å
嫿ææç»ï¼ |
| | | var outOrders = BaseDal.Db.CopyNew().Queryable<Dt_DeliveryOrder>() |
| | | .Where(o => o.OutStatus == "æ°å»º") |
| | | .Includes(o => o.Details, d => d.MedicineGoods) |
| | | .ToList(); |
| | | |
| | | // 2. åè¿æ»¤æä¸ç¬¦åæ¡ä»¶çæç»ï¼åªä¿ç Status=0 ï¼ |
| | | foreach (var order in outOrders) |
| | | { |
| | | order.Details = order.Details.Where(d => d.Status == 0).ToList(); |
| | | } |
| | | |
| | | if (outOrders == null || !outOrders.Any()) |
| | | { |
| | | Console.WriteLine("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | return responseContent.Error("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | } |
| | | |
| | | foreach (var order in outOrders) |
| | | { |
| | | try |
| | | { |
| | | // 3. ç»è£
DTO |
| | | var ediDto = new TowcsDto.ToediOutInfo |
| | | { |
| | | customerCode = "905", |
| | | materialCode = "YY", |
| | | externalOrderNo = order.Out_no, |
| | | outOrderType = order.Out_type == "1" ? "10" : order.Out_type == "2" ? "20" : "30", |
| | | priority = 1, |
| | | Is_cancel = 0, |
| | | details = order.Details.Select(d => new TowcsDto.ToeOutdiInDetail |
| | | { |
| | | batchNo = d.Batch_num, |
| | | productCode = d.Goods_no, |
| | | productName = d.MedicineGoods?.Goods_spm, |
| | | productSpecifications = d.MedicineGoods?.Model, |
| | | quantity = (int)d.Order_qty, |
| | | //stocktakingDetails = order.Out_type == "3" |
| | | // ? new List<ToOutediInStock> |
| | | // { |
| | | // new ToOutediInStock { palletCode = "FC00001", quantity = d.Order_qty.ToString() } |
| | | // } |
| | | // : null |
| | | }).ToList() |
| | | }; |
| | | |
| | | // 4. è°ç¨æ¥å£ |
| | | var url = "http://172.16.1.2:9357/file-admin/api/out/ediOut"; |
| | | var result = HttpHelper.Post(url, ediDto.ToJsonString()); |
| | | var resp = JsonConvert.DeserializeObject<TowcsDto.TowcsResponse<object>>(result); |
| | | |
| | | if (resp != null && resp.code == "0") |
| | | { |
| | | // æ´æ°è¡¨å¤´ç¶æ |
| | | BaseDal.Db.Updateable<Dt_DeliveryOrder>() |
| | | .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "å¼å§" }) |
| | | .Where(o => o.Id == order.Id) |
| | | .ExecuteCommand(); |
| | | |
| | | // æ´æ°æç»ç¶æ |
| | | BaseDal.Db.Updateable<Dt_DeliveryOrderDetail>() |
| | | .SetColumns(d => new Dt_DeliveryOrderDetail { Status = 1,OotDetailStatus="已宿" }) |
| | | .Where(d => d.DeliveryOrderId == order.Id && d.Status == 0) |
| | | .ExecuteCommand(); |
| | | |
| | | Console.WriteLine($"订å {order.Out_no} æ¨éæå"); |
| | | } |
| | | else |
| | | { |
| | | SendErrorToUpstream(3, order.Out_no, resp?.msg ?? "WCS æ¨é失败", ""); |
| | | Console.WriteLine($"订å {order.Out_no} æ¨é失败ï¼{resp?.msg}"); |
| | | } |
| | | //å é¤å
¨é¨ç¶ä¸ºå·²å®æçæç»å表头ï¼ç§»å
¥åå²è¡¨ |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | SendErrorToUpstream(3, order.Out_no, ex.Message, ""); |
| | | Console.WriteLine($"订å {order.Out_no} æ¨éå¼å¸¸ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | return responseContent.OK("åºåºè®¢åæ¨é宿"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine("EdiOut å¼å¸¸ï¼" + ex.Message); |
| | | return responseContent.Error("åºåºè®¢åæ¨é失败ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | |
| | | SendErrorToUpstream(4, "", "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | //å
æ¥å¤´è¡¨ |
| | | var outOerd= BaseDal.Db.Queryable<Dt_DeliveryOrder>() |
| | | .Where(o => o.Out_no == out_no) |
| | | .First(); |
| | | if (outOerd == null) |
| | | { |
| | | return responseContent.Error($"æ²¡ææ¾å°è¯¥åºåºåå·{out_no}"); |
| | | } |
| | | //æ¥æ¾æææç»è¡¨æ¯å¦é½å·²å®æ |
| | | var incompleteDetails = BaseDal.Db.Queryable<Dt_DeliveryOrderDetail>() |
| | | .Where(d => d.DeliveryOrderId == outOerd.Id && d.OotDetailStatus == "已宿") |
| | | .ToList(); |
| | | // æ´æ°åºåºåç¶æ |
| | | BaseDal.Db.Updateable<Dt_DeliveryOrder>() |
| | | .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "已宿" }) |
| | | .Where(o => o.Out_no == out_no) |
| | | .ExecuteCommand(); |
| | | return responseContent.OK("æä½æå"); |
| | | } |
| | | |
| | |
| | | Console.WriteLine("å¼å¸¸æ¥å£æ¨é失败ï¼" + e.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |