duhongyu лет назад: 5
Родитель
Сommit
273b1a5e52

+ 13 - 0
代码/System.IRepositories/Bus/IBus_ChatLogRepository.cs

@@ -0,0 +1,13 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.Model.Bus;
5
+using System.Text;
6
+
7
+namespace System.IRepositories.Bus
8
+{
9
+    
10
+    public interface IBus_ChatLogRepository : IRepository<T_Bus_ChatLog>
11
+    {
12
+    }
13
+}

+ 13 - 0
代码/System.IRepositories/Bus/IBus_HeadlessPartsRepository.cs

@@ -0,0 +1,13 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.Model.Bus;
5
+using System.Text;
6
+
7
+namespace System.IRepositories.Bus
8
+{
9
+  
10
+    public interface IBus_HeadlessPartsRepository : IRepository<T_Bus_HeadlessParts>
11
+    {
12
+    }
13
+}

+ 31 - 4
代码/System.Model/Bus/T_Bus_AfterSale.cs

@@ -43,10 +43,37 @@ namespace System.Model
43 43
 		private string _f_customer = "";
44 44
 		private string _f_customerphone = "";
45 45
 		private int _f_vipid = 0;
46
-		/// <summary>
47
-		/// 售后编号
48
-		/// </summary>
49
-		public string F_Id
46
+        private string _f_kgremarks = "";
47
+        private string _f_reason = "";
48
+        private string _f_aspiration = "";
49
+        /// <summary>
50
+        /// 处理原因
51
+        /// </summary>
52
+        public string F_Reason
53
+        {
54
+            set { _f_reason = value; }
55
+            get { return _f_reason; }
56
+        }
57
+        /// <summary>
58
+        /// 客户意愿
59
+        /// </summary>
60
+        public string F_Aspiration
61
+        {
62
+            set { _f_aspiration = value; }
63
+            get { return _f_aspiration; }
64
+        }
65
+        /// <summary>
66
+        /// 仓库备注
67
+        /// </summary>
68
+        public string F_KGRemarks
69
+        {
70
+            set { _f_kgremarks = value; }
71
+            get { return _f_kgremarks; }
72
+        }
73
+        /// <summary>
74
+        /// 售后编号
75
+        /// </summary>
76
+        public string F_Id
50 77
 		{
51 78
 			set { _f_id = value; }
52 79
 			get { return _f_id; }

+ 112 - 0
代码/System.Model/Bus/T_Bus_ChatLog.cs

@@ -0,0 +1,112 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Text;
4
+
5
+namespace System.Model.Bus
6
+{
7
+    [Serializable]
8
+    public partial class T_Bus_ChatLog
9
+    {
10
+        public T_Bus_ChatLog()
11
+        { }
12
+        #region Model
13
+        private int _f_id;
14
+        private string _f_woid;
15
+        private string _f_content;
16
+        private string _f_adduser;
17
+        private string _f_addusername;
18
+        private DateTime? _f_addtime;
19
+        private int? _f_isso;
20
+        private int? _f_isdelete;
21
+        private string _f_updateuser;
22
+        private string _f_updateusername;
23
+        private DateTime? _f_updatetime;
24
+        /// <summary>
25
+        /// auto_increment
26
+        /// </summary>
27
+        public int F_ID
28
+        {
29
+            set { _f_id = value; }
30
+            get { return _f_id; }
31
+        }
32
+        /// <summary>
33
+        /// 
34
+        /// </summary>
35
+        public string  F_WoID
36
+        {
37
+            set { _f_woid = value; }
38
+            get { return _f_woid; }
39
+        }
40
+        /// <summary>
41
+        /// 
42
+        /// </summary>
43
+        public string F_Content
44
+        {
45
+            set { _f_content = value; }
46
+            get { return _f_content; }
47
+        }
48
+        /// <summary>
49
+        /// 
50
+        /// </summary>
51
+        public string F_AddUser
52
+        {
53
+            set { _f_adduser = value; }
54
+            get { return _f_adduser; }
55
+        }
56
+        /// <summary>
57
+        /// 
58
+        /// </summary>
59
+        public string F_AddUserName
60
+        {
61
+            set { _f_addusername = value; }
62
+            get { return _f_addusername; }
63
+        }
64
+        /// <summary>
65
+        /// 
66
+        /// </summary>
67
+        public DateTime? F_AddTime
68
+        {
69
+            set { _f_addtime = value; }
70
+            get { return _f_addtime; }
71
+        }
72
+        /// <summary>
73
+        /// 
74
+        /// </summary>
75
+        public int? F_IsSo
76
+        {
77
+            set { _f_isso = value; }
78
+            get { return _f_isso; }
79
+        }
80
+        /// <summary>
81
+        /// 
82
+        /// </summary>
83
+        public int? F_IsDelete
84
+        {
85
+            set { _f_isdelete = value; }
86
+            get { return _f_isdelete; }
87
+        }
88
+        public string F_UpdateUser
89
+        {
90
+            set { _f_updateuser = value; }
91
+            get { return _f_updateuser; }
92
+        }
93
+        /// <summary>
94
+        /// 
95
+        /// </summary>
96
+        public string F_UpdateUserName
97
+        {
98
+            set { _f_updateusername = value; }
99
+            get { return _f_updateusername; }
100
+        }
101
+        /// <summary>
102
+        /// 
103
+        /// </summary>
104
+        public DateTime? F_UpdateTime
105
+        {
106
+            set { _f_updatetime = value; }
107
+            get { return _f_updatetime; }
108
+        }
109
+        #endregion Model
110
+
111
+    }
112
+}

+ 178 - 0
代码/System.Model/Bus/T_Bus_HeadlessParts.cs

@@ -0,0 +1,178 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Text;
4
+
5
+namespace System.Model.Bus
6
+{
7
+    [Serializable]
8
+    public partial class T_Bus_HeadlessParts
9
+    {
10
+        public T_Bus_HeadlessParts()
11
+        { }
12
+        #region Model
13
+        private int _f_id;
14
+        private DateTime? _f_warehousingtime;
15
+        private string _f_customername;
16
+        private string _f_mobile;
17
+        private string _f_oddnumbers;
18
+        private string _f_express;
19
+        private string _f_returndetails;
20
+        private string _f_situation;
21
+        private string _f_customerremarks;
22
+        private string _f_remarks;
23
+        private DateTime? _f_creattime;
24
+        private string _f_creatuser;
25
+        private int? _f_state;
26
+        private DateTime? _f_updatetime;
27
+        private string _f_updateuser;
28
+        private DateTime? _f_confirmtime;
29
+        private string _f_confirmuser;
30
+        private string _f_confirmtel;
31
+        /// <summary>
32
+        /// auto_increment
33
+        /// </summary>
34
+        public int F_ID
35
+        {
36
+            set { _f_id = value; }
37
+            get { return _f_id; }
38
+        }
39
+        /// <summary>
40
+        /// 
41
+        /// </summary>
42
+        public DateTime? F_WarehousingTime
43
+        {
44
+            set { _f_warehousingtime = value; }
45
+            get { return _f_warehousingtime; }
46
+        }
47
+        /// <summary>
48
+        /// 
49
+        /// </summary>
50
+        public string F_CustomerName
51
+        {
52
+            set { _f_customername = value; }
53
+            get { return _f_customername; }
54
+        }
55
+        /// <summary>
56
+        /// 
57
+        /// </summary>
58
+        public string F_Mobile
59
+        {
60
+            set { _f_mobile = value; }
61
+            get { return _f_mobile; }
62
+        }
63
+        /// <summary>
64
+        /// 
65
+        /// </summary>
66
+        public string F_OddNumbers
67
+        {
68
+            set { _f_oddnumbers = value; }
69
+            get { return _f_oddnumbers; }
70
+        }
71
+        /// <summary>
72
+        /// 
73
+        /// </summary>
74
+        public string F_Express
75
+        {
76
+            set { _f_express = value; }
77
+            get { return _f_express; }
78
+        }
79
+        /// <summary>
80
+        /// 
81
+        /// </summary>
82
+        public string F_ReturnDetails
83
+        {
84
+            set { _f_returndetails = value; }
85
+            get { return _f_returndetails; }
86
+        }
87
+        /// <summary>
88
+        /// 
89
+        /// </summary>
90
+        public string F_Situation
91
+        {
92
+            set { _f_situation = value; }
93
+            get { return _f_situation; }
94
+        }
95
+        /// <summary>
96
+        /// 
97
+        /// </summary>
98
+        public string F_CustomerRemarks
99
+        {
100
+            set { _f_customerremarks = value; }
101
+            get { return _f_customerremarks; }
102
+        }
103
+        /// <summary>
104
+        /// 
105
+        /// </summary>
106
+        public string F_Remarks
107
+        {
108
+            set { _f_remarks = value; }
109
+            get { return _f_remarks; }
110
+        }
111
+        /// <summary>
112
+        /// 
113
+        /// </summary>
114
+        public DateTime? F_CreatTime
115
+        {
116
+            set { _f_creattime = value; }
117
+            get { return _f_creattime; }
118
+        }
119
+        /// <summary>
120
+        /// 
121
+        /// </summary>
122
+        public string F_CreatUser
123
+        {
124
+            set { _f_creatuser = value; }
125
+            get { return _f_creatuser; }
126
+        }
127
+        /// <summary>
128
+        /// 
129
+        /// </summary>
130
+        public int? F_State
131
+        {
132
+            set { _f_state = value; }
133
+            get { return _f_state; }
134
+        }
135
+        /// <summary>
136
+        /// 
137
+        /// </summary>
138
+        public DateTime? F_UpdateTime
139
+        {
140
+            set { _f_updatetime = value; }
141
+            get { return _f_updatetime; }
142
+        }
143
+        /// <summary>
144
+        /// 
145
+        /// </summary>
146
+        public string F_UpdateUser
147
+        {
148
+            set { _f_updateuser = value; }
149
+            get { return _f_updateuser; }
150
+        }
151
+        /// <summary>
152
+        /// 
153
+        /// </summary>
154
+        public DateTime? F_ConfirmTime
155
+        {
156
+            set { _f_confirmtime = value; }
157
+            get { return _f_confirmtime; }
158
+        }
159
+        /// <summary>
160
+        /// 
161
+        /// </summary>
162
+        public string F_ConfirmUser
163
+        {
164
+            set { _f_confirmuser = value; }
165
+            get { return _f_confirmuser; }
166
+        }
167
+        /// <summary>
168
+        /// 
169
+        /// </summary>
170
+        public string F_ConfirmTel
171
+        {
172
+            set { _f_confirmtel = value; }
173
+            get { return _f_confirmtel; }
174
+        }
175
+        #endregion Model
176
+
177
+    }
178
+}

+ 1 - 0
代码/System.Model/Bus/T_Bus_Order.cs

@@ -579,6 +579,7 @@ namespace System.Model
579 579
             get { return _f_membernotes; }
580 580
 
581 581
         }
