示例#1
0
 public T Clone<T>(bool newID = true) where T : BaseModel, new()
 {
     var proplist = this.GetProperties();
     var result = new T();
     foreach (var item in proplist)
     {
         if (item.PropertyType.FullName == "System.String")
             result.SetProperty(item.Name, this.GetPropertyValue(item.Name));
         else
         {
             var value = this.GetPropertyValue(item.Name);
             if (value == null || value == DBNull.Value || String.IsNullOrEmpty(value.ToString()))
                 result.SetProperty(item.Name, null);
             else if (item.PropertyType.FullName.IndexOf("Int32") >= 0)
                 value = Convert.ToInt32(value);
             else if (item.PropertyType.FullName.IndexOf("Decimal") >= 0)
                 value = Convert.ToDecimal(value);
             else if (item.PropertyType.FullName.IndexOf("Double") >= 0)
                 value = Convert.ToDouble(value);
             else if (item.PropertyType.FullName.IndexOf("DateTime") >= 0)
                 value = Convert.ToDateTime(value);
             result.SetProperty(item.Name, value);
         }
     }
     if (newID)
     {
         if (proplist.FirstOrDefault(d => d.Name == "ID").PropertyType == typeof(string))
             result.SetProperty("ID", GuidHelper.CreateGuid());
     }
     return result;
 }
 /// <summary>
 /// Create a new access token
 /// </summary>
 /// <param name="consumer">The consumer for whom the token is to be created</param>
 /// <param name="requestToken">The request token being swapped for this access token</param>
 /// <returns>An access token</returns>
 public virtual IAccessToken CreateAccessToken(IConsumer consumer, IRequestToken requestToken)
 {
     return(new OAuthAccessToken(
                GuidHelper.CreateGuid().ToString("D"),
                GuidHelper.CreateGuid().ToString("D"),
                consumer,
                TokenStatus.Unauthorized,
                requestToken));
 }
 /// <summary>
 /// Create a new request token
 /// </summary>
 /// <param name="consumer">The consumer for whom the token is to be created</param>
 /// <param name="parameters">The parameters that were sent in the request that
 /// created this token (both OAuth and additional parameters).</param>
 /// <returns>A request token</returns>
 public virtual IRequestToken CreateRequestToken(IConsumer consumer, OAuthParameters parameters)
 {
     return(new OAuthRequestToken(
                GuidHelper.CreateGuid().ToString("D"),
                GuidHelper.CreateGuid().ToString("D"),
                consumer,
                TokenStatus.Unauthorized,
                parameters,
                null,
                new string[] { }));
 }
示例#4
0
        public async Task <JsonResult> InsertOrgAsync()
        {
            var response = new Model.ResponseModel <A_Org>();

            var   data  = Request.Form.Keys.FirstOrDefault();
            A_Org a_Org = new A_Org();

            a_Org    = JsonHelper.ToObject <A_Org>(data);
            a_Org.ID = GuidHelper.CreateGuid();
            int i = await _orgServices.Add(a_Org);

            response.success = true;
            response.msg     = "保存成功!";
            response.data    = a_Org;
            return(Json(response));
        }
        public async Task <string> CreateSession(string id)
        {
            if (!(DbContext is CutieshopContext context))
            {
                throw new FormatException();
            }
            var guid = await GuidHelper.CreateGuid();

            await context.AuthSessions.AddAsync(new AuthSession
            {
                Auth      = id,
                Id        = guid,
                IsDeleted = false
            });

            await context.SaveChangesAsync();

            return(guid);
        }
示例#6
0
        private void addChildDesignInput(S_D_Input child, S_D_Input parent, List <S_D_Input> synData, StringBuilder sb)
        {
            if (string.IsNullOrEmpty(child.ID))
            {
                child.ID = GuidHelper.CreateGuid();
            }
            if (string.IsNullOrEmpty(child.ParentID))
            {
                child.ParentID = parent.ID;
            }
            if (string.IsNullOrEmpty(child.FullID))
            {
                child.FullID = parent.FullID + "." + child.ID;
            }
            if (string.IsNullOrEmpty(child.ProjectInfoID))
            {
                child.ProjectInfoID = parent.ProjectInfoID;
            }
            if (child.SortIndex == 0)
            {
                child.SortIndex = synData.Count(a => a.ParentID == parent.ID) + 1;
            }
            if (!synData.Exists(a => a.ID == child.ID))
            {
                synData.Add(child);
            }
            var param = new DesignInputRequestData();

            param.Id            = child.ID;
            param.name          = child.Name;
            param.FullID        = child.FullID;
            param.parentId      = child.ParentID;
            param.ProjectInfoID = child.ProjectInfoID;
            param.sort          = child.SortIndex;
            param.type          = 8;
            var queueSql = string.Format(this.SaveQueueSqlTmp, SynType.Save.ToString(), "S_D_Input", child.ID, child.Type
                                         , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <DesignInputRequestData>(param).Replace("'", "''")
                                         , this.BaseServerUrl + "folder/edit");

            sb.AppendLine(queueSql);
        }
示例#7
0
        private static void Log(string systemName, string pwd)
        {
            string sql = @"
INSERT INTO [S_A_AuthLog]
           ([ID],[Operation],[OperationTarget],[RelateData],[ModifyUserName],[ModifyTime],[ClientIP])
     VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}')
";

            sql = string.Format(sql
                                , GuidHelper.CreateGuid()
                                , "个人修改密码"
                                , systemName
                                , pwd
                                , ""
                                , DateTime.Now
                                , GetUserIP()
                                );

            SQLHelper sqlHelper = SQLHelper.CreateSqlHelper(ConnEnum.Base);

            sqlHelper.ExecuteNonQuery(sql);
        }
