mengjie 6 lat temu
rodzic
commit
e3c26cac79

+ 8 - 0
codegit/CallCenterApi/CallCenterApi.BLL/T_Call_LeaveRecord.cs

@@ -140,6 +140,14 @@ namespace CallCenterApi.BLL
140 140
             return dal.GetListByPage(strWhere, orderby, startIndex, endIndex);
141 141
         }
142 142
 
143
+        /// <summary>
144
+        /// 更新办理标志
145
+        /// </summary>
146
+        public bool UpdateFlag(int F_ID, string F_CallAppId)
147
+        {
148
+            return dal.UpdateFlag(F_ID,  F_CallAppId);
149
+        }
150
+
143 151
         #endregion  BasicMethod
144 152
         #region  ExtensionMethod
145 153
 

+ 45 - 8
codegit/CallCenterApi/CallCenterApi.DAL/T_Call_LeaveRecord.cs

@@ -50,9 +50,9 @@ namespace CallCenterApi.DAL
50 50
         {
51 51
             StringBuilder strSql = new StringBuilder();
52 52
             strSql.Append("insert into T_Call_LeaveRecord(");
53
-            strSql.Append("F_CallId,F_Phone,F_LeaveTime,F_Status,F_UserId,F_UserCode,F_UserName,F_DealTime,F_DealContent,F_Remark,F_CallAppId,F_RecFileUrl)");
53
+            strSql.Append("F_CallId,F_Phone,F_LeaveTime,F_Status,F_UserId,F_UserCode,F_UserName,F_DealTime,F_DealContent,F_Remark,F_CallAppId,F_RecFileUrl,F_LeaveType)");
54 54
             strSql.Append(" values (");
55
-            strSql.Append("@F_CallId,@F_Phone,@F_LeaveTime,@F_Status,@F_UserId,@F_UserCode,@F_UserName,@F_DealTime,@F_DealContent,@F_Remark,@F_CallAppId,@F_RecFileUrl)");
55
+            strSql.Append("@F_CallId,@F_Phone,@F_LeaveTime,@F_Status,@F_UserId,@F_UserCode,@F_UserName,@F_DealTime,@F_DealContent,@F_Remark,@F_CallAppId,@F_RecFileUrl,@F_LeaveType)");
56 56
             strSql.Append(";select @@IDENTITY");
57 57
             SqlParameter[] parameters = {
58 58
                     new SqlParameter("@F_CallId", SqlDbType.VarChar,50),
@@ -66,7 +66,8 @@ namespace CallCenterApi.DAL
66 66
                     new SqlParameter("@F_DealContent", SqlDbType.NText),
67 67
                     new SqlParameter("@F_Remark", SqlDbType.NText),
68 68
                     new SqlParameter("@F_CallAppId", SqlDbType.NVarChar,50),
69
-                    new SqlParameter("@F_RecFileUrl", SqlDbType.NVarChar,50)};
69
+                    new SqlParameter("@F_RecFileUrl", SqlDbType.NVarChar,50),
70
+            new SqlParameter("@F_LeaveType", SqlDbType.NVarChar,50)};
70 71
             parameters[0].Value = model.F_CallId;
71 72
             parameters[1].Value = model.F_Phone;
72 73
             parameters[2].Value = model.F_LeaveTime;
@@ -79,6 +80,7 @@ namespace CallCenterApi.DAL
79 80
             parameters[9].Value = model.F_Remark;
80 81
             parameters[10].Value = model.F_CallAppId;
81 82
             parameters[11].Value = model.F_RecFileUrl;
83
+            parameters[12].Value = model.F_LeaveType;
82 84
 
83 85
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
84 86
             if (obj == null)
@@ -108,7 +110,8 @@ namespace CallCenterApi.DAL
108 110
             strSql.Append("F_DealContent=@F_DealContent,");
109 111
             strSql.Append("F_Remark=@F_Remark,");
110 112
             strSql.Append("F_CallAppId=@F_CallAppId,");
