Kaynağa Gözat

Merge branch 'feat-liucheng'

zhupei 3 yıl önce
ebeveyn
işleme
cba6816eba

Dosya farkı çok büyük olduğundan ihmal edildi
+ 84 - 51
codegit/CallCenterApi/CallCenterApi.DAL/T_Wo_WorkOrder.cs


+ 33 - 3
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/customer/CustomerNewController.cs

@@ -211,7 +211,8 @@ namespace CallCenterApi.Interface.Controllers.customer
211 211
         /// <returns></returns>
212 212
         public ActionResult GetCodeCustomer(string code)
213 213
         {
214
-            var list = new List<Model.T_Cus_CustomerBaseNew>(); DataTable dt = new DataTable();
214
+            var list = new List<Model.T_Cus_CustomerBaseNew>();
215
+            DataTable dt = new DataTable();
215 216
             string sql = "  F_IsDelete=0";
216 217
             if (!string.IsNullOrWhiteSpace(code))//客户编号
217 218
             {
@@ -786,8 +787,37 @@ namespace CallCenterApi.Interface.Controllers.customer
786 787
                             Input1.F_Gender = "女";
787 788
                         }
788 789
                     }
789
-                    Input1.F_Salesman = model[i].F_Salesman;//业务员
790
-                    Input1.F_SalesPhone = model[i].F_SalesPhone;//业务员电话
790
+
791
+                    if (!string.IsNullOrEmpty(model[i].F_Salesman))
792
+                    {
793
+                        Input1.F_Salesman = model[i].F_Salesman;//业务员
794
+                        Input1.F_SalesPhone = model[i].F_SalesPhone;//业务员电话
795
+                    }
796
+                    else
797
+                    {
798
+                        string sql = $" F_DeleteFlag=0";
799
+                        if (!string.IsNullOrWhiteSpace(model[i].F_AddressCountry))//县
800
+                        {
801
+                            sql += $" and (F_Remark like '%{  model[i].F_AddressCountry.Trim()}%'";
802
+                            if (!string.IsNullOrWhiteSpace(model[i].F_AddressCity))//市
803
+                                sql += $" or F_Remark like '%{ model[i].F_AddressCity.Trim()}%')";
804
+                            else
805
+                                sql += $")";
806
+                        }
807
+                        else if (!string.IsNullOrWhiteSpace(model[i].F_AddressCity))//市
808
+                            sql += $" and F_Remark like '%{ model[i].F_AddressCity.Trim()}%'";
809
+                        else
810
+                            sql += $" and 1!=1";
811
+
812
+                        var modelist = new BLL.T_Sys_UserAccount().GetModelList(sql).FirstOrDefault();
813
+
814
+                        if (modelist!=null)
815
+                        {
816
+                            Input1.F_Salesman = modelist.F_UserName;//业务员
817
+                            Input1.F_SalesPhone = modelist.F_Mobile;//业务员电话  
818
+                        }
819
+                        
820
+                    }
791 821
 
792 822
                     Input1.F_Channel = model[i].F_Channel;// 渠道类型:总经销、二级商、种田大户、农户、化工客户、公司员工
793 823
                     Input1.F_Credit = model[i].F_Credit;//信用等级:一星、二星、三星、四星、五星、空

+ 4 - 4
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/knowledge/KnowledgeController.cs

@@ -403,10 +403,10 @@ namespace CallCenterApi.Interface.Controllers.knowledge
403 403
                     {
404 404
                         model.F_CategoryId = 0;
405 405
                     }
406
-                    model.F_Title = dataRow[0].ToString();
407
-                    model.F_KeyWords = dataRow[1].ToString();
408
-                    model.F_Content = WebHelper.UrlDecode(dataRow[2].ToString());
409
-                    model.F_Description = WebHelper.NoHtml(WebHelper.UrlDecode(dataRow[0].ToString()));
406
+                    model.F_Title = dataRow[1].ToString();
407
+                    model.F_KeyWords = dataRow[2].ToString();
408
+                    model.F_Content = WebHelper.UrlDecode(dataRow[3].ToString());
409
+                    model.F_Description = WebHelper.NoHtml(WebHelper.UrlDecode(dataRow[3].ToString()));
410 410
                     model.F_CreateOn = DateTime.Now;
411 411
                     model.F_DeleteFlag = 0;
412 412
                     model.F_CreateBy = userId;

+ 38 - 21
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/weixin/WxLoginController.cs

@@ -1738,7 +1738,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
1738 1738
                 List<Model.T_Wo_WorkOrder> modlelist = new BLL.T_Wo_WorkOrder().DataTableToList(dt);
1739 1739
                 if (modlelist.Count > 0)