示例#8
0
        private string initVirtualDesignInput(string projectInfoID, DataTable sourceDt, List <S_D_Input> SynData)
        {
            var param = new DesignInputBatchRequestData();

            param.folders  = new List <DesignInputRequestData>();
            param.parentId = projectInfoID;
            var root = new DesignInputRequestData();

            root.Id       = GuidHelper.CreateGuid();
            root.children = new List <DesignInputRequestData>();
            root.name     = "设计输入资料";
            root.type     = 31;
            root.FullID   = root.Id;
            root.parentId = string.Empty;
            root.Code     = "Root";
            root.sort     = 0;
            SynData.Add(new S_D_Input()
            {
                ProjectInfoID = projectInfoID,
                Code          = root.Code,
                ID            = root.Id,
                FullID        = root.FullID,
                ParentID      = root.parentId,
                Name          = root.name,
                Type          = DesignInputType.Virtual.ToString()
            });
            param.folders.Add(root);

            var projectCatagory = new DesignInputRequestData();

            projectCatagory.Id       = GuidHelper.CreateGuid();
            projectCatagory.children = new List <DesignInputRequestData>();
            projectCatagory.name     = "项目资料";
            projectCatagory.type     = 8;
            projectCatagory.sort     = 0;
            projectCatagory.FullID   = root.Id + "." + projectCatagory.Id;
            projectCatagory.parentId = root.Id;
            projectCatagory.Code     = "Project";
            SynData.Add(new S_D_Input()
            {
                ProjectInfoID = projectInfoID,
                ID            = projectCatagory.Id,
                ParentID      = projectCatagory.parentId,
                FullID        = projectCatagory.FullID,
                Name          = projectCatagory.name,
                Code          = projectCatagory.Code,
                Type          = DesignInputType.Virtual.ToString()
            });
            root.children.Add(projectCatagory);

            var types = sourceDt.Select(" ProjectInfoID='" + projectInfoID + "'", "InputTypeIndex asc")
                        .Select(d => new { Catagory = d["Catagory"].ToString(), Type = d["InputType"].ToString(), SortIndex = d["InputTypeIndex"] }).Distinct().ToList();

            foreach (var item in types.Where(a => a.Catagory == projectCatagory.Code).ToList())
            {
                var typeCatagory = new DesignInputRequestData();
                typeCatagory.Id       = GuidHelper.CreateGuid();
                typeCatagory.name     = item.Type;
                typeCatagory.type     = 8;
                typeCatagory.sort     = 0;
                typeCatagory.FullID   = root.Id + "." + projectCatagory.Id + "." + typeCatagory.Id;
                typeCatagory.parentId = projectCatagory.Id;
                typeCatagory.Code     = item.Catagory;
                if (item.SortIndex != null && item.SortIndex != DBNull.Value)
                {
                    typeCatagory.sort = Convert.ToInt32(item.SortIndex);
                }
                SynData.Add(new S_D_Input()
                {
                    ProjectInfoID = projectInfoID,
                    ID            = typeCatagory.Id,
                    ParentID      = typeCatagory.parentId,
                    FullID        = typeCatagory.FullID,
                    Name          = typeCatagory.name,
                    Code          = typeCatagory.Code,
                    Type          = DesignInputType.Virtual.ToString()
                });
                projectCatagory.children.Add(typeCatagory);
            }
            var projectMajors = this.SQLHelpeProject.ExecuteScalar("select Major from S_I_ProjectInfo where id='" + projectInfoID + "'");

            if (projectMajors != DBNull.Value && projectMajors != null && !string.IsNullOrEmpty(projectMajors.ToString()))
            {
                var majorList = JsonHelper.ToList(projectMajors.ToString());
                var n         = 1;
                foreach (var majorDic in majorList)
                {
                    var majorCatagory = new DesignInputRequestData();
                    majorCatagory.Id       = GuidHelper.CreateGuid();
                    majorCatagory.children = new List <DesignInputRequestData>();
                    majorCatagory.name     = majorDic.GetValue("Name");
                    majorCatagory.type     = 8;
                    majorCatagory.FullID   = root.Id + "." + majorCatagory.Id;
                    majorCatagory.parentId = root.Id;
                    majorCatagory.Code     = majorDic.GetValue("Value");
                    majorCatagory.sort     = n++;
                    SynData.Add(new S_D_Input()
                    {
                        ProjectInfoID = projectInfoID,
                        ID            = majorCatagory.Id,
                        ParentID      = majorCatagory.parentId,
                        FullID        = majorCatagory.FullID,
                        Name          = majorCatagory.name,
                        Code          = majorCatagory.Code,
                        Type          = DesignInputType.Virtual.ToString()
                    });
                    root.children.Add(majorCatagory);

                    foreach (var item in types.Where(a => a.Catagory == majorCatagory.Code).ToList())
                    {
                        var typeCatagory = new DesignInputRequestData();
                        typeCatagory.Id       = GuidHelper.CreateGuid();
                        typeCatagory.name     = item.Type;
                        typeCatagory.type     = 8;
                        typeCatagory.sort     = 0;
                        typeCatagory.FullID   = root.Id + "." + majorCatagory.Id + "." + typeCatagory.Id;
                        typeCatagory.parentId = majorCatagory.Id;
                        typeCatagory.Code     = item.Catagory;
                        if (item.SortIndex != null && item.SortIndex != DBNull.Value)
                        {
                            typeCatagory.sort = Convert.ToInt32(item.SortIndex);
                        }
                        SynData.Add(new S_D_Input()
                        {
                            ProjectInfoID = projectInfoID,
                            ID            = typeCatagory.Id,
                            ParentID      = typeCatagory.parentId,
                            FullID        = typeCatagory.FullID,
                            Name          = typeCatagory.name,
                            Code          = typeCatagory.Code,
                            Type          = DesignInputType.Virtual.ToString()
                        });
                        majorCatagory.children.Add(typeCatagory);
                    }
                }
            }
            var queueSql = string.Format(this.SaveQueueSqlTmp, SynType.BatchSave.ToString(), "S_D_Input", "", ""
                                         , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <DesignInputBatchRequestData>(param).Replace("'", "''")
                                         , this.BaseServerUrl + "folder/editbatch");

            return(queueSql);
        }
        public virtual ActionResult CoreView()
        {
            try
            {
                string ID           = Request.Query["ID"];
                string tmplCode     = Request.Query["tmplCode"];
                string IsPreView    = Request.Query["IsPreView"];
                string UpperVersion = Request.Query["UpperVersion"];

                //前台用的判断数据
                ViewBag.tmplCode     = tmplCode;
                ViewBag.IsPreView    = IsPreView;
                ViewBag.IsPreView    = IsPreView;
                ViewBag.UpperVersion = UpperVersion;
                ViewBag.FlowCode     = Request.Query["FlowCode"];
                ViewBag.TaskExecID   = Request.Query["TaskExecID"];

                //TODO  流程升版
                UIBuilder        uiFO    = new UIBuilder();
                string           sql     = "SELECT  * FROM S_UI_Form WITH(NOLOCK) ";
                List <S_UI_Form> uiLists = SQLHelper.CreateSqlHelper().ExecuteList <S_UI_Form>(sql).Where(c => c.Code == tmplCode).ToList();
                S_UI_Form        formDef = uiLists.FirstOrDefault();

                bool      isNew      = false;
                DataTable formDataDT = null;
                if (IsPreView == "True")
                {
                    formDataDT = new DataTable();
                    var row = formDataDT.NewRow();
                    formDataDT.Rows.Add(row);
                }
                else
                {
                    if (string.IsNullOrEmpty(UpperVersion))
                    {
                        sql = string.Format("select count(ID) from {0} where ID='{1}'", formDef.TableName, ID);
                        SQLHelper sqlHelper = SQLHelper.CreateSqlHelper(formDef.ConnName);
                        var       count     = Convert.ToInt32(sqlHelper.ExecuteScalar(sql));
                        if (count == 0)
                        {
                            isNew = true;
                        }
                        formDataDT = GetModelDT(formDef, ID);
                    }
                    else
                    {
                        isNew      = true;
                        formDataDT = GetModelDT(formDef, UpperVersion, true);
                        formDataDT.Rows[0]["ID"]            = GuidHelper.CreateGuid();
                        formDataDT.Rows[0]["FlowPhase"]     = "";
                        formDataDT.Rows[0]["VersionNumber"] = "";
                    }
                    //TODO Import AfterGetData(formDataDT, isNew, UpperVersion);
                }
                ViewBag.FormData = JsonHelper.ToJson(formDataDT).Trim('[', ']');
                var fieldInfo = JsonHelper.ToJson(uiFO.GetFieldInfo(formDef));
                if (fieldInfo == "[]" || fieldInfo == "")
                {
                    ViewBag.FieldInfo = "{}";
                }
                else
                {
                    ViewBag.FieldInfo = fieldInfo.Trim('[', ']');
                }

                ViewBag.FormHtml   = uiFO.CreateFormHtml(formDef);
                ViewBag.HiddenHtml = uiFO.CreateFormHiddenHtml(formDef);
                //此处允许开发者在自定义的controller中增加自己需要的脚本,同平台的脚本一起绘制在PageView中
                if (ViewBag.Script != null && !String.IsNullOrEmpty(ViewBag.Script))
                {
                    ViewBag.Script += "\n " + uiFO.CreateFormScript(formDef);
                }
                else
                {
                    ViewBag.Script = uiFO.CreateFormScript(formDef);
                }

                #region 子表大数据时,需要配置表单虚滚动加载
                var items = JsonHelper.ToObject <List <FormItem> >(formDef.Items);
                ViewBag.VirtualScroll = false.ToString().ToLower();
                var subTableList = items.Where(c => c.ItemType == "SubTable").ToList();
                foreach (var subTableItem in subTableList)
                {
                    if (String.IsNullOrEmpty(subTableItem.Settings))
                    {
                        continue;
                    }
                    var dic = JsonHelper.ToObject(subTableItem.Settings);
                    var dicSubTableSettings = JsonHelper.ToObject(dic["formData"].ToString());
                    if (dicSubTableSettings.GetValue("IsVirtualScroll") == "true")
                    {
                        ViewBag.VirtualScroll = true.ToString().ToLower();
                        break;
                    }
                }
                #endregion

                if (ViewBag.DataSource == null)
                {
                    var defaultValueRows = uiFO.GetDefaultValueDic(formDef.DefaultValueSettings);

                    #region 数据源到前台
                    StringBuilder sb = new StringBuilder();
                    foreach (var key in defaultValueRows.Keys)
                    {
                        var guid = new Guid();
                        if (Guid.TryParse(key, out guid) == false)
                        {
                            sb.AppendFormat("\n var {0}={1}", key, JsonHelper.ToJson(defaultValueRows[key]));
                        }
                    }
                    ViewBag.DataSource = sb.ToString();
                    #endregion
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(View());
        }
示例#10
0
        public DataTable GetModelDT(S_UI_Form formInfo, string id, bool isUpVersion = false, string taskExecID = "", string code = "")
        {
            UIBuilder uiFO      = new UIBuilder();
            SQLHelper sqlHelper = SQLHelper.CreateSqlHelper(formInfo.ConnName);

            var       items = JsonHelper.ToObject <List <FormItem> >(formInfo.Items);
            string    sql   = string.Format("select * from {0} where ID='{1}'", formInfo.TableName, id);
            DataTable dt    = sqlHelper.ExecuteDataTable(sql);

            //获取数据后处理加密字段
            if (System.Configuration.ConfigurationManager.AppSettings["FieldEncryption"] == "True")
            {
                foreach (var item in items)
                {
                    if (item.FieldType == "varbinary(500)")
                    {
                        string _sql = @"
OPEN SYMMETRIC KEY SymmetricByCert
DECRYPTION BY CERTIFICATE JinHuiCertificate 
";
                        _sql += string.Format("select convert(nvarchar(500), DecryptByKey({1})) from {0} where ID='{2}'", formInfo.TableName, item.Code, id);
                        var obj = sqlHelper.ExecuteScalar(_sql);
                        if (dt.Rows.Count > 0)
                        {
                            dt.Columns.Remove(item.Code);
                            dt.Columns.Add(item.Code);
                            dt.Rows[0][item.Code] = obj.ToString();
                        }
                    }
                }
            }
            Dictionary <string, DataTable> defaultValueRows = null;

            if (dt.Rows.Count == 0)
            {
                defaultValueRows = uiFO.GetDefaultValueDic(formInfo.DefaultValueSettings);
            }
            else
            {
                defaultValueRows = uiFO.GetDefaultValueDic(formInfo.DefaultValueSettings, dt.Rows[0]);
            }

            #region 数据默认值
            StringBuilder sb = new StringBuilder();
            foreach (var key in defaultValueRows.Keys)
            {
                var guid = new Guid();
                if (Guid.TryParse(key, out guid) == false)
                {
                    sb.AppendFormat("\n var {0}={1}", key, JsonHelper.ToJson(defaultValueRows[key]));
                }
            }
            ViewBag.DataSource = sb.ToString();
            #endregion

            if (dt.Rows.Count == 0 || isUpVersion)
            {
                #region 新对象默认值

                DataRow row = null;
                if (dt.Rows.Count == 0)
                {
                    row = dt.NewRow();
                    dt.Rows.Add(row);
                }
                else
                {
                    row = dt.Rows[0];
                }

                row["ID"] = string.IsNullOrEmpty(id) ? GuidHelper.CreateGuid() : id;

                //包含默认值设置则初始化默认值
                items.Where(c => !string.IsNullOrEmpty(c.DefaultValue)).ToList().ForEach(d =>
                {
                    if (d.ItemType == "SubTable")
                    {
                        //子表
                        if (!dt.Columns.Contains(d.Code))
                        {
                            dt.Columns.Add(d.Code);
                        }

                        row[d.Code] = uiFO.GetDefaultValue(d.Code, d.DefaultValue, defaultValueRows);
                    }
                    else if (!dt.Columns.Contains(d.Code))
                    {
                        return;
                    }
                    else if ((d.ItemType == "ButtonEdit" || d.ItemType == "ComboBox") && d.DefaultValue.Split(',').Count() == 2)
                    {
                        //键值控件
                        string v1 = uiFO.GetDefaultValue(d.Code, d.DefaultValue.Split(',')[0], defaultValueRows);
                        string v2 = uiFO.GetDefaultValue(d.Code, d.DefaultValue.Split(',')[1], defaultValueRows);
                        if (!string.IsNullOrEmpty(v1) && v1.Contains('{') == false)
                        {
                            row[d.Code] = v1;
                        }
                        if (!string.IsNullOrEmpty(v2) && v2.Contains('{') == false)
                        {
                            var fieldName = "";
                            fieldName     = d.Code + "Name";
                            if (!String.IsNullOrWhiteSpace(d.Settings))
                            {
                                var settings = JsonHelper.ToObject(d.Settings);
                                var txtName  = settings.GetValue("textName");
                                if (!String.IsNullOrEmpty(txtName))
                                {
                                    fieldName = txtName;
                                }
                            }
                            row[fieldName] = v2;
                        }
                    }
                    else
                    {
                        //单值控件
                        string v = uiFO.GetDefaultValue(d.Code, d.DefaultValue, defaultValueRows);
                        if (!string.IsNullOrEmpty(v) && v.Contains('{') == false)
                        {
                            row[d.Code] = v;
                        }
                    }
                });

                #endregion

                #region 升版子表无默认值数据取历史版本
                foreach (var item in items)
                {
                    if (item.ItemType != "SubTable")
                    {
                        continue;
                    }

                    if (!dt.Columns.Contains(item.Code))
                    {
                        dt.Columns.Add(item.Code);
                    }
                    if (!string.IsNullOrEmpty(Convert.ToString(dt.Rows[0][item.Code])))
                    {
                        sql = string.Format("select * from {0}_{1} where {0}ID='{2}' order by SortIndex", formInfo.TableName, item.Code, id);
                        DataTable dtSubTable = sqlHelper.ExecuteDataTable(sql);
                        if (dtSubTable.Rows.Count > 0)
                        {
                            dt.Rows[0][item.Code] = JsonHelper.ToJson(dtSubTable);
                        }
                    }
                }

                #endregion

                //设置默认流水号
                if (dt.Columns.Contains("SerialNumber") && !string.IsNullOrEmpty(formInfo.SerialNumberSettings) && !isUpVersion)
                {
                    var    serialNumberDic = JsonHelper.ToObject(formInfo.SerialNumberSettings);
                    string userMode        = "ONLYGET";//默认值兼容老项目没有配置该选项
                    if (serialNumberDic.ContainsKey("UserSerialNumber"))
                    {
                        userMode = serialNumberDic["UserSerialNumber"] == null ? "" : serialNumberDic["UserSerialNumber"].ToString().Trim().ToUpper();
                    }

                    if (userMode != "NONE" && userMode != "FLOWEND")
                    {
                        bool isAutoIncrease = userMode.Equals("ONLYGET");

                        row["SerialNumber"] = GetSerialNumber(formInfo.Code, formInfo.SerialNumberSettings, isAutoIncrease, row, null);
                    }
                }
            }
            else //获取子表数据
            {
                #region 获取子表数据
                foreach (var item in items)
                {
                    if (item.ItemType != "SubTable")
                    {
                        continue;
                    }

                    //表单子表支持加密字段
                    if (System.Configuration.ConfigurationManager.AppSettings["FieldEncryption"] == "True")
                    {
                        var           subTableSettings = JsonHelper.ToObject(item.Settings);
                        var           subTableItems    = JsonHelper.ToObject <List <FormItem> >(subTableSettings["listData"].ToString());
                        StringBuilder sbSubTableFields = new StringBuilder();
                        sbSubTableFields.AppendFormat("ID");
                        foreach (var subItem in subTableItems)
                        {
                            if (subItem.FieldType == "")
                            {
                            }
                            else if (subItem.FieldType == "varbinary(500)")
                            {
                                sbSubTableFields.AppendFormat(",{0}=convert(nvarchar(500), DecryptByKey({0})) ", subItem.Code);
                            }
                            else
                            {
                                sbSubTableFields.Append("," + subItem.Code);
                            }

                            if (subItem.ItemType == "ButtonEdit")
                            {
                                sbSubTableFields.Append("," + subItem.Code + "Name");
                            }
                            else if (subItem.ItemType == "ComboBox" && !String.IsNullOrEmpty(subItem.Settings))
                            {
                                var subSetting = JsonHelper.ToObject(subItem.Settings);
                                if (!String.IsNullOrEmpty(subSetting.GetValue("textName")))
                                {
                                    sbSubTableFields.Append("," + subSetting.GetValue("textName"));
                                }
                            }
                        }

                        sql = string.Format("select {3} from {0}_{1} where {0}ID='{2}' order by SortIndex", formInfo.TableName, item.Code, id, sbSubTableFields);

                        //子表支持加密
                        if (System.Configuration.ConfigurationManager.AppSettings["FieldEncryption"] == "True")
                        {
                            sql = @"
OPEN SYMMETRIC KEY SymmetricByCert
DECRYPTION BY CERTIFICATE JinHuiCertificate 
" + sql;
                        }
                    }
                    else
                    {
                        sql = string.Format("select * from {0}_{1} where {0}ID='{2}' order by SortIndex", formInfo.TableName, item.Code, id);
                    }



                    DataTable dtSubTable = sqlHelper.ExecuteDataTable(sql);

                    if (!dt.Columns.Contains(item.Code))
                    {
                        dt.Columns.Add(item.Code);
                    }
                    dt.Rows[0][item.Code] = JsonHelper.ToJson(dtSubTable);
                }

                #endregion
            }

            //计算值(增加表单表没有的字段) 2015-6-16 新增功能
            foreach (var item in items)
            {
                if (dt.Columns.Contains(item.Code))
                {
                    continue;
                }
                if (string.IsNullOrEmpty(item.DefaultValue))
                {
                    continue;
                }

                dt.Columns.Add(item.Code);

                string v = uiFO.GetDefaultValue(item.Code, item.DefaultValue, defaultValueRows);
                if (!string.IsNullOrEmpty(v) && v.Contains('{') == false)
                {
                    dt.Rows[0][item.Code] = v;
                }
            }

            return(dt);
        }
示例#11
0
        /// <summary>
        /// 发送提醒
        /// </summary>
        /// <param name="alarmTitle">提醒标题</param>
        /// <param name="alarmContent">正文内容</param>
        /// <param name="alarmUrl">事务地址</param>
        /// <param name="ownerName">提醒人</param>
        /// <param name="ownerID">提醒人ID</param>
        /// <param name="deadlineTime">提醒截止时间(过期日期)</param>
        /// <param name="alarmType">提醒模块名,比如经营提醒、OA提醒等等文本</param>
        /// <param name="projectInfoID">关联ID</param>
        /// <param name="formCode">关联Code</param>
        /// <param name="sendUser">发送人</param>
        /// <param name="isImportant">是否重要,默认否.</param>
        /// <param name="isUrgency">是否紧急,默认否.</param>
        public static void SendAlarm(string alarmTitle, string alarmContent, string alarmUrl, string ownerName, string ownerID, DateTime?deadlineTime, string alarmType, string projectInfoID, string formCode, UserInfo sendUser, Dictionary <string, object> dic = null, bool isImportant = false, bool isUrgency = false)
        {
            if (dic != null)
            {
                Regex reg = new Regex("\\{[0-9a-zA-Z_\u4e00-\u9faf]*\\}");
                alarmTitle = reg.Replace(alarmTitle, (Match m) =>
                {
                    string value = m.Value.Trim('{', '}');

                    if (dic != null && dic.ContainsKey(value))
                    {
                        return(dic[value].ToString());
                    }
                    else
                    {
                        return(value);
                    }
                });
                alarmContent = reg.Replace(alarmContent, (Match m) =>
                {
                    string value = m.Value.Trim('{', '}');

                    if (dic != null && dic.ContainsKey(value))
                    {
                        return(dic[value].ToString());
                    }
                    else
                    {
                        return(value);
                    }
                });
                alarmUrl = reg.Replace(alarmUrl, (Match m) =>
                {
                    string value = m.Value.Trim('{', '}');

                    if (dic != null && dic.ContainsKey(value))
                    {
                        return(dic[value].ToString());
                    }
                    else
                    {
                        return(value);
                    }
                });
            }

            alarmTitle   = alarmTitle.Replace("'", "''");
            alarmContent = alarmContent.Replace("'", "''");

            string alarmID = GuidHelper.CreateGuid();

            string userID   = "";
            string userName = "******";

            if (sendUser != null)
            {
                userID   = sendUser.UserID;
                userName = sendUser.UserName;
            }

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(alarmSql,
                            alarmID,
                            isImportant ? "1" : "0",
                            isUrgency ? "1" : "0",
                            alarmType,
                            alarmTitle,
                            alarmContent,
                            alarmUrl,
                            ownerName,
                            ownerID,
                            DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            deadlineTime == null ? "null" : Convert.ToDateTime(deadlineTime).ToString("yyyy-MM-dd HH:mm:ss"),
                            userName,
                            userID,
                            projectInfoID,
                            formCode);

            SQLHelper sqlHelper = SQLHelper.CreateSqlHelper(ConnEnum.Base);

            if (Config.Constant.IsOracleDb)
            {
                string sql = sb.ToString();
                sql = sql.Replace("\r\n", "").Replace("\n", "");
                sql = "begin " + sql + " end;";
                sqlHelper.ExecuteNonQuery(sql);
            }
            else
            {
                sqlHelper.ExecuteNonQuery(sb.ToString());
            }
        }
示例#12
0
        public override void AfterGetData(Dictionary <string, object> data)
        {
            if (this.Task.BusinessType != BusinessType.GetData.ToString())
            {
                return;
            }
            var           projectInfoID      = this.Task.BusinessID;
            var           productDt          = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_E_Product where ProjectInfoID='" + projectInfoID + "'");
            var           versionDt          = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_E_ProductVersion where ProjectInfoID='" + projectInfoID + "'");
            var           dbsDt              = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_D_DBS where ProjectInfoID='" + projectInfoID + "' and DBSType='OEMMapping'");
            var           documentDt         = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_D_Document where ProjectInfoID='" + projectInfoID + "'");
            var           documentVersisonDt = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_D_DocumentVersion where DocumentID in ( select ID from S_D_Document where ProjectInfoID='" + projectInfoID + "')");
            StringBuilder sb           = new StringBuilder();
            StringBuilder filesb       = new StringBuilder();
            var           errorList    = new List <Dictionary <string, string> >();
            var           folders      = JsonHelper.ToList(data.GetValue("folders")); //目录集合
            var           files        = JsonHelper.ToList(data.GetValue("files"));   //文件集合
            var           oemFolderIDs = new List <string>();

            #region 其他资料逻辑 生成DBS
            //生成DBS 及 Document
            var oemDBSRoot = dbsDt.Select("DBSCode='OEM_Szsow'").FirstOrDefault();
            if (oemDBSRoot == null)
            {
                errorList.Add(new Dictionary <string, string>()
                {
                    { "Msg", "同步DBS失败,未找到编号为OEM_Szsow的DBS文件夹" }
                });
            }
            else
            {
                var rootFolder = folders.FirstOrDefault(a => a.GetValue("FolderType") == Convert.ToInt32(FolderTypeEnum.Project).ToString());
                if (rootFolder == null)
                {
                    errorList.Add(new Dictionary <string, string>()
                    {
                        { "Msg", "同步DBS失败,未找FolderType=1的公共区文件夹(根节点)" }
                    });
                }
                else
                {
                    var allFolderList  = folders.Where(a => a.GetValue("FolderType") == Convert.ToInt32(FolderTypeEnum.Folder).ToString()).ToList();
                    var childrenFolder = allFolderList.Where(a => a.GetValue("PID") == rootFolder.GetValue("ID")).ToList();
                    foreach (var item in childrenFolder)
                    {
                        createDbs(item, allFolderList, oemDBSRoot, dbsDt, sb);//递归生成DBS目录及下层文件
                    }
                    //删除逻辑
                    oemFolderIDs = allFolderList.Select(a => a.GetValue("ID")).ToList();
                    var epmIDs = dbsDt.AsEnumerable().Select(c => c.Field <string>("ID")).ToList();
                    epmIDs.Remove(oemDBSRoot["ID"].ToString());
                    var deleteIDs = epmIDs.Where(a => !oemFolderIDs.Contains(a)).ToArray();
                    if (deleteIDs.Length > 0)
                    {
                        string dbsDelSql = "delete from S_D_DBS where id in ('" + string.Join("','", deleteIDs) + "')";
                        sb.AppendLine(dbsDelSql);
                    }
                }
            }
            #endregion
            #region 成果绑定附件 及生成 document数据
            foreach (var item in files)
            {
                if (string.IsNullOrEmpty(item.GetValue("file")))
                {
                    errorList.Add(new Dictionary <string, string>()
                    {
                        { "Msg", "file为null" }
                    });
                    continue;
                }
                var file = JsonHelper.ToObject(item.GetValue("file"));

                #region 生成document数据
                if (oemFolderIDs.Contains(file.GetValue("FolderID")))
                {
                    var dbsRow = dbsDt.Select("ID='" + file.GetValue("FolderID") + "'").FirstOrDefault();
                    if (dbsRow == null)
                    {
                        errorList.Add(new Dictionary <string, string>()
                        {
                            { "FolderID", file.GetValue("FolderID") }, { "Msg", "生成document数据失败,dbsRow为null" }
                        });
                    }
                    else
                    {
                        var fileID      = file.GetValue("ID");
                        var documentRow = documentDt.Select("ID='" + fileID + "'").FirstOrDefault();
                        if (documentRow == null)
                        {
                            documentRow = documentDt.NewRow();
                            documentDt.Rows.Add(documentRow);
                            documentRow["ID"]            = fileID;
                            documentRow["ProjectInfoID"] = projectInfoID;
                            documentRow["DBSID"]         = dbsRow["ID"];
                            documentRow["DBSFullID"]     = dbsRow["FullID"];
                            documentRow["State"]         = "Normal";
                            documentRow["CreateDate"]    = DataHelper.FormatTime(file.GetValue("CreateDate"));
                            documentRow["CreateUser"]    = file.GetValue("LockUserName");
                            documentRow["CreateUserID"]  = file.GetValue("LockUserID");
                            documentRow["Version"]       = 1;
                        }
                        var documentName    = file.GetValue("Name");
                        var documentMD5Code = file.GetValue("MD5");

                        //当md5不同时才进入文件队列,调用文件下载服务
                        if (documentRow["FontFile"] == null || documentRow["FontFile"] == DBNull.Value || documentRow["FontFile"].ToString() != documentMD5Code)
                        {
                            #region 生成待同步文件队列

                            if (!string.IsNullOrEmpty(documentMD5Code) && !string.IsNullOrEmpty(documentName))
                            {
                                string fileTaskSql = @" insert into S_OEM_TaskFileList(OEMCode,BusinessCode,BusinessID,CreateTime,MD5Code,FileName) 
                                        values( '{0}','{1}','{2}','{3}','{4}','{5}')";
                                fileTaskSql = string.Format(fileTaskSql, Task.OEMCode, Task.BusinessCode + ".document", fileID, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), documentMD5Code, documentName.Replace("'", "''"));
                                filesb.AppendLine(fileTaskSql);
                            }
                            #endregion
                        }

                        documentRow["Name"]     = documentName;
                        documentRow["FontFile"] = documentMD5Code;
                        //documentRow["Code"] = file.GetObject("Serial");
                        //documentRow["MainFiles"] = file.GetObject("Serial");
                        documentRow["ModifyUserID"] = file.GetValue("LockUserID");
                        documentRow["ModifyUser"]   = file.GetValue("LockUserName");
                        documentRow["ModifyDate"]   = DataHelper.FormatTime(file.GetValue("LockedDate"));
                        string documentSql = SQLHelper.CreateUpdateSql("S_D_Document", documentRow);
                        sb.AppendLine(documentSql);

                        //documentVersion
                        var documentVersionRow = documentVersisonDt.Select("DocumentID='" + fileID + "'").FirstOrDefault();
                        if (documentVersionRow == null)
                        {
                            documentVersionRow = documentVersisonDt.NewRow();
                            documentVersisonDt.Rows.Add(documentVersionRow);
                            documentVersionRow["ID"]         = GuidHelper.CreateGuid();
                            documentVersionRow["DocumentID"] = fileID;
                        }
                        foreach (DataColumn col in documentVersisonDt.Columns)
                        {
                            if (col.ColumnName == "ID")
                            {
                                continue;
                            }
                            if (productDt.Columns.Contains(col.ColumnName))
                            {
                                documentVersionRow[col] = documentRow[col.ColumnName];
                            }
                        }
                        string versionSql = SQLHelper.CreateUpdateSql("S_D_DocumentVersion", documentVersionRow);
                        sb.AppendLine(versionSql);
                    }
                }
                #endregion

                #region 成果绑定附件
                var sourceFileId = item.GetValue("sourceFileId");
                var sourceMd5    = item.GetValue("sourceMd5");
                if (string.IsNullOrEmpty(sourceFileId) || string.IsNullOrEmpty(sourceMd5))
                {
                    continue;
                }
                if (string.IsNullOrEmpty(item.GetValue("attachInfo")))
                {
                    errorList.Add(new Dictionary <string, string>()
                    {
                        { "sourceFileId", sourceFileId }, { "Msg", "attachInfo为null" }
                    });
                    continue;
                }
                var frameInfo  = JsonHelper.ToObject(item.GetValue("attachInfo"));
                var drawingNo  = frameInfo.GetValue("图号");
                var ext        = file.GetValue("Extension");
                var fileName   = file.GetValue("Name");
                var md5Code    = file.GetValue("MD5");
                var productRow = productDt.Select("SwfFile='" + sourceFileId + "' and ShotSnap='" + sourceMd5 + "'  and Code='" + drawingNo + "' ").FirstOrDefault();
                if (productRow == null)
                {
                    continue;
                }
                //当md5不同时才进入文件队列,调用文件下载服务
                var PlotFileDic = new Dictionary <string, string>()
                {
                };
                if (productRow["PlotFile"] != null && productRow["PlotFile"] != DBNull.Value && !string.IsNullOrEmpty(productRow["PlotFile"].ToString()))
                {
                    PlotFileDic = JsonHelper.ToObject <Dictionary <string, string> >(productRow["PlotFile"].ToString());
                }
                if (productRow["PlotFile"] == null || productRow["PlotFile"] == DBNull.Value || PlotFileDic.GetValue(ext) != md5Code)
                {
                    var detailID = productRow["ID"].ToString();
                    PlotFileDic.SetValue(ext, md5Code);
                    productRow["PlotFile"] = JsonHelper.ToJson(PlotFileDic);
                    sb.AppendLine(SQLHelper.CreateUpdateSql("S_E_Product", productRow));
                    var versionRow = versionDt.Select("ProductID='" + detailID + "'").FirstOrDefault();
                    versionRow["PlotFile"] = productRow["PlotFile"];
                    sb.AppendLine(SQLHelper.CreateUpdateSql("S_E_ProductVersion", versionRow));
                    #region 生成待同步文件队列

                    if (!string.IsNullOrEmpty(md5Code) && !string.IsNullOrEmpty(fileName))
                    {
                        string fileTaskSql = @" insert into S_OEM_TaskFileList(OEMCode,BusinessCode,BusinessID,CreateTime,MD5Code,FileName) 
                                        values( '{0}','{1}','{2}','{3}','{4}','{5}')";
                        fileTaskSql = string.Format(fileTaskSql, Task.OEMCode, Task.BusinessCode + ext, detailID, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), md5Code, fileName.Replace("'", "''"));
                        filesb.AppendLine(fileTaskSql);
                    }
                    #endregion
                }
                #endregion
            }
            #endregion
            if (errorList.Count > 0)
            {
                this.Task.ErrorMsg = JsonHelper.ToJson(errorList);
            }
            if (sb.Length > 0)
            {
                this.BusinessSQLHelper.ExecuteNonQuery(sb.ToString());
            }
            if (filesb.Length > 0)
            {
                this.BaseSQLHelper.ExecuteNonQuery(filesb.ToString());
            }
        }
