| | |
| | | ' , RecordType_DeveloperName__c ' + |
| | | ' from Maintenance_Contract__c ' |
| | | + ' where Status__c in (\'契約\',\'契約満了\') '; |
| | | |
| | | if (string.isNotBlank(TestID) ) { |
| | | query += ' and id =: TestID'; |
| | | } else if (TestIDList != null && TestIDList.size() > 0) { |
| | |
| | | query += ' and Contract_End_Date__c = ' + |
| | | testDate.addDays(-1).format().replace('/', '-'); |
| | | } |
| | | system.debug('query:'+query); |
| | | //system.debug('query:'+query); |
| | | testDate = Datecheck(testDate); |
| | | |
| | | return Database.getQueryLocator(query); |
| | |
| | | |
| | | global void execute(Database.BatchableContext BC, |
| | | list<Maintenance_Contract__c> MCList) { |
| | | |
| | | |
| | | map<string, asset> updateAssetMap = new map<string, asset>(); |
| | | map<string, Maintenance_Contract__c> UpdateMCMap = |
| | |
| | | Maintenance_Contract__r.Estimation_Id__r.Submit_quotation_day__c, |
| | | Maintenance_Contract__r.RecordType.DeveloperName |
| | | , ifHaveleftInPrevious__c |
| | | ,Maintenance_Contract__r.URF_Contract__c |
| | | from Maintenance_Contract_Asset__c |
| | | where Maintenance_Contract__c in: mcIDmap.keyset() |
| | | ]; |
| | |
| | | allAssetIDSet.add(mca.Asset__c); |
| | | newToOldMCA.put(mca.id, null); |
| | | } |
| | | //system.debug('allAssetIDSet:' + allAssetIDSet); |
| | | system.debug('allAssetIDSet:' + allAssetIDSet); |
| | | //system.debug('newToOldMCA:' + newToOldMCA); |
| | | allAssetList = |
| | | [select id, CurrentContract_F__c, |
| | | CurrentContract_F__r.Contract_End_Date__c, |
| | | CurrentContract_F_asset__c, |
| | | CurrentContract_F_asset__r.endDate_sum__c |
| | | ,URF_Maintenance_Contract__c |
| | | ,URF_Maintenance_Contract__r.Contract_End_Date__c |
| | | from asset |
| | | where id in: allAssetIDSet]; |
| | | // 更新保有设备上的上一期维修合同和维修合同保有设备 |
| | |
| | | for (asset ass : allAssetList) { |
| | | Maintenance_Contract_Asset__c tempMCA = |
| | | assetIDtoMCA.get(ass.Id); |
| | | if (tempMCA != null && |
| | | if (tempMCA != null) { |
| | | if (tempMCA.Maintenance_Contract__r.URF_Contract__c==true && |
| | | (ass.URF_Maintenance_Contract__c == null || |
| | | ass.URF_Maintenance_Contract__r.Contract_End_Date__c <= tempMCA.endDate_sum__c |
| | | )) { |
| | | ass.URF_Maintenance_Contract__c = tempMCA.Maintenance_Contract__c; |
| | | } |
| | | if (tempMCA.Maintenance_Contract__r.URF_Contract__c==false && |
| | | ( |
| | | ass.CurrentContract_F__c == null || |
| | | ass.CurrentContract_F_asset__c == null || |
| | | ass.CurrentContract_F_asset__r.endDate_sum__c <= |
| | | tempMCA.endDate_sum__c |
| | | |
| | | ) ) { |
| | | ass.CurrentContract_F__c = tempMCA.Maintenance_Contract__c; |
| | | ass.CurrentContract_F_asset__c = tempMCA.id; |
| | | ) |
| | | ){ |
| | | ass.CurrentContract_F__c = tempMCA.Maintenance_Contract__c; |
| | | ass.CurrentContract_F_asset__c = tempMCA.id; |
| | | } |
| | | |
| | | updateAssetMap.put(ass.id, ass); |
| | | } |
| | | |
| | | } |
| | | |
| | | //检索出历届保有设备 |
| | | list<Maintenance_Contract_Asset__c> allMCAList = |
| | | [select Id, Asset__c, Maintenance_Contract__c, |
| | |
| | | failedCount ++; |
| | | } |
| | | } |
| | | system.debug('11111111111111111111111updateAssetMap'+updateAssetMap.values()); |
| | | updateAsset (updateAssetMap.values()); |
| | | } |
| | | global void finish(Database.BatchableContext BC) { |