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

+ 21 - 9
代码/System.Model/Bus/T_Bus_Order.cs

@@ -68,14 +68,16 @@ namespace System.Model
68 68
 		private string _f_customertel = "";
69 69
 		private int _f_isexpress = 0;
70 70
 		private string _f_tag = "";
71
+        private int _f_ispayment = 0;
71 72
 
72
-		private string _f_recommendName = "";
73
+       
74
+        private string _f_recommendName = "";
75
+      
73 76
 
74
-
75
-		/// <summary>
76
-		/// 推荐人姓名
77
-		/// </summary>
78
-		public string F_RecommendName
77
+        /// <summary>
78
+        /// 推荐人姓名
79
+        /// </summary>
80
+        public string F_RecommendName
79 81
 		{
80 82
 			set { _f_recommendName = value; }
81 83
 			get { return _f_recommendName; }
@@ -295,7 +297,7 @@ namespace System.Model
295 297
 			get { return _f_usescore; }
296 298
 		}
297 299
 		/// <summary>
298
-		///  订单状态 -1无效 0暂存 1提交  2KF退回  3通过 4无货 5已分拣 6已发货
300
+		///  订单状态 -1无效 0暂存 1提交  2KF退回  3分仓 4无货 5已分拣 6已发货 7付款待审核 8分物流 
299 301
 		/// </summary>
300 302
 		public int F_State
301 303
 		{
@@ -550,8 +552,18 @@ namespace System.Model
550 552
 			set { _f_sendusername = value; }
551 553
 			get { return _f_sendusername; }
552 554
 		}
553
-		#endregion Model
555
+        /// <summary>
556
+        /// 是否提前付款
557
+        /// </summary>
558
+        public int F_IsPayment
559
+        {
560
+            set { _f_ispayment = value; }
561
+            get { return _f_ispayment; }
562
+        }
563
+    
564
+      
565
+        #endregion Model
554 566
 
555
-	}
567
+    }
556 568
 }
557 569
 

+ 30 - 6
代码/System.Model/Bus/T_Bus_Product.cs

@@ -46,12 +46,15 @@ namespace System.Model
46 46
 		private int _f_freezestock = 0;
47 47
 		private int _f_stock1 = 0;
48 48
 		private int _f_freezestock1 = 0;
49
+        private int _f_usenumber = 0;
50
+        private int _f_match = 0;
51
+        private int _f_match1 = 0;
49 52
 
50 53
 
51
-		/// <summary>
52
-		/// 产品编号ID
53
-		/// </summary>
54
-		public string F_ProductId
54
+        /// <summary>
55
+        /// 产品编号ID
56
+        /// </summary>
57
+        public string F_ProductId
55 58
 		{
56 59
 			set { _f_productid = value; }
57 60
 			get { return _f_productid; }
@@ -339,9 +342,30 @@ namespace System.Model
339 342
 			set { _f_freezestock1 = value; }
340 343
 			get { return _f_freezestock1; }
341 344
 		}
345
+        public int F_Match
346
+        {
347
+
348
+            set { _f_match = value; }
349
+            get { return _f_match; }
350
+
351
+
352
+        }
353
+        public int F_Match1
354
+        {
355
+
356
+            set { _f_match1 = value; }
357
+            get { return _f_match1; }
358
+
342 359
 
343
-		#endregion Model
360
+        }
361
+        
362
+        public int F_UseNumber
363
+        {
364
+            set { _f_usenumber= value; }
365
+            get { return _f_usenumber; }
366
+        }
367
+        #endregion Model
344 368
 
345
-	}
369
+    }
346 370
 }
347 371
 

+ 47 - 1
代码/TVShoppingCallCenter_ZLJ/Controllers/CallCenter/CallFunctionController.cs

@@ -385,7 +385,53 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.CallCenter
385 385
             }
386 386
             return $"同步情况  成功/总数 = {n1}/{totle}";
387 387
         }
388
-       
389 388
 
