| | |
| | | ' , 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) { |
| | |
| | | |
| | | global void execute(Database.BatchableContext BC, |
| | | list<Maintenance_Contract__c> MCList) { |
| | | //URF限次合同2期 LY 20220908 start |
| | | set<id> mcIDSet = new set<id>(); |
| | | for (Maintenance_Contract__c tempMCA : MCList) { |
| | | mcIDSet.add(tempMCA.id); |
| | | } |
| | | //获取非限次合同 |
| | | List<Maintenance_Contract__c> mcPList =[select id , previousTotalRepairAmount__c , currentTotalRepairAmount__c , |
| | | previousTotalContractAmount__c , currentTotalContractAmountVM__c , currentTotalGuaranteePrice__c |
| | | , RecordType_DeveloperName__c |
| | | from Maintenance_Contract__c |
| | | where URF_Contract__c = false and ID in :mcIDSet]; |
| | | //获取限次合同 |
| | | List<Maintenance_Contract__c> urfMCList =[select id , previousTotalRepairAmount__c , currentTotalRepairAmount__c , |
| | | previousTotalContractAmount__c , currentTotalContractAmountVM__c , currentTotalGuaranteePrice__c |
| | | , RecordType_DeveloperName__c |
| | | from Maintenance_Contract__c |
| | | where URF_Contract__c = true and ID in :mcIDSet]; |
| | | |
| | | //URF限次合同2期 LY 20220908 end |
| | | |
| | | map<string, asset> updateAssetMap = new map<string, asset>(); |
| | | map<string, Maintenance_Contract__c> UpdateMCMap = |
| | |
| | | Set<ID> allAssetIDSet = new Set<ID>(); |
| | | List<asset> allAssetList = new List<asset>(); |
| | | // 初始化维修合同消费率相关金额字段为0; |
| | | for (Maintenance_Contract__c tempMC : MCList) { |
| | | for (Maintenance_Contract__c tempMC : mcPList) { |
| | | mcIDmap.put(tempMC.id,null); |
| | | tempMC.currentTotalRepairAmount__c = 0; |
| | | tempMC.previousTotalRepairAmount__c = 0; |
| | |
| | | } |
| | | |
| | | } |
| | | //URF限次合同2期 LY 20220908 start |
| | | Map<string,Maintenance_Contract__c> mcURFIDmap = new Map<string,Maintenance_Contract__c>(); |
| | | for (Maintenance_Contract__c tempURFMC : urfMCList) { |
| | | mcURFIDmap.put(tempURFMC.Id, null); |
| | | } |
| | | //检索本次限次合同的保有设备 |
| | | List<Maintenance_Contract_Asset__c> mcURFList = |
| | | [select Id, Asset__c, Maintenance_Contract__c, |
| | | Estimate_Cost_formula__c, |
| | | startDate_sum__c, |
| | | endDate_sum__c, |
| | | No_discount__c, |
| | | GuaranteePrice_Amount_Text__c, |
| | | Maintenance_Contract__r.Status__c, |
| | | Maintenance_Contract__r.Name, |
| | | Maintenance_Contract__r.Contract_End_Date__c, |
| | | Maintenance_Contract__r.Contract_Start_Date__c, |
| | | Maintenance_Contract__r.RecordType_DeveloperName__c, |
| | | Maintenance_Contract__r.Estimation_Id__r.Submit_quotation_day__c, |
| | | Maintenance_Contract__r.RecordType.DeveloperName |
| | | , ifHaveleftInPrevious__c |
| | | from Maintenance_Contract_Asset__c |
| | | where Maintenance_Contract__c in: mcURFIDmap.keyset() |
| | | ]; |
| | | Set<ID> allURFAssetIDSet = new Set<ID>(); |
| | | Map<string, Maintenance_Contract_Asset__c> assetIDtoURF =new Map<string, Maintenance_Contract_Asset__c>(); |
| | | for (Maintenance_Contract_Asset__c mcaURF : mcURFList) { |
| | | // 找出来检索出来的维修合同保有中的最新的 |
| | | if (assetIDtoURF.containsKey(mcaURF.Asset__c)) { |
| | | Maintenance_Contract_Asset__c tempURF = |
| | | assetIDtoURF.get(mcaURF.Asset__c); |
| | | if (tempURF.endDate_sum__c < mcaURF.endDate_sum__c) { |
| | | assetIDtoURF.put(mcaURF.Asset__c, mcaURF); |
| | | } |
| | | } else { |
| | | assetIDtoURF.put(mcaURF.Asset__c, mcaURF); |
| | | } |
| | | allURFAssetIDSet.add(mcaURF.Asset__c); |
| | | } |
| | | List<asset> allURFAssetList =[select id, URF_Maintenance_Contract__c |
| | | from asset |
| | | where id in: allURFAssetIDSet]; |
| | | for (asset ass : allURFAssetList) { |
| | | Maintenance_Contract_Asset__c tempMCA = |
| | | assetIDtoURF.get(ass.Id); |
| | | ass.URF_Maintenance_Contract__c = tempMCA.Maintenance_Contract__c; |
| | | updateAssetMap.put(ass.id, ass); |
| | | |
| | | } |
| | | //URF限次合同2期 LY 20220908 end |
| | | //检索出历届保有设备 |
| | | 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) { |