binxie
2023-06-26 1b3fb93f787b8b546a307bf063183f5295d183f8
force-app/main/default/classes/LogAutoSendBatch.cls
@@ -1,15 +1,9 @@
global class LogAutoSendBatch implements Database.Batchable<sObject>, Database.AllowsCallouts, Database.Stateful {
    private String typeNFM;
    private String messageGroupNumber;
    private Datetime times;
    private Boolean isForecast;// 20220318 ljh SWAG-CC54R2 add  
    private String loginId;
     //20230203 lt 计划的作业优化  一小时两次 start
     private BatchEmailUtil.ScBean scB1;
     //20230203 lt 计划的作业优化  一小时两次 end
    /**
     * コンスタント
     */
@@ -43,53 +37,102 @@
     */
    public Integer max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt);
    global Database.QueryLocator start(Database.BatchableContext BC) {
        //20230203 lt 计划的作业优化  一小时两次 start
        scB1 = BatchEmailUtil.setSc1('LogAutoSendSchedule', 0, 23, 0, '0 30 *', null);
        if (System.Test.isRunningTest() == false) {
            for(CronTrigger ct : [SELECT Id FROM CronTrigger WHERE CronJobDetail.Name =: scB1.scName]) {
                System.abortJob(ct.Id);
            }
            system.schedule(scB1.scName, scB1.scTime, new LogAutoSendSchedule());
        }
        //20230203 lt 计划的作业优化  一小时两次 end
        String profileId = UserInfo.getProfileId();
        // 20220318 ljh SWAG-CC54R2 add start
        if(String.isNotBlank(typeNFM) && typeNFM == 'NFM010' && String.isBlank(messageGroupNumber)){
            return Database.getQueryLocator(
                [SELECT Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c,
                 Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, Type__c,
                 retry_cnt__c, NFM501Future_Count__c, NFM501_Web_Annex_Count__c
                [
                    SELECT
                        Id,
                        Name,
                        Log__c,
                        ErrorLog__c,
                        Log2__c,
                        Log3__c,
                        Log4__c,
                        Log5__c,
                        Log6__c,
                        Log7__c,
                        Log8__c,
                        Log9__c,
                        Log10__c,
                        Log11__c,
                        Log12__c,
                        MessageGroupNumber__c,
                        Type__c,
                        retry_cnt__c,
                        NFM501Future_Count__c,
                        NFM501_Web_Annex_Count__c
                 FROM BatchIF_Log__c
                 WHERE RowDataFlg__c = true
                 AND (retry_cnt__c = null OR (retry_cnt__c != null AND retry_cnt__c > 0 AND retry_cnt__c < : max_cnt))
                 AND Type__c = : typeNFM ]
                    WHERE
                        RowDataFlg__c = TRUE
                        AND (retry_cnt__c = NULL
                        OR (retry_cnt__c != NULL
                        AND retry_cnt__c > 0
                        AND retry_cnt__c < :max_cnt))
                        AND Type__c = :typeNFM
                ]
                );
        }
        // gzw 603 重发判断 暂时用
        // ljh只执行自己这条日志,而且这个日志retry_cnt__c不是0
        else if (String.isNotBlank(loginId)) {
            return Database.getQueryLocator(
                [SELECT Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c,
                    Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, Type__c,
                    retry_cnt__c, NFM501Future_Count__c, NFM501_Web_Annex_Count__c
                [
                    SELECT
                        Id,
                        Name,
                        Log__c,
                        ErrorLog__c,
                        Log2__c,
                        Log3__c,
                        Log4__c,
                        Log5__c,
                        Log6__c,
                        Log7__c,
                        Log8__c,
                        Log9__c,
                        Log10__c,
                        Log11__c,
                        Log12__c,
                        MessageGroupNumber__c,
                        Type__c,
                        retry_cnt__c,
                        NFM501Future_Count__c,
                        NFM501_Web_Annex_Count__c
                    FROM BatchIF_Log__c
                    WHERE RowDataFlg__c = true
                    AND retry_cnt__c != 0
                    AND id = : loginId ]
                    WHERE RowDataFlg__c = TRUE AND retry_cnt__c != 0 AND id = :loginId
                ]
                );
        }
        // gzw 603 重发判断 暂时用
        // 2023-01-19   zyh   add start
        else if (String.isNotBlank(typeNFM) && String.isNotBlank(messageGroupNumber) && times == null) {
            return Database.getQueryLocator(
                [SELECT Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c,
                 Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, Type__c,
                 retry_cnt__c, NFM501Future_Count__c, NFM501_Web_Annex_Count__c
                [
                    SELECT
                        Id,
                        Name,
                        Log__c,
                        ErrorLog__c,
                        Log2__c,
                        Log3__c,
                        Log4__c,
                        Log5__c,
                        Log6__c,
                        Log7__c,
                        Log8__c,
                        Log9__c,
                        Log10__c,
                        Log11__c,
                        Log12__c,
                        MessageGroupNumber__c,
                        Type__c,
                        retry_cnt__c,
                        NFM501Future_Count__c,
                        NFM501_Web_Annex_Count__c
                 FROM BatchIF_Log__c
                 WHERE RowDataFlg__c = true
                                       AND Type__c = : typeNFM AND MessageGroupNumber__c = : messageGroupNumber
                    WHERE RowDataFlg__c = TRUE AND Type__c = :typeNFM AND MessageGroupNumber__c = :messageGroupNumber
                                                    ]
                );
        }
@@ -99,43 +142,115 @@
        //20191224 HWAG-BK65E8 add start
        // if (String.isNotBlank(typeNFM) && String.isNotBlank(messageGroupNumber) && times != null) {
            return Database.getQueryLocator(
                [SELECT Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c,
                 Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, Type__c,
                 retry_cnt__c, NFM501Future_Count__c, NFM501_Web_Annex_Count__c
                [
                    SELECT
                        Id,
                        Name,
                        Log__c,
                        ErrorLog__c,
                        Log2__c,
                        Log3__c,
                        Log4__c,
                        Log5__c,
                        Log6__c,
                        Log7__c,
                        Log8__c,
                        Log9__c,
                        Log10__c,
                        Log11__c,
                        Log12__c,
                        MessageGroupNumber__c,
                        Type__c,
                        retry_cnt__c,
                        NFM501Future_Count__c,
                        NFM501_Web_Annex_Count__c
                 FROM BatchIF_Log__c
                 WHERE RowDataFlg__c = true
                    WHERE
                        RowDataFlg__c = TRUE
                                         AND Type__c != 'NFM007'  // 2023-01-18   ZYH   ADD
                                        AND Type__c = : typeNFM AND CreatedDate >= : times AND MessageGroupNumber__c >= : messageGroupNumber
                                                     order by MessageGroupNumber__c asc ]
                        AND Type__c = :typeNFM
                        AND CreatedDate >= :times
                        AND MessageGroupNumber__c >= :messageGroupNumber
                    ORDER BY MessageGroupNumber__c ASC
                ]
                );
            //20191224 HWAG-BK65E8 add end
        } else if (profileId.left(15).equals('00e10000000dzzG') || profileId.left(15).equals('00e10000000Y3o5')) {
            return Database.getQueryLocator(
                [SELECT Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c,
                 Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, Type__c,
                 retry_cnt__c, NFM501Future_Count__c, NFM501_Web_Annex_Count__c
                [
                    SELECT
                        Id,
                        Name,
                        Log__c,
                        ErrorLog__c,
                        Log2__c,
                        Log3__c,
                        Log4__c,
                        Log5__c,
                        Log6__c,
                        Log7__c,
                        Log8__c,
                        Log9__c,
                        Log10__c,
                        Log11__c,
                        Log12__c,
                        MessageGroupNumber__c,
                        Type__c,
                        retry_cnt__c,
                        NFM501Future_Count__c,
                        NFM501_Web_Annex_Count__c
                 FROM BatchIF_Log__c
                 WHERE RowDataFlg__c = true
                    WHERE
                        RowDataFlg__c = TRUE
                                         AND Type__c != 'NFM007'  // 2023-01-18   ZYH   ADD
                                        AND ((retry_cnt__c != null AND retry_cnt__c > 0 AND retry_cnt__c < : max_cnt)
                                            OR (NFM501Future_Count__c != null
                                                AND NFM501Future_Count__c > 0 AND NFM501Future_Count__c < : max_cnt)
                                            OR(NFM501_Web_Annex_Count__c != null
                                               AND NFM501_Web_Annex_Count__c > 0 AND NFM501_Web_Annex_Count__c < : max_cnt))]
                        AND ((retry_cnt__c != NULL
                        AND retry_cnt__c > 0
                        AND retry_cnt__c < :max_cnt)
                        OR (NFM501Future_Count__c != NULL
                        AND NFM501Future_Count__c > 0
                        AND NFM501Future_Count__c < :max_cnt)
                        OR (NFM501_Web_Annex_Count__c != NULL
                        AND NFM501_Web_Annex_Count__c > 0
                        AND NFM501_Web_Annex_Count__c < :max_cnt))
                ]
                );
        }else {
            return Database.getQueryLocator(
                [SELECT Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c,
                 Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, Type__c,
                 retry_cnt__c, NFM501Future_Count__c, NFM501_Web_Annex_Count__c
                [
                    SELECT
                        Id,
                        Name,
                        Log__c,
                        ErrorLog__c,
                        Log2__c,
                        Log3__c,
                        Log4__c,
                        Log5__c,
                        Log6__c,
                        Log7__c,
                        Log8__c,
                        Log9__c,
                        Log10__c,
                        Log11__c,
                        Log12__c,
                        MessageGroupNumber__c,
                        Type__c,
                        retry_cnt__c,
                        NFM501Future_Count__c,
                        NFM501_Web_Annex_Count__c
                 FROM BatchIF_Log__c
                 WHERE RowDataFlg__c = true
                    WHERE
                        RowDataFlg__c = TRUE
                                         AND Type__c != 'NFM007'  // 2023-01-18   ZYH   ADD
                                        AND ((retry_cnt__c != null AND retry_cnt__c > 0 AND retry_cnt__c < : max_cnt)
                                            OR (NFM501Future_Count__c != null
                                                AND NFM501Future_Count__c > 0 AND NFM501Future_Count__c < : max_cnt)
                                            OR(NFM501_Web_Annex_Count__c != null
                                               AND NFM501_Web_Annex_Count__c > 0 AND NFM501_Web_Annex_Count__c < : max_cnt))
                        AND ((retry_cnt__c != NULL
                        AND retry_cnt__c > 0
                        AND retry_cnt__c < :max_cnt)
                        OR (NFM501Future_Count__c != NULL
                        AND NFM501Future_Count__c > 0
                        AND NFM501Future_Count__c < :max_cnt)
                        OR (NFM501_Web_Annex_Count__c != NULL
                        AND NFM501_Web_Annex_Count__c > 0
                        AND NFM501_Web_Annex_Count__c < :max_cnt))
                                       AND ownerId = : UserInfo.getUserId()
                                       ORDER BY CreatedDate // 2023-02-04   ZYH   ADD
                                       ]
@@ -163,12 +278,14 @@
            if (strType_c == 'NFM001') {
                NFM001Controller.execute(rowData, null);
            }
            if (strType_c == 'NFM002') {
                NFM002WebService.execute(rowData.Id);
            }
            if (strType_c == 'NFM006') {
                NFM006WebService.execute(rowData.Id);
            }
            // 清理Apex 20230428 LHJ Start
            //if (strType_c == 'NFM002') {
            //    NFM002WebService.execute(rowData.Id);
            //}
            //if (strType_c == 'NFM006') {
            //    NFM006WebService.execute(rowData.Id);
            //}
            // 清理Apex 20230428 LHJ End
            if (strType_c == 'NFM007') {
                NFM007Controller.execute(rowData, null);
            }
@@ -330,17 +447,20 @@
            // if (strType_c == 'NFM624') {//智慧医疗pk
            //     NFM624Rest.main(rowData.Id);
            // }
            if (strType_c == 'NFM624Rest2') {//智慧医疗pk
            if (strType_c == 'NFM624Rest2') {
                //智慧医疗pk
                NFMUtil.againSendToAWS624(rowData.Id);
            }
            //zhj 新方案改造 2023-01-06 end
            if (strType_c == 'NFM622') {
                NFM622Controller.execute(rowData, null);
            }
            if (strType_c == 'NFM112') {//先款后修pk
            if (strType_c == 'NFM112') {
                //先款后修pk
                NFM112Controller.ManualExecute(rowData.id);
            }
            if (strType_c == 'NFM113') {//先款后修pk
            if (strType_c == 'NFM113') {
                //先款后修pk
                NFM113Rest.main(rowData.id);
            }
            if (strType_c == 'NFM701') {
@@ -534,8 +654,6 @@
    }
    global void finish(Database.BatchableContext BC) {
        BatchEmailUtil.removeOtherSc('LogAutoSendSchedule', scB1.scName);  //20230203 lt 计划的作业优化
        // 今回はやることないです
        // 20220318 ljh SWAG-CC54R2 add start
        if(String.isNotBlank(typeNFM) && typeNFM == 'NFM010' && isForecast){