1740 1740
                 {
1741
-                    List<WorkOrderNewInput> Input = modeltooip(modlelist, ua);
1741
+                    List<WorkOrderNewInput> Input =modeltooip(modlelist, ua);
1742 1742
                     var obj = new
1743 1743
                     {
1744 1744
                         state = "success",
@@ -3968,19 +3968,19 @@ namespace CallCenterApi.Interface.Controllers.weixin
3968 3968
 
3969 3969
 
3970 3970
                     #region 内线超时时间计算
3971
-                    float c2 = TimeToOver(model1[i].F_ID, model1[i].F_limit, 2);
3972
-                    float a2 = Math.Abs(c2);
3973
-                    int days2 = (int)Math.Floor(Convert.ToDouble(a2 / 24));
3974
-                    int hours2 = days2 > 0
3975
-                                   ? (int)Math.Floor(Convert.ToDouble((a2 - days2 * 24)))
3976
-                                   : (int)Math.Floor(Convert.ToDouble(a2));
3977
-                    float minutes2 = hours2 > 0
3978
-                                   ? a2 * 60 - days2 * 1440 - hours2 * 60
3979
-                                   : 0;
3980
-                    if (c2 > 0)
3981
-                        model.RemainingTime2 = string.Format("剩余{0:f0}天{1:f0}时{2:f0}分", days2, hours2, minutes2);
3982
-                    else
3983
-                        model.RemainingTime2 = string.Format("超时{0:f0}天{1:f0}时{2:f0}分", days2, hours2, minutes2);
3971
+                    //float c2 = TimeToOver(model1[i].F_ID, model1[i].F_limit, 2);
3972
+                    //float a2 = Math.Abs(c2);
3973
+                    //int days2 = (int)Math.Floor(Convert.ToDouble(a2 / 24));
3974
+                    //int hours2 = days2 > 0
3975
+                    //               ? (int)Math.Floor(Convert.ToDouble((a2 - days2 * 24)))
3976
+                    //               : (int)Math.Floor(Convert.ToDouble(a2));
3977
+                    //float minutes2 = hours2 > 0
3978
+                    //               ? a2 * 60 - days2 * 1440 - hours2 * 60
3979
+                    //               : 0;
3980
+                    //if (c2 > 0)
3981
+                    //    model.RemainingTime2 = string.Format("剩余{0:f0}天{1:f0}时{2:f0}分", days2, hours2, minutes2);
3982
+                    //else
3983
+                    //    model.RemainingTime2 = string.Format("超时{0:f0}天{1:f0}时{2:f0}分", days2, hours2, minutes2);
3984 3984
                     #endregion
3985 3985
 
3986 3986
                     if (ua != null)
@@ -4045,6 +4045,13 @@ namespace CallCenterApi.Interface.Controllers.weixin
4045 4045
                     model.F_Manufacturers = model1[i].F_Manufacturers;//质量管理科-原料及厂家
4046 4046
                     model.F_ProductionNum = model1[i].F_ProductionNum;//质量管理科-该批次生产数量
4047 4047
                     model.F_Flag = model1[i].F_Flag;//1单线外 2单线内 3双线 9市场科可以双线指派工单 0 未指派工单
4048
+
4049
+                    if (!string.IsNullOrEmpty(model1[i].F_Material_CreateBy))
4050
+                    {
4051
+                        model.F_Material_CreateBy = userAccountBLL.GetModel(model1[i].F_Material_CreateBy).F_UserName;
4052
+                        model.F_Material_CreateTime = model1[i].F_Material_CreateTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? "";
4053
+                    }
4054
+
4048 4055
                     if (ua != null)
4049 4056
                     {
4050 4057
                         model.inout = GetNodeState(model1[i].F_ID, ua.F_UserCode, state);
@@ -5255,9 +5262,10 @@ namespace CallCenterApi.Interface.Controllers.weixin
5255 5262
         /// <param name="model"></param>
5256 5263
         /// <param name="input"></param>
5257 5264
         /// <returns></returns>
5258
-        private Model.T_Wo_WorkOrder InToworkModel(Model.T_Wo_WorkOrder model, WorkOrderNewInput input)
5265
+        private Model.T_Wo_WorkOrder InToworkModel(Model.T_Wo_WorkOrder model, WorkOrderNewInput input,Model.T_Sys_UserAccount ua)
5259 5266
 
5260 5267
         {
5268
+            string str = ua.F_UserName + "(" + ua.F_WorkNumber + ")" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "  ";
5261 5269
             if (!string.IsNullOrEmpty(input.F_SC_ProductBase))
5262 5270
                 model.F_SC_ProductBase = input.F_SC_ProductBase;//市场管理科-生产基地(新乡、新疆、九江、东北、贴牌、无法确定)
5263 5271
             if (!string.IsNullOrEmpty(input.F_SC_PreliminaryOpinion))
@@ -5290,8 +5298,11 @@ namespace CallCenterApi.Interface.Controllers.weixin
5290 5298
                 model.F_ZL_CResponsibleUnits = input.F_ZL_CResponsibleUnits;//质量管理科-对应责任单位(生产、研发、农化、物流、质量管理科,销售内勤)
5291 5299
             if (!string.IsNullOrEmpty(input.F_ZL_Fquantity))
5292 5300
                 model.F_ZL_Fquantity = input.F_ZL_Fquantity;// 质量管理科-确认实收数量(吨)
5293
-            if (!string.IsNullOrEmpty(input.F_ZL_ImprovementRequirements))
5294
-                model.F_ZL_ImprovementRequirements = input.F_ZL_ImprovementRequirements;//质量管理科-改进要求
5301
+            if (!string.IsNullOrEmpty(input.F_ZL_ImprovementRequirements) && !model.F_ZL_ImprovementRequirements.Contains(input.F_ZL_ImprovementRequirements))
5302
+            {
5303
+                string strimprovement = str + input.F_ZL_ImprovementRequirements + ";@# ";
5304
+                model.F_ZL_ImprovementRequirements = string.IsNullOrEmpty(model.F_ZL_ImprovementRequirements) ? strimprovement : model.F_ZL_ImprovementRequirements + strimprovement; //质量管理科-改进要求
5305
+            }
5295 5306
             if (!string.IsNullOrEmpty(input.F_ZL_CApprovalNo))
5296 5307
                 model.F_ZL_CApprovalNo = input.F_ZL_CApprovalNo;//质量管理科-对应审批工作流单号
5297 5308
             if (!string.IsNullOrEmpty(input.F_ZL_CJ_IsRecord))
@@ -5317,8 +5328,11 @@ namespace CallCenterApi.Interface.Controllers.weixin
5317 5328
                 model.F_UnLoadingFee = input.F_UnLoadingFee;
5318 5329
             if (input.F_MaterialFee > 0) //返料费
5319 5330
                 model.F_MaterialFee = input.F_MaterialFee;
5320
-            if (!string.IsNullOrEmpty(input.F_EventReason))
5321
-                model.F_EventReason = input.F_EventReason;//质量管理科-事件原因
5331
+            if (!string.IsNullOrEmpty(input.F_EventReason) &&  !model.F_EventReason.Contains(input.F_EventReason))
5332
+            {
5333
+                string strevent = str + input.F_EventReason + ";@# ";
5334
+                model.F_EventReason = string.IsNullOrEmpty(model.F_EventReason) ? strevent : model.F_EventReason + strevent; //质量管理科-事件原因
5335
+            }
5322 5336
             if (!string.IsNullOrEmpty(input.F_DrivePhone))
5323 5337
                 model.F_DrivePhone = input.F_DrivePhone;//电话号码
5324 5338
             if (!string.IsNullOrEmpty(input.F_WorkmanShip))
@@ -5606,6 +5620,9 @@ namespace CallCenterApi.Interface.Controllers.weixin
5606 5620
                                                         itemlist.Add(itemodel);
5607 5621
                                                     }
5608 5622
                                                     model.MaterialItems = itemlist;
5623
+                                                    model.F_SC_PreliminaryOpinion = "退换货";
5624
+                                                    model.F_Material_CreateBy = ua.F_UserCode;
5625
+                                                    model.F_Material_CreateTime = DateTime.Now;
5609 5626
                                                 }
5610 5627
 
5611 5628
                                             }
@@ -5940,7 +5957,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
5940 5957
                     }