示例#13
0
        public JsonResult GetTreeList(string ListIDs)
        {
            var versionList = ListIDs.Split(',');
            var result      = new DataTable();

            result.Columns.Add("ID");
            result.Columns.Add("ParentID");
            result.Columns.Add("Code");
            result.Columns.Add("ParentCode");
            result.Columns.Add("Name");
            result.Columns.Add("NodeType");
            result.Columns.Add("SortIndex");
            result.Columns.Add("Diff");
            foreach (var item in versionList)
            {
                result.Columns.Add(item + "_TotalValue", typeof(decimal));
                result.Columns.Add(item + "_UnitPrice", typeof(decimal));
                result.Columns.Add(item + "_Quantity", typeof(decimal));
            }

            string sql       = @"select CBSID as ID,Name,Code,CBSParentID as ParentID,SortIndex,NodeType,S_EP_BudgetVersionID,
                  UnitPrice,Quantity,TotalValue from S_EP_BudgetVersion_Detail where S_EP_BudgetVersionID in ('{0}') ";
            var    dataTable = this.SQLDB.ExecuteDataTable(String.Format(sql, ListIDs.Replace(",", "','")));
            var    totalRow  = result.NewRow();

            totalRow["Code"]       = GuidHelper.CreateGuid();
            totalRow["ID"]         = GuidHelper.CreateGuid();
            totalRow["ParentID"]   = "";
            totalRow["ParentCode"] = "";
            totalRow["Name"]       = "预算单元";
            totalRow["NodeType"]   = "Root";
            totalRow["SortIndex"]  = "-100";
            totalRow["Diff"]       = false.ToString();
            result.Rows.Add(totalRow);
            foreach (DataRow row in dataTable.Rows)
            {
                if (row["S_EP_BudgetVersionID"] == null || row["S_EP_BudgetVersionID"] == DBNull.Value || String.IsNullOrEmpty(row["S_EP_BudgetVersionID"].ToString()))
                {
                    continue;
                }
                var versionID  = row["S_EP_BudgetVersionID"].ToString();
                var resultRows = result.Select("Code='" + row["Code"] + "'");
                var parentRows = dataTable.Select("ID = " + "'" + row["ParentID"].ToString() + "'");

                if (resultRows.Length == 0)
                {
                    var resultRow = result.NewRow();
                    resultRow["ID"]        = row["ID"];
                    resultRow["Code"]      = row["Code"];
                    resultRow["Name"]      = row["Name"];
                    resultRow["NodeType"]  = row["NodeType"];
                    resultRow["SortIndex"] = row["SortIndex"];
                    resultRow["Diff"]      = false.ToString();


                    if (parentRows.Length == 0)
                    {
                        resultRow["ParentID"]   = totalRow["ID"];
                        resultRow["ParentCode"] = totalRow["Code"];
                    }
                    else
                    {
                        resultRow["ParentID"]   = row["ParentID"];
                        resultRow["ParentCode"] = parentRows[0]["Code"];
                    }
                    resultRow[versionID + "_TotalValue"] = row["TotalValue"];
                    resultRow[versionID + "_UnitPrice"]  = row["UnitPrice"];
                    resultRow[versionID + "_Quantity"]   = row["Quantity"];
                    result.Rows.Add(resultRow);
                }
                else
                {
                    var resultRow = resultRows.FirstOrDefault();
                    resultRow[versionID + "_TotalValue"] = row["TotalValue"];
                    resultRow[versionID + "_UnitPrice"]  = row["UnitPrice"];
                    resultRow[versionID + "_Quantity"]   = row["Quantity"];
                }

                if (parentRows.Length == 0)
                {
                    decimal totalTmp = 0, tmp = 0;
                    decimal.TryParse(totalRow[versionID + "_TotalValue"].ToString(), out totalTmp);
                    decimal.TryParse(row["TotalValue"].ToString(), out tmp);
                    totalRow[versionID + "_TotalValue"] = totalTmp + tmp;
                }
            }

            foreach (DataRow item in result.Rows)
            {
                var lastTotalValue = -1m;
                for (int i = 0; i < versionList.Length; i++)
                {
                    var field      = versionList[i] + "_TotalValue";
                    var totalValue = item[field] == null || item[field] == DBNull.Value ? 0m : Convert.ToDecimal(item[field]);
                    if (totalValue != lastTotalValue && (lastTotalValue >= 0))
                    {
                        item["Diff"] = true.ToString();
                        break;
                    }
                    lastTotalValue = totalValue;
                }
            }
            var rows     = result.Select();
            var resultDt = result.Clone();

            resultDt.Clear();
            foreach (var item in rows)
            {
                resultDt.ImportRow(item);
            }
            return(Json(resultDt));
        }
