/// <summary> /// 视图类转实体类 /// </summary> /// <param name="view">视图类</param> /// <returns>实体类</returns> private Model.TableModel.Apo_item View2Model(ModelView.ApoItemView view) { Model.TableModel.Apo_item model = new Model.TableModel.Apo_item(); if (string.IsNullOrEmpty(view.id)) { model.id = Common.Md5Operate.CreateGuidId(); } else { model.id = view.id; } string tmp = string.IsNullOrEmpty(view.apo_index)?"1":view.apo_index; model.apo_index = int.Parse(tmp); model.apo_item_name = view.apo_item_name; model.apo_item_no = view.apo_item_no; model.apo_no = string.IsNullOrEmpty(view.apo_no)?"UNKNOWN":view.apo_no; GlobalDataCtrl globalDataCtrl = new GlobalDataCtrl(); model.apo_item_no = string.IsNullOrEmpty(view.apo_item_no)?globalDataCtrl.GetNextNoByTblName("apo_item"):view.apo_item_no; DateTime dt = DateTime.Now; DateTime.TryParse(view.crt_time, out dt); model.crt_time = dt; model.crt_user_name = string.IsNullOrEmpty(view.crt_user_name) ? "Server" : view.crt_user_name; model.crt_user_no = string.IsNullOrEmpty(view.crt_user_no) ? "Server" : view.crt_user_no; DateTime.TryParse(view.upd_time, out dt); model.upd_time = dt; model.upd_user_name = string.IsNullOrEmpty(view.upd_user_name) ? "Server" : view.upd_user_name; model.upd_user_no = string.IsNullOrEmpty(view.upd_user_no) ? "Server" : view.upd_user_no; model.status_name = view.status_name; model.status_no = string.IsNullOrEmpty(view.status_no)?"310":view.status_no; return(model); }
/// <summary> /// 删除操作 /// </summary> /// <param name="oldValue">要删除的值</param> /// <returns>影响记录条数</returns> public int Delete(ModelView.ApoItemView oldValue) { Model.TableModel.Apo_item model = View2Model(oldValue); List <Model.TableModel.Apo_item> modelList = new List <Model.TableModel.Apo_item>(); modelList.Add(model); return(DbEngine.QueryInt <Model.TableModel.Apo_item>("Delete", modelList)); }
/// <summary> /// 数据插入 /// </summary> /// <param name="newValue">新插入的值</param> /// <returns>影响记录条数</returns> public int Insert(ModelView.ApoItemView newValue) { Model.TableModel.Apo_item model = View2Model(newValue); List <Model.TableModel.Apo_item> modelList = new List <Model.TableModel.Apo_item>(); modelList.Add(model); return(DbEngine.QueryInt <Model.TableModel.Apo_item>("Insert", modelList)); }
/// <summary> /// 审核流程的建立 /// </summary> /// <param name="dfv">要发起审核流程的文件信息</param> /// <param name="userNo">用户名</param> /// <returns>处理结果</returns> public string CreateApprove(ModelView.DmsFileView dfv, string userNo) { if (dfv == null) { return("文件不存在!"); } //获取第一个审核流程视图 ApoItemCtrl aic = new ApoItemCtrl(); ModelView.ApoItemView aiv = aic.GetFirst(dfv.file_type_name); if (aiv == null) { return("未找到审核流程!"); } //获取下一个审核流程视图 ModelView.ApoItemView aivNext = aic.GetNext(aiv.apo_no, aiv.apo_item_no); if (aivNext == null) { return("该审核流程有误!"); } //用户构建 GlobalDataCtrl gdc = new GlobalDataCtrl(); string userName = gdc.GetStrByField("user_name", "sys_user", "user_no", userNo); //文件视图及审核流程视图创建Act视图并处理 ModelView.ApoActView aav = new ModelView.ApoActView(); aav.id = string.Empty; aav.status_no = "310"; aav.status_name = "已确认"; aav.act_no = string.Empty; aav.apo_no = aiv.apo_no; aav.apo_item_no = aiv.apo_item_no; aav.apo_item_name = aiv.apo_item_name; aav.apo_index = aiv.apo_index; aav.next_item_no = aiv.next_item_no; aav.next_item_name = aivNext.apo_item_name; aav.next_user_name = aivNext.apo_user_name; aav.act_desc = dfv.file_desc; aav.act_result = "通过"; aav.act_step = "0"; aav.act_user_no = userNo; aav.act_user_name = userName; aav.act_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); aav.ralate_no = dfv.file_no; aav.ralate_file_name = dfv.file_name; aav.ralate_file_extension = dfv.file_extension; aav.ralate_type_no = dfv.file_type_no; aav.step_finished = "否"; aav.apo_finished = "否"; aav.dept_no = string.Empty; aav.dept_name = string.Empty; //数据写入 ApoActCtrl aac = new ApoActCtrl(); return(aac.Insert(aav) > 0 ? "success" : "数据写入失败!"); }
/// <summary> /// 审核驳回 /// </summary> /// <param name="lastApoActView">前一审核动作视图</param> /// <param name="dmsFileView">要驳回审核的文件信息</param> /// <param name="userNo">用户名</param> /// <returns>处理结果</returns> public string RejectApprove(ModelView.ApoActView lastApoActView, ModelView.DmsFileView dmsFileView, string userNo) { string res = string.Empty; //获取下一个处理的流程视图 ApoItemCtrl apoItemCtrl = new ApoItemCtrl(); ModelView.ApoItemView nextApoItemView = apoItemCtrl.GetNext(lastApoActView.apo_no, lastApoActView.apo_item_no); if (nextApoItemView == null) { return("文件审核流程设定有误!"); } if (nextApoItemView.apo_user_no.ToLower() != userNo.ToLower()) { return("您无权审核此文件!"); } if (lastApoActView.act_result == "驳回") { return("无法驳回已驳回的文件,请重传!"); } //获取第一次发起的审核动作 ApoActCtrl apoActCtrl = new ApoActCtrl(); ModelView.ApoActView firstApoActView = apoActCtrl.GetFirst(dmsFileView.file_no); if (firstApoActView == null) { return("不存在对应的审核发起记录!"); } //确认上一流程 lastApoActView.step_finished = "是"; apoActCtrl.Update(lastApoActView); //按照驳回流程构造当前动作 lastApoActView.id = string.Empty; lastApoActView.status_name = "已确认"; lastApoActView.status_no = "310"; lastApoActView.act_no = string.Empty; lastApoActView.apo_item_no = nextApoItemView.apo_item_no; lastApoActView.apo_item_name = nextApoItemView.apo_item_name; lastApoActView.apo_index = nextApoItemView.apo_index; lastApoActView.next_item_no = firstApoActView.apo_item_no; lastApoActView.next_item_name = firstApoActView.apo_item_name; lastApoActView.next_user_name = firstApoActView.act_user_name; lastApoActView.act_result = "驳回"; int intTmp = 1; lastApoActView.act_step = (int.TryParse(lastApoActView.act_step, out intTmp) ? intTmp + 1 : 1).ToString(); lastApoActView.act_user_no = userNo; GlobalDataCtrl gdc = new GlobalDataCtrl(); lastApoActView.act_user_name = gdc.GetStrByField("user_name", "sys_user", "user_no", userNo); lastApoActView.act_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); lastApoActView.step_finished = "是"; lastApoActView.apo_finished = "否"; //数据写入 return(FinishApprove(lastApoActView)); }
/// <summary> /// 获取特定条件列表 /// </summary> /// <param name="where">条件</param> /// <returns>视图对象列表</returns> public List <ModelView.ApoItemView> GetList(string where) { List <Model.TableModel.Apo_item> list = DbEngine.QueryList <Model.TableModel.Apo_item>(where); List <ModelView.ApoItemView> res = new List <ModelView.ApoItemView>(); foreach (Model.TableModel.Apo_item item in list) { ModelView.ApoItemView model = Model2View(item); res.Add(model); } return(res); }
/// <summary> /// 分页查询 /// </summary> /// <param name="where">where子句</param> /// <param name="orderBy">排序子句</param> /// <param name="pageSize">页面大小</param> /// <param name="pageIndex">页面索引</param> /// <param name="total">out参数,返回总记录条数</param> /// <returns>视图对象列表</returns> public List <ModelView.ApoItemView> GetListPage(string where, Dictionary <string, string> orderBy, int pageSize, int pageIndex, out int total) { List <Model.TableModel.Apo_item> list = DbEngine.QueryPage <Model.TableModel.Apo_item>("apo_item", pageIndex, pageSize, where, orderBy, out total); List <ModelView.ApoItemView> res = new List <ModelView.ApoItemView>(); foreach (Model.TableModel.Apo_item item in list) { ModelView.ApoItemView model = Model2View(item); res.Add(model); } return(res); }
/// <summary> /// 分页查询 /// </summary> /// <param name="where">where子句</param> /// <param name="orderBy">排序子句</param> /// <param name="pageSize">页面大小</param> /// <param name="pageIndex">页面索引</param> /// <returns>最终结果字符串</returns> public string GetListPage(string where, Dictionary <string, string> orderBy, int pageSize, int pageIndex) { int total = 0; List <Model.TableModel.Apo_item> list = DbEngine.QueryPage <Model.TableModel.Apo_item>("apo_item", pageIndex, pageSize, where, orderBy, out total); List <ModelView.ApoItemView> res = new List <ModelView.ApoItemView>(); foreach (Model.TableModel.Apo_item item in list) { ModelView.ApoItemView model = Model2View(item); res.Add(model); } return(Common.JsonHelper.SerializeObject(new { total = total, rows = res })); }
/// <summary> /// 实体类转视图类 /// </summary> /// <param name="model">实体类</param> /// <returns>视图类</returns> private ModelView.ApoItemView Model2View(Model.TableModel.Apo_item model) { ModelView.ApoItemView view = new ModelView.ApoItemView(); view.id = model.id; view.apo_index = model.apo_index.ToString(); view.apo_item_name = model.apo_item_name; view.apo_item_no = model.apo_item_no; view.apo_no = model.apo_no; view.apo_user_name = model.apo_user_name; view.apo_user_no = model.apo_user_no; view.crt_time = model.crt_time.ToString("yyyy-MM-dd HH:mm:ss.fff"); view.crt_user_name = model.crt_user_name; view.crt_user_no = model.crt_user_no; view.next_item_no = model.next_item_no; view.status_name = model.status_name; view.status_no = model.status_no; view.upd_time = model.upd_time.HasValue?((DateTime)model.upd_time).ToString("yyyy-MM-dd HH:mm:ss.fff"):string.Empty; view.upd_user_name = model.upd_user_name; view.upd_user_no = model.upd_user_no; return(view); }
/// <summary> /// 审核通过 /// </summary> /// <param name="lastApoActView">前一审核动作视图</param> /// <param name="dmsFileView">要发起审核流程的文件信息</param> /// <param name="userNo">用户名</param> /// <returns>处理结果</returns> public string PassApprove(ModelView.ApoActView lastApoActView, ModelView.DmsFileView dmsFileView, string userNo)//文件类型对应审核类型编号 { string res = "success"; //获取下一个处理的流程视图 ApoItemCtrl apoItemCtrl = new ApoItemCtrl(); ModelView.ApoItemView nextApoItemView = apoItemCtrl.GetNext(lastApoActView.apo_no, lastApoActView.apo_item_no); if (nextApoItemView == null) { return("文件审核流程设定有误!"); } if (nextApoItemView.apo_user_no.ToLower() != userNo.ToLower()) { return("您无权审核此文件!"); } if (lastApoActView.act_result == "驳回") { return("无法通过已驳回的文件,请重传!"); } //获取最后一个处理的流程视图 ModelView.ApoItemView lastApoItemView = apoItemCtrl.GetLast(lastApoActView.apo_no); //确认上一流程 lastApoActView.step_finished = "是"; ApoActCtrl apoActCtrl = new ApoActCtrl(); apoActCtrl.Update(lastApoActView); //按照结束流程构造当前动作 lastApoActView.id = string.Empty; lastApoActView.status_name = "已确认"; lastApoActView.status_no = "310"; lastApoActView.act_no = string.Empty; lastApoActView.apo_item_no = nextApoItemView.apo_item_no; lastApoActView.apo_item_name = nextApoItemView.apo_item_name; lastApoActView.apo_index = nextApoItemView.apo_index; lastApoActView.next_item_no = nextApoItemView.next_item_no; lastApoActView.next_item_name = string.Empty; lastApoActView.next_user_name = string.Empty; lastApoActView.act_result = "通过"; int intTmp = 1; lastApoActView.act_step = (int.TryParse(lastApoActView.act_step, out intTmp) ? intTmp + 1 : 1).ToString(); lastApoActView.act_user_no = userNo; GlobalDataCtrl gdc = new GlobalDataCtrl(); lastApoActView.act_user_name = gdc.GetStrByField("user_name", "sys_user", "user_no", userNo); lastApoActView.act_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); lastApoActView.step_finished = "是"; lastApoActView.apo_finished = "是"; ////如果是最后一个,同意的同时添加流程结束处理,即更新现有流程,同时更新文件状态 if (nextApoItemView.apo_item_no == lastApoItemView.apo_item_no) { res = FinishApprove(lastApoActView); if (res == "success") { dmsFileView.is_passed = "是"; dmsFileView.file_status = "使用中"; res = UpdateFile(dmsFileView); } } else { ModelView.ApoItemView nextLowerApoItemView = apoItemCtrl.GetNext(lastApoActView.apo_no, lastApoActView.apo_item_no); if (nextLowerApoItemView == null) { return("文件审核流程设定有误!"); } lastApoActView.next_item_name = nextLowerApoItemView.apo_item_name; lastApoActView.next_user_name = nextLowerApoItemView.apo_user_name; lastApoActView.step_finished = "否"; lastApoActView.apo_finished = "否"; res = Move2NextApprove(lastApoActView); } return(res); }
/// <summary> /// 更新操作 /// </summary> /// <param name="jsonStr">更新后对象的json序列化字符串</param> /// <returns>影响记录条数</returns> public int Update(string jsonStr) { ModelView.ApoItemView model = Common.JsonHelper.DeserializeJsonToObject <ModelView.ApoItemView>(jsonStr); return(Update(model)); }