582
+     
582 583
         #endregion Model
583 584
 
584 585
     }

+ 14 - 0
代码/System.Repositories/Bus/Bus_ChatLogRepository.cs

@@ -0,0 +1,14 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.IRepositories.Bus;
5
+using System.Model.Bus;
6
+using System.Text;
7
+
8
+namespace System.Repositories.Bus
9
+{
10
+    
11
+    public class Bus_ChatLogRepository : BaseRepository<T_Bus_ChatLog>, IBus_ChatLogRepository
12
+    {
13
+    }
14
+}

+ 15 - 0
代码/System.Repositories/Bus/Bus_HeadlessPartsRepository.cs

@@ -0,0 +1,15 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.IRepositories;
5
+using System.IRepositories.Bus;
6
+using System.Model.Bus;
7
+using System.Text;
8
+
9
+namespace System.Repositories.Bus
10
+{
11
+  
12
+    public class Bus_HeadlessPartsRepository : BaseRepository<T_Bus_HeadlessParts>, IBus_HeadlessPartsRepository
13
+    {
14
+    }
15
+}

+ 40 - 3
代码/TVShoppingCallCenter_ZLJ/Controllers/CallCenter/CallFunctionController.cs

@@ -37,10 +37,10 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.CallCenter
37 37
         private readonly ISys_AutoDialRepository sys_autodialrepository;
38 38
         private readonly ISys_SystemConfigRepository busSystemConfigRepository;
39 39
         private readonly ICus_VipInfoRepository _cus_vip_infoRepository;//客户