5941 5958
 
5942 5959
                 }
5943
-                InToworkModel(model, input);
5960
+                InToworkModel(model, input, nowUser);
5944 5961
 
5945 5962
                 if (!string.IsNullOrEmpty(F_Files))
5946 5963
                 {
@@ -7369,7 +7386,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
7369 7386
                 //}
7370 7387
 
7371 7388
                 model.F_DealTime = DateTime.Now;
7372
-                InToworkModel(model, input);
7389
+                InToworkModel(model, input,nowUser);
7373 7390
                 woBLL.Update(model);
7374 7391
                 #endregion
7375 7392
 

+ 170 - 52
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderNewController.cs

@@ -1,4 +1,5 @@
1 1
 using CallCenter.Utility;
2
+using CallCenterApi.Cache.Models;
2 3
 using CallCenterApi.Common;
3 4
 using CallCenterApi.DB;
4 5
 using CallCenterApi.Interface.Controllers.Base;
@@ -3407,16 +3408,19 @@ namespace CallCenterApi.Interface.Controllers.workorder
3407 3408
                             dt.Columns.Add("问题数量");
3408 3409
                             dt.Columns.Add("销售基地");                                       
3409 3410
                             dt.Columns.Add("生产批次号");
3410
-                            if (type == 5)
3411
-                            {
3412
-                                dt.Columns.Add("问题类别");
3413
-                            }
3414
-                            else
3415
-                            {
3416
-                                dt.Columns.Add("问题类别1");
3417
-                                dt.Columns.Add("问题类别2");
3418
-                                dt.Columns.Add("问题类别3");
3419
-                            }
3411
+                            dt.Columns.Add("问题类别1");
3412
+                            dt.Columns.Add("问题类别2");
3413
+                            dt.Columns.Add("问题类别3");
3414
+                            //if (type == 5)
3415
+                            //{
3416
+                            //    dt.Columns.Add("问题类别");
3417
+                            //}
3418
+                            //else
3419
+                            //{
3420
+                            //    dt.Columns.Add("问题类别1");
3421
+                            //    dt.Columns.Add("问题类别2");
3422
+                            //    dt.Columns.Add("问题类别3");
3423
+                            //}
3420 3424
                             dt.Columns.Add("重要级别");
3421 3425
                             dt.Columns.Add("品牌");
3422 3426
                             dt.Columns.Add("客户编号");
@@ -3493,7 +3497,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
3493 3497
                         dt.Columns.Add("超时时限");
3494 3498
                         dt.Columns.Add("剩余时间");
3495 3499
                         dt.Columns.Add("创建时间");
3496
-                        dt.Columns.Add("回访时间");
3500
+                        dt.Columns.Add("完结时间");
3497 3501
                         dt.Columns.Add("用时(天)");
3498 3502
                         //dt.Columns.Add("剩余时间-内线");
3499 3503
                         //dt.Columns.Add("超时原因");
@@ -3506,7 +3510,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
3506 3510
                         dt.Columns.Add("该批次生产数量");
3507 3511
                         dt.Columns.Add("车牌号");
3508 3512
                         dt.Columns.Add("返账金额");
3509
-                        dt.Columns.Add("实收货数量");
3513
+                        dt.Columns.Add("实收返厂数量");
3514
+                        dt.Columns.Add("是否退换货");
3510 3515
                         //dt.Columns.Add("工单记录");
3511 3516
                         #endregion
3512 3517
                         foreach (var it in depts)
@@ -3688,6 +3693,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
3688 3693
                                 drNew["内线工单状态"] = "已撤回待指派";
3689 3694
                             }
3690 3695
                             #endregion
3696
+
3697
+                            int cropid = 0;
3691 3698
                             if (type == 1 || type == 4)
