Ver Código Fonte

工单来源,一单通达

duhongyu 4 anos atrás
pai
commit
134d4c0ea9

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

@@ -15,9 +15,9 @@
15 15
   <!-- 设置邮箱名称 -->
16 16
   <add key="MailName" value="邮件中心" />
17 17
   <!-- 设置邮箱地址 -->
18
-  <add key="MailUserName" value="sqszffwrx@126.com" />
18
+  <add key="MailUserName" value="ayszxx@126.com" />
19 19
   <!-- 设置邮箱密码 -->
20
-  <add key="MailPassword" value="sqszf@123456" />
20
+  <add key="MailPassword" value="5116008" />
21 21
   <!-- 设置邮箱主机 -->
22 22
   <add key="MailServer" value="smtp.126.com"/>
23 23
   <!-- ================== 2:接收邮件参数(必须用pop.126.com) ================== -->

+ 8 - 4
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/DataAnalysisController.cs

@@ -217,7 +217,7 @@ namespace CallCenterApi.Interface.Controllers.report
217 217
         /// <param name="monthdate"></param>
218 218
         /// <param name="isdc"></param>
219 219
         /// <returns></returns>
220
-        public ActionResult GetSimpleReport(string type,string sdate, string edate, string monthdate, int isdc = 0)
220
+        public ActionResult GetSimpleReport(string type,string sdate, string edate, string monthdate, int isdc = 0, string source = "")
221 221
         {
222 222
             DateTime stime = DateTime.Now;
223 223
             DateTime etime = DateTime.Now;
@@ -276,6 +276,7 @@ namespace CallCenterApi.Interface.Controllers.report
276 276
             Dictionary<string, string> paras = new Dictionary<string, string>();
277 277
             paras.Add("@sdate", stime.ToString("yyyy-MM-dd"));
278 278
             paras.Add("@edate", etime.ToString("yyyy-MM-dd"));
279
+            paras.Add("@source", source);
279 280
             var obj = DbHelperSQL.RunProcedure("P_SimpleReport", paras, "SimpleReport");
280 281
             if (isdc == 0)
281 282
             {
@@ -397,7 +398,7 @@ namespace CallCenterApi.Interface.Controllers.report
397 398
         /// <param name="date"></param>
398 399
         /// <param name="isdc"></param>
399 400
         /// <returns></returns>
400
-        public ActionResult GetTellReport(string sdate, string edate, int isdc = 0)
401
+        public ActionResult GetTellReport(string sdate, string edate, int isdc = 0, string source = "")
401 402
         {
402 403
             DateTime stime = DateTime.Now;
403 404
             DateTime etime = DateTime.Now;
@@ -417,6 +418,7 @@ namespace CallCenterApi.Interface.Controllers.report
417 418
             Dictionary<string, string> paras = new Dictionary<string, string>();
418 419
             paras.Add("@sdate", stime.ToString("yyyy-MM-dd"));
419 420
             paras.Add("@edate", etime.ToString("yyyy-MM-dd"));
421
+            paras.Add("@source", source);
420 422
             var obj = DbHelperSQL.RunProcedure("P_TellReport", paras, "TellReport");
421 423
             if (isdc > 0)
422 424
             {
@@ -480,7 +482,7 @@ namespace CallCenterApi.Interface.Controllers.report
480 482
         /// <param name="date"></param>
481 483
         /// <param name="isdc"></param>
482 484
         /// <returns></returns>
483
-        public ActionResult GetYSSatisfaction(string date, int isdc = 0)
485
+        public ActionResult GetYSSatisfaction(string date, int isdc = 0, string source = "")
484 486
         {
485 487
             DateTime dttime = DateTime.Now;
486 488
             if (!string.IsNullOrEmpty(date))
@@ -492,6 +494,7 @@ namespace CallCenterApi.Interface.Controllers.report
492 494
             }
493 495
             Dictionary<string, string> paras = new Dictionary<string, string>();
494 496
             paras.Add("@date", dttime.ToString("yyyy-MM-dd"));
497
+            paras.Add("@source", source);
495 498
             var obj = DbHelperSQL.RunProcedure("P_YSSatisfaction", paras, "YSSatisfaction");
496 499
             return Success("成功", obj);
497 500
         }
@@ -501,7 +504,7 @@ namespace CallCenterApi.Interface.Controllers.report
501 504
         /// <param name="date"></param>
502 505
         /// <param name="isdc"></param>
503 506
         /// <returns></returns>
504
-        public ActionResult GetYSDuration(string date, int isdc = 0)
507
+        public ActionResult GetYSDuration(string date, int isdc = 0, string source = "")
505 508
         {
506 509
             DateTime dttime = DateTime.Now;
507 510
             if (!string.IsNullOrEmpty(date))
@@ -513,6 +516,7 @@ namespace CallCenterApi.Interface.Controllers.report
513 516
             }
514 517
             Dictionary<string, string> paras = new Dictionary<string, string>();
515 518
             paras.Add("@date", dttime.ToString("yyyy")+"-01-01");
519
+            paras.Add("@source", source);
516 520
             var obj = DbHelperSQL.RunProcedure("P_YSDuration", paras, "YSDuration");
517 521
             return Success("成功", obj);
518 522
         }

+ 21 - 10
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/WorkOrderReportController.cs

@@ -261,7 +261,7 @@ namespace CallCenterApi.Interface.Controllers.report
261 261
             }
262 262
             return Success("成功", obj);
263 263
         }
