/// <summary> /// 编辑及新增 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Edit(int id = 0) { BLL.FW.BF_FLOW.Entity flow = new BF_FLOW.Entity(); //初始化 flow.IS_ENABLE = 1; if (id > 0) //编辑 { flow = BLL.FW.BF_FLOW.Instance.GetEntityByKey <BLL.FW.BF_FLOW.Entity>(id); if (flow == null) { return(ShowAlert("流程配置项不存在")); } //流程节点信息 var flowNodeList = BLL.FW.BF_FLOW_NODE.Instance.GetList <BLL.FW.BF_FLOW_NODE.Entity>("FLOW_ID=?", id); //流程节点关系 var flowNodeJoinList = BLL.FW.BF_FLOW_NODE_JOIN.Instance.GetList <BLL.FW.BF_FLOW_NODE_JOIN.Entity>("FLOW_ID=?", id); ViewBag.FlowNodes = SerializeObject(flowNodeList); ViewBag.FlowNodeJoins = SerializeObject(flowNodeJoinList); } #region 流程类型下拉项 DataTable dt = BLL.FW.BF_FLOW_TYPE.Instance.GetTable(); var obj = new List <object>(); foreach (DataRow dr in dt.Rows) { obj.Add( new { id = Convert.ToInt32(dr["ID"]), pId = string.IsNullOrWhiteSpace(dr["PARENT_ID"].ToString()) ? "" : dr["PARENT_ID"], name = dr["NAME"].ToString(), value = Convert.ToInt32(dr["ID"]) }); } ViewBag.FlowTypes = SerializeObject(obj); #endregion #region 表单表下拉 var tbList = BF_DATABASE.Instance.GetAllTableList(0); ViewBag.TbList = tbList; #endregion return(View(flow)); }
public JsonResult Edit(BF_FLOW.Entity entity, FormCollection collection) { JsonResultData result = new JsonResultData(); int i = 0; try { if (entity.ID < 0) { result.Message = "流程配置项不存在,不可编辑"; return(Json(result, JsonRequestBehavior.AllowGet)); } entity.UPDATE_UID = SystemSession.UserID; entity.UPDATE_TIME = DateTime.Now; #region 获得流程节点+流程节点关系 string flowNodeJson = collection["FlowNodes"]; string flowNodeJoinJson = collection["FlowNodeJoins"]; var flowNodeList = DeserializeObject <List <BF_FLOW_NODE.Entity> >(flowNodeJson); var flowNodeJoinList = DeserializeObject <List <FlowNodeJoin> >(flowNodeJoinJson); #endregion if (entity.ID == 0) { //entity.IS_ENABLE = 1; entity.CREATE_UID = SystemSession.UserID; entity.CREATE_TIME = DateTime.Now; i = BF_FLOW.Instance.Add(entity, true); entity.ID = i; } else { #region 校验是否有正在运行中的流程实例(暂未实现) #endregion i = BF_FLOW.Instance.UpdateByKey(entity, entity.ID);//修改 } #region 保存流程节点 int addCountNode = 0; int updateCountNode = 0; int deleteCountNode = 0; //保存节点信息 BF_FLOW_NODE.Instance.SaveFlowNodes(entity.ID, flowNodeList, out addCountNode, out updateCountNode, out deleteCountNode); #endregion #region 保存流程关系 //获得最新的流程节点信息 var NowFlowNodeList = BF_FLOW_NODE.Instance.GetDicFlowNodeList(entity.ID); #region 给FROM_NODE_ID、TO_NODE_ID赋值 if (flowNodeJoinList != null && flowNodeJoinList.Count > 0) { foreach (var join in flowNodeJoinList) { if (NowFlowNodeList.ContainsKey(join.FROM_NODE_NAME)) { join.FROM_NODE_ID = NowFlowNodeList[join.FROM_NODE_NAME].ID; } if (NowFlowNodeList.ContainsKey(join.TO_NODE_NAME)) { join.TO_NODE_ID = NowFlowNodeList[join.TO_NODE_NAME].ID; } } } #endregion List <BF_FLOW_NODE_JOIN.Entity> NodeJoinList = Common.Fun.ClassListToCopy <FlowNodeJoin, BF_FLOW_NODE_JOIN.Entity>(flowNodeJoinList).ToList(); int addCountJoin = 0; int updateCountJoin = 0; int deleteCountJoin = 0; //保存节点关系信息 BF_FLOW_NODE_JOIN.Instance.SaveFlowNodeJoins(entity.ID, NodeJoinList, out addCountJoin, out updateCountJoin, out deleteCountJoin); #endregion if (i < 1) { result.Message = "出现了未知错误"; return(Json(result, JsonRequestBehavior.AllowGet)); } result.IsSuccess = true; result.Message = "保存成功"; WriteOperationLog(BLog.LogLevel.INFO, true, Modular, (entity.ID > 0 ? "修改" : "添加"), "", (entity.ID > 0 ? "修改" : "添加") + "ID为" + entity.ID + "的流程成功!"); } catch (Exception ex) { result.IsSuccess = false; result.Message = ex.Message; BLog.Write(BLog.LogLevel.WARN, "流程保存出错:" + ex.ToString()); WriteOperationLog(BLog.LogLevel.ERROR, true, Modular, (entity.ID > 0 ? "修改" : "添加"), "", (entity.ID > 0 ? "修改" : "添加") + "ID为" + entity.ID + "的配置失败:" + ex.Message); } return(Json(result, JsonRequestBehavior.AllowGet)); }