zhuyiyi 11 hónapja
szülő
commit
ddd9e197c1

+ 24 - 0
BizCom/Dao/CeErpTradeAfterSaleExtend.cs

@@ -177,6 +177,30 @@ namespace BizCom
             get { return _disagreeTimeOut; }
             set { _disagreeTimeOut = value; }
 
+        }
+        private int _reprintOut = 0;
+        /// <summary>
+        /// 重印超时次数
+        /// </summary>
+        [Property]
+
+        public int ReprintOut
+        {
+            get { return _reprintOut; }
+            set { _reprintOut = value; }
+
+        }
+        private int _preTimeOut = 0;
+        /// <summary>
+        /// 预完成超时次数
+        /// </summary>
+        [Property]
+
+        public int PreTimeOut
+        {
+            get { return _preTimeOut; }
+            set { _preTimeOut = value; }
+
         }
 
         public static CeErpTradeAfterSaleExtend getByTid(string tid)

+ 21 - 0
BizCom/Dao/CeErpTradeCellExtend.cs

@@ -433,6 +433,27 @@ namespace BizCom
             get { return _refundMemo; }
             set { _refundMemo = value; }
         }
+
+        private int _checkOut = 0;
+        /// <summary>
+        /// 查货超时
+        /// </summary>
+        [Property]
+        public int CheckOut
+        {
+            get { return _checkOut; }
+            set { _checkOut = value; }
+        }
+        /// <summary>
+        /// 第一次查货时间
+        /// </summary>
+        [Property]
+        public DateTime? CheckTime { get; set; }
+        /// <summary>
+        /// 重印时间
+        /// </summary>
+        [Property]
+        public DateTime? ReprintTime { get; set; }
         public static CeErpTradeCellExtend getByTid(string ctid)
         {
             return FindFirst(Expression.Sql(string.Format("ctid='{0}'", ctid)));

+ 62 - 7
SiteCore/Handler/sync.order.cs

@@ -53,6 +53,7 @@ namespace SiteCore.Handler
 
             string poscode = CurrentUser.UserPost.Post.Code;
             DataStruct dStruct = GetPostStruct();
+
             //apiHelper.Api_SyncOrderByTime("598825");
             //apiHelper.API_GetWaybill("ZTO-CAINIAO-TZJK", "4233447147588233939");
             //apiHelper.Api_SyacOrder("2460143282114312263", "yujia");
@@ -2141,6 +2142,27 @@ namespace SiteCore.Handler
                     {
                         string apires = apiHelper.API_TradeMemoUpdate(trade.tid, trade.posCode, "", trade.seller_memo + "-" + entity.UnusualCon);
                     }
+                    //查货是否超时
+                    CeErpTradeCellExtend ceErpTradeCellExtend = CeErpTradeCellExtend.getByTid(entity.ctid);
+                    if (ceErpTradeCellExtend == null)
+                    {
+                        ceErpTradeCellExtend = new CeErpTradeCellExtend();
+                        ceErpTradeCellExtend.ctid = entity.ctid;
+                    }
+                    if (ceErpTradeCellExtend.CheckTime == null && DateTime.Compare(DateTime.Now.AddHours(-24), (DateTime)entity.CheckOrderTime) >= 0)
+                    {
+                        ceErpTradeCellExtend.CheckOut += 1;
+                    }
+                    ceErpTradeCellExtend.CheckTime = DateTime.Now;
+                    if (ceErpTradeCellExtend.ID > 0)
+                    {
+                        ceErpTradeCellExtend.Update();
+                    }
+                    else
+                    {
+                        ceErpTradeCellExtend.Create();
+                    }
+
                     CeErpTradeLog.AddLog(eid, 6, CurrentUser.UserID, "异常解释:" + entity.UnusualCon);
                     returnSuccessMsg("操作成功!");
                     return;
@@ -6713,6 +6735,7 @@ namespace SiteCore.Handler
                                                 RedisHelper.StringSet(key, string.Join(",", list.Distinct().ToList()));
                                             }
                                         }
