Browse Source

工单同步

田爽 4 months ago
parent
commit
686677adcd
8 changed files with 1061 additions and 28 deletions
  1. 6 0
      CommonTool.cs
  2. 175 0
      Entity/CallNative.cs
  3. 219 0
      Entity/TrCallRecord.cs
  4. 363 0
      Entity/Workflow.cs
  5. 183 0
      Enum/Order.cs
  6. 36 13
      Form1.Designer.cs
  7. 28 0
      Form1.cs
  8. 51 15
      Joint/Order.cs

+ 6 - 0
CommonTool.cs

@@ -13,6 +13,12 @@ namespace DataTransmission
 {
 	public class CommonTool
 	{
+		public static string CenterId = string.Empty;
+
+		public static string Paseword = string.Empty;
+
+
+
 		public  SqlConnection GetConSqlServer()
 		{
 			return new SqlConnection(ConfigurationManager.AppSettings["SQLServerDB"]);

+ 175 - 0
Entity/CallNative.cs

@@ -0,0 +1,175 @@
+using DataTransmission.Enum;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DataTransmission.Entity
+{
+	public class CallNative : CreationSoftDeleteEntity
+	{
+		/// <summary>
+		/// 通话记录编号
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "通话记录编号")]
+		public string CallNo { get; set; }
+
+		/// <summary>
+		/// 通话方向
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "通话方向")]
+		public ECallDirection Direction { get; set; }
+
+		/// <summary>
+		/// 主叫
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "主叫号码")]
+		public string FromNo { get; set; }
+
+		/// <summary>
+		/// 被叫
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "被叫号码")]
+		public string ToNo { get; set; }
+
+		/// <summary>
+		/// 响应分机号
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "响应分机号")]
+		public string TelNo { get; set; }
+
+		/// <summary>
+		/// 挂断方
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "挂断方")]
+		public EEndBy? EndBy { get; set; }
+
+		/// <summary>
+		/// IVR开始时间
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "IVR开始时间")]
+		public DateTime? BeginIvrTime { get; set; }
+
+		/// <summary>
+		/// IVR结束时间
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "IVR结束时间")]
+		public DateTime? EndIvrTime { get; set; }
+
+		/// <summary>
+		/// 开始等待时间
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "开始等待时间")]
+		public DateTime? BeginQueueTime { get; set; }
+
+		/// <summary>
+		/// 结束等待时间
+		/// 兴唐没值
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "结束等待时间")]
+		public DateTime? EndQueueTime { get; set; }
+
+		/// <summary>
+		/// 开始振铃时间
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "开始振铃时间")]
+		public DateTime? BeginRingTime { get; set; }
+
+		/// <summary>
+		/// 结束振铃时间
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "结束振铃时间")]
+		public DateTime? EndRingTime { get; set; }
+
+		/// <summary>
+		/// 接听时间
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "接听时间")]
+		public DateTime? AnsweredTime { get; set; }
+
+		/// <summary>
+		/// 挂机时间
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "挂机时间")]
+		public DateTime EndTime { get; set; }
+
+		/// <summary>
+		/// 分机组id(技能组Id)
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "分机组ID")]
+		public string? GroupId { get; set; }
+
+		/// <summary>
+		/// 工号
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "工号")]
+		public string? StaffNo { get; set; }
+
+		/// <summary>
+		/// 话务员id
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "话务员ID")]
+		public string? UserId { get; set; }
+
+		/// <summary>
+		/// 话务员姓名
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "话务员姓名")]
+		public string? UserName { get; set; }
+
+		/// <summary>
+		/// 评分
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "评分")]
+		public int Score { get; set; }
+
+		/// <summary>
+		/// 通话时长(秒)
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "通话时长(秒)")]
+		public int Duration { get; set; }
+
+		/// <summary>
+		/// 响铃时长(秒)
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "响铃时长(秒)")]
+		public int RingDuration { get; set; }
+
+		/// <summary>
+		/// 等待时长
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "等待时长")]
+		public int WaitDuration { get; set; }
+
+		/// <summary>
+		/// 通话录音
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "通话录音")]
+		public string AudioFile { get; set; }
+
+		/// <summary>
+		/// 电话回复内容
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "电话回复内容")]
+		public string? ReplyTxt { get; set; }
+
+		/// <summary>
+		/// 转接分机号
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "转接分机号")]
+		public string? AgentTransferNumber { get; set; }
+
+		/// <summary>
+		/// 呼叫状态
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "呼叫状态")]
+		public ECallState? CallState { get; set; }
+
+		/// <summary>
+		/// 软删除
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "软删除", DefaultValue = "f")]
+		public bool IsDeleted { get; set; }
+	}
+}

+ 219 - 0
Entity/TrCallRecord.cs

