yanjinhui
9 天以前 4babfcfde8b26c755850e0066f1c07fac38e96a2
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs
@@ -15,6 +15,7 @@
using WIDESEA_DTO.SquareCabin;
using WIDESEA_Common;
using System.Xml.Linq;
using WIDESEA_Common.OrderEnum;
namespace WIDESEA_WMSServer
{
@@ -539,17 +540,32 @@
            var responseContent = new WebResponseContent();
            try
            {
                _unitOfWorkManage.BeginTran();
                #region æŸ¥æ‰¾æ‰€æœ‰å·²å®Œæˆå…¥åº“单
                var inorders = _cabinOrderServices.Repository.QueryData(x => x.OdrderStatus == "已完成").Select(x => x.Order_no).Distinct().ToList();
                foreach (var inorder in inorders)
                {
                    //var Orders = BaseDal.QueryData(x => x.Order_no == inorder);
                    var Orders = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == inorder).Includes(x => x.Details).ToList();
                    if (!Orders.Where(x => x.OdrderStatus != "已完成").Any())
                    {
                        _unitOfWorkManage.BeginTran();
                        if (Orders.FirstOrDefault().Order_type == InOrderTypeEnum.Allocat.ObjToInt().ToString())
                        {
                            foreach (var item in Orders)
                            {
                                if (item.Details != null)
                                    _cabinDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.自动完成);
                                item.Details = null;
                            }
                            _cabinOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.自动完成);
                        }
                        else
                        {
                        // è°ƒç”¨ä¸Šæ¸¸æŽ¥å£
                        var url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk";
                        var result = HttpHelper.Post(url, new { order_no = inorder }.ToJsonString());
                        var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
                        if (response.resultCode == "0")
@@ -562,16 +578,20 @@
                            }
                            _cabinOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.自动完成);
                            // æäº¤äº‹åŠ¡
                            _unitOfWorkManage.CommitTran();
                        }
                        else
                        {
                            _unitOfWorkManage.RollbackTran();
                                //_unitOfWorkManage.RollbackTran();
                            SendErrorToUpstream(2, "", $"上游接口返回失败: {response.resultMsg}", inorder);
                                continue;
                        }
                        }
                    }
                }
                #endregion
                _unitOfWorkManage.CommitTran();
                return responseContent.OK();
            }
            catch (Exception ex)
@@ -593,14 +613,17 @@
            var responseContent = new WebResponseContent();
            try
            {
                _unitOfWorkManage.BeginTran();
                #region æŸ¥æ‰¾æ‰€æœ‰å·²å®Œæˆå‡ºåº“单
                var outorders = _deliveryOrderServices.Repository.QueryData(x => x.OutStatus == "已完成").Select(x => x.Out_no).Distinct().ToList();
                foreach (var outorder in outorders)
                {
                    var Orders = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == outorder).Includes(x => x.Details).ToList();
                    if (!Orders.Where(x => x.OutStatus != "已完成").Any())
                    {
                        _unitOfWorkManage.BeginTran();
                        if (Orders.FirstOrDefault().Out_type == OutOrderTypeEnum.Allocate.ObjToInt().ToString())
                        {
                        foreach (var item in Orders)
                        {
                            if (item.Details != null)
@@ -608,6 +631,9 @@
                            item.Details = null;
                        }
                        _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.自动完成);
                        }
                        else
                        {
                        var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
                        var requestDate = new
                        {
@@ -615,16 +641,27 @@
                        };
                        var result = HttpHelper.Post(url, requestDate.ToJsonString());
                        var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
                        if (response.resultCode == "0") _unitOfWorkManage.CommitTran();
                            if (response.resultCode == "0")
                            {
                                foreach (var item in Orders)
                                {
                                    if (item.Details != null)
                                        _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.自动完成);
                                    item.Details = null;
                                }
                                _deliveryOrderServices.Repository.DeleteAndMoveIntoHty(Orders, OperateTypeEnum.自动完成);
                            }
                        else
                        {
                            _unitOfWorkManage.RollbackTran();
                                //_unitOfWorkManage.RollbackTran();
                            SendErrorToUpstream(4, "", $"上游接口返回失败: {response.resultMsg}", outorder);
                                continue;
                            }
                        }
                    }
                }
                #endregion
                _unitOfWorkManage.CommitTran();
                return responseContent.OK();
            }
            catch (Exception ex)