Parcourir la source

升级功能,全量录入改为增量录入

zhang_kun il y a 6 jours
Parent
commit
c069df23af

+ 83 - 34
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mybatis/BondMapper.xml

@@ -7,14 +7,26 @@
     <!-- 初始化与按查询条件查询 -->
     <select id="selectDataList" resultType="com.sundata.product.rwa.rwacalcconfigdataparam.model.BondModel" parameterType="com.sundata.product.rwa.rwacalcconfigdataparam.model.BondModel">
         SELECT 
-			DATA_DATE AS dataDate,
-			DEBTITEM_NO AS loanReferenceNo,
-			CLIENT_NAME AS custName ,
-			SECURITY_CODE AS securityCode,
-			SECURITY_NAME AS securityName,
-			GENERAL_SPECIAL_FLAG AS generalSpecialFlag,
-			CASE WHEN GENERAL_SPECIAL_FLAG='G' THEN '一般债' WHEN GENERAL_SPECIAL_FLAG='S' THEN '专项债' end AS generalSpecialFlagName
+			T1.DATA_DATE AS dataDate,
+			T1.DEBTITEM_NO AS loanReferenceNo,
+			T1.CLIENT_NAME AS custName ,
+			T1.SECURITY_CODE AS securityCode,
+			T1.SECURITY_NAME AS securityName,
+			coalesce(T2.GENERAL_SPECIAL_FLAG,T1.GENERAL_SPECIAL_FLAG) AS generalSpecialFlag,
+			CASE WHEN coalesce(T2.GENERAL_SPECIAL_FLAG,T1.GENERAL_SPECIAL_FLAG)='G' THEN '一般债' WHEN coalesce(T2.GENERAL_SPECIAL_FLAG,T1.GENERAL_SPECIAL_FLAG)='S' THEN '专项债' end AS generalSpecialFlagName
 		FROM RWA_BDM_BS_FF_SEC_POSIT T1
+		LEFT JOIN (SELECT
+						debtitem_no,
+						general_special_flag,
+						ROW_NUMBER() OVER(
+							PARTITION BY debtitem_no
+						ORDER BY
+							data_date DESC
+						) rn
+					FROM
+						RWA_BDM_BUS_ITM_FF_BONDTP_INPUT
+					WHERE
+						general_special_flag IS NOT NULL) T2 on t1.DEBTITEM_NO=t2.DEBTITEM_NO and T2.rn=1
         <where>
         	T1.DATA_DATE=(SELECT MAX(DATA_DATE) FROM RWA_BDM_BS_FF_SEC_POSIT) and  SECURITY_TYPE='M'
             <if test="model.loanReferenceNo != null and '' != model.loanReferenceNo">
@@ -31,15 +43,28 @@
     </select>
 
     <select id="selectDataList1" resultType="com.sundata.product.rwa.rwacalcconfigdataparam.model.BondModel">
-            SELECT 
-			DATA_DATE AS dataDate,
-			DEBTITEM_NO AS loanReferenceNo,
-			CLIENT_NAME AS custName ,
-			SECURITY_CODE AS securityCode,
-			SECURITY_NAME AS securityName,
-			CASE WHEN GENERAL_SPECIAL_FLAG='G' THEN '一般债' WHEN GENERAL_SPECIAL_FLAG='S' THEN '专项债' end AS generalSpecialFlagName
+          SELECT 
+			T1.DATA_DATE AS dataDate,
+			T1.DEBTITEM_NO AS loanReferenceNo,
+			T1.CLIENT_NAME AS custName ,
+			T1.SECURITY_CODE AS securityCode,
+			T1.SECURITY_NAME AS securityName,
+			coalesce(T2.GENERAL_SPECIAL_FLAG,T1.GENERAL_SPECIAL_FLAG) AS generalSpecialFlag,
+			CASE WHEN coalesce(T2.GENERAL_SPECIAL_FLAG,T1.GENERAL_SPECIAL_FLAG)='G' THEN '一般债' WHEN coalesce(T2.GENERAL_SPECIAL_FLAG,T1.GENERAL_SPECIAL_FLAG)='S' THEN '专项债' end AS generalSpecialFlagName
 		FROM RWA_BDM_BS_FF_SEC_POSIT T1