示例#14
0
        //校审意见库分类
        public void CreateCatalogQueue()
        {
            var sourceSql = @"select distinct Major,Catalog from S_AE_AuditAdvice
where Major is not null and Catalog is not null and  Level='System'";

            //取最近的同步记录时间,到当前时间的差异数据
            var synData = this.SQLHelperInterface.ExecuteList <S_AE_AuditAdviceCatalog>("select * from S_AE_AuditAdviceCatalog where State='Normal' ");
            //数据库中所有专业、分类
            var alldt = this.SQLHelpeProject.ExecuteDataTable(sourceSql).AsEnumerable();

            #region Remove
            var removeSb   = new StringBuilder();
            var removeUrl  = this.BaseServerUrl + "Article/DeleteArticle";
            var removeList = new List <S_AE_AuditAdviceCatalog>();
            foreach (var item in synData)
            {
                var exist = alldt.FirstOrDefault(a => a["Major"].ToString() == item.MajorCode && a["Catalog"].ToString() == item.Name);
                if (exist == null)
                {
                    removeList.Add(item);
                }
            }
            foreach (var item in removeList)
            {
                var queueSql = string.Format(this.SaveQueueSqlTmp, SynType.Remove.ToString(), "S_AE_AuditAdviceCatalog", item.ID, ""
                                             , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <DeleteRequestData>(new DeleteRequestData()
                {
                    id = item.ID
                }), removeUrl);
                removeSb.AppendLine(queueSql);
            }

            if (removeSb.Length > 0)
            {
                this.SQLHelperInterface.ExecuteNonQuery(removeSb.ToString());
            }
            #endregion

            #region Add
            var saveSb  = new StringBuilder();
            var saveUrl = this.BaseServerUrl + "Article/CreateArticle";
            foreach (var item in alldt)
            {
                var major   = item["Major"].ToString();
                var catalog = item["Catalog"].ToString();
                if (!synData.Exists(a => a.MajorCode == major && a.Name == catalog))
                {
                    var param = new AuditAdviceCatalogRequestData();
                    param.id            = GuidHelper.CreateGuid();
                    param.title         = catalog; //分类
                    param.specialtyCode = major;   //专业
                    var queueSql = string.Format(this.SaveQueueSqlTmp, SynType.Save.ToString(), "S_AE_AuditAdviceCatalog", param.id, ""
                                                 , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <AuditAdviceCatalogRequestData>(param).Replace("'", "''"), saveUrl);
                    saveSb.AppendLine(queueSql);
                }
            }
            if (saveSb.Length > 0)
            {
                this.SQLHelperInterface.ExecuteNonQuery(saveSb.ToString());
            }

            #endregion
        }