389
+        /// <summary>
390
+        /// 同步外呼状态
391
+        /// </summary>
392
+        /// <returns></returns>
393
+        [NonAction]
394
+        internal async Task<string> SyncArchivePool()
395
+        {
396
+            List<task> modellist = await taskRepository.GetListALL(q => q.status == 0 && q.state == 1);
397
+            int totle = 0;
398
+            int n = 0;
399
+            int n1 = 0;
400
+            if (modellist != null && modellist.Count > 0)
401
+            {
402
+                List<T_Sys_AutoDial> modelAutoDial = new List<T_Sys_AutoDial>();
403
+                List<task> taskList = new List<task>();
404
+                foreach (task it in modellist)
405
+                {
406
+                    var AutoDial = await sys_autodialrepository.GetSingle(q => q.F_ID == it.outbound_id);
407
+                    if (AutoDial != null)
408
+                    {
409
+                        AutoDial.F_ISOutbound = 1;
410
+                        modelAutoDial.Add(AutoDial);
411
+                        n++;
412
+                    }
413
+                    it.status = 1;
414
+                    taskList.Add(it);
415
+          
416
+                    n1++;
417
+                    if (n >= 2000)
418
+                    {
419
+                        await sys_autodialrepository.AddAndUpdateList(modelAutoDial);
420
+                        modelAutoDial.Clear();
421
+                        n = 0;
422
+                    }
423
+                    if (n1 >= 2000)
424
+                    {
425
+                        await taskRepository.UpdateList(taskList);
426
+                        taskList.Clear();
427
+                        n1 = 0;
428
+                    }
429
+                }
430
+                await sys_autodialrepository.AddAndUpdateList(modelAutoDial);
431
+                await taskRepository.UpdateList(taskList);
432
+
433
+            }
434
+            return $"同步情况  成功/总数 = {n1}/{totle}";
435
+        }
390 436
     }
391 437
 }

+ 1 - 0
代码/TVShoppingCallCenter_ZLJ/Controllers/Customer/VIPInfoController.cs

@@ -322,6 +322,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Customer
322 322
                 model.F_Lastholetime  = call[call.Count -1].BeginTime;
323 323
             }
324 324
            
325
+           
325 326
                
326 327
             if (await _cus_vip_infoRepository.GetCount(x => x.F_Mobile == model.F_Mobile && x.F_Name == input.name) > 0)
327 328
             {

+ 229 - 10
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/KFOrderController.cs

@@ -110,9 +110,146 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
110 110
             }
111 111
             return Success("请选择要导入的文件");
112 112
         }