111
-            strSql.Append("F_RecFileUrl=@F_RecFileUrl");
113
+            strSql.Append("F_RecFileUrl=@F_RecFileUrl,"); 
114
+                strSql.Append("F_LeaveType=@F_LeaveType");
112 115
             strSql.Append(" where F_Id=@F_Id");
113 116
             SqlParameter[] parameters = {
114 117
                     new SqlParameter("@F_CallId", SqlDbType.VarChar,50),
@@ -123,6 +126,7 @@ namespace CallCenterApi.DAL
123 126
                     new SqlParameter("@F_Remark", SqlDbType.NText),
124 127
                     new SqlParameter("@F_CallAppId", SqlDbType.NVarChar,50),
125 128
                     new SqlParameter("@F_RecFileUrl", SqlDbType.NVarChar,50),
129
+                     new SqlParameter("@F_LeaveType", SqlDbType.NVarChar,50),
126 130
                     new SqlParameter("@F_Id", SqlDbType.Int,4)};
127 131
             parameters[0].Value = model.F_CallId;
128 132
             parameters[1].Value = model.F_Phone;
@@ -136,7 +140,8 @@ namespace CallCenterApi.DAL
136 140
             parameters[9].Value = model.F_Remark;
137 141
             parameters[10].Value = model.F_CallAppId;
138 142
             parameters[11].Value = model.F_RecFileUrl;
139
-            parameters[12].Value = model.F_Id;
143
+            parameters[12].Value = model.F_LeaveType;
144
+            parameters[13].Value = model.F_Id;
140 145
 
141 146
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
142 147
             if (rows > 0)
@@ -200,7 +205,7 @@ namespace CallCenterApi.DAL
200 205
         {
201 206
 
202 207
             StringBuilder strSql = new StringBuilder();
203
-            strSql.Append("select  top 1 F_Id,F_CallId,F_Phone,F_LeaveTime,F_Status,F_UserId,F_UserCode,F_UserName,F_DealTime,F_DealContent,F_Remark,F_CallAppId,F_RecFileUrl from T_Call_LeaveRecord ");
208
+            strSql.Append("select  top 1 F_Id,F_CallId,F_Phone,F_LeaveTime,F_Status,F_UserId,F_UserCode,F_UserName,F_DealTime,F_DealContent,F_Remark,F_CallAppId,F_RecFileUrl,F_LeaveType from T_Call_LeaveRecord ");
204 209
             strSql.Append(" where F_Id=@F_Id");
205 210
             SqlParameter[] parameters = {
206 211
                     new SqlParameter("@F_Id", SqlDbType.Int,4)
@@ -280,6 +285,10 @@ namespace CallCenterApi.DAL
280 285
                 {
281 286
                     model.F_RecFileUrl = row["F_RecFileUrl"].ToString();
282 287
                 }
288
+                if (row["F_LeaveType"] != null)
289
+                {
290
+                    model.F_LeaveType = row["F_LeaveType"].ToString();
291
+                }
283 292
             }
284 293
             return model;
285 294
         }
@@ -290,7 +299,7 @@ namespace CallCenterApi.DAL
290 299
         public DataSet GetList(string strWhere)
