游畅
2023-04-29 cc266a1e4080bb3ecc47ea4a202dd549545111e1
force-app/main/default/classes/LogAutoSendBatch.cls
@@ -1,13 +1,36 @@
global class LogAutoSendBatch implements Database.Batchable<sObject> , Database.AllowsCallouts, Database.Stateful {
global class LogAutoSendBatch implements Database.Batchable<sObject>, Database.AllowsCallouts, Database.Stateful {
    private String typeNFM;
    private String  messageGroupNumber;
    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
    /**
     * コンスタント
     */
    global LogAutoSendBatch() {}
    global LogAutoSendBatch() {
    }
    global LogAutoSendBatch(String loginId) {
        this.loginId = loginId;
    }
    // 2023-1-19 zyh DB202301301244 add start
    global LogAutoSendBatch(String type,String message) {
        this.typeNFM = type;
        this.messageGroupNumber = 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) {
        this.typeNFM = type;
        this.isForecast = isForecast;
    }
    // 20220318 ljh SWAG-CC54R2 add end
    //20191224 HWAG-BK65E8 add start
    global LogAutoSendBatch(String type, String message, Datetime times) {
        this.typeNFM = type;
@@ -21,46 +44,108 @@
    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();
        //20191224 HWAG-BK65E8 add start
        if (String.isNotBlank(typeNFM) && String.isNotBlank(messageGroupNumber) && times != null) {
        // 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
                        FROM BatchIF_Log__c
                        WHERE RowDataFlg__c = true
                                              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 (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
                    FROM BatchIF_Log__c
                    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
                                                    ]
                );
        }
        // 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) {
            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 ]
                );
            //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 ((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 Unexecuted__c > 0 // 2023-4-10   ZYH   ADD
                                         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)
                                            OR Unexecuted__c > 0 // 2023-4-10   ZYH   ADD
                                            )]
                );
        }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 ((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()]
                   );
                [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 Unexecuted__c > 0 // 2023-4-10   ZYH   ADD
                                         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)
                                            OR Unexecuted__c > 0 // 2023-4-10   ZYH   ADD
                                            )
                                       AND ownerId = : UserInfo.getUserId()
                                       ORDER BY CreatedDate // 2023-02-04   ZYH   ADD
                                       ]
                );
        }
    }
@@ -144,6 +229,24 @@
            if (strType_c == 'NFM110') {
                NFM110Rest.main(rowData.Id);
            }
            // 2021/12/1 fxk add Star
            if (strType_c == 'NFM115') {
                NFM115Controller.execute(rowData,null);
            }
            if (strType_c == 'NFM114') {
                NFM114Rest.main(rowData.Id);
            }
            // 2021/12/1 fxk add End
            // // 电子签收单发送SAP接口 thh 20220427 start
            if (strType_c == 'NFM116') {
                NFM116Controller.execute(rowData,null);
            }
            // // 电子签收单发送SAP接口 thh 20220427 end
            // XLIU-CEW9PD 零件预计齐备日期 -SFDC增加 LY 20220610 start
            if (strType_c == 'NFM117') {
                NFM117Rest.main(rowData.Id);
            }
            // XLIU-CEW9PD 零件预计齐备日期 -SFDC增加 LY 20220610 end
            // 三方接口
            if (strType_c == 'NFM201') {
                NFM201Controller.execute(rowData, null);
@@ -166,6 +269,11 @@
            if (strType_c == 'NFM207') {
                NFM207Controller.execute(rowData, null);
            }
            // 贸易合规 you 20230321 start
            if (strType_c == 'NFM209') {
                NFM209Rest.main(rowData.Id);
            }
            // 贸易合规 you 20230321  end
            if (strType_c == 'NFM009') {
                NFM009Controller.execute(rowData, null);
            }
@@ -178,11 +286,11 @@
            if (strType_c == 'NFM401') {
                NFM401Controller.executeAuto(rowData);
            }
         // add tcm 20211207 start
         if (strType_c == 'NFM403') {
            NFM403Rest.main(rowData.Id);
         }
         // add tcm 20211207 end
            // add tcm 20211207 start
            if (strType_c == 'NFM403') {
                NFM403Rest.main(rowData.Id);
            }
            // add tcm 20211207 end
            if (strType_c == 'NFM501' && NFM501Future_Count > 0 && NFM501Future_Count < max_cnt) {
                System.enqueueJob(new NFM501FutureController(rowData.id));
            }
@@ -191,18 +299,155 @@
            }
            if (strType_c == 'NFM601') {
            NFM601Controller.ManualExecute(rowData.Id);
         }
         if (strType_c == 'NFM621') {
            NFM621Controller.execute(rowData, null);
         }
         if (strType_c == 'NFM622') {
            NFM622Controller.execute(rowData, null);
         }
                NFM601Controller.ManualExecute(rowData.Id);
            }
            if (strType_c == 'NFM602') {
                NFM602Controller.ManualExecute(rowData.Id);
            }
            if (strType_c == 'NFM606') {
                NFM606Controller.ManualExecute(rowData.Id);
            }
            if (strType_c == 'NFM603') {
                NFM603Controller.ManualExecute(rowData.Id);
            }
            if (strType_c == 'NFM605') {
                NFM605Controller.ManualExecute(rowData.Id);
            }
            if (strType_c == 'NFM607') {
                NFM607Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM608') {
                NFM608Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM609') {
                NFM609Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM611') {
                NFM611Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM612') {
                NFM612Rest.main(rowData.Id);
            }
            // 2023-3-6   zyh   add   报修子单发送接口测试用
            /*if (strType_c == 'NFM612S') {
                NFM612Controller.ManualExecute(rowData.Id);
            }*/
            // 2023-3-6   zyh   add   报修子单发送接口测试用
            if (strType_c == 'NFM620') {
                NFM620Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM623') {
                NFM623Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM621') {
                NFM621Controller.execute(rowData, null);
            }
            //zhj 新方案改造 2023-01-06 start
            // if (strType_c == 'NFM624') {//智慧医疗pk
            //     NFM624Rest.main(rowData.Id);
            // }
            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
                NFM112Controller.ManualExecute(rowData.id);
            }
            if (strType_c == 'NFM113') {//先款后修pk
                NFM113Rest.main(rowData.id);
            }
            if (strType_c == 'NFM701') {
                NFM701Controller.execute(rowData, null);
            }
            if (strType_c == 'NFM702') {
                NFM702Controller.execute(rowData, null);
            }
            if (strType_c == 'NFM703') {
                NFM703Controller.execute(rowData, null);
            }
            if (strType_c == 'NFM704') {
                NFM704Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM705') {
                NFM705Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM706') {
                NFM706Rest.main(rowData.Id);
            }
            if (strType_c == 'NFM707') {
                NFM707Rest.main(rowData.Id);
            }
        }
        if (System.Test.isRunningTest()) {
            Integer i = 0;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
            i++;
@@ -305,6 +550,13 @@
    }
    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){
            Id execBTId = Database.executeBatch(new BeforeSSOpportunityBatch(), 100);
        }
        // 20220318 ljh SWAG-CC54R2 add end
    }
}