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 Boolean isForecast; // 20220318 ljh SWAG-CC54R2 add
    private String loginId;
     //20230203 lt 计划的作业优化  一小时两次 start
     private BatchEmailUtil.ScBean scB1;
     //20230203 lt 计划的作业优化  一小时两次 end
    /**
     * コンスタント
     */
@@ -19,14 +13,14 @@
        this.loginId = loginId;
    }
    // 2023-1-19 zyh DB202301301244 add start
    global LogAutoSendBatch(String type,String message) {
    global LogAutoSendBatch(String type, String message) {
        this.typeNFM = type;
        this.messageGroupNumber = message;
        System.debug('type++++++'+type + 'message+++++' + message);
        System.debug('type++++++' + type + 'message+++++' + message);
    }
    // 2023-1-19 zyh DB202301301244 add end
    // 20220318 ljh SWAG-CC54R2 add start
    global LogAutoSendBatch(String type,Boolean isForecast) {
    global LogAutoSendBatch(String type, Boolean isForecast) {
        this.typeNFM = type;
        this.isForecast = isForecast;
    }
@@ -43,103 +37,224 @@
     */
    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)){
        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
                 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 ]
                );
                [
                    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
                ]
            );
        }
        // 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
                 FROM BatchIF_Log__c
                 WHERE RowDataFlg__c = true
                                       AND Type__c = : typeNFM AND MessageGroupNumber__c = : messageGroupNumber
                                                    ]
                );
                [
                    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
                ]
            );
        }
        // 2023-01-19   zyh   add end
        else if (String.isNotBlank(typeNFM) && String.isNotBlank(messageGroupNumber) && times != null) {
        // 20220318 ljh SWAG-CC54R2 add end
        //20191224 HWAG-BK65E8 add start
        // if (String.isNotBlank(typeNFM) && String.isNotBlank(messageGroupNumber) && times != null) {
            // 20220318 ljh SWAG-CC54R2 add end
            //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
                 FROM BatchIF_Log__c
                 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 ]
                );
                [
                    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 != 'NFM007' // 2023-01-18   ZYH   ADD
                        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
                 FROM BatchIF_Log__c
                 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))]
                );
        }else {
                [
                    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 != '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))
                ]
            );
        } 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
                 FROM BatchIF_Log__c
                 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 ownerId = : UserInfo.getUserId()
                                       ORDER BY CreatedDate // 2023-02-04   ZYH   ADD
                                       ]
                );
                [
                    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 != '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 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);
            }
@@ -225,17 +342,17 @@
            }
            // 2021/12/1 fxk add Star
            if (strType_c == 'NFM115') {
                NFM115Controller.execute(rowData,null);
                NFM115Controller.execute(rowData, null);
            }
            if (strType_c == 'NFM114') {
                NFM114Rest.main(rowData.Id);
            }
            // 2021/12/1 fxk add End
            // // 电子签收单发送SAP接口 thh 20220427 start
            // // 电子签收单发送SAP接口 thh 20220427 start
            if (strType_c == 'NFM116') {
                NFM116Controller.execute(rowData,null);
                NFM116Controller.execute(rowData, null);
            }
            // // 电子签收单发送SAP接口 thh 20220427 end
            // // 电子签收单发送SAP接口 thh 20220427 end
            // XLIU-CEW9PD 零件预计齐备日期 -SFDC增加 LY 20220610 start
            if (strType_c == 'NFM117') {
                NFM117Rest.main(rowData.Id);
@@ -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,13 +654,11 @@
    }
    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){
        if (String.isNotBlank(typeNFM) && typeNFM == 'NFM010' && isForecast) {
            Id execBTId = Database.executeBatch(new BeforeSSOpportunityBatch(), 100);
        }
        // 20220318 ljh SWAG-CC54R2 add end
    }
}
}