291 300
         {
292 301
             StringBuilder strSql = new StringBuilder();
293
-            strSql.Append("select F_Id,F_CallId,F_Phone,F_LeaveTime,F_Status,F_UserId,F_UserCode,F_UserName,F_DealTime,F_DealContent,F_Remark,F_CallAppId,F_RecFileUrl ");
302
+            strSql.Append("select F_Id,F_CallId,F_Phone,F_LeaveTime,F_Status,F_UserId,F_UserCode,F_UserName,F_DealTime,F_DealContent,F_Remark,F_CallAppId,F_RecFileUrl,F_LeaveType ");
294 303
             strSql.Append(" FROM T_Call_LeaveRecord ");
295 304
             if (strWhere.Trim() != "")
296 305
             {
@@ -310,7 +319,7 @@ namespace CallCenterApi.DAL
310 319
             {
311 320
                 strSql.Append(" top " + Top.ToString());
312 321
             }
313
-            strSql.Append(" F_Id,F_CallId,F_Phone,F_LeaveTime,F_Status,F_UserId,F_UserCode,F_UserName,F_DealTime,F_DealContent,F_Remark,F_CallAppId,F_RecFileUrl ");
322
+            strSql.Append(" F_Id,F_CallId,F_Phone,F_LeaveTime,F_Status,F_UserId,F_UserCode,F_UserName,F_DealTime,F_DealContent,F_Remark,F_CallAppId,F_RecFileUrl,F_LeaveType ");
314 323
             strSql.Append(" FROM T_Call_LeaveRecord ");
315 324
             if (strWhere.Trim() != "")
316 325
             {
@@ -367,6 +376,34 @@ namespace CallCenterApi.DAL
367 376
             return DbHelperSQL.Query(strSql.ToString());
368 377
         }
369 378
 
379
+
380
+        /// <summary>
381
+        /// 更新办理标志
382
+        /// </summary>
383
+        public bool UpdateFlag(int F_ID,string F_CallAppId)
384
+        {
385
+
386
+            StringBuilder strSql = new StringBuilder();
387
+            //strSql.Append("delete from T_Call_OutTask ");
388
+            strSql.Append("update T_Call_LeaveRecord set F_Status=1,F_CallAppId=@F_CallAppId ");
389
+            strSql.Append(" where F_Id=@F_Id");
390
+            SqlParameter[] parameters = {
391
+                    new SqlParameter("@F_Id", SqlDbType.Int,4),
392
+                    new SqlParameter("@F_CallAppId", SqlDbType.NVarChar ,50)
393
+            };
394
+            parameters[0].Value = F_ID;
395
+            parameters[1].Value = F_CallAppId;
396
+
397
+            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
398
+            if (rows > 0)
399
+            {
400
+                return true;
401
+            }
402
+            else
403
+            {
404
+                return false;
405
+            }
406
+        }
370 407
         #endregion  BasicMethod
371 408
         #region  ExtensionMethod
372 409
 

+ 11 - 1
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/IndexController.cs

@@ -528,7 +528,7 @@ namespace CallCenterApi.Interface.Controllers
528 528
                             //uwhere += " and State =0 ";
529 529
                         }
530 530
                         //2、待接单的
531
-                        string djdwhere = $" 1=1 and State =" + (int)EnumWorkOrderState.assign + " and T_Wo_WorkOrder.ID in ( " + woController.GetDJDWorkOrderID(ua.F_UserCode) + ") ";//" 1=1 and State =1 and WorkOrderID in ( " + woController.GetDJDWorkOrderID(ua.F_UserCode) + ") ";
531
+                        string djdwhere = $" 1=1 and State =" + (int)EnumWorkOrderState.assign + " and T_Wo_WorkOrder.ID in ( " + woController.GetDJDWorkOrderID(ua.F_DeptId.ToString()) + ") ";//" 1=1 and State =1 and WorkOrderID in ( " + woController.GetDJDWorkOrderID(ua.F_UserCode) + ") ";
532 532
                         //3、待完成(处理)的
533 533
                         string dclwhere = $" 1=1 and State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ") and T_Wo_WorkOrder.ID in ( " + woController.GetDWCWorkOrderID(ua.F_UserCode) + ") ";//" 1=1 and State =1 and WorkOrderID in ( " + woController.GetDWCWorkOrderID(ua.F_UserCode) + ") ";
534 534
                         //4、已处理的
@@ -539,6 +539,13 @@ namespace CallCenterApi.Interface.Controllers
539 539
                         string cqwhere = $" 1=1 and DATEADD(DAY,{days},CreateTime) < GETDATE() AND State < " + (int)EnumWorkOrderState.finish + " ";//$" 1=1 and DATEADD(DAY,{days},CreateTime) < GETDATE() AND State < 2  ";
