<?xml version="1.0"?>
<Entity>
	<Name>Unit</Name>
	<Type>Single</Type>
	<Table>
		<Name>Unit</Name>
		<Column>
			<Name>UnitCode</Name>
			<DataType>System.String</DataType>
			<IsKey>true</IsKey>
			<IsAllowNull>false</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>U8Code</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>SortID</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>UnitName</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>100</ColumnSize>
		</Column>
		<Column>
			<Name>ParentUnitCode</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Deep</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>FullCode</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>200</ColumnSize>
		</Column>
		<Column>
			<Name>Principal</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>Remark</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>800</ColumnSize>
		</Column>
		<Column>
			<Name>UnitType</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>RelaCode</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>SubjectSetCode</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>50</ColumnSize>
		</Column>
		<Column>
			<Name>SelfAccount</Name>
			<DataType>System.Int32</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>4</ColumnSize>
		</Column>
		<Column>
			<Name>ExpandParentUnitCode</Name>
			<DataType>System.String</DataType>
			<IsKey>false</IsKey>
			<IsAllowNull>true</IsAllowNull>
			<ColumnSize>100</ColumnSize>
		</Column>
		<Sql>
			<Name>Select</Name>
			<String>select * from Unit where  UnitCode=@UnitCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@UnitCode</Name>
				<Column>UnitCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>SelectAll</Name>
			<String>select * from Unit</String>
			<CommandType>Text</CommandType>
		</Sql>
		<Sql>
			<Name>Insert</Name>
			<String> Insert into Unit (  UnitCode, U8Code, SortID, UnitName, ParentUnitCode, Deep, FullCode, Principal, Remark, UnitType, RelaCode, SubjectSetCode, SelfAccount, ExpandParentUnitCode ) values (  @UnitCode, @U8Code, @SortID, @UnitName, @ParentUnitCode, @Deep, @FullCode, @Principal, @Remark, @UnitType, @RelaCode, @SubjectSetCode, @SelfAccount, @ExpandParentUnitCode )</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@UnitCode</Name>
				<Column>UnitCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@U8Code</Name>
				<Column>U8Code</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SortID</Name>
				<Column>SortID</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@UnitName</Name>
				<Column>UnitName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@ParentUnitCode</Name>
				<Column>ParentUnitCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Deep</Name>
				<Column>Deep</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@FullCode</Name>
				<Column>FullCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Principal</Name>
				<Column>Principal</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Remark</Name>
				<Column>Remark</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@UnitType</Name>
				<Column>UnitType</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@RelaCode</Name>
				<Column>RelaCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectSetCode</Name>
				<Column>SubjectSetCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SelfAccount</Name>
				<Column>SelfAccount</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@ExpandParentUnitCode</Name>
				<Column>ExpandParentUnitCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>Update</Name>
			<String> Update Unit set U8Code=@U8Code,SortID=@SortID,UnitName=@UnitName,ParentUnitCode=@ParentUnitCode,Deep=@Deep,FullCode=@FullCode,Principal=@Principal,Remark=@Remark,UnitType=@UnitType,RelaCode=@RelaCode,SubjectSetCode=@SubjectSetCode,SelfAccount=@SelfAccount,ExpandParentUnitCode=@ExpandParentUnitCode where  UnitCode=@UnitCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@UnitCode</Name>
				<Column>UnitCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@U8Code</Name>
				<Column>U8Code</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SortID</Name>
				<Column>SortID</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@UnitName</Name>
				<Column>UnitName</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@ParentUnitCode</Name>
				<Column>ParentUnitCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Deep</Name>
				<Column>Deep</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@FullCode</Name>
				<Column>FullCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Principal</Name>
				<Column>Principal</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@Remark</Name>
				<Column>Remark</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@UnitType</Name>
				<Column>UnitType</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@RelaCode</Name>
				<Column>RelaCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SubjectSetCode</Name>
				<Column>SubjectSetCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
			<Param>
				<Name>@SelfAccount</Name>
				<Column>SelfAccount</Column>
				<SqlDbType>Int</SqlDbType>
			</Param>
			<Param>
				<Name>@ExpandParentUnitCode</Name>
				<Column>ExpandParentUnitCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>Delete</Name>
			<String> Delete from Unit  where  UnitCode=@UnitCode</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@UnitCode</Name>
				<Column>UnitCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>GetUnitByUserCode</Name>
			<String>select * from unit where unitcode in (select unitcode from station where stationcode in (select stationcode from userrole where usercode = @userCode))</String>
			<CommandType>Text</CommandType>
			<Param>
				<Name>@userCode</Name>
				<Column>userCode</Column>
				<SqlDbType>VarChar</SqlDbType>
			</Param>
		</Sql>
		<Sql>
			<Name>SelectChildCount</Name>
			<String> select *, dbo.GetUserName(Principal) as PrincipalName ,(select count(*) from Unit where ParentUnitCode = a.UnitCode ) as ChildCount, dbo.GetUnitUserCount(UnitCode) as UserCount from Unit a</String>
			<CommandType>Text</CommandType>
		</Sql>
		<Sql>
			<Name>SelectOBS</Name>
			<String> select *, dbo.GetUserName(Principal) as PrincipalName, dbo.GetOBSUnitChildCount(UnitCode) as ChildCount, dbo.GetUnitUserCount(UnitCode) as UserCount  from Unit</String>
			<CommandType>Text</CommandType>
		</Sql>
		<Sql>
			<Name>SelectChildCountOnlyHasUser</Name>
			<String> select *, dbo.GetUserName(Principal) as PrincipalName ,(select count(*) from Unit where ParentUnitCode = a.UnitCode and dbo.GetUnitUserCount(UnitCode) > 0) as ChildCount, dbo.GetUnitUserCount(UnitCode) as UserCount from Unit a</String>
			<CommandType>Text</CommandType>
		</Sql>
		<Sql>
			<Name>SelectOBSOnlyHasUser</Name>
			<String> select *, dbo.GetUserName(Principal) as PrincipalName, dbo.GetOBSUnitChildCountOnlyHasUser(UnitCode) as ChildCount, dbo.GetUnitUserCount(UnitCode) as UserCount  from Unit a</String>
			<CommandType>Text</CommandType>
		</Sql>
		<Sql>
			<Name>SelectFullName</Name>
			<String> select  *, dbo.GetUnitFullName(UnitCode) as UnitFullName from Unit</String>
			<CommandType>Text</CommandType>
		</Sql>
		<Sql>
			<Name>SelectOnlyFullName</Name>
			<String> select UnitCode,dbo.GetUnitFullName(UnitCode) as UnitFullName from Unit</String>
			<CommandType>Text</CommandType>
		</Sql>
		<Sql>
			<Name>SelectOnlyFullCode</Name>
			<String> select UnitCode,FullCode from Unit</String>
			<CommandType>Text</CommandType>
		</Sql>
	</Table>
</Entity>