zhupei 4 years ago
parent
commit
ea15b3e4b7

File diff suppressed because it is too large
+ 129 - 68
RMYY_CallCenter_Api.Dal/T_Dev_WorkOrder.cs


+ 60 - 0
RMYY_CallCenter_Api.Model/T_Dev_WorkOrder.cs

@@ -17,6 +17,7 @@ namespace RMYY_CallCenter_Api.Model
17 17
         #region Model
18 18
         private int _f_id;
19 19
         private int? _f_type;
20
+        private int? _f_type1;
20 21
         private string _f_workordercode;
21 22
         private int? _f_proposerdeptid;
22 23
         private string _f_proposercode;
@@ -46,6 +47,12 @@ namespace RMYY_CallCenter_Api.Model
46 47
         private string _f_controlmancode;
47 48
         private string _f_controlmanname;
48 49
         private int? _f_devoutstate = 0;
50
+        private int? _f_woflag = 0;
51
+        private int? _f_devoutnum = 0;
52
+        private int? _f_devinnum = 0;
53
+        private string _f_devname;
54
+        private DateTime? _f_devstoragetime;
55
+        private int _f_woid = 0;
49 56
         /// <summary>
50 57
         /// 
51 58
         /// </summary>
@@ -62,6 +69,11 @@ namespace RMYY_CallCenter_Api.Model
62 69
             set { _f_type = value; }
63 70
             get { return _f_type; }
64 71
         }
72
+        public int? F_Type1
73
+        {
74
+            set { _f_type1 = value; }
75
+            get { return _f_type1; }
76
+        }
65 77
         /// <summary>
66 78
         /// 工单编号
67 79
         /// </summary>
@@ -294,6 +306,54 @@ namespace RMYY_CallCenter_Api.Model
294 306
             set { _f_devoutstate = value; }
295 307
             get { return _f_devoutstate; }
296 308
         }
309
+        /// <summary>
310
+        /// 工单标记:0原工单,1新工单(派生)
311
+        /// </summary>
312
+        public int? F_WoFlag
313
+        {
314
+            set { _f_woflag = value; }
315
+            get { return _f_woflag; }
316
+        }
317
+        /// <summary>
318
+        /// 设备入库数量
319
+        /// </summary>
320
+        public int? F_DevOutNum
321
+        {
322
+            set { _f_devoutnum = value; }
323
+            get { return _f_devoutnum; }
324
+        }
325
+        /// <summary>
326
+        /// 
327
+        /// </summary>
328
+        public int? F_DevInNum
329
+        {
330
+            set { _f_devinnum = value; }
331
+            get { return _f_devinnum; }
332
+        }
333
+        /// <summary>
334
+        /// 入库设备名称
335
+        /// </summary>
336
+        public string F_DevName
337
+        {
338
+            set { _f_devname = value; }
339
+            get { return _f_devname; }
340
+        }
341
+        /// <summary>
342
+        /// 设备入库时间
343
+        /// </summary>
344
+        public DateTime? F_DevStorageTime
345
+        {
346
+            set { _f_devstoragetime = value; }
347
+            get { return _f_devstoragetime; }
348
+        }
349
+        /// <summary>
350
+        /// 原工单ID
351
+        /// </summary>
352
+        public int F_WoID
353
+        {
354
+            set { _f_woid = value; }
355
+            get { return _f_woid; }
356
+        }
297 357
         #endregion Model
298 358
 
299 359
 

+ 1 - 1
RMYY_CallCenter_Api.Model/T_Sys_Menu.cs

@@ -130,7 +130,7 @@ namespace RMYY_CallCenter_Api.Model
130 130
             get { return _f_createtime; }
131 131
         }
132 132
 
133
-        public List<T_Sys_Menu> children { get; set; }
133
+        public List<T_Sys_Menu> button { get; set; }
134 134
         #endregion Model
135 135
 
136 136
     }

+ 1 - 1
RMYY_CallCenter_Api/Controllers/IndexController.cs

@@ -62,7 +62,7 @@ namespace RMYY_CallCenter_Api.Controllers
62 62
             {
63 63
                 foreach (Model.T_Sys_Menu entity in item)
64 64
                 {
65
-                    entity.children = TreeRecursion(data, entity.F_MenuId.ToString());
65
+                    entity.button = TreeRecursion(data, entity.F_MenuId.ToString());
66 66
                     newList.Add(entity);
67 67
                 }
68 68
             }

+ 108 - 33
RMYY_CallCenter_Api/Controllers/WorkOrder/T_Dev_WorkOrderController.cs

@@ -233,7 +233,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
233 233
                 model.F_Type = type;//工单类型  1设备租赁
