| | |
| | | } |
| | | |
| | | // 通过保有设备查所有维修合同/保有设备 |
| | | 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) { |
| | |
| | | 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; |
| | | } |
| | |
| | | } |
| | | |
| | | public void finish(Database.BatchableContext BC) { |
| | | if(!System.test.isRunningTest() && IdList == null){ |
| | | Database.executeBatch(new Type2MaintenanceContractBatch()); |
| | | } |
| | | |
| | | } |
| | | } |