@@ -0,0 +1,219 @@
+using DataTransmission.Enum;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DataTransmission.Entity
+{
+	public class TrCallRecord : CreationEntity
+	{
+		/// <summary>
+		/// IPPBX用户名
+		/// </summary>
+		public string? User { get; set; }
+
+		/// <summary>
+		/// 可直接访问的通话录音地址
+		/// </summary>
+		public string? RecordingFileUrl { get; set; }
+
+		public string? RecordingBaseAddress { get; set; }
+		public string? RecordingAbsolutePath { get; set; }
+
+		/// <summary>
+		/// 呼叫方向
+		/// </summary>
+		public ECallDirection CallDirection { get; set; }
+		/// <summary>
+		/// 挂断方
+		/// </summary>
+		public EEndBy? EndBy { get; set; }
+
+		/// <summary>
+		/// 转接分机号
+		/// </summary>
+		public string? AgentTransferNumber { get; set; }
+
+		/// <summary>
+		/// 坐席侧通话流水,无坐席参与则为手机侧通话流水
+		/// </summary>
+		public string? CallAccept { get; set; }
+		/// <summary>
+		/// 主叫
+		/// </summary>
+		public string CPN { get; set; }
+		/// <summary>
+		/// 主叫名称
+		/// </summary>
+		public string? CPNName { get; set; }
+		/// <summary>
+		/// 被叫
+		/// </summary>
+		public string CDPN { get; set; }
+		/// <summary>
+		/// 分机号
+		/// </summary>
+		public string? TelNo { get; set; }
+		public string? UserId { get; set; }
+		public string? UserName { get; set; }
+		public string? StaffNo { get; set; }
+		/// <summary>
+		/// 通话录音绝对路径
+		/// </summary>
+		public string? RecordingFileName { get; set; }
+		/// <summary>
+		/// 通话创建时间
+		/// </summary>
+		public DateTime CreatedTime { get; set; }
+		/// <summary>
+		/// 接通时间
+		/// </summary>
+		public DateTime? AnsweredTime { get; set; }
+		/// <summary>
+		/// 挂机时间
+		/// </summary>
+		public DateTime OverTime { get; set; }
+		/// <summary>
+		/// 线路号
+		/// </summary>
+		public string? Gateway { get; set; }
+		/// <summary>
+		/// 呼出时自定义的内容
+		/// </summary>
+		public string? OtherStr { get; set; }
+		/// <summary>
+		/// 手机侧通话流水,无坐席参与则为空
+		/// </summary>
+		public string? OtherAccept { get; set; }
+		/// <summary>
+		/// 状态码,语音信箱:999/其他:16
+		/// </summary>
+		public string? Status { get; set; }
+		/// <summary>
+		/// IVR开始时间
+		/// </summary>
+		public DateTime? BeginIvrTime { get; set; }
+		/// <summary>
+		/// IVR结束时间
+		/// </summary>
+		public DateTime? EndIvrTime { get; set; }
+		/// <summary>
+		/// 开始等待时间
+		/// </summary>
+		public DateTime? BeginQueueTime { get; set; }
+		/// <summary>
+		/// 结束等待时间
+		/// </summary>
+		public DateTime? EndQueueTime { get; set; }
+		/// <summary>
+		/// 开始振铃时间
+		/// </summary>
+		public DateTime? BeginRingTime { get; set; }
+		/// <summary>
+		/// 结束振铃时间
+		/// </summary>
+		public DateTime? EndRingTimg { get; set; }
+		/// <summary>
+		/// 队列ID
+		/// </summary>
+		public string? OlaQueue { get; set; }
+		/// <summary>
+		/// 批量外呼流水
+		/// </summary>
+		public string? BatchAccept { get; set; }
+		/// <summary>
+		/// IVR按键信息
+		/// </summary>
+		public string? IvrDtmf { get; set; }
+		/// <summary>
+		/// IVR按键对应动作,需解码
+		/// </summary>
+		public string? DtmfType { get; set; }
+
+		/// <summary>
+		/// 通话状态
+		/// </summary>
+		public EOnState OnState { get; set; }
+
+		#region 自定义字段
+		/// <summary>
+		/// 通话时长(挂机时间-接通时间)
+		/// </summary>
+		//[SugarColumn(DefaultValue = "0")]
+		public int Duration { get; set; }
+
+		/// <summary>
+		/// 振铃时长(振铃结束时间-振铃开始时间)
+		/// </summary>
+		//[SugarColumn(DefaultValue = "0")]
+		public int RingTimes { get; set; }
+
+		/// <summary>
+		/// 排队时长(排队结束时间-排队开始时间)
+		/// </summary>
+		//[SugarColumn(DefaultValue = "0")]
+		public int QueueTims { get; set; }
+
+		public ECallOrderType? CallOrderType { get; set; }
+
+		/// <summary>
+		/// 外部ID
+		/// </summary>
+		public string? ExternalId { get; set; }
+
+		/// <summary>
+		/// 工单
+		/// </summary>
+		//[Navigate(NavigateType.OneToOne, nameof(ExternalId))]
+		//public Order? Order { get; set; }
+
+		/// <summary>
+		/// 呼入号码类型
+		/// </summary>
+		public EPhoneTypes? PhoneTypes { get; set; }
+
+		/// <summary>
+		/// 归属地
+		/// </summary>
+		public string? MobileAreaName { get; set; }
+
+		/// <summary>
+		/// 运营商
+		/// </summary>
+		public string? OFlag { get; set; }
+
+		/// <summary>
+		/// 卡类型
+		/// </summary>
+		public string? OperatorName { get; set; }
+
+		/// <summary>
+		/// 转写内容
+		/// </summary>
+		//[SugarColumn(ColumnDataType = "varchar(8000)")]
+		public string? TransliterationContent { get; set; }
+
+		/// <summary>
+		/// 转写状态
+		/// </summary>
+		//[SugarColumn(DefaultValue = "0")]
+		public ECallTransliterationState TransliterationState { get; set; }
+
+		/// <summary>
+		/// 转写id  涉及转写失败后再次推送  id需要更换
+		/// </summary>
+		public string? TransliterationId { get; set; }
+
+		//public void InitTransliterationId() => TransliterationId = SequentialStringGenerator.Create();
+
+		/// <summary>
+		/// 敏感标签
+		/// </summary>
+		//[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true, ColumnDescription = "敏感标签")]
+		public List<string>? Sensitive { get; set; }
+		#endregion
+
+	}
+}