-		where T1.DATA_DATE=(SELECT MAX(DATA_DATE) FROM RWA_BDM_BS_FF_SEC_POSIT) and SECURITY_TYPE='M'
+		LEFT JOIN (SELECT
+						debtitem_no,
+						general_special_flag,
+						ROW_NUMBER() OVER(
+							PARTITION BY debtitem_no
+						ORDER BY
+							data_date DESC
+						) rn
+					FROM
+						RWA_BDM_BUS_ITM_FF_BONDTP_INPUT
+					WHERE
+						general_special_flag IS NOT NULL) T2 on t1.DEBTITEM_NO=t2.DEBTITEM_NO and T2.rn=1
+		where T1.DATA_DATE=(SELECT MAX(DATA_DATE) FROM RWA_BDM_BS_FF_SEC_POSIT) and T1.SECURITY_TYPE='M' and t2.GENERAL_SPECIAL_FLAG is null
     </select>
 
     <!-- 修改数据 -->
@@ -47,7 +72,7 @@
        update RWA_BDM_BS_FF_SEC_POSIT
         set GENERAL_SPECIAL_FLAG=coalesce((SELECT nounvalue FROM sys_noun WHERE nounitem='bondflag' AND nounname=#{model.generalSpecialFlagName}),#{model.generalSpecialFlag})
         where
-            DEBTITEM_NO =#{model.loanReferenceNo}
+            DEBTITEM_NO=#{model.loanReferenceNo}
             and DATA_DATE=#{model.dataDate} and SECURITY_TYPE='M'
     </update>
 
@@ -98,32 +123,56 @@
         SECURITY_NAME,
         GENERAL_SPECIAL_FLAG
         )
-        select 
-         DATA_DATE,
-        DEBTITEM_NO,
-        CLIENT_NAME,
-        SECURITY_CODE,
-        SECURITY_NAME,
-        GENERAL_SPECIAL_FLAG
-        from RWA_BDM_BS_FF_SEC_POSIT
-        where DATA_DATE=#{model.dataDate} and SECURITY_TYPE='M'
+        SELECT 
+			T1.DATA_DATE AS dataDate,
+			T1.DEBTITEM_NO AS loanReferenceNo,
+			T1.CLIENT_NAME AS custName ,
+			T1.SECURITY_CODE AS securityCode,
+			T1.SECURITY_NAME AS securityName,
+			coalesce(T2.GENERAL_SPECIAL_FLAG,T1.GENERAL_SPECIAL_FLAG) AS generalSpecialFlag
+		FROM RWA_BDM_BS_FF_SEC_POSIT T1
+		LEFT JOIN (SELECT
+						debtitem_no,
+						general_special_flag,
+						ROW_NUMBER() OVER(
+							PARTITION BY debtitem_no
+						ORDER BY
+							data_date DESC
+						) rn
+					FROM
+						RWA_BDM_BUS_ITM_FF_BONDTP_INPUT
+					WHERE
+						general_special_flag IS NOT NULL) T2 on t1.DEBTITEM_NO=t2.DEBTITEM_NO and T2.rn=1
+        where t1.DATA_DATE=#{model.dataDate} and t1.SECURITY_TYPE='M'
     </insert>
 
     <!-- 查询当前行(修改用) -->
     <select id="selectRowData"
             parameterType="com.sundata.product.rwa.rwacalcconfigdataparam.model.BondModel"
             resultType="com.sundata.product.rwa.rwacalcconfigdataparam.model.BondModel">
-        SELECT 
-			DATA_DATE AS dataDate,
-			DEBTITEM_NO AS loanReferenceNo,
-			CLIENT_NAME AS custName ,
-			SECURITY_CODE AS securityCode,
-			SECURITY_NAME AS securityName,
-			GENERAL_SPECIAL_FLAG AS generalSpecialFlag
+         SELECT 
+			T1.DATA_DATE AS dataDate,
+			T1.DEBTITEM_NO AS loanReferenceNo,
+			T1.CLIENT_NAME AS custName ,
+			T1.SECURITY_CODE AS securityCode,
+			T1.SECURITY_NAME AS securityName,
+			T1.GENERAL_SPECIAL_FLAG AS generalSpecialFlag
 		FROM RWA_BDM_BS_FF_SEC_POSIT T1
+		LEFT JOIN (SELECT
+						debtitem_no,
+						general_special_flag,
+						ROW_NUMBER() OVER(
+							PARTITION BY debtitem_no
+						ORDER BY
+							data_date DESC
+						) rn
+					FROM
+						RWA_BDM_BUS_ITM_FF_BONDTP_INPUT
+					WHERE
+						general_special_flag IS NOT NULL) T2 on t1.DEBTITEM_NO=t2.DEBTITEM_NO and T2.rn=1
         <where>
-            DEBTITEM_NO = #{model.loanReferenceNo}
-            and DATA_DATE= #{model.dataDate}
+            t1.DEBTITEM_NO = #{model.loanReferenceNo}
+            and t1.DATA_DATE= #{model.dataDate}
         </where>
     </select>