public without sharing class LoanerExpressTriggerHandler { public static void updateExpress(List newList, Map newMap, List oldList, Map oldMap){ List expressIDList = new List(); List returnIDList = new List(); List lendOrderList = new List(); Loaner_Express__c old = null; for(Loaner_Express__c express : newList){ old = oldMap.get(express.Id); if(old.consignor__c != express.consignor__c || old.Consignor_LogisticsCompany__c != express.Consignor_LogisticsCompany__c || old.Consignor_LogisticsNumber__c != express.Consignor_LogisticsNumber__c){ expressIDList.add(express.Id); } if(old.Return_Sender__c != express.Return_Sender__c || old.Return_LogisticsCompany__c != express.Return_LogisticsCompany__c || old.Return_LogisticsNumber__c != express.Return_LogisticsNumber__c){ returnIDList.add(express.Id); if(express.IsLendOrder__c && express.LendOrder__c != null){ lendOrderList.add(express.Id); } } } List updateList = new List(); if(expressIDList.size() != 0){ List ladList =[select id,Loaner_Express__c from loaner_application_detail__c where Loaner_Express__c = :expressIDList]; for(loaner_application_detail__c lad : ladList){ Loaner_Express__c express = newMap.get(lad.Loaner_Express__c); if(express.IsDeliveryLogistics__c){ lad.Return_to_wh_staff__c = express.consignor__c; lad.delivery_company__c = express.Consignor_LogisticsCompany__c; lad.Tracking_Number__c = express.Consignor_LogisticsNumber__c; } updateList.add(lad); } } if(returnIDList.size() != 0){ List ladList =[select id,Return_Express__c from loaner_application_detail__c where Return_Express__c = :returnIDList]; system.debug(ladList.size()); for(loaner_application_detail__c lad: ladList){ Loaner_Express__c express = newMap.get(lad.Return_Express__c); if(!express.IsDeliveryLogistics__c){ lad.Return_Trake_Staff__c = express.Return_Sender__c; lad.Return_Track_Company__c = express.Return_LogisticsCompany__c; lad.Return_Track_Number__c = express.Return_LogisticsNumber__c; } updateList.add(lad); } } List upLeList = new List(); if(lendOrderList.size()>0){ for(String leId:lendOrderList){ Loaner_Express__c temp = newMap.get(leId); Loaner_Express__c le = new Loaner_Express__c(); le.Id = temp.LendOrder__c; le.Consignor_LogisticsCompany__c = temp.Return_LogisticsCompany__c; le.Consignor_LogisticsNumber__c = temp.Return_LogisticsNumber__c; upLeList.add(le); } } ControllerUtil.updateExpress(upLeList); //update upLeList; update updateList; } public static void emailDate(List newList, Map newMap, List oldList, Map oldMap){ List autoId = new List(); List remindId = new List(); for(Loaner_Express__c le : newList){ Loaner_Express__c old = oldMap.get(le.id); system.debug('leName:'+le.Name+'------'+le.Automatic_Received_Date__c+'======'+le.Shipment_Request_Date__c); if(le.Automatic_Received_Date__c == null && le.Shipment_Request_Date__c != null){ autoId.add(le.id); } if(le.Automatic_Received_Date__c != old.Automatic_Received_Date__c){ remindId.add(le.id); } } system.debug(autoId.size()); Map oCalendar = calendarUtil.getCalendarMap(Date.today().addDays(-10),Date.today().addDays(240)); List autoList = new List(); List remindList = new List(); List ladList = new List(); if(autoId.size()>0){ autoList = [select id,Shipment_Request_Date__c,Loaner_type__c from Loaner_Express__c where id= :autoId]; for(Loaner_Express__c auto : autoList){ if(auto.Loaner_type__c == 'NDT' || auto.Loaner_type__c == 'ANI'){ auto.Automatic_Received_Date__c = calendarUtil.getCorrespondingDate(oCalendar,auto.Shipment_Request_Date__c,3); auto.Remind_Received_Date__c = calendarUtil.getCorrespondingDate(oCalendar,auto.Automatic_Received_Date__c,-2); }else{ auto.Automatic_Received_Date__c = calendarUtil.getCorrespondingDate(oCalendar,auto.Shipment_Request_Date__c,5); auto.Remind_Received_Date__c = calendarUtil.getCorrespondingDate(oCalendar,auto.Automatic_Received_Date__c,-3); } } } system.debug(autoList); if(remindId.size()>0){ remindList = [select id,Automatic_Received_Date__c,Loaner_type__c from Loaner_Express__c where id= :remindId]; for(Loaner_Express__c remind : remindList){ if(remind.Loaner_type__c == 'NDT' || remind.Loaner_type__c == 'ANI'){ remind.Remind_Received_Date__c = calendarUtil.getCorrespondingDate(oCalendar,remind.Automatic_Received_Date__c,-2); }else{ remind.Remind_Received_Date__c = calendarUtil.getCorrespondingDate(oCalendar,remind.Automatic_Received_Date__c,-3); } } for(loaner_application_detail__c lad : [select id,Loaner_Express__c from loaner_application_detail__c where Loaner_Express__c= :remindId]){ lad.Automatic_Received_Date__c = newMap.get(lad.Loaner_Express__c).Automatic_Received_Date__c; ladList.add(lad); } } if(autoList.size()>0) update autoList; if(remindList.size()>0) { update remindList; update ladList; } } public static void getApprover(List newList, Map newMap, List oldList, Map oldMap){ List leIdList = new List(); for(Loaner_Express__c le : newList){ if(le.Approver__c == null){ leIdList.add(le); } } if(leIdList.size() >0){ List leList = new List(); for(Loaner_Express__c le : [select id,loaner_application__r.loaner_Manager__c,loaner_application__r.Approver__c,loaner_application__r.OwnerId from Loaner_Express__c where id=:leIdList]){ le.Approver__c = le.loaner_application__r.loaner_Manager__c; le.sales_User__c = le.loaner_application__r.Approver__c; le.Loaner_Agent__c = le.loaner_application__r.OwnerId; leList.add(le); } if(leList.size()>0){ update leList; } } } public static void updateName(List newList, Map newMap, List oldList, Map oldMap){ List leList1 = new List(); List leList2 = new List(); List updateList = new List(); for(Loaner_Express__c le : newList){ Loaner_Express__c old = oldMap.get(le.id); if((le.Return_LogisticsNumber__c != old.Return_LogisticsNumber__c ||le.Return_LogisticsCompany__c != old.Return_LogisticsCompany__c) && le.IsDeliveryLogistics__c == false ){ leList1.add(le.id); } if(( le.Consignor_LogisticsNumber__c != old.Consignor_LogisticsNumber__c || le.Consignor_LogisticsCompany__c != old.Consignor_LogisticsCompany__c) && le.IsDeliveryLogistics__c == true){ leList2.add(le.id); } } if(leList1.size()>0){ for(Loaner_Express__c le : [select id,Asset_Return_Date__c,Return_LogisticsNumber__c,IsLendOrder__c,LendOrder__c,Return_LogisticsCompany__c from Loaner_Express__c where id=:leList1]){ le.Name =le.Asset_Return_Date__c.day()+'日回寄物流单-'+ le.Return_LogisticsCompany__c+le.Return_LogisticsNumber__c; updateList.add(le); if(le.IsLendOrder__c && le.LendOrder__c != null){ Loaner_Express__c temp = new Loaner_Express__c(); temp.id = le.LendOrder__c; temp.Name = le.Asset_Return_Date__c.day()+'日发货流单-'+ le.Return_LogisticsCompany__c+le.Return_LogisticsNumber__c; updateList.add(temp); } } } if(leList2.size()>0){ for(Loaner_Express__c le : [select id,Shipment_Request_Date__c,Consignor_LogisticsNumber__c,Consignor_LogisticsCompany__c from Loaner_Express__c where id=:leList2]){ le.Name = le.Shipment_Request_Date__c.day()+'日发货物流单-'+le.Consignor_LogisticsCompany__c+le.Consignor_LogisticsNumber__c; updateList.add(le); } } if(updateList.size()>0) ControllerUtil.updateExpress(updateList); } }