+ 363 - 0
Entity/Workflow.cs

@@ -0,0 +1,363 @@
+using DataTransmission.Enum;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DataTransmission.Entity
+{
+	public partial class Workflow : CreationEntity
+	{
+		public string DefinitionId { get; set; }
+
+		/// <summary>
+		/// 流程类型
+		/// </summary>
+		public EFlowType FlowType { get; set; }
+
+		/// <summary>
+		/// 审核结果
+		/// </summary>
+		public EReviewResult ReviewResult { get; set; }
+
+		#region 业务模块(冗余)
+
+		public string? ModuleId { get; set; }
+
+		public string? ModuleName { get; set; }
+
+		public string? ModuleCode { get; set; }
+
+		#endregion
+
+		/// <summary>
+		/// 流程标题
+		/// </summary>
+		//[SugarColumn(ColumnDataType = "varchar(2000)")]
+		public string Title { get; set; }
+
+		/// <summary>
+		/// end节点办理完成时间
+		/// </summary>
+		public DateTime? EndTime { get; set; }
+
+		/// <summary>
+		/// 流程状态
+		/// </summary>
+		public EWorkflowStatus Status { get; set; }
+
+		#region 实际办理信息(节点,部门,意见)
+
+		/// <summary>
+		/// 实际办理节点code(会签状态此字段保存最外层会签发起节点code)
+		/// </summary>
+		public string? ActualHandleStepCode { get; set; }
+
+		/// <summary>
+		/// 实际办理节点名称(会签状态此字段保存最外层会签发起节点名称)
+		/// </summary>
+		public string? ActualHandleStepName { get; set; }
+
+		/// <summary>
+		/// 实际办理节点id
+		/// </summary>
+		public string? ActualHandleStepId { get; set; }
+
+		/// <summary>
+		/// 到达实际办理节点时间(stepBox创建时间)
+		/// </summary>
+		public DateTime? ActualHandleStepCreateTime { get; set; }
+
+		/// <summary>
+		/// 实际办理节点签收时间
+		/// </summary>
+		public DateTime? ActualHandleStepAcceptTime { get; set; }
+
+		/// <summary>
+		/// 实际办理时间
+		/// </summary>
+		public DateTime? ActualHandleTime { get; set; }
+
+		/// <summary>
+		/// 实际办理人id
+		/// </summary>
+		public string? ActualHandlerId { get; set; }
+
+		/// <summary>
+		/// 实际办理人名称
+		/// </summary>
+		public string? ActualHandlerName { get; set; }
+
+		/// <summary>
+		/// 实际办理部门名称
+		/// </summary>
+		public string? ActualHandleOrgName { get; set; }
+
+		/// <summary>
+		/// 实际办理部门编码
+		/// </summary>
+		public string? ActualHandleOrgCode { get; set; }
+
+		/// <summary>
+		/// 实际办理部门等级
+		/// </summary>
+		public int? ActualHandleOrgLevel { get; set; }
+
+		/// <summary>
+		/// 实际办理部门行政区划编码
+		/// </summary>
+		public string? ActualHandleOrgAreaCode { get; set; }
+
+		/// <summary>
+		/// 实际办理部门行政区划名称
+		/// </summary>
+		public string? ActualHandleOrgAreaName { get; set; }
+
+		/// <summary>
+		/// 实际办理意见(办理中...or 最终办理意见)
+		/// </summary>
+		//[SugarColumn(ColumnDataType = "text")]
+		public string ActualOpinion { get; set; } = "办理中...";
+
+		///// <summary>
+		///// 真实办理人姓名(手动填写)
+		///// </summary>
+		//public string? RealHandlerName { get; set; }
+
+		///// <summary>
+		///// 真实办理人电话(手动填写)
+		///// </summary>
+		//public string? RealHandlerPhone { get; set; }
+
+		///// <summary>
+		///// 沟通方式(手动填写)
+		///// </summary>
+		//public ERealCommunicationMode? RealCommunicationMode { get; set; }
+
+		///// <summary>
+		///// 沟通时间(手动填写)
+		///// </summary>
+		//public DateTime? RealCommunicationTime { get; set; }
+
+		///// <summary>
+		///// 沟通地点(手动填写)
+		///// </summary>
+		//public string? RealCommunicationAddress { get; set; }
+
+		///// <summary>
+		///// 已与市民沟通
+		///// </summary>
+		//public bool? RealIsContacted { get; set; }
+
+		///// <summary>
+		///// 已与市民现场沟通
+		///// </summary>
+		//public bool? RealContactLocale { get; set; }
+		#endregion
+
+		#region 当前办理节点信息(指派时赋值)
+
+		public string? CurrentStepId { get; set; }
+
+		/// <summary>
+		/// 当前办理节点code(非会签:当前被指派节点,会签:会签发起节点)
+		/// </summary>
+		public string? CurrentStepCode { get; set; }
+
+		/// <summary>
+		/// 当前节点名称
+		/// </summary>
+		public string? CurrentStepName { get; set; }
+
+		/// <summary>
+		/// 到达当前节点时间
+		/// </summary>
+		public DateTime? CurrentStepCreateTime { get; set; }
+
+		/// <summary>
+		/// 当前办理节点签收时间
+		/// </summary>
+		public DateTime? CurrentStepAcceptTime { get; set; }
+
+		/// <summary>
+		/// 当前办理时间
+		/// </summary>
+		public DateTime? CurrentHandleTime { get; set; }
+
+		/// <summary>
+		/// 当前办理人id
+		/// </summary>
+		public string? CurrentHandlerId { get; set; }
+
+		/// <summary>
+		/// 当前办理人名称
+		/// </summary>
+		public string? CurrentHandlerName { get; set; }
+
+		/// <summary>
+		/// 当前办理部门名称
+		/// </summary>
+		public string? CurrentHandleOrgName { get; set; }
+
+		/// <summary>
+		/// 当前办理部门编码
+		/// </summary>
+		public string? CurrentHandleOrgId { get; set; }
+
+		/// <summary>
+		/// 当前办理部门等级
+		/// </summary>
+		public int? CurrentHandleOrgLevel { get; set; }
+
+		/// <summary>
+		/// 当前办理部门行政区划编码
+		/// </summary>
+		public string? CurrentHandleOrgAreaCode { get; set; }
+
+		/// <summary>
+		/// 当前办理部门行政区划名称
+		/// </summary>
+		public string? CurrentHandleOrgAreaName { get; set; }
+
+		#endregion
+
+		#region 会签
+
+		/// <summary>
+		/// 会签类型
+		/// </summary>
+		public ECounterSignType? CounterSignType { get; set; }
+
+		/// <summary>
+		/// 当前会签办理节点Id,嵌套会签为最外层会签办理节点Id
+		/// </summary>
+		public string? TopCountersignStepId { get; set; }
+
+		/// <summary>
+		/// 流程是否处于会签中(实时)
+		/// </summary>
+		public bool IsInCountersign { get; set; }
+
+		#endregion
+
+
+		// /// <summary>
+		// /// 办结时长(分钟)
+		// /// 办结时间-交办时间
+		// /// </summary>
+		// public double HandleDuration { get; set; }
+		//
+		// /// <summary>
+		// /// 办结工作日时长
+		// /// </summary>
+		// public double HandleDurationWorkday { get; set; }
+
+		/// <summary>
+		/// 全流程时长(秒)
+		/// 归档时间-创建时间
+		/// </summary>
+		public double AllDuration { get; set; }
+
+		/// <summary>
+		/// 外部业务唯一标识
+		/// </summary>
+		public string ExternalId { get; set; }
+
+		#region 当前办理对象
+
+		/// <summary>
+		/// 办理人id
+		/// </summary>
+		//[SugarColumn(ColumnDataType = "json", IsJson = true)]
+		public List<HandlerGroupItem> HandlerUsers { get; set; } = new();
+
+		/// <summary>
+		/// 办理部门id
+		/// </summary>
+		//[SugarColumn(ColumnDataType = "json", IsJson = true)]
+		public List<HandlerGroupItem> HandlerOrgs { get; set; } = new();
+
+		#endregion
+
+		#region 流经对象
+
+		/// <summary>
+		/// 流经部门
+		/// </summary>
+		//[SugarColumn(ColumnDataType = "json", IsJson = true)]
+		public List<string> FlowedOrgIds { get; set; } = new();
+
+		/// <summary>
+		/// 流经办理人
+		/// </summary>
+		//[SugarColumn(ColumnDataType = "json", IsJson = true)]
+		public List<string> FlowedUserIds { get; set; } = new();
+
+		#endregion
+
+		#region 会签实际办理对象
+
+		//[SugarColumn(ColumnDataType = "json", IsJson = true)]
+		public List<string>? CsActualHandleOrgIds { get; set; }
+
+		//[SugarColumn(ColumnDataType = "json", IsJson = true)]
+		public List<string>? CsActualHandleUserIds { get; set; }
+
+		#endregion
+
+		#region 一级部门
+
+		/// <summary>
+		/// 一级部门code
+		/// </summary>
+		public string? OrgLevelOneCode { get; set; }
+
+		/// <summary>
+		/// 一级部门名称
+		/// </summary>
+		public string? OrgLevelOneName { get; set; }
+
+		#endregion
+
+		#region 受理人(开启流程的话务员)
+
+		/// <summary>
+		/// 受理人id
+		/// </summary>
+		public string? AcceptorId { get; set; }
+
+		/// <summary>
+		/// 受理人名称
+		/// </summary>
+		public string? AcceptorName { get; set; }
+
+		/// <summary>
+		/// 受理人工号
+		/// </summary>
+		public string? AcceptorStaffNo { get; set; }
+
+		/// <summary>
+		/// 受理人部门编码
+		/// </summary>
+		public string? AcceptorOrgId { get; set; }
+
+		/// <summary>
+		/// 受理人部门名称
+		/// </summary>
+		public string? AcceptorOrgName { get; set; }
+
+		/// <summary>
+		/// 受理人部门行政区划编码
+		/// </summary>
+		public string? AcceptorOrgAreaCode { get; set; }
+
+		/// <summary>
+		/// 受理人部门行政区划名称
+		/// </summary>
+		public string? AcceptorOrgAreaName { get; set; }
+
+		#endregion
+
+	}
+}

