Browse Source

自动派单多尺寸拦截,修改订单同步状态

zhuyiyi 1 tháng trước cách đây
mục cha
commit
3b8711991f
3 tập tin đã thay đổi với 93 bổ sung2 xóa
  1. 5 1
      BizCom/Enum/TradeCellFile.cs
  2. 31 0
      SiteCore/taobao/commonHelper.cs
  3. 57 1
      ecomServer/MainForm.cs

+ 5 - 1
BizCom/Enum/TradeCellFile.cs

@@ -15,6 +15,10 @@ namespace BizCom.Enum
         /// <summary>
         /// 包裹图片
         /// </summary>
-        PACK_FILE
+        PACK_FILE,
+        /// <summary>
+        /// 授权文件
+        /// </summary>
+        AUTH_FILE
     }
 }

+ 31 - 0
SiteCore/taobao/commonHelper.cs

@@ -3666,5 +3666,36 @@ namespace SiteCore
 
             return newmemo;
         }
+
+        public static bool isMultiSize(string memo)
+        {
+            bool result = false;
+            if (memo.Contains("合包"))
+            {
+                return result;
+            }
+            string[] memolist = memo.Split('-');
+            if(memolist.Length < 3)
+            {
+                return result;
+            }
+            string size_text = memolist[1];
+            if (size_text.Contains(")") || size_text.Contains(")"))
+            {
+                size_text = memolist[2];
+            }
+            if (size_text.Contains(",") || size_text.Contains(",") || size_text.Contains("+"))
+            {
+                result = true;
+            }
+            if (!result)
+            {
+                if (size_text.Count(c => c == 'x') > 1)
+                {
+                    result = true;
+                }
+            }
+            return result;
+        }
     }
 }

+ 57 - 1
ecomServer/MainForm.cs

@@ -318,8 +318,58 @@ namespace ErpServer
                                         }
                                     case "updatestate_shipped":
                                         {
+                                            string order_sql = string.Format("SELECT SupplierId, FinishPlaceTime, OrderState  FROM [dbo].[CE_ErpTradeCell]  WHERE tid = '{0}'", dr["ctid"]);
+                                            DataTable order_data = SqlHelper.ExecuteDataset(order_sql).Tables[0];
+                                            bool isAll = false;
+                                            int supplierId = 0;
+                                            int index = 0;
+                                            DateTime finishitime = DateTime.Now;
+                                            if (order_data != null && order_data.Rows.Count > 1)
+                                            {
+                                                isAll = true;
+                                                foreach (DataRow row in order_data.Rows)
+                                                {
+                                                    index++;
+                                                    //数据不完整
+                                                    if (!Convert.IsDBNull(row["SupplierId"]) && !Convert.IsDBNull(row["FinishPlaceTime"]) && !Convert.IsDBNull(row["OrderState"]))
+                                                    {
+                                                        if (index == 1)
+                                                        {
+                                                            finishitime = Convert.ToDateTime(row["FinishPlaceTime"]);
+                                                            supplierId = Convert.ToInt32(row["SupplierId"]);
+                                                        }
+                                                        //没有车间
+                                                        if (supplierId == 0)
+                                                        {
+                                                            isAll = false;
+                                                        }
+                                                        //车间不一致
+                                                        if (supplierId != Convert.ToInt32(row["SupplierId"]))
+                                                        {
+                                                            isAll = false;
+                                                        }
+                                                        //不在下单完成
+                                                        if (Convert.ToInt32(row["OrderState"]) < 6)
+                                                        {
+                                                            isAll = false;
+                                                        }
+                                                        //不是同一天下单
+                                                        if (DateTime.Compare(finishitime.Date, Convert.ToDateTime(row["FinishPlaceTime"]).Date) != 0)
+                                                        {
+                                                            isAll = false;
+                                                        }
+                                                        continue;
+                                                    }
+                                                    isAll = false;
+                                                }
+                                            }
                                             sql = "update CE_ErpTradeCell WITH(ROWLOCK) set OrderState=" + dr["orderstate"] + ",IsUrgency=0,isReturn=0  where tid='" + dr["ctid"] + "' and IsPreDelivery=0  and SplitTag='' and isAfterSaleOrder=0 ;";
                                             sql += "update CE_ErpTradeCell WITH(ROWLOCK) set OrderState=" + dr["orderstate"] + ",IsUrgency=0,isReturn=0  where tid='" + dr["ctid"] + "' and IsPreDelivery=0  and SplitTag!='' and OrderState>6 and isAfterSaleOrder=0 ;";
+
+                                            if (isAll)
+                                            {
+                                                sql = "update CE_ErpTradeCell WITH(ROWLOCK) set OrderState=" + dr["orderstate"] + ",IsUrgency=0,isReturn=0  where tid='" + dr["ctid"] + "' and IsPreDelivery=0  and isAfterSaleOrder=0 ;";
+                                            }
                                             SqlHelper.ExecuteNonQuery(sql);
                                             break;
                                         }
@@ -897,7 +947,7 @@ namespace ErpServer
                     if (isStart)
                     {
 
-                        string sql = "SELECT tid, ctid, IsOldCustomer, shopid, payment, ProductId, isDianziOrder, ( SELECT COUNT ( * ) AS fileNumber FROM CE_ErpTradeCellFile WHERE tid = c.tid AND ctid = c.ctid AND isDel = 0 ) AS fileNumber  FROM CE_ErpTradeCell c WHERE orderstate = 2  AND productid <> 0  AND designuserid = 0 AND designuserid <> 188  AND payment > 0  AND isrefund = 0  ORDER BY IsUrgency DESC, fileNumber DESC, YEAR ( pay_time ), MONTH ( pay_time ), DAY ( pay_time ), payment DESC;";
+                        string sql = "SELECT tid,seller_memo, ctid, IsOldCustomer, shopid, payment, ProductId, isDianziOrder, ( SELECT COUNT ( * ) AS fileNumber FROM CE_ErpTradeCellFile WHERE tid = c.tid AND ctid = c.ctid AND isDel = 0 ) AS fileNumber  FROM CE_ErpTradeCell c WHERE orderstate = 2  AND productid <> 0  AND designuserid = 0 AND designuserid <> 188  AND payment > 0  AND isrefund = 0  ORDER BY IsUrgency DESC, fileNumber DESC, YEAR ( pay_time ), MONTH ( pay_time ), DAY ( pay_time ), payment DESC;";
                         DataTable dt = SqlHelper.ExecuteDataset(sql).Tables[0];
                         //object result = SqlHelper.ExecuteScalar(sql);
                         if (dt != null && dt.Rows.Count > 0)
@@ -953,6 +1003,12 @@ namespace ErpServer
                                         continue;
                                     }
                                     int[] uv_productIds = new int[] { 14, 43, 2487, 2531, 2654, 2656 };
+                                    if (!uv_productIds.Contains(ProductId) && commonHelper.isMultiSize(dr["seller_memo"].ToString()))
+                                    {
+                                        helper.writeLog("自动派单:" + dr["ctid"].ToString() + "-" + res);
+                                        SqlHelper.ExecuteNonQuery(string.Format("update CE_ErpTradeCell set OrderState=0 where ctid='{0}' and OrderState=2;", dr["ctid"].ToString()));
+                                        continue;
+                                    }
 
                                     CeErpTrade ceErpTrade = CeErpTrade.Get(dr["tid"].ToString());
                                     if ("normal".Equals(syncType) && ceErpTrade != null && !string.IsNullOrEmpty(ceErpTrade.buyer_nick) && tmcHelper.shop_list.Contains(Convert.ToInt32(dr["shopid"])))