/// <summary> /// 实体类转视图类 /// </summary> /// <param name="model">实体类</param> /// <returns>视图类</returns> private ModelView.ApoActView Model2View(Model.TableModel.Apo_act model) { ModelView.ApoActView view = new ModelView.ApoActView(); view.id = model.id; view.status_name = model.status_name; view.status_no = model.status_no; view.act_no = model.act_no; view.apo_no = model.apo_no; view.apo_item_no = model.apo_item_no; view.apo_item_name = model.apo_item_name; view.apo_index = model.apo_index.ToString(); view.next_item_no = model.next_item_no; view.next_item_name = model.next_item_name; view.next_user_name = model.next_user_name; view.act_desc = model.act_desc; view.act_result = model.act_result?"通过":"驳回"; view.act_step = model.act_step.ToString(); view.act_user_no = model.act_user_no; view.act_user_name = model.act_user_name; view.act_time = model.act_time.ToString("yyyy-MM-dd HH:mm:ss.fff"); view.ralate_no = model.ralate_no; view.ralate_file_name = model.ralate_file_name; view.ralate_file_extension = model.ralate_file_extension; view.ralate_type_no = model.ralate_type_no; view.step_finished = model.step_finished ? "是" : "否"; view.apo_finished = model.apo_finished ? "是" : "否"; Ctrl.GlobalDataCtrl gdc = new GlobalDataCtrl(); view.dept_no = gdc.GetStrByField("dept_no", "sys_user", "user_no", view.act_user_no); view.dept_name = gdc.GetStrByField("dept_name", "sys_dept", "dept_no", view.act_user_no); return(view); }
/// <summary> /// 数据更新 /// </summary> /// <param name="newValue">更新后对象</param> /// <returns>影响记录条数</returns> public int Update(ModelView.ApoActView newValue) { Model.TableModel.Apo_act model = View2Model(newValue); List <Model.TableModel.Apo_act> modelList = new List <Model.TableModel.Apo_act>(); modelList.Add(model); return(DbEngine.QueryInt <Model.TableModel.Apo_act>("update", modelList)); }
/// <summary> /// 更新操作 /// </summary> /// <param name="listNewValue">更新后的视图模板类的集合</param> /// <returns>影响记录条数</returns> public int Update(List <ModelView.ApoActView> listNewValue) { List <Model.TableModel.Apo_act> modelList = new List <Model.TableModel.Apo_act>(); foreach (ModelView.ApoActView item in listNewValue) { Model.TableModel.Apo_act model = View2Model(item); modelList.Add(model); } return(DbEngine.QueryInt <Model.TableModel.Apo_act>("update", modelList)); }
/// <summary> /// 删除操作 /// </summary> /// <param name="oldValues">要删除的多个值</param> /// <returns>影响记录条数</returns> public int Delete(List <ModelView.ApoActView> oldValues) { List <Model.TableModel.Apo_act> modelList = new List <Model.TableModel.Apo_act>(); foreach (ModelView.ApoActView item in oldValues) { Model.TableModel.Apo_act model = View2Model(item); modelList.Add(model); } return(DbEngine.QueryInt <Model.TableModel.Apo_act>("Delete", modelList)); }
/// <summary> /// 获取审核路径 /// </summary> /// <param name="apoCode">审核类型编码</param> /// <param name="ralateFileNo">审核的文件编号</param> /// <returns>标准审核流程列表</returns> public List <ModelView.ApoActView> GetList(string apoCode, string ralateFileNo) { List <ModelView.ApoActView> res = new List <ModelView.ApoActView>(); GlobalDataCtrl gdc = new GlobalDataCtrl(); string apoNo = gdc.GetStrByField("file_type_name", "dms_file_type", "file_type_no", apoCode); List <Model.TableModel.Apo_item> list = DbEngine.QueryList <Model.TableModel.Apo_item>(string.Format("apo_no='{0}' order by apo_index asc", apoNo)); if (list == null || list.Count <= 0) { return(res); } string lastApoItemNo = gdc.GetStrByField("apo_item_no", "apo_item", string.Format("next_item_no='-1' and apo_no='{0}'", apoNo)); List <Model.TableModel.Apo_act> listApoActAll = DbEngine.QueryList <Model.TableModel.Apo_act>(string.Format("ralate_no='{0}' and apo_finished='0'", ralateFileNo)); List <Model.TableModel.Apo_act> listApoAct = listApoActAll.FindAll(a => a.apo_item_no == lastApoItemNo); DateTime timeLine = DateTime.Now; List <DateTime> tmpTims = listApoAct.Select <Model.TableModel.Apo_act, DateTime>(a => a.act_time).ToList(); bool isBigAndEqual = false; if (tmpTims.Count > 0) { timeLine = tmpTims.Max(); isBigAndEqual = false; } else { List <DateTime> tmpTims2 = listApoActAll.Select <Model.TableModel.Apo_act, DateTime>(a => a.act_time).ToList(); timeLine = tmpTims2.Min(); isBigAndEqual = true; } List <Model.TableModel.Apo_act> listApoActStep = isBigAndEqual ? listApoActAll.FindAll(a => a.act_time >= timeLine) : listApoActAll.FindAll(a => a.act_time > timeLine); foreach (Model.TableModel.Apo_item item in list) { Model.TableModel.Apo_act modelApoAct = listApoActStep.Find(a => a.apo_no == item.apo_no && a.apo_index == item.apo_index); if (modelApoAct != null) { res.Add(Model2View(modelApoAct)); } else { res.Add(Model2View(item)); } } return(res); }
/// <summary> /// 视图类转实体类 /// </summary> /// <param name="view">视图类</param> /// <returns>实体类</returns> private Model.TableModel.Apo_act View2Model(ModelView.ApoActView view) { Model.TableModel.Apo_act model = new Model.TableModel.Apo_act(); if (string.IsNullOrEmpty(view.id)) { model.id = Common.Md5Operate.CreateGuidId(); } else { model.id = view.id; } model.status_name = view.status_name; model.status_no = string.IsNullOrEmpty(view.status_no) ? "310" : view.status_no; GlobalDataCtrl globalDataCtrl = new GlobalDataCtrl(); model.act_no = string.IsNullOrEmpty(view.act_no) ? globalDataCtrl.GetNextNoByTblName("apo_act") : view.act_no; model.apo_no = string.IsNullOrEmpty(view.apo_no)?"ApoNo":view.apo_no; model.apo_item_no = string.IsNullOrEmpty(view.apo_item_no) ? "ApoItemNo" : view.apo_item_no; model.apo_item_name = string.IsNullOrEmpty(view.apo_item_name) ? "ApoItemName" : view.apo_item_name; int tmpInt = 0; model.apo_index = string.IsNullOrEmpty(view.apo_index) ? 0 : (int.TryParse(view.apo_index, out tmpInt)?tmpInt:0); model.next_item_no = string.IsNullOrEmpty(view.next_item_no) ? "NextItemNo" : view.next_item_no; model.next_item_name = string.IsNullOrEmpty(view.next_item_name) ? "NextItemName" : view.next_item_name; model.next_user_name = string.IsNullOrEmpty(view.next_user_name) ? "NextUserName" : view.next_user_name; model.act_desc = view.act_desc; model.act_result = view.act_result == "通过" ? true : false; model.act_step = string.IsNullOrEmpty(view.act_step) ? 0 : (int.TryParse(view.act_step, out tmpInt) ? tmpInt : 0); model.act_user_no = string.IsNullOrEmpty(view.act_user_no) ? "ActUserNo" : view.act_user_no; model.act_user_name = string.IsNullOrEmpty(view.act_user_name) ? "ActUserName" : view.act_user_name; DateTime dt = DateTime.Now; model.act_time = string.IsNullOrEmpty(view.act_time) ? DateTime.Now : DateTime.TryParse(view.act_time, out dt)?dt:DateTime.Now; model.ralate_no = string.IsNullOrEmpty(view.ralate_no) ? "RalateNo" : view.ralate_no; model.ralate_file_name = string.IsNullOrEmpty(view.ralate_file_name) ? "RalateFileName" : view.ralate_file_name; model.ralate_file_extension = string.IsNullOrEmpty(view.ralate_file_extension) ?"RalateFileExtension": view.ralate_file_extension; model.ralate_type_no = string.IsNullOrEmpty(view.ralate_type_no) ? "RalateTypeNo" : view.ralate_type_no; model.step_finished = view.step_finished == "是" ? true : false; model.apo_finished = view.apo_finished == "是" ? true : false; return(model); }
/// <summary> /// 根据文件编号获取审核动作列表 /// </summary> /// <param name="fileNo">文件编号</param> /// <returns>所有动作列表</returns> public List <Model.TableModel.Apo_act> GetFileFlow(string fileNo = "") { List <Model.TableModel.Apo_act> result = new List <Model.TableModel.Apo_act>(); string where = string.Empty; if (string.IsNullOrEmpty(fileNo)) { return(null); } else { string sqlSteps = "select act_step from apo_act where ralate_no=@ralate_no and next_item_no='-1'"; Dictionary <string, object> pms = new Dictionary <string, object>(); pms.Add("@ralate_no", fileNo); DataTable dtTmp = DbEngine.QueryTable(sqlSteps, pms); if (dtTmp == null || dtTmp.Rows.Count <= 0) { return(null); } else { int max = -1; foreach (DataRow item in dtTmp.Rows) { int tmp = -1; if (!int.TryParse((item["act_step"] ?? "0").ToString(), out tmp)) { tmp = -1; } max = tmp > max ? tmp : max; } string sqlCount = "select count(1) from apo_act where ralate_no=@ralate_no and act_step>@act_step;"; pms.Add("@act_step", max); object obj = DbEngine.QueryObj(sqlCount, pms); int tmpCount = -1; if (!int.TryParse((obj ?? "0").ToString(), out tmpCount)) { tmpCount = -1; } if (tmpCount > 0) { return(null); } else { for (int i = max; i >= 0; i--) { where = string.Format("ralate_no='{0}' and act_step={1}", fileNo, i); List <Model.TableModel.Apo_act> listTmp = DbEngine.QueryList <Model.TableModel.Apo_act>(where); result.AddRange(listTmp); Model.TableModel.Apo_act modelTmp = listTmp.Find(a => a.apo_index == 0); if (modelTmp != null) { break; } } result.Reverse(); return(result); } } } }