From 9b197b7fac92278fb591ea8f4942c7d5687cb5ce Mon Sep 17 00:00:00 2001
From: 李金换 <lijinhuan@prec-tech.com>
Date: 星期一, 28 三月 2022 18:01:22 +0800
Subject: [PATCH] LJPH-C8FB4P【委托】配合PBI设备覆盖率的数据准备0328
---
force-app/main/default/classes/NFM105Rest.cls | 143 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 138 insertions(+), 5 deletions(-)
diff --git a/force-app/main/default/classes/NFM105Rest.cls b/force-app/main/default/classes/NFM105Rest.cls
index 8ef3c2e..80e7a37 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 + ') ';
@@ -379,10 +383,12 @@
if (quoteInfo.RepairOrderStatusCode == 'A20') {
// A20-RC鍙楃悊瀹屾垚
rpr.Repair_Ordered_Date__c = statusUpdateDateTime.date();
+ rpr.Repair_Ordered_DateTime__c = statusUpdateDateTime;
rpr.Repair_Ordered_Date_PersonName__c = quoteInfo.StatusUpdatePersonName;
} else if (quoteInfo.RepairOrderStatusCode == 'A30') {
// A30-鍙楃悊妫�鏌ュ畬鎴�
rpr.Repair_Inspection_Date__c = statusUpdateDateTime.date();
+ rpr.Repair_Inspection_DateTime__c = statusUpdateDateTime;
rpr.ReRepairObject_result__c = quoteInfo.ReRepairObject == 'X' ? true : false;
// 2020/06/08 tqz add start
@@ -400,6 +406,7 @@
// A96-鍙栨秷淇悊銆�銆�銆�銆�鍥犳姤浠烽噾棰濋珮绛夊師鍥狅紝閿�鍞湰閮ㄧ敵璇锋湭淇悊 锛堥攢鍞湰閮ㄧ敵璇蜂负涓伙級
rpr.Invalid_check__c = true; //淇悊璁板綍鏃犳晥
rpr.repair_cancel_date__c = statusUpdateDateTime.date();
+ rpr.repair_cancel_dateTime__c = statusUpdateDateTime;
rpr.CancellationReason__c = quoteInfo.CancellationReason;
} else if (quoteInfo.RepairOrderStatusCode == 'A99') {
// A99-淇悊鍗曞叧闂��銆�銆�鍥犵敵璇峰唴瀹瑰拰瀹為檯瀹炵墿淇℃伅鐢卞樊寮傦紝RC椹冲洖姝ゆ鐢宠鐨勪慨鐞�
@@ -410,6 +417,7 @@
ast.Agreed_Repair__c = rpr.Id;
// B95-鎶ヤ环鍚屾剰纭
rpr.Agreed_Date__c = statusUpdateDateTime.date();
+ rpr.Agreed_DateTime__c = statusUpdateDateTime;
rpr.Agreed_Date2__c = statusUpdateDateTime.date();
// rpr.Agreed_Date__c <== TODO goto OFS銇仸瑷畾銇欍倠銇с仐銈囥亞銇嬶紵
} else if (quoteInfo.RepairOrderStatusCode == 'B99') {
@@ -423,16 +431,20 @@
} else if (quoteInfo.RepairOrderStatusCode == 'X30') {
// X30-鍏ㄩ儴鍒嗛厤
rpr.part_arrangement_complete__c = statusUpdateDateTime.date();
+ rpr.part_arrangement_complete_DateTime__c = statusUpdateDateTime;
} else if (quoteInfo.RepairOrderStatusCode == 'C50') {
// C50-寮�濮嬩慨鐞�
rpr.Repair_Start_Date__c = statusUpdateDateTime.date();
+ rpr.Repair_Start_DateTime__c = statusUpdateDateTime;
rpr.Planned_Repair_Completed_Date__c = NFMUtil.parseStr2Date(quoteInfo.PlannedRepairFinishDate);
} else if (quoteInfo.RepairOrderStatusCode == 'C70') {
// C70-淇悊瀹屾垚
rpr.Repair_Completed_Date__c = statusUpdateDateTime.date();
+ rpr.Repair_Completed_DateTime__c = statusUpdateDateTime;
} else if (quoteInfo.RepairOrderStatusCode == 'C90') {
// C90-鏈�缁堟鏌�
rpr.Repair_Final_Inspection_Date__c = statusUpdateDateTime.date();
+ rpr.Repair_Final_Inspection_DateTime__c = statusUpdateDateTime;
Asset ast = getAstUpdate(astUpdateMap, rpr);
ast.LastSFDCRepairReturn_day__c = statusUpdateDateTime.date();
ast.LastSFDCRepairNo__c = rpr.Name;
@@ -462,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();
@@ -473,6 +490,7 @@
if (quoteInfo.RepairOrderStatusCode == 'L80') {
//11.RC淇悊鍝佽繑閫佹棩
rpr.Repair_Shipped_Date__c = statusUpdateDateTime.date();
+ rpr.Repair_Shipped_DateTime__c = statusUpdateDateTime;
//鍥炶繑绫诲埆
rpr.ReturnType__c = quoteInfo.ReturnType;
if (quoteInfo.ReturnType == 'A20' || quoteInfo.ReturnType == 'B30') {
@@ -507,18 +525,22 @@
else if (quoteInfo.RepairOrderStatusCode == 'L20') {
// L20-RC杞琒ORC鏃�
rpr.RcSorcDate__c = statusUpdateDateTime.date();
+ rpr.RcSorcDateTime__c = statusUpdateDateTime;
}else if (quoteInfo.RepairOrderStatusCode == 'L25') {
// L25-RC杞琌GZ鏃�
rpr.RcOgzDate__c = statusUpdateDateTime.date();
}else if (quoteInfo.RepairOrderStatusCode == 'L30') {
// L30-SORC鍙楃悊鏃�
rpr.SorcAcceptDate__c = statusUpdateDateTime.date();
+ rpr.SorcAcceptDateTime__c = statusUpdateDateTime;
}else if (quoteInfo.RepairOrderStatusCode == 'L40') {
// L40-SORC杞琌GZ鏃�
rpr.SorcOgzDate__c = statusUpdateDateTime.date();
+ rpr.SorcOgzDateTime__c = statusUpdateDateTime;
}else if (quoteInfo.RepairOrderStatusCode == 'L45') {
// L45-OGZ鍙楃悊鏃�
rpr.OgzAcceptDate__c = statusUpdateDateTime.date();
+ rpr.OgzAcceptDateTime__c = statusUpdateDateTime;
}
//WLIG-C8TACX LY 20211206 End
if (String.isBlank(rpr.NFM105_MessageGroupNumber__c) || Integer.valueOf(rpr.NFM105_MessageGroupNumber__c) <= Integer.valueOf(rowData.MessageGroupNumber__c)) {
@@ -532,6 +554,7 @@
for (Repair_Quotation__c rqfalse : rqList) {
rqfalse.Quotation_agreement__c = false;
}
+ System.debug('rqUpdateMap1:' + rqUpdateMap);
rqList.addAll(rqUpdateMap.values());
if (rqList.size() > 0) {
// TODO update false;
@@ -578,7 +601,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闆嗗悎
@@ -696,10 +720,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