高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
force-app/main/default/classes/TypeMaintenanceContractBatch.cls
@@ -26,8 +26,7 @@
      }
      // 通过保有设备查所有维修合同/保有设备
      List<Maintenance_Contract_Asset__c> mcaList=[select id,Asset__c,Asset__r.name,asset__r.InstallDate,Asset__r.CurrentContract_F__c,Maintenance_Contract__r.name,Maintenance_Contract__r.Contract_Start_Date__c, Maintenance_Contract__r.Contract_end_Date__c from Maintenance_Contract_Asset__c where Asset__c in : astIdList and Maintenance_Contract__r.RecordTypeId!='01210000000gTYv' and Maintenance_Contract__r.Status__c in ('契約','契約満了','合同结束','合同中') and Maintenance_Contract__c!='a0H1000000aeiFP' order by asset__c, Maintenance_Contract__r.Contract_Start_Date__c];
      system.debug('mcaList等于'+mcaList);
      List<Maintenance_Contract_Asset__c> mcaList=[select id,Asset__c,Asset__r.name,asset__r.InstallDate,Asset__r.CurrentContract_F__c,Maintenance_Contract__r.name,Maintenance_Contract__r.Contract_Start_Date__c, Maintenance_Contract__r.Contract_end_Date__c from Maintenance_Contract_Asset__c where Asset__c in : astIdList and Maintenance_Contract__r.RecordTypeId!='01210000000gTYv' and Maintenance_Contract__r.Status__c in ('契約','契約満了') and Maintenance_Contract__c!='a0H1000000aeiFP' order by asset__c, Maintenance_Contract__r.Contract_Start_Date__c];
      List<String> astList=new List<String>();  //作为判断保有设备是否存在
      List<String> firstList=new List<String>();
      for (Maintenance_Contract_Asset__c mcai : mcaList) {
@@ -42,23 +41,27 @@
               Date startDate=mcaj.Maintenance_Contract__r.Contract_Start_Date__c;  //开始日
               Date endDate=mcaj.Maintenance_Contract__r.Contract_end_Date__c;  //结束日
               if (installDate==null) {
                  mcaj.New_Contract_TypeF__c='首签合同';
                  lastEndDate=mcaj.Maintenance_Contract__r.Contract_end_Date__c;
                  i++;
                  continue;
               }
               // 没有同期中的上期合同
               if (i==0) {
                  if (installDate==null) {
                     mcaj.New_Contract_TypeF__c='首签设备';
                     // lastEndDate=mcaj.Maintenance_Contract__r.Contract_end_Date__c;
                     // 且当期合同的安装日小于合同开始日且在半年以内,判断为新品合同
                  }else if (installDate.monthsBetween(startDate)<=6&&installDate.monthsBetween(startDate)>=0) {
                     mcaj.New_Contract_TypeF__c='新品设备';
                  // 且当期合同的安装日小于合同开始日且在半年以内,判断为新品合同
                  if (installDate.monthsBetween(startDate)<=6&&installDate.monthsBetween(startDate)>=0) {
                     mcaj.New_Contract_TypeF__c='新品合同';
                  }else {
                     // 否则判断为首签合同。
                     mcaj.New_Contract_TypeF__c='首签设备';
                     mcaj.New_Contract_TypeF__c='首签合同';
                  }
                  i++;
               }else if(lastEndDate.monthsBetween(startDate)<=12) {
                  mcaj.New_Contract_TypeF__c='续签设备';
                  mcaj.New_Contract_TypeF__c='续签合同';
               }else {
                  mcaj.New_Contract_TypeF__c='非续签设备';
                  mcaj.New_Contract_TypeF__c='非续签合同';
               }
               lastEndDate=mcaj.Maintenance_Contract__r.Contract_end_Date__c;
            }
@@ -72,9 +75,6 @@
   }
   public void finish(Database.BatchableContext BC) {
      if(!System.test.isRunningTest() && IdList == null){
         Database.executeBatch(new Type2MaintenanceContractBatch());
      }
   }
}