From c9ab7e590eb8e8bcc1815d562b86b69b2b3ef650 Mon Sep 17 00:00:00 2001 From: 李金换 <lijinhuan@prec-tech.com> Date: 星期三, 23 三月 2022 17:56:40 +0800 Subject: [PATCH] NFM105限次合同异常数据 --- force-app/main/default/classes/NFM105Rest.cls | 129 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 124 insertions(+), 5 deletions(-) diff --git a/force-app/main/default/classes/NFM105Rest.cls b/force-app/main/default/classes/NFM105Rest.cls index 3bc1e02..7b4bb1f 100644 --- a/force-app/main/default/classes/NFM105Rest.cls +++ b/force-app/main/default/classes/NFM105Rest.cls @@ -25,6 +25,9 @@ public String IncorrectDataComment; public String ReturnType; public String InspectType; + //WLIG-CC78MX 銆愬鎵樸�慛FM105鎺ュ彛澧炲姞OTS杩愬崟鍙峰瓧娈� thh 20220307 start + // public String OTSRepairOrder; + //WLIG-CC78MX 銆愬鎵樸�慛FM105鎺ュ彛澧炲姞OTS杩愬崟鍙峰瓧娈� thh 20220307 end public InspectionResultInformation[] InspectionResultInformation; public FailureInformation[] FailureInformation; } @@ -158,7 +161,7 @@ , Return_Without_Repair_IF__c, Return_Without_Repair_Reason__c , Repair_Quotation_Id__c, NFM105_MessageGroupNumber__c, Repair_List_Price_formula__c , ReturnType__c, InspectType__c - ,Maintenance_Contract__r.URF_Contract__c + , Maintenance_Contract__r.URF_Contract__c ,Maintenance_Contract__c ,SerialNumber__c ,Agreed_Date__c @@ -265,6 +268,7 @@ // continue; // } logstr += ' '; + System.debug('rpr1:' + rpr); rprUpdateMap.put(rpr.SAPRepairNo__c, rpr); } else { logstr += quoteInfo.SAPRepairNo + ':' + quoteInfo.RepairOrderStatusCode + '(' + quoteInfo.SAPQuotationNo + ') '; @@ -470,6 +474,11 @@ // L60-SORC淇悊鍝佸嚭搴� // L65-OGZ淇悊鍝佸嚭搴� // L80-RC淇悊鍝佸嚭搴� + //WLIG-CC78MX 銆愬鎵樸�慛FM105鎺ュ彛澧炲姞OTS杩愬崟鍙峰瓧娈� thh 20220307 start + // if(String.isNotBlank(quoteInfo.OTSRepairOrder)){ + // rpr.OTSRepairOrder__c = quoteInfo.OTSRepairOrder; + // } + //WLIG-CC78MX 銆愬鎵樸�慛FM105鎺ュ彛澧炲姞OTS杩愬崟鍙峰瓧娈� thh 20220307 end Asset ast = getAstUpdate(astUpdateMap, rpr); if (rpr.Return_Without_Repair_IF__c == true) { rpr.Return_Without_Repair_Date__c = statusUpdateDateTime.date(); @@ -591,7 +600,8 @@ 3.鏍规嵁闄愭鍚堝悓鏌ュ埌璇ュ悎鍚屼笅鐨勬墍鏈変慨鐞� */ logstr += '\n rprList::'+rprList; - if (rprList.size() > 0) { + // 20220321 ljh 闄愭鍚堝悓寮傚父鏁版嵁 update start + /*if (rprList.size() > 0) { //闇�瑕佺煡閬撳綋鍓嶄慨鐞嗗搴旂殑璁惧鐨勭郴鍒楀彿 Map<String,String> reurfMap = new Map<String,String>(); //闄愭鍚堝悓Id闆嗗悎 @@ -709,10 +719,119 @@ } } - } + }*/ //add by rentx 2021-3-4 end - - + if (rprList.size() > 0) { + //contractAssetUrfMap<缁翠慨鍚堝悓+淇濇湁璁惧,闄愭绯诲垪> + Map<String,String> contractAssetUrfMap = new Map<String,String>(); + //闄愭鍚堝悓Id闆嗗悎 + List<Id> contractIds = new List<Id>(); + //闄愭鍚堝悓涓嬬殑淇悊闆嗗悎 + List<Repair__c> reList = new List<Repair__c>(); + // 闄愭鍚堝悓 map + Map<String,Map<String,List<Repair__c>>> contractMap = new Map<String,Map<String,List<Repair__c>>>(); + //缁翠慨鍚堝悓淇濇湁璁惧闆嗗悎 + List<Maintenance_Contract_Asset__c> maassList = new List<Maintenance_Contract_Asset__c>(); + // 闇�瑕佹洿鏂扮殑 缁翠慨鍚堝悓鎶ヤ环/淇濇湁璁惧 + List<Maintenance_Contract_Asset_Estimate__c> updateList = new List<Maintenance_Contract_Asset_Estimate__c>(); + //鏌ヨ褰撳墠淇悊瀵瑰簲鐨勭淮淇悎鍚屾槸鍚︿负闄愭鍚堝悓 && 澶т慨 + for (Repair__c rep : rprList) { + if (rep.Maintenance_Contract__c != null && rep.Maintenance_Contract__r.URF_Contract__c == true && (rep.Repair_Rank__c == 'A' || rep.Repair_Rank__c == 'B' || rep.Repair_Rank__c == 'C') && rep.Agreed_Date__c != null) { + contractIds.add(rep.Maintenance_Contract__c); + } + } + //鏌ヨ褰撳墠闄愭鍚堝悓涓嬬殑鎵�鏈夌淮淇悎鍚屼繚鏈夎澶� + maassList = [SELECT id , Series_RepairCount_F__c + , Maintenance_Contract_Asset_Estimate__c + , Asset__c + , Maintenance_Contract__c + , URF_Series_F__c + FROM Maintenance_Contract_Asset__c + WHERE Maintenance_Contract__c in :contractIds]; + for (Maintenance_Contract_Asset__c maAss : maassList) { + // contractAssetUrfMap<缁翠慨鍚堝悓+淇濇湁璁惧,闄愭绯诲垪> + String keyV = maAss.Maintenance_Contract__c +';'+ maAss.Asset__c; + if (!contractAssetUrfMap.containsKey(keyV) && String.isNotBlank(maAss.URF_Series_F__c)) { + contractAssetUrfMap.put(keyV, maAss.URF_Series_F__c); + } + } + //鏌ヨ缁翠慨鍚堝悓涓嬬殑鎵�鏈変慨鐞� + reList = [select id,Maintenance_Contract__c,Delivered_Product__c,Usage_Ratio_Price_Service__c from Repair__c where (Repair_Rank__c = 'A' OR Repair_Rank__c = 'B' OR Repair_Rank__c = 'C') and Agreed_Date__c <> null and Maintenance_Contract__c in :contractIds ]; + system.debug('zheli:'+reList.size()); + for (Repair__c rep : reList) { + List<Repair__c> tempRepL00; + List<Repair__c> tempRepL01; + List<Repair__c> tempRepL02; + List<Repair__c> tempRepL03; + Map<String,List<Repair__c>> tempRepM; + String keyV = rep.Maintenance_Contract__c +';'+rep.Delivered_Product__c; + if(contractMap.containsKey(rep.Maintenance_Contract__c)){ + tempRepM = contractMap.get(rep.Maintenance_Contract__c); + // 淇濇湁璁惧 鍜� 闄愭绯诲垪 + if(tempRepM.containsKey(rep.Delivered_Product__c)){ + tempRepL02 = tempRepM.get(rep.Delivered_Product__c); + }else{ + tempRepL02 = new List<Repair__c>(); + } + tempRepL02.add(rep); + tempRepM.put(rep.Delivered_Product__c,tempRepL02); + if(contractAssetUrfMap.containsKey(keyV)){ + if(tempRepM.containsKey(contractAssetUrfMap.get(keyV))){ + tempRepL03 = tempRepM.get(contractAssetUrfMap.get(keyV)); + }else{ + tempRepL03 = new List<Repair__c>(); + } + tempRepL03.add(rep); + tempRepM.put(contractAssetUrfMap.get(keyV),tempRepL03); + } + }else{ + tempRepM = new Map<String,List<Repair__c>>(); + tempRepL00 = new List<Repair__c>(); + tempRepL00.add(rep); + tempRepL01 = new List<Repair__c>(); + tempRepL01.add(rep); + tempRepM.put(rep.Delivered_Product__c,tempRepL00); + if(contractAssetUrfMap.containsKey(keyV)){ + tempRepM.put(contractAssetUrfMap.get(keyV),tempRepL01); + } + } + contractMap.put(rep.Maintenance_Contract__c,tempRepM); + } + if (contractMap.size() > 0) { + for (Maintenance_Contract_Asset__c maAss : maassList) { + // 鍒ゆ柇宸茬淮淇鏁版槸鍚﹀彂鐢熸敼鍙� + if (contractMap.get(maAss.Maintenance_Contract__c) != null + && contractMap.get(maAss.Maintenance_Contract__c).size() != 0 + && contractMap.get(maAss.Maintenance_Contract__c).containsKey(maAss.URF_Series_F__c) + && maAss.Series_RepairCount_F__c != contractMap.get(maAss.Maintenance_Contract__c).get(maAss.URF_Series_F__c).size()) { + //濡傛灉鍙戠敓鏀瑰彉.璁剧疆鏂扮殑鍊�; + Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c(); + mcae.Id = maAss.Maintenance_Contract_Asset_Estimate__c; + mcae.Series_RepairCount__c = contractMap.get(maAss.Maintenance_Contract__c).get(maAss.URF_Series_F__c).size(); + //璁剧疆绯诲垪淇悊閲戦 + mcae.Seriesrepairamount__c = 0; + for (Repair__c rep : contractMap.get(maAss.Maintenance_Contract__c).get(maAss.URF_Series_F__c)) { + mcae.Seriesrepairamount__c += rep.Usage_Ratio_Price_Service__c; + } + mcae.Asset_RepairCount__c = 0; + mcae.Equipmentrepairamount__c = 0; + if (contractMap.get(maAss.Maintenance_Contract__c).containsKey(maAss.Asset__c)) { + mcae.Asset_RepairCount__c = contractMap.get(maAss.Maintenance_Contract__c).get(maAss.Asset__c).size(); + //璁剧疆璁惧淇悊閲戦 + for (Repair__c rep: contractMap.get(maAss.Maintenance_Contract__c).get(maAss.Asset__c)) { + mcae.Equipmentrepairamount__c += rep.Usage_Ratio_Price_Service__c; + } + } + updateList.add(mcae); + } + } + if (updateList.size() > 0) { + // system.debug('zheli:'+updateList); + update updateList; + } + } + } + // 20220321 ljh 闄愭鍚堝悓寮傚父鏁版嵁 update end //gzozw-add logstr += '\nend'; rowData.retry_cnt__c = 0; -- Gitblit v1.9.1