+ 183 - 0
Enum/Order.cs

@@ -759,6 +759,34 @@ namespace DataTransmission.Enum
 	#endregion
 
 	#region Step
+
+	public enum EWorkflowStatus
+	{
+		Runnable = 0,
+		Suspended = 10,
+		Completed = 20,
+		Terminated = 30,
+	}
+
+
+	/// <summary>
+	/// 流程类型
+	/// </summary>
+	public enum EFlowType
+	{
+		/// <summary>
+		/// 办理
+		/// </summary>
+		[Description("办理")]
+		Handle = 0,
+
+		/// <summary>
+		/// 审核
+		/// </summary>
+		[Description("审核")]
+		Review = 10,
+	}
+
 	/// <summary>
 	/// 节点状态
 	/// </summary>
@@ -1270,4 +1298,159 @@ namespace DataTransmission.Enum
 	}
 	#endregion
 
+	#region Call
+	/// <summary>
+	/// 呼叫状态
+	/// 兴唐状态: 0: 留言; 1: 队列等待超时; 2: 坐席振铃超时; 3: 未接; 4: 满意度; 5: 通话; 6: IVR; 7: 振铃挂机; 8: 分机互打挂机; 9: ASR交互;
+	/// </summary>
+	public enum ECallState
+	{
+		/// <summary>
+		/// 无效
+		/// 兴唐: SkillId = 0
+		/// </summary>
+		[Description("无效")]
+		Invalid = 0,
+
+		/// <summary>
+		/// 接通
+		/// 兴唐: 状态: 0, 4, 5, 8
+		/// </summary>
+		[Description("接通")]
+		On = 1,
+
+		/// <summary>
+		/// 未接
+		/// 兴唐 状态: 2 , 3, 7
+		/// </summary>
+		[Description("未接")]
+		Missed = 2,
+
+		/// <summary>
+		/// 呼入队列挂断
+		/// 兴唐 状态: 1
+		/// </summary>
+		[Description("呼入队列挂断")]
+		NotAcceptedHang = 3,
+
+
+		/// <summary>
+		/// IVR挂断
+		/// 兴唐 状态: 6
+		/// </summary>
+		[Description("IVR挂断")]
+		IVRNoAccept = 5
+	}
+
+	/// <summary>
+	/// 通话结束方
+	/// </summary>
+	public enum EEndBy
+	{
+		/// <summary>
+		/// 主叫方结束
+		/// </summary>
+		[Description("主叫方结束")]
+		From = 0,
+
+		/// <summary>
+		/// 被叫方结束
+		/// </summary>
+		[Description("被叫方结束")]
+		To = 1,
+
+		/// <summary>
+		/// 其他位置情况
+		/// </summary>
+		[Description("其他未知情况")]
+		None = 2,
+	}
+
+	/// <summary>
+	/// 呼叫方向,来电/呼出
+	/// </summary>
+	public enum ECallDirection
+	{
+		/// <summary>
+		/// 来电
+		/// </summary>
+		[Description("来电")]
+		In = 0,
+
+		/// <summary>
+		/// 呼出
+		/// </summary>
+		[Description("呼出")]
+		Out = 1,
+	}
+
+	public enum ECallTransliterationState
+	{
+		/// <summary>
+		/// 未开始
+		/// </summary>
+		[Description("未开始")]
+		NoBegin = 0,
+
+		/// <summary>
+		/// 进行中	
+		/// </summary>
+		[Description("进行中")]
+		Underway = 1,
+
+		/// <summary>
+		/// 转写成功
+		/// </summary>
+		[Description("转写成功")]
+		Succeed = 2,
+
+		/// <summary>
+		/// 转写失败
+		/// </summary>
+		[Description("转写失败")]
+		Fail = 3,
+	}
+
+	public enum EPhoneTypes
+	{
+		[Description("普通")]
+		Ordinary = 0,
+
+		[Description("呼入VIP")]
+		CallInVip = 1,
+
+		[Description("呼入黑名单")]
+		CallInBlackList = 2,
+
+		[Description("呼出黑名单")]
+		CallOutBlackList = 3,
+
+		[Description("呼入呼出黑名单")]
+		CallIntAndOutBlackList = 4,
+	}
+
+	public enum ECallOrderType
+	{
+		[Description("工单")]
+		Order = 1,
+		[Description("回访")]
+		Visit = 2,
+	}
+
+	public enum EOnState
+	{
+		/// <summary>
+		/// 接通
+		/// </summary>
+		[Description("接通")]
+		On = 1,
+
+		/// <summary>
+		/// 未接通
+		/// </summary>
+		[Description("未接通")]
+		NoOn = 2,
+	}
+	#endregion
+
 }