40
-       
40
+        private readonly IBus_AfterSaleRepository busAfterSaleRepository;
41 41
         public CallFunctionController(ISys_SystemConfigRepository _busSystemConfigRepository,ICDRRepository _busCdrRepository,ICall_CallRecordsRepository _busCallRecordsRepository,IConfiguration _configuration, ISys_MobileDataRepository _busMobileDataRepository, ICus_VipInfoRepository cus_vip_infoRepository,
42 42
             ICall_CallOutboundRepository _CallOutboundRecordsRepository, Iauto_cdrRepository _auto_cdrRepository
43
-            , ItaskRepository _taskRepository, ISys_AutoDialRepository _sys_autodialrepository
43
+            , ItaskRepository _taskRepository, ISys_AutoDialRepository _sys_autodialrepository, IBus_AfterSaleRepository _busAfterSaleRepository
44 44
            )
45 45
         {
46 46
             busSystemConfigRepository = _busSystemConfigRepository;
@@ -53,7 +53,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.CallCenter
53 53
             auto_cdrRepository = _auto_cdrRepository;
54 54
             taskRepository = _taskRepository;
55 55
             sys_autodialrepository = _sys_autodialrepository;
56
-           
56
+            busAfterSaleRepository = _busAfterSaleRepository;
57 57
         }
58 58
        
59 59
         /// <summary>
@@ -385,7 +385,44 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.CallCenter
385 385
             }
386 386
             return $"同步情况  成功/总数 = {n1}/{totle}";
387 387
         }
388
+        /// <summary>
389
+        /// 同步仓库
390
+        /// </summary>
391
+        /// <returns></returns>
392
+        [NonAction]
393
+        internal async Task<string> AfterSale()
394
+        {
395
+            List<T_Bus_AfterSale > modellist = await busAfterSaleRepository.GetListALL(q => q.F_CheckStateSH == 0&& q.F_State ==0);
396
+            int totle = 0;
397
+            int n1 = 0;
398
+            if (modellist != null && modellist.Count > 0)
399
+            {
400
+                DateTime t1 = DateTime.Now;
401
+                List<T_Bus_AfterSale> afterSales = new List<T_Bus_AfterSale>();
402
+               foreach (var it in modellist)
403
+                {   
404
+                    try
405
+                    {
406
+                        if ((int)DateTimeConvert.DateDiff(DateInterval.Day, (DateTime)it.F_CheckTimeSH, DateTime.Now) > 60)
407
+                        {
408
+                            it.F_CheckStateKG = 3;
409
+                            it.F_KGRemarks = "超过60天退回";
410
+                            it.F_CheckTimeKG = DateTime.Now;
411
+                            afterSales.Add(it);
412
+                            n1++;
413
+                        }
414
+                    }
415
+                    catch
416
+                    {
388 417
 
418
+                    }
419
+                    totle++;
420
+                }
421
+                await busAfterSaleRepository.AddAndUpdateList(afterSales);
422
+            }
423
+            return $"同步情况  成功/总数 = {n1}/{totle}";
424
+        }
425
+        
389 426
         /// <summary>
390 427
         /// 同步外呼状态
391 428
         /// </summary>

+ 32 - 7
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/AfterSaleController.cs

@@ -486,7 +486,8 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
486 486
                 { modelAfterSale.F_DetailList = input.F_DetailList; }
487 487
                 if (!string.IsNullOrEmpty(input.F_OldDetailList))
488 488
                 { modelAfterSale.F_OldDetailList = input.F_OldDetailList; }
489
-
489
+                modelAfterSale.F_Reason = input.F_Reason;
490
+                modelAfterSale.F_Aspiration = input.F_Aspiration;
490 491
                 modelAfterSale.F_AddTime = DateTime.Now;
491 492
                 modelAfterSale.F_CheckTimeSH = DateTime.Now;
492 493
                 modelAfterSale.F_CheckStateSH = input.F_CheckStateSH;
@@ -495,7 +496,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
495 496
 
496 497
                 modelAfterSale.F_CheckUserXS = modelOrder.F_AddUser;
497 498
 
498
-
499
+               
499 500
                 modelAfterSale.F_Type = input.F_Type;
500 501
                 modelAfterSale.F_Money = input.F_Money;
501 502
 
@@ -806,7 +807,8 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
806 807
                 modelAfterSale.F_CheckStateSH = input.F_CheckStateSH;
807 808
                 modelAfterSale.F_CheckUserSH = UserLogin.UserId.ObjToInt();
808 809
                 modelAfterSale.F_CheckUserNameSH = UserLogin.UserName;
809
-
810
+                modelAfterSale.F_Reason = input.F_Reason;
811
+                modelAfterSale.F_Aspiration = input.F_Aspiration;
810 812
                 modelAfterSale.F_CheckUserXS = modelOrder.F_AddUser;
811 813
 
812 814
                 modelAfterSale.F_Type = input.F_Type;
@@ -1006,13 +1008,13 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
1006 1008
         /// <param name="input"></param>
1007 1009
         /// <returns></returns>
1008 1010
         [HttpPost("getaftersalebypagesh")]
