From f7da22d3d9ee245ba7b6efe658ecfa149a6b2ec7 Mon Sep 17 00:00:00 2001
From: chenjingwu <chenjingwu@prec-tech.com>
Date: 星期四, 25 四月 2024 17:12:59 +0800
Subject: [PATCH] 123
---
force-app/main/default/classes/MaintenanceProductDataController.cls | 212 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 184 insertions(+), 28 deletions(-)
diff --git a/force-app/main/default/classes/MaintenanceProductDataController.cls b/force-app/main/default/classes/MaintenanceProductDataController.cls
index f1f7927..b5351b5 100644
--- a/force-app/main/default/classes/MaintenanceProductDataController.cls
+++ b/force-app/main/default/classes/MaintenanceProductDataController.cls
@@ -53,6 +53,9 @@
public List<MultiYearWarranty__c> muList { get; set; }
public Map<String,List<MultiYearWarranty__c>> muMap { get; set; }
public Map<String,Integer> muCountMap {get; set; }
+ public Map<String,Integer> muCountViewMap {get; set; }
+ public Map<String,List<ExMpdDetailsInfo>> exmpdDetailsRecordsMap { get; set; }
+ public Map<String,List<ExMpdDetailsInfo>> exmpdDetailsRecordsViewMap { get; set; }
// chenjingwu 3+2澶氬勾淇濅慨 end
/*****************鐢婚潰琛ㄧずBean******************/
@@ -436,7 +439,7 @@
for (Integer i=0;i<column_Old.size();i++) {
mpdsoql += ',' + column_Old[i];
}
- mpdsoql += ' from Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c = \''+id+'\'';
+ mpdsoql += ' from Maintenance_Product_Data_Details__c where RecordTypeId != \'012C50000000jefIAA\' and Maintenance_Product_Data__c = \''+id+'\'';
// 閬告姙娓堛伩銇槑缁嗐倰鍙栧緱
mpdDetailsSelected = Database.query(mpdsoql);
for (Maintenance_Product_Data_Details__c mpdd1 : mpdDetailsSelected) {
@@ -527,7 +530,46 @@
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '杩樻病鏈変笂浼犻檮浠讹紝璇蜂笂浼犻檮浠讹紒'));
}
}
- //System.debug('============02:'+mpdDetailsRecords);
+ //System.debug('============02:'+mpdDetailsRecords);
+ if(mpdDetailsRecords.size() > 0 && RecordTypeName.equals('GuranteeMain')){
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 start
+ List<String> idList = new List<String>();
+ for(MpdDetailsInfo mp :mpdDetailsRecords){
+ idList.add(mp.mpded.ProductsID__c);
+ }
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 end
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 start
+ exmpdDetailsRecordsMap = new Map<String,List<ExMpdDetailsInfo>>();
+ exmpdDetailsRecordsViewMap = new Map<String,List<ExMpdDetailsInfo>>();
+ muCountMap = new Map<String,Integer>();
+ muCountViewMap = new Map<String,Integer>();
+ List<Maintenance_Product_Data_Details__c> exDetailList = [select Id,MultiYearWarranty__c,MultiYearWarranty__r.AgeLimit__c,MultiYearWarranty__r.MultiOneYearWarrantyPrice__c,MultiYearWarranty__r.AmountWithheld__c,AgeLimit__c,AgeLimit_Old__c,MultiOneYearWarrantyPrice__c,MultiOneYearWarrantyPrice_Old__c,AmountWithheld__c,AmountWithheld_Old__c,ProductsID__c,ProductsID__r.Name from Maintenance_Product_Data_Details__c where ProductsID__c in:idList and RecordTypeId = '012C50000000jefIAA'];
+ for(String id: idList){
+ List<ExMpdDetailsInfo> exList = new List<ExMpdDetailsInfo>();
+ List<ExMpdDetailsInfo> exViewList = new List<ExMpdDetailsInfo>();
+ for(Maintenance_Product_Data_Details__c mpdd: exDetailList){
+ if(id == mpdd.ProductsID__c){
+ exList.add(new ExMpdDetailsInfo(mpdd));
+ exViewList.add(new ExMpdDetailsInfo(mpdd));
+ }
+ }
+ if(exList.size() <= 0){
+ exViewList.add(new ExMpdDetailsInfo());
+ }
+ ExMpdDetailsInfo exd = new ExMpdDetailsInfo();
+ exd.mpdrdd.ProductsID__c = id;
+ exList.add(exd);
+ muCountMap.put(id,exList.size());
+ muCountViewMap.put(id,exViewList.size());
+ exmpdDetailsRecordsMap.put(id,exList);
+ exmpdDetailsRecordsViewMap.put(id,exViewList);
+ }
+ System.debug('chenjingwu=>' + idList);
+ System.debug('chenjingwu=>' + muCountMap);
+ System.debug('chenjingwu=>' + exmpdDetailsRecordsMap);
+ System.debug('chenjingwu=>' + mpdDetailsRecords);
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 end
+ }
}
}
// 妫�绱�
@@ -620,7 +662,8 @@
//鏇存柊
mpd_Name = [SELECT id,Name FROM Maintenance_Product_Data__c WHERE id =:id];
}
- List<Maintenance_Product_Data_Details__c> mpdd_Name = [SELECT id,Name FROM Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c =:id order by Name desc Limit 1 ];
+ String str1 = '%ex%';
+ List<Maintenance_Product_Data_Details__c> mpdd_Name = [SELECT id,Name FROM Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c =:id and (NOT Name like:str1) order by Name desc Limit 1 ];
if(mpdd_Name.size()>0){
String[] nameI= mpdd_Name[0].Name.split('-');
i = Integer.valueOf(nameI[1])+1;
@@ -656,9 +699,6 @@
//20200618 绫诲瀷涓�鑷翠笉涓�鑷翠笉鑳戒繚瀛� add start
Boolean isWarning = false;
String contentWarning = '';
- // chenjingwu 3+2澶氬勾淇濅慨 20240417 start
- List<String> idList = new List<String>();
- // chenjingwu 3+2澶氬勾淇濅慨 20240417 end
for (MaintenanceProductDataDetailsInfo ass : mpdDetailsRecordsView) {
Roll = Roll+1;
if(ass.check == true){
@@ -672,9 +712,6 @@
InsAfterDel.Maintenance_Product_Data__c = mpd_Name[0].id;
InsAfterDel.Name = mpd_Name[0].Name + '-'+ str;
InsAfterDel.ProductsID__c = ass.Prod.id;
- // chenjingwu 3+2澶氬勾淇濅慨 20240417 start
- idList.add(ass.Prod.id);
- // chenjingwu 3+2澶氬勾淇濅慨 20240417 end
switch on RecordTypeName {
when 'ImportantProduct'{
//InsAfterDel.RecordTypeName__c = 'ImportantProduct';
@@ -868,33 +905,72 @@
Ins.add(InsAfterDel);
}
}
- // chenjingwu 3+2澶氬勾淇濅慨 20240417 start
- muCountMap = new Map<String,Integer>();
- muList = [select Id,AgeLimit__c,MultiOneYearWarrantyPrice__c,AmountWithheld__c,ProductName__c from MultiYearWarranty__c where ProductName__c in: idList order By ProductName__c];
- for(AggregateResult objAgr: [select ProductName__c,COUNT(Id) total from MultiYearWarranty__c where ProductName__c in:idList group by ProductName__c]){
- muCountMap.put((String)objAgr.get('ProductName__c'), (Integer)objAgr.get('total') + 1);
- }
- muMap = new Map<String,List<MultiYearWarranty__c>>();
- for(String id: idList){
- List<MultiYearWarranty__c> mus = new List<MultiYearWarranty__c>();
- for(MultiYearWarranty__c mu: muList){
- if(id == mu.ProductName__c){
- mus.add(mu);
+ List<Maintenance_Product_Data_Details__c> exIntList = new List<Maintenance_Product_Data_Details__c>();
+ if(RecordTypeName.equals('GuranteeMain')){
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 start
+ List<String> idList = new List<String>();
+ for(MaintenanceProductDataDetailsInfo ass :mpdDetailsRecordsView){
+ if(ass.check == true){
+ idList.add(ass.Prod.id);
+ }
+ }
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 end
+ List<Maintenance_Product_Data_Details__c> exDetailList = [select Id,MultiYearWarranty__c,MultiYearWarranty__r.AgeLimit__c,MultiYearWarranty__r.MultiOneYearWarrantyPrice__c,MultiYearWarranty__r.AmountWithheld__c,AgeLimit__c,AgeLimit_Old__c,MultiOneYearWarrantyPrice__c,MultiOneYearWarrantyPrice_Old__c,AmountWithheld__c,AmountWithheld_Old__c,ProductsID__c,ProductsID__r.Name from Maintenance_Product_Data_Details__c where ProductsID__c in:idList and RecordTypeId = '012C50000000jefIAA'];
+ if(exDetailList.size() <= 0){
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 start
+ muList = [select Id,AgeLimit__c,MultiOneYearWarrantyPrice__c,AmountWithheld__c,ProductName__r.Name,ProductName__c from MultiYearWarranty__c where ProductName__c in: idList order By ProductName__c];
+ Integer str = 0;
+ for(MultiYearWarranty__c mu: muList){
+ Maintenance_Product_Data_Details__c insmpdd = new Maintenance_Product_Data_Details__c();
+ insmpdd.Maintenance_Product_Data__c = mpd_Name[0].id;
+ insmpdd.Name = mpd_Name[0].Name + '-ex'+ str;
+ insmpdd.AgeLimit__c = mu.AgeLimit__c;
+ insmpdd.MultiYearWarranty__c = mu.Id;
+ insmpdd.MultiOneYearWarrantyPrice__c = mu.MultiOneYearWarrantyPrice__c;
+ insmpdd.AmountWithheld__c = mu.AmountWithheld__c;
+ insmpdd.ProductsID__c = mu.ProductName__c;
+
+
+ insmpdd.AgeLimit_Old__c = mu.AgeLimit__c;
+ insmpdd.MultiOneYearWarrantyPrice_Old__c = mu.MultiOneYearWarrantyPrice__c;
+ insmpdd.AmountWithheld_Old__c = mu.AmountWithheld__c;
+ insmpdd.RecordTypeId = '012C50000000jefIAA';
+ exIntList.add(insmpdd);
+ str++;
+ }
+ } else{
+ delete exDetailList;
+ Integer str = 0;
+ for(List<ExMpdDetailsInfo> li: exmpdDetailsRecordsMap.values()){
+ for(ExMpdDetailsInfo ex: li){
+ if(ex.mpdrdd.AgeLimit__c > 0){
+ Maintenance_Product_Data_Details__c InsAfterDel = new Maintenance_Product_Data_Details__c();
+ InsAfterDel.Maintenance_Product_Data__c = mpd_Name[0].id;
+ InsAfterDel.Name = mpd_Name[0].Name + '-ex'+ str;
+ InsAfterDel.AgeLimit__c = ex.mpdrdd.AgeLimit__c;
+ InsAfterDel.MultiYearWarranty__c = ex.mpdrdd.MultiYearWarranty__c;
+ InsAfterDel.MultiOneYearWarrantyPrice__c = ex.mpdrdd.MultiOneYearWarrantyPrice__c;
+ InsAfterDel.AmountWithheld__c = ex.mpdrdd.AmountWithheld__c;
+ InsAfterDel.ProductsID__c = ex.mpdrdd.ProductsID__c;
+
+ InsAfterDel.AgeLimit_Old__c = ex.Prod.AgeLimit__c;
+ InsAfterDel.MultiOneYearWarrantyPrice_Old__c = ex.Prod.MultiOneYearWarrantyPrice__c;
+ InsAfterDel.AmountWithheld_Old__c = ex.Prod.AmountWithheld__c;
+ InsAfterDel.RecordTypeId = '012C50000000jefIAA';
+ exIntList.add(InsAfterDel);
+ str++;
+ }
+ }
}
}
- mus.add(new MultiYearWarranty__c(ProductName__c = id));
- muMap.put(id,mus);
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 end
}
- System.debug('chenjingwu=>' + muCountMap);
- System.debug('chenjingwu=>' + muMap);
- System.debug('chenjingwu=>' + mpdDetailsRecordsView);
-
- // chenjingwu 3+2澶氬勾淇濅慨 20240417 end
if(isWarning){
return null;
}else{
if(Ins.size()>0){
upsert Ins;
+ upsert exIntList;
return setEditAble();
}else{
return null;
@@ -1097,11 +1173,46 @@
}
Ins.add(upMpd);
}
+ List<Maintenance_Product_Data_Details__c> exIntList = new List<Maintenance_Product_Data_Details__c>();
+ List<Maintenance_Product_Data_Details__c> exDetailList = new List<Maintenance_Product_Data_Details__c>();
+ if(RecordTypeName.equals('GuranteeMain')){
+ List<Maintenance_Product_Data__c> mpd_Name = new List<Maintenance_Product_Data__c>();
+ mpd_Name = [SELECT id,Name FROM Maintenance_Product_Data__c WHERE id =:id];
+ exDetailList = [SELECT id,Name FROM Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c =:id and RecordTypeId = '012C50000000jefIAA'];
+ Integer str = 0;
+ for(List<ExMpdDetailsInfo> li: exmpdDetailsRecordsMap.values()){
+ for(ExMpdDetailsInfo ex: li){
+ if(ex.mpdrdd.AgeLimit__c > 0){
+ Maintenance_Product_Data_Details__c InsAfterDel = new Maintenance_Product_Data_Details__c();
+ InsAfterDel.Maintenance_Product_Data__c = mpd_Name[0].id;
+ InsAfterDel.Name = mpd_Name[0].Name + '-ex'+ str;
+ InsAfterDel.AgeLimit__c = ex.mpdrdd.AgeLimit__c;
+ InsAfterDel.MultiYearWarranty__c = ex.mpdrdd.MultiYearWarranty__c;
+ InsAfterDel.MultiOneYearWarrantyPrice__c = ex.mpdrdd.MultiOneYearWarrantyPrice__c;
+ InsAfterDel.AmountWithheld__c = ex.mpdrdd.AmountWithheld__c;
+ InsAfterDel.ProductsID__c = ex.mpdrdd.ProductsID__c;
+
+ InsAfterDel.AgeLimit_Old__c = ex.Prod.AgeLimit__c;
+ InsAfterDel.MultiOneYearWarrantyPrice_Old__c = ex.Prod.MultiOneYearWarrantyPrice__c;
+ InsAfterDel.AmountWithheld_Old__c = ex.Prod.AmountWithheld__c;
+ InsAfterDel.RecordTypeId = '012C50000000jefIAA';
+ exIntList.add(InsAfterDel);
+ str++;
+ }
+ }
+ }
+ // chenjingwu 3+2澶氬勾淇濅慨 20240417 end
+ }
+ System.debug('chenjingwu=>' + exIntList);
if(isWarning){
return null;
}else{
if(Ins.size()>0){
update Ins;
+ if(exIntList.size() > 0){
+ delete exDetailList;
+ upsert exIntList;
+ }
return UnabletoEdit();
}
else{
@@ -1279,6 +1390,20 @@
}
ref.setRedirect(true);
return ref;
+ }
+ public String ProId {get;set;}
+ public Integer index{get;set;}
+ public PageReference addEx(){
+ ExMpdDetailsInfo ex = new ExMpdDetailsInfo();
+ ex.mpdrdd.ProductsID__c = ProId;
+ exmpdDetailsRecordsMap.get(ProId).add(ex);
+ muCountMap.get(ProId);
+ return null;
+ }
+ public PageReference deleteEx(){
+ exmpdDetailsRecordsMap.get(ProId).remove(index);
+ muCountMap.get(ProId);
+ return null;
}
//鎼滅储鏃剁殑sql
@@ -1487,4 +1612,35 @@
}
}
+
+ class ExMpdDetailsInfo {
+ public Boolean check { get; set; }
+ public Boolean oldCheck { get; set; }
+ public Boolean canSelect { get; set; }
+ public MultiYearWarranty__c Prod { get; set; }
+ public Maintenance_Product_Data_Details__c mpdrdd {get; set;}
+
+ public ExMpdDetailsInfo(Maintenance_Product_Data_Details__c e) {
+ check = true;
+ oldCheck = true;
+ mpdrdd = e;
+ Prod = e.MultiYearWarranty__r;
+ canSelect = true;
+ }
+ public ExMpdDetailsInfo(MultiYearWarranty__c e) {
+ check = false;
+ oldCheck = false;
+ mpdrdd = new Maintenance_Product_Data_Details__c();
+ Prod = e;
+ canSelect = true;
+ }
+ public ExMpdDetailsInfo() {
+ check = false;
+ oldCheck = false;
+ mpdrdd = new Maintenance_Product_Data_Details__c();
+ Prod = new MultiYearWarranty__c();
+ canSelect = true;
+ }
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.1