540 540
                         //5、未审核微信工单
541 541
                         string wxwhere = $" 1=1 ";  // ANd Type = (SELECT F_DictionaryValueId FROM dbo.T_Sys_DictionaryValue (NOLOCK) WHERE F_DictionaryFlag = 'GDLY' AND F_Name = '微信')
542
+
543
+                        
544
+                            string yzpwhere= " 1=1 and State =" + (int)EnumWorkOrderState.assign;
545
+                        
546
+                        string dhfwhere= " 1=1 and State =" + (int)EnumWorkOrderState.finish;
547
+                        string yhfwhere= " 1=1 and State =" + (int)EnumWorkOrderState.returnbak;
548
+                        
542 549
                         #endregion
543 550
 
544 551
                         #region 未处理开票数量
@@ -555,6 +562,9 @@ namespace CallCenterApi.Interface.Controllers
555 562
                             cq = bll.GetList(cqwhere + sql + " AND State < " + (int)EnumWorkOrderState.finish + " and IsAudit = 1 ").Tables[0].Rows.Count,    //超期工单的统计
556 563
                             wx = bll.GetList(wxwhere + sql + " and IsAudit = 0 ").Tables[0].Rows.Count,    //微信工单的统计
557 564
                             billcount = billcount,//开票管理未处理数量
565
+                            yzp = bll.GetList(yzpwhere + sql + " and State=" + (int)EnumWorkOrderState.assign + " and IsAudit = 1 ").Tables[0].Rows.Count,
566
+                            dhf = bll.GetList(dhfwhere + sql + " and State=" + (int)EnumWorkOrderState.finish + " and IsAudit = 1 ").Tables[0].Rows.Count,
567
+                            yhf = bll.GetList(yhfwhere + sql + " and State=" + (int)EnumWorkOrderState.returnbak + " and IsAudit = 1 ").Tables[0].Rows.Count,
558 568
                             //dpd = bll.GetList(uwhere + sql+ " and State=0 and IsAudit = 1 ").Tables[0].Rows.Count,                    //待指派的统计
559 569
                             //djd = bll.GetList(djdwhere + sql + " and State =1 and IsAudit = 1 ").Tables[0].Rows.Count,    //待接单的统计
560 570
                             //dcl = bll.GetList(dclwhere + sql + " and State =1 and IsAudit = 1 ").Tables[0].Rows.Count,    //待处理的统计

+ 17 - 10
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/WOReportController.cs

@@ -169,19 +169,24 @@ namespace CallCenterApi.Interface.Controllers.report
169 169
                 sql += " and LastDealTime>='" + stime + " 00:00:00' ";
170 170
             
171 171
                 sql += " and LastDealTime<='" + endtime + " 23:59:59' ";
172
-            
172
+
173 173
             #endregion
174
-            
175
-            
176
-            DataSet ds = DbHelperSQL.Query("SELECT dbo.GetGDLXName(CType) as typename,count(*) as count  FROM T_Wo_WorkOrder where state >= 10 " + sql +" group by CType");
174
+
175
+
176
+            //DataSet ds = DbHelperSQL.Query("SELECT dbo.GetDictionaryName(CType) as typename,count(*) as count  FROM T_Wo_WorkOrder where state >= 10 " + sql +" group by CType");
177
+            //select F_Name,count(WorkOrderID) as count from  (select   a.*,b.*   from  T_Sys_DictionaryValue   b   left      join   T_Wo_WorkOrder a  on   b.F_DictionaryValueId=a.CType where F_DictionaryFlag='GSZL') t group by F_Name
178
+            DataSet ds = DbHelperSQL.Query("select F_Name,SUM(case when state >= 10 "+sql+"  then 1  else 0   end) as count from  (select   a.*,b.*   from  T_Sys_DictionaryValue   b   left      join   T_Wo_WorkOrder a  on   b.F_DictionaryValueId=a.CType where b.F_DictionaryFlag='GSZL' ) t  group by F_Name");
177 179
             if (ds != null && ds.Tables.Count > 0)