113
+        /// <summary>
114
+        /// 上传文件并导入数据库
115
+        /// </summary>
116
+        /// <returns></returns>
117
+        [HttpPost("importorderbackexcel")]
118
+        public async Task<IActionResult> ImportorderbackExcel(int state=0,int headrow = 0)
119
+        {
120
+            Microsoft.AspNetCore.Http.IFormFile _upfile = Request.Form.Files[0];
121
+            if (!_upfile.ContentType.Equals("application/vnd.ms-excel") && !_upfile.ContentType.Equals("application/x-xls") && !_upfile.ContentType.Equals("application/x-xlsx") && !_upfile.ContentType.Equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") && !_upfile.ContentType.Equals("application/octet-stream"))
122
+                return Error($"请正确上传Excel文件:file.ContentType={_upfile.ContentType}");
123
+            NPOIHelper npoi = new NPOIHelper();
124
+            var dtExcel = npoi.ExcelToTable1(_upfile, headrow);
125
+            int num = dtExcel.Rows.Count;
126
+            var cols = dtExcel.Columns;
127
+            int colnum = cols.Count;
128
+            string errmsg = string.Empty;
129
+            string user = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
130
+            List<T_Bus_Order> orderLIst = new List<T_Bus_Order>();
131
+            if (num > 0)
132
+            {
133
+                int index = 1;
134
+                foreach (DataRow dr in dtExcel.Rows)
135
+                {
136
+
137
+                    T_Bus_Order modelOrder = new T_Bus_Order();
138
+                    if (dr.Table.Columns.Contains("订单号"))
139
+                    {
140
+                        if (!string.IsNullOrEmpty(dr["订单号"].ToString()))
141
+                        {
142
+                            modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == dr["订单号"].ToString());
143
+                            if (modelOrder==null )
144
+                            {
145
+                                errmsg = errmsg + "\r\n第" + index + "行导入失败!订单不存在";
146
+                                continue;
147
+                            }
148
+                        }
149
+                        else
150
+                        {
151
+                            errmsg = errmsg + "\r\n第" + index + "行导入失败!订单不存在";
152
+                            continue;
153
+                        }
154
+                    }
155
+                    else
156
+                    {
157
+                        return Error("模板错误,请选择正确的模板");
158
+                    }
159
+                   if (state ==1)
160
+                    {
161
+                        if (dr.Table.Columns.Contains("退回说明"))
162
+                        {
163
+                            modelOrder.F_CheckRemark = dr["退回说明"].ToString();
164
+                            modelOrder.F_State = 2;
165
+                        }
166
+                        else
167
+                        {
168
+                            return Error("模板错误,请选择正确的模板");
169
+                        }
170
+                    }
171
+                   else
172
+                    {
173
+                        modelOrder.F_State = 1;
174
+                    }
175
+                    modelOrder.F_CheckUser = UserLogin.UserId.ObjToInt();
176
+                    modelOrder.F_CheckUserName = UserLogin.UserName;
177
+                    modelOrder.F_CheckTime = DateTime.Now;
178
+                    orderLIst.Add(modelOrder);
179
+                   
180
+                    index++;
181
+
182
+                }
183
+                
184
+                if (!await bus_OrderRepository.UpdateList (orderLIst))
185
+                {
186
+                    if (!string.IsNullOrEmpty(errmsg))
187
+                    {
188
+                        errmsg = errmsg + "导入失败!";
189
+                    }
190
+                    else
191
+                    {
192
+                        errmsg ="导入失败!";
193
+                    }
194
+                }
195
+            }
196
+            else
197
+            {
198
+                return Error("文件中无数据");
199
+            }
200
+
201
+            if (!string.IsNullOrEmpty(errmsg))
202
+            {
203
+                return Error(errmsg);
204
+            }
205
+
206
+            return Success("导入成功");
207
+        }
208
+        /// <summary>
209
+        /// 分仓
210
+        /// </summary>
211
+        /// <param name="orderids"></param>
212
+        /// <param name="stock"></param>
213
+        /// <returns></returns>
214
+        [HttpPost("orderback")]
215
+        public async Task<IActionResult> OrderBack(string orderids,string remark, int  state=0)
216
+        {
217
+
218
+            if (string.IsNullOrEmpty(orderids))
219
+                return Error("请选择订单号");
220
+            string msg = "";
221
+            string[] ids = orderids.Split(',');
222
+            List<T_Bus_Order> orderLIst = new List<T_Bus_Order>();
223
+            foreach (var it in ids)
224
+            {
225
+
226
+                T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == it);
227
+               
228
+                modelOrder.F_CheckUser = UserLogin.UserId.ObjToInt();
229
+                modelOrder.F_CheckUserName = UserLogin.UserName;
230
+                modelOrder.F_CheckTime = DateTime.Now;
231
+                if (state==0)
232
+                {
233
+                    modelOrder.F_CheckRemark = remark;
234
+                   modelOrder.F_State = 2;
235
+                }
236
+                else
237
+                {
238
+                    modelOrder.F_State = 1;
239
+                }
240
+                orderLIst.Add(modelOrder);
241
+            }
242
+            if (await bus_OrderRepository.UpdateList(orderLIst))
243
+            {
244
+                return Success("退回成功");
245
+            }
246
+            else
247
+                return Error("退回失败");
113 248
 
114 249
 
115 250
 
251
+
252
+        }
116 253
         /// <summary>
117 254
         /// 订单二审 审完 走发货
118 255
         /// </summary>
@@ -221,7 +358,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
221 358
         /// <param name="input"></param>
222 359
         /// <returns></returns>
223 360
         [HttpPost("/api/order/getorderlistbykfpage")]
224
-        public async Task<IActionResult> GetOrderListByKFPage(OrderInput input,int PayState=0,int state=-1)
361
+        public async Task<IActionResult> GetOrderListByKFPage(OrderInput input,string Product,int PayState=0,int state=-1)
225 362
         {
226 363
 
227 364
             List<IConditionalModel> conModels = new List<IConditionalModel>();
@@ -326,6 +463,11 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
326 463
             {
327 464
                 conModels.Add(new ConditionalModel() { FieldName = "F_Stock", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Stock });
328 465
             }
466
+            if (input.F_IsExpress>-1)
467
+            {
468
+                conModels.Add(new ConditionalModel() { FieldName = "F_IsExpress", ConditionalType = ConditionalType.Equal, FieldValue = input.F_IsExpress.ToString () });
469
+            }
470
+            
329 471
             if (input.F_PayState > -1)
330 472
             {
331 473
                 if (PayState>0)
@@ -365,12 +507,12 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
365 507
                 conModels.Add(new ConditionalModel() { FieldName = "F_IsExpress", ConditionalType = ConditionalType.Equal, FieldValue = input.F_IsExpress.ToString() });
366 508
             }
367 509
 
368
-
510
+           
369 511
 
370 512
 
371 513
             #endregion
372 514
             RefAsync<int> recordCount = 0;
373
-            PageData<T_Bus_Order> list = await bus_OrderRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = recordCount }, " F_AddTime DESC");
515
+            PageData<T_Bus_Order> list = await bus_OrderRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = recordCount }, " F_AddTime ASC");
374 516
             PageData<OrderInput> returnobj = new PageData<OrderInput>() { Totals = list.Totals };