示例#15
0
 public virtual string GenerateNonce(int timestamp)
 {
     return(GuidHelper.CreateGuid().ToString("D"));
 }
示例#16
0
文件: ProjectFO.cs 项目: 15831944/EPC
        public void CreateProjectQueue()
        {
            //URL地址
            var saveUrl   = this.BaseServerUrl + "project/edit";
            var removeUrl = this.BaseServerUrl + "project/delete";

            var sourceSql = "select * from S_I_ProjectInfo where 1=1  ";

            var synProjectMode = ConfigurationManager.AppSettings["SynProjectMode"] != null ? ConfigurationManager.AppSettings["SynProjectMode"].ToString() : string.Empty;
            var whereSql       = string.Empty;

            if (!string.IsNullOrEmpty(synProjectMode))
            {
                whereSql = "and ModeCode in ('" + synProjectMode.Replace(",", "','") + "') ";
            }

            //取最近的同步记录时间,到当前时间的差异数据
            var synData     = this.SQLHelperInterface.ExecuteList <S_I_ProjectInfo>("select * from S_I_ProjectInfo");
            var lastSynTime = synData.Max(a => a.SynTime);

            if (lastSynTime != null)
            {
                //判断同步增量数据 还是 所有数据
                var startDate = Convert.ToDateTime(lastSynTime).ToString();
                var endDate   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                whereSql += " and ModifyDate >='" + startDate + "' and ModifyDate <='" + endDate + "'";
            }
            sourceSql += whereSql;

            var saveSb   = new StringBuilder();
            var sourceDt = this.SQLHelpeProject.ExecuteDataTable(sourceSql);
            var wbsDt    = this.SQLHelpeProject.ExecuteDataTable("select * from S_W_WBS with(nolock) where ProjectInfoID in (select ID from S_I_ProjectInfo where 1=1 " + whereSql + ")");
            var rbsDt    = this.SQLHelpeProject.ExecuteDataTable("select * from S_W_RBS with(nolock) where ProjectInfoID in (select ID from S_I_ProjectInfo where 1=1 " + whereSql + ")");

            #region 角色编号对应关系、图框属性对应

            var roleCodeDic = new Dictionary <string, string>(); //角色编号对应关系
            var attrDic     = new Dictionary <string, string>(); //图框属性对应关系
            foreach (var key in ConfigurationManager.AppSettings.AllKeys)
            {
                if (key.StartsWith("FrameAttr_"))
                {
                    attrDic.SetValue(key.Replace("FrameAttr_", ""), ConfigurationManager.AppSettings[key].ToString());
                }
                else if (key.StartsWith("RoleCode_"))
                {
                    roleCodeDic.SetValue(key.Replace("RoleCode_", ""), ConfigurationManager.AppSettings[key].ToString());
                }
            }
            #endregion

            var removeSb = new StringBuilder();

            foreach (DataRow prjRow in sourceDt.Rows)
            {
                var projectDic = DataHelper.DataRowToDic(prjRow);

                //设置参数
                var param = new ProjectRequestData();
                param.id               = projectDic.GetValue("ID");
                param.name             = projectDic.GetValue("Name");
                param.code             = projectDic.GetValue("Code");
                param.constructionUnit = projectDic.GetValue("CustomerName");
                param.enable           = true;
                param.standard         = true;
                param.isdeleted        = false;
                var state        = projectDic.GetValue("State");
                var enableStates = new string[] { "Finish", "Pause", "Terminate" };//完工、暂停、终止
                if (enableStates.Contains(state))
                {
                    param.enable = false;
                }
                //项目经理
                #region 项目经理
                var pmList = new List <string>();
                var pmRows = rbsDt.Select("ProjectInfoID='" + param.id + "' and RoleCode='" + ProjectRole.ProjectManager.ToString() + "'");
                foreach (DataRow row in pmRows)
                {
                    if (row["UserID"] == null || row["UserID"] == DBNull.Value)
                    {
                        continue;
                    }
                    var userId = row["UserID"].ToString();
                    if (string.IsNullOrEmpty(userId))
                    {
                        continue;
                    }
                    var synUser = GlobalData.UserList.FirstOrDefault(a => a.ID == userId);
                    if (synUser != null && !string.IsNullOrEmpty(synUser.SynID))
                    {
                        userId = synUser.SynID;
                    }
                    if (!pmList.Contains(userId))
                    {
                        pmList.Add(userId);
                    }
                }
                param.owerUserId = string.Join(",", pmList.ToArray());

                #endregion

                //阶段
                #region 阶段
                param.phases = new List <phase>();
                var phaseRows = wbsDt.Select("ProjectInfoID='" + param.id + "' and WBSType='" + WBSNodeType.Phase.ToString() + "'");
                foreach (DataRow row in phaseRows)
                {
                    var item = new phase();
                    param.phases.Add(item);
                    var phaseWBSID = row["ID"].ToString();
                    item.PhaseCode   = row["WBSValue"].ToString();
                    item.phaseUsers  = new List <ProjectUser>();
                    item.subProjects = new List <subProject>();
                    var children = wbsDt.Select("ParentID='" + phaseWBSID + "'");
                    if (children.FirstOrDefault() != null)
                    {
                        if (children.FirstOrDefault()["WBSType"].ToString() == WBSNodeType.Major.ToString())
                        {
                            //阶段-专业
                            foreach (var majorRow in children)
                            {
                                //处理专业节点及所有以上人员
                                //项目经理通过owerUserId处理
                                var wbsids       = majorRow["FullID"].ToString().Replace(".", "','");
                                var roleUserRows = rbsDt.Select("WBSID in ('" + wbsids + "') and RoleCode <>'" + ProjectRole.ProjectManager.ToString() + "'");
                                var majorCode    = majorRow["WBSValue"].ToString();
                                setProjectUser(roleUserRows, item.phaseUsers, majorCode, roleCodeDic);
                            }
                        }
                        else
                        {
                            //阶段-子项-专业
                            foreach (var subProjectRow in children)
                            {
                                var subProject = new subProject();
                                item.subProjects.Add(subProject);
                                subProject.id   = subProjectRow["ID"].ToString();
                                subProject.Name = subProjectRow["Name"].ToString();
                                if (subProjectRow["Code"] != null && subProjectRow["Code"] != DBNull.Value)
                                {
                                    subProject.Code = subProjectRow["Code"].ToString();
                                }
                                else
                                {
                                    subProject.Code = subProject.Name;
                                }
                                subProject.users = new List <ProjectUser>();
                                var spChildren = wbsDt.Select("ParentID='" + subProjectRow["ID"].ToString() + "' and WBSType='" + WBSNodeType.Major.ToString() + "'");
                                foreach (var majorRow in spChildren)
                                {
                                    //处理专业节点及所有以上人员
                                    //项目经理通过owerUserId处理
                                    var wbsids       = majorRow["FullID"].ToString().Replace(".", "','");
                                    var roleUserRows = rbsDt.Select("WBSID in ('" + wbsids + "') ");
                                    var majorCode    = majorRow["WBSValue"].ToString();
                                    setProjectUser(roleUserRows, subProject.users, majorCode, roleCodeDic);
                                }
                            }
                        }
                    }
                }

                #endregion
                //图框扩展属性 结构比较怪异,需要传递树层数据
                #region 图框扩展属性
                param.drawInfo = new List <drawInfo>();
                foreach (var field in attrDic.Keys)
                {
                    var code = attrDic.GetValue(field);
                    var name = projectDic.GetValue(field);
                    if (string.IsNullOrEmpty(name))
                    {
                        continue;
                    }
                    var droot = new drawInfo();
                    droot.ProjectId   = param.id;
                    droot.ID          = GuidHelper.CreateGuid();
                    droot.Name        = code;
                    droot.Code        = code;
                    droot.Description = string.Empty;
                    param.drawInfo.Add(droot);
                    foreach (var item in name.Split(','))
                    {
                        var dvalue = new drawInfo();
                        dvalue.ProjectId   = param.id;
                        dvalue.ID          = GuidHelper.CreateGuid();
                        dvalue.Name        = item;
                        dvalue.Description = droot.ID;
                        dvalue.Code        = string.Empty;
                        param.drawInfo.Add(dvalue);
                    }
                }
                #endregion

                var queueSql = string.Format(this.SaveQueueSqlTmp, SynType.Save.ToString(), "S_I_ProjectInfo", param.id, ""
                                             , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <ProjectRequestData>(param).Replace("'", "''"), saveUrl);
                saveSb.AppendLine(queueSql);
            }

            var idSql = "select ID from S_I_ProjectInfo where 1=1";
            if (!string.IsNullOrEmpty(synProjectMode))
            {
                idSql += "and ModeCode in ('" + synProjectMode.Replace(",", "','") + "') ";
            }
            var alldt  = this.SQLHelpeProject.ExecuteDataTable(idSql);
            var allIDs = new List <string>();
            foreach (DataRow item in alldt.Rows)
            {
                allIDs.Add(item["ID"].ToString());
            }
            var removeList = synData.Where(a => !allIDs.Contains(a.ID) && a.State == DataState.Normal.ToString()).ToList();
            foreach (var item in removeList)
            {
                var queueSql = string.Format(this.SaveQueueSqlTmp, SynType.Remove.ToString(), "S_I_ProjectInfo", item.ID, ""
                                             , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), JsonHelper.ToJson <DeleteRequestData>(new DeleteRequestData()
                {
                    id = item.ID
                }), removeUrl);
                removeSb.AppendLine(queueSql);
            }

            if (removeSb.Length > 0)
            {
                this.SQLHelperInterface.ExecuteNonQuery(removeSb.ToString());
            }

            if (saveSb.Length > 0)
            {
                this.SQLHelperInterface.ExecuteNonQuery(saveSb.ToString());
            }
        }
