|
|
@@ -1,10 +1,13 @@
|
|
1
|
1
|
using CallCenter.Utility;
|
|
|
2
|
+using CallCenter.Utility.Time;
|
|
2
|
3
|
using CallCenterApi.DB;
|
|
3
|
4
|
using CallCenterApi.Interface.Controllers.Base;
|
|
|
5
|
+using CallCenterApi.Interface.Models.Filter;
|
|
4
|
6
|
using System;
|
|
5
|
7
|
using System.Collections.Generic;
|
|
6
|
8
|
using System.Data;
|
|
7
|
9
|
using System.Linq;
|
|
|
10
|
+using System.Text;
|
|
8
|
11
|
using System.Web;
|
|
9
|
12
|
using System.Web.Mvc;
|
|
10
|
13
|
|
|
|
@@ -13,6 +16,9 @@ namespace CallCenterApi.Interface.Controllers.quality
|
|
13
|
16
|
public class QCManageController : BaseController
|
|
14
|
17
|
{
|
|
15
|
18
|
private readonly BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
|
|
|
19
|
+ private readonly BLL.CallResult callResultBLL = new BLL.CallResult();
|
|
|
20
|
+
|
|
|
21
|
+ #region 非自动外呼质检
|
|
16
|
22
|
//获取未质检列表
|
|
17
|
23
|
public ActionResult GetList()
|
|
18
|
24
|
{
|
|
|
@@ -593,5 +599,418 @@ namespace CallCenterApi.Interface.Controllers.quality
|
|
593
|
599
|
return res;
|
|
594
|
600
|
}
|
|
595
|
601
|
|
|
|
602
|
+ #endregion
|
|
|
603
|
+
|
|
|
604
|
+ #region 自动外呼质检—号码质检
|
|
|
605
|
+ /// <summary>
|
|
|
606
|
+ /// 未质检列表
|
|
|
607
|
+ /// </summary>
|
|
|
608
|
+ /// <returns></returns>
|
|
|
609
|
+ public ActionResult GetAutoCallList(FilterTalkRecord filter)
|
|
|
610
|
+ {
|
|
|
611
|
+ var sort = "ORDER BY startdate desc";
|
|
|
612
|
+ if (!string.IsNullOrWhiteSpace(filter.SortField))
|
|
|
613
|
+ {
|
|
|
614
|
+ var arr = filter.SortField.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
615
|
+ EnumTalkRecordsSortField e;
|
|
|
616
|
+ if (!Enum.TryParse(arr[0], out e))
|
|
|
617
|
+ return Error("排序字段参数错误");
|
|
|
618
|
+ sort = "ORDER BY " + e.ToString() + " " + arr[1];
|
|
|
619
|
+ }
|
|
|
620
|
+
|
|
|
621
|
+ StringBuilder where = new StringBuilder();
|
|
|
622
|
+
|
|
|
623
|
+
|
|
|
624
|
+ if (!string.IsNullOrWhiteSpace(filter.UserCode))
|
|
|
625
|
+ {
|
|
|
626
|
+ where.Append(" and agentid=" + filter.UserCode);
|
|
|
627
|
+ }
|
|
|
628
|
+ if (!string.IsNullOrWhiteSpace(filter.Phone))
|
|
|
629
|
+ {
|
|
|
630
|
+ where.Append(" and callee like '%" + filter.Phone + "%'");
|
|
|
631
|
+ }
|
|
|
632
|
+
|
|
|
633
|
+ if (!string.IsNullOrWhiteSpace(filter.TalkTime))
|
|
|
634
|
+ {
|
|
|
635
|
+ var arr = filter.TalkTime.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
636
|
+ if (arr.Length == 2)
|
|
|
637
|
+ {
|
|
|
638
|
+ if (arr[0] == "1")
|
|
|
639
|
+ {
|
|
|
640
|
+ where.Append(" and talktime>" + arr[1]);
|
|
|
641
|
+ }
|
|
|
642
|
+ else if (arr[0] == "2")
|
|
|
643
|
+ {
|
|
|
644
|
+ where.Append(" and talktime=" + arr[1]);
|
|
|
645
|
+ }
|
|
|
646
|
+ else if (arr[0] == "3")
|
|
|
647
|
+ {
|
|
|
648
|
+ where.Append(" and talktime<" + arr[1]);
|
|
|
649
|
+ }
|
|
|
650
|
+ else { }
|
|
|
651
|
+ }
|
|
|
652
|
+ }
|
|
|
653
|
+
|
|
|
654
|
+ if (filter.StartTime == null || filter.EndTime == null)
|
|
|
655
|
+ {
|
|
|
656
|
+ filter.StartTime = DateTools.FirstSecondOfOneDay(DateTime.Now);
|
|
|
657
|
+ filter.EndTime = DateTools.LastSecondOfOneDay(DateTime.Now);
|
|
|
658
|
+ }
|
|
|
659
|
+ //qcstate=1 = 已质检; qcstate=0 =未质检
|
|
|
660
|
+ //qcstate 全部=0;未转坐席 = 1; 被叫接通转坐席未接 = 2; 转坐席且接通 = 3,
|
|
|
661
|
+ where.Append(" and qcstate=0 and calltype in (2,3) and datediff(s,'" + filter.StartTime + "',StartDate)>=0 and datediff(s,EndDate,'" + filter.EndTime + "')>=0 ");
|
|
|
662
|
+
|
|
|
663
|
+ int recordCount = 0;
|
|
|
664
|
+ Model.PageData<Model.CallResult> pageModel = new Model.PageData<Model.CallResult>();
|
|
|
665
|
+ StringBuilder fields = new StringBuilder();
|
|
|
666
|
+ var dt = BLL.PagerBLL.GetListPager(
|
|
|
667
|
+ "V_AutoCallResult",
|
|
|
668
|
+ "Id",
|
|
|
669
|
+ "id,itemid,taskname, callee, agentid, username,startdate,enddate,getinagentdate,calltype,talktime,RecordPath, QCState, QCScore, QCRemark, QCUserId, QCUserName,QCTime",
|
|
|
670
|
+ where.ToString(),
|
|
|
671
|
+ sort,
|
|
|
672
|
+ filter.PageSize,
|
|
|
673
|
+ filter.PageIndex,
|
|
|
674
|
+ true,
|
|
|
675
|
+ out recordCount);
|
|
|
676
|
+ var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
|
|
|
677
|
+ var callResultList = callResultBLL.DataTableToListQC(dt);
|
|
|
678
|
+
|
|
|
679
|
+ var obj = new
|
|
|
680
|
+ {
|
|
|
681
|
+ rows = callResultList.Select(x => new
|
|
|
682
|
+ {
|
|
|
683
|
+ id = x.Id,
|
|
|
684
|
+ taskid = x.TaskId,
|
|
|
685
|
+ callnumber = x.CallNumber,
|
|
|
686
|
+ usercode = x.Usercode == "0" ? "" : x.Usercode,
|
|
|
687
|
+ startdate = x.StartDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "",
|
|
|
688
|
+ getinagentdate = x.GetInAgentDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "",
|
|
|
689
|
+ enddate = x.EndDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "",
|
|
|
690
|
+ username = x.Username,
|
|
|
691
|
+ calltype = Enum.Parse(typeof(EnumTalkRecordsCallType), x.CallType.ToString()).ToString(),
|
|
|
692
|
+ talktime = x.TalkTime > 0 ? x.TalkTime.ToString() : "0",
|
|
|
693
|
+ qcstate = x.QCState == 0 ? "未质检" : "已质检",
|
|
|
694
|
+ qcscore = x.QCScore,
|
|
|
695
|
+ qcremark = x.QCRemark ?? "",
|
|
|
696
|
+ qcuserid = x.QCUserId?.ToString() ?? "",
|
|
|
697
|
+ qcusername = x.QCUserName ?? "",
|
|
|
698
|
+ qctime = x.QCTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? ""
|
|
|
699
|
+ }),
|
|
|
700
|
+ total = recordCount
|
|
|
701
|
+ };
|
|
|
702
|
+ return Content(obj.ToJson());
|
|
|
703
|
+ }
|
|
|
704
|
+
|
|
|
705
|
+ /// <summary>
|
|
|
706
|
+ /// 已质检列表
|
|
|
707
|
+ /// </summary>
|
|
|
708
|
+ /// <returns></returns>
|
|
|
709
|
+ public ActionResult GetAutoCallYZJList(FilterTalkRecord filter)
|
|
|
710
|
+ {
|
|
|
711
|
+ var sort = "ORDER BY startdate desc";
|
|
|
712
|
+ if (!string.IsNullOrWhiteSpace(filter.SortField))
|
|
|
713
|
+ {
|
|
|
714
|
+ var arr = filter.SortField.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
715
|
+ EnumTalkRecordsSortField e;
|
|
|
716
|
+ if (!Enum.TryParse(arr[0], out e))
|
|
|
717
|
+ return Error("排序字段参数错误");
|
|
|
718
|
+ sort = "ORDER BY " + e.ToString() + " " + arr[1];
|
|
|
719
|
+ }
|
|
|
720
|
+
|
|
|
721
|
+ StringBuilder where = new StringBuilder();
|
|
|
722
|
+
|
|
|
723
|
+
|
|
|
724
|
+ if (!string.IsNullOrWhiteSpace(filter.UserCode))
|
|
|
725
|
+ {
|
|
|
726
|
+ where.Append(" and agentid=" + filter.UserCode);
|
|
|
727
|
+ }
|
|
|
728
|
+ if (!string.IsNullOrWhiteSpace(filter.Phone))
|
|
|
729
|
+ {
|
|
|
730
|
+ where.Append(" and callee like '%" + filter.Phone + "%'");
|
|
|
731
|
+ }
|
|
|
732
|
+
|
|
|
733
|
+ if (!string.IsNullOrWhiteSpace(filter.TalkTime))
|
|
|
734
|
+ {
|
|
|
735
|
+ var arr = filter.TalkTime.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
736
|
+ if (arr.Length == 2)
|
|
|
737
|
+ {
|
|
|
738
|
+ if (arr[0] == "1")
|
|
|
739
|
+ {
|
|
|
740
|
+ where.Append(" and talktime>" + arr[1]);
|
|
|
741
|
+ }
|
|
|
742
|
+ else if (arr[0] == "2")
|
|
|
743
|
+ {
|
|
|
744
|
+ where.Append(" and talktime=" + arr[1]);
|
|
|
745
|
+ }
|
|
|
746
|
+ else if (arr[0] == "3")
|
|
|
747
|
+ {
|
|
|
748
|
+ where.Append(" and talktime<" + arr[1]);
|
|
|
749
|
+ }
|
|
|
750
|
+ else { }
|
|
|
751
|
+ }
|
|
|
752
|
+ }
|
|
|
753
|
+
|
|
|
754
|
+ if (filter.StartTime == null || filter.EndTime == null)
|
|
|
755
|
+ {
|
|
|
756
|
+ filter.StartTime = DateTools.FirstSecondOfOneDay(DateTime.Now);
|
|
|
757
|
+ filter.EndTime = DateTools.LastSecondOfOneDay(DateTime.Now);
|
|
|
758
|
+ }
|
|
|
759
|
+ //qcstate=1 = 已质检; qcstate=0 =未质检
|
|
|
760
|
+ //calltype 全部=0;未转坐席 = 1; 被叫接通转坐席未接 = 2; 转坐席且接通 = 3,
|
|
|
761
|
+ where.Append(" and qcstate=1 and calltype in (2,3) and datediff(s,'" + filter.StartTime + "',StartDate)>=0 and datediff(s,EndDate,'" + filter.EndTime + "')>=0 ");
|
|
|
762
|
+
|
|
|
763
|
+ int recordCount = 0;
|
|
|
764
|
+ Model.PageData<Model.CallResult> pageModel = new Model.PageData<Model.CallResult>();
|
|
|
765
|
+ StringBuilder fields = new StringBuilder();
|
|
|
766
|
+ var dt = BLL.PagerBLL.GetListPager(
|
|
|
767
|
+ "V_AutoCallResult",
|
|
|
768
|
+ "Id",
|
|
|
769
|
+ "id,itemid,taskname, callee, agentid, username,startdate,enddate,getinagentdate,calltype,talktime,RecordPath, QCState, QCScore, QCRemark, QCUserId, QCUserName,QCTime",
|
|
|
770
|
+ where.ToString(),
|
|
|
771
|
+ sort,
|
|
|
772
|
+ filter.PageSize,
|
|
|
773
|
+ filter.PageIndex,
|
|
|
774
|
+ true,
|
|
|
775
|
+ out recordCount);
|
|
|
776
|
+ var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
|
|
|
777
|
+ var callResultList = callResultBLL.DataTableToListQC(dt);
|
|
|
778
|
+
|
|
|
779
|
+ var obj = new
|
|
|
780
|
+ {
|
|
|
781
|
+ rows = callResultList.Select(x => new
|
|
|
782
|
+ {
|
|
|
783
|
+ id = x.Id,
|
|
|
784
|
+ taskid = x.TaskId,
|
|
|
785
|
+ callnumber = x.CallNumber,
|
|
|
786
|
+ usercode = x.Usercode == "0" ? "" : x.Usercode,
|
|
|
787
|
+ startdate = x.StartDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "",
|
|
|
788
|
+ getinagentdate = x.GetInAgentDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "",
|
|
|
789
|
+ enddate = x.EndDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "",
|
|
|
790
|
+ username = x.Username,
|
|
|
791
|
+ calltype = Enum.Parse(typeof(EnumTalkRecordsCallType), x.CallType.ToString()).ToString(),
|
|
|
792
|
+ talktime = x.TalkTime > 0 ? x.TalkTime.ToString() : "0",
|
|
|
793
|
+ qcstate = x.QCState == 0 ? "未质检" : "已质检",
|
|
|
794
|
+ qcscore = x.QCScore,
|
|
|
795
|
+ qcremark = x.QCRemark ?? "",
|
|
|
796
|
+ qcuserid = x.QCUserId?.ToString() ?? "",
|
|
|
797
|
+ qcusername = x.QCUserName ?? "",
|
|
|
798
|
+ qctime = x.QCTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? ""
|
|
|
799
|
+ }),
|
|
|
800
|
+ total = recordCount
|
|
|
801
|
+ };
|
|
|
802
|
+ return Content(obj.ToJson());
|
|
|
803
|
+ }
|
|
|
804
|
+
|
|
|
805
|
+ /// <summary>
|
|
|
806
|
+ /// 获取质检详情
|
|
|
807
|
+ /// </summary>
|
|
|
808
|
+ /// <param name="id"></param>
|
|
|
809
|
+ /// <returns></returns>
|
|
|
810
|
+ public ActionResult GetQCDetail(string id)
|
|
|
811
|
+ {
|
|
|
812
|
+
|
|
|
813
|
+ DataTable dt = new DataTable();
|
|
|
814
|
+ DataTable dtindex = new DataTable();
|
|
|
815
|
+ DataTable dtres = new DataTable();
|
|
|
816
|
+ try
|
|
|
817
|
+ {
|
|
|
818
|
+ dt = new BLL.T_QC_IndexCategory().GetList(" F_DeleteFlag=0 order by F_Sort ,F_CategoryId").Tables[0];
|
|
|
819
|
+ dtindex = new BLL.T_QC_IndexBase().GetList(" F_DeleteFlag=0 order by F_Sort ,F_CategoryId").Tables[0];
|
|
|
820
|
+ dtres = new BLL.T_QC_IndexRes().GetList(" CallRecordsId=" + id + " ").Tables[0];
|
|
|
821
|
+ int i = 0;
|
|
|
822
|
+ int m = 0;
|
|
|
823
|
+ int indexcount = 0;
|
|
|
824
|
+ int allscore = 0;
|
|
|
825
|
+ int childscore = 0;
|
|
|
826
|
+ int childpf = 0;
|
|
|
827
|
+ int allpf = 0;
|
|
|
828
|
+ List<Model.QCModel> qclist = new List<Model.QCModel>();
|
|
|
829
|
+ object obj = null;
|
|
|
830
|
+
|
|
|
831
|
+ foreach (DataRow dr in dt.Select("F_ParentId=0"))
|
|
|
832
|
+ {
|
|
|
833
|
+ Model.QCModel qcml = new Model.QCModel();
|
|
|
834
|
+ List<Model.QCModel> qcclist = new List<Model.QCModel>();
|
|
|
835
|
+
|
|
|
836
|
+ i = 0;
|
|
|
837
|
+ indexcount = 0;
|
|
|
838
|
+ childscore = 0;
|
|
|
839
|
+ childpf = 0;
|
|
|
840
|
+
|
|
|
841
|
+ string categoryid = dr["F_CategoryId"].ToString().Trim();
|
|
|
842
|
+
|
|
|
843
|
+ qcml.Qcid = categoryid;
|
|
|
844
|
+ qcml.Qcname = dr["F_CategoryName"].ToString().Trim();
|
|
|
845
|
+
|
|
|
846
|
+ obj = DbHelperSQL.GetSingle("select count(*) from T_QC_IndexBase where F_CategoryId in(select F_CategoryId from T_QC_IndexCategory where F_ParentId=" + dr["F_CategoryId"] + ")");
|
|
|
847
|
+ qcml.Rowspan = obj.ToString();
|
|
|
848
|
+ foreach (DataRow childdr in dt.Select("F_ParentId=" + categoryid + ""))
|
|
|
849
|
+ {
|
|
|
850
|
+ Model.QCModel qcmlc = new Model.QCModel();
|
|
|
851
|
+ List<Model.QCModel> qccrlist = new List<Model.QCModel>();
|
|
|
852
|
+ m = 0;
|
|
|
853
|
+ #region 子分类
|
|
|
854
|
+ string childcategoryid = childdr["F_CategoryId"].ToString().Trim();
|
|
|
855
|
+ DataRow[] arrchild = dtindex.Select("F_CategoryId=" + childcategoryid + "");
|
|
|
856
|
+ indexcount += arrchild.Length;
|
|
|
857
|
+
|
|
|
858
|
+ //加载项
|
|
|
859
|
+ qcmlc.Qcid = categoryid + "-" + childcategoryid;
|
|
|
860
|
+ qcmlc.Qcname = childdr["F_CategoryName"].ToString().Trim();
|
|
|
861
|
+ obj = DbHelperSQL.GetSingle("select count(*) from T_QC_IndexBase where F_CategoryId=" + childdr["F_CategoryId"]);
|
|
|
862
|
+ qcmlc.Rowspan = obj.ToString();
|
|
|
863
|
+ #endregion
|
|
|
864
|
+ foreach (DataRow indexdr in arrchild)
|
|
|
865
|
+ {
|
|
|
866
|
+ Model.QCModel qcmlcr = new Model.QCModel();
|
|
|
867
|
+ string indexid = indexdr["F_IndexId"].ToString().Trim();
|
|
|
868
|
+ string pf = "0";
|
|
|
869
|
+ try
|
|
|
870
|
+ {
|
|
|
871
|
+ //分类分数合计
|
|
|
872
|
+ childscore += Convert.ToInt32(indexdr["F_Score"].ToString().Trim());
|
|
|
873
|
+ //总计合计
|
|
|
874
|
+ allscore += Convert.ToInt32(indexdr["F_Score"].ToString().Trim());
|
|
|
875
|
+ }
|
|
|
876
|
+ catch
|
|
|
877
|
+ { }
|
|
|
878
|
+ try
|
|
|
879
|
+ {
|
|
|
880
|
+ pf = dtres.Select("F_IndexId=" + indexid + "")[0]["F_QCScore"].ToString().Trim();
|
|
|
881
|
+ childpf += Convert.ToInt32(pf);//分类评分合计
|
|
|
882
|
+ allpf += Convert.ToInt32(pf);//评分总计
|
|
|
883
|
+ }
|
|
|
884
|
+ catch
|
|
|
885
|
+ {
|
|
|
886
|
+ }
|
|
|
887
|
+
|
|
|
888
|
+ #region 指标
|
|
|
889
|
+ //加载指标
|
|
|
890
|
+ qcmlcr.Qcid = categoryid + "-" + childcategoryid + "-" + indexid;
|
|
|
891
|
+ qcmlcr.Qcname = indexdr["F_Title"].ToString().Trim();
|
|
|
892
|
+ qcmlcr.Qcscore = indexdr["F_Score"].ToString().Trim();
|
|
|
893
|
+ qcmlcr.Qcpf = pf;
|
|
|
894
|
+ qcmlcr.Rowspan = "0";
|
|
|
895
|
+ qcmlcr.Colspan = "0";
|
|
|
896
|
+ #endregion
|
|
|
897
|
+ m++;
|
|
|
898
|
+
|
|
|
899
|
+ qccrlist.Add(qcmlcr);
|
|
|
900
|
+
|
|
|
901
|
+ }
|
|
|
902
|
+ i++;
|
|
|
903
|
+ qcmlc.Qclist = qccrlist;
|
|
|
904
|
+ qcclist.Add(qcmlc);
|
|
|
905
|
+ }
|
|
|
906
|
+ //合计
|
|
|
907
|
+ qcml.Qcscore = childscore.ToString().Trim();
|
|
|
908
|
+ qcml.Qcpf = childpf.ToString().Trim();
|
|
|
909
|
+ qcml.Qclist = qcclist;
|
|
|
910
|
+ qcml.Colspan = "2";
|
|
|
911
|
+ qclist.Add(qcml);
|
|
|
912
|
+ }
|
|
|
913
|
+ Model.QCModel qcmlhj = new Model.QCModel();
|
|
|
914
|
+ qcmlhj.Qcid = "0";
|
|
|
915
|
+ qcmlhj.Qcname = "总计";
|
|
|
916
|
+ qcmlhj.Qcscore = allscore.ToString().Trim();
|
|
|
917
|
+ qcmlhj.Qcpf = allpf.ToString().Trim();
|
|
|
918
|
+ qcmlhj.Qclist = qclist;
|
|
|
919
|
+ qcmlhj.Colspan = "3";
|
|
|
920
|
+
|
|
|
921
|
+ return Success("质检部分加载成功", qcmlhj);
|
|
|
922
|
+ }
|
|
|
923
|
+ catch (Exception ex)
|
|
|
924
|
+ {
|
|
|
925
|
+ return Error("获取质检详情异常,错误:" + ex.ToString());
|
|
|
926
|
+ }
|
|
|
927
|
+ finally
|
|
|
928
|
+ {
|
|
|
929
|
+ dtres.Clear();
|
|
|
930
|
+ dtres.Dispose();
|
|
|
931
|
+ dtindex.Clear();
|
|
|
932
|
+ dtindex.Dispose();
|
|
|
933
|
+ dt.Clear();
|
|
|
934
|
+ dt.Dispose();
|
|
|
935
|
+ }
|
|
|
936
|
+ }
|
|
|
937
|
+
|
|
|
938
|
+ /// <summary>
|
|
|
939
|
+ /// 保存质检详情
|
|
|
940
|
+ /// </summary>
|
|
|
941
|
+ /// <param name="id"></param>
|
|
|
942
|
+ /// <param name="xmlinfo"></param>
|
|
|
943
|
+ /// <returns></returns>
|
|
|
944
|
+ public ActionResult SaveQCDetail(string id, string xmlinfo)
|
|
|
945
|
+ {
|
|
|
946
|
+
|
|
|
947
|
+ DataTable dt = new BLL.T_QC_IndexResAutoCall().GetList(" CallRecordsId=" + id + " ").Tables[0];
|
|
|
948
|
+ int allscore = 0;
|
|
|
949
|
+ foreach (string scoreinfo in xmlinfo.Trim(';').Split(';'))
|
|
|
950
|
+ {
|
|
|
951
|
+ //判断存在该指标评估则修改,无则添加
|
|
|
952
|
+ string idsss = scoreinfo.Split(':')[0];
|
|
|
953
|
+ string indexid = idsss.Split('-')[2];
|
|
|
954
|
+ if (dt.Select(" F_IndexId=" + indexid + " ").Length > 0)
|
|
|
955
|
+ {
|
|
|
956
|
+ Model.T_QC_IndexResAutoCall model = new Model.T_QC_IndexResAutoCall();
|
|
|
957
|
+ model.F_Id = Convert.ToInt32(dt.Select(" F_IndexId=" + indexid + " ")[0]["F_Id"].ToString());
|
|
|
958
|
+ model.CallRecordsId = Convert.ToInt32(id);
|
|
|
959
|
+ try
|
|
|
960
|
+ {
|
|
|
961
|
+ model.F_IndexId = Convert.ToInt32(indexid);
|
|
|
962
|
+ }
|
|
|
963
|
+ catch
|
|
|
964
|
+ { }
|
|
|
965
|
+ try
|
|
|
966
|
+ {
|
|
|
967
|
+ model.F_QCScore = Convert.ToInt32(scoreinfo.Split(':')[1]);
|
|
|
968
|
+ allscore += Convert.ToInt32(scoreinfo.Split(':')[1]);
|
|
|
969
|
+ }
|
|
|
970
|
+ catch
|
|
|
971
|
+ { }
|
|
|
972
|
+ new BLL.T_QC_IndexResAutoCall().Update(model);
|
|
|
973
|
+ }
|
|
|
974
|
+ else
|
|
|
975
|
+ {
|
|
|
976
|
+ Model.T_QC_IndexResAutoCall model = new Model.T_QC_IndexResAutoCall();
|
|
|
977
|
+ model.CallRecordsId = Convert.ToInt32(id);
|
|
|
978
|
+ try
|
|
|
979
|
+ {
|
|
|
980
|
+ model.F_IndexId = Convert.ToInt32(indexid);
|
|
|
981
|
+ }
|
|
|
982
|
+ catch
|
|
|
983
|
+ { }
|
|
|
984
|
+ try
|
|
|
985
|
+ {
|
|
|
986
|
+ model.F_QCScore = Convert.ToInt32(scoreinfo.Split(':')[1]);
|
|
|
987
|
+ allscore += Convert.ToInt32(scoreinfo.Split(':')[1]);
|
|
|
988
|
+ }
|
|
|
989
|
+ catch
|
|
|
990
|
+ { }
|
|
|
991
|
+ new BLL.T_QC_IndexResAutoCall().Add(model);
|
|
|
992
|
+ }
|
|
|
993
|
+ }
|
|
|
994
|
+
|
|
|
995
|
+ Model.CallResult callmodel = new Model.CallResult();
|
|
|
996
|
+ callmodel.Id = Convert.ToInt32(id);
|
|
|
997
|
+ callmodel.QCState = 1;
|
|
|
998
|
+ callmodel.QCScore = allscore;
|
|
|
999
|
+ callmodel.QCUserId = CurrentUser.UserData.F_UserId;
|
|
|
1000
|
+ callmodel.QCUserCode = CurrentUser.UserData.F_UserCode;
|
|
|
1001
|
+ callmodel.QCUserName = CurrentUser.UserData.F_UserName;
|
|
|
1002
|
+ callmodel.QCTime = DateTime.Now;
|
|
|
1003
|
+ callmodel.QCRemark = "";
|
|
|
1004
|
+
|
|
|
1005
|
+ //callmodel.F_QCIsSelect = 0;
|
|
|
1006
|
+ //callmodel.F_QCQuestion = question;
|
|
|
1007
|
+ //callmodel.F_QCAdvise = advise;
|
|
|
1008
|
+ if (new BLL.CallResult().UpdateQC(callmodel))
|
|
|
1009
|
+ return Error("保存质检评分信息失败");
|
|
|
1010
|
+ dt.Clear();
|
|
|
1011
|
+ dt.Dispose();
|
|
|
1012
|
+ return Success("保存成功");
|
|
|
1013
|
+ }
|
|
|
1014
|
+ #endregion
|
|
596
|
1015
|
}
|
|
597
|
1016
|
}
|