1009
-        public async Task<IActionResult> GetAfterSaleByPageSH(AfterSaleInput input)
1011
+        public async Task<IActionResult> GetAfterSaleByPageSH(AfterSaleInput input,string user="")
1010 1012
         {
1011 1013
 
1012 1014
             #region  拼接条件
1013 1015
 
1014
-            Expression<Func<T_Bus_AfterSale, bool>> eq = a => a.F_CheckUserSH == UserLogin.UserId.ObjToInt()&&a.F_State>-1;
1015
-
1016
+            Expression<Func<T_Bus_AfterSale, bool>> eq = a => a.F_State>-1;
1017
+           
1016 1018
 
1017 1019
             //if (input.F_CheckStateXS > -2)
1018 1020
             //{
@@ -1022,6 +1024,27 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
1022 1024
             {
1023 1025
                 eq = eq.And(a => a.F_CheckStateSH == input.F_CheckStateSH);
1024 1026
             }
1027
+            if (UserLogin.RoleCode == "XS")
1028
+            {
1029
+                eq = eq.And(a => a.F_CheckUserXS == UserLogin.UserId.ObjToInt());
1030
+            }
1031
+            if (input.F_CheckStateKG>0)
1032
+            {
1033
+                if (input.F_CheckStateKG==1)
1034
+                    eq = eq.And(a => a.F_CheckStateKG ==1);
1035
+                else
1036
+                    eq = eq.And(a => a.F_CheckStateKG != 1);
1037
+
1038
+
1039
+            }
1040
+            if (user=="")
1041
+            {
1042
+                eq = eq.And(a => a.F_CheckUserSH == UserLogin.UserId.ObjToInt());
1043
+            }
1044
+            else
1045
+            {
1046
+                eq = eq.And(a => a.F_CheckUserNameSH  == user);
1047
+            }
1025 1048
             if (input.F_State > -2)
1026 1049
             {
1027 1050
                 eq = eq.And(a => a.F_State == input.F_State);
@@ -1147,6 +1170,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
1147 1170
             {
1148 1171
                 conModels.Add(new ConditionalModel() { FieldName = "F_ADFrom", ConditionalType = ConditionalType.Equal, FieldValue = input.F_ADFrom });
1149 1172
             }
1173
+           
1150 1174
             if (!string.IsNullOrEmpty(input.F_Type))
1151 1175
             {
1152 1176
                 conModels.Add(new ConditionalModel() { FieldName = "F_Type", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Type });
@@ -1420,11 +1444,12 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
1420 1444
                     return Error("不能重复审核提交");
1421 1445
                 }
1422 1446
                 modelAfterSale.F_CheckStateKG = input.F_CheckStateKG;
1423
-
1447
+                modelAfterSale.F_KGRemarks = input.F_KGRemarks;
1424 1448
                 modelAfterSale.F_CheckTimeKG = DateTime.Now;
1425 1449
                 modelAfterSale.F_CheckUserKG = UserLogin.UserId.ObjToInt();
1426 1450
                 modelAfterSale.F_CheckUserNameKG = UserLogin.UserName;
1427 1451
                 modelAfterSale.F_CheckUserXS = modeOrder.F_AddUser;
1452
+                modeOrder.F_ExpressFee = input.F_ExpressFee;
1428 1453
                 List<T_Bus_OrderDetail> modelOldDetailList = new List<T_Bus_OrderDetail>();
1429 1454
 
1430 1455
                 //1收到货(根据状态自动创建订单)2货物不符3未收到货

+ 119 - 0
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/ChatLogController.cs

@@ -0,0 +1,119 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.IRepositories.Bus;
5
+using System.Linq;
6
+using System.Model.Bus;
7
+using System.Threading.Tasks;
8
+using Microsoft.AspNetCore.Mvc;
9
+using SqlSugar;
10
+
11
+namespace TVShoppingCallCenter_ZLJ.Controllers.Order
12
+{
13
+  
14
+    [Produces("application/json")]
15
+    [Route("api/[controller]")]
16
+    public class ChatLogController : BaseController
17
+    {
18
+        private readonly IBus_ChatLogRepository bus_ChatLogRepository;
19
+        public ChatLogController(IBus_ChatLogRepository _bus_ChatLogRepository
20
+         )
21
+        {
22
+            bus_ChatLogRepository = _bus_ChatLogRepository;
23
+        }
24
+        /// <summary>
25
+        /// 添加
26
+        /// </summary>
27
+        /// <param name="input"></param>
28
+        /// <returns></returns>
29
+        [HttpPost("add")]
30
+        public async Task<IActionResult> AddAsync(T_Bus_ChatLog input)
31
+        {
32
+            if (string.IsNullOrEmpty(input.F_Content ))
33
+                return Error("请输入备注内容");
34
+            if (string.IsNullOrEmpty(input.F_WoID))
35
+                return Error("请选择工单");
36
+            input.F_AddTime = DateTime.Now;
37
+            input.F_AddUser = UserLogin.UserId;
38
+            input.F_AddUserName = UserLogin.UserName;
39
+            input.F_IsDelete = 0;
40
+            if (await bus_ChatLogRepository.Add(input) > 0)
41
+            {
42
+                return Success("添加成功");
43
+            }
44
+            return Error("添加失败");
45
+        }
46
+        /// <summary>
47
+        /// 修改
48
+        /// </summary>
49
+        /// <param name="input"></param>
50
+        /// <returns></returns>
51
+        [HttpPost("update")]
52
+        public async Task<IActionResult> updateAsync(T_Bus_ChatLog input)
53
+        {
54
+            if (string.IsNullOrEmpty(input.F_Content))
55
+                return Error("请输入备注内容");
56
+            if (string.IsNullOrEmpty(input.F_WoID))
57
+                  return Error("请选择工单");
58
+            if (input.F_ID <= 0)
59
+                return Error("参数错误");
60
+            var model = await bus_ChatLogRepository.GetSingle(x => x.F_ID == input.F_ID);
61
+            if (model == null)
62
+                return Error("参数错误");
63
+            input.F_UpdateTime  = DateTime.Now;
64
+            input.F_UpdateUser  = UserLogin.UserId;
65
+            input.F_UpdateUserName  = UserLogin.UserName;
66
+            input.F_IsDelete = model .F_IsDelete ;
67
+            input.F_AddTime = model.F_AddTime;
68
+            input.F_AddUser = model.F_AddUser;
69
+            input.F_AddUserName = model.F_AddUserName;
70
+            if (await bus_ChatLogRepository.Update(model))
71
+            {
72
+                return Success("修改成功");
73
+            }
74
+            return Error("修改失败");
75
+        }
76
+        /// <summary>
77
+        /// 删除无头件
78
+        /// </summary>
79
+        /// <param name="ids"></param>
80
+        /// <returns></returns>
81
+        [HttpPost("delete")]
82
+        public async Task<IActionResult> Remove(string orderids)
83
+        {
84
+            List<T_Bus_ChatLog> modellist = new List<T_Bus_ChatLog>();
85
+            var res = 0;
86
+            string[] ids = orderids.Split(',');
87
+            if (ids != null && ids.Length > 0)
88
+            {
89
+                try
90
+                {
91
+                    foreach (var item in ids)
92
+                    {
93
+                        var model = await bus_ChatLogRepository.GetSingle(x => x.F_ID == int.Parse(item));
94
+                        model.F_IsDelete  =1;
95
+                        modellist.Add(model);
96
+                    }
97
+                }
98
+                catch
99
+                {
100
+                    return Error("删除失败");
101
+                }
102
+                if (modellist != null && modellist.Count > 0)
103
+                {
104
+                    if (await bus_ChatLogRepository.UpdateListToColumns(modellist, s => new { s.F_IsDelete  }))
105
+                    {
106
+                        return Success("成功");
107
+                    }
108
+                }
109
+                else
110
+                {
111
+                    return Success("内容为空");
112
+                }
113
+
114
+            }
115
+            return Error("删除失败");
116
+
117
+        }
118
+    }
119
+}

+ 297 - 0
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/HeadlessPartsController.cs

@@ -0,0 +1,297 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Common;
4
+using System.Common.Helpers;
5
+using System.IRepositories;
6
+using System.IRepositories.Bus;
7
+using System.Linq;
8
+using System.Linq.Expressions;
9
+using System.Model;
10
+using System.Model.Bus;
11
+using System.Security.Claims;
12
+using System.Threading.Tasks;
13
+using Microsoft.AspNetCore.Mvc;
14
+using SqlSugar;
15
+using TVShoppingCallCenter_ZLJ.Models.Inputs.Order;
16
+
17
+namespace TVShoppingCallCenter_ZLJ.Controllers.Order
18
+{
19
+   
20
+    [Produces("application/json")]
21
+    [Route("api/[controller]")]
22
+    public class HeadlessPartsController : BaseController
23
+    {
24
+        private readonly IBus_HeadlessPartsRepository bus_HeadlessPartsRepository;
25
+        private readonly IBus_ProductRepository _productRepository;
26
+        public HeadlessPartsController(IBus_HeadlessPartsRepository _bus_HeadlessPartsRepository
27
+        , IBus_ProductRepository productRepository)
28
+        {
29
+            bus_HeadlessPartsRepository = _bus_HeadlessPartsRepository;
30
+            _productRepository = productRepository;
31
+        }
32
+        /// <summary>
33
+        /// 添加无头件
34
+        /// </summary>
35
+        /// <param name="input"></param>
36
+        /// <returns></returns>
37
+        [HttpPost("add")]
38
+        public async Task<IActionResult> AddAsync(HeadlessPartsInput input)
39
+        {
40
+            if (string.IsNullOrEmpty(input.F_Mobile ))
41
+                return Error("请输入订购电话");
42
+            T_Bus_HeadlessParts model = new T_Bus_HeadlessParts();
43
+            model.F_Mobile = input.F_Mobile;
44
+            model.F_WarehousingTime = input.F_WarehousingTime;
45
+            model.F_CustomerName = input.F_CustomerName;
46
+            model.F_OddNumbers = input.F_OddNumbers;
47
+            model.F_Express = input.F_Express;
48
+            model.F_ReturnDetails = input.F_ReturnDetails;
49
+            model.F_Situation = input.F_Situation;
50
+            model.F_CustomerRemarks = input.F_CustomerRemarks;
51
+            model.F_Remarks = input.F_Remarks;
52
+            model.F_CreatTime = DateTime .Now ;
53
+            model .F_CreatUser = UserLogin.UserCode ;
54
+            model.F_State  = 0;
55
+            if (await bus_HeadlessPartsRepository.Add (model)>0)
56
+            {
57
+                return Success("添加成功" );
58
+            }
59
+            return Error("添加失败");
60
+        }
61
+        /// <summary>
62
+        /// 修改无头件
63
+        /// </summary>
64
+        /// <param name="input"></param>
65
+        /// <returns></returns>
66
+        [HttpPost("update")]
67
+        public async Task<IActionResult> updateAsync(HeadlessPartsInput input)
68
+        {
69
+            if (string.IsNullOrEmpty(input.F_Mobile))
70
+                return Error("请输入订购电话");
71
+            if (input.F_ID <= 0)
72
+                return Error("参数错误");
73
+            var model = await bus_HeadlessPartsRepository.GetSingle(x => x.F_ID == input.F_ID);
74
+            if (model==null )
75
+                return Error("参数错误");
76
+            model.F_Mobile = input.F_Mobile;
77
+            model.F_WarehousingTime = input.F_WarehousingTime;
78
+            model.F_CustomerName = input.F_CustomerName;
79
+            model.F_OddNumbers = input.F_OddNumbers;
80
+            model.F_Express = input.F_Express;
81
+            model.F_ReturnDetails = input.F_ReturnDetails;
82
+            model.F_Situation = input.F_Situation;
83
+            model.F_CustomerRemarks = input.F_CustomerRemarks;
84
+            model.F_Remarks = input.F_Remarks;
85
+            model.F_UpdateTime = DateTime.Now;
86
+            model .F_UpdateUser = UserLogin.UserCode;
87
+            model.F_CreatTime = model.F_CreatTime;
88
+            model.F_CreatUser = model.F_CreatUser;
89
+            model.F_ConfirmTel = model.F_ConfirmTel;
90
+            model.F_ConfirmTime   = model.F_ConfirmTime;
91
+            model.F_ConfirmUser  = model.F_ConfirmUser;
92
+            model.F_State = model.F_State ;
93
+            if (await bus_HeadlessPartsRepository.Update (model))
94
+            {
95
+                return Success("修改成功");
96
+            }
97
+            return Error("修改失败");
98
+        }
99
+        /// <summary>
100
+        /// 确认无头件
101
+        /// </summary>
102
+        /// <param name="id">id</param>
103
+        /// <returns></returns>
104
+        [HttpPost("operation")]
105
+        public async Task<IActionResult> GetOperationAsync(int id, string tel)
106
+        {
107
+            if (id <= 0)
108
+                return Error("参数错误");
109
+
110
+            var model = await bus_HeadlessPartsRepository.GetSingle(x => x.F_ID  == id);
111
+            if (model == null)
112
+            {
113
+                return Error("获取失败");
114
+            }
115
+            model.F_ConfirmTel = tel;
116
+            model.F_ConfirmTime = DateTime.Now;
117
+            model .F_ConfirmUser = model.F_ConfirmUser;
118
+            model.F_State = 1;
119
+            var obj = await bus_HeadlessPartsRepository.Update(model);
120
+            if (obj)
121
+                return Success("操作成功");
122
+            else
123
+                return Error("操作失败");
124
+        }
125
+        /// <summary>
126
+        /// 删除无头件
127
+        /// </summary>
128
+        /// <param name="ids"></param>
129
+        /// <returns></returns>
130
+        [HttpPost("delete")]
131
+        public async Task<IActionResult> Remove(string orderids)
132
+        {
133
+            List<T_Bus_HeadlessParts> modellist = new List<T_Bus_HeadlessParts>();
134
+            var res = 0;
135
+            string[] ids = orderids.Split(',');
136
+            if (ids != null && ids.Length > 0)
137
+            {
138
+                try
139
+                {
140
+                    foreach (var item in ids)
141
+                    {
142
+                        var model = await bus_HeadlessPartsRepository.GetSingle(x => x.F_ID == int.Parse(item));
143
+                        model.F_State = -1;
144
+                        modellist.Add(model);
145
+                    }
146
+                }
147
+                catch
148
+                {
149
+                    return Error("删除失败");
150
+                }
151
+                if (modellist != null && modellist.Count > 0)
152
+                {
153
+                    if (await bus_HeadlessPartsRepository.UpdateListToColumns(modellist, s => new { s.F_State }))
154
+                    {
155
+                        return Success("成功");
156
+                    }
157
+                }
158
+                else
159
+                {
160
+                    return Success("内容为空");
161
+                }
162
+
163
+            }
164
+            return Error("删除失败");
165
+                
166
+        }
167
+
168
+
169
+
170
+        /// <summary>
171
+        /// 根据分页获取列表
172
+        /// </summary>
173
+        /// <param name="input"></param>
174
+        /// <returns></returns>
175
+        [HttpPost("getbypage")]
176
+        public async Task<IActionResult> GetByPage(DateTime SearchEndTime,DateTime SearchStartTime, DateTime StartWarehousingTime, DateTime EndWarehousingTime,string  Key,string produt,int state=-1,
177
+            int pageindex=1,int pagesize=10)
178
+        {
179
+            #region  拼接条件
180
+            List<IConditionalModel> conModels = new List<IConditionalModel>();
181
+            conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = "0" });
182
+            if (state>-1)
183
+            {
184
+                conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = state+"" });
185
+            }
186
+            if (SearchEndTime != null)
187
+            {
188
+                conModels.Add(new ConditionalModel() { FieldName = "F_CreatTime", ConditionalType = ConditionalType.LessThan, FieldValue = SearchEndTime.ToString("yyyy-MM-dd 23:59:59") });
189
+            }
190
+            if (SearchStartTime != null)
191
+            {
192
+                conModels.Add(new ConditionalModel() { FieldName = "F_CreatTime", ConditionalType = ConditionalType.GreaterThan, FieldValue =SearchStartTime.ToString("yyyy-MM-dd 00:00:01") });
193
+            }
194
+            if (StartWarehousingTime != null)
195
+            {
196
+                conModels.Add(new ConditionalModel() { FieldName = "F_WarehousingTime", ConditionalType = ConditionalType.LessThan, FieldValue = SearchEndTime.ToString("yyyy-MM-dd 23:59:59") });
197
+            }
198
+            if (EndWarehousingTime != null)
199
+            {
200
+                conModels.Add(new ConditionalModel() { FieldName = "F_WarehousingTime", ConditionalType = ConditionalType.GreaterThan, FieldValue = SearchStartTime.ToString("yyyy-MM-dd 00:00:01") });
201
+            }
202
+            if (!string .IsNullOrEmpty (produt))
203
+            {
204
+                conModels.Add(new ConditionalModel() { FieldName = "F_ReturnDetails", ConditionalType = ConditionalType.Like , FieldValue = produt });
205
+            }
206
+            if (!string .IsNullOrEmpty (Key))
207
+            {
208
+                conModels.Add(new ConditionalCollections()
209
+                {
210
+                    ConditionalList = new List<KeyValuePair<WhereType, ConditionalModel>>()
211
+                    {
212
+                        new  KeyValuePair<WhereType, ConditionalModel>( WhereType.And , new ConditionalModel() { FieldName = "F_CustomerName", ConditionalType = ConditionalType.Like , FieldValue = Key}),
213
+                        new  KeyValuePair<WhereType, ConditionalModel>( WhereType.Or, new ConditionalModel() { FieldName = "F_Mobile", ConditionalType = ConditionalType.Like , FieldValue = Key}),
214
+                        new  KeyValuePair<WhereType, ConditionalModel>( WhereType.Or, new ConditionalModel() { FieldName = "F_OddNumbers", ConditionalType = ConditionalType.Like , FieldValue = Key}),
215
+                        new  KeyValuePair<WhereType, ConditionalModel>( WhereType.Or, new ConditionalModel() { FieldName = "F_Express", ConditionalType = ConditionalType.Like , FieldValue = Key}),
216
+                        new  KeyValuePair<WhereType, ConditionalModel>( WhereType.Or, new ConditionalModel() { FieldName = "F_Situation", ConditionalType = ConditionalType.Like , FieldValue = Key}),
217
+                        new  KeyValuePair<WhereType, ConditionalModel>( WhereType.Or, new ConditionalModel() { FieldName = "F_CustomerRemarks", ConditionalType = ConditionalType.Like , FieldValue = Key})
218
+                     }
219
+                });
220
+            }
221
+            #endregion
222
+            RefAsync<int> recordCount = 0;
223
+            PageData<T_Bus_HeadlessParts > list = await bus_HeadlessPartsRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = pageindex, PageSize = pagesize, PageCount = recordCount }, " F_CreatTime ASC");
224
+            PageData<HeadlessPartsInput> returnobj = new PageData<HeadlessPartsInput>() { Totals = list.Totals };
225
+            List<HeadlessPartsInput> returnlist = new List<HeadlessPartsInput>();
226
+            foreach (T_Bus_HeadlessParts t in list.Rows)
227
+            {
228
+                HeadlessPartsInput m = new HeadlessPartsInput();
229
+                ModelConvertHelper<HeadlessPartsInput, T_Bus_HeadlessParts>.ModeToModel(m, t);
230
+                if (!string.IsNullOrEmpty(t.F_ReturnDetails ))
231
+                {
232
+                    string[] F_DetailList = t.F_ReturnDetails .Split("|");
233
+                    
234
+                    foreach (string a1 in F_DetailList)
235
+                    {
236
+                        string[] F_Detail = a1.Split(",");
237
+                        string productid = F_Detail[0];
238
+                        string count = F_Detail[1];
239
+                        var modelProduct = await _productRepository .GetSingle(q => q.F_ProductId == productid);
240
+                        if (modelProduct != null)
241
+                        {
242
+                            if (!string .IsNullOrEmpty ( m.Produt))
243
+                                m.Produt += modelProduct.F_ProductName;
244
+                            else
245
+                                m.Produt +=","+ modelProduct.F_ProductName;
246
+                        }
247
+                    }
248
+                }
249
+                returnlist.Add(m);
250
+            }
251
+            return Success("成功", returnlist);
252
+
253
+        }
254
+
255
+        /// <summary>
256
+        /// 获取无头件详情
257
+        /// </summary>
258
+        /// <param name="input"></param>
259
+        /// <returns></returns>
260
+        [HttpPost("getshdetail")]
261
+        public async Task<IActionResult> GetSHDetail(int id)
262
+        {
263
+            if (id<=0)
264
+            {
265
+                return Error("请选择无头件");
266
+            }
267
+
268
+            T_Bus_HeadlessParts model = await bus_HeadlessPartsRepository.GetSingle(a => a.F_ID  == id  && a.F_State > -1);
269
+            if (model != null)
270
+            {
271
+                if (!string.IsNullOrEmpty(model.F_ReturnDetails ))
272
+                {
273
+                    string[] F_DetailList = model.F_ReturnDetails.Split("|");
274
+                    model.F_ReturnDetails = "";
275
+                    foreach (string a1 in F_DetailList)
276
+                    {
277
+                        string[] F_Detail = a1.Split(",");
278
+                        string productid = F_Detail[0];
279
+                        string count = F_Detail[1];
280
+                        var modelProduct = await _productRepository .GetSingle(q => q.F_ProductId == productid);
281
+                        if (modelProduct != null)
282
+                        {
283
+                            model.F_ReturnDetails = $"{model.F_ReturnDetails}|{productid},{count},{modelProduct.F_ProductName}";
284
+                        }
285
+                        else
286
+                        {
287
+                            model.F_ReturnDetails = $"{model.F_ReturnDetails}|{productid},{count},空货";
288
+                        }
289
+                    }
290
+                }
291
+              
292
+            }
293
+            return Success("成功", model);
294
+
295
+        }
296
+    }
297
+}

