async Task <bool> UpdateSite(T_ORDER dbOrder)
        {
            try
            {
                List <SiteDetail> sd         = null;
                List <MQuerySite> lQuerySite = new List <MQuerySite>();
                MQuerySite        site       = null;
                site            = new MQuerySite();
                site.orderid    = dbOrder.ORDER_NO + "-send";
                site.address    = dbOrder.SENDER_PROVINCE + dbOrder.SENDER_CITY + dbOrder.SENDER_COUNTY + dbOrder.SENDER_ADDRESS;
                site.operSource = "OMS";
                if (!lQuerySite.Contains(site))
                {
                    lQuerySite.Add(site);
                }
                site            = new MQuerySite();
                site.orderid    = dbOrder.ORDER_NO + "-rec";
                site.address    = dbOrder.RECEIVER_PROVINCE + dbOrder.RECEIVER_CITY + dbOrder.RECEIVER_COUNTY + dbOrder.RECEIVER_ADDRESS;
                site.operSource = "OMS";
                if (!lQuerySite.Contains(site))
                {
                    lQuerySite.Add(site);
                }
                sd = AliHandler.GetSite(lQuerySite);
                SiteDetail          resultsite = null;
                T_NAVIGATE_DISTANCE distance;
                bool bdistance = false;//是否插入距离表,如果2端距离都没有则不插入
                if (sd != null && sd.Count > 0)
                {
                    distance          = new T_NAVIGATE_DISTANCE();
                    distance.MAIL_NO  = dbOrder.BILL_NO;
                    distance.ORDER_NO = dbOrder.ORDER_NO;
                    //distance.PICKUP_DISTANCE = "0";
                    //distance.SEND_DISTANCE = "0";
                    resultsite = sd.FirstOrDefault(p => p.orderid == dbOrder.ORDER_NO + "-send");
                    if (resultsite != null)
                    {
                        distance.PICKUP_DISTANCE = resultsite.distance;
                        //distance.PICKUP_DISTANCE = resultsite.distance == null ? "0" : resultsite.distance;
                        if (!string.IsNullOrEmpty(resultsite.bizAreaValue))
                        {
                            if (dbOrder.PICKUP_SITE != resultsite.bizAreaValue && !string.IsNullOrEmpty(distance.PICKUP_DISTANCE))//如果是修改订单,网点可能没做修改
                            {
                                bdistance = true;
                            }
                            dbOrder.PICKUP_SITE = resultsite.bizAreaValue;                             //取件网点编号
                            string sitename = await AppService.QuerySiteName(resultsite.bizAreaValue); //dbHelper.mapper.QueryForObject<string>("T_SITE_INFO.GetName", resultsite.bizAreaValue);

                            if (!string.IsNullOrEmpty(sitename))
                            {
                                if (dbOrder.ORDER_STATUS == 10)
                                {
                                    dbOrder.ORDER_STATUS = 20;
                                }
                                dbOrder.PICKUP_SITECODE      = sitename; //名称
                                dbOrder.ASSIGNED_SITE_CODE   = sitename; //名称
                                dbOrder.PUSH_OUTSYS_STATUS   = 1;
                                dbOrder.PUSH_OUTSYS_FAIL_NUM = 0;
                                dbOrder.ASSIGNSITE_TYPE      = 0;
                            }
                        }
                    }
                    resultsite = sd.FirstOrDefault(p => p.orderid == dbOrder.ORDER_NO + "-rec");
                    if (resultsite != null)
                    {
                        distance.SEND_DISTANCE = resultsite.distance;
                        if (!string.IsNullOrEmpty(resultsite.bizAreaValue))
                        {
                            if (dbOrder.SENDTO_SITE != resultsite.bizAreaValue && !string.IsNullOrEmpty(distance.SEND_DISTANCE))//如果是修改订单,网点可能没做修改
                            {
                                bdistance = true;
                            }
                            dbOrder.SENDTO_SITE = resultsite.bizAreaValue;
                            string sitename = await AppService.QuerySiteName(resultsite.bizAreaValue);//dbHelper.mapper.QueryForObject<string>("T_SITE_INFO.GetName", resultsite.bizAreaValue);

                            if (!string.IsNullOrEmpty(sitename))
                            {
                                dbOrder.SENDTO_SITECODE = sitename;//名称
                            }
                        }
                    }

                    int i = await AppService.UpdateSite(dbOrder);//dbHelper.mapper.Update("T_ORDER.UpdateSite", dbOrder);

                    if (bdistance)
                    {
                        await AppService.Add(distance); //dbHelper.mapper.Insert("T_NAVIGATE_DISTANCE.Insert", distance);
                    }
                }
            }
            catch (Exception e)
            {
                return(false);
            }
            return(true);
        }
예제 #2
0
 public Task <int> Add(T_NAVIGATE_DISTANCE distance)
 {
     return(OracleScope.Repository.InsertAsync <T_NAVIGATE_DISTANCE>("T_NAVIGATE_DISTANCE.Insert", distance));
 }