/// <summary> /// 获取评价流程图 /// </summary> /// <param name="keyValue"></param> /// <returns></returns> public Flow GetEvaluateFlow(string keyValue) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); var isendflow = false;//流程结束标记 string flowid = string.Empty; Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; Operator currUser = ERCHTMS.Code.OperatorProvider.Provider.Current(); var EvaluateEntity = this.BaseRepository().FindEntity(keyValue); flowid = EvaluateEntity.NodeId; if (EvaluateEntity.IsOverEvaluate == 1) { isendflow = true; } string moduleName = string.Empty; if (EvaluateEntity != null) { switch (EvaluateEntity.DrillLevel) { case "厂级": moduleName = "厂级演练记录评价"; break; case "部门级": moduleName = "部门级演练记录评价"; break; case "班组级": moduleName = "班组级演练记录评价"; break; default: break; } } string flowSql = string.Format(@"select t.flowname,t.id,t.serialnum,t.checkrolename, t.checkroleid,t.checkdeptid,t.checkdeptcode, d.evaluateperson,d.evaluatetime,d.evaluatedept, d.evaluateopinion,t.checkdeptname from bis_manypowercheck t left join mae_drillrecordevaluate d on d.nodeid=t.id and d.drillrecordid='{2}' where t.createuserorgcode='{0}' and t.modulename='{1}' order by t.serialnum asc", currUser.OrganizeCode, moduleName, keyValue); DataTable dt = this.BaseRepository().FindTable(flowSql); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; nodes nodes = new nodes(); nodes.alt = true; nodes.isclick = false; nodes.css = ""; nodes.id = dr["id"].ToString(); //主键 nodes.img = ""; nodes.name = dr["flowname"].ToString(); nodes.type = "stepnode"; //位置 int m = i % 4; int n = i / 4; if (m == 0) { nodes.left = 120; } else { nodes.left = 120 + ((150 + 60) * m); } if (n == 0) { nodes.top = 54; } else { nodes.top = (n * 100) + 54; } setInfo sinfo = new setInfo(); sinfo.NodeName = nodes.name; //审核记录 if (dr["evaluateperson"] != null && !string.IsNullOrEmpty(dr["evaluateperson"].ToString())) { sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); DateTime auditdate; DateTime.TryParse(dr["evaluatetime"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = dr["evaluatedept"].ToString(); nodedesignatedata.createuser = dr["evaluateperson"].ToString(); nodedesignatedata.status = dr["evaluateopinion"].ToString(); if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = dt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } else { if (dr["id"].ToString() == flowid) { sinfo.Taged = 0; } List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "无"; var checkDeptId = dr["checkdeptid"].ToString(); if (checkDeptId == "-1")//审核流程标记 -1 为执行单位=外包工程的发包单位 { var deptentity = new DepartmentService().GetEntityByCode(EvaluateEntity.CREATEUSERDEPTCODE); if (deptentity != null) { if (deptentity.Nature == "班组") { var parentDept = new DepartmentService().GetParentDeptBySpecialArgs(deptentity.ParentId, "部门"); if (parentDept != null) { checkDeptId = parentDept.DepartmentId; nodedesignatedata.creatdept = parentDept.FullName; } } } else { nodedesignatedata.creatdept = "无"; } } else if (checkDeptId == "-3") { var deptentity = new DepartmentService().GetEntityByCode(EvaluateEntity.CREATEUSERDEPTCODE); if (deptentity != null) { checkDeptId = deptentity.DepartmentId; nodedesignatedata.creatdept = deptentity.FullName; } else { nodedesignatedata.creatdept = "无"; } } else { nodedesignatedata.creatdept = dr["checkdeptname"].ToString(); } string userNames = new ScaffoldService().GetUserName(checkDeptId, dr["checkrolename"].ToString(), "0").Split('|')[0]; nodedesignatedata.createuser = !string.IsNullOrEmpty(userNames) ? userNames : "无"; nodedesignatedata.status = "无"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = dt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } nlist.Add(nodes); } //流程结束节点 nodes nodes_end = new nodes(); nodes_end.alt = true; nodes_end.isclick = false; nodes_end.css = ""; nodes_end.id = Guid.NewGuid().ToString(); nodes_end.img = ""; nodes_end.name = "流程结束"; nodes_end.type = "endround"; nodes_end.width = 150; nodes_end.height = 60; //取最后一流程的位置,相对排位 nodes_end.left = nlist[nlist.Count - 1].left; nodes_end.top = nlist[nlist.Count - 1].top + 100; nlist.Add(nodes_end); //如果状态为审核通过或不通过,流程结束进行标识 if (isendflow) { setInfo sinfo = new setInfo(); sinfo.NodeName = nodes_end.name; sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); //取流程结束时的节点信息 if (!string.IsNullOrWhiteSpace(flowid)) { DataRow[] end_rows = dt.Select("id = '" + flowid + "'"); DataRow end_row = end_rows[0]; DateTime auditdate; DateTime.TryParse(end_row["evaluatetime"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = end_row["evaluatedept"].ToString(); nodedesignatedata.createuser = end_row["evaluateperson"].ToString(); nodedesignatedata.status = end_row["evaluateopinion"].ToString(); nodedesignatedata.prevnode = end_row["flowname"].ToString(); } else { //历史数据无Flowid nodedesignatedata.createdate = ""; nodedesignatedata.creatdept = ""; nodedesignatedata.createuser = ""; nodedesignatedata.status = ""; nodedesignatedata.prevnode = ""; } nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes_end.setInfo = sinfo; } for (int i = 0; i < dt.Rows.Count; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = dt.Rows[i]["id"].ToString(); if (i < dt.Rows.Count - 1) { lines.to = dt.Rows[i + 1]["id"].ToString(); } lines.name = ""; lines.type = "sl"; llist.Add(lines); } lines lines_end = new lines(); lines_end.alt = true; lines_end.id = Guid.NewGuid().ToString(); lines_end.from = dt.Rows[dt.Rows.Count - 1]["id"].ToString(); lines_end.to = nodes_end.id; llist.Add(lines_end); flow.nodes = nlist; flow.lines = llist; } return(flow); }
// dependency injection is used to initialise ScaffoldService // See Startup.cs file to see how it was registered public ScaffoldController(ScaffoldService scaffoldService) { _scaffoldedService = scaffoldService; }