264
-        public ActionResult GetDeptEfficiency(DateTime? start, DateTime? end, bool isExport = false)
264
+        public ActionResult GetDeptEfficiency(DateTime? start, DateTime? end, bool isExport = false,string source="")
265 265
         {
266 266
             if (start == null)
267 267
             {
@@ -275,6 +275,7 @@ namespace CallCenterApi.Interface.Controllers.report
275 275
             Dictionary<string, string> paras = new Dictionary<string, string>();
276 276
             paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd"));
277 277
             paras.Add("@edate", end.Value.ToString("yyyy-MM-dd"));
278
+            paras.Add("@source", source);
278 279
             var obj = DbHelperSQL.RunProcedure("P_DeptEfficiencyReport_1", paras, "DeptEfficiencyReport");
279 280
             var newSet = new DataSet();
280 281
             if (obj != null && obj.Tables[0] != null && obj.Tables[0].Rows.Count > 0)
@@ -685,7 +686,7 @@ namespace CallCenterApi.Interface.Controllers.report
685 686
         /// <param name="start"></param>
686 687
         /// <param name="end"></param>
687 688
         /// <returns></returns>
688
-        public ActionResult GetDeptAssessment(DateTime? start, DateTime? end, bool isExport = false)
689
+        public ActionResult GetDeptAssessment(DateTime? start, DateTime? end, bool isExport = false,string source="")
689 690
         {
690 691
             StringBuilder sb1 = new StringBuilder();
691 692
             StringBuilder sb2 = new StringBuilder();
@@ -701,6 +702,7 @@ namespace CallCenterApi.Interface.Controllers.report
701 702
             Dictionary<string, string> paras = new Dictionary<string, string>();
702 703
             paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd"));
703 704
             paras.Add("@edate", end.Value.ToString("yyyy-MM-dd"));
705
+            paras.Add("@source", source);
704 706
             var obj = DbHelperSQL.RunProcedure("P_DeptAssessmentReport", paras, "DeptAssessmentReport");
705 707
             if (isExport)
706 708
             {
@@ -918,7 +920,7 @@ namespace CallCenterApi.Interface.Controllers.report
918 920
             }
919 921
             return Success("成功", obj);
920 922
         }
921
-        public ActionResult GetUserAccountAssessment(DateTime? start, DateTime? end, bool isExport = false)
923
+        public ActionResult GetUserAccountAssessment(DateTime? start, DateTime? end, bool isExport = false,string source="")
922 924
         {
923 925
             StringBuilder sb1 = new StringBuilder();
924 926
             StringBuilder sb2 = new StringBuilder();
@@ -934,6 +936,7 @@ namespace CallCenterApi.Interface.Controllers.report
934 936
             Dictionary<string, string> paras = new Dictionary<string, string>();
935 937
             paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd HH:mm:ss"));
936 938
             paras.Add("@edate", end.Value.ToString("yyyy-MM-dd HH:mm:ss"));
939
+            paras.Add("@source", source);
937 940
             var obj = DbHelperSQL.RunProcedure("P_UserAssessmentReport_1", paras, "UserAssessmentReport");
938 941
             if (isExport)
939 942
             {
@@ -1379,7 +1382,8 @@ namespace CallCenterApi.Interface.Controllers.report
1379 1382
             }
1380 1383
             return Success("成功", obj);
1381 1384
         }
1382
-        public ActionResult GetAppeal(DateTime? start, DateTime? end, bool isExport = false)
1385
+        public ActionResult GetAppeal(DateTime? start, DateTime? end, bool isExport = false
1386
+            , string source = "")
1383 1387
         {
1384 1388
             if (start == null)
1385 1389
             {
@@ -1394,6 +1398,7 @@ namespace CallCenterApi.Interface.Controllers.report
1394 1398
             Dictionary<string, string> paras = new Dictionary<string, string>();
1395 1399
             paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd"));
1396 1400
             paras.Add("@edate", end.Value.ToString("yyyy-MM-dd"));
1401
+            paras.Add("@source", source);
1397 1402
             var obj = DbHelperSQL.RunProcedure("P_UserAppealReport_1", paras, "UserAppealReport");
1398 1403
             var newSet = new DataSet();var newtable = new DataTable("UserAppealReport");
1399 1404
             #region
@@ -1675,7 +1680,7 @@ namespace CallCenterApi.Interface.Controllers.report
1675 1680
         /// <param name="pageIndex"></param>
1676 1681
         /// <param name="pageSize"></param>
1677 1682
         /// <returns></returns>
1678
-        public ActionResult GetDayWeekMonthReport(DateTime? date, int type = 0, int dateType = 0, bool isExport = false)
1683
+        public ActionResult GetDayWeekMonthReport(DateTime? date, int type = 0, int dateType = 0, bool isExport = false,string  source="")
1679 1684
         {
1680 1685
             if (date == null)
1681 1686
             {
@@ -1685,6 +1690,7 @@ namespace CallCenterApi.Interface.Controllers.report
1685 1690
             paras.Add("@date", date.Value.ToString("yyyy-MM-dd"));
1686 1691
             paras.Add("@datatype", type.ToString());
1687 1692
             paras.Add("@datetype", dateType.ToString());
1693
+            paras.Add("@source", source);
1688 1694
             var obj = DbHelperSQL.RunProcedure("P_DayWeekMonthReport", paras, "DayWeekMonthReport");
1689 1695
             if (isExport)
1690 1696
             {
@@ -1808,7 +1814,7 @@ namespace CallCenterApi.Interface.Controllers.report
1808 1814
             }
1809 1815
             return Success("成功", obj);
1810 1816
         }
1811
-        public ActionResult GetWorkLoad(DateTime? start, DateTime? end, bool isExport = false)
1817
+        public ActionResult GetWorkLoad(DateTime? start, DateTime? end, bool isExport = false, string source = "")
1812 1818
         {
1813 1819
             if (start == null)
1814 1820
             {
@@ -1822,6 +1828,7 @@ namespace CallCenterApi.Interface.Controllers.report
1822 1828
             Dictionary<string, string> paras = new Dictionary<string, string>();
1823 1829
             paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd"));
1824 1830
             paras.Add("@edate", end.Value.ToString("yyyy-MM-dd"));
1831
+            paras.Add("@source", source);
1825 1832
             var obj = DbHelperSQL.RunProcedure("P_LeaderAssessmentReport_1", paras, "LeaderAssessmentReport");
1826 1833
             if (isExport)
1827 1834
             {
@@ -1939,7 +1946,7 @@ namespace CallCenterApi.Interface.Controllers.report
1939 1946
             }
1940 1947
             return Success("成功", obj);
1941 1948
         }
1942
-        public ActionResult GetDeptDayReport(string sdate, string edate, int isdept = 1, bool isExport = false)
1949
+        public ActionResult GetDeptDayReport(string sdate, string edate, int isdept = 1, bool isExport = false,string source="")
1943 1950
         {
1944 1951
             if (string.IsNullOrEmpty(sdate))
1945 1952
             {
@@ -1967,6 +1974,7 @@ namespace CallCenterApi.Interface.Controllers.report
1967 1974
             paras.Add("@sdate", sdate);
1968 1975
             paras.Add("@edate", edate);
1969 1976
             paras.Add("@isdept", isdept.ToString());
1977
+            paras.Add("@source", source);
1970 1978
             var obj = DbHelperSQL.RunProcedure("P_DeptDayReport_1", paras, "DeptDayReport");
1971 1979
             if (obj!=null && obj.Tables[0]!=null && obj.Tables[0].Rows.Count > 0) {
1972 1980
                 for (int i = 0; i < obj.Tables[0].Rows.Count; i++)
@@ -2035,7 +2043,7 @@ namespace CallCenterApi.Interface.Controllers.report
2035 2043
             }
2036 2044
             return Success("成功", obj);
2037 2045
         }
2038
-        public ActionResult GetDept3DayReport(string sdate, string edate, bool isExport = false)
2046
+        public ActionResult GetDept3DayReport(string sdate, string edate, bool isExport = false,string source = "")
2039 2047
         {
2040 2048
             if (string.IsNullOrEmpty(sdate))
2041 2049
             {
@@ -2058,6 +2066,7 @@ namespace CallCenterApi.Interface.Controllers.report
2058 2066
             paras.Add("@sdate", sdate);
2059 2067
             paras.Add("@edate", edate);
2060 2068
             paras.Add("@deptid", deptid.ToString());
2069
+            paras.Add("@source", source);
2061 2070
             var obj = DbHelperSQL.RunProcedure("P_Dept3DayReport_1", paras, "Dept3DayReport");
2062 2071
             if (obj != null && obj.Tables[0] != null && obj.Tables[0].Rows.Count > 0)
2063 2072
             {
@@ -2092,7 +2101,7 @@ namespace CallCenterApi.Interface.Controllers.report
2092 2101
         /// <param name="edate"></param>
2093 2102
         /// <param name="isExport"></param>
2094 2103
         /// <returns></returns>
2095
-        public ActionResult GetDept3SatisfiedReport(string sdate, string edate, bool isExport = false)
2104
+        public ActionResult GetDept3SatisfiedReport(string sdate, string edate, bool isExport = false, string source = "")
2096 2105
         {
2097 2106
             if (string.IsNullOrEmpty(sdate))
2098 2107
             {
@@ -2115,6 +2124,7 @@ namespace CallCenterApi.Interface.Controllers.report
2115 2124
             paras.Add("@sdate", sdate);
2116 2125
             paras.Add("@edate", edate);
2117 2126
             paras.Add("@deptid", deptid.ToString());
2127
+            paras.Add("@source", source);
2118 2128
             var obj = DbHelperSQL.RunProcedure("P_Dept3SatisfiedReport", paras, "Dept3SatisfiedReport");
2119 2129
             if (isExport)
2120 2130
             {
@@ -2131,7 +2141,7 @@ namespace CallCenterApi.Interface.Controllers.report
2131 2141
         /// <param name="edate"></param>
2132 2142
         /// <param name="isExport"></param>
2133 2143
         /// <returns></returns>
2134
-        public ActionResult GetDept3EfficiencyReport(string sdate, string edate, bool isExport = false)
2144
+        public ActionResult GetDept3EfficiencyReport(string sdate, string edate, bool isExport = false, string source = "")
2135 2145
         {
2136 2146
             if (string.IsNullOrEmpty(sdate))
2137 2147
             {
@@ -2154,6 +2164,7 @@ namespace CallCenterApi.Interface.Controllers.report
2154 2164
             paras.Add("@sdate", sdate);
2155 2165
             paras.Add("@edate", edate);
2156 2166
             paras.Add("@deptid", deptid.ToString());
2167
+            paras.Add("@source", source);
2157 2168
             var obj = DbHelperSQL.RunProcedure("P_Dept3EfficiencyReport", paras, "Dept3EfficiencyReport");
2158 2169
             if (isExport)
2159 2170
             {

+ 195 - 17
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs

@@ -8921,7 +8921,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
8921 8921
             #endregion
8922 8922
 
8923 8923
         }
8924
-
8924
+     
8925 8925
         /// <summary>
8926 8926
         /// 添加工单信息
8927 8927
         /// </summary>
@@ -8966,7 +8966,6 @@ namespace CallCenterApi.Interface.Controllers.workorder
8966 8966
                 int business = RequestString.GetInt("business", 0); ;//
8967 8967
                 int ispd = RequestString.GetInt("ispd", 0); ;//是否自动派单
8968 8968
                 int visittype = RequestString.GetInt("visittype", 0); ;//回访方式
8969
-                
8970 8969
                 string phonetype = RequestString.GetFormString("phonetype");//电话类型
8971 8970
                 lock (_MyLock)
8972 8971
                 {
@@ -9001,7 +9000,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
9001 9000
                         modelT_Bus_WorkOrder.F_SplitUser = splituser;
9002 9001
                         modelT_Bus_WorkOrder.F_Level = level;
9003 9002
                         modelT_Bus_WorkOrder.F_VisitType = visittype;
9004
-                        
9003
+
9005 9004
                         modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
9006 9005
                         modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
9007 9006
                                                                                                           // modelT_Bus_WorkOrder.F_IsOpen = isopen;
@@ -9091,6 +9090,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
9091 9090
                             if (string.IsNullOrEmpty(keys))
9092 9091
                                 return Error("自动派单失败,请选择反映类别!");
9093 9092
                             int deptid = 0;
9093
+                          
9094 9094
                             try
9095 9095
                             {
9096 9096
                                 var model = new BLL.T_Sys_DictionaryValue().GetModel
@@ -9109,9 +9109,28 @@ namespace CallCenterApi.Interface.Controllers.workorder
9109 9109
                             {
9110 9110
                                 return Error("自动派单失败,请选择反映类别");
9111 9111
                             }
9112
+                           
9112 9113
                             var modeldept = new BLL.T_Sys_Department().GetModel(deptid);
9113 9114
                             if (modeldept == null)
9114 9115
                                 return Error("自动派单失败,派单单位不存在");
9116
+
9117
+
9118
+                            int typedept = 1;
9119
+                            var maindept = modeldept;
9120
+                            if (modeldept.F_IsDept == 2)
9121
+                            {
9122
+                                typedept = 2;
9123
+                                if (modeldept.F_PartentId > 0)
9124
+                                {
9125
+                                    maindept = department((int)modeldept.F_PartentId);
9126
+                                    if (maindept == null)
9127
+                                        return Error("该单位没有上级单位派单失败");
9128
+                                }
9129
+                                else
9130
+                                {
9131
+                                    return Error("该单位没有上级单位派单失败");
9132
+                                }
9133
+                            }
9115 9134
                             string resdatetime = "";
9116 9135
                             string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
9117 9136
                             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];
@@ -9121,7 +9140,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
9121 9140
                             Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
9122 9141
                             modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
9123 9142
                             modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
9124
-                            modelT_Bus_AssignedInfo.F_MainDeptId = deptid;
9143
+                            modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId ;
9125 9144
                             modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
9126 9145
                             modelT_Bus_AssignedInfo.F_AssignedOpinion = "自动派单";//交办意见
9127 9146
                             modelT_Bus_AssignedInfo.F_State = 1;//0草稿  1正式
@@ -9135,17 +9154,32 @@ namespace CallCenterApi.Interface.Controllers.workorder
9135 9154
                             modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
9136 9155
                             int aid = assignBLL.Add(modelT_Bus_AssignedInfo);
9137 9156
                             modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
9138
-                            modelT_Bus_WorkOrder.F_MainDeptId = deptid;
9157
+                            modelT_Bus_WorkOrder.F_WorkState = 2;
9158
+                            modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
9139 9159
                             modelT_Bus_WorkOrder.F_OtherDeptIds = "";
9140 9160
                             modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
9141 9161
                             modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
9162
+                            if (typedept  == 2)
9163
+                            {
9164
+
9165
+                                if (SplitOrder(modelT_Bus_WorkOrder, modeldept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, "自动派单") == "操作失败")
9166
+                                {
9167
+
9168
+                                    return Error("一键通达失败");
9169
+                                }
9170
+                                else
9171
+                                {
9172
+                                    modelT_Bus_WorkOrder.F_MainDeptID3 = modeldept.F_DeptId.ToString();
9173
+                                    modelT_Bus_WorkOrder.F_WorkState = 4;
9174
+                                }
9175
+                            }
9142 9176
                             workorderBLL.Update(modelT_Bus_WorkOrder);
9143
-                            var msgss = userinfo + " 交办了工单,主办单位:" + modeldept.F_DeptName;
9177
+                            var msgss = userinfo + " 交办了工单,主办单位:" + maindept.F_DeptName;
9144 9178
 
9145 9179
                             addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
9146 9180
 
9147 9181
                             //推送消息表
9148
-                            var users = userBLL.GetModelList(" F_DeptId='" + deptid + "' ");
9182
+                            var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
9149 9183
 
9150 9184
                             foreach (var u in users)
9151 9185
                             {
@@ -9154,7 +9188,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
9154 9188
                                 string mag = modelT_Bus_WorkOrder.F_WorkOrderId;
9155 9189
                                 bool n = SMSController.AddSmS(0, mag, count, u.F_Mobile, "153305", "");
9156 9190
                             }
9157
-                            var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + deptid + ") ");
9191
+                            var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindept.F_DeptId + ") ");
9158 9192
                         }
9159 9193
                         #endregion
9160 9194
                         //推送消息表
@@ -9182,6 +9216,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
9182 9216
                 return Error("权限不足");
9183 9217
             }
9184 9218
         }
9219
+      
9185 9220
 
9186 9221
         /// <summary>
9187 9222
         /// 添加工单信息
@@ -10870,8 +10905,22 @@ namespace CallCenterApi.Interface.Controllers.workorder
10870 10905
 
10871 10906
 
10872 10907
 
10873
-
10874
-
10908
+        private Model .T_Sys_Department department (int PartentId)
10909
+        {
10910
+            var model = new BLL.T_Sys_Department().GetModel(PartentId);
10911
+            if (model.F_IsDept == 1)
10912
+            {
10913
+                return model;
10914
+            }
10915
+            else
10916
+            {
10917
+                if (model.F_PartentId > 0)
10918
+                    model = department((int)model.F_PartentId);
10919
+                else
10920
+                    return null;
10921
+            }
10922
+            return model;
10923
+        }
10875 10924
 
10876 10925
         /// <summary>
10877 10926
         /// 
@@ -10920,8 +10969,24 @@ namespace CallCenterApi.Interface.Controllers.workorder
10920 10969
                     {
10921 10970
                         if (deptlist.Count == 1)
10922 10971
                         {
10972
+                           
10923 10973
                             var deptinfo = deptlist.FirstOrDefault();
10924
-
10974
+                            int type = 1;
10975
+                            var maindept = deptinfo;
10976
+                            if (deptinfo.F_IsDept ==2)
10977
+                            {
10978
+                                type = 2;
10979
+                                if (deptinfo.F_PartentId>0)
10980
+                                {
10981
+                                    maindept = department((int)deptinfo.F_PartentId);
10982
+                                    if (maindept==null )
10983
+                                        return Error("该单位没有上级单位派单失败");
10984
+                                }
10985
+                                else
10986
+                                {
10987
+                                    return Error("该单位没有上级单位派单失败");
10988
+                                }
10989
+                            }
10925 10990
                             if (assignid == 0)
10926 10991
                             {
10927 10992
                                 #region 插入交办记录
@@ -10943,7 +11008,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
10943 11008
                                 {
10944 11009
                                     modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
10945 11010
                                 }
10946
-                                modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
11011
+                                modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;//主办单位id
10947 11012
                                 modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
10948 11013
                                 modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
10949 11014
                                 modelT_Bus_AssignedInfo.F_State = state;//0草稿  1正式
@@ -10983,7 +11048,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
10983 11048
                                         modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
10984 11049
                                     }
10985 11050
 
10986
-                                    modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
11051
+                                    modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;//主办单位id
10987 11052
                                     modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
10988 11053
                                     modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
10989 11054
                                     modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
@@ -11019,10 +11084,24 @@ namespace CallCenterApi.Interface.Controllers.workorder
11019 11084
 
11020 11085
                                     modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
11021 11086
                                 }
11022
-                                modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
11087
+                                modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
11023 11088
                                 modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
11024 11089
                                 modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
11025 11090
                                 modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
11091
+                                if(type ==2)
11092
+                                {
11093
+                                    
11094
+                                    if (SplitOrder (modelT_Bus_WorkOrder ,deptinfo , Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, assignedopinion)=="操作失败")
11095
+                                    {
11096
+
11097
+                                        return Error("一键通达失败");
11098
+                                    }
11099
+                                    else
11100
+                                    {
11101
+                                        modelT_Bus_WorkOrder.F_MainDeptID3 = deptinfo.F_DeptId.ToString();
11102
+                                        modelT_Bus_WorkOrder.F_WorkState = 4;
11103
+                                    }
11104
+                                }
11026 11105
                                 workorderBLL.Update(modelT_Bus_WorkOrder);
11027 11106
                                 #endregion
11028 11107
 
@@ -11040,7 +11119,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
11040 11119
                                 #endregion
11041 11120
 
11042 11121
                                 #region 插入操作记录
11043
-                                var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
11122
+                                var msgss = userinfo + " 交办了工单,主办单位:" + maindept.F_DeptName;
11044 11123
                                 if (!string.IsNullOrEmpty(otherdeptids))
11045 11124
                                 {
11046 11125
                                     string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
@@ -11049,7 +11128,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
11049 11128
                                 addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
11050 11129
 
11051 11130
                                 //推送消息表
11052
-                                var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
11131
+                                var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
11053 11132
 
11054 11133
                                 foreach (var u in users)
11055 11134
                                 {
@@ -11062,9 +11141,11 @@ namespace CallCenterApi.Interface.Controllers.workorder
11062 11141
                         {
11063 11142
                             string newids = ""; string errdeptid = ""; string deptname = "";
11064 11143
 
11144
+                            if (deptlist.Where(x=>x .F_IsDept ==2).Count ()>0)
11145
+                                return Error("派单多单位不能派给三级单位");
11065 11146
                             foreach (var deptinfo in deptlist)
11066 11147
                             {
11067
-                                deptname += deptinfo.F_DeptName + ",";
11148
+                                    deptname += deptinfo.F_DeptName + ",";
11068 11149
                                 #region 新增工单
11069 11150
                                 Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
11070 11151
                                 modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
@@ -11398,6 +11479,103 @@ namespace CallCenterApi.Interface.Controllers.workorder
11398 11479
                 return Error("权限不足");
11399 11480
             }
11400 11481
         }
11482
+
11483
+        /// <summary>
11484
+        /// 派工单
11485
+        /// </summary>
11486
+        /// <returns></returns>
11487
+        //[Authority]
11488
+        public string  SplitOrder(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
11489
+            ,Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion)
11490
+        {
11491
+               
11492
+                Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
11493
+                if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
11494
+                {
11495
+                   
11496
+                        if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
11497
+                        {
11498
+                            // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
11499
+                            using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
11500
+                            {
11501
+                              
11502
+                                    #region 插入派单记录
11503
+                                    modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
11504
+                                    modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
11505
+                                                                                         //  modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
11506
+                                    modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId ;//主办单位id
11507
+                                   
11508
+                                        modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
11509
+                                    modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
11510
+                                    modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿  1正式
11511
+                                    modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
11512
+                                    modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
11513
+                                    modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
11514
+                                    modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
11515
+                                    modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
11516
+                                    modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
11517
+                                    modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
11518
+                                    #endregion
11519
+                                
11520
+                             
11521
+                                if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
11522
+                                {
11523
+                                    #region 保存交办信息
11524
+                                    modelT_Bus_AssignedInfo.F_IsNext = 1;
11525
+                                    modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
11526
+                                    modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
11527
+                                    new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
11528
+                                    #endregion
11529
+                                    #region 保存工单信息
11530
+                                  
11531
+                                  
11532
+                                    #endregion
11533
+
11534
+                                    #region 插入操作记录
11535
+                                    Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
11536
+                                    oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
11537
+                                    oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
11538
+                                    oper.F_State =4;
11539
+
11540
+                                    string userinfo = User.depname + "(" + User.F_UserCode + ")";
11541
+                                    oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
11542
+                                    oper.F_CreateUser = User.F_UserCode;
11543
+                                    oper.F_CreateTime = DateTime.Now;
11544
+                                    oper.F_IsDelete = 0;
11545
+                                    operBLL.Add(oper);
11546
+                                    //推送消息表
11547
+                                    msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
11548
+                                    #endregion
11549
+                                }
11550
+                                trans.Complete();
11551
+                            }
11552
+                            var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId  + "  ");
11553
+                            if (user != null && user.Count > 0)
11554
+                            {
11555
+                                foreach (var it in user)
11556
+                                {
11557
+                                    string count = "你有新工单:" + modelT_Bus_WorkOrder .F_WorkOrderId  + ",请及时查收处理。";
11558
+                                    string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
11559
+                            bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
11560
+                                }
11561
+
11562
+                            }
11563
+                            //二级单位给三级单位转派都有短信提醒
11564
+
11565
+                            return ("操作成功");
11566
+                        }
11567
+                        else
11568
+                        {
11569
+                          return ("操作失败");
11570
+                       }
11571
+                   
11572
+                }
11573
+                else
11574
+                {
11575
+                return ("操作失败");
11576
+            }
11577
+          
11578
+        }
11401 11579
         /// <summary>
11402 11580
         /// 派工单
11403 11581
         /// </summary>