static void Main(string[] args) { Console.WriteLine("Minyaylov Oleh\nIS-92"); lines line = new lines(3, 5, 3, 10); Console.WriteLine("Length of line is {0,0}", line.dline()); vidrizok segment = new vidrizok(3, 5, 3, 10); Console.WriteLine("Length of segment is {0,0}", segment.Leng); Console.WriteLine("Angle is {0,0} rad", segment.cosa()); stroka s = new stroka("AllMustBePRESa"); Console.WriteLine(s.Str); Console.WriteLine(s.leng()); s.add("Added"); Console.WriteLine(s.Str); s = new LowCase(s.Str); Console.WriteLine(s.Str); Console.WriteLine(s.leng()); s.Lower(); s = new UpCase(s.Str); Console.WriteLine(s.Str); Console.WriteLine(s.leng()); s.Upper(); }
private List <Linea> obtenerListaLineas() { int numberLines = lineController.getNumberLines(); bool[,] vehicles = lineController.getVehicles(); int[] times = lineController.getTimes(); List <Linea> lineas = new List <Linea>(); GameObject line; for (int i = 0; i < numberLines; i++) { line = GameObject.Find("linea" + (i + 1).ToString()); lines tempLine = line.GetComponent <lines>(); int maxTime = times[i]; // Tiempo máximo disponible. float timeReach = tempLine.getTime(); // Tiempo que llevan los carros atendidos. int restantTime = (int)System.Math.Round(maxTime - timeReach); // Tiempo restante. List <char> tiposVehiculos = getListType(vehicles, i); Linea linea = new Linea(tempLine.getLine(), maxTime, tiposVehiculos, true, restantTime); // Generamos la línea. lineas.Add(linea); } return(lineas); }
/* Call a new car.. */ private void callNewCar() { // If there are not cars availables. if (vehiculosTemporales.Count <= 0) { return; } // Get the first car. DistribucionVehiculosGeneticos.Vehiculo tempVehiculo = vehiculosTemporales[0]; // If the car is not going to be assigned. if (vehiculosTemporales[0].GetLineaAsignada() != null) { GameObject newCar = salaObject.getCarById(tempVehiculo.GetId()); // Get the respective car of the waitRoom. if (newCar) { newCar.transform.position = new Vector3(transform.position.x, transform.position.y, newCar.transform.position.z); GameObject lineObject = getLine(tempVehiculo.GetLineaAsignada().GetId()); // Get the line of the car. lines line = lineObject.GetComponent <lines>(); // Call the script of the line. newCar.GetComponent <vehicle>().setActualLine(line); // Add to the car, the state of the actual line. line.addElement(newCar); // Add the new car to the line. vehiculosTemporales.Remove(tempVehiculo); } } else { vehiculosTemporales.Remove(tempVehiculo); // Remove the car from the possibles ... and call other. callNewCar(); } }
public ActionResult LoadWorkFlowDesign(string keyValue) { //节点列表 var nodeData = activitybll.GetList(keyValue); //线性列表 var lineData = conditionbll.GetList(keyValue); List <nodes> nodeList = new List <nodes>(); List <lines> lineList = new List <lines>(); #region 创建nodes对象 foreach (WfTBActivityEntity entity in nodeData) { nodes nodes = new nodes(); nodes.alt = true; nodes.css = ""; nodes.id = entity.Id; //主键 nodes.img = ""; nodes.name = entity.Name; nodes.type = entity.FormName; nodes.height = entity.FormHeight.Value; nodes.left = entity.GraphLeft.Value; nodes.top = entity.Graphtop.Value; nodes.width = entity.FormWidth.Value; nodeList.Add(nodes); } #endregion #region 创建lines对象 foreach (WfTBConditionEntity entity in lineData) { lines lines = new lines(); lines.alt = true; lines.id = entity.Id; lines.from = entity.ActivityId; lines.to = entity.ToActivityId; lines.name = ""; lines.type = "sl"; lineList.Add(lines); } #endregion Flow flow = new Flow(); flow.activeID = keyValue; flow.title = "隐患流程图"; flow.initNum = 22; flow.nodes = nodeList; flow.lines = lineList; var jsonData = new { flow = flow }; return(Content(jsonData.ToJson())); }
// Use this for initialization void Start() { cont++; this.id = cont; textID.GetComponent <TextMesh>().text = "ID: " + this.id.ToString(); textTime.GetComponent <TextMesh>().text = "Time: " + time.ToString(); isMove = false; advance = false; attend = false; actualLine = null; actualPosition = -1; waitTime = 0; timeExpected = 150; }
private PreviewShape pGetLine(lines l) { PreviewShape ret = new(); switch (l) { case lines.shadow: ret = shadowLine; break; case lines.min: ret = minShadowLine; break; case lines.max: ret = maxShadowLine; break; } return(ret); }
void fcfs() { //Variables int seektime = 0; //============================================================= //Algorithm for (int i = 0; i < no_of_requests; i++) { lines pnn = new lines(); if (i != 0) { pnn.start = i - 1; } else { pnn.start = -1; } pnn.end = i; line.Add(pnn); } //Seek time int current = curr_req; for (int i = 0; i < Requests.Length; i++) { seektime += Math.Abs(current - Requests[i]); current = Requests[i]; } textBox7.Text = "" + seektime; //============================================================= //Graph Graph fcfsgrapgh = new Graph(line); fcfsgrapgh.Show(); active = fcfsgrapgh; //============================================================= }
/// <summary> /// 获取安全惩罚流程图对象 /// </summary> /// <param name="keyValue"></param> /// <returns></returns> public Flow GetFlow(string keyValue) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); SafepunishEntity safereward = GetEntity(keyValue); string flowname = "惩罚流程"; if (safereward.AmerceType == "1" || safereward.AmerceType == "2") { flowname = "事故事件考核流程"; } else if (safereward.AmerceType == "3" || safereward.AmerceType == "4") { flowname = "惩罚流程"; } Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); string node_sql = string.Format(@"select a.itemvalue id,a.itemname flowname, b.approverpeopleids,b.AUDITDEPT auditdeptname,b.AUDITPEOPLE auditusername,b.AUDITTIME auditdate,b.AUDITRESULT auditstate,b.AUDITOPINION auditremark from ( select itemvalue,itemname from base_dataitemdetail where itemid = (select itemid from base_dataitem where itemname = '{1}')) a left join ( select t.* , c.approverpeopleids from epg_aptitudeinvestigateaudit t left join bis_safepunish c on t.APTITUDEID = c.id where t.disable ='1' and t.audittime in (select max(audittime) audittime from epg_aptitudeinvestigateaudit where APTITUDEID = '{0}' group by APTITUDEID,remark ) ) b on a.itemvalue =b.REMARK order by id", keyValue, flowname); DataTable nodeDt = this.BaseRepository().FindTable(node_sql); UserInfoEntity createuser = new UserInfoService().GetUserInfoEntity(safereward.CreateUserId); Operator curUser = ERCHTMS.Code.OperatorProvider.Provider.Current(); DataItemModel ehsDepart = new DataItemDetailService().GetDataItemListByItemCode("'EHSDepartment'").Where(p => p.ItemName == curUser.OrganizeId).ToList().FirstOrDefault(); string ehsDepartCode = ""; if (ehsDepart != null) { ehsDepartCode = ehsDepart.ItemValue; } if (safereward.AmerceType == "1" || safereward.AmerceType == "2") //事故事件跟其他类型 { if (createuser.RoleName.Contains("厂级部门用户") && createuser.RoleName.Contains("负责人")) { nodeDt.Rows.RemoveAt(1); } else if (GetLeaderId().Contains(safereward.CreateUserId)) { nodeDt.Rows.RemoveAt(2); nodeDt.Rows.RemoveAt(1); } } if (safereward.AmerceType == "3" || safereward.AmerceType == "4") //日常考核跟隐患排查治理 { if (((createuser.Nature == "专业" || createuser.Nature == "班组") && createuser.RoleName.Contains("负责人")) || (createuser.Nature == "部门" && !createuser.RoleName.Contains("负责人"))) { nodeDt.Rows.RemoveAt(1); } else if (createuser.Nature == "部门" && createuser.RoleName.Contains("负责人")) { nodeDt.Rows.RemoveAt(2); nodeDt.Rows.RemoveAt(1); } } Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; flow.activeID = safereward.ApplyState; if (nodeDt != null && nodeDt.Rows.Count > 0) { #region 创建node对象 int Taged = 0; for (int i = 0; i < nodeDt.Rows.Count; i++) { DataRow dr = nodeDt.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"; nodes.width = 150; nodes.height = 60; //位置 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["auditdeptname"] != null && !string.IsNullOrEmpty(dr["auditdeptname"].ToString())) { Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); DateTime auditdate; DateTime.TryParse(dr["auditdate"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = dr["auditdeptname"].ToString(); nodedesignatedata.createuser = dr["auditusername"].ToString(); nodedesignatedata.status = dr["auditstate"].ToString() == "0" ? "已处理" : "未处理"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.Taged = Taged; sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; if (dr["auditstate"].ToString() == "1") { Taged = 0; } } else if (Taged == 1) { if (i == (nodeDt.Rows.Count - 1)) { Taged = 1; //List<NodeDesignateData> nodelist = new List<NodeDesignateData>(); //NodeDesignateData nodedesignatedata = new NodeDesignateData(); //nodelist.Add(nodedesignatedata); sinfo.Taged = Taged; //sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } else { Taged = 0; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "待定"; var userid = nodeDt.Rows[i - 1]["approverpeopleids"].ToString(); string[] ids = userid.Split(','); string DeptName = "", RealName = ""; if (ids.Length > 0) { for (int j = 0; j < ids.Length; j++) { if (!string.IsNullOrEmpty(ids[j])) { UserInfoEntity uInfor = new UserInfoService().GetUserInfoEntity(ids[j]); DeptName += uInfor.DeptName + ","; RealName += uInfor.RealName + ","; } } nodedesignatedata.creatdept = DeptName.Length > 0 ? DeptName.Substring(0, DeptName.Length - 1) : ""; nodedesignatedata.createuser = RealName.Length > 0 ? RealName.Substring(0, RealName.Length - 1) : ""; } else { nodedesignatedata.creatdept = "无"; nodedesignatedata.createuser = "******"; } nodedesignatedata.status = "正在处理..."; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.Taged = Taged; sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } } else if (safereward.ApplyState == "0" && i == 0) { List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "待定"; UserInfoEntity uInfor = new UserInfoService().GetUserInfoEntity(safereward.ApproverPeopleIds); if (uInfor != null) { nodedesignatedata.creatdept = uInfor.DeptName; nodedesignatedata.createuser = uInfor.RealName; } else { nodedesignatedata.creatdept = safereward.ApplyUserDeptName; nodedesignatedata.createuser = safereward.ApplyUserName; } nodedesignatedata.status = "正在处理..."; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.Taged = Taged; sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } nlist.Add(nodes); } #endregion #region 创建line对象 for (int i = 0; i < nodeDt.Rows.Count; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = nodeDt.Rows[i]["id"].ToString(); if (i < nodeDt.Rows.Count - 1) { lines.to = nodeDt.Rows[i + 1]["id"].ToString(); } lines.name = ""; lines.type = "sl"; llist.Add(lines); } #endregion flow.nodes = nlist; flow.lines = llist; } return(flow); }
/// <summary> /// 获取流程图 /// </summary> /// <param name="keyValue"></param> /// <param name="modulename"></param> /// <returns></returns> public Flow GetFlow(string modulename, string keyValue, string adjustId) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); //得到流程节点 SafeAdjustmentEntity adjustmentEntity = adjustmentService.GetEntity(keyValue); if (string.IsNullOrEmpty(adjustId)) { //取最新一条 adjustmentEntity = adjustmentService.GetEntity(keyValue); adjustId = adjustmentEntity.ID; } DataTable nodeDt = service.GetCheckInfo(modulename, keyValue, adjustId); SafeMeasureEntity entity = service.GetEntity(keyValue); Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; flow.activeID = entity.FlowId; if (nodeDt != null && nodeDt.Rows.Count > 0) { #region [创建node对象] for (int i = 0; i < nodeDt.Rows.Count; i++) { DataRow dr = nodeDt.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"; nodes.width = 150; nodes.height = 60; //位置 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["AUDITDEPT"] != null && !string.IsNullOrEmpty(dr["AUDITDEPT"].ToString())) { sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); DateTime auditdate; DateTime.TryParse(dr["AUDITTIME"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = dr["AUDITDEPT"].ToString(); nodedesignatedata.createuser = dr["AUDITPEOPLE"].ToString(); nodedesignatedata.status = dr["AUDITRESULT"].ToString() == "0" ? "同意" : "不同意"; if (dr["AUDITRESULT"].ToString() == "1") { flow.activeID = ""; } if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } else { List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "无"; //获取执行部门 string executeDeptId = string.Empty; if (dr["checkdeptid"].ToString() == "-3") { executeDeptId = service.GetExecuteDept(entity.Id); } else { executeDeptId = dr["checkdeptid"].ToString(); } //获取执行人 IManyPowerCheckService powerCheck = new ManyPowerCheckService(); //获取流程节点配置 List <ManyPowerCheckEntity> powerList = powerCheck.GetListBySerialNum(user.OrganizeCode, "安措计划调整审批"); if (powerList.Count > 0) { var item = powerList.Where(t => t.FLOWNAME == dr["FLOWNAME"].ToString()).FirstOrDefault(); if (item.CHECKDEPTCODE == "-3" || item.CHECKDEPTID == "-3") { string executedept = new DepartmentService().GetEntity(executeDeptId).DepartmentId; switch (item.ChooseDeptRange) //判断部门范围 { case "0": item.CHECKDEPTID = executedept; break; case "1": var dept = deptservice.GetEntity(executedept); while (dept.Nature != "部门" && dept.Nature != "厂级") { dept = deptservice.GetEntity(dept.ParentId); } item.CHECKDEPTID = dept.DepartmentId; break; case "2": var dept1 = deptservice.GetEntity(executedept); while (dept1.Nature != "部门" && dept1.Nature != "厂级") { dept1 = deptservice.GetEntity(dept1.ParentId); } item.CHECKDEPTID = (dept1.DepartmentId + "," + executedept).Trim(','); break; default: item.CHECKDEPTID = executedept; break; } executeDeptId = item.CHECKDEPTID; } } string userNames = ""; string execusers = GetNextStepUser(dr["checkrolename"].ToString(), executeDeptId, out userNames); DataTable dtuser = userservice.GetUserTable(execusers.Split(',')); string[] usernames = dtuser.AsEnumerable().Select(d => d.Field <string>("realname")).ToArray(); string[] deptnames = dtuser.AsEnumerable().Select(d => d.Field <string>("deptname")).ToArray().GroupBy(t => t).Select(p => p.Key).ToArray(); nodedesignatedata.createuser = usernames.Length > 0 ? string.Join(",", usernames) : "无"; nodedesignatedata.creatdept = deptnames.Length > 0 ? string.Join(",", deptnames) : "无"; //nodedesignatedata.createuser = "******"; //nodedesignatedata.creatdept = "无"; nodedesignatedata.status = "无"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.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 (entity.Stauts == "审批不通过" || (entity.IsOver == 1 && entity.Stauts == "审批通过")) { setInfo sinfo = new setInfo(); sinfo.NodeName = nodes_end.name; sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); //取流程结束时的节点信息 DataRow[] end_rows = nodeDt.Select("AUDITPEOPLE is not null").OrderBy(t => t.Field <DateTime>("AUDITTIME")).ToArray(); DataRow end_row = end_rows[end_rows.Count() - 1]; DateTime auditdate; DateTime.TryParse(end_row["AUDITTIME"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = end_row["AUDITDEPT"].ToString(); nodedesignatedata.createuser = end_row["AUDITPEOPLE"].ToString(); nodedesignatedata.status = end_row["AUDITRESULT"].ToString() == "0" ? "同意" : "不同意"; nodedesignatedata.prevnode = end_row["flowname"].ToString(); nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes_end.setInfo = sinfo; } #region 创建line对象 for (int i = 0; i < nodeDt.Rows.Count; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = nodeDt.Rows[i]["id"].ToString(); if (i < nodeDt.Rows.Count - 1) { lines.to = nodeDt.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 = nodeDt.Rows[nodeDt.Rows.Count - 1]["id"].ToString(); lines_end.to = nodes_end.id; llist.Add(lines_end); #endregion flow.nodes = nlist; flow.lines = llist; #endregion } return(flow); }
select new TemplateFile(lines, filters: filters, fileNameLine: fnl);
/// <summary> /// 得到流程图 /// </summary> /// <param name="keyValue">业务表ID</param> /// <param name="modulename">逐级审核模块名</param> /// <returns></returns> public Flow GetFlow(string keyValue, string modulename) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); DataTable nodeDt = GetCheckInfo(keyValue, modulename, user); ToolsEntity entity = GetEntity(keyValue); Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; flow.activeID = entity.FlowId; if (nodeDt != null && nodeDt.Rows.Count > 0) { #region 创建node对象 for (int i = 0; i < nodeDt.Rows.Count; i++) { DataRow dr = nodeDt.Rows[i]; nodes nodes = new nodes(); nodes.alt = true; nodes.isclick = false; nodes.css = ""; nodes.id = dr["id"].ToString(); //主键 int result = nlist.Where(t => t.id == nodes.id).Count(); if (result > 0) //判断当同一流程被审核两次时候只产生一个节点 { continue; } nodes.img = ""; nodes.name = dr["flowname"].ToString(); nodes.type = "stepnode"; nodes.width = 150; nodes.height = 60; //位置 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["auditdept"] != null && !string.IsNullOrEmpty(dr["auditdept"].ToString())) { sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); foreach (DataRow item in nodeDt.Select(" id ='" + dr["id"] + "'")) { NodeDesignateData nodedesignatedata = new NodeDesignateData(); DateTime auditdate; DateTime.TryParse(item["audittime"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = item["auditdept"].ToString(); nodedesignatedata.createuser = item["auditpeople"].ToString(); nodedesignatedata.status = item["auditresult"].ToString() == "0" ? "同意" : "不同意"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); } sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } else { List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "无"; var engineerEntity = outsouringengineerservice.GetEntity(entity.OUTENGINEERID); var excutdept = departmentservice.GetEntity(engineerEntity.ENGINEERLETDEPTID).DepartmentId; var createdept = departmentservice.GetEntityByCode(entity.CREATEUSERDEPTCODE).DepartmentId; var outengineerdept = departmentservice.GetEntity(engineerEntity.OUTPROJECTID).DepartmentId; var supervisordept = string.IsNullOrEmpty(engineerEntity.SupervisorId) ? "" : departmentservice.GetEntity(engineerEntity.SupervisorId).DepartmentId; string useridstr = powerCheck.GetApproveUserId(dr["id"].ToString(), entity.TOOLSID, "", entity.SpecialtyType, excutdept, outengineerdept, createdept, "", "", supervisordept, entity.OUTENGINEERID); //获取审核人账号 DataTable dtuser = UserService.GetUserTable(useridstr.Split(',')); string[] usernames = dtuser.AsEnumerable().Select(d => d.Field <string>("realname")).ToArray(); string[] deptnames = dtuser.AsEnumerable().Select(d => d.Field <string>("deptname")).ToArray().GroupBy(t => t).Select(p => p.Key).ToArray(); nodedesignatedata.createuser = usernames.Length > 0 ? string.Join(",", usernames) : "无"; nodedesignatedata.creatdept = deptnames.Length > 0 ? string.Join(",", deptnames) : "无"; nodedesignatedata.status = "无"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.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; setInfo endsinfo = new setInfo(); if (entity.ISOVER == "1") { endsinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); if (nodeDt.Rows.Count > 0) { DataRow[] end_rows = nodeDt.Select("auditdept is not null").OrderBy(t => t.Field <DateTime>("audittime")).ToArray(); DateTime auditdate; DateTime.TryParse(end_rows[end_rows.Count() - 1]["audittime"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = end_rows[end_rows.Count() - 1]["auditdept"].ToString(); nodedesignatedata.createuser = end_rows[end_rows.Count() - 1]["auditpeople"].ToString(); nodedesignatedata.status = end_rows[end_rows.Count() - 1]["auditresult"].ToString() == "0" ? "同意" : "不同意"; nodedesignatedata.prevnode = end_rows[end_rows.Count() - 1]["flowname"].ToString();; } else { nodedesignatedata.createdate = ""; nodedesignatedata.creatdept = ""; nodedesignatedata.createuser = ""; nodedesignatedata.status = ""; nodedesignatedata.prevnode = ""; } nodelist.Add(nodedesignatedata); endsinfo.NodeDesignateData = nodelist; nodes_end.setInfo = endsinfo; } nlist.Add(nodes_end); #endregion #region 创建line对象 for (int i = 0; i < nodeDt.Rows.Count; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = nodeDt.Rows[i]["id"].ToString(); if (llist.Where(t => t.from == nodeDt.Rows[i]["id"].ToString()).Count() > 0) { llist.Remove(llist.Where(t => t.from == nodeDt.Rows[i]["id"].ToString()).FirstOrDefault()); } if (i < nodeDt.Rows.Count - 1) { lines.to = nodeDt.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 = nodeDt.Rows[nodeDt.Rows.Count - 1]["id"].ToString(); lines_end.to = nodes_end.id; llist.Add(lines_end); #endregion flow.nodes = nlist; flow.lines = llist; } return(flow); }
public PreviewShape getLine(lines l) { return(pGetLine(l)); }
/// <summary> /// 流程图 /// </summary> /// <param name="keyValue"></param> /// <returns></returns> public Flow GetFlow(string keyValue) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); DataTable nodeDt = GetCheckInfo(keyValue, "外包人员离厂"); LeaveApproveEntity entity = GetEntity(keyValue); Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; flow.activeID = entity.FlowId; Operator curUser = ERCHTMS.Code.OperatorProvider.Provider.Current(); if (nodeDt != null && nodeDt.Rows.Count > 0) { #region [创建node对象] for (int i = 0; i < nodeDt.Rows.Count; i++) { DataRow dr = nodeDt.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"; nodes.width = 150; nodes.height = 60; //位置 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["AUDITDEPT"] != null && !string.IsNullOrEmpty(dr["AUDITDEPT"].ToString())) { sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); DateTime auditdate; DateTime.TryParse(dr["AUDITTIME"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = dr["AUDITDEPT"].ToString(); nodedesignatedata.createuser = dr["AUDITPEOPLE"].ToString(); nodedesignatedata.status = dr["AUDITRESULT"].ToString() == "0" ? "同意" : "不同意"; if (dr["AUDITRESULT"].ToString() == "1") { flow.activeID = ""; } if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } else { List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "无"; //获取执行部门 string account = manypowercheckservice.GetApproveUserAccount(nodeDt.Rows[i]["id"].ToString(), keyValue, "", "", entity.LeaveDeptId); DataTable dtuser = userservice.GetUserTable(account.Split(',')); string[] usernames = dtuser.AsEnumerable().Select(d => d.Field <string>("realname")).ToArray(); string[] deptnames = dtuser.AsEnumerable().Select(d => d.Field <string>("deptname")).ToArray().GroupBy(t => t).Select(p => p.Key).ToArray(); nodedesignatedata.createuser = usernames.Length > 0 ? string.Join(",", usernames) : "无"; nodedesignatedata.creatdept = deptnames.Length > 0 ? string.Join(",", deptnames) : "无"; //nodedesignatedata.createuser = "******"; //nodedesignatedata.creatdept = "无"; nodedesignatedata.status = "无"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.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 (entity.ApproveState != 0) { setInfo sinfo = new setInfo(); sinfo.NodeName = nodes_end.name; sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); //取流程结束时的节点信息 DataRow[] end_rows = nodeDt.Select("AUDITPEOPLE is not null").OrderBy(t => t.Field <DateTime>("AUDITTIME")).ToArray(); DataRow end_row = end_rows[end_rows.Count() - 1]; DateTime auditdate; DateTime.TryParse(end_row["AUDITTIME"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = end_row["AUDITDEPT"].ToString(); nodedesignatedata.createuser = end_row["AUDITPEOPLE"].ToString(); nodedesignatedata.status = end_row["AUDITRESULT"].ToString() == "0" ? "同意" : "不同意"; nodedesignatedata.prevnode = end_row["flowname"].ToString(); nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes_end.setInfo = sinfo; } #endregion #region 创建line对象 for (int i = 0; i < nodeDt.Rows.Count; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = nodeDt.Rows[i]["id"].ToString(); if (i < nodeDt.Rows.Count - 1) { lines.to = nodeDt.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 = nodeDt.Rows[nodeDt.Rows.Count - 1]["id"].ToString(); lines_end.to = nodes_end.id; llist.Add(lines_end); #endregion flow.nodes = nlist; flow.lines = llist; } return(flow); }
// Use this for initialization void Start() { codeLine = line.GetComponent <lines>(); }
grid[(j, i)] = new Octopus(j, i, lines[i][j] - '0');
/// <summary> /// 得到流程图 /// </summary> /// <param name="keyValue">业务表ID</param> /// <param name="modulename">逐级审核模块名</param> /// <returns></returns> public Flow GetFlow(string keyValue, string modulename) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); DataTable nodeDt = GetCheckInfo(keyValue, modulename, user); LifthoistjobEntity entity = GetEntity(keyValue); Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; flow.activeID = entity.FLOWID; if (nodeDt != null && nodeDt.Rows.Count > 0) { #region 创建node对象 for (int i = 0; i < nodeDt.Rows.Count; i++) { DataRow dr = nodeDt.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"; nodes.width = 150; nodes.height = 60; //位置 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["auditdeptname"] != null && !string.IsNullOrEmpty(dr["auditdeptname"].ToString())) { sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); DateTime auditdate; DateTime.TryParse(dr["auditdate"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = dr["auditdeptname"].ToString(); nodedesignatedata.createuser = dr["auditusername"].ToString(); nodedesignatedata.status = dr["auditstate"].ToString() == "1" ? "同意" : "不同意"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } else { List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "无"; string executedept = string.Empty; highriskcommonapplyservice.GetExecutedept(entity.WORKDEPTTYPE.ToString(), entity.CONSTRUCTIONUNITID, entity.ENGINEERINGID, out executedept); //获取执行部门 string createdetpid = departmentservice.GetEntityByCode(entity.CREATEUSERDEPTCODE).IsEmpty() ? "" : departmentservice.GetEntityByCode(entity.CREATEUSERDEPTCODE).DepartmentId; //获取创建部门ID string outsouringengineerdept = string.Empty; highriskcommonapplyservice.GetOutsouringengineerDept(entity.CONSTRUCTIONUNITID, out outsouringengineerdept); string accountstr = manypowercheckservice.GetApproveUserAccount(dr["id"].ToString(), entity.ID, "", entity.SPECIALTYTYPE, executedept, outsouringengineerdept, createdetpid, "", ""); //获取审核人账号 string outtransferuseraccount = dr["outtransferuseraccount"].IsEmpty() ? "" : dr["outtransferuseraccount"].ToString(); //转交申请人 string intransferuseraccount = dr["intransferuseraccount"].IsEmpty() ? "" : dr["intransferuseraccount"].ToString(); //转交接收人 string[] outtransferuseraccountlist = outtransferuseraccount.Split(','); string[] intransferuseraccountlist = intransferuseraccount.Split(','); foreach (var item in intransferuseraccountlist) { if (!item.IsEmpty() && !accountstr.Contains(item + ",")) { accountstr += (item + ",");//将转交接收人加入审核账号中 } } foreach (var item in outtransferuseraccountlist) { if (!item.IsEmpty() && accountstr.Contains(item + ",")) { accountstr = accountstr.Replace(item + ",", "");//将转交申请人从审核账号中移除 } } DataTable dtuser = userservice.GetUserTable(accountstr.Split(',')); string[] usernames = dtuser.AsEnumerable().Select(d => d.Field <string>("realname")).ToArray(); string[] deptnames = dtuser.AsEnumerable().Select(d => d.Field <string>("deptname")).ToArray().GroupBy(t => t).Select(p => p.Key).ToArray(); nodedesignatedata.createuser = usernames.Length > 0 ? string.Join(",", usernames) : "无"; nodedesignatedata.creatdept = deptnames.Length > 0 ? string.Join(",", deptnames) : "无"; nodedesignatedata.status = "无"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.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 (entity.AUDITSTATE == 2) { setInfo sinfo = new setInfo(); sinfo.NodeName = nodes_end.name; sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); //取流程结束时的节点信息 DataRow[] end_rows = nodeDt.Select("auditusername is not null"); DataRow end_row = end_rows[end_rows.Count() - 1]; DateTime auditdate; DateTime.TryParse(end_row["auditdate"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = end_row["auditdeptname"].ToString(); nodedesignatedata.createuser = end_row["auditusername"].ToString(); nodedesignatedata.status = end_row["auditstate"].ToString() == "1" ? "同意" : "不同意"; nodedesignatedata.prevnode = end_row["flowname"].ToString(); nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes_end.setInfo = sinfo; } #endregion #region 创建line对象 for (int i = 0; i < nodeDt.Rows.Count; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = nodeDt.Rows[i]["id"].ToString(); if (i < nodeDt.Rows.Count - 1) { lines.to = nodeDt.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 = nodeDt.Rows[nodeDt.Rows.Count - 1]["id"].ToString(); lines_end.to = nodes_end.id; llist.Add(lines_end); #endregion flow.nodes = nlist; flow.lines = llist; } return(flow); }
/// <summary> /// 流程图信息 /// </summary> /// <param name="keyValue"></param> /// <returns></returns> public Flow GetFlow(string keyValue) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); DataTable entity = GetEntityByT(keyValue, ""); Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; flow.activeID = entity.Rows[0]["FlowState"].ToString(); string[] flowname = new string[] { "任务下发", "责任部门(单位)办理反馈", "督办人督办确认" }; string FlowState = entity.Rows[0]["FlowState"].ToString(); string userid = entity.Rows[0]["CreateUserId"].ToString(); UserInfoEntity uInfor = new UserInfoService().GetUserInfoEntity(userid); for (int i = 0; i < 3; i++) { nodes nodes = new nodes(); nodes.alt = true; nodes.isclick = false; nodes.css = ""; nodes.id = entity.Rows[0]["Id"].ToString() + i; //主键 nodes.img = ""; nodes.name = flowname[i]; nodes.type = "stepnode"; nodes.width = 150; nodes.height = 60; //位置 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(); if (int.Parse(FlowState) > i) { sinfo.Taged = 1; } else if (int.Parse(FlowState) == i) { sinfo.Taged = 0; } sinfo.NodeName = nodes.name; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); if (i == 0) { nodedesignatedata.createdate = entity.Rows[0]["CreateDate"].ToString(); //处理时间 nodedesignatedata.creatdept = uInfor.DeptName; //处理单位 nodedesignatedata.createuser = entity.Rows[0]["CreateUserName"].ToString(); //处理人 nodedesignatedata.status = "无"; //处理状态 if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = flowname[i - 1];//上一流程 } } else if (i == 1) { nodedesignatedata.createdate = string.IsNullOrEmpty(entity.Rows[0]["FCreateDate"].ToString()) ? "无" : entity.Rows[0]["FeedbackDate"].ToString(); //处理时间 nodedesignatedata.creatdept = entity.Rows[0]["DutyDeptName"].ToString(); //处理单位 nodedesignatedata.createuser = entity.Rows[0]["DutyPerson"].ToString(); //处理人 nodedesignatedata.status = "无"; //处理状态 nodedesignatedata.prevnode = flowname[i - 1]; //上一流程 } else if (i == 2) { nodedesignatedata.createdate = string.IsNullOrEmpty(entity.Rows[0]["CCreateDate"].ToString()) ? "无" : entity.Rows[0]["ConfirmationDate"].ToString(); //处理时间 nodedesignatedata.creatdept = entity.Rows[0]["SuperviseDeptName"].ToString(); //处理单位 nodedesignatedata.createuser = entity.Rows[0]["SupervisePerson"].ToString(); //处理人 nodedesignatedata.status = "无"; //处理状态 nodedesignatedata.prevnode = flowname[i - 1]; //上一流程 } 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; if (FlowState == "3") { setInfo sinfo = new setInfo(); sinfo.NodeName = nodes_end.name; sinfo.Taged = 1; nodes_end.setInfo = sinfo; } nlist.Add(nodes_end); #region 创建line对象 for (int i = 0; i < 3; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = entity.Rows[0]["Id"].ToString() + i; if (i == 2) { lines.to = nodes_end.id; } else { lines.to = entity.Rows[0]["Id"].ToString() + (i + 1); } 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 = entity.Rows[0]["Id"].ToString() + "3"; lines_end.to = nodes_end.id; llist.Add(lines_end); #endregion flow.nodes = nlist; flow.lines = llist; return(flow); }
ref readonly var line = ref skip(lines, i);
/// <summary> /// 查询审核流程图 /// </summary> /// <param name="keyValue">主键</param> /// <param name="urltype">查询类型:0:安全考核</param> /// <returns></returns> public Flow GetAuditFlowData(string keyValue, string urltype) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); string moduleno = string.Empty; string table = string.Empty; moduleno = "AQKHSH"; DataTable dt = new DataTable(); table = string.Format(@"left join epg_aptitudeinvestigateaudit b on t.id = b.flowid and b.aptitudeid = '{0}' ", keyValue); string flowSql = string.Format(@"select d.FLOWDEPT,flowdept flowdeptid, g.FULLNAME, d.FLOWDEPTNAME,d.FLOWROLENAME,d.issaved,d.isover, t.flowname,t.id,t.serialnum,t.checkrolename,t.checkroleid,t.checkdeptid,t.checkdeptcode, b.auditresult,b.auditdept,b.auditpeople,b.audittime,t.checkdeptname,t.applytype,t.scriptcurcontent,t.choosedeptrange from bis_manypowercheck t {2} left join epg_safetyassessment d on d.flowid = t.id and d.id = '{3}' left join base_department g on d.FLOWDEPT = g.DEPARTMENTID where t.createuserorgcode='{1}' and t.moduleno='{0}' order by t.serialnum asc", moduleno, user.OrganizeCode, table, keyValue); dt = this.BaseRepository().FindTable(flowSql); //DataTable nodeDt = GetCheckInfo(KeyValue); //JobSafetyCardApplyEntity entity = GetEntity(KeyValue); Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; int end = 0; string endcreatedate = ""; string endcreatdept = ""; string endcreateuser = ""; string endflowname = ""; if (dt.Rows.Count > 0) { #region 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(); endflowname = 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; //var emptyele = dangerousjoboperateservice.GetList("").Where(t => t.RecId == KeyValue && t.OperateType == 2).OrderByDescending(t => t.CreateDate).FirstOrDefault(); if (dr["auditresult"].ToString() == "0" || dr["isover"].ToString() == "1") { sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = Convert.ToDateTime(dr["audittime"].ToString()).ToString("yyyy-MM-dd HH:mm"); endcreatedate = Convert.ToDateTime(dr["audittime"].ToString()).ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = dr["auditdept"].ToString(); endcreatdept = dr["auditdept"].ToString(); nodedesignatedata.createuser = dr["auditpeople"].ToString(); endcreateuser = dr["auditpeople"].ToString(); nodedesignatedata.status = "同意"; if (nlist.Count == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nlist[nlist.Count - 1].name; } nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; end = 1; } else if (dr["issaved"].ToString() == "1") { sinfo.Taged = 0; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "无"; //DataTable dtuser = userservice.GetUserTable(entity.PowerCutPersonId.Split(',')); //string[] usernames = dtuser.AsEnumerable().Select(d => d.Field<string>("realname")).ToArray(); //string[] deptnames = dtuser.AsEnumerable().Select(d => d.Field<string>("deptname")).ToArray().GroupBy(t => t).Select(p => p.Key).ToArray(); //nodedesignatedata.createuser = usernames.Length > 0 ? string.Join(",", usernames) : "无"; //nodedesignatedata.creatdept = deptnames.Length > 0 ? string.Join(",", deptnames) : "无"; nodedesignatedata.createdate = "无"; nodedesignatedata.creatdept = dr["fullname"].ToString(); nodedesignatedata.createuser = this.BaseRepository().FindObject(" select wm_concat(realname) from base_user where departmentid = '" + dr["flowdeptid"].ToString() + "' and rolename like '%负责人%' ").ToString(); nodedesignatedata.status = dr["flowname"].ToString();; if (nlist.Count == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nlist[nlist.Count - 1].name; } nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } nlist.Add(nodes); } #endregion #region 创建node对象 //流程结束节点 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 (end == 1) { setInfo sinfo = new setInfo(); sinfo.NodeName = nodes_end.name; sinfo.Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); //取流程结束时的节点信息 nodedesignatedata.createdate = endcreatedate; nodedesignatedata.creatdept = endcreatdept; nodedesignatedata.createuser = endcreateuser; nodedesignatedata.status = "同意"; nodedesignatedata.prevnode = endflowname; nodelist.Add(nodedesignatedata); sinfo.NodeDesignateData = nodelist; nodes_end.setInfo = sinfo; } #endregion #region 创建line对象 for (int i = 0; i < nlist.Count; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = nlist[i].id; if (i < nlist.Count - 1) { lines.to = nlist[i + 1].id; } 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 = nlist[nlist.Count - 1].id; lines_end.to = nodes_end.id; llist.Add(lines_end); #endregion flow.nodes = nlist; flow.lines = llist; } return(flow); }
/// <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); }
// Use this for initialization void Start() { line = lineObject.GetComponent <lines>(); }
grid[(j, i)] = new Position(j, i, lines[i][j] - '0');
protected mesh CreateCaseMesh(BoxProperties caseProperties) { // build box Box box = new Box(0, caseProperties); // build list of vertices / normals / UVs ulong vertexCount = 0, normalCount = 0, uvCount = 0; List <double> doubleArrayPosition = new List <double>(), doubleArrayNormal = new List <double>(), doubleArrayUV = new List <double>(); foreach (Vector3D p in box.PointsSmallOffset) { doubleArrayPosition.Add(p.X); doubleArrayPosition.Add(p.Y); doubleArrayPosition.Add(p.Z); ++vertexCount; } foreach (Vector3D n in box.Normals) { doubleArrayNormal.Add(n.X); doubleArrayNormal.Add(n.Y); doubleArrayNormal.Add(n.Z); ++normalCount; } foreach (Vector2D uv in box.UVs) { doubleArrayUV.Add(uv.X); doubleArrayUV.Add(uv.Y); ++uvCount; } mesh caseMesh = new mesh(); // position source source casePositionSource = new source() { id = "case_position", name = "case_position" }; float_array farrayPosition = new float_array { id = "case_position_float_array", count = (ulong)doubleArrayPosition.Count, Values = doubleArrayPosition.ToArray() }; casePositionSource.technique_common = new sourceTechnique_common() { accessor = new accessor() { stride = 3, count = vertexCount, source = "#case_position_float_array", param = new param[] { new param() { name = "X", type = "float" }, new param() { name = "Y", type = "float" }, new param() { name = "Z", type = "float" } } } }; casePositionSource.Item = farrayPosition; // normal source source casePositionNormal = new source() { id = "case_normal", name = "case_normal" }; float_array farrayNormal = new float_array { id = "case_normal_float_array", count = (ulong)doubleArrayNormal.Count, Values = doubleArrayNormal.ToArray() }; casePositionNormal.technique_common = new sourceTechnique_common() { accessor = new accessor() { stride = 3, count = normalCount, source = "#case_normal_float_array", param = new param[] { new param() { name = "X", type = "float" }, new param() { name = "Y", type = "float" }, new param() { name = "Z", type = "float" } } } }; casePositionNormal.Item = farrayNormal; // uv source source casePositionUV = new source() { id = "case_UV", name = "pallet_UV" }; float_array farrayUV = new float_array { id = "case_UV_float_array", count = (ulong)doubleArrayUV.Count, Values = doubleArrayUV.ToArray() }; casePositionUV.technique_common = new sourceTechnique_common() { accessor = new accessor() { stride = 2, count = vertexCount, source = "#case_UV_float_array", param = new param[] { new param() { name = "S", type = "float" }, new param() { name = "T", type = "float" } } } }; casePositionUV.Item = farrayUV; // insert sources caseMesh.source = new source[] { casePositionSource, casePositionNormal, casePositionUV }; // vertices InputLocal verticesInput = new InputLocal() { semantic = "POSITION", source = "#case_position" }; caseMesh.vertices = new vertices() { id = "case_vertex", input = new InputLocal[] { verticesInput } }; List <object> trianglesList = new List <object>(); // build list of triangles foreach (HalfAxis.HAxis axis in HalfAxis.All) { triangles trianglesCase = new triangles() { material = string.Format("materialCase{0}", (uint)axis), count = 2 }; trianglesCase.input = new InputLocalOffset[] { new InputLocalOffset() { semantic = "VERTEX", source = "#case_vertex", offset = 0 } , new InputLocalOffset() { semantic = "NORMAL", source = "#case_normal", offset = 1 } , new InputLocalOffset() { semantic = "TEXCOORD", source = "#case_UV", offset = 2, set = 0, setSpecified = true } }; string triangle_string = string.Empty; foreach (TriangleIndices tr in box.TrianglesByFace(axis)) { triangle_string += tr.ConvertToString(0); } trianglesCase.p = triangle_string; trianglesList.Add(trianglesCase); } // build list of lines lines linesCase = new lines() { material = "materialCaseLines", count = 12, input = new InputLocalOffset[] { new InputLocalOffset() { semantic = "VERTEX", source = "#case_vertex", offset = 0 } }, p = "0 1 1 2 2 3 3 0 4 5 5 6 6 7 7 4 0 4 1 5 2 6 3 7" }; trianglesList.Add(linesCase); caseMesh.Items = trianglesList.ToArray(); return(caseMesh); }
public void setActualLine(lines line) { this.actualLine = line; }