3692 3699
                             {
3693 3700
                                 if (!string.IsNullOrEmpty(it.F_QuestionType))
@@ -3707,18 +3714,19 @@ namespace CallCenterApi.Interface.Controllers.workorder
3707 3714
                                     }
3708 3715
                                 }
3709 3716
                                 drNew["产品名称"] = it.F_TS_Category;
3710
-                                drNew["问题数量"] = it.F_ZX_Quantity;//投诉-(吨)
3717
+                                drNew["问题数量"] = string.IsNullOrEmpty(it.F_ZX_Quantity)? it.F_TS_Quantity : it.F_ZX_Quantity;//投诉-(吨)
3711 3718
                                 drNew["销售基地"] = it.F_SalesBase;
3712 3719
                             }
3713 3720
                             else if (type == 2 || type==5)
3714 3721
                             {
3715 3722
                                 drNew["产品名称"] = it.F_TS_Category;
3716
-                                if (!string.IsNullOrEmpty(it.F_TS_Quantity))
3717
-                                {
3718
-                                    drNew["问题数量"] = it.F_TS_Quantity + "吨";//投诉-问题数量(吨)
3719
-                                }
3720
-                                else
3721
-                                    drNew["问题数量"] = "";
3723
+                                drNew["问题数量"] = string.IsNullOrEmpty(it.F_TS_Quantity)? it.F_ZX_Quantity : it.F_TS_Quantity + "吨";//投诉-问题数量(吨)
3724
+                                //if (!string.IsNullOrEmpty(it.F_TS_Quantity))
3725
+                                //{
3726
+                                //    drNew["问题数量"] =string.IsNullOrEmpty(it.F_TS_Quantity)? it.F_ZX_Quantity : it.F_TS_Quantity + "吨";//投诉-问题数量(吨)
3727
+                                //}
3728
+                                //else
3729
+                                //    drNew["问题数量"] = "";
3722 3730
                                 drNew["销售基地"] = it.F_SalesBase;
3723 3731
                                 drNew["生产批次号"] = it.F_BatchNumber;
3724 3732
                                 if (!string.IsNullOrEmpty(it.F_QuestionType))
@@ -3731,7 +3739,15 @@ namespace CallCenterApi.Interface.Controllers.workorder
3731 3739
                                         {
3732 3740
                                             if (type == 5)
3733 3741
                                             {
3734
-                                                drNew["问题类别"] = manage.F_QuestionName;
3742
+                                                drNew["问题类别1"] = manage.F_QuestionName;
3743
+                                                if (manage.F_QuestionName.Contains("肥效"))
3744
+                                                {
3745
+                                                    if (int.TryParse(it.F_Crops.Trim(), out cropid))
3746
+                                                    {
3747
+                                                        drNew["问题类别2"] = new BLL.T_Sys_DictionaryValue().GetModel(cropid)?.F_Name ?? "";//作物
3748
+                                                    }
3749
+                                                    else drNew["问题类别2"] = "";
3750
+                                                }
3735 3751
                                             }
3736 3752
                                             else
3737 3753
                                             {
@@ -3767,9 +3783,11 @@ namespace CallCenterApi.Interface.Controllers.workorder
3767 3783
                                 List<T_Wo_MaterialItems> materlist = new BLL.T_Wo_MaterialItems().GetModelList($" F_WoID={it.F_ID}");
3768 3784
                                 if (materlist != null)
3769 3785
                                 {
3770
-                                  drNew["实收数量"] = materlist.Sum(x => x.F_ReturnQuantity).ToString();
3786
+                                  drNew["实收返厂数量"] = materlist.Sum(x => x.F_ReturnQuantity).ToString();
3771 3787
                                 }
3772
-                        
3788
+
3789
+                                drNew["是否退换货"] = it.F_SC_PreliminaryOpinion;
3790
+
3773 3791
                                 //dt.Columns.Add("原料及厂家");
3774 3792
                                 //dt.Columns.Add("车牌号");
3775 3793
                                 //dt.Columns.Add("返账金额");
@@ -3908,7 +3926,11 @@ namespace CallCenterApi.Interface.Controllers.workorder
3908 3926
                             drNew["客户电话"] = it.F_CusPhone;//
3909 3927
                             drNew["问题描述"] = it.F_Description;//
3910 3928
                             drNew["创建时间"] = it.F_CreateOn;
3911
-                            drNew["回访时间"] = it.F_VisitOn;
3929
+                            #region  获取外线完结时间
3930
+                            var itemlasts = itembll.GetModelList($" F_WoID={it.F_ID} and F_ItemType={(int)EnumItemType.deal} and F_OptType={(int)EnumItemOpt.end} and F_Type=1 order by F_CreateTime desc").FirstOrDefault();
3931
+                            if (itemlasts != null)
3932
+                                drNew["完结时间"] = itemlasts.F_CreateTime;
3933
+                            #endregion
3912 3934
 
3913 3935
                             drNew["事发地-省"] = it.F_IncidentProvince;//
3914 3936
                             drNew["事发地-市"] = it.F_IncidentCity;//
@@ -3920,17 +3942,34 @@ namespace CallCenterApi.Interface.Controllers.workorder
3920 3942
                             drNew["处理详情-内线"] = it.F_DealContent2;//处理内容
3921 3943
                             drNew["回访备注"] = it.F_VisitRemarks;//处理内容
3922 3944
                             drNew["注解"] = it.F_Annotation;//处理内容
3923
-                            drNew["超时时限"] = it.F_limit;//处理内容
3924
-                            #region
3925
-                            float RemainingTime = float.Parse(string.Format("{0:f2}", TimeToOver(it.F_ID, it.F_limit)));
3926
-                            if (RemainingTime >= 0)
3927
-                            {
3928
-                                drNew["剩余时间"] = RemainingTime;//处理内容
3929
-                            }
3945
+                            #region 超时时限
3946
+                            int day = (int)Math.Floor(Convert.ToDouble(it.F_limit / 24));
3947
+                            int hour = day > 0
3948
+                                           ? (int)Math.Floor(Convert.ToDouble((it.F_limit - day * 24)))
3949
+                                           : (int)Math.Floor(Convert.ToDouble(it.F_limit));
3950
+
3951
+                            string time = "";
3952
+                            if (day > 0) time += day + "天";
3953
+                            if (hour > 0) time += hour + "小时";
3954
+                            drNew["超时时限"] = time;//超时时限
3955
+                            #endregion
3956
+
3957
+
3958
+                            #region  剩余时间
3959
+                            float c = TimeToOver(it.F_ID, it.F_limit);
3960
+                            float a = Math.Abs(c);
3961
+                            int days1 = (int)Math.Floor(Convert.ToDouble(a / 24));
3962
+                            int hours = days1 > 0
3963
+                                           ? (int)Math.Floor(Convert.ToDouble((a - days1 * 24)))
3964
+                                           : (int)Math.Floor(Convert.ToDouble(a));
3965
+                            float minutes = hours > 0
3966
+                                           ? a * 60 - days1 * 1440 - hours * 60
3967
+                                           : 0;
3968
+                            if (c > 0)
3969
+                                drNew["剩余时间"] = string.Format("剩余{0:f0}天{1:f0}时{2:f0}分", days1, hours, minutes);
3930 3970
                             else
3931
-                            {
3932
-                                drNew["剩余时间"] = "超时" + Math.Abs(RemainingTime);//处理内容
3933
-                            }
3971
+                                drNew["剩余时间"] = string.Format("超时{0:f0}天{1:f0}时{2:f0}分", days1, hours, minutes);
3972
+                            float RemainingTime = float.Parse(string.Format("{0:f2}", TimeToOver(it.F_ID, it.F_limit)));                        
3934 3973
                             float aa = Math.Abs(it.F_limit-RemainingTime);
3935 3974
                             int days = (int)Math.Floor(Convert.ToDouble(aa / 24));
3936 3975
                             drNew["用时(天)"] = days+"天";
@@ -3947,7 +3986,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
3947 3986
                             //}
3948 3987
                             //#endregion
3949 3988
                             //drNew["超时原因"] = it.F_Reasontimeout;//处理内容it
3950
-                            int cropid = 0;
3989
+                            //int cropid = 0;
3951 3990
                             if (int.TryParse(it.F_Crops.Trim(), out cropid))
3952 3991
                             {
3953 3992
                                 drNew["作物"] = new BLL.T_Sys_DictionaryValue().GetModel(cropid)?.F_Name ?? "";//作物
@@ -6996,8 +7035,12 @@ namespace CallCenterApi.Interface.Controllers.workorder
6996 7035
                     model.F_Flag = model1[i].F_Flag;//1单线外 2单线内 3双线 9市场科可以双线指派工单 0 未指派工单
6997 7036
                     model.inout = GetNodeState(model1[i].F_ID,state);
6998 7037
                     model.woflag = IsMarketAssign(model1[i].F_ID);
6999
-
7000
-
7038
+                    
7039
+                    if (!string.IsNullOrEmpty(model1[i].F_Material_CreateBy))
7040
+                    {
7041
+                        model.F_Material_CreateBy = sysUserAccountBll.GetModel(model1[i].F_Material_CreateBy).F_UserName;
7042
+                        model.F_Material_CreateTime = model1[i].F_Material_CreateTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? "";
7043
+                    }                  
7001 7044
 
7002 7045
                     if (ua != null)
7003 7046
                     {
@@ -7989,6 +8032,9 @@ namespace CallCenterApi.Interface.Controllers.workorder
7989 8032
                                                 itemlist.Add(itemodel);
7990 8033
                                             }
7991 8034
                                             modlelist.MaterialItems = itemlist;
8035
+                                            model.F_SC_PreliminaryOpinion = "退换货";
8036
+                                            model.F_Material_CreateBy = ua.F_UserCode;
8037
+                                            model.F_Material_CreateTime = DateTime.Now;
7992 8038
                                         }
7993 8039
 
7994 8040
                                     }
@@ -8054,14 +8100,39 @@ namespace CallCenterApi.Interface.Controllers.workorder
8054 8100
                         }
8055 8101
                         else if (flag == 2)
8056 8102
                         {
8057
-                            var res1 = AssignWO(ua, modlelist, inputs, cont, F_Files, clbm2, clid2, overtime, sms, 0, 0, 0, "", 0, 2,flag);
8058
-                            Overorder(ua, modlelist, 2,1);
8103
+
8104
+                            if (clbm2 == 427) //运营中心
8105
+                            {
8106
+                                flag = 3;
8107
+                                model.F_Flag = 9;
8108
+                                model.F_State = (int)EnumWorkOrderState.assign;
8109
+                                model.F_State2 = (int)EnumWorkOrderState.assign;
8110
+                                AssignWO(ua, modlelist, inputs, cont, F_Files, clbm2, clid2, overtime, sms, 0, 0, 0, "", 0, 3,9);
8111
+                            }
8112
+                            else
8113
+                            {
8114
+                                var res1 = AssignWO(ua, modlelist, inputs, cont, F_Files, clbm2, clid2, overtime, sms, 0, 0, 0, "", 0, 2, flag);
8115
+                                Overorder(ua, modlelist, 2,1);
8116
+                            }
8117
+
8059 8118
                             //DealWO(ua, modlelist, input, "", "", 1, "", 1, "",flag);
8060 8119
                         }
8061 8120
                         else
8062 8121
                         {
8063
-                            var res = AssignWO(ua, modlelist, inputs, cont, F_Files, clbm, clid, overtime, sms,flag);
8064
-                            Overorder(ua, modlelist,2,2);
8122
+                            if (clbm == 427) //运营中心
8123
+                            {
8124
+                                flag = 3;
8125
+                                model.F_Flag = 9;
8126
+                                model.F_State = (int)EnumWorkOrderState.assign;
8127
+                                model.F_State2 = (int)EnumWorkOrderState.assign;
8128
+                                AssignWO(ua, modlelist, inputs, cont, F_Files, clbm, clid, overtime, sms, 0, 0, 0, "", 0, 3, 9);
8129
+                            }
8130
+                            else
8131
+                            {
8132
+                                var res = AssignWO(ua, modlelist, inputs, cont, F_Files, clbm, clid, overtime, sms, flag);
8133
+                                Overorder(ua, modlelist, 2, 2);
8134
+                            }
8135
+                           
8065 8136
                             //DealWO(ua, modlelist, input, "", "", 1, "", 2, "",flag);
8066 8137
 
8067 8138
                         }
@@ -8623,6 +8694,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
8623 8694
                         {
8624 8695
                             flag = 3;
8625 8696
                             DealWO(ua, model, input, cont2, "", 1, "", 1, flag,isApprovalp);
8697
+                            model.F_Flag = flag;
8698
+                            AssignWO(ua, model, input, cont, F_Files, clbm2, clid2, overtime, sms, isApprovalp, hclbm, hclid, "", 0, 2, flag, Supercont);
8626 8699
                         }
8627 8700
                         else if (opttype == 3) // 待处理状态
8628 8701
                         {
@@ -8631,13 +8704,27 @@ namespace CallCenterApi.Interface.Controllers.workorder
8631 8704
                             modellast.F_Flag = flag;
8632 8705
                             modellast.F_NextDept = 0;
8633 8706
                             itembll.Update(modellast);
8707
+                            model.F_Flag = flag;
8708
+                            AssignWO(ua, model, input, cont, F_Files, clbm2, clid2, overtime, sms, isApprovalp, hclbm, hclid, "", 0, 2, flag, Supercont);
8634 8709
                         }
8635 8710
                         else //完结工单
8636 8711
                         {
8637
-                           Overorder(ua, model, 2, 1);
8712
+                            if (clbm == 427) //运营中心
8713
+                            {
8714
+                                flag = 3;
8715
+                                model.F_Flag = 9;
8716
+                                model.F_State = (int)EnumWorkOrderState.assign;
8717
+                                model.F_State2 = (int)EnumWorkOrderState.assign;
8718
+                                AssignWO(ua, model, input, cont, F_Files, clbm2, clid2, overtime, sms, 0, 0, 0, "", 0, 3, 9);
8719
+                            }
8720
+                            else
8721
+                            {
8722
+                                Overorder(ua, model, 2, 1);
8723
+                                model.F_Flag = flag;
8724
+                                AssignWO(ua, model, input, cont, F_Files, clbm2, clid2, overtime, sms, isApprovalp, hclbm, hclid, "", 0, 2, flag, Supercont);
8725
+                            }
8638 8726
                         }
8639
-                        model.F_Flag = flag;
8640
-                        var res1 = AssignWO(ua, model, input, cont, F_Files, clbm2, clid2, overtime, sms, isApprovalp, hclbm, hclid, "", 0, 2, flag, Supercont);
8727
+                       
8641 8728
                         //DealWO(ua, model, input, "", "", 1, "", 1, "",flag);
8642 8729
                     }