+ 0 - 6
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/KGOrderController.cs

@@ -297,10 +297,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
297 297
                 return Error("请输入订单号");
298 298
             if (!(state == 4 || state == 5 || state == 6))
299 299
                 return Error("操作类型不正确");
300
-
301 300
             #endregion
302
-           
303
-
304 301
             T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == orderid && new[] { 3, 4, 5 }.Contains(q.F_State));
305 302
             if (modelOrder == null)
306 303
             {
@@ -326,10 +323,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
326 323
                 modelOrder.F_SendUser = UserLogin.UserId.ObjToInt();
327 324
                 modelOrder.F_SendUserName = UserLogin.UserName;
328 325
             }
329
-
330 326
             modelOrder.F_State = state;
331
-
332
-
333 327
             if (await bus_OrderRepository.Update(modelOrder))
334 328
                 return Success("订单成功审核!");
335 329
             return Error("订单审核失败,请汇报技术支持!");

Разница между файлами не показана из-за своего большого размера
+ 12 - 3
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/OrderController.cs


+ 12 - 1
代码/TVShoppingCallCenter_ZLJ/Controllers/hangfire/HangfireController.cs

@@ -209,7 +209,18 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.hangfire
209 209
             str = await busCallFunctionController.SyncAutodial();
210 210
             return Success(str);