+
                                     }
                                 }
                             }
@@ -6729,7 +6752,21 @@ namespace SiteCore.Handler
                         else
                         {
                             newentity.Create();
-                            CeErpTradeCellExtend.createInfo(newentity.ctid, 30, 20);
+                            CeErpTradeCellExtend newCellExtend = new CeErpTradeCellExtend();
+                            newCellExtend.ctid = newentity.ctid;
+                            newCellExtend.orderFrom = 20;
+                            newCellExtend.orderType = 30;
+
+                            if (st == "下单员")
+                            {
+
+                            }
+                            else
+                            {
+                                newCellExtend.ReprintTime = DateTime.Now;
+                            }
+                            newCellExtend.Create();
+
                         }
                         if (st != "下单员")
                         {
@@ -6782,7 +6819,10 @@ namespace SiteCore.Handler
 
 
                     int gysid = GetPostInt("ResponsibleSupId");
-                    entity.AfterSaleUserId = CurrentUser.UserID;
+                    if (entity.AfterSaleUserId == 0)
+                    {
+                        entity.AfterSaleUserId = CurrentUser.UserID;
+                    }
                     entity.ResponsibleUserId = resIdStr;
                     entity.AfterSaleResponsible = GetPostString("AfterSaleResponsible");
                     entity.AfterSaleResSupId = GetPostInt("ResponsibleSupId");
@@ -7002,17 +7042,24 @@ namespace SiteCore.Handler
                     string numSql = string.Format("SELECT COUNT ( * ) AS BackNum FROM dbo.Ce_ErpTradeAfterSaleLog WHERE tid = '{0}' AND Con in ('责任主管不认可','供应商不认可')", entity.ctid);
                     DataTable dt = DbHelper.DbConn.ExecuteDataset(numSql).Tables[0];
                     int num = Convert.ToInt32(dt.Rows[0]["BackNum"]);
-
+                    if (entity.AfterSalePreTime == null)
+                    {
+                        if (DateTime.Compare(DateTime.Now.AddHours(-24), (DateTime)entity.AfterSaleTime) >= 0)
+                        {
+                            ceErpTradeAfterSaleExtend.PreTimeOut += 1;
+                        }
+                    }
                     entity.AfterSalePreTime = DateTime.Now;
                     //预完成给售后主管审核客户问题直接完成
                     if (entity.AfterSaleState == 1 && ceErpTradeAfterSaleExtend.DisagreeTime != null && num <= 1)
                     {
-                        if (DateTime.Compare(DateTime.Now.AddHours(-24), (DateTime)ceErpTradeAfterSaleExtend.DisagreeTime) == 0)
+                        if (DateTime.Compare(DateTime.Now.AddHours(-24), (DateTime)ceErpTradeAfterSaleExtend.DisagreeTime) >= 0)
                         {
                             ceErpTradeAfterSaleExtend.DisagreeTimeOut += 1;
                         }
                     }
 
+                    ceErpTradeAfterSaleExtend.Update();
                     entity.AfterSaleState = 2;
 
                     entity.Update();
@@ -9649,8 +9696,7 @@ namespace SiteCore.Handler
                 if (supplier.Length > 0) lw.Add(string.Format("SupplierName like '%{0}%'", supplier));
             }
 
-            string checkst = GetPostString("checkstate");
-            if (checkst.Length > 0) lw.Add(string.Format("MemoOpt={0}", checkst));
+
 
             string date1 = GetPostString("date1");
             string date2 = GetPostString("date2");
@@ -9667,7 +9713,16 @@ namespace SiteCore.Handler
             string price2 = GetPostString("price2");
             if (price2.Length > 0) lw.Add(string.Format("payment <= '{0}'", price2));
 