8643 8730
                     else
@@ -8650,6 +8737,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
8650 8737
                         {
8651 8738
                             flag = 3;
8652 8739
                             DealWO(ua, model, input, cont2, "", 1, "", 2, flag, isApprovalp);
8740
+                            model.F_Flag = flag;
8741
+                            AssignWO(ua, model, input, cont, F_Files, clbm, clid, overtime, sms, isApprovalp, hclbm, hclid, "", 0, 1, flag, Supercont);
8653 8742
                         }
8654 8743
                         else if (opttype == 3) // 待处理状态
8655 8744
                         {
@@ -8658,13 +8747,27 @@ namespace CallCenterApi.Interface.Controllers.workorder
8658 8747
                             modellast.F_Flag = flag;
8659 8748
                             modellast.F_NextDept = 0;
8660 8749
                             itembll.Update(modellast);
8750
+                            model.F_Flag = flag;
8751
+                            AssignWO(ua, model, input, cont, F_Files, clbm, clid, overtime, sms, isApprovalp, hclbm, hclid, "", 0, 1, flag, Supercont);
8661 8752
                         }
8662 8753
                         else //完结工单
8663 8754
                         {
8664
-                            Overorder(ua, model, 2, 2);
8755
+                            if (clbm == 427) //运营中心
8756
+                            {
8757
+                                flag = 3;
8758
+                                model.F_Flag = 9;
8759
+                                model.F_State = (int)EnumWorkOrderState.assign;
8760
+                                model.F_State2 = (int)EnumWorkOrderState.assign;
8761
+                                AssignWO(ua, model, input, cont, F_Files, clbm, clid, overtime, sms, 0, 0, 0, "", 0, 3, 9);
8762
+                            }
8763
+                            else
8764
+                            {
8765
+                                Overorder(ua, model, 2, 2);
8766
+                                model.F_Flag = flag;
8767
+                                AssignWO(ua, model, input, cont, F_Files, clbm, clid, overtime, sms, isApprovalp, hclbm, hclid, "", 0, 1, flag, Supercont);
8768
+                            }
8665 8769
                         }
