沙世明
2022-03-23 34d9607524cad4f765299b28b4f9423cc2fa9e32
force-app/main/default/classes/BatchSelectRepairPageController.cls
@@ -1,5 +1,5 @@
public with sharing class BatchSelectRepairPageController {
    public List<RetrievalData> RevalInfoList { get; set; }
    public RetrievalData RevalInfo { get; set; }
    public List<RepairData> RAInfoList { get; set; }
    public List<Repair__c> RepairList { get; set; }
    public List<String> repairIdList{ get; set; }
@@ -12,58 +12,51 @@
    }
    public void init(){
        RetrievalData reval = new RetrievalData();
        RevalInfoList = new List<RetrievalData>();
        RevalInfoList.add(reval);
        RevalInfo = new RetrievalData();
    }
    public PageReference RetrievalBtn() {
        RepairList = new List<Repair__c>();
        RAInfoList = new List<RepairData>();
        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)){
                sql += ' and Name like \'%' + reval.RepairName + '%\' ';
            }
            if(String.isNotBlank(reval.SAPRepairNo)){
                sql += ' and SAP_Service_Repair_No__c like \'%' + reval.SAPRepairNo + '%\' ';
            }
            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);
        if(String.isBlank(RevalInfo.Status2) && String.isBlank(RevalInfo.RepairName) && String.isBlank(RevalInfo.SAPRepairNo)
            && String.isBlank(RevalInfo.SerialNumber) && String.isBlank(RevalInfo.repair.Incharge_Staff__c)
            && String.isBlank(String.valueOf(RevalInfo.repair.Final_complete_day__c))){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '请至少添加一个检索条件!'));
            return null;
        }
        String 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(RevalInfo.Status2)){
            sql += ' and Status2__c like \'%' + RevalInfo.Status2 + '%\' ';
        }
        if(String.isNotBlank(RevalInfo.RepairName)){
            sql += ' and Name like \'%' + RevalInfo.RepairName + '%\' ';
        }
        if(String.isNotBlank(RevalInfo.SAPRepairNo)){
            sql += ' and SAP_Service_Repair_No__c like \'%' + RevalInfo.SAPRepairNo + '%\' ';
        }
        if(String.isNotBlank(RevalInfo.SerialNumber)){
            sql += ' and SerialNumber__c like \'%' + RevalInfo.SerialNumber + '%\' ';
        }
        if(String.isNotBlank(RevalInfo.repair.Incharge_Staff__c)){
            sql += ' and Incharge_Staff__c = \'' + RevalInfo.repair.Incharge_Staff__c + '\' ';
        }
        if(String.isNotBlank(String.valueof(RevalInfo.repair.Final_complete_day__c))){
            String day = String.valueof(RevalInfo.repair.Final_complete_day__c);
            day = day.substring(0,10);
            sql += ' and FSE_ApplyForRepair_Day__c = ' + day;
        }
        sql += ' limit 201';
        System.debug('sql1:' + sql);
        if(String.isNotBlank(sql)){
            RepairList = Database.query(sql);
        }
        if(RepairList.size() >= 200 ){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '检索数据太多,请缩小检索范围'));
        if(RepairList.size() > 200){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '检索数据太多,请缩小检索范围!'));
            return null;
        }
        if(RepairList.size() <= 0 ){
        if(RepairList.size() <= 0){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '没检索到任何修理'));
            return null;
        }
@@ -78,7 +71,8 @@
        repairIdList = new List<String>();
        RepairList = new List<Repair__c>();
        String url = '=';
        if(RAInfoList == null){
        System.debug('RAInfoList:' + RAInfoList);
        if(RAInfoList == null || RAInfoList.isEmpty()){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '请先检索修理'));
            return null;
        }
@@ -101,7 +95,7 @@
                pageRef.setRedirect(true);
                return pageRef;
            } else{
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '多单打印最大数量为50,请选择少于50个修理!'));
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '多单打印最大数量为50,请选择少于50个修理!'));
                return null;
            }
        } else{
@@ -137,8 +131,6 @@
        public String RepairName{ get; set; }
        public String SAPRepairNo{ 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();