You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.1 KiB
143 lines
4.1 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Newtonsoft.Json;
|
|
using TCStrong = Teamcenter.Soa.Client.Model.Strong;
|
|
using Teamcenter.Soa.Client.Model;
|
|
using Teamcenter.Services.Strong.Core;
|
|
using Teamcenter.Services.Strong.Projectmanagement;
|
|
using Teamcenter.Services.Strong.Projectmanagement._2011_06.ScheduleManagement;
|
|
using Teamcenter.Services.Strong.Projectmanagement._2012_02.ScheduleManagement;
|
|
using Teamcenter.Services.Strong.Projectmanagement._2007_01.ScheduleManagement;
|
|
using System.Configuration;
|
|
using Teamcenter.Soa.Common;
|
|
using SyncTaskStatus.Logger;
|
|
using Teamcenter.Soa.Client.Model.Strong;
|
|
using Teamcenter.Services.Strong.Query;
|
|
using Teamcenter.Services.Strong.Query._2010_04.SavedQuery;
|
|
using Teamcenter.Schemas.Soa._2006_03.Exceptions;
|
|
using System.Collections;
|
|
namespace SyncTaskStatus
|
|
{
|
|
|
|
|
|
//辅助类,主要考虑时间表在更新后需要重新计算。
|
|
public class TaskHelp
|
|
{
|
|
private ErpTaskInfo _info;
|
|
private TCStrong.Schedule _schedule;
|
|
|
|
private TaskExecUpdate _update;
|
|
|
|
|
|
public TCStrong.Schedule Schedule
|
|
{
|
|
get { return _schedule; }
|
|
set { _schedule = value; }
|
|
}
|
|
public ErpTaskInfo ErpInfo
|
|
{
|
|
|
|
get { return _info; }
|
|
set { _info = value; }
|
|
}
|
|
public TaskExecUpdate UpdateContainor
|
|
{
|
|
get { return _update; }
|
|
set { _update = value; }
|
|
}
|
|
}
|
|
|
|
/*按照TC定义进行封装*/
|
|
public class ErpTaskInfo
|
|
{
|
|
public string ProjectCode;
|
|
public string EquipmentCode;
|
|
public string TaskID;
|
|
public int NewPC;
|
|
public bool UpdateAF;
|
|
public bool UpdateAS;
|
|
public string NewAF;
|
|
public string NewAS;
|
|
public string NewStatus;
|
|
|
|
public override string ToString()
|
|
{
|
|
return string.Format("ProjectCode={0} EquipmentCode={1} TaskID={2} Percent ={3} NewAF={4} NewAS = {5} Status={6}", ProjectCode, EquipmentCode, TaskID, NewPC, NewAF, NewAS, NewStatus);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 收集处理过程中的错误消息
|
|
/// </summary>
|
|
public class ServerDataCollection
|
|
{
|
|
private List<ServerData> m_lst;
|
|
|
|
/*处理消息返回值*/
|
|
public void ConvertSvrDatas(Hashtable CachesInfo)
|
|
{
|
|
|
|
foreach (DictionaryEntry de in CachesInfo)
|
|
{
|
|
TaskHelp _help = de.Value as TaskHelp;
|
|
foreach (ServerData _da in m_lst)
|
|
{
|
|
if (!string.IsNullOrEmpty(_da.Uid))
|
|
{
|
|
if (string.Compare(_da.Uid, _help.UpdateContainor.Task.Uid) == 0)
|
|
{
|
|
_da.ProjectCode = _help.ErpInfo.ProjectCode;
|
|
_da.TaskID = _help.ErpInfo.TaskID;
|
|
_da.EquipmentCode = _help.ErpInfo.EquipmentCode;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
public ServerDataCollection()
|
|
{
|
|
m_lst = new List<ServerData>();
|
|
}
|
|
public void add(ServerData _data)
|
|
{
|
|
m_lst.Add(_data);
|
|
}
|
|
public void clear()
|
|
{
|
|
m_lst.Clear();
|
|
}
|
|
|
|
/*返回最后一个错误*/
|
|
public ServerData getLastError()
|
|
{
|
|
for(int i = m_lst.Count -1; i > -1; i--)
|
|
{
|
|
if (m_lst[i].Status == false)
|
|
return m_lst[i];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public ServerData[] getAllErros()
|
|
{
|
|
List<ServerData> _lst = new List<ServerData>();
|
|
foreach (ServerData _data in m_lst)
|
|
{
|
|
if (_data.Status == false)
|
|
_lst.Add(_data);
|
|
}
|
|
return _lst.ToArray();
|
|
}
|
|
public void DumpErrorLog()
|
|
{
|
|
foreach (ServerData _data in m_lst)
|
|
{
|
|
if (_data.Status == false)
|
|
TDefaultLogger.CreateInstance().LogAgent.Error(_data.Message);
|
|
}
|
|
}
|
|
}
|
|
}
|