Ejemplo n.º 1
0
        /// <summary>
        /// 保存wbs代码
        /// 2017/05/04(zhuguanjun)
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public JsonResult SaveWBSCode(WBSCode entity)
        {
            JsonResult jsonreslut = new JsonResult();

            try
            {
                if (string.IsNullOrEmpty(entity.ID))
                {
                    new Repository <WBSCode>().Insert(entity, false);
                }
                else
                {
                    new Repository <WBSCode>().Update(entity, false);
                }
                jsonreslut.result = true;
                jsonreslut.msg    = "保存成功!";
            }
            catch (Exception ex)
            {
                LogHelper.WriteException(ex, LogType.BussinessDLL);
                jsonreslut.result = false;
                jsonreslut.msg    = ex.Message;
            }
            return(jsonreslut);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 递归函数设置子节点的WBSCode编码
        /// 2017/05/08(zhuguanjun)
        /// </summary>
        /// <param name="listNode">节点集合</param>
        /// <param name="pnode">父节点</param>
        /// <param name="step">节点层次</param>
        /// <param name="wbscodeArray">WBSCode数组</param>
        private void SetChildWBSNo(List <PNode> listNode, PNode pnode, int step, DomainDLL.WBSCode[] wbscodeArray)
        {
            step++;
            string parentID = pnode.ID.Substring(0, 36);
            IEnumerable <PNode> children = listNode.Where(t => t.ParentID == parentID).OrderBy(t => t.No);

            if (children.Count <PNode>() < 1)
            {
                return;
            }
            foreach (PNode child in children)
            {
                DomainDLL.WBSCode wc;
                if (step < wbscodeArray.Count())
                {
                    wc = wbscodeArray[step];
                }
                else
                {
                    //wc = wbscodeArray.Last();//2017/05/22(zhuguanjun)
                    wc = new WBSCode {
                        LengthName = 4, Orderr = (int)WBSCodeOrder.Number, BreakName = "-"
                    }
                };
                byte[] array = SetStepNo(wc.LengthName, wc.Orderr, child.No);
                child.WBSNo = pnode.WBSNo + Ascii2Str(array) + wc.BreakName;
                SetChildWBSNo(listNode, child, step, wbscodeArray);
            }
        }