178 180
             {
179 181
                 DataTable dt = ds.Tables[0];
180
-                DataRow dr = dt.NewRow();
181
-                string Sum = dt.Compute("sum(count)", "true").ToString();
182
-                dr["typename"] = "总计";
183
-                dr["count"] = Sum;
184
-                dt.Rows.InsertAt(dr, 0);
182
+                if (dt.Rows.Count > 0)
183
+                {
184
+                    DataRow dr = dt.NewRow();
185
+                    string Sum = dt.Compute("sum(count)", "true").ToString();
186
+                    dr["typename"] = "总计";
187
+                    dr["count"] = Sum;
188
+                    dt.Rows.InsertAt(dr, 0);
189
+                }
185 190
                 res = Success("获取工单子类统计数据成功", dt);
186 191
             }
187 192
             else if (ds != null)
@@ -219,7 +224,9 @@ namespace CallCenterApi.Interface.Controllers.report
219 224
             #endregion
220 225
 
221 226
 
222
-            DataSet ds = DbHelperSQL.Query("SELECT dbo.GetDeptName(ToDept) as deptname,count(*) as count  FROM T_Wo_WorkOrder where state >= 10 " + sql + " group by ToDept");
227
+            //DataSet ds = DbHelperSQL.Query("SELECT dbo.GetDeptName(ToDept) as deptname,count(*) as count  FROM T_Wo_WorkOrder where state >= 10 " + sql + " group by ToDept");
228
+            //select F_DeptName,SUM(case when state >= 10   then 1  else 0   end) as count from  (select   a.*,b.*   from  T_Sys_Department   b   left      join   T_Wo_WorkOrder a  on   b.F_DeptId=a.ToDept where b.F_ParentId=339 and b.F_State =1 ) t  group by F_DeptName
229
+            DataSet ds = DbHelperSQL.Query("select F_DeptName,SUM(case when state >= 10 "+sql+"  then 1  else 0   end) as count from  (select   a.*,b.*   from  T_Sys_Department   b   left      join   T_Wo_WorkOrder a  on   b.F_DeptId=a.ToDept where b.F_ParentId=339 and b.F_State =1 ) t  group by F_DeptName");
223 230
             if (ds != null && ds.Tables.Count > 0)
224 231
             {
225 232
                 DataTable dt = ds.Tables[0];

+ 5 - 1
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallInScreenController.cs

@@ -652,14 +652,17 @@ namespace CallCenterApi.Interface.Controllers.tel
652 652
                         else
653 653
                         {
654 654
                             //无接收人时,状态修改成 0待指派
655
-                            if (clid == 0)
655
+                            if (clbm == 0)
656 656
                             {
657
+                                
657 658
                                 model.State = (int)EnumWorkOrderState.neworder;    //工单状态 待指派
658 659
                             }
659 660
                             else
660 661
                             {
662
+                                model.ToDept = clbm.ToString ();
661 663
                                 model.AuditUser = touser;
662 664
                                 model.State = (int)EnumWorkOrderState.assign;    //待处理
665
+                                
663 666
                             }
664 667
                         }
665 668
                         //接待描述 - 反馈内容
@@ -689,6 +692,7 @@ namespace CallCenterApi.Interface.Controllers.tel
689 692
                                 #endregion
690 693
                                 opt = "创建并指派工单给"+ tousername;
691 694
                                 optbut = (int)EnumItemOpt.assign;
695
+                                bool x = new WorkOrderController().AssignWO(ua, model, "", clbm, clid);
692 696
                             }
693 697
                             if (isover == 1)
694 698
                                 opt = "创建并处理完结工单"; optbut = (int)EnumItemOpt.end;

+ 31 - 4
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs

@@ -458,8 +458,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
458 458
             string str = string.Empty;
459 459
             str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal 
460 460
                 + " and F_WoState="+ (int)EnumWorkOrderState.assign