+ 36 - 13
Form1.Designer.cs

@@ -40,19 +40,21 @@
 			cb_tz = new CheckBox();
 			cb_opp = new CheckBox();
 			cb_zsklx = new CheckBox();
+			label3 = new Label();
+			cbox_bb = new ComboBox();
 			SuspendLayout();
 			// 
 			// st_time
 			// 
 			st_time.CustomFormat = "yyyy-MM-dd hh:mm:ss";
-			st_time.Location = new Point(141, 56);
+			st_time.Location = new Point(205, 73);
 			st_time.Name = "st_time";
 			st_time.Size = new Size(200, 23);
 			st_time.TabIndex = 0;
 			// 
 			// end_time
 			// 
-			end_time.Location = new Point(141, 110);
+			end_time.Location = new Point(205, 127);
 			end_time.Name = "end_time";
 			end_time.Size = new Size(200, 23);
 			end_time.TabIndex = 1;
@@ -60,7 +62,7 @@
 			// label1
 			// 
 			label1.AutoSize = true;
-			label1.Location = new Point(67, 59);
+			label1.Location = new Point(131, 76);
 			label1.Name = "label1";
 			label1.Size = new Size(68, 17);
 			label1.TabIndex = 2;
@@ -69,7 +71,7 @@
 			// label2
 			// 
 			label2.AutoSize = true;
-			label2.Location = new Point(67, 113);
+			label2.Location = new Point(131, 130);
 			label2.Name = "label2";
 			label2.Size = new Size(68, 17);
 			label2.TabIndex = 3;
@@ -77,7 +79,7 @@
 			// 
 			// btn_tb
 			// 
-			btn_tb.Location = new Point(157, 318);
+			btn_tb.Location = new Point(221, 335);
 			btn_tb.Name = "btn_tb";
 			btn_tb.Size = new Size(75, 23);
 			btn_tb.TabIndex = 4;