375 517
             List<OrderInput> returnlist = new List<OrderInput>();
376 518
             foreach (T_Bus_Order t in list.Rows)
@@ -392,15 +534,23 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
392 534
                 }
393 535
                 #endregion
394 536
                 m.OrderDetailList = orderDetailInputs;
395
-
537
+                if (!string.IsNullOrEmpty(Product))
538
+                {
539
+                    if (orderDetailInputs.Select (x=>x.F_ProductId ==Product ).Count ()>0 )
540
+                        returnlist.Add(m);
541
+                }
542
+                else 
396 543
                 returnlist.Add(m);
397 544
             }
398
-            returnobj.Rows = returnlist;
545
+           
546
+                returnobj.Rows = returnlist;
547
+
399 548
 
400 549
             return Success("成功", returnobj);
401 550
 
402 551
 
403 552
         }
553
+     
404 554
 
405 555
         /// <summary>
406 556
         /// 修改订单 
@@ -483,14 +633,9 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
483 633
             if (!string.IsNullOrEmpty(modelOrder.F_Express))
484 634
                 modelOrder.F_IsExpress = 1;
485 635
             //选填 关联属性
486
-
487
-
488
-
489 636
             modelOrder.F_ExpressFee = input.F_ExpressFee;
490 637
             modelOrder.F_State = input.F_State;
491 638
             modelOrder.F_Status = 0;
492
-
493
-
494 639
             //必须属性 系统生成
495 640
             modelOrder.F_CheckTime = DateTime.Now;
496 641
             modelOrder.F_CheckUser = UserLogin.UserId.ObjToInt();
@@ -604,7 +749,81 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
604 749
             return Error("失败,请重试!");
605 750
 
606 751
         }
752
+        /// <summary>
753
+        /// 分仓
754
+        /// </summary>
755
+        /// <param name="orderids"></param>
756
+        /// <param name="stock"></param>
757
+        /// <returns></returns>
758
+        [HttpPost("updatestock")]
759
+        public async Task<IActionResult> UpdateStock(string orderids, string stock)
760
+        {
761
+
762
+            if (string.IsNullOrEmpty(orderids))
763
+                return Error("请选择订单号");
764
+            if (string.IsNullOrEmpty(stock))
765
+                return Error("请选择出货仓");
766
+            T_Cus_ScoreSet modelscore = await cus_score_setRepository.GetSingle(x => x.F_State == 1);
767
+            if (modelscore == null)
768
+            {
769
+                modelscore = new T_Cus_ScoreSet();
770
+                modelscore.F_Start = 0;
771
+                modelscore.F_StartDebit = 1;
772
+                modelscore.F_DebitPercent = 1000;
773
+            }
774
+          string msg="";
775
+            string[] ids = orderids.Split(',');
776
+            List<T_Bus_Order> orderLIst = new List<T_Bus_Order>();
777
+
778
+            foreach (var it  in ids)
779
+            {
780
+
781
+                T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == it);
782
+                if (modelscore.F_Start == 1)
783
+                {
784
+                    //订单完成后计算积分
785
+                    modelOrder.F_Score = -0.01M;
786
+                }
787
+                else
788
+                {  //订单完成后也不计算积分
789
+                    modelOrder.F_Score = 0.00M;
790
+                }
791
+                if (modelscore.F_StartDebit == 0 || modelOrder.F_VipId == 0)
792
+                {
793
+                    modelOrder.F_UseScore = 0;
794
+                }
795
+                List<T_Bus_OrderDetail> detaillist = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == modelOrder.F_Id, o => o.F_Sort, OrderByType.Asc);
796
+                string strStock = await busOrderFunctionController.ChangeStockOne(modelOrder, 1, detaillist);
797
+                modelOrder.F_CheckUser = UserLogin.UserId.ObjToInt();
798
+                modelOrder.F_CheckUserName = UserLogin.UserName;
799
+                modelOrder.F_CheckTime = DateTime.Now;
800
+                modelOrder.F_Stock = stock;
801
+                if (strStock != "1")
802
+                {
803
+                    msg += "订单" + modelOrder.F_Id + strStock;
804
+                    modelOrder.F_State = 4;
805
+                    //   { return Error(strStock); }
806
+                }
807
+               else
808
+                {
809
+                    modelOrder.F_State = 3;
810
+                }
811
+                orderLIst.Add(modelOrder);
812
+            }
813
+            if (await bus_OrderRepository.UpdateList(orderLIst))
814
+            {
815
+               if (msg =="")
816
+                return Success("分仓成功");
817
+               else
818
+                    return Success(msg);
819
+            }
820
+            else
821
+                return Error("分仓失败");
607 822
 