211 211
         }
212
-        
212
+        /// <summary>
213
+        /// 同步仓库未操作
214
+        /// </summary>
215
+        /// <returns></returns>
216
+        [NonAction]
217
+        public async Task<IActionResult> AfterSale()
218
+        {
219
+            string str = "";
220
+            //
221
+            str = await busCallFunctionController.AfterSale();
222
+            return Success(str);
223
+        }
213 224
         #region 月12循环 
214 225
 
215 226
         /// <summary>

+ 8 - 3
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/Order/AfterSaleInput.cs

@@ -180,7 +180,7 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
180 180
 			get { return _f_money; }
181 181
 		}
182 182
 		/// <summary>
183
-		/// 售后状态-1无效0未完成1已完成  主要涉及财务退款(新订单生成)操作
183
+		/// 售后状态-1无效0未完成1已完成  主要涉及财务退款(新订单生成)操作2仓库待审核
184 184
 		/// </summary>
185 185
 		public int F_State
186 186
 		{
@@ -307,8 +307,13 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
307 307
 			set { _f_vipid = value; }
308 308
 			get { return _f_vipid; }
309 309
 		}
310
-		#endregion Model
310
+        public string F_KGRemarks { get; set; }
311
+        public decimal    F_ExpressFee { get; set; }
312
+        public string F_Reason { get; set; }
313
+        public string F_Aspiration { get; set; }
314
+      
315
+        #endregion Model
311 316
 