8666
-                        model.F_Flag = flag;
8667
-                        var res = AssignWO(ua, model, input, cont, F_Files, clbm, clid, overtime, sms, isApprovalp, hclbm, hclid,"",0,1,flag,Supercont);                               
8770
+                                                    
8668 8771
                     }
8669 8772
                     return Success("转派成功");
8670 8773
                 }
@@ -8779,6 +8882,9 @@ namespace CallCenterApi.Interface.Controllers.workorder
8779 8882
                                                     itemlist.Add(itemodel);
8780 8883
                                                 }
8781 8884
                                                 model.MaterialItems = itemlist;
8885
+                                                model.F_SC_PreliminaryOpinion = "退换货";
8886
+                                                model.F_Material_CreateBy = ua.F_UserCode;
8887
+                                                model.F_Material_CreateTime = DateTime.Now;
8782 8888
                                             }
8783 8889
 
8784 8890
                                         }
@@ -10252,9 +10358,10 @@ namespace CallCenterApi.Interface.Controllers.workorder
10252 10358
                     else
10253 10359
                         model.F_Files = F_Files;
10254 10360
                 }
10255
-
10361
+                string strcont = nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ") " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
10256 10362
                 if (!string.IsNullOrEmpty(cont))
10257 10363
                 {
10364
+                    string strconts1 = strcont + " " + cont + ";@# ";
10258 10365
                     if (model.F_Source == "3")
10259 10366
                     {
10260 10367
                         if (flag == 2)
@@ -10284,6 +10391,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
10284 10391
                         if (model.F_SuperiorOpinion.Trim() != cont.Trim())
10285 10392
                         {
10286 10393
                             model.F_SuperiorOpinion = nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ") " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + cont;
10394
+                            //model.F_SuperiorOpinion = string.IsNullOrEmpty(model.F_SuperiorOpinion)? strconts1:model.F_SuperiorOpinion + strconts1;
10287 10395
                         }
10288 10396
                     }
10289 10397
                     else if (flag == 2)
@@ -10291,6 +10399,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
10291 10399
                         if (model.F_SuperiorOpinion2.Trim() != cont.Trim())
10292 10400
                         {
10293 10401
                             model.F_SuperiorOpinion2 = nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ") " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + cont;
10402
+                            //model.F_SuperiorOpinion2 = string.IsNullOrEmpty(model.F_SuperiorOpinion2) ? strconts1 : model.F_SuperiorOpinion2 + strconts1;
10294 10403
                         }
10295 10404
                     }                 
