Example #1
0
        private void GetNotDetailCount(DataSet ds, int layer)
        {
            if (DataSetValidator.IsDatasetValid(ds) == false)
            {
                return;
            }
            //首先根据级次得到本级次以及上级的分级码
            var resTypeDeepSql = "select  max(len(path))/4 from Zylb";
            var resTypeDeep    = Utility.CurDatabase.ExecuteScalar(resTypeDeepSql).ToString();
            var resTypeLayer   = Convert.ToInt32(resTypeDeep);
            var sumField       = "resslormj";

            //1~layer-1
            for (int i = 1; i < resTypeLayer; i++)
            {
                var rowsEachLayer = ds.Tables[0].Select($"layer='{i}'");
                //针对每一级别的分级码
                foreach (var pathRow in rowsEachLayer)
                {
                    var curPath        = pathRow["path"].ToString();
                    var curPathSubRows = ds.Tables[0].Select($"path like '{curPath}%' and path<>'{curPath}'");
                    //最末级节点要清楚
                    if (curPathSubRows == null || curPathSubRows.Length == 0)
                    {
                        continue;
                    }
                    decimal countNum = 0;
                    //当前行的数据要同步
                    if (pathRow[sumField] == DBNull.Value)
                    {
                        countNum = 0;
                    }
                    else
                    {
                        countNum = Convert.ToDecimal(pathRow[sumField]);
                    }
                    foreach (DataRow eachRow in curPathSubRows)
                    {
                        if (eachRow[sumField] == DBNull.Value)
                        {
                            continue;
                        }
                        countNum += Convert.ToDecimal(eachRow[sumField]);
                    }
                    //合计当前层级的下级数量和面积之和
                    pathRow[sumField] = countNum.ToString();
                }
            }

            if (layer == resTypeLayer)
            {
                return;
            }
            var deleteRows = ds.Tables[0].Select($"layer>{layer}");

            foreach (var item in deleteRows)
            {
                ds.Tables[0].Rows.Remove(item);
            }
        }
Example #2
0
        /// <summary>
        /// 根据资源的有效时间更新资源状态和合同状态
        /// </summary>
        public void UpdateResAndHtStateByEndTime()
        {
            var curTime = DateTime.Now.ToString("yyyy-MM-dd");
            //状态为正常状态且超期的合同
            var sql = "select htnm from ResContract where htzsstate in ({0},{1}) and htjsrq<{2}";
            var dt  = Utility.CurDatabase.ExecuteDataSet(sql, HtState.Editing, HtState.HasConfirm, curTime);

            if (DataSetValidator.IsDatasetValid(dt) == false)
            {
                return;
            }
            //修改资源
            var resSql = @"update fqres set resstate={0},resstatename={1} where resnm in(
                           select resnm from ResContract where htzsstate in({2},{3}) and htjsrq<{4})";

            Utility.CurDatabase.ExecuteSqlStatement(
                resSql,
                ResourceState.HasConfirm,
                ResStateDictionary.ConvertToString(ResourceState.HasConfirm),
                HtState.Editing,
                HtState.HasConfirm,
                curTime);
            //修改合同
            var htSql = @"update ResContract set htzsstate={0},htzsstatemc={1} where htzsstate in({2},{3}) and htjsrq<{4}";

            Utility.CurDatabase.ExecuteSqlStatement(
                htSql,
                HtState.OutDay,
                HtStateDictionary.ConvertToString(HtState.OutDay),
                HtState.Editing,
                HtState.HasConfirm,
                curTime);
        }
        public void HasRoleは引数のクラスがDictionaryでなければfalseを返す()
        {
            // setup
            Sheet            sheet     = TempActors.Book.GetSheet("HasRole");
            DataSetValidator validator = GetDataSetValidator(sheet.GetCase("ロールあり"));

            // expect
            Assert.IsFalse(validator.HasRole("xxx", null));
        }
        public void HasRoleはInitializeで指定されたテストケースに取得データセクションがなければfalseを返す()
        {
            // setup
            Sheet            sheet     = TempActors.Book.GetSheet("HasRole");
            DataSetValidator validator = GetDataSetValidator(sheet.GetCase("ロールなし"));

            // expect
            Assert.IsFalse(validator.HasRole(null, null));
        }