461
-                + " and isnull(F_IsUsed,'0')='0' and F_NextUser='" + user + "' ";
462
-           
461
+                + " and isnull(F_IsUsed,'0')='0' and F_NextDept='" + user + "' ";//F_NextUser
462
+
463 463
             return str;
464 464
         }
465 465
 
@@ -860,6 +860,33 @@ namespace CallCenterApi.Interface.Controllers.workorder
860 860
             return Error("无操作权限!");
861 861
         }
862 862
 
863
+
864
+        /// <summary>
865
+        /// 回访工单
866
+        /// </summary>
867
+        /// <returns></returns>
868
+        public ActionResult RBakWorkOrder(long orderid, string cont)
869
+        {
870
+            int userId = CurrentUser.UserData.F_UserId;
871
+            if (userId != 0)
872
+            {
873
+                Model.T_Sys_UserAccount ua = sysUserAccountBll.GetModel(userId);
874
+                if (ua != null)
875
+                {
876
+                    Model.T_Wo_WorkOrder model = bll.GetModel(orderid);
877
+                    if (model != null)
878
+                    {
879
+                        var res = RBakWO(ua, model, cont);
880
+                        if (res)
881
+                            return Success("回访成功!");
882
+                        else
883
+                            return Error("操作失败!");
884
+                    }
885
+                    return Error("工单不存在!");
886
+                }
887
+            }
888
+            return Error("无操作权限!");
889
+        }
863 890
         #endregion
864 891
         #region 暂时不用
865 892
         ///// <summary>
@@ -2122,7 +2149,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
2122 2149
                 #endregion
2123 2150
                 #region 向上一级操作人员推送消息
2124 2151
                 var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
2125
-                if (itemlast.F_CreateUser != model.CreateUser)
2152
+                if (itemlast!=null&&itemlast.F_CreateUser != model.CreateUser)
2126 2153
                 {
2127 2154
                     sendsysmsg(model, nowUser, itemlast.F_CreateUser, (int)itemid, opt);
2128 2155
                     var lastUser = sysUserAccountBll.GetModel(itemlast.F_CreateUser);
@@ -2305,7 +2332,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
2305 2332
                 #endregion
2306 2333
                 #region 向上一级操作人员推送消息
2307 2334
                 var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
2308
-                if (itemlast.F_CreateUser != model.CreateUser)
2335
+                if (itemlast!=null&&itemlast.F_CreateUser != model.CreateUser)
2309 2336
                 {
2310 2337
                     sendsysmsg(model, nowUser, itemlast.F_CreateUser, (int)itemid, opt);
2311 2338
                     var lastUser = sysUserAccountBll.GetModel(itemlast.F_CreateUser);

+ 20 - 0
codegit/CallCenterApi/CallCenterApi.Model/T_Call_LeaveRecord.cs

@@ -28,6 +28,8 @@ namespace CallCenterApi.Model
28 28
         private string _f_remark;
29 29
         private string _f_callappid;
30 30
         private string _f_recfileurl;
31
+        private string  _f_leavetype;
32
+        private string _f_connum;
31 33
         /// <summary>
32 34
         /// 标识列,自动增长
33 35
         /// </summary>
@@ -132,6 +134,24 @@ namespace CallCenterApi.Model
132 134
             set { _f_recfileurl = value; }
133 135
             get { return _f_recfileurl; }
134 136
         }
137
+
138
+        /// <summary>
139
+        /// 留言类型
140
+        /// </summary>
141
+        public string F_LeaveType
142
+        {
143
+            set { _f_leavetype = value; }
144
+            get { return _f_leavetype; }
145
+        }
146
+
147
+        /// <summary>
148
+        /// 缴费户号Contributory number
149
+        /// </summary>
150
+        public string F_ConNum
151
+        {
152
+            set { _f_connum = value; }
153
+            get { return _f_connum; }
154
+        }
135 155
         #endregion Model
136 156
     }
137 157
 }