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

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);
}
}
}
}