Example #5
0
 protected virtual void InitializeDataSet()
 {
     m_odpContext.EnsureCultureIsSetOnCurrentThread();
     if (DataSetValidator.LOCALE_SYSTEM_DEFAULT == m_dataSet.LCID)
     {
         if (m_odpContext.ShouldExecuteLiveQueries)
         {
             m_dataSet.LCID = DataSetValidator.LCIDfromRDLCollation(m_dataSet.Collation);
         }
         else
         {
             m_dataSet.LCID = m_dataSetInstance.LCID;
         }
     }
     m_isConnectionOwner = false;
     InitRuntime();
 }
Example #6
0
 internal uint GetSQLSortCompareFlags()
 {
     return(DataSetValidator.GetSQLSortCompareMask(Sensitivity.True == m_caseSensitivity, Sensitivity.True == m_accentSensitivity, Sensitivity.True == m_kanatypeSensitivity, Sensitivity.True == m_widthSensitivity));
 }
Example #7
0
        /// <summary>
        /// 根据模型和数据id以及实体编号和名称查询实体
        /// </summary>
        /// <param name="modelId"></param>
        /// <param name="dataId"></param>
        /// <param name="dataCode"></param>
        /// <param name="dataName"></param>
        /// <returns></returns>
        public static DataTable GetChangeDataTable(string modelId, string dataId, string dataCode, string dataName)
        {
            var startTime     = "2017-01-01";
            var curYear       = DateTime.Now.Year;
            var endTime       = (curYear + 1).ToString() + "-01-01";
            var dt            = new DataTable();
            var changeHeaders =
                ChangeLogDTLocalClient.Instance.GetLogHeaderByDataId(GSPState.Current, dataId, modelId, startTime, endTime);

            if (DataSetValidator.IsDatasetValid(changeHeaders) == false)
            {
                return(dt);
            }
            foreach (DataRow header in changeHeaders.Tables[0].Rows)
            {
                var headId       = header["id"].ToString();
                var changeUser   = header["username"].ToString();
                var changeTime   = header["ChangeTime"].ToString();
                var changeEntity = ChangeLogDTLocalClient.Instance.GetLogItemDataSet(GSPState.Current, modelId, headId, changeTime);
                changeEntity.Tables[0].CaseSensitive = false;
                var needEntiy = changeEntity.Tables[0].Select("FieldCode='resxm05'");
                //不含有变更记录的数据
                if (needEntiy == null || needEntiy.Length == 0)
                {
                    continue;
                }
                //只有变更记录的数据
                if (changeEntity.Tables[0].Rows.Count == 1)
                {
                    continue;
                }
                //需要的变更记录
                var colChanger = new DataColumn("changeName");
                colChanger.DefaultValue = changeUser;
                var colchangeTime = new DataColumn("changeTime");
                colchangeTime.DefaultValue = changeTime;
                changeEntity.Tables[0].Columns.Add(colChanger);
                changeEntity.Tables[0].Columns.Add(colchangeTime);
                if (dt.Rows.Count == 0)
                {
                    dt = changeEntity.Tables[0].Copy();
                }
                else
                {
                    foreach (DataRow dr in changeEntity.Tables[0].Rows)
                    {
                        dt.ImportRow(dr);
                    }
                }
            }
            //遍历所有变更记录后,没有满足条件的变更
            if (dt.Rows.Count == 0)
            {
                return(dt);
            }
            //添加当前行资源编号和资源名称
            var colResCode = new DataColumn("rescode");

            colResCode.DefaultValue = dataCode;
            var colResName = new DataColumn("resName");

            colResName.DefaultValue = dataName;
            dt.Columns.Add(colResCode);
            dt.Columns.Add(colResName);
            //显示在最前边
            dt.Columns["rescode"].SetOrdinal(0);
            dt.Columns["resName"].SetOrdinal(1);
            //删除作为变更记录的变更行
            //不区分大小写
            dt.CaseSensitive = false;
            var changeFlag = dt.Select("FieldCode='resxm05'");

            foreach (DataRow row in changeFlag)
            {
                dt.Rows.Remove(row);
            }
            return(dt);
        }
