2025-03-27 15:05:14 +08:00

486 lines
20 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using SuperMap.RealEstate.WorkFlow.Instance;
namespace SuperMap.RealEstate.HighWay.Plugins
{
/// <summary />
public class HighWayProInst : IWorkFlowProInstDataAction, IWorkFlowActInstDataAction
{
//商品审批
ProInst_100100 _ProInst_100100 = null;
ProInst_100200 _ProInst_100200 = null;
//财务报销
ProInst_400100 _ProInst_400100 = null;
//合同、展销
ProInst_310000 _ProInst_310000 = null;
ProInst_310010 _ProInst_310010 = null;
//招商项目
ProInst_320000 _ProInst_320000 = null;
//招标决标
ProInst_350100 _ProInst_350100 = null;
ProInst_350200 _ProInst_350200 = null;
ProInst_350300 _ProInst_350300 = null;
ProInst_350400 _ProInst_350400 = null;
//公文传输
ProInst_600100 _ProInst_600100 = null;
//营收数据补录
ProInst_900100 _ProInst_900100 = null;
/// <summary />
public string ErrorString
{
get;
set;
}
/// <summary>
/// 办结
/// </summary>
/// <param name="WorkFlowProInst"></param>
/// <returns></returns>
public bool EndProcess(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
bool Flag = true;
string _ErrorString = "";
Running.Business.HIGHWAYPROINST _HIGHWAYPROINST = GetPropertyProinst(WorkFlowProInst);
DeleteCommonInfo(_HIGHWAYPROINST);
switch (WorkFlowProInst.Operation_Type_BaseValue)
{
case 100100:
#region
Flag = false;
_ProInst_100100 = new ProInst_100100(_HIGHWAYPROINST);
Flag = _ProInst_100100.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 100200:
case 100201:
#region /
Flag = false;
_ProInst_100200 = new ProInst_100200(_HIGHWAYPROINST);
Flag = _ProInst_100200.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 400100:
#region
Flag = false;
_ProInst_400100 = new ProInst_400100(_HIGHWAYPROINST);
Flag = _ProInst_400100.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 310000:
#region
Flag = false;
_ProInst_310000 = new ProInst_310000(_HIGHWAYPROINST);
Flag = _ProInst_310000.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 310010:
#region
Flag = false;
_ProInst_310010 = new ProInst_310010(_HIGHWAYPROINST);
Flag = _ProInst_310010.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 320000:
case 320100:
case 320200:
#region
Flag = false;
_ProInst_320000 = new ProInst_320000(_HIGHWAYPROINST);
Flag = _ProInst_320000.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350100:
#region
Flag = false;
_ProInst_350100 = new ProInst_350100(_HIGHWAYPROINST);
Flag = _ProInst_350100.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350200:
#region
Flag = false;
_ProInst_350200 = new ProInst_350200(_HIGHWAYPROINST);
Flag = _ProInst_350200.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350300:
#region
Flag = false;
_ProInst_350300 = new ProInst_350300(_HIGHWAYPROINST);
Flag = _ProInst_350300.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350400:
#region
Flag = false;
_ProInst_350400 = new ProInst_350400(_HIGHWAYPROINST);
Flag = _ProInst_350400.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 600100:
#region
Flag = false;
_ProInst_600100 = new ProInst_600100(_HIGHWAYPROINST);
Flag = _ProInst_600100.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 900100:
#region
Flag = false;
_ProInst_900100 = new ProInst_900100(_HIGHWAYPROINST);
Flag = _ProInst_900100.EndProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
default:
throw new Exception("Plugins尚未配置");
}
return Flag;
}
/// <summary>
/// 驳回
/// </summary>
/// <param name="WorkFlowProInst"></param>
/// <returns></returns>
public bool FallBackRunning(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
throw new NotImplementedException();
}
/// <summary>
/// 入库
/// </summary>
/// <param name="WorkFlowProInst"></param>
/// <returns></returns>
public bool PutInStorage(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
bool Flag = true;
string _ErrorString = "";
Running.Business.HIGHWAYPROINST _HIGHWAYPROINST = GetPropertyProinst(WorkFlowProInst);
PutInStorageCommonInfo(_HIGHWAYPROINST);
switch (WorkFlowProInst.Operation_Type_BaseValue)
{
case 100100:
#region
Flag = false;
_ProInst_100100 = new ProInst_100100(_HIGHWAYPROINST);
Flag = _ProInst_100100.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 100200:
case 100201:
#region /
Flag = false;
_ProInst_100200 = new ProInst_100200(_HIGHWAYPROINST);
Flag = _ProInst_100200.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 400100:
#region
Flag = false;
_ProInst_400100 = new ProInst_400100(_HIGHWAYPROINST);
Flag = _ProInst_400100.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 310000:
#region
Flag = false;
_ProInst_310000 = new ProInst_310000(_HIGHWAYPROINST);
Flag = _ProInst_310000.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 310010:
#region
Flag = false;
_ProInst_310010 = new ProInst_310010(_HIGHWAYPROINST);
Flag = _ProInst_310010.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 320000:
case 320100:
case 320200:
#region
Flag = false;
_ProInst_320000 = new ProInst_320000(_HIGHWAYPROINST);
Flag = _ProInst_320000.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350100:
#region
Flag = false;
_ProInst_350100 = new ProInst_350100(_HIGHWAYPROINST);
Flag = _ProInst_350100.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350200:
#region
Flag = false;
_ProInst_350200 = new ProInst_350200(_HIGHWAYPROINST);
Flag = _ProInst_350200.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350300:
#region
Flag = false;
_ProInst_350300 = new ProInst_350300(_HIGHWAYPROINST);
Flag = _ProInst_350300.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350400:
#region
Flag = false;
_ProInst_350400 = new ProInst_350400(_HIGHWAYPROINST);
Flag = _ProInst_350400.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 600100:
#region
Flag = false;
_ProInst_600100 = new ProInst_600100(_HIGHWAYPROINST);
Flag = _ProInst_600100.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 900100:
#region
Flag = false;
_ProInst_900100 = new ProInst_900100(_HIGHWAYPROINST);
Flag = _ProInst_900100.PutInStorage(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
default:
throw new Exception("Plugins尚未配置");
}
return Flag;
}
/// <summary>
/// 流程删除
/// </summary>
/// <param name="WorkFlowProInst"></param>
/// <returns></returns>
public bool DeleteProcess(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
bool Flag = false;
string _ErrorString = "";
Running.Business.HIGHWAYPROINST _HIGHWAYPROINST = GetPropertyProinst(WorkFlowProInst);
DeleteCommonInfo(_HIGHWAYPROINST);
switch (WorkFlowProInst.Operation_Type_BaseValue)
{
case 100100:
#region
Flag = false;
_ProInst_100100 = new ProInst_100100(_HIGHWAYPROINST);
Flag = _ProInst_100100.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 100200:
case 100201:
#region /
Flag = false;
_ProInst_100200 = new ProInst_100200(_HIGHWAYPROINST);
Flag = _ProInst_100200.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 400100:
#region
Flag = false;
_ProInst_400100 = new ProInst_400100(_HIGHWAYPROINST);
Flag = _ProInst_400100.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 310000:
#region
Flag = false;
_ProInst_310000 = new ProInst_310000(_HIGHWAYPROINST);
Flag = _ProInst_310000.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 310010:
#region
Flag = false;
_ProInst_310010 = new ProInst_310010(_HIGHWAYPROINST);
Flag = _ProInst_310010.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 320000:
case 320100:
case 320200:
#region
Flag = false;
_ProInst_320000 = new ProInst_320000(_HIGHWAYPROINST);
Flag = _ProInst_320000.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350100:
#region
Flag = false;
_ProInst_350100 = new ProInst_350100(_HIGHWAYPROINST);
Flag = _ProInst_350100.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350200:
#region
Flag = false;
_ProInst_350200 = new ProInst_350200(_HIGHWAYPROINST);
Flag = _ProInst_350200.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350300:
#region
Flag = false;
_ProInst_350300 = new ProInst_350300(_HIGHWAYPROINST);
Flag = _ProInst_350300.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 350400:
#region
Flag = false;
_ProInst_350400 = new ProInst_350400(_HIGHWAYPROINST);
Flag = _ProInst_350400.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 600100:
#region
Flag = false;
_ProInst_600100 = new ProInst_600100(_HIGHWAYPROINST);
Flag = _ProInst_600100.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
case 900100:
#region
Flag = false;
_ProInst_900100 = new ProInst_900100(_HIGHWAYPROINST);
Flag = _ProInst_900100.DeleteProcess(WorkFlowProInst, out _ErrorString);
ErrorString += _ErrorString;
break;
#endregion
default:
throw new Exception("Plugins尚未配置");
}
return Flag;
}
/// <summary />
public void DeleteCommonInfo(Running.Business.HIGHWAYPROINST _HIGHWAYPROINST)
{
//删除审批信息
foreach (Running.Business.APPROVED _APPROVED in _HIGHWAYPROINST.ApprovedCollection)
{
_APPROVED.Delete();
}
////删除申请人信息
//foreach (Running.Business.Proposer _Proposer in _PropertyProinst.ProposerCollection)
// _Proposer.Delete();
}
/// <summary />
public void PutInStorageCommonInfo(Running.Business.HIGHWAYPROINST _HIGHWAYPROINST)
{
Storage.Business.APPROVED StorageApproved = null;
foreach (Running.Business.APPROVED _Approved in _HIGHWAYPROINST.ApprovedCollection)
{
StorageApproved = new Storage.Business.APPROVED(_HIGHWAYPROINST.Transaction);
StorageApproved.APPROVED_ID = _Approved.APPROVED_ID;
if (StorageApproved.Select())
{
StorageApproved.Delete();
StorageApproved.ResetProperty();
}
StorageApproved.CopyFrom(_Approved);
StorageApproved.Insert();
}
//foreach (Running.Business.Proposer _Proposer in _PropertyProinst.ProposerCollection)
//{
// StorageProposer = new Storage.Business.Proposer(_PropertyProinst.Transaction);
// StorageProposer.CopyFrom(_Proposer);
// StorageProposer.Insert();
//}
}
/// <summary>
/// 获取当前流程信息
/// </summary>
/// <param name="WorkFlowProInst"></param>
/// <returns></returns>
public Running.Business.HIGHWAYPROINST GetPropertyProinst(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst)
{
Running.Business.HIGHWAYPROINST _PropertyProinst = new Running.Business.HIGHWAYPROINST(WorkFlowProInst.Transaction);
_PropertyProinst.AddSearchParameter("proinst_id", WorkFlowProInst.ProInst_ID);
if (_PropertyProinst.Search())
return _PropertyProinst;
else
{
throw new Exception("无法获取ProInst实例对象");
}
}
#region
/// <summary />
public bool OverRuled(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
/// <summary />
public bool OverRuling(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
/// <summary />
public bool Transfered(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
/// <summary />
public bool Transferring(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
/// <summary />
public bool TurnOvered(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
/// <summary />
public bool TurnOvering(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst)
{
return true;
}
#endregion
}
}