global class NFM606Batch implements Database.Batchable < sObject > , Database.AllowsCallouts {
    // public String query;
    // public List < String > IdList;
    // public String executeType;
    // public String idStr;

    // Boolean IsNeedExecute = false; // 2021-03-03  mzy  WLIG-BYHD79  SFDC环境batch合并调查  是否符合执行条件

    // public SubAuthorizedBatch(Boolean NeedExecute) {
	//     this.IsNeedExecute = NeedExecute;
	// }

    public ID recordTypeId;
    global NFM606Batch() {
        ID recordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByName().get('社内员工').getRecordTypeId();
    }
    // global NFM606Batch(String executeType) {
    //     this.executeType = executeType;
    // }
    // global NFM606Batch(String executeType, List < String > IdList) {
    //     this.IdList = IdList;
    //     this.executeType = executeType;
    // }
    // global NFM606Batch(String executeType, String idStr) {
    //     this.idStr = idStr;
    //     this.executeType = executeType;
    // }

    global Database.QueryLocator start(Database.BatchableContext bc) {
        // if ('User'.equals(executeType)) {
        //     // 用户接口
        //     return Database.getQueryLocator([
        //         SELECT Id, IsActive, Employee_No__c FROM User WHERE IsActive = true AND Employee_No__c != '' AND Stay_or_not__c = '在职'
        //     ]);
        // } else if ('Contact'.equals(executeType)) {
        //     // 联系人接口
        
        return Database.getQueryLocator([
            select Id, trigger606Flag__c from Contact where Isactive__c = '有效' AND RecordTypeId != :recordTypeId 
                AND MobilePhone != '' AND trigger606Flag__c = true
        ]);
        // } else if ('Inspection_Report'.equals(executeType)) {
        //     // 点检报告接口
        //     return Database.getQueryLocator([
        //         select Id, Name, Status__c from Inspection_Report__c where Status__c = '批准'
        //         AND RecordtypeId = '0121m000000m3Bi'
        //     ]);
        // } else if ('NewMaintenanceReport_Task'.equals(executeType) && IdList != null && IdList.size() > 0) {
        //     // 维修合同接口
        //     return Database.getQueryLocator([
        //         select Id, Name from NewMaintenanceReport_Task__c where Id IN: IdList
        //     ]);
        // } else if ('NewMaintenanceReport_Task'.equals(executeType)) {
        //     return Database.getQueryLocator([
        //         select Id, Name from NewMaintenanceReport_Task__c
        //     ]);
        // } else if ('Repair'.equals(executeType) && IdList != null && IdList.size() > 0) {
        //     // 修理接口
        //     return Database.getQueryLocator([
        //         select Id, Name from Repair__c where Id IN: IdList
        //     ]);
        // } else if ('Repair'.equals(executeType) && String.isNotBlank(idStr)) {
        //     // 修理接口
        //     return Database.getQueryLocator([
        //         select Id, Name from Repair__c where Id = :idStr
        //     ]);
        // } else if ('Repair'.equals(executeType)) {
        //     return Database.getQueryLocator([
        //         select Id, Name from Repair__c
        //     ]);
        // }
        // // NewMaintenanceReport_Task__c
        // return Database.getQueryLocator(query);

    }

    global void execute(Database.BatchableContext BC, List<Contact> contactList) {
        List<String> IdList = new List<String>();
        List<Contact> trigger606List = new List<Contact>();
        List<Contact> updateContactList = new List<Contact>();
        if (contactList != null && contactList.size() > 0) {
			for (Contact con : contactList) {
				if(con.trigger606Flag__c){
                    IdList.add(con.Id);
                    trigger606List.add(con);
                }
			}
		}
        if(IdList.size() > 0){
            NFM606Controller.executeNotFuture(null, IdList);
            for(Contact con : trigger606List){
                con.trigger606Flag__c = false;
                updateContactList.add(con);
            }
        }
        if(updateContactList.size() > 0){
            update updateContactList;
        }
        // List < String > sobjectList = new List < String > ();
        // for (Sobject sobj: scope) {
        //     sobjectList.add(sobj.Id);

        // }
        // if (sobjectList.size() > 0) {
        //     if ('User'.equals(executeType)) {
        //         // List < String > employeeNoList = new List < String > ();
        //         // List < User > getUserList = [SELECT Id, IsActive, Employee_No__c FROM User WHERE Id In: sobjectList];
        //         // for (User user: getUserList) {
        //         //     employeeNoList.add(user.Employee_No__c);
        //         // }
        //         // if (employeeNoList.size() > 0) {
        //         //     NFM621Controller.executefuture('', employeeNoList);
        //         // }
        //         NFM621Controller.executefuture('', sobjectList);
        //     } else if ('Contact'.equals(executeType)) {
        //         NFM606Controller.executeNotFuture(null, sobjectList);
        //     } else if ('Inspection_Report'.equals(executeType)) {
        //         NFM602Controller.executeNotFuture(null, sobjectList);
        //     } else if ('NewMaintenanceReport_Task'.equals(executeType)) {
        //         NFM605Controller.executeNotFuture(null, sobjectList);
        //     } else if ('Repair'.equals(executeType)) {
        //         NFM603Controller.executefuture(null, sobjectList);
        //     }
        // }
    }

    global void finish(Database.BatchableContext BC) {

    }
}