Przeglądaj źródła

add:自动流转

weieryang 3 lat temu
rodzic
commit
24a979e9da

+ 2 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Configs/system.config

@@ -11,6 +11,8 @@
11 11
   <add key="LicenceKey" value="" />
12 12
   <!-- 是否开启全日志-->
13 13
   <add key="IsLog" value="1" />
14
+  <!-- 是否开启自动派单-->
15
+  <add key="IsAutoSendOrder" value="0" />
14 16
   <!-- ================== 2:发送邮件参数 ================== -->
15 17
   <!-- 设置邮箱名称 -->
16 18
   <add key="MailName" value="邮件中心" />

+ 138 - 2
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs

@@ -9429,10 +9429,48 @@ namespace CallCenterApi.Interface.Controllers.workorder
9429 9429
 
9430 9430
                 int smsid = RequestString.GetInt("smsid", 0);
9431 9431
 
9432
-              
9432
+                int deptid = 0;
9433 9433
                 var modeldept = new Model.T_Sys_Department();
9434 9434
                 var premodeldept = new Model.T_Sys_Department();
9435
-             
9435
+                var isAutoSendOrder = Configs.GetValue("IsAutoSendOrder");
9436
+                if (isAutoSendOrder == "1")
9437
+                {
9438
+
9439
+                    if (!string.IsNullOrEmpty(keys))
9440
+                    {
9441
+                        try
9442
+                        {
9443
+                            var model = new BLL.T_Sys_DictionaryValue().GetModel
9444
+                                 (int.Parse(keys));
9445
+                            if (model != null && model.F_Deptid != 0 && model.F_Deptid != null)
9446
+                            {
9447
+                                deptid = (int)model.F_Deptid;
9448
+
9449
+                                modeldept = new BLL.T_Sys_Department().GetModel(deptid);
9450
+                                if (modeldept != null && modeldept.F_DeptId != 0)
9451
+                                {
9452
+                                    if (modeldept.F_IsDept == 2)
9453
+                                    {
9454
+                                        if (modeldept.F_PartentId > 0)
9455
+                                        {
9456
+                                            premodeldept = department((int)modeldept.F_PartentId);
9457
+                                        }
9458
+                                    }
9459
+                                    else
9460
+                                    {
9461
+                                        premodeldept = modeldept;
9462
+                                    }
9463
+                                }
9464
+                            }
9465
+                        }
9466
+                        catch
9467
+                        {
9468
+                            
9469
+                        }
9470
+                    }
9471
+
9472
+                }
9473
+
9436 9474
                 Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
9437 9475
 
9438 9476
                 using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
@@ -9677,6 +9715,104 @@ namespace CallCenterApi.Interface.Controllers.workorder
9677 9715
                     {
9678 9716
                         saveCus(cusname, cusphone, cusaddress);
9679 9717
                     });
9718
+                    if (isAutoSendOrder == "1" && premodeldept.F_DeptId != 0 && premodeldept.F_DeptId != null)
9719
+                    {
9720
+                        Task.Run(async () =>
9721
+                        {
9722
+                            #region 自动派单
9723
+                            //时限
9724
+                            string resdatetime = "";
9725
+                            string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
9726
+                            DataTable dt = DbHelperSQL.Query("select top " + 7 + " F_OffDate from  T_Sys_WorkOFFDays  where F_OffState = 1   and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
9727
+                            resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
9728
+                            resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
9729
+
9730
+                            //交办信息
9731
+                            Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
9732
+                            modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
9733
+                            modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
9734
+                            modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;
9735
+                            modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
9736
+                            modelT_Bus_AssignedInfo.F_AssignedOpinion = "自动派单";//交办意见
9737
+                            modelT_Bus_AssignedInfo.F_State = 1;//0草稿  1正式
9738
+                            modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
9739
+                            modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
9740
+                            modelT_Bus_AssignedInfo.F_IsDelete = 0;
9741
+                            modelT_Bus_AssignedInfo.F_IsOverdue = 0;
9742
+                            modelT_Bus_AssignedInfo.F_IsSure = 0;
9743
+                            modelT_Bus_AssignedInfo.F_IsReload = 0;
9744
+                            modelT_Bus_AssignedInfo.F_IsNext = 0;
9745
+                            modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
9746
+                            modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
9747
+                            //工单信息
9748
+                            Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
9749
+                            keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
9750
+                            // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
9751
+                            keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
9752
+                            //modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
9753
+                            keyValuePairs.Add("F_OtherDeptIds", "");
9754
+                            // modelT_Bus_WorkOrder.F_OtherDeptIds = ""
9755
+                            keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
9756
+                            // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
9757
+                            keyValuePairs.Add("F_AssignTime", DateTime.Now);
9758
+                            // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
9759
+                            workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
9760
+
9761
+
9762
+                            var msgss = userinfo + " 交办了工单,主办单位:" + premodeldept.F_DeptName;
9763
+                            addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
9764
+
9765
+                            if (modeldept.F_IsDept == 2)
9766
+                            {
9767
+                                await SplitOrderNew(modelT_Bus_WorkOrder, modeldept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, "自动派单", curuser).ContinueWith(p =>
9768
+                                {
9769
+
9770
+                                });
9771
+                            }
9772
+                            else
9773
+                            {
9774
+
9775
+                                Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
9776
+                                keyValuePairs1.Add("F_WorkState", 2);
9777
+                                modelT_Bus_WorkOrder.F_WorkState = 2;
9778
+                                new BLL.T_Bus_WorkOrder().UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
9779
+                                await Task.Run(() =>
9780
+                                {
9781
+                                    //addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
9782
+                                });
9783
+                            }
9784
+
9785
+
9786
+                            await Task.Run(() => {
9787
+                                //推送消息表
9788
+                                var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
9789
+
9790
+                                foreach (var u in users)
9791
+                                {
9792
+                                    msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
9793
+                                    if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
9794
+                                    {
9795
+                                        continue;
9796
+                                    }
9797
+                                    else
9798
+                                    {
9799
+                                        string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
9800
+                                        // string mag = modelT_Bus_WorkOrder.F_WorkOrderId;
9801
+                                        //  bool n = SMSController.AddSmS(0, mag, count, u.F_Mobile, "153305", "");
9802
+                                        string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
9803
+                                        string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
9804
+                                       modelT_Bus_WorkOrder.F_WorkOrderId);
9805
+                                    }
9806
+
9807
+                                }
9808
+                            });
9809
+                            #endregion
9810
+                        }).ContinueWith(p => {
9811
+                            System.Diagnostics.Debug.WriteLine(DateTime.Now);
9812
+                        });
9813
+                    }
9814
+
9815
+                    
9680 9816
 
9681 9817
                 }
9682 9818
                 return Success("操作成功");