@@ -88,7 +90,7 @@
 			// cb_order
 			// 
 			cb_order.AutoSize = true;
-			cb_order.Location = new Point(94, 163);
+			cb_order.Location = new Point(158, 180);
 			cb_order.Name = "cb_order";
 			cb_order.Size = new Size(75, 21);
 			cb_order.TabIndex = 5;
@@ -98,7 +100,7 @@
 			// cb_zsk
 			// 
 			cb_zsk.AutoSize = true;
-			cb_zsk.Location = new Point(235, 201);
+			cb_zsk.Location = new Point(299, 218);
 			cb_zsk.Name = "cb_zsk";
 			cb_zsk.Size = new Size(87, 21);
 			cb_zsk.TabIndex = 6;
@@ -108,7 +110,7 @@
 			// cb_user
 			// 
 			cb_user.AutoSize = true;
-			cb_user.Location = new Point(93, 201);
+			cb_user.Location = new Point(157, 218);
 			cb_user.Name = "cb_user";
 			cb_user.Size = new Size(75, 21);
 			cb_user.TabIndex = 7;
@@ -118,7 +120,7 @@
 			// cb_jg
 			// 
 			cb_jg.AutoSize = true;
-			cb_jg.Location = new Point(235, 239);
+			cb_jg.Location = new Point(299, 256);
 			cb_jg.Name = "cb_jg";
 			cb_jg.Size = new Size(75, 21);
 			cb_jg.TabIndex = 8;
@@ -128,7 +130,7 @@
 			// cb_tz
 			// 
 			cb_tz.AutoSize = true;
-			cb_tz.Location = new Point(93, 239);
+			cb_tz.Location = new Point(157, 256);
 			cb_tz.Name = "cb_tz";
 			cb_tz.Size = new Size(75, 21);
 			cb_tz.TabIndex = 9;
@@ -138,7 +140,7 @@
 			// cb_opp
 			// 
 			cb_opp.AutoSize = true;
-			cb_opp.Location = new Point(235, 277);
+			cb_opp.Location = new Point(299, 294);
 			cb_opp.Name = "cb_opp";
 			cb_opp.Size = new Size(99, 21);
 			cb_opp.TabIndex = 10;
@@ -148,18 +150,37 @@
 			// cb_zsklx
 			// 
 			cb_zsklx.AutoSize = true;
-			cb_zsklx.Location = new Point(235, 163);
+			cb_zsklx.Location = new Point(299, 180);
 			cb_zsklx.Name = "cb_zsklx";
 			cb_zsklx.Size = new Size(111, 21);
 			cb_zsklx.TabIndex = 11;
 			cb_zsklx.Text = "同步知识库类型";
 			cb_zsklx.UseVisualStyleBackColor = true;
 			// 
+			// label3
+			// 
+			label3.AutoSize = true;
+			label3.Location = new Point(131, 28);
+			label3.Name = "label3";
+			label3.Size = new Size(68, 17);
+			label3.TabIndex = 12;
+			label3.Text = "系统版本:";
+			// 
+			// cbox_bb
+			// 
+			cbox_bb.FormattingEnabled = true;
+			cbox_bb.Location = new Point(205, 25);
+			cbox_bb.Name = "cbox_bb";
+			cbox_bb.Size = new Size(200, 25);
+			cbox_bb.TabIndex = 13;
+			// 
 			// Form1
 			// 
 			AutoScaleDimensions = new SizeF(7F, 17F);
 			AutoScaleMode = AutoScaleMode.Font;
-			ClientSize = new Size(403, 353);
+			ClientSize = new Size(550, 424);
+			Controls.Add(cbox_bb);
+			Controls.Add(label3);
 			Controls.Add(cb_zsklx);
 			Controls.Add(cb_opp);
 			Controls.Add(cb_tz);
@@ -192,5 +213,7 @@
         private CheckBox cb_tz;
         private CheckBox cb_opp;
 		private CheckBox cb_zsklx;
+		private Label label3;
+		private ComboBox cbox_bb;
 	}
 }

+ 28 - 0
Form1.cs