10296 10405
                 }
@@ -10468,6 +10577,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
10468 10577
         private Model.T_Wo_WorkOrder InToworkModel(Model.T_Wo_WorkOrder model, WorkOrderNewInput input)
10469 10578
 
10470 10579
         {
10580
+            CurrentUserInfo ua =CurrentUser.UserData;
10581
+            string str = ua.F_UserName + "(" + ua.F_WorkNumber + ")" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "  ";
10471 10582
             if (!string.IsNullOrEmpty(input.F_SC_ProductBase))
10472 10583
                 model.F_SC_ProductBase = input.F_SC_ProductBase;//市场管理科-生产基地(新乡、新疆、九江、东北、贴牌、无法确定)
10473 10584
             if (!string.IsNullOrEmpty(input.F_SC_PreliminaryOpinion))
@@ -10500,8 +10611,12 @@ namespace CallCenterApi.Interface.Controllers.workorder
10500 10611
                 model.F_ZL_CResponsibleUnits = input.F_ZL_CResponsibleUnits;//质量管理科-对应责任单位(生产、研发、农化、物流、质量管理科,销售内勤)
10501 10612
             if (!string.IsNullOrEmpty(input.F_ZL_Fquantity))
10502 10613
                 model.F_ZL_Fquantity = input.F_ZL_Fquantity;// 质量管理科-确认实收数量(吨)
10503
-            if (!string.IsNullOrEmpty(input.F_ZL_ImprovementRequirements))
10504
-                model.F_ZL_ImprovementRequirements = input.F_ZL_ImprovementRequirements;//质量管理科-改进要求
10614
+            if (!string.IsNullOrEmpty(input.F_ZL_ImprovementRequirements) && !model.F_ZL_ImprovementRequirements.Contains(input.F_ZL_ImprovementRequirements) )
10615
+            {
10616
+               string  strimprovement = str + input.F_ZL_ImprovementRequirements + ";@# ";
10617
+                model.F_ZL_ImprovementRequirements = string.IsNullOrEmpty(model.F_ZL_ImprovementRequirements) ? strimprovement : model.F_ZL_ImprovementRequirements + strimprovement; //质量管理科-改进要求
10618
+                //model.F_ZL_ImprovementRequirements = input.F_ZL_ImprovementRequirements;//质量管理科-改进要求
10619
+            }
10505 10620
             if (!string.IsNullOrEmpty(input.F_ZL_CApprovalNo))
10506 10621
                 model.F_ZL_CApprovalNo = input.F_ZL_CApprovalNo;//质量管理科-对应审批工作流单号
10507 10622
             if (!string.IsNullOrEmpty(input.F_ZL_CJ_IsRecord))
@@ -10530,8 +10645,11 @@ namespace CallCenterApi.Interface.Controllers.workorder
10530 10645
                 model.F_UnLoadingFee = input.F_UnLoadingFee;
10531 10646
             if (input.F_MaterialFee > 0) //返料费
10532 10647
                 model.F_MaterialFee = input.F_MaterialFee;
10533
-            if (!string.IsNullOrEmpty(input.F_EventReason))
10534
-                model.F_EventReason = input.F_EventReason;//质量管理科-事件原因
10648
+            if (!string.IsNullOrEmpty(input.F_EventReason) && !model.F_EventReason.Contains(input.F_EventReason))
10649
+            {
10650
+                string strevent = str + input.F_EventReason + ";@# ";
10651
+                model.F_EventReason = string.IsNullOrEmpty(model.F_EventReason) ? strevent : model.F_EventReason + strevent; //质量管理科-事件原因
10652
+            }
10535 10653
             if (!string.IsNullOrEmpty(input.F_DrivePhone))
10536 10654
                 model.F_DrivePhone = input.F_DrivePhone;//电话号码
10537 10655
             if (!string.IsNullOrEmpty(input.F_WorkmanShip))
@@ -11239,7 +11357,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
11239 11357
         /// <summary>
11240 11358
         /// 返厂数量
11241 11359
         /// </summary>
11242
-        public int? returnum { get; set; }
11360
+        public decimal? returnum { get; set; }
11243 11361
         /// <summary>
11244 11362
         /// 规格
11245 11363
         /// </summary>

+ 3 - 0
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Input/WorkOrderNewInput.cs

@@ -1013,6 +1013,9 @@ namespace CallCenterApi.Interface.Models.Input
1013 1013
         
1014 1014
         public int? inout { get; set; }
1015 1015
         public int? woflag { get; set; }
1016
+        public string F_Material_CreateBy { get; set; }
1017
+        public string F_Material_CreateTime { get; set; }
1018
+       
1016 1019
 
1017 1020
         #region 多物料
1018 1021
         public List<T_Wo_MaterialItems> MaterialItems { get; set; }

+ 2 - 2
codegit/CallCenterApi/CallCenterApi.Model/T_Wo_MaterialItems.cs

@@ -19,7 +19,7 @@ namespace CallCenterApi.Model
19 19
         private decimal? _f_loadingfee;
20 20
         private decimal? _f_unloadingfee;
21 21
         private decimal? _f_materialfee;
22
-        private int? _f_returnquantity = 0;
22
+        private decimal? _f_returnquantity = 0;
23 23
         private long _f_woid;
24 24
         private string _f_remark;
25 25
         private string _f_createby;
@@ -83,7 +83,7 @@ namespace CallCenterApi.Model
83 83
         /// <summary>
84 84
         /// 实收返厂数量
85 85
         /// </summary>
86
-        public int? F_ReturnQuantity
86
+        public decimal? F_ReturnQuantity
87 87
         {
88 88
             set { _f_returnquantity = value; }
89 89
             get { return _f_returnquantity; }

+ 40 - 2
codegit/CallCenterApi/CallCenterApi.Model/T_Wo_WorkOrder.cs

@@ -111,7 +111,7 @@ namespace CallCenterApi.Model
111 111
         private decimal? _f_unloadingfee;
112 112
         private decimal? _f_materialfee;
113 113
         private string _f_formula;
114
-        private int? _f_returnquantity;
114
+        private decimal? _f_returnquantity;
115 115
         private string _f_eventreason;
116 116
         private string _f_mailingnumber;
117 117
         private string _f_expressname;
@@ -127,6 +127,10 @@ namespace CallCenterApi.Model
127 127
         private string _f_workmanship;
128 128
         private string _f_manufacturers;
129 129
         private int? _f_productionnum;
130
+        private int? _f_cj_isqualified = 0;
131
+        private int? _f_test_isqualified = 0;
132
+        private string _f_material_createby;
133
+        private DateTime? _f_material_createtime;
130 134
         public string F_Annotation
131 135
         {
132 136
             set { _f_annotation = value; }
@@ -910,7 +914,7 @@ namespace CallCenterApi.Model
910 914
         /// <summary>
911 915
         /// 实收返厂数量
912 916
         /// </summary>
913
-        public int? F_ReturnQuantity
917
+        public decimal? F_ReturnQuantity
914 918
         {
915 919
             set { _f_returnquantity = value; }
916 920
             get { return _f_returnquantity; }
@@ -1061,6 +1065,40 @@ namespace CallCenterApi.Model
1061 1065
         /// </summary>
1062 1066
         public int? F_Flag { get; set; }
1063 1067
 
1068
+
1069
+        /// <summary>
1070
+		/// 
1071
+		/// </summary>
1072
+		public int? F_CJ_IsQualified
1073
+        {
1074
+            set { _f_cj_isqualified = value; }
1075
+            get { return _f_cj_isqualified; }
1076
+        }
1077
+        /// <summary>
1078
+        /// 
1079
+        /// </summary>
1080
+        public int? F_Test_IsQualified
1081
+        {
1082
+            set { _f_test_isqualified = value; }
1083
+            get { return _f_test_isqualified; }
1084
+        }
1085
+        /// <summary>
1086
+        /// 退换货填写人
1087
+        /// </summary>
1088
+        public string F_Material_CreateBy
1089
+        {
1090
+            set { _f_material_createby = value; }
1091
+            get { return _f_material_createby; }
1092
+        }
1093
+        /// <summary>
1094
+        /// 退换货填写时间
1095
+        /// </summary>
1096
+        public DateTime? F_Material_CreateTime
1097
+        {
1098
+            set { _f_material_createtime = value; }
1099
+            get { return _f_material_createtime; }
1100
+        }
1101
+
1064 1102
         #endregion Model
1065 1103
 
1066 1104
         #region 多物料