Example #8
0
        private List <ResInfo> GetResInfo(IQueryServerContext context)
        {
            var wherePart = string.Empty;
            var list      = new List <string>();

            //资源类别名称
            if (!string.IsNullOrEmpty(context["zylbmc"]))
            {
                list.Add($"ResLbmc = '{context["zylbmc"]}'");
            }
            //资源编号
            if (!string.IsNullOrEmpty(context["zybh"]))
            {
                list.Add($"ResZybh = '{context["zybh"]}'");
            }
            //资源名称名称
            if (!string.IsNullOrEmpty(context["zymc"]))
            {
                list.Add($"ResZymc = '{context["zymc"]}'");
            }
            //资源核算单位
            if (!string.IsNullOrEmpty(context["hsdwbh"]))
            {
                list.Add($"ResSsdwId = '{context["hsdwbh"]}'");
            }
            //资源签订日期
            if (!string.IsNullOrEmpty(context["zytzrq"]))
            {
                var tzrqTime = Convert.ToDateTime(context["zytzrq"]).ToString("yyyy-MM-dd");
                //前台是空的时候传过来的是"0001-01-01"
                if (tzrqTime.StartsWith("0001") == false)
                {
                    //2018-01-01:10位数只计算到天数
                    list.Add($"convert(varchar(10),ResTzrq,121) <= '{tzrqTime}'");
                }
            }
            //没有是全部
            if (list.Count != 0)
            {
                wherePart = string.Join(" and ", list);
            }
            wherePart = string.Join(" And ", list);
            var sql = "select resnm,ResZybh,ResZymc,reslbmc from fqres";

            if (!string.IsNullOrEmpty(wherePart))
            {
                sql = string.Concat(sql, " where ", wherePart);
            }

            var resList = new List <ResInfo>();
            var ds      = Utility.CurDatabase.ExecuteDataSet(sql);

            if (!DataSetValidator.IsDatasetValid(ds))
            {
                return(resList);
            }
            foreach (DataRow item in ds.Tables[0].Rows)
            {
                var resInfo = new ResInfo();
                resInfo.Resnm   = item["resnm"].ToString();
                resInfo.Reszybh = item["ResZybh"].ToString();
                resInfo.Reszymc = item["ResZymc"].ToString();
                resList.Add(resInfo);
            }
            return(resList);
        }
Example #9
0
        private List <HtInfo> GetHtInfo(IQueryServerContext context)
        {
            var wherePart = string.Empty;
            var list      = new List <string>();

            //合同类别名称
            if (!string.IsNullOrEmpty(context["htlbmc"]))
            {
                list.Add($"htlb = '{context["htlbmc"]}'");
            }
            //合同编号
            if (!string.IsNullOrEmpty(context["htbh"]))
            {
                list.Add($"htbh = '{context["htbh"]}'");
            }
            //合同名称
            if (!string.IsNullOrEmpty(context["htmc"]))
            {
                list.Add($"htmc = '{context["htmc"]}'");
            }
            //合同核算单位
            if (!string.IsNullOrEmpty(context["hsdwbh"]))
            {
                list.Add($"hthsdwbh = '{context["hsdwbh"]}'");
            }
            //合同签订日期
            if (!string.IsNullOrEmpty(context["tzrq"]))
            {
                var tzrqTime = Convert.ToDateTime(context["tzrq"]).ToString("yyyy-MM-dd");
                //前台是空的时候传过来的是"0001-01-01"
                if (tzrqTime.StartsWith("0001") == false)
                {
                    list.Add($"convert(varchar(10),htqdrq,121) <= '{tzrqTime}'");
                }
            }
            //没有是全部
            if (list.Count != 0)
            {
                wherePart = string.Join(" and ", list);
            }
            wherePart = string.Join(" And ", list);
            var sql = "select htnm,htbh,htmc,htlb from rescontract";

            if (!string.IsNullOrEmpty(wherePart))
            {
                sql = string.Concat(sql, " where ", wherePart);
            }

            var htList = new List <HtInfo>();
            var ds     = Utility.CurDatabase.ExecuteDataSet(sql);

            if (!DataSetValidator.IsDatasetValid(ds))
            {
                return(htList);
            }
            foreach (DataRow item in ds.Tables[0].Rows)
            {
                var htInfo = new HtInfo();
                htInfo.Htnm = item["htnm"].ToString();
                htInfo.Htbh = item["htbh"].ToString();
                htInfo.Htmc = item["htmc"].ToString();
                htList.Add(htInfo);
            }

            return(htList);
        }