示例#17
0
文件: Task.cs 项目: 15831944/EPC
        public override void AfterGetData(Dictionary <string, object> data)
        {
            if (this.Task.BusinessType != BusinessType.GetData.ToString())
            {
                return;
            }
            var           projectInfoID = this.Task.BusinessID;
            var           wbsDt         = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_W_WBS where ProjectInfoID='" + projectInfoID + "'");
            var           productDt     = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_E_Product where ProjectInfoID='" + projectInfoID + "'");
            var           versionDt     = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_E_ProductVersion where ProjectInfoID='" + projectInfoID + "'");
            var           auditDt       = this.BusinessSQLHelper.ExecuteDataTable(@"select * from T_EXE_Audit where ProjectInfoID='" + projectInfoID + "'");
            var           auditAdviceDt = this.BusinessSQLHelper.ExecuteDataTable(@"select * from T_EXE_Audit_AdviceDetail where T_EXE_AuditID in (select id from T_EXE_Audit where ProjectInfoID='" + projectInfoID + "') ");
            var           mistakeDt     = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_AE_Mistake where ProjectInfoID='" + projectInfoID + "'");
            var           taskDt        = this.BusinessSQLHelper.ExecuteDataTable(@"select * from S_W_TaskWork where ProjectInfoID='" + projectInfoID + "'");
            StringBuilder sb            = new StringBuilder();
            StringBuilder basesb        = new StringBuilder();
            var           Tasks         = JsonHelper.ToList(data.GetValue("Tasks")); //任务集合
            var           Files         = JsonHelper.ToList(data.GetValue("Files")); //原图集合,发送校审后有数据
            //var Versions = JsonHelper.ToList(data.GetValue("Versions"));//原图版本数据,根据日期获取最新版,
            var Proofs    = JsonHelper.ToList(data.GetValue("Proofs"));              //校审记录 校审通过后md5字段才有数据
            var Comments  = JsonHelper.ToList(data.GetValue("Comments"));            //批注意见
            var errorList = new List <Dictionary <string, string> >();

            foreach (var task in Tasks)
            {
                var taskID  = task.GetValue("TaskID");
                var taskRow = taskDt.Select("ID='" + taskID + "'").FirstOrDefault();
                if (taskRow == null)
                {
                    //删除
                    basesb.AppendFormat("insert into S_OEM_TaskList(OEMCode,BusinessType,BusinessCode,BusinessID,CreateTime) values( '{0}','{1}','{2}','{3}','{4}')",
                                        Task.OEMCode, BusinessType.Remove.ToString(), Task.BusinessCode, taskID, Task.CreateTime.ToString());
                    basesb.AppendLine();
                }
            }
            foreach (var file in Files)
            {
                var fileID = file.GetValue("ID");
                var wbsID  = string.Empty;
                var proof  = Proofs.Where(a => a.GetValue("FileId") == fileID)
                             .OrderByDescending(a => Convert.ToInt64(a.GetValue("CreateDate"))).FirstOrDefault();
                if (proof == null)
                {
                    errorList.Add(new Dictionary <string, string>()
                    {
                        { "FileId", fileID }, { "Name", file.GetValue("Name") }, { "Msg", "proof为null" }
                    });
                    continue;
                }
                #region 获得WBSID
                string phaseName = file.GetValue("PhaseName"), subProjectName = file.GetValue("SubProjectName"),
                       majorName = file.GetValue("SpecialtyName"), taskName = file.GetValue("TaskName");
                var wbsRow = GetWBS(wbsDt, phaseName, subProjectName, majorName, taskName);
                if (wbsRow != null)
                {
                    wbsID = wbsRow["ID"].ToString();
                }
                if (string.IsNullOrEmpty(wbsID))
                {
                    errorList.Add(new Dictionary <string, string>()
                    {
                        { "FileId", fileID }, { "Name", file.GetValue("Name") }, { "Msg", "WBSID为null" }
                    });
                    continue;
                }
                var rootWbs = wbsDt.Select("WBSType='" + WBSNodeType.Project.ToString() + "'").FirstOrDefault();
                if (rootWbs == null)
                {
                    errorList.Add(new Dictionary <string, string>()
                    {
                        { "FileId", fileID }, { "Name", file.GetValue("Name") }, { "Msg", "WBSRoot为null" }
                    });
                    continue;
                }
                #endregion
                var description = file.GetValue("Description");
                if (string.IsNullOrEmpty(description))
                {
                    errorList.Add(new Dictionary <string, string>()
                    {
                        { "FileId", fileID }, { "Name", file.GetValue("Name") }, { "Msg", "Description为null,未开启校审识别图框" }
                    });
                    continue;
                }
                var drawings = JsonHelper.ToList(description);//图框信息
                if (drawings.Count == 0)
                {
                    errorList.Add(new Dictionary <string, string>()
                    {
                        { "FileId", fileID }, { "Name", file.GetValue("Name") }, { "Msg", "Description为[],未检测到图框信息" }
                    });
                    continue;
                }
                var state = proof.GetValue("State");
                //循环图框
                foreach (var drawing in drawings)
                {
                    var code = drawing.GetValue("DrawingNo");
                    if (string.IsNullOrEmpty(code))
                    {
                        errorList.Add(new Dictionary <string, string>()
                        {
                            { "FileId", fileID }, { "DrawingNo", code }, { "Msg", "DrawingNo为null" }
                        });
                        continue;
                    }
                    var name         = drawing.GetValue("DrawingName");
                    var size         = drawing.GetValue("Size");
                    var designerName = drawing.GetValue("Designer");//图框输入值
                    #region 生成业务记录S_E_Product、S_E_ProductVersion
                    #region S_E_Product
                    var productRow = productDt.Select("Code='" + code + "' and Name='" + name + "' and WBSID ='" + wbsID + "'").FirstOrDefault();
                    var auditId    = string.Empty;
                    var productId  = string.Empty;
                    if (productRow == null)
                    {
                        productRow = productDt.NewRow();
                        productDt.Rows.Add(productRow);
                        auditId                     = GuidHelper.CreateGuid();
                        productId                   = GuidHelper.CreateGuid();
                        productRow["ID"]            = productId;
                        productRow["ProjectInfoID"] = projectInfoID;
                        productRow["WBSID"]         = wbsID;
                        productRow["WBSFullID"]     = wbsRow["FullID"].ToString();
                        productRow["AuditID"]       = auditId;
                        productRow["CreateUser"]    = file.GetValue("LockUserName");
                        productRow["CreateUserID"]  = file.GetValue("LockUserID");
                        productRow["CreateDate"]    = DateTime.Now;
                        productRow["ModifyUser"]    = productRow["CreateUser"];
                        productRow["ModifyUserID"]  = productRow["CreateUserID"];
                        productRow["ModifyDate"]    = productRow["CreateDate"];
                        productRow["FileType"]      = "图纸";
                        productRow["Version"]       = 1;
                        productRow["State"]         = "Create";
                        productRow["SignState"]     = "False";
                        productRow["CoSignState"]   = "NoSign";
                        productRow["ArchiveState"]  = "False";
                        productRow["PrintState"]    = "UnPrint";
                    }
                    else
                    {
                        productId = productRow["ID"].ToString();
                        auditId   = productRow["AuditID"].ToString();
                        productRow["ModifyUser"]   = file.GetValue("LockUserID");
                        productRow["ModifyUserID"] = file.GetValue("LockUserName");
                        productRow["ModifyDate"]   = DateTime.Now;
                    }
                    productRow["SwfFile"]    = fileID;                //此模式下SwfFile、ShotSnap无用,所以记录FileID和MD5,在GetAreaData接口根据这两个值绑定Mainfile 和 Pdffile
                    productRow["ShotSnap"]   = proof.GetValue("Md5"); //proof的Md5 是在校审完成后才会赋值
                    productRow["Name"]       = name;
                    productRow["Code"]       = code;
                    productRow["FileSize"]   = size;
                    productRow["SubmitDate"] = DataHelper.FormatTime(proof.GetValue("CreateDate"));

                    /*Proofs字段说明
                     * Step1State - Step6State:step1 = 校对,2 = 审核,3 = 审定
                     *   值:0 = 还未送到当前节点,1 = 未读,2 = 校对中/审核中/审定中,3 = 退回,4 = 完成
                     *  State:0 = 未完成,1 = 完成,待最后确认(和存储相关,可忽略),2 = 完成             */
                    if (state == "0")
                    {
                        productRow["AuditState"] = "Flow";
                    }
                    else
                    {
                        productRow["AuditState"]    = "Pass";
                        productRow["AuditPassDate"] = DateTime.Now;
                    }
                    if (GlobalData.MajorEnum.Any(a => a.Value == majorName))
                    {
                        productRow["MajorValue"] = GlobalData.MajorEnum.FirstOrDefault(a => a.Value == majorName).Key;
                    }
                    if (GlobalData.PhaseEnum.Any(a => a.Value == phaseName))
                    {
                        productRow["PhaseValue"] = GlobalData.PhaseEnum.FirstOrDefault(a => a.Value == phaseName).Key;
                    }
                    productRow["SubProjectInfo"] = subProjectName;
                    //TaskName
                    if (wbsRow["WBSType"].ToString() == WBSNodeType.Work.ToString())
                    {
                        productRow["PackageName"] = taskName;
                        productRow["PackageCode"] = wbsRow["Code"].ToString();
                    }
                    //设校审人员
                    productRow["Designer"]     = file.GetValue("LockUserID");
                    productRow["DesignerName"] = file.GetValue("LockUserName");
                    var proofUsers = JsonHelper.ToList(proof.GetValue("ProofUsers"));
                    foreach (var proofUser in proofUsers)
                    {
                        var userid  = proofUser.GetValue("UserId");
                        var userRow = GlobalData.UserDt.Select("ID='" + userid + "'").FirstOrDefault();
                        if (userRow == null)
                        {
                            continue;
                        }
                        var userName    = userRow["Name"].ToString();
                        var proofSerial = proofUser.GetValue("Serial");
                        var auditType   = string.Empty;
                        if (proofSerial == OEMCollactorSerial)
                        {
                            auditType = "Collactor";
                        }
                        else if (proofSerial == OEMAuditorSerial)
                        {
                            auditType = "Auditor";
                        }
                        else if (proofSerial == OEMApproverSerial)
                        {
                            auditType = "Approver";
                        }
                        if (!string.IsNullOrEmpty(auditType))
                        {
                            productRow[auditType]          = userid;
                            productRow[auditType + "Name"] = userName;
                        }
                    }

                    string productSql = SQLHelper.CreateUpdateSql("S_E_Product", productRow);
                    sb.AppendLine(productSql);
                    #endregion
                    #region S_E_ProductVersion

                    //version
                    var versionRow = versionDt.Select("ProductID='" + productId + "'").FirstOrDefault();
                    if (versionRow == null)
                    {
                        versionRow = versionDt.NewRow();
                        versionDt.Rows.Add(versionRow);
                        versionRow["ID"]        = GuidHelper.CreateGuid();
                        versionRow["ProductID"] = productId;
                    }
                    foreach (DataColumn col in versionDt.Columns)
                    {
                        if (col.ColumnName == "ID")
                        {
                            continue;
                        }
                        if (productDt.Columns.Contains(col.ColumnName))
                        {
                            versionRow[col] = productRow[col.ColumnName];
                        }
                    }
                    string versionSql = SQLHelper.CreateUpdateSql("S_E_ProductVersion", versionRow);
                    sb.AppendLine(versionSql);
                    #endregion
                    #endregion
                    #region 生成校审记录T_EXE_Audit、T_EXE_Audit_AdviceDetail、S_AE_Mistake

                    /*Proofs字段说明
                     * Step1State - Step6State:step1 = 校对,2 = 审核,3 = 审定
                     * 值:0 = 还未送到当前节点,1 = 未读,2 = 校对中/审核中/审定中,3 = 退回,4 = 完成
                     * State:0 = 未完成,1 = 完成,待最后确认(和存储相关,可忽略),2 = 完成             */
                    #region T_EXE_Audit
                    var auditRow = auditDt.Select("ID='" + auditId + "'").FirstOrDefault();
                    if (auditRow == null)
                    {
                        auditRow = auditDt.NewRow();
                        auditDt.Rows.Add(auditRow);
                        auditRow["ID"]              = auditId;
                        auditRow["ProjectInfoID"]   = projectInfoID;
                        auditRow["WBSID"]           = wbsID;
                        auditRow["ProjectInfoName"] = rootWbs["Name"].ToString();
                        auditRow["ProjectInfoCode"] = rootWbs["Code"].ToString();
                        auditRow["SubProjectName"]  = subProjectName;
                        auditRow["PhaseCode"]       = productRow["PhaseValue"];
                        auditRow["MajorCode"]       = productRow["MajorValue"];
                        auditRow["CreateUser"]      = productRow["CreateUser"];
                        auditRow["CreateUserID"]    = productRow["CreateUserID"];
                        auditRow["CreateDate"]      = DataHelper.FormatTime(proof.GetValue("CreateDate"));
                        auditRow["ModifyDate"]      = auditRow["CreateDate"];
                    }
                    else
                    {
                        auditRow["ModifyDate"] = DateTime.Now;
                    }
                    auditRow["FlowPhase"]    = state == "0" ? "Processing" : "End";
                    auditRow["SerialNumber"] = code;
                    //设置校审人员
                    auditRow["Designer"]      = productRow["Designer"];
                    auditRow["DesignerName"]  = productRow["DesignerName"];
                    auditRow["Collactor"]     = productRow["Collactor"];
                    auditRow["CollactorName"] = productRow["CollactorName"];
                    auditRow["Auditor"]       = productRow["Auditor"];
                    auditRow["AuditorName"]   = productRow["AuditorName"];
                    auditRow["Approver"]      = productRow["Approver"];
                    auditRow["ApproverName"]  = productRow["ApproverName"];

                    string auditSql = SQLHelper.CreateUpdateSql("T_EXE_Audit", auditRow);
                    sb.AppendLine(auditSql);
                    #endregion
                    //校审意见
                    var comments = Comments.Where(a => a.GetValue("FileID") == fileID && a.GetValue("DrawingNo") == code).ToList();
                    foreach (var comment in comments)
                    {
                        #region T_EXE_Audit_AdviceDetail
                        var adviceID  = comment.GetValue("ID");
                        var isConfirm = false;
                        if (comment.GetValue("IsConfirm") == "true")
                        {
                            isConfirm = true;
                        }
                        var adviceRow = auditAdviceDt.Select("ID='" + adviceID + "'").FirstOrDefault();
                        if (adviceRow == null)
                        {
                            adviceRow = auditAdviceDt.NewRow();
                            auditAdviceDt.Rows.Add(adviceRow);
                            adviceRow["ID"]            = adviceID;
                            adviceRow["T_EXE_AuditID"] = auditId;
                            adviceRow["ProductCode"]   = code;
                            var mistakeDate = DataHelper.FormatTime(comment.GetValue("CreateDate"));
                            adviceRow["CreateDate"]    = mistakeDate;
                            adviceRow["MistakeYear"]   = mistakeDate.Year;
                            adviceRow["MistakeMonth"]  = mistakeDate.Month;
                            adviceRow["MistakeSeason"] = (mistakeDate.Month + 2) / 3;
                        }

                        /*Comments字段说明
                         * Type:0 = 普通批注,1 = 校对批注,2 = 审核批注,3 = 审定批注
                         * CommentType:1 = 严重,2 = 一般,4 = 提醒 */
                        adviceRow["MsitakeContent"] = comment.GetValue("Content");
                        adviceRow["MistakeType"]    = "CommentType" + comment.GetValue("CommentType");
                        var step = AuditType.Design.ToString();
                        switch (comment.GetValue("Type"))
                        {
                        case "1": step = AuditType.Collact.ToString(); break;

                        case "2": step = AuditType.Audit.ToString(); break;

                        case "3": step = AuditType.Approve.ToString(); break;

                        case "0":
                        default: step = AuditType.Design.ToString(); break;
                        }
                        adviceRow["Step"]           = step;
                        adviceRow["SubmitUser"]     = comment.GetValue("CriticUserID");
                        adviceRow["SubmitUserName"] = comment.GetValue("CriticUserName");
                        var rpyStr = string.Empty;
                        var replys = JsonHelper.ToList(comment.GetValue("ReplyContent"));
                        foreach (var reply in replys)
                        {
                            rpyStr += string.Format("{0}({1}):{2}\r\n", reply.GetValue("author"), DataHelper.FormatTime(reply.GetValue("time")), reply.GetValue("content"));
                        }
                        adviceRow["ResponseContent"] = rpyStr;
                        string adviceSql = SQLHelper.CreateUpdateSql("T_EXE_Audit_AdviceDetail", adviceRow);
                        sb.AppendLine(adviceSql);


                        #endregion
                        #region S_AE_Mistake

                        var mistakeRow = mistakeDt.Select("ID='" + adviceID + "'").FirstOrDefault();
                        if (mistakeRow == null)
                        {
                            mistakeRow = mistakeDt.NewRow();
                            mistakeDt.Rows.Add(mistakeRow);
                            mistakeRow["ID"]                = adviceID;
                            mistakeRow["AuditID"]           = auditId;
                            mistakeRow["ProjectInfoID"]     = projectInfoID;
                            mistakeRow["AuditActivityType"] = adviceRow["Step"];
                            mistakeRow["MistakeLevel"]      = adviceRow["MistakeType"];
                            mistakeRow["MajorCode"]         = auditRow["MajorCode"];
                            mistakeRow["MajorName"]         = majorName;
                            mistakeRow["DesignerID"]        = auditRow["Designer"];
                            mistakeRow["Designer"]          = auditRow["DesignerName"];
                            mistakeRow["CreateDate"]        = adviceRow["CreateDate"];
                            mistakeRow["MistakeYear"]       = adviceRow["MistakeYear"];
                            mistakeRow["MistakeMonth"]      = adviceRow["MistakeMonth"];
                            mistakeRow["MistakeSeason"]     = adviceRow["MistakeSeason"];
                            mistakeRow["CreateUserID"]      = adviceRow["SubmitUser"];
                            mistakeRow["CreateUser"]        = adviceRow["SubmitUserName"];
                        }
                        mistakeRow["MistakeContent"] = adviceRow["MsitakeContent"];
                        mistakeRow["Measure"]        = adviceRow["ResponseContent"];
                        mistakeRow["DrawingNO"]      = adviceRow["ProductCode"];
                        mistakeRow["DeptID"]         = rootWbs["WBSDeptID"];
                        mistakeRow["DeptName"]       = rootWbs["WBSDeptName"];
                        mistakeRow["State"]          = isConfirm ? "Finish" : "Create";
                        string mistakeSql = SQLHelper.CreateUpdateSql("S_AE_Mistake", mistakeRow);
                        sb.AppendLine(mistakeSql);
                        #endregion
                    }
                    #endregion
                }
            }
            if (errorList.Count > 0)
            {
                this.Task.ErrorMsg = JsonHelper.ToJson(errorList);
            }
            if (sb.Length > 0)
            {
                this.BusinessSQLHelper.ExecuteNonQuery(sb.ToString());
            }
            if (basesb.Length > 0)
            {
                this.BaseSQLHelper.ExecuteNonQuery(basesb.ToString());
            }
        }
