码迷,mamicode.com
首页 > 其他好文 > 详细

SP-sample

时间:2015-02-25 07:00:52      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
USE [APPLICATION_DEV]
GO
/****** Object:  StoredProcedure [dbo].[SPAA_SEL_INFO_LIST]    Script Date: 12/08/2014 14:49:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- $Id: dbo.SPAA_SEL_INFO_LIST.StoredProcedure.sql 1063 2012-01-13 08:57:33Z ubukata $
-- Create date : 2011/11/07
-- Description : お知らせ取得
--             : 担当者コードから、申請者/申請者上長向け/事務局向けのお知らせ内容を取得する
--             : 事務局レコードの必要有無をフラグにしているのは、システム管理者が事務局お知らせを取得するように考慮したため
--             : ===== 2012/01/13 #158 =====
--             : ?差し戻し系ステータスでの色変更のため、ステータスNoも返すように変更
-- ==========================================================================================
ALTER PROCEDURE [dbo].[SPAA_SEL_INFO_LIST](
      @stf_code        CHAR(5)                -- 担当者コード
     ,@secretariat_flg    CHAR(1)    = 1    -- 事務局お知らせが必要か?
) AS
BEGIN
    --範囲絞込み用の日付を作成する

    DECLARE @NOW DATETIME;
    SET @NOW = GETDATE();

    --開始日
    DECLARE @STA_DATE DATETIME;
    SET @STA_DATE = convert(datetime,convert(char(8),DATEADD(day,-7,getdate()),112),112);

    --終了日
    DECLARE @END_DATE DATETIME;
    SET @END_DATE = convert(datetime,convert(char(8),DATEADD(day,+7,getdate()),112),112);

    SELECT
         INFO_LIST.APPLI_NO
        ,INFO_LIST.MATERIALS_NM_KNJ
        ,INFO_LIST.UPD_DATE
        ,INFO_LIST.STATUS_NO
        ,STAT.STATUS_NAME_2
    FROM (
        --検索:自分向け
        SELECT
             APPL.APPLI_NO
            ,APPL.MATERIALS_NM_KNJ
            ,APPL.UPD_DATE
            ,APPL.STATUS_NO
        FROM
            --申請
            TBAATR_APPLICATION AS APPL
            INNER JOIN (
                --自分が申請者
                SELECT
                     APPLI_NO
                    ,REVISION_NO
                FROM
                    TBAATR_APPLICATION
                WHERE
                    DEL_FLG = 0
                AND    APPLICANT_STF_CODE = @stf_code
                --自分が上長
                UNION
                SELECT
                     APPLI_NO
                    ,REVISION_NO
                FROM
                    TBAATR_APPLICATION
                WHERE
                    DEL_FLG = 0
                AND    SUPERIOR_STF_CODE = @stf_code
            ) AS APPL_OWN
            ON (APPL.APPLI_NO = APPL_OWN.APPLI_NO
            AND APPL.REVISION_NO = APPL_OWN.REVISION_NO)
        WHERE
            APPL.DEL_FLG = 0
        AND    APPL.UPD_DATE BETWEEN @STA_DATE AND @END_DATE
        --次ステータスが、申請者がアクションを起こすべきステータスNo
        --または、次ステータスが、申請者上長がアクションを起こすべきステータスNo
        AND APPL.STATUS_NO IN (
            --次ステータスが、申請者がアクションを起こすべきステータスNo
             10    --作成中
            ,22    --上長差し戻し
            ,34    --事務局差し戻し
            ,41    --審議結果:許可
            ,42    --審議結果:条件付許可
            ,43    --審議結果:留保
            ,53    --事務局差し戻し
            ,54    --委員長許可
            ,55    --委員長差し戻し
            ,72    --公開差し戻し
            --または、次ステータスが、申請者上長がアクションを起こすべきステータスNo
            ,11    --上長申請中
            ,12    --上長再申請中
        )

        UNION ALL
        --検索:事務局向け
        SELECT
             APPL.APPLI_NO
            ,APPL.MATERIALS_NM_KNJ
            ,APPL.UPD_DATE
            ,APPL.STATUS_NO
        FROM
            --申請
            TBAATR_APPLICATION AS APPL
        WHERE
            APPL.DEL_FLG = 0
        AND    APPL.UPD_DATE BETWEEN @STA_DATE AND @END_DATE
        AND @secretariat_flg = 1
        --次ステータスが、事務局がアクションを起こすべきステータスNo
        AND APPL.STATUS_NO IN (
             21    --上長承認済み
            ,31    --事務局受理(未判定)
            ,32    --事務局受理(審議Ⅰ、Ⅱ)
            ,33    --事務局受理(事前審議)
            ,51    --再提出中
            ,52    --事務局受理(再提出)
            ,61    --完成品確認依頼中
        )
    ) AS INFO_LIST
    --申請ステータスマスタ
    INNER JOIN TBAAMS_STATUS AS STAT
    ON(INFO_LIST.STATUS_NO = STAT.STATUS_NO)

    ORDER BY
        INFO_LIST.UPD_DATE DESC
    ;
END
View Code

 

技术分享
USE [APPLICATION_DEV]
GO
/****** Object:  StoredProcedure [dbo].[SPAA_SEL_INFO_STATUS_LIST]    Script Date: 12/08/2014 15:00:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==========================================================================================
-- $Id: dbo.SPAA_SEL_INFO_STATUS_LIST.StoredProcedure.sql 1063 2012-01-13 08:57:33Z ubukata $
-- Create date : 2011/11/07
-- Description : 申請ステータスリスト取得
--             : 担当者コードから申請ステータスのリストを取得する
--             : ===== 2011/11/30 #16 =====
--             : 作成中は事務局でも申請者自身で無い限りは表示しない
--             : ===== 2012/01/13 #158 =====
--             : ?差し戻し系ステータスでの色変更のため、ステータスNoも返すように変更
-- ==========================================================================================
ALTER PROCEDURE [dbo].[SPAA_SEL_INFO_STATUS_LIST](
     @stf_code                CHAR(5)        -- 担当者コード
    ,@secretariat_flg        CHAR(1)        -- 事務局担当者フラグ
) AS
BEGIN

    --検索
    SELECT
         APPL.APPLI_NO
        ,APPL.STATUS_NO AS STATUS_NO
        ,STAT.STATUS_NAME_1
        ,DG.DRUG_NM_KNJ AS DRUG_NAME
        ,STF.STF_NM_KNJ AS APPLICANT_STF_NAME
        ,APPL.MATERIALS_NM_KNJ
        ,MAT.MATERIALS_NM_KNJ AS MATERIALS_CODE_NAME
        ,COMM.COMMITTEE_NO
        --20141022:KAIYO:MOD:START
        ,APPL.APPLICATION_DATE
        --20141022:KAIYO:MOD:END
    FROM
        --申請
        TBAATR_APPLICATION AS APPL
        INNER JOIN (
            --自分が申請者
            SELECT
                 APPLI_NO
                ,REVISION_NO
            FROM
                TBAATR_APPLICATION
            WHERE
                DEL_FLG = 0
            AND    APPLICANT_STF_CODE = CASE WHEN @secretariat_flg=1 THEN APPLICANT_STF_CODE ELSE @stf_code END
            --自分が上長
            UNION
            SELECT
                 APPLI_NO
                ,REVISION_NO
            FROM
                TBAATR_APPLICATION
            WHERE
                DEL_FLG = 0
            AND    SUPERIOR_STF_CODE = CASE WHEN @secretariat_flg=1 THEN SUPERIOR_STF_CODE ELSE @stf_code END
        ) AS APPL_OWN
        ON (APPL.APPLI_NO = APPL_OWN.APPLI_NO
        AND APPL.REVISION_NO = APPL_OWN.REVISION_NO)
        --申請ステータスマスタ
        INNER JOIN TBAAMS_STATUS AS STAT
        ON(APPL.STATUS_NO = STAT.STATUS_NO)
        --審査結果
        LEFT OUTER JOIN (SELECT * FROM TBAATR_INSPECTION_RESULT WHERE DEL_FLG = 0) AS INS_RESULT
        ON (APPL.APPLI_NO = INS_RESULT.APPLI_NO
        AND APPL.REVISION_NO = INS_RESULT.REVISION_NO)
        --委員会審議申請
        LEFT OUTER JOIN (SELECT * FROM TBAARS_COMMITTEE_APPLICATION WHERE DEL_FLG = 0) AS COMM_APPL
        ON (APPL.APPLI_NO = COMM_APPL.APPLI_NO
        AND APPL.REVISION_NO = COMM_APPL.REVISION_NO)
        --委員会
        LEFT OUTER JOIN (SELECT * FROM TBAAMS_COMMITTEE WHERE DEL_FLG = 0) AS COMM
        ON (COMM_APPL.COMMITTEE_NO = COMM.COMMITTEE_NO)
        --薬剤マスタ
        LEFT OUTER JOIN TBCMRS_DRUG_INFO AS DG
        ON (APPL.DRUG = DG.DRUG_CODE)
        --担当者
        LEFT OUTER JOIN TBCMRS_STF_INFO AS STF
        ON (APPL.APPLICANT_STF_CODE = STF.STF_CODE)
        --資材区分情報
        LEFT OUTER JOIN MATERIALS_INFO AS MAT
        ON (APPL.MATERIALS_CODE = MAT.MATERIALS_CODE)
    WHERE
        APPL.DEL_FLG = 0
    --完了状態以外の全てのステータス
    AND (APPL.STATUS_NO IN (
         11    --上長申請中
        ,12    --上長再申請中
        ,21    --上長承認済み
        ,22    --上長差し戻し
        ,31    --事務局受理(未判定)
        ,32    --事務局受理(審議Ⅰ、Ⅱ)
        ,33    --事務局受理(事前審議)
        ,34    --事務局差し戻し
        ,41    --審議結果:許可
        ,42    --審議結果:条件付許可
        ,43    --審議結果:留保
        ,51    --再提出中
        ,52    --事務局受理(再提出)
        ,53    --事務局差し戻し
        ,54    --委員長許可
        ,55    --委員長差し戻し
        ,61    --完成品確認依頼中
        ,72    --公開差し戻し
    )
    OR (
        --作成中は自分自身のみ
            APPL.STATUS_NO = 10
        AND APPL.APPLICANT_STF_CODE = @stf_code
    ))
    ORDER BY
        APPL.APPLI_NO 
    ;
    
END
View Code

.NET

技术分享
//     このコードはツールによって生成されました。
namespace Otsuka.Application.Dal
{
    using System.Data.Linq;
    using System.Data.Linq.Mapping;
    using System.Data;
    using System.Collections.Generic;
    using System.Reflection;
    using System.Linq;
    using System.Linq.Expressions;
    using System.ComponentModel;
    using System;
    
    
    [System.Data.Linq.Mapping.DatabaseAttribute(Name="APPLICATION")]
    public partial class ApplicationDataContext : System.Data.Linq.DataContext
    {
private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
...........................
        [Function(Name="dbo.SPAA_SEL_INFO_LIST")]
        public ISingleResult<SPAA_SEL_INFO_LIST結果> SPAA_SEL_INFO_LIST([Parameter(DbType="Char(5)")] string stf_code, [Parameter(DbType="Char(1)")] System.Nullable<char> secretariat_flg)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), stf_code, secretariat_flg);
            return ((ISingleResult<SPAA_SEL_INFO_LIST結果>)(result.ReturnValue));
        }
        
        [Function(Name="dbo.SPAA_SEL_INFO_STATUS_LIST")]
        public ISingleResult<SPAA_SEL_INFO_STATUS_LIST結果> SPAA_SEL_INFO_STATUS_LIST([Parameter(DbType="Char(5)")] string stf_code, [Parameter(DbType="Char(1)")] System.Nullable<char> secretariat_flg)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), stf_code, secretariat_flg);
            return ((ISingleResult<SPAA_SEL_INFO_STATUS_LIST結果>)(result.ReturnValue));
        }
    

}
View Code


C#呼び出し

技术分享
     protected override Dictionary<string, object> Perform()
        {

            string strStfCode = Request[REQUEST_KEY_STAFF_CODE] as string;

            if (strStfCode == null)
            {
                strStfCode = String.Empty;
            }

            string strSecretariat = Request[REQUEST_KEY_NEED_INFOMATION_4_SECRETARIAT] as string ;

            if (strSecretariat == null)
            {
                strSecretariat = "1";
            }

            // お知らせの検索
            var lstInfo = DataContext.SPAA_SEL_INFO_LIST(strStfCode, strSecretariat.ToCharArray ()[0] ).ToList();

            DateTime now = DateTime.Now;

            // お知らせ(委員会)
            TBAAMS_COMMITTEE committee = (from row in DataContext.TBAAMS_COMMITTEE
                                                where row.DEL_FLG == 0
                                                && row.HOLD_DATE.CompareTo(now.ToString("yyyyMMdd")) >= 0
                                                orderby row.HOLD_DATE
                                                select row).FirstOrDefault();

            if (committee != null && committee.HOLD_INFORM_FLG == 1)
            {
                //直近の委員会で開催案内が出ている場合、追加する
                SPAA_SEL_INFO_LIST結果 comRow = new SPAA_SEL_INFO_LIST結果();

                comRow.APPLI_NO = null;
                comRow.MATERIALS_NM_KNJ = null;
                // 画面表示したくない項目なので、値を設定しない
                //comRow.UPD_DATE = null;
                comRow.STATUS_NO = null;
                comRow.STATUS_NAME_2 = null;
                comRow.COMMITTEE_NO = committee.COMMITTEE_NO;
                comRow.HOLD_DATE = StringUtility .ConvertDateString(committee.HOLD_DATE);

                lstInfo.Insert(0, comRow);
            }

            //申請ステータスの検索
            var lstStatus = DataContext.SPAA_SEL_INFO_STATUS_LIST(strStfCode, char.Parse (strSecretariat)).ToList();

            Dictionary<string, object> response = new Dictionary<string, object>();
            response.Add(RESPONSE_KEY_INFOMATION_LIST, lstInfo);
            response.Add(RESPONSE_KEY_STATUS_LIST, lstStatus);

            return response;
        }
View Code

 

SP-sample

标签:

原文地址:http://www.cnblogs.com/haiy/p/4150998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!