312
-	}
317
+    }
313 318
 }
314 319
 

+ 174 - 0
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/Order/HeadlessPartsInput.cs

@@ -0,0 +1,174 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Threading.Tasks;
5
+
6
+namespace TVShoppingCallCenter_ZLJ.Models.Inputs.Order
7
+{
8
+    public class HeadlessPartsInput: BaseInput
9
+    {
10
+        private int _f_id;
11
+        private DateTime? _f_warehousingtime;
12
+        private string _f_customername;
13
+        private string _f_mobile;
14
+        private string _f_oddnumbers;
15
+        private string _f_express;
16
+        private string _f_returndetails;
17
+        private string _f_situation;
18
+        private string _f_customerremarks;
19
+        private string _f_remarks;
20
+        private DateTime? _f_creattime;
21
+        private string _f_creatuser;
22
+        private int? _f_state;
23
+        private DateTime? _f_updatetime;
24
+        private string _f_updateuser;
25
+        private DateTime? _f_confirmtime;
26
+        private string _f_confirmuser;
27
+        private string _f_confirmtel;
28
+        /// <summary>
29
+        /// auto_increment
30
+        /// </summary>
31
+        public int F_ID
32
+        {
33
+            set { _f_id = value; }
34
+            get { return _f_id; }
35
+        }
36
+        /// <summary>
37
+        /// 
38
+        /// </summary>
39
+        public DateTime? F_WarehousingTime
40
+        {
41
+            set { _f_warehousingtime = value; }
42
+            get { return _f_warehousingtime; }
43
+        }
44
+        /// <summary>
45
+        /// 
46
+        /// </summary>
47
+        public string F_CustomerName
48
+        {
49
+            set { _f_customername = value; }
50
+            get { return _f_customername; }
51
+        }
52
+        /// <summary>
53
+        /// 
54
+        /// </summary>
55
+        public string F_Mobile
56
+        {
57
+            set { _f_mobile = value; }
58
+            get { return _f_mobile; }
59
+        }
60
+        /// <summary>
61
+        /// 
62
+        /// </summary>
63
+        public string F_OddNumbers
64
+        {
65
+            set { _f_oddnumbers = value; }
66
+            get { return _f_oddnumbers; }
67
+        }
68
+        /// <summary>
69
+        /// 
70
+        /// </summary>
71
+        public string F_Express
72
+        {
73
+            set { _f_express = value; }
74
+            get { return _f_express; }
75
+        }
76
+        /// <summary>
77
+        /// 
78
+        /// </summary>
79
+        public string F_ReturnDetails
80
+        {
81
+            set { _f_returndetails = value; }
82
+            get { return _f_returndetails; }
83
+        }
84
+        /// <summary>
85
+        /// 
86
+        /// </summary>
87
+        public string F_Situation
88
+        {
89
+            set { _f_situation = value; }
90
+            get { return _f_situation; }
91
+        }
92
+        /// <summary>
93
+        /// 
94
+        /// </summary>
95
+        public string F_CustomerRemarks
96
+        {
97
+            set { _f_customerremarks = value; }
98
+            get { return _f_customerremarks; }
99
+        }
100
+        /// <summary>
101
+        /// 
102
+        /// </summary>
103
+        public string F_Remarks
104
+        {
105
+            set { _f_remarks = value; }
106
+            get { return _f_remarks; }
107
+        }
108
+        /// <summary>
109
+        /// 
110
+        /// </summary>
111
+        public DateTime? F_CreatTime
112
+        {
113
+            set { _f_creattime = value; }
114
+            get { return _f_creattime; }
115
+        }
116
+        /// <summary>
117
+        /// 
118
+        /// </summary>
119
+        public string F_CreatUser
120
+        {
121
+            set { _f_creatuser = value; }
122
+            get { return _f_creatuser; }
123
+        }
124
+        /// <summary>
125
+        /// 
126
+        /// </summary>
127
+        public int? F_State
128
+        {
129
+            set { _f_state = value; }
130
+            get { return _f_state; }
131
+        }
132
+        /// <summary>
133
+        /// 
134
+        /// </summary>
135
+        public DateTime? F_UpdateTime
136
+        {
137
+            set { _f_updatetime = value; }
138
+            get { return _f_updatetime; }
139
+        }
140
+        /// <summary>
141
+        /// 
142
+        /// </summary>
143
+        public string F_UpdateUser
144
+        {
145
+            set { _f_updateuser = value; }
146
+            get { return _f_updateuser; }
147
+        }
148
+        /// <summary>
149
+        /// 
150
+        /// </summary>
151
+        public DateTime? F_ConfirmTime
152
+        {
153
+            set { _f_confirmtime = value; }
154
+            get { return _f_confirmtime; }
155
+        }
156
+        /// <summary>
157
+        /// 
158
+        /// </summary>
159
+        public string F_ConfirmUser
160
+        {
161
+            set { _f_confirmuser = value; }
162
+            get { return _f_confirmuser; }
163
+        }
164
+        /// <summary>
165
+        /// 
166
+        /// </summary>
167
+        public string F_ConfirmTel
168
+        {
169
+            set { _f_confirmtel = value; }
170
+            get { return _f_confirmtel; }
171
+        }
172
+        public string Produt { get; set; }
173
+    }
174
+}