示例#18
0
文件: SzsowData.cs 项目: 15831944/EPC
        public void InitUser()
        {
            //人员:sys_user
            //人员的签名文件:sys_userdictionaryfile(DictionaryType='7')
            var saID    = System.Configuration.ConfigurationManager.AppSettings["OEMSaUserID"];
            var _userDt = cpHelper.ExecuteDataTable("select * from sys_user where IsDeleted = 0  and Status = 0");
            var _signDt = cpHelper.ExecuteDataTable("select * from sys_userdictionaryfile where IsDeleted = 0 and DictionaryType='7'");
            //gw
            StringBuilder sb        = new StringBuilder();
            StringBuilder hrsb      = new StringBuilder();
            var           rootID    = System.Configuration.ConfigurationManager.AppSettings["OrgRootID"];
            var           rootName  = System.Configuration.ConfigurationManager.AppSettings["OrgRootName"];
            var           userDt    = baseHelper.ExecuteDataTable(@"select * from S_A_User");
            var           userImgDt = baseHelper.ExecuteDataTable(@"select * from S_A_UserImg");
            var           orgUserDt = baseHelper.ExecuteDataTable(@"select * from S_A__OrgUser");
            var           hrDt      = hrHelper.ExecuteDataTable(@"select * from T_Employee");

            foreach (DataRow row in _userDt.Rows)
            {
                var userID = row["ID"].ToString();
                if (userID == saID)
                {
                    continue;
                }
                var    name    = row["Name"].ToString();
                var    code    = row["LoginID"].ToString();
                var    pwd     = row["Password"].ToString();
                byte[] signBt  = null;
                var    signRow = _signDt.Select(" UserID='" + userID + "'").FirstOrDefault();
                if (signRow != null)
                {
                    var signContent = signRow["Content"].ToString();
                    signBt = Convert.FromBase64String(signContent);
                }

                var userRow = userDt.Select(" ID ='" + userID + "'").FirstOrDefault();
                if (userRow == null)
                {
                    userRow       = userDt.NewRow();
                    userRow["ID"] = userID;
                    userDt.Rows.Add(userRow);
                }
                userRow["Code"]       = code;
                userRow["WorkNo"]     = code;
                userRow["Name"]       = name;
                userRow["Password"]   = FormsAuthentication.HashPasswordForStoringInConfigFile(string.Format("{0}{1}", code.ToLower(), pwd), "SHA1");
                userRow["Sortindex"]  = 0;
                userRow["ErrorCount"] = 0;
                userRow["IsDeleted"]  = "0";
                userRow["DeptID"]     = rootID;
                userRow["DeptFullID"] = rootID;
                userRow["DeptName"]   = rootName;
                userRow["ModifyTime"] = DateTime.Now;
                sb.AppendLine(SQLHelper.CreateUpdateSql("S_A_User", userRow));
                var orgUserRow = orgUserDt.Select("OrgID='" + rootID + "' and UserID='" + userID + "'").FirstOrDefault();
                if (orgUserRow == null)
                {
                    orgUserRow           = orgUserDt.NewRow();
                    orgUserRow["OrgID"]  = rootID;
                    orgUserRow["UserID"] = userID;
                    orgUserDt.Rows.Add(orgUserRow);
                    sb.AppendLine(SQLHelper.CreateInsertSql("S_A__OrgUser", orgUserRow));
                }
                var hrRow = hrDt.Select("UserID='" + userID + "'").FirstOrDefault();
                if (hrRow == null)
                {
                    hrRow           = hrDt.NewRow();
                    hrRow["ID"]     = GuidHelper.CreateGuid();
                    hrRow["UserID"] = userID;
                    hrDt.Rows.Add(hrRow);
                }
                hrRow["Code"]          = code;
                hrRow["Name"]          = name;
                hrRow["EmploymentWay"] = "正式员工";
                hrRow["EmployeeState"] = "Incumbency";
                hrRow["IsDeleted"]     = "0";
                hrRow["IsHaveAccount"] = "1";
                hrRow["CreateDate"]    = DateTime.Now;
                hrRow["ModifyDate"]    = hrRow["CreateDate"];
                if (signBt != null)
                {
                    hrRow["SignDwg"] = signBt;
                }
                hrsb.AppendLine(SQLHelper.CreateUpdateSql("T_Employee", hrRow));

                if (signBt != null)
                {
                    var imgRow = userImgDt.Select(" UserID ='" + userID + "'").FirstOrDefault();
                    if (imgRow == null)
                    {
                        imgRow           = userImgDt.NewRow();
                        imgRow["ID"]     = GuidHelper.CreateGuid();
                        imgRow["UserID"] = userID;
                        userImgDt.Rows.Add(imgRow);
                    }
                    sb.AppendLine(SQLHelper.CreateUpdateSql("S_A_UserImg", imgRow));
                }
            }
            if (sb.Length > 0)
            {
                baseHelper.ExecuteNonQuery(sb.ToString());
            }
            if (hrsb.Length > 0)
            {
                hrHelper.ExecuteNonQuery(hrsb.ToString());
            }
        }