823
+           
824
+
825
+
826
+        }
608 827
 
609 828
         [HttpPost("checkordermoney")]
610 829
         public async Task<IActionResult> CheckOrderMoney(OrderMoneyInput input)

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


+ 2 - 2
代码/TVShoppingCallCenter_ZLJ/Controllers/Order/OrderFunctionController.cs

@@ -173,9 +173,9 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Order
173 173
                 //long masterlong =long.Parse(modelOrder.F_FlowNum.Replace("U", "").Replace("R", "") + DateTime.Now.ToString("ddHHmmss"));
174 174
                 setStockModel.masterid = modelOrder.F_FlowNum+ state;
175 175
                 if(state==1)
176
-                setStockModel.remark = "销售提交锁库存";
176
+                setStockModel.remark = "客服分仓锁库存";
177 177
                 else if (state == 0)
178
-                    setStockModel.remark = "销售撤回加库存";
178
+                    setStockModel.remark = "客服撤回加库存";
179 179
                 else if (state == 2)
180 180
                     setStockModel.remark = "审核不通过加库存";
181 181
                 //更新库存记录   

+ 4 - 0
代码/TVShoppingCallCenter_ZLJ/Controllers/Product/ProductController.cs

@@ -525,6 +525,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Product
525 525
                                 if (a.sku == p.F_ProductId)
526 526
                                 {
527 527
                                     p.F_Stock = a.qty;
528
+                                    p.F_Match = a.qty - p.F_UseNumber;
528 529
                                     break;
529 530
                                 }
530 531
                             }
@@ -536,6 +537,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Product
536 537
                                 if (a.sku == p.F_ProductId)
537 538
                                 {
538 539
                                     p.F_Stock1 = a.qty;
540
+                                    p.F_Match = a.qty - p.F_UseNumber;
539 541
                                     break;
540 542
                                 }
541 543
                             }
@@ -638,6 +640,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Product
638 640
                                 if (a.sku == p.F_ProductId)
639 641
                                 {
640 642
                                     p.F_Stock = a.qty;
643
+                                    p.F_Match = a.qty - p.F_UseNumber;
641 644
                                     break;
642 645
                                 }
643 646
                             }
@@ -649,6 +652,7 @@ namespace TVShoppingCallCenter_ZLJ.Controllers.Product
649 652
                                 if (a.sku == p.F_ProductId)
650 653
                                 {
651 654
                                     p.F_Stock1 = a.qty;
655
+                                    p.F_Match1= a.qty - p.F_UseNumber;
652 656
                                     break;
653 657
                                 }
654 658
                             }

+ 15 - 3
代码/TVShoppingCallCenter_ZLJ/Models/Inputs/Order/OrderInput.cs

@@ -69,9 +69,10 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
69 69
         private string _f_tag = "";
70 70
 
71 71
         private string _f_recommendName = "";
72
-        private int _f_isExpress = 0;
73
-
74
-
72
+        private int _f_isExpress = -1;
73
+        private int _f_ispayment = -1;
74
+       
75
+       
75 76
         /// <summary>
76 77
         /// 客服是否选择快递 1已分配 0未分配
77 78
         /// </summary>
@@ -540,6 +541,17 @@ namespace TVShoppingCallCenter_ZLJ.Models.Inputs
540 541
         }
541 542
         public int? IsSale
542 543
         { get; set; }
544
+        /// <summary>
545
+        /// 是否提前付款
546
+        /// </summary>
547
+        public int F_IsPayment
548
+        {
549
+            set { _f_ispayment = value; }
550
+            get { return _f_ispayment; }
551
+            
552
+        }
553
+      
554
+        public OrderMoneyInput OrderMoney { get; set; }
543 555
         #endregion Model
544 556
 
545 557
     }