using System; using SuperMap.RealEstate.WorkFlow.Instance; namespace SuperMap.RealEstate.HighWay.Plugins { /// 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; /// public string ErrorString { get; set; } /// /// 办结 /// /// /// 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; } /// /// 驳回 /// /// /// public bool FallBackRunning(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst WorkFlowProInst) { throw new NotImplementedException(); } /// /// 入库 /// /// /// 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; } /// /// 流程删除 /// /// /// 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; } /// 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(); } /// 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(); //} } /// /// 获取当前流程信息 /// /// /// 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 流转 /// public bool OverRuled(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst) { return true; } /// public bool OverRuling(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst) { return true; } /// public bool Transfered(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst) { return true; } /// public bool Transferring(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst) { return true; } /// public bool TurnOvered(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst) { return true; } /// public bool TurnOvering(SuperMap.RealEstate.WorkFlow.Instance.Business.ProInst ProInst) { return true; } #endregion } }