using SuperMap.RealEstate.Utility; using System; using System.Collections.Generic; using System.Linq; using System.Web; using SuperMap.RealEstate.WorkFlow.Instance; using Running = SuperMap.RealEstate.HighWay.Running; using Storage = SuperMap.RealEstate.HighWay.Running; 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_600001 _ProInst_600001 = null; ProInst_600002 _ProInst_600002 = null; ProInst_600003 _ProInst_600003 = null;//片区下发 ProInst_600004 _ProInst_600004 = null;//党支部下发 ProInst_600005 _ProInst_600005 = null;//片区下发 ProInst_600006 _ProInst_600006 = null;//党支部下发 ProInst_600007 _ProInst_600007 = 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 600001: #region 公文下发 Flag = false; _ProInst_600001 = new ProInst_600001(_HIGHWAYPROINST); Flag = _ProInst_600001.EndProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600002: #region 公文接收 Flag = false; _ProInst_600002 = new ProInst_600002(_HIGHWAYPROINST); Flag = _ProInst_600002.EndProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600005: #region 公文接收 Flag = false; _ProInst_600005 = new ProInst_600005(_HIGHWAYPROINST); Flag = _ProInst_600005.EndProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600006: #region 公文接收 Flag = false; _ProInst_600006 = new ProInst_600006(_HIGHWAYPROINST); Flag = _ProInst_600006.EndProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600003: #region 片区下发 Flag = false; _ProInst_600003 = new ProInst_600003(_HIGHWAYPROINST); Flag = _ProInst_600003.EndProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600004: #region 党支部下发 Flag = false; _ProInst_600004 = new ProInst_600004(_HIGHWAYPROINST); Flag = _ProInst_600004.EndProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600007: #region 上级下发 Flag = false; _ProInst_600007 = new ProInst_600007(_HIGHWAYPROINST); Flag = _ProInst_600007.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 600001: #region 公文下发 Flag = false; _ProInst_600001 = new ProInst_600001(_HIGHWAYPROINST); Flag = _ProInst_600001.PutInStorage(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600002: #region 公文接收 Flag = false; _ProInst_600002 = new ProInst_600002(_HIGHWAYPROINST); Flag = _ProInst_600002.PutInStorage(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600003: #region 片区下发 Flag = false; _ProInst_600003 = new ProInst_600003(_HIGHWAYPROINST); Flag = _ProInst_600003.PutInStorage(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600004: #region 党支部下发 Flag = false; _ProInst_600004 = new ProInst_600004(_HIGHWAYPROINST); Flag = _ProInst_600004.PutInStorage(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600007: #region 党支部下发 Flag = false; _ProInst_600007 = new ProInst_600007(_HIGHWAYPROINST); Flag = _ProInst_600007.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 600001: #region 公文下发 Flag = false; _ProInst_600001 = new ProInst_600001(_HIGHWAYPROINST); Flag = _ProInst_600001.DeleteProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600002: #region 公文接收 Flag = false; _ProInst_600002 = new ProInst_600002(_HIGHWAYPROINST); Flag = _ProInst_600002.DeleteProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600003: #region 片区下发 Flag = false; _ProInst_600003 = new ProInst_600003(_HIGHWAYPROINST); Flag = _ProInst_600003.DeleteProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600004: #region 党支部下发 Flag = false; _ProInst_600004 = new ProInst_600004(_HIGHWAYPROINST); Flag = _ProInst_600004.DeleteProcess(WorkFlowProInst, out _ErrorString); ErrorString += _ErrorString; break; #endregion case 600007: #region 党支部下发 Flag = false; _ProInst_600007 = new ProInst_600007(_HIGHWAYPROINST); Flag = _ProInst_600007.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 } }