高章伟
2022-03-10 1312ba82d4c880bdb5357d28e0d4af5b285f610f
force-app/main/default/classes/BatchSelectRepairPageController.cls
@@ -14,56 +14,52 @@
    public void init(){
        RetrievalData reval = new RetrievalData();
        RevalInfoList = new List<RetrievalData>();
        reval.RepairName = null;
        reval.SAPRepairNo = null;
        reval.HospitalName = null;
        RevalInfoList.add(reval);
    }
    public PageReference RetrievalBtn() {
        RepairList = new List<Repair__c>();
        RAInfoList = new List<RepairData>();
        String RepairName;
        String SAPRepairNo;
        String HospitalName;
        String sql;
        System.debug('RevalInfoList1:' + RevalInfoList);
        for(RetrievalData reval : RevalInfoList){
            if(String.isBlank(reval.Status2) && String.isBlank(reval.RepairName) && String.isBlank(reval.SAPRepairNo)
                && String.isBlank(reval.SerialNumber) && String.isBlank(reval.repair.Incharge_Staff__c)
                && String.isBlank(String.valueOf(reval.repair.Final_complete_day__c))){
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '请至少添加一个检索条件!'));
                return null;
            }
            sql += 'select Id, Name, SAP_Service_Repair_No__c, Status1__c, Status2__c, Delivered_Product__c, SerialNumber__c, ';
            sql += 'HP_Name__c, State_Hospital__c, Incharge_Staff__c, FSE_ApplyForRepair_Day__c, work_location_select__c, On_site_repair__c,';
            sql += 'Number_of_EffectiveContract__c, NewProductGuaranteeObject__c from Repair__c where Id != null ';
            if(String.isNotBlank(reval.Status2)){
                sql += ' and Status2__c like \'%' + reval.Status2 + '%\' ';
            }
            if(String.isNotBlank(reval.RepairName)){
                RepairName = reval.RepairName;
                sql += ' and Name like \'%' + reval.RepairName + '%\' ';
            }
            if(String.isNotBlank(reval.SAPRepairNo)){
                SAPRepairNo = reval.SAPRepairNo;
                sql += ' and SAP_Service_Repair_No__c like \'%' + reval.SAPRepairNo + '%\' ';
            }
            if(String.isNotBlank(reval.HospitalName)){
                HospitalName = reval.HospitalName;
            if(String.isNotBlank(reval.SerialNumber)){
                sql += ' and SerialNumber__c like \'%' + reval.SerialNumber + '%\' ';
            }
            if(String.isNotBlank(reval.repair.Incharge_Staff__c)){
                sql += ' and Incharge_Staff__c = \'' + reval.repair.Incharge_Staff__c + '\' ';
            }
            if(String.isNotBlank(String.valueof(reval.repair.Final_complete_day__c))){
                String day = String.valueof(reval.repair.Final_complete_day__c);
                day = day.substring(0,10);
                sql += ' and FSE_ApplyForRepair_Day__c = ' + day;
            }
            sql += ' limit 200';
            sql = sql.substring(4);
        }
        System.debug('RepairName1:' + RepairName);
        if(String.isBlank(RepairName) && String.isBlank(SAPRepairNo) && String.isBlank(HospitalName)){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '请至少添加一个检索条件!'));
            return null;
        System.debug('sql1:' + sql);
        if(String.isNotBlank(sql)){
            RepairList = Database.query(sql);
        }
        String sql = 'select Id, Name, SAP_Service_Repair_No__c, HP_Name__c, Department_Name__c from Repair__c ';
        if(String.isNotBlank(RepairName)){
            sql += ' where Name like \'%' + RepairName.trim() + '%\'';
            if(String.isNotBlank(SAPRepairNo)){
                sql += ' and SAP_Service_Repair_No__c like \'%' + SAPRepairNo.trim() + '%\'';
                if(String.isNotBlank(HospitalName)){
                    sql += ' and (HP_Name__c like \'%' + HospitalName.trim() + '%\' or Department_Name__c like \'%' + HospitalName.trim() + '%\')';
                }
            } else if(String.isNotBlank(HospitalName)) {
                sql += ' and (HP_Name__c like \'%' + HospitalName.trim() + '%\' or Department_Name__c like \'%' + HospitalName.trim() + '%\')';
            }
        } else if(String.isNotBlank(SAPRepairNo)){
            sql += ' where SAP_Service_Repair_No__c like \'%' + SAPRepairNo.trim() + '%\'';
            if(String.isNotBlank(HospitalName)){
                sql += ' and (HP_Name__c like \'%' + HospitalName.trim() + '%\' or Department_Name__c like \'%' + HospitalName.trim() + '%\')';
            }
        } else if(String.isNotBlank(HospitalName)){
            sql += ' where HP_Name__c like \'%' + HospitalName.trim() + '%\' or Department_Name__c like \'%' + HospitalName.trim() + '%\'';
        }
        sql += ' limit 5000';
        RepairList = Database.query(sql);
        if(RepairList.size() >= 5000 ){
        if(RepairList.size() >= 200 ){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '检索数据太多,请缩小检索范围'));
            return null;
        }
@@ -100,9 +96,7 @@
                for(String Id : repairIdList){
                    url += Id + '=';
                }
                System.debug('url1:'+url);
                url = url.substring(0, url.lastIndexOf('='));
                System.debug('url2:'+url);
                PageReference pageRef = new PageReference('/apex/MaintenanceCommissionPDF?id' + url);
                pageRef.setRedirect(true);
                return pageRef;
@@ -139,9 +133,16 @@
    }
    public class RetrievalData {
        public String Status2{ get; set; }
        public String RepairName{ get; set; }
        public String SAPRepairNo{ get; set; }
        public String HospitalName{ get; set; }
        public String SerialNumber{ get; set; }
        // public String FSE_ApplyForRepair_Day{ get; set; }
        // public String InchargeStaffName{ get; set; }
        public Repair__c repair{ get; set; }
        public RetrievalData(){
            repair = new Repair__c();
        }
    }
    public class RepairData {