コード例 #1
0
        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();
        }
コード例 #2
0
    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);
    }
コード例 #3
0
    /* 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();
        }
    }
コード例 #4
0
ファイル: ProcessController.cs プロジェクト: paddy235/ERCHTMS
        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()));
        }
コード例 #5
0
 // 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;
 }
コード例 #6
0
    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);
    }
コード例 #7
0
        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;
            //=============================================================
        }
コード例 #8
0
ファイル: SafepunishService.cs プロジェクト: paddy235/ERCHTMS
        /// <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);
        }
コード例 #9
0
ファイル: SafeMeasureBLL.cs プロジェクト: paddy235/ERCHTMS
        /// <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);
        }
コード例 #10
0
 select new TemplateFile(lines, filters: filters, fileNameLine: fnl);
コード例 #11
0
ファイル: ToolsService.cs プロジェクト: paddy235/ERCHTMS
        /// <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);
        }
コード例 #12
0
 public PreviewShape getLine(lines l)
 {
     return(pGetLine(l));
 }
コード例 #13
0
        /// <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);
        }
コード例 #14
0
 // Use this for initialization
 void Start()
 {
     codeLine = line.GetComponent <lines>();
 }
コード例 #15
0
ファイル: Day11.cs プロジェクト: mschamp/AdventOfCode2020
 grid[(j, i)] = new Octopus(j, i, lines[i][j] - '0');
コード例 #16
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);
        }
コード例 #17
0
        /// <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);
        }
コード例 #18
0
ファイル: ApiExtractPipe.cs プロジェクト: 0xCM/z0
 ref readonly var line = ref skip(lines, i);
コード例 #19
0
        /// <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);
        }
コード例 #20
0
        /// <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);
        }
コード例 #21
0
 // Use this for initialization
 void Start()
 {
     line = lineObject.GetComponent <lines>();
 }
コード例 #22
0
ファイル: Day9.cs プロジェクト: mschamp/AdventOfCode2020
 grid[(j, i)] = new Position(j, i, lines[i][j] - '0');
コード例 #23
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);
        }
コード例 #24
0
 public void setActualLine(lines line)
 {
     this.actualLine = line;
 }