@@ -15,11 +15,39 @@ namespace DataTransmission
 		public Form1()
 		{
 			InitializeComponent();
+			cbox_bb.Items.Add("宜宾");
+			cbox_bb.Items.Add("自贡");
+			cbox_bb.Items.Add("泸州");
+			cbox_bb.SelectedIndex = 0;
 		}
 
 		private void btn_tb_Click(object sender, EventArgs e)
 		{
 			btn_tb.Enabled = false;
+			//if (cbox_bb.SelectedText ="宜宾")
+			//{
+
+			//}
+			switch (cbox_bb.SelectedText)
+			{
+				case "宜宾":
+					CommonTool.CenterId = "23";
+					CommonTool.Paseword = "AQAAAAIAAYagAAAAELQ9clcozvhLoTC0pUjUwv40VXsIp3JyxFhEmqVQOmBLMZ7gGmne6cqL9FHXb0CUBQ==";
+					break;
+				case "自贡":
+					CommonTool.CenterId = "2";
+					CommonTool.Paseword = "AQAAAAIAAYagAAAAEJZNauXWsvzHDvSCLEwNjA3qVJcQqEHAexlWDg6ONJJtK5hDNnL8gwwXxwZW5YszfA==";
+					break;
+				case "泸州":
+					CommonTool.CenterId = "23";
+					CommonTool.Paseword = "AQAAAAIAAYagAAAAELQ9clcozvhLoTC0pUjUwv40VXsIp3JyxFhEmqVQOmBLMZ7gGmne6cqL9FHXb0CUBQ==";
+					break;
+				default:
+					break;
+			}
+
+
+
 			if (cb_opp.Checked)
 			{//同步工单发布公开数据ExecuteInsertOrderPublic
 				execute.ExecuteInsertOrderPublic(st_time.Value.ToString("yyyy-MM-dd") + " 00:00:00", end_time.Value.ToString("yyyy-MM-dd") + " 23:59:59");

+ 51 - 15
Joint/Order.cs

@@ -14,7 +14,8 @@ namespace DataTransmission.Joint
 		public DataTable GetOrder( string st_time, string end_time) {
 			var conn = tool.GetConSqlServer();
 			//获取工单数据
-			var orderSql = $@"SELECT ROW_NUMBER() OVER (ORDER BY FSH_FlowID) AS Serial, CHPRCI.RCI_FlowID,*,REPLACE(CAST(FCT.FCT_Content  AS NVARCHAR(MAX)),CHAR(13)+CHAR(10), '') 受理内容,REPLACE(CAST(ISNULL(FTC2.FTC_RRemark,FTRB.FTRB_RRemark) AS NVARCHAR(MAX)),CHAR(13)+CHAR(10), '')  承办意见 FROM  dbo.View_Flow_Process   FSH
+			var orderSql = $@"SELECT ROW_NUMBER() OVER (ORDER BY FSH_FlowID) AS Serial, CHPRCI.RCI_FlowID,*,REPLACE(CAST(FCT.FCT_Content  AS NVARCHAR(MAX)),CHAR(13)+CHAR(10), '') 受理内容,REPLACE(CAST(ISNULL(FTC2.FTC_RRemark,FTRB.FTRB_RRemark) AS NVARCHAR(MAX)),CHAR(13)+CHAR(10), '')  承办意见 
+				FROM  dbo.View_Flow_Process   FSH
 				LEFT JOIN  dbo.Flow05_LinkMan  FLM ON FSH.FSH_FlowID = FLM.FLM_FlowID
 				LEFT JOIN  dbo.Flow01_Type  FT ON FT.FTE_TypeFlag =2 AND FSH.FSH_ConTypeID = FT.FTE_TypeID
 				LEFT JOIN  dbo.SYS19_Area  SA ON FSH.FSH_AreaID = SA.SA_AreaID
@@ -48,13 +49,48 @@ namespace DataTransmission.Joint
 			{
 				tool.SaveLog(" OrderMessage :" + e.Message + ";" + row["FSH_AcceptBMID"].ToString() + "  ;", 1);
 			}
-			
-			var pgOrderSql = $@"INSERT INTO ""public"".""order"" (""Id"", ""CallId"", ""FromPhone"", ""TransferPhone"", ""FromName"", ""FromGender"", ""IdentityType"", ""LicenceTypeCode"",
-						""LicenceType"", ""LicenceNo"", ""AgeRangeCode"", ""AgeRange"", ""Contact"", ""ContactMask"", ""AcceptSms"", ""Company"",
-						""No"", ""AcceptType"", ""EmergencyLevel"", ""Title"", ""HotspotId"", ""HotspotName"", ""HotspotSpliceName"", ""HotspotExternal"",
-						""IncidentTime"", ""PushTypeCode"", ""PushType"", ""Content"", ""Status"", ""StartTime"", ""ExpiredTime"", ""FiledTime"",
-						""ExpiredStatus"", ""WorkflowId"", ""ExpiredTimeConfigId"", ""Longitude"", ""Latitude"", ""AreaCode"", ""Street"", ""LastModificationTime"",
-						""IsDeleted"", ""DeletionTime"", ""CreationTime"", ""CreatorOrgId"", ""CreatorId"", ""AreaId"", ""Source"", ""SmsSended"",
+			#region CrEnt
+			var order = new Entity.Order();
+			order.InitId();
+			order.CallId = row["FSH_SessionID"].ToString();
+			order.FromPhone = row["FSH_FromTel"].ToString();
+			order.TransferPhone = row["FSH_HotlineNum"].ToString();
+			order.FromName = row["FSH_LinkName"].ToString();
+			order.FromGender = (Enum.EGender)sex;
+			order.IdentityType = (Enum.EIdentityType)identityType;
+			order.Contact = row["FSH_LinkTel"].ToString();
+			order.ContactMask = ContactMask;
+			order.AcceptSms = false;
+			order.No = row["FSH_Code"].ToString().Trim();
+			order.AcceptType = row["FSH_PurTypeName"].ToString();
+			order.Title = row["FSH_Title_ys"].ToString();
+			order.HotspotId = row["FTE_ProvinceCode"].ToString();
+			order.HotspotName = row["FTE_TypeName"].ToString();
+			order.HotspotSpliceName = row["FTE_TypeNameFull"].ToString();
+			order.PushTypeCode = row["FSH_PushType"].ToString();
+			order.Content = row["受理内容"].ToString();
+			order.Status =  Enum.EOrderStatus.Visited;
+			order.StartTime = DateTime.Parse(row["FSH_AddDate"].ToString());
+			order.ExpiredTime = DateTime.Parse(row["FSH_TTime"].ToString());
+			order.FiledTime = DateTime.Parse(row["FSH_DisposeDate"].ToString());
+			order.ExpiredStatus =  (Enum.EExpiredStatus)ExpiredStatus;
+			order.AreaCode = row["SA_AreaCode"].ToString();
+			order.Street = row["FLM_LKAddress"].ToString();
+			order.IsDeleted = false;
+			order.CreationTime = DateTime.Parse(row["FSH_AddDate"].ToString());
+			order.SmsSended = false;
+			order.ProcessType = row["FSH_AcceptBMID"].ToString() == CommonTool.CenterId ? Enum.EProcessType.Zhiban : Enum.EProcessType.Jiaoban;
+			order.IsPublicity = row["FSH_IsPublic"].ToString() == "1"; //0:不公开 ;1:公开 12345在线传递过来的状态
+
+			#endregion
+			//""WorkflowId"", ""ExpiredTimeConfigId"", ""Longitude"", ""Latitude"", 
+
+			var pgOrderSql = $@"INSERT INTO ""public"".""order"" (""Id"", ""CallId"", ""FromPhone"", ""TransferPhone"", ""FromName"", ""FromGender"", ""IdentityType"", 
+						 ""Contact"", ""ContactMask"", ""AcceptSms"",
+						""No"", ""AcceptType"", ""Title"", ""HotspotId"", ""HotspotName"", ""HotspotSpliceName"", 
+						 ""PushTypeCode"",  ""Content"", ""Status"", ""StartTime"", ""ExpiredTime"", ""FiledTime"",
+						""ExpiredStatus"", ""AreaCode"", ""Street"", 
+						""IsDeleted"", ""CreationTime"",  ""SmsSended"",
 						""ProcessType"", ""IsPublicity"", ""IsSecret"", ""ActualHandleOrgName"", ""ActualHandleOrgCode"", ""ActualOpinion"", ""SourceChannel"", ""IsProvince"", 
 						""ActualHandleStepCode"",""ActualHandleStepName"", ""ActualHandleStepCreateTime"", ""ActualHandleTime"", ""ActualHandlerId"", ""ActualHandlerName"", ""OrgLevelOneCode"", ""OrgLevelOneName"", 
 						""AcceptorId"",""AcceptorName"", ""SourceChannelCode"", ""ExpiredTimeProvince"", ""AcceptorStaffNo"", ""FirstVisitResult"", ""FirstVisitResultCode"", ""ActualHandleOrgAreaCode"", 
@@ -66,13 +102,13 @@ namespace DataTransmission.Joint
 						""FileJson"",""Province"", ""City"", ""County"", ""Town"", ""EventCategoryId"", ""EventCategoryName"", ""EventCategorySpliceName"",
 						""EventCategoryExternal"",""NearlyExpiredTime"", ""CsActualHandleOrgIds"", ""CsActualHandleUserIds"", ""HandlerUsers"", ""HandlerOrgs"", ""FileDuration"", ""FileDurationWorkday"", 
 						""AllDurationWorkday"") VALUES (
-						'{orderId}', NULL, '{row["FSH_FromTel"].ToString()}', '{row["FSH_HotlineNum"]}',  '{row["FSH_LinkName"]}', {sex}, {identityType}, NULL,
-						NULL, '', NULL, NULL, '{row["FSH_LinkTel"].ToString()}', '{ContactMask}', 'f', NULL,
-						'{row["FSH_Code"].ToString().Trim()}', '{row["FSH_PurTypeName"]}', {EmergencyLevel}, '{row["FSH_Title_ys"]}', '{row["FTE_ProvinceCode"]}', '{row["FTE_TypeName"]}', '{row["FTE_TypeNameFull"]}', NULL,
-						NULL,  '{row["FSH_PushType"]}', NULL, '{row["受理内容"]}', 500, '{row["FSH_AddDate"]}', '{row["FSH_TTime"]}', '{row["FSH_DisposeDate"]}',
-						{ExpiredStatus}, NULL, NULL, NULL, NULL, '{row["SA_AreaCode"]}', '{row["FLM_LKAddress"]}', NULL,
-						'f', NULL, '{row["FSH_AddDate"]}', NULL, NULL, NULL, 0, 'f',
-						20, 'f', '{IsSecret}', '{row["FSH_AcceptName"]}', {ActualHandleOrgCode}, '{row["承办意见"]}', '{row["FSH_FromName"]}', '{IsProvince}',
+						'{order.Id}', '{order.CallId}', '{order.FromPhone}', '{order.TransferPhone}',  '{order.FromName}', {(int)order.FromGender}, {(int)order.IdentityType}, 
+						 '{order.Contact}', '{order.ContactMask}', '{order.AcceptSms.ToString()}',
+						'{order.No}', '{order.AcceptType}', '{order.Title}', '{order.HotspotId}', '{order.HotspotName}', '{order.HotspotSpliceName}',
+						'{order.PushTypeCode}', '{order.Contact}', {(int)order.Status}, '{order.StartTime}', '{order.ExpiredTime}', '{order.FiledTime}',
+						{(int)order.ExpiredStatus}, '{order.AreaCode}', '{order.Street}',
+						'{order.IsDeleted.ToString()}', '{order.CreationTime}', '{order.SmsSended.ToString()}',
+						{(int)order.ProcessType}, '{order.IsPublicity.ToString()}', '{IsSecret}', '{row["FSH_AcceptName"]}', {ActualHandleOrgCode}, '{row["承办意见"]}', '{row["FSH_FromName"]}', '{IsProvince}',
 						NULL, NULL, '{row["FSH_AcceptDate"]}', '{row["FSH_AcceptDate"]}',NULL, '{row["FSH_AcceptUserName"]}', NULL, NULL,
 						NULL, '{row["FSH_UserName"]}', NULL,NULL, '', NULL, NULL, '{row["SA_AreaCode"]}',
 						'{row["SA_AreaName"]}', '{row["FLM_LKAddress"]}', NULL, 'f', '5个工作日', 5, 2, NULL,