+ 5 - 1
代码/TVShoppingCallCenter_ZLJ/Startup.cs

@@ -156,7 +156,8 @@ namespace TVShoppingCallCenter_ZLJ
156 156
             services.AddTransient<ICDRRepository, CDRRepository>(); 
157 157
             services.AddTransient<ISysUser_GradeRepository, SysUser_GradeRepository>();
158 158
             services.AddTransient<ISysUser_TeamGradeRepository, SysUser_TeamGradeRepository>();
159
-
159
+           
160
+            
160 161
             services.AddHangfire(x => x.UseStorage(new MySqlStorage(BaseContext.DB_ConnectionString, new MySqlStorageOptions
161 162
             {
162 163
                 TransactionIsolationLevel = IsolationLevel.ReadCommitted,
@@ -216,6 +217,8 @@ namespace TVShoppingCallCenter_ZLJ
216 217
             services.AddTransient<ISys_BottomNumberRepository, Sys_BottomNumberRepository>();
217 218
             services.AddTransient<ICus_MembershipRepository, Cus_MembershipRepository>();
218 219
             services.AddTransient<IBus_OrderlogsRepository, Bus_OrderlogsRepository>();
220
+            services.AddTransient<IBus_HeadlessPartsRepository, Bus_HeadlessPartsRepository>();
221
+            services.AddTransient<IBus_ChatLogRepository, Bus_ChatLogRepository>();
219 222
             #endregion
220 223
 
221 224
 
@@ -271,6 +274,7 @@ namespace TVShoppingCallCenter_ZLJ
271 274
             RecurringJob.AddOrUpdate<HangfireController>(a => a.MinutelyRecurring(), Cron.Minutely, TimeZoneInfo.Local, "minutely");
272 275
             RecurringJob.AddOrUpdate<HangfireController>(a => a.MinutelyOutbound(), Cron.Minutely, TimeZoneInfo.Local, "outbound");
273 276
             RecurringJob.AddOrUpdate<HangfireController>(a => a.AutodialOutbound(), Cron.Minutely, TimeZoneInfo.Local, "autodial");
277
+            RecurringJob.AddOrUpdate<HangfireController>(a => a.AutodialOutbound(), Cron.Monthly , TimeZoneInfo.Local, "autodial");
274 278
             //秒 分 时 日   *每
275 279
             RecurringJob.AddOrUpdate<HangfireController>(a => a.Month12Recurring(), "0 0 0 12 * ?", TimeZoneInfo.Local, "month12");
276 280
             #region steeltoe