234 234
                 model.F_Source = "PC端";
235 235
                 model.F_CallID = callid;
236
-                model.F_State = (int)EnumWorkOrderState.assign;//已转派
236
+                model.F_State = (int)EnumDevWorkOrderState.assign;//已转派
237 237
                 model.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
238 238
                 model.F_ProposerDeptId = deptid;
239 239
                 model.F_ProposerCode = usercode;//申请人
@@ -243,7 +243,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
243 243
                 model.F_Remark = remark;
244 244
                 model.F_CreateTime = DateTime.Now;
245 245
                 model.F_CreateCode = User1.F_UserCode;
246
-                model.F_CreateCode = User1.F_UserName;
246
+                model.F_CreateName = User1.F_UserName;
247 247
                 model.F_CarryContents = devmessages.TrimEnd(',');//设备信息
248 248
                 model.F_IsDel = 0;
249 249
                 model.F_ControlManCode = User1.F_UserCode;
@@ -253,7 +253,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
253 253
             {
254 254
                 int clbm = 2002;//设备科
255 255
                 var wmodel = orderbll.GetModel(n);
256
-                AddLog(n, 0, User1.F_UserName + "(" + User1.F_UserCode + ")" + "创建工单", (int)EnumDevItemType.deal, (int)EnumDevItemOpt.create, "", 0, User1);
256
+                AddLog(n, 0, User1.F_UserName + "(" + User1.F_UserCode + ")" + "创建工单", (int)EnumDevItemType.deal, (int)EnumDevItemOpt.create, "", 0, User1);
257 257
                 AssignWO(User1, wmodel, "", "", clbm);
258 258
                 string[] _list = devmessages.TrimEnd(',').Split(',');
259 259
                 for (int i = 0; i < _list.Length; i++)
@@ -302,7 +302,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
302 302
             model.F_Type = type;//工单类型  1设备租赁
303 303
             model.F_Source = "PC端";
304 304
             model.F_CallID = callid;
305
-            model.F_State = (int)EnumWorkOrderState.assign;//已转派
305
+            model.F_State = (int)EnumDevWorkOrderState.assign;//已转派
306 306
             model.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
307 307
             model.F_ProposerDeptId = User1.F_DeptId;
308 308
             model.F_ProposerCode = User1.F_UserCode;//申请人
@@ -319,7 +319,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
319 319
             {
320 320
                 int clbm = 2002;//设备科
321 321
                 var wmodel = orderbll.GetModel(n);
322
-                AddLog(n, 0, User1.F_UserName + "(" + User1.F_UserCode + ")" + "创建工单", (int)EnumDevItemType.deal, (int)EnumDevItemOpt.create, "", 0, User1);
322
+                AddLog(n, 0, User1.F_UserName + "(" + User1.F_UserCode + ")" + "创建工单", (int)EnumDevItemType.deal, (int)EnumDevItemOpt.create, "", 0, User1);
323 323
                 string[] _list = devmessages.TrimEnd(',').Split(',');
324 324
                 for (int i = 0; i < _list.Length; i++)
325 325
                 {
@@ -560,7 +560,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
560 560
         /// <summary>
561 561
         /// 转派工单-设备配送
562 562
         /// </summary>
563
-        private bool AssignTrans(Model.T_Sys_UserAccount nowUser, Model.T_Dev_WorkOrder wokerModel, string cont, string usercode, string username, string userphon, string usertalkie, int type)
563
+        private bool AssignTrans(Model.T_Sys_UserAccount nowUser, Model.T_Dev_WorkOrder wokerModel, string cont, string usercode, string username, string userphon, string usertalkie)
564 564
         {
565 565
             string touser = ""; string tousername = "";
566 566
             int clbm = 0;
@@ -585,19 +585,31 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
585 585
             var optcont = "";
586 586
             if (!string.IsNullOrEmpty(cont))
587 587
                 optcont = ",说明:" + cont;
588
-            if (type == 1)
589
-            {
590
-                optbut = (int)EnumDevItemOpt.assign;
591
-                wostate = (int)EnumDevWorkOrderState.work;//已指派待转运
592
-                content = nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单给 " + tousername + optcont;
593
-                itemid = AddLogTrans(wokerModel.F_Id, wostate, content, (int)EnumDevItemType.deal, optbut, touser, username, userphon, usertalkie,  clbm, nowUser);
594
-            }
595
-            else if (type == 2)
588
+            //if (type == 1)
589
+            //{
590
+            //    optbut = (int)EnumDevItemOpt.assign;
591
+            //    wostate = (int)EnumDevWorkOrderState.work;//已指派待转运
592
+            //    content = nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单给 " + tousername + optcont;
593
+            //    itemid = AddLogTrans(wokerModel.F_Id, wostate, content, (int)EnumDevItemType.deal, optbut, touser, username, userphon, usertalkie,  clbm, nowUser);
594
+            //}
595
+            //else if (type == 2)
596
+            //{
597
+            //    optbut = (int)EnumDevItemOpt.assign;
598
+            //    wostate = (int)EnumDevWorkOrderState.work;//已指派待转运
599
+            //    content = nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单给 " + tousername + optcont;
600
+            //    itemid = AddLogTrans(wokerModel.F_Id, wostate, content, (int)EnumDevItemType.deal, optbut, touser, username, userphon, usertalkie, clbm, nowUser);
601
+            //    if (wokerModel.F_WoID > 0)
602
+            //    {
603
+            //      AddLogTrans(wokerModel.F_WoID, wostate, content, (int)EnumDevItemType.deal, optbut, touser, username, userphon, usertalkie, clbm, nowUser);
604
+            //    }
605
+            //}
606
+            optbut = (int)EnumDevItemOpt.assign;
607
+            wostate = (int)EnumDevWorkOrderState.work;//已指派待转运
608
+            content = nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单给 " + tousername + optcont;
609
+            itemid = AddLogTrans(wokerModel.F_Id, wostate, content, (int)EnumDevItemType.deal, optbut, touser, username, userphon, usertalkie, clbm, nowUser);
610
+            if (wokerModel.F_WoID > 0)
596 611
             {
597
-                optbut = (int)EnumDevItemOpt.assign;
598
-                wostate = (int)EnumDevWorkOrderState.assreback;//已指派待返还
599
-                content = nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单给 " + tousername + optcont;
600
-                itemid = AddLogTrans(wokerModel.F_Id, wostate, content, (int)EnumDevItemType.deal, optbut, touser, username, userphon, usertalkie, clbm, nowUser);
612
+                AddLogTrans(wokerModel.F_WoID, (int)EnumDevWorkOrderState.receive, content, (int)EnumDevItemType.deal, optbut, touser, username, userphon, usertalkie, clbm, nowUser);
601 613
             }
602 614
             #endregion
603 615
             if (itemid > 0)
@@ -627,6 +639,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
627 639
             //设备管理科操作
628 640
             string usercode = "8004";
629 641
             int state = 0;
642
+            string DevoutCounts = "";
630 643
             var ua = userbll.GetModel(usercode);
631 644
             if (woid == 0)
632 645
                 return Error("工单编号错误!");
@@ -647,7 +660,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
647 660
                     string code = _temp[2];
648 661
                     if (name != "" && num > 0)
649 662
                     {
650
-                        string sql = $"F_DeviceName='" + name+ "' and F_WoId="+ woid;
663
+                        string sql = $"F_DeviceName='" + name + "' and F_WoId=" + woid;
651 664
                         var optmodel = optbll.GetModelList(sql).FirstOrDefault();
652 665
                         optmodel.F_GiveNum = num;
653 666
                         optmodel.F_DeviceCode = code;
@@ -662,7 +675,11 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
662 675
                             optmodel.F_State = 1;
663 676
                         else return Error("出库设备数量大于需求数量!");
664 677
                         var n = optbll.Update(optmodel);
665
-                        if (n) continue;
678
+                        if (n)
679
+                        {
680
+                            DevoutCounts += name + ":" + num + ",";
681
+                            continue;
682
+                        }
666 683
                     }
667 684
                     else return Error("设备信息不正确!");
668 685
                 }
@@ -681,10 +698,11 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
681 698
                 omodel.F_HandleByName = ua.F_UserName;
682 699
                 omodel.F_HandleTime = DateTime.Now;//出库时间
683 700
                 omodel.F_State = (int)EnumDevWorkOrderState.checkout;//已出库待指派
701
+                omodel.F_HandleContents = DevoutCounts;
684 702
                 if (orderbll.Update(omodel))
685 703
                 {
686 704
                     #region 写入工单操作记录
687
-                    AddLog(woid, (int)EnumDevWorkOrderState.checkout, ua.F_UserName + "(" + ua.F_UserCode + ")" + "反馈设备已出库", (int)EnumDevItemType.deal, (int)EnumDevItemOpt.assign, "", 0, ua);
705
+                    AddLog(woid, (int)EnumDevWorkOrderState.checkout, ua.F_UserName + "(" + ua.F_UserCode + ")" + "反馈设备已出库", (int)EnumDevItemType.deal, (int)EnumDevItemOpt.checkout, "", 0, ua);
688 706
                     #endregion
689 707
                     return Success("出库成功!");
690 708
                 }
@@ -746,7 +764,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
746 764
             var omodel = orderbll.GetModel(woid);
747 765
             if (omodel != null)
748 766
             {
749
-                bool n = AssignTrans(ua, omodel, remark, usercode, username, phon, talkie, 1);
767
+                bool n = AssignTrans(ua, omodel, remark, usercode, username, phon, talkie);
750 768
                 if (n)
751 769
                 {
752 770
                     return Success("转派成功!");
@@ -781,9 +799,11 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
781 799
             var omodel = orderbll.GetModel(woid);
782 800
             if (omodel != null)
783 801
             {
784
-                bool n = AssignTrans(ua, omodel, remark, usercode, username, phon, talkie, 2);
802
+                bool n = AssignTrans(ua, omodel, remark, usercode, username, phon, talkie);
785 803
                 if (n)
786 804
                 {
805
+                    omodel.F_ControlManCode = ua.F_UserCode;//调度人
806
+                    omodel.F_ControlManName = ua.F_UserName;
787 807
                     return Success("转派成功!");
788 808
                 }
789 809
                 return Error("转派失败!");
@@ -869,12 +889,42 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
869 889
             if (woid == 0)
870 890
                 return Error("工单编号错误!");
871 891
             var omodel = orderbll.GetModel(woid);
872
-            if (omodel != null)
892
+            Model.T_Dev_WorkOrder dmodel = new Model.T_Dev_WorkOrder();
893
+            #region 返还发起新工单
894
+            dmodel.F_Type = omodel.F_Type;//工单类型  1设备租赁
895
+            dmodel.F_Source = "PC端";
896
+            dmodel.F_CallID = omodel.F_CallID;
897
+            dmodel.F_State = (int)EnumDevWorkOrderState.reassign;//已返还待指派
898
+            dmodel.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
899
+            dmodel.F_ProposerDeptId = omodel.F_ProposerDeptId;
900
+            dmodel.F_ProposerCode = omodel.F_ProposerCode;//申请人
901
+            dmodel.F_ProposerName = omodel.F_ProposerName;
902
+            dmodel.F_ProposerPhon = omodel.F_ProposerPhon;
903
+            dmodel.F_DealType = "转派";
904
+            dmodel.F_Remark = omodel.F_Remark;
905
+            dmodel.F_CreateTime = DateTime.Now;
906
+            dmodel.F_CreateCode = ua.F_UserCode;
907
+            dmodel.F_CreateCode = ua.F_UserName;
908
+            dmodel.F_CarryContents = omodel.F_CarryContents;//设备信息
909
+            dmodel.F_IsDel = 0;
910
+            dmodel.F_DevOutState = omodel.F_DevOutState;
911
+            dmodel.F_DevOutNum = omodel.F_DevOutNum;
912
+            dmodel.F_WoFlag = 1;
913
+            dmodel.F_WoID = omodel.F_Id;
914
+            int n = orderbll.Add(dmodel);
915
+            if (n > 0)
873 916
             {
874
-                if (DealWO(ua, omodel, "", "", 4))
875
-                    return Success("操作成功!");
876
-                else return Error("操作失败!");
917
+              AddLog(n, (int)EnumDevWorkOrderState.reassign, ua.F_UserName + "(" + ua.F_UserCode + ")" + "创建返还工单", (int)EnumDevItemType.deal, (int)EnumDevItemOpt.create, "", 0, ua);
918
+              AddLog(woid, (int)EnumDevWorkOrderState.receive, ua.F_UserName + "(" + ua.F_UserCode + ")" + "创建返还工单", (int)EnumDevItemType.deal, (int)EnumDevItemOpt.create, "", 0, ua);
919
+              return Success("操作成功!");
877 920
             }
921
+            #endregion
922
+            //if (omodel != null)
923
+            //{
924
+            //    if (DealWO(ua, omodel, "", "", 4))
925
+            //        return Success("操作成功!");
926
+            //    else return Error("操作失败!");
927
+            //}
878 928
             return Error("操作失败,不存在此工单编号!");
879 929
         }
880 930
         /// <summary>
@@ -911,7 +961,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
911 961
             {
912 962
                 opt = "返还运转设备";
913 963
                 optbut = (int)EnumDevItemOpt.work;
914
-                wostate = (int)EnumDevWorkOrderState.reback;//返还转运中
964
+                wostate = (int)EnumDevWorkOrderState.transport;//返还转运中
915 965
                 if (!string.IsNullOrEmpty(model.F_TransOutPerson))
916 966
                 {
917 967
                     model.F_TransOutPerson += ',' + nowUser.F_UserName + "(" + nowUser.F_UserCode + ")";
@@ -958,6 +1008,10 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
958 1008
                 optcont = ",说明:" + cont;
959 1009
             var content = nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + optcont;
960 1010
             var itemid = AddLog(model.F_Id, wostate, content, (int)EnumDevItemType.deal, optbut, "", 0, nowUser);
1011
+            if (type == 2 && model.F_WoID>0)
1012
+            {
1013
+                AddLog(model.F_WoID, (int)EnumDevWorkOrderState.receive, content, (int)EnumDevItemType.deal, optbut, "", 0, nowUser);
1014
+            }
961 1015
             if (itemid > 0)
962 1016
             {
963 1017
                 #region 处理工单            
@@ -989,6 +1043,8 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
989 1043
             int workstate = 0;
990 1044
             string opt="";
991 1045
             var optcont = "";
1046
+            int totalnum = 0;
1047
+            string storContents = "";
992 1048
             var ua = userbll.GetModel(usercode);
993 1049
             if (woid == 0)
994 1050
                 return Error("工单编号错误!");
@@ -1027,7 +1083,19 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
1027 1083
                         else if (getnum == givenum)
1028 1084
                             optmodel.F_State = 3;
1029 1085
                         var n = optbll.Update(optmodel);
1030
-                        if (n) continue;
1086
+                        if (n)
1087
+                        {
1088
+                            if (!string.IsNullOrEmpty(storContents))
1089
+                            {
1090
+                                storContents +=","+ name +" "+ num +"个";
1091
+                            }
1092
+                            else
1093
+                            {
1094
+                                storContents= name + " " + num +"个";
1095
+                            }
1096
+                            totalnum += num;
1097
+                            continue;
1098
+                        }
1031 1099
                     }
1032 1100
                     else return Error("设备信息不正确!");
1033 1101
                 }
@@ -1051,15 +1119,22 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
1051 1119
                     }
1052 1120
                 }               
1053 1121
                 omodel.F_DevOutState = state;
1054
-                //omodel.F_HandleByCode = usercode;//经办人
1055
-                //omodel.F_HandleByName = ua.F_UserName;
1122
+                omodel.F_HandleByCode = usercode;//经办人
1123
+                omodel.F_HandleByName = ua.F_UserName;
1056 1124
                 omodel.F_State = workstate;
1125
+                omodel.F_DevInNum = totalnum;
1126
+                omodel.F_DevName = storContents;
1127
+                omodel.F_DevStorageTime = DateTime.Now;
1057 1128
                 if (orderbll.Update(omodel))
1058 1129
                 {
1059
-                    if (!string.IsNullOrEmpty(remark))
1060
-                        optcont = ",说明:" + remark;
1130
+                    if (!string.IsNullOrEmpty(storContents))
1131
+                        optcont = ",说明:" + storContents;
1061 1132
                     #region 写入工单操作记录
1062 1133
                     AddLog(woid, workstate, ua.F_UserName + "(" + ua.F_UserCode + ")" + opt+ optcont, (int)EnumDevItemType.deal, (int)EnumDevItemOpt.storage, "", 0, ua);
1134
+                    if (omodel.F_WoID > 0)
1135
+                    {
1136
+                        AddLog(omodel.F_WoID, workstate, ua.F_UserName + "(" + ua.F_UserCode + ")" + opt + optcont, (int)EnumDevItemType.deal, (int)EnumDevItemOpt.storage, "", 0, ua);
1137
+                    }
1063 1138
                     string str = "update ";
1064 1139
                     #endregion
1065 1140
                     return Success("入库成功!");

+ 5 - 5
RMYY_CallCenter_Api/Models/Enum/EnumDevWorkOrderState.cs

@@ -19,16 +19,16 @@ namespace RMYY_CallCenter_Api.Models.Enum
19 19
         checkout,
20 20
         [Description("已指派待转运")]
21 21
         work,
22
-        [Description("接收转运中")]
22
+        [Description("转运中")]
23 23
         transport,
24 24
         [Description("已接收待返还")]
25 25
         receive,
26 26
         [Description("已返还待指派")]
27 27
         reassign,
28
-        [Description("已指派待返还")]
29
-        assreback,
30
-        [Description("返还转运中")]
31
-        reback,
28
+        //[Description("已指派待转运")]
29
+        //assreback,
30
+        //[Description("返还转运中")]
31
+        //reback,
32 32
         [Description("已返还待入库")]
33 33
         storage,
34 34
         [Description("已入库待完结")]