-            lw.Add(string.Format("(MemoOpt=3 or MemoOpt=4)"));
+            string checkst = GetPostString("checkstate");
+            if (checkst.Length > 0 && "10".Equals(checkst))
+            {
+                lw.Add(string.Format("CheckOut>0"));
+            }
+            else
+            {
+                if (checkst.Length > 0) lw.Add(string.Format("MemoOpt={0}", checkst));
+                lw.Add(string.Format("(MemoOpt=3 or MemoOpt=4)"));
+            }
 
             dStruct.Order = "MemoOpt, CheckOrderTime desc, pay_time desc";
             dStruct.MainWhere = string.Join(" and ", lw.ToArray());

+ 9 - 1
SiteCore/Handler/sync.orderReport.cs

@@ -1702,7 +1702,7 @@ namespace SiteCore.Handler
             }
 
             StringBuilder sql = new StringBuilder();
-            sql.AppendFormat("SELECT o.AfterSaleUserId AS UserId, u.name AS UserName, COUNT(*) AS Total, COUNT(CASE WHEN o.AfterSaleState IN (2, 3) THEN 1 END) AS InProgress, COUNT(CASE WHEN o.AfterSaleState >= 4 THEN 1 END) AS Completed,COUNT ( CASE WHEN o.AfterSaleBackReason != '' THEN 1 END ) AS back, SUM ( a.ChangeNum ) AS ChangeNum ,SUM ( a.DisagreeTimeOut ) AS DisagreeTime   FROM CE_ErpTradeCell o LEFT JOIN Ce_ErpTradeAfterSaleExtend a ON a.tid = o.ctid INNER JOIN CE_ErpUser u ON o.AfterSaleUserId = u.ID WHERE   o.AfterSaleState >= 1 ");
+            sql.AppendFormat("SELECT o.AfterSaleUserId AS UserId, u.name AS UserName, COUNT(*) AS Total, COUNT(CASE WHEN o.AfterSaleState IN (2, 3) THEN 1 END) AS InProgress, COUNT(CASE WHEN o.AfterSaleState >= 4 THEN 1 END) AS Completed,COUNT ( CASE WHEN o.AfterSaleBackReason != '' THEN 1 END ) AS back, SUM ( a.ChangeNum ) AS ChangeNum ,SUM ( a.ReprintOut ) AS ReprintOut,SUM ( a.PreTimeOut ) AS PreTimeOut,SUM ( a.DisagreeTimeOut ) AS DisagreeTime   FROM CE_ErpTradeCell o LEFT JOIN Ce_ErpTradeAfterSaleExtend a ON a.tid = o.ctid INNER JOIN CE_ErpUser u ON o.AfterSaleUserId = u.ID WHERE   o.AfterSaleState >= 1 ");
             if (date1.Length > 0)
             {
                 sql.AppendFormat(" AND o.HandleTime >= '{0}'  AND o.HandleTime < '{1}'", date1, date2);
@@ -1723,6 +1723,8 @@ namespace SiteCore.Handler
             dt.Columns.Add(new DataColumn("BackRate", typeof(string)));
             dt.Columns.Add(new DataColumn("ChangeNum", typeof(string)));
             dt.Columns.Add(new DataColumn("DisagreeTime", typeof(string)));
+            dt.Columns.Add(new DataColumn("ReprintOut", typeof(string)));
+            dt.Columns.Add(new DataColumn("PreTimeOut", typeof(string)));
             DataRow dr_he = dt.NewRow();
             dr_he[0] = "合计";
             dr_he[1] = 0;
@@ -1732,6 +1734,8 @@ namespace SiteCore.Handler
             dr_he[5] = 0;
             dr_he[6] = 0;
             dr_he[7] = 0;
+            dr_he[8] = 0;
+            dr_he[9] = 0;
             int total = 0;
             foreach (DataRow row in dtafter.Rows)
             {
@@ -1742,6 +1746,8 @@ namespace SiteCore.Handler
                 dr[3] = row["Completed"];
                 dr[6] = row["ChangeNum"];
                 dr[7] = row["DisagreeTime"];
+                dr[8] = row["ReprintOut"];
+                dr[9] = row["PreTimeOut"];
                 decimal rate = 0;
                 if (dr[1].ToString() != "0")
                 {
@@ -1762,6 +1768,8 @@ namespace SiteCore.Handler
                 dr_he[3] = Convert.ToDecimal(dr_he[3]) + Convert.ToDecimal(dr[3]);
                 dr_he[6] = Convert.ToDecimal(dr_he[6]) + Convert.ToDecimal(dr[6]);
                 dr_he[7] = Convert.ToDecimal(dr_he[7]) + Convert.ToDecimal(dr[7]);
+                dr_he[8] = Convert.ToDecimal(dr_he[8]) + Convert.ToDecimal(dr[8]);
+                dr_he[9] = Convert.ToDecimal(dr_he[9]) + Convert.ToDecimal(dr[9]);
                 total += Convert.ToInt32(row["back"]);
             }
             decimal pgrate = 0;

+ 5 - 2
Web/EAfterSale/js/CheckOrderList.js

@@ -80,9 +80,12 @@ function checkStateRenderer(e) {
     if (record.MemoOpt == 3) {
         html += ("<div style=\"color:red;\">待查货</div>");
     }
-    else {
+    else if (record.MemoOpt == 4) {
         html += ("<div style=\"color:green;\">查货中</div>");
     }
+    if (record.CheckOut > 0) {
+        html += ("<div style=\"color:red;\">查货超时</div>");
+    }
 
     html += formatCommonDate(record.CheckOrderTime) + "</div>";
     return html;
@@ -177,7 +180,7 @@ function conRenderer(e) {
     if (record.checkMemoTime) {
         html += "<div>" + formatCommonDate(record.checkMemoTime) + "</div>";
     }
-   
+
 
     html += "</div>";
     return html;

+ 3 - 2
Web/ECharts/AfterSaleGather.aspx

@@ -372,8 +372,9 @@
                                 <div field="Handling" datatype="int" width="60" align="center" headeralign="center" allowsort="true">处理中</div>
                                 <div field="Finish" datatype="int" width="60" align="center" headeralign="center" allowsort="true">已完成</div>
                                 <div field="ChangeNum" datatype="int" width="60" align="center" headeralign="center" allowsort="true">判责错误数</div>
-                                <div field="DisagreeTime" datatype="int" width="60" align="center" headeralign="center" allowsort="true">超时数</div>
-                                <div field="FinishRate" datatype="int" width="60" align="center" headeralign="center" allowsort="true">完成率</div>
+                                <div field="DisagreeTime" datatype="int" width="60" align="center" headeralign="center" allowsort="true">打回超时</div>
+                                <div field="PreTimeOut" datatype="int" width="60" align="center" headeralign="center" allowsort="true">未处理超时</div>
+                                <div field="ReprintOut" datatype="int" width="60" align="center" headeralign="center" allowsort="true">跟单超时</div>
                                 <div field="BackRate" datatype="int" width="60" align="center" headeralign="center" allowsort="true">打回率</div>
                             </div>
                         </div>

+ 1 - 0
Web/EOrder/OrderList.aspx

@@ -103,6 +103,7 @@
                     <div type="indexcolumn" width="20"></div>
                     <div type="checkcolumn" width="20"></div>
                     <div field="tid" width="100" align="left" headeralign="center" renderer="orderIdRenderer">订单编号</div>
+                    <div field="OrderSn" visible="false" headeralign="center">唯一识别号</div>
                     <div field="SplitTag" width="20" visible="false" align="left" headeralign="center">拆分序号</div>
                     <div field="pay_time" width="80" align="center" headeralign="center" renderer="orderPTimeRenderer">付款时间</div>
                     <div field="seller_nick" visible="false" align="center" headeralign="center">店铺</div>

+ 1 - 0
Web/MasterPage/ErpView.master

@@ -436,6 +436,7 @@
                     <option value="">全部</option>
                     <option value="3">待查货</option>
                     <option value="4">查货中</option>
+                    <option value="10">超时</option>
                 </select>
             </div>
             <div class="filter_item" id="f_sup_state" runat="server" visible="false">