From d8dc84a3d56df839895f1c417a4d9cbee763d262 Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期五, 03 三月 2023 14:50:59 +0800
Subject: [PATCH] gzw 测试环境代码更新
---
force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls | 242 +++++++++++++++++++++++++++--------------------
1 files changed, 138 insertions(+), 104 deletions(-)
diff --git a/force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls b/force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls
index ece79ad..0c730b4 100644
--- a/force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls
+++ b/force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls
@@ -2879,6 +2879,9 @@
protected override void beforeUpdate() {
if(!disabled){
beforeSetValue();
+
+ // 璁惧�兼帓闃熺殑UniqueKey
+ setUniqueKeyQueue();
}
}
protected override void afterInsert() {
@@ -4491,115 +4494,147 @@
}
}
}
+
+ if (!detailIds.isEmpty()) {
+ List<String> sequencekeylist = new List<String>();
+ List<String> changeSequenceIds = new List<String>();
+ Map<String,Decimal> changesequenceMap = new Map<String,Decimal>();
+ List<Rental_Apply_Sequence__c> assignSequence = [SELECT Id,Series_No__c,Invalid_Flag__c,Externalkey__c
+ FROM Rental_Apply_Sequence__c
+ WHERE Apply_Set_Detail__c IN: detailIds
+ AND Invalid_Flag__c = false
+ AND Series_No__c > 0];
+ for(Rental_Apply_Sequence__c se:assignSequence){
+ // sequencekeylist.add(se.Externalkey__c);
+ changeSequenceIds.add(se.Id);
+ // if(!changesequenceMap.containsKey(se.Externalkey__c)){
+ // changesequenceMap.put(se.Externalkey__c,se.Series_No__c);
+ // }else{
+ // if(changesequenceMap.get(se.Externalkey__c) > se.Series_No__c){
+ // changesequenceMap.put(se.Externalkey__c,se.Series_No__c);
+ // }
+ // }
+ se.Invalid_Flag__c = true;
+ se.Series_No__c = 0;
+ }
+ List<Rental_Apply_Equipment_Set_Detail__c> changeDetailList = new List<Rental_Apply_Equipment_Set_Detail__c>();
+ List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [SELECT Id, Rental_Apply_Equipment_Set__c, Asset__c,Rental_Apply_Equipment_Set__r.Fixture_Set__r.Product_Type__c,
+ FSD_Fixture_Model_No__c, Fixture_Model_No_text__c,Rental_Apply__r.demo_purpose2__c,Queue_Day__c,ExternalKey__c,
+ Is_Body__c, FSD_Is_OneToOne__c, Select_Time__c,Rental_Apply__r.EquipmentGuaranteeFlg__c,Allow_Adjust_Queue_Flag__c,
+ Cancel_Select__c, Fixture_Model_No_F__c, Queue_Number__c, Internal_asset_location__c,Fixture_Model_No__c,Rental_Apply__c,
+ Internal_asset_location_before__c,Salesdepartment__c, Product_category_F__c, Product_category_text__c,Equipment_Type_text__c,
+ Salesdepartment_before__c,Rental_Apply__r.Request_shipping_day__c,QuenType__c,IsAdjust__c,Rental_Apply__r.Request_approval_time__c,
+ Equipment_Type__c, Rental_Apply__r.Internal_asset_location_F__c,Cancel_Reason__c,Loaner_cancel_reason__c,
+ Loaner_cancel_Remarks__c ,Rental_Apply_Equipment_Set__r.Name
+ FROM Rental_Apply_Equipment_Set_Detail__c
+ WHERE Queue_Number__c > 0
+ AND Cancel_Select__c = false
+ AND ExternalKey__c IN:externalKeyList
+ AND Id NOT IN :detailIds
+ ORDER BY Queue_Number__c ASC ];
+ Map<String,List<Rental_Apply_Equipment_Set_Detail__c>> detailsMap = new Map<String,List<Rental_Apply_Equipment_Set_Detail__c>>();
+ for(Rental_Apply_Equipment_Set_Detail__c setdetail:raesdList){
+ if(!detailsMap.containsKey(setdetail.Externalkey__c)){
+ detailsMap.put(setdetail.Externalkey__c,new List<Rental_Apply_Equipment_Set_Detail__c>());
+ }
+ detailsMap.get(setdetail.Externalkey__c).add(setdetail);
+
- List<String> sequencekeylist = new List<String>();
- List<String> changeSequenceIds = new List<String>();
- Map<String,Decimal> changesequenceMap = new Map<String,Decimal>();
- List<Rental_Apply_Sequence__c> assignSequence = [SELECT Id,Series_No__c,Invalid_Flag__c,Externalkey__c
- FROM Rental_Apply_Sequence__c
- WHERE Apply_Set_Detail__c IN: detailIds
+ }
+ for(String key:detailsMap.keySet()){
+ Decimal queueNo = minNumberMap.get(key);
+ System.debug(LoggingLevel.INFO, '*** queueNo: ' + queueNo);
+ Decimal i = 0;
+ for(Rental_Apply_Equipment_Set_Detail__c detail : detailsMap.get(key)){
+ System.debug(LoggingLevel.INFO, '*** detail.Queue_Number__c: ' + detail.Queue_Number__c);
+ if(detail.Queue_Number__c > queueNo){
+ RentalFixtureSetAssignController.KeyObj dobj = RentalFixtureSetAssignController.getSequenceInfo(detail);
+ sequencekeylist.addAll(dobj.sequencekeylist);
+ detail.Queue_Number__c = queueNo + i;
+ i ++;
+ System.debug(LoggingLevel.INFO, '**111* detail.Queue_Number__c: ' + detail.Queue_Number__c);
+ changeDetailList.add(detail);
+ }
+ }
+ }
+ List<String> nodusequencekeylist = new List<String>(new Set<String>(sequencekeylist));
+ List<Rental_Apply_Sequence__c> sequenceList = [SELECT Id,ExternalKey__c,Demo_Purpose2__c,
+ Apply_Set_Detail__c,Apply_Set_Detail_ExternalKey__c,
+ Series_No__c,Salesdepartment__c,Product_category__c,
+ Rental_Apply__c,Internal_asset_location__c,
+ Apply_Set_Detail__r.Queue_Number__c,Series_Unequal_Queue_Flag__c,
+ Fixture_Model_No__c,Equipment_Type__c
+ FROM Rental_Apply_Sequence__c
+ WHERE ExternalKey__c IN: nodusequencekeylist
+ AND Id NOT IN:changeSequenceIds
+ AND Series_No__c > 0
AND Invalid_Flag__c = false
- AND Series_No__c > 0];
- for(Rental_Apply_Sequence__c se:assignSequence){
- // sequencekeylist.add(se.Externalkey__c);
- changeSequenceIds.add(se.Id);
- // if(!changesequenceMap.containsKey(se.Externalkey__c)){
- // changesequenceMap.put(se.Externalkey__c,se.Series_No__c);
- // }else{
- // if(changesequenceMap.get(se.Externalkey__c) > se.Series_No__c){
- // changesequenceMap.put(se.Externalkey__c,se.Series_No__c);
- // }
- // }
- se.Invalid_Flag__c = true;
- se.Series_No__c = 0;
- }
- List<Rental_Apply_Equipment_Set_Detail__c> changeDetailList = new List<Rental_Apply_Equipment_Set_Detail__c>();
- List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [SELECT Id, Rental_Apply_Equipment_Set__c, Asset__c,Rental_Apply_Equipment_Set__r.Fixture_Set__r.Product_Type__c,
- FSD_Fixture_Model_No__c, Fixture_Model_No_text__c,Rental_Apply__r.demo_purpose2__c,Queue_Day__c,ExternalKey__c,
- Is_Body__c, FSD_Is_OneToOne__c, Select_Time__c,Rental_Apply__r.EquipmentGuaranteeFlg__c,Allow_Adjust_Queue_Flag__c,
- Cancel_Select__c, Fixture_Model_No_F__c, Queue_Number__c, Internal_asset_location__c,Fixture_Model_No__c,Rental_Apply__c,
- Internal_asset_location_before__c,Salesdepartment__c, Product_category_F__c, Product_category_text__c,Equipment_Type_text__c,
- Salesdepartment_before__c,Rental_Apply__r.Request_shipping_day__c,QuenType__c,IsAdjust__c,Rental_Apply__r.Request_approval_time__c,
- Equipment_Type__c, Rental_Apply__r.Internal_asset_location_F__c,Cancel_Reason__c,Loaner_cancel_reason__c,
- Loaner_cancel_Remarks__c ,Rental_Apply_Equipment_Set__r.Name
- FROM Rental_Apply_Equipment_Set_Detail__c
- WHERE Queue_Number__c > 0
- AND Cancel_Select__c = false
- AND ExternalKey__c IN:externalKeyList
- AND Id NOT IN :detailIds
- ORDER BY Queue_Number__c ASC ];
- Map<String,List<Rental_Apply_Equipment_Set_Detail__c>> detailsMap = new Map<String,List<Rental_Apply_Equipment_Set_Detail__c>>();
- for(Rental_Apply_Equipment_Set_Detail__c setdetail:raesdList){
- if(!detailsMap.containsKey(setdetail.Externalkey__c)){
- detailsMap.put(setdetail.Externalkey__c,new List<Rental_Apply_Equipment_Set_Detail__c>());
+ FOR UPDATE
+ ];
+ System.debug(LoggingLevel.INFO, '*** sequenceList: ' + sequenceList);
+ Map<String,List<Rental_Apply_Sequence__c>> sequenceMap = new Map<String,List<Rental_Apply_Sequence__c>>();
+ List<FixtureUtil.SequenceWrapper> Wrappers = new List<FixtureUtil.SequenceWrapper>();
+ for(Rental_Apply_Sequence__c se: sequenceList){
+ Wrappers.add(new FixtureUtil.SequenceWrapper(se));
}
- detailsMap.get(setdetail.Externalkey__c).add(setdetail);
+ Wrappers.sort();
+ sequenceList = new List<Rental_Apply_Sequence__c>();
+ for(FixtureUtil.SequenceWrapper wrapper:wrappers){
+ sequenceList.add(wrapper.sequence);
+ }
+ for(Rental_Apply_Sequence__c se: sequenceList){
+ if(!sequenceMap.containsKey(se.Externalkey__c)){
+ sequenceMap.put(se.Externalkey__c,new List<Rental_Apply_Sequence__c>());
+ }
+ sequenceMap.get(se.Externalkey__c).add(se);
+ }
+ List<Rental_Apply_Sequence__c> changeSequenceList = new List<Rental_Apply_Sequence__c>();
+ for(String key:sequenceMap.keyset()){
+ Decimal i = 1;
+ for(Rental_Apply_Sequence__c se: sequenceMap.get(key)){
+ if(se.Series_No__c != i){
+ se.Series_No__c = i;
+ changeSequenceList.add(se);
+ }
+ i ++ ;
+ }
+ }
+ update assignSequence;
+ update changeSequenceList;
+ update changeDetailList;
+ }
+ }
+ private void setUniqueKeyQueue(){
+ Map<Id, Rental_Apply_Equipment_Set_Detail__c> olddetailMap = (Map<Id, Rental_Apply_Equipment_Set_Detail__c>) Trigger.oldMap;
+
+ System.debug('寮�濮嬪鐞�------------------------------------');
+ System.debug('(List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new---------------' + (List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new);
+ for(Rental_Apply_Equipment_Set_Detail__c newdetail : (List<Rental_Apply_Equipment_Set_Detail__c>) Trigger.new){
+ System.debug(newdetail.Id + ' 鐢宠鍗曞彿锛�' + newdetail.Rental_Apply__r.name);
+ Rental_Apply_Equipment_Set_Detail__c olddetail = olddetailMap.get(newdetail.Id);
+ System.debug('鏃ф帓闃烴o锛�' + olddetail.Queue_Number__c);
+ System.debug('鏂版帓闃烴o锛�' + newdetail.Queue_Number__c);
- }
- for(String key:detailsMap.keySet()){
- Decimal queueNo = minNumberMap.get(key);
- System.debug(LoggingLevel.INFO, '*** queueNo: ' + queueNo);
- Decimal i = 0;
- for(Rental_Apply_Equipment_Set_Detail__c detail : detailsMap.get(key)){
- System.debug(LoggingLevel.INFO, '*** detail.Queue_Number__c: ' + detail.Queue_Number__c);
- if(detail.Queue_Number__c > queueNo){
- RentalFixtureSetAssignController.KeyObj dobj = RentalFixtureSetAssignController.getSequenceInfo(detail);
- sequencekeylist.addAll(dobj.sequencekeylist);
- detail.Queue_Number__c = queueNo + i;
- i ++;
- System.debug(LoggingLevel.INFO, '**111* detail.Queue_Number__c: ' + detail.Queue_Number__c);
- changeDetailList.add(detail);
- }
+ if((olddetail.Queue_Number__c > 0 && newdetail.Queue_Number__c == 0)// 鏆傚畾鍒嗛厤
+ || (!olddetail.Cancel_Select__c && newdetail.Cancel_Select__c && olddetail.Queue_Number__c > 0) //鍙栨秷(鎺掗槦涓紝鏆傚畾鍒嗛厤)
+ || (olddetail.Queue_Number__c > 0 && newdetail.Queue_Number__c == null )//鍒嗗崟
+ ){
+ // 娓呯┖鎺掗槦鐨刄niqueKey
+ newdetail.UniqueKey_Queue__c = null;
+ System.debug('鏂版帓闃烾niqueKey_Queue__c锛�' + newdetail.UniqueKey_Queue__c);
}
- }
- List<String> nodusequencekeylist = new List<String>(new Set<String>(sequencekeylist));
- List<Rental_Apply_Sequence__c> sequenceList = [SELECT Id,ExternalKey__c,Demo_Purpose2__c,
- Apply_Set_Detail__c,Apply_Set_Detail_ExternalKey__c,
- Series_No__c,Salesdepartment__c,Product_category__c,
- Rental_Apply__c,Internal_asset_location__c,
- Apply_Set_Detail__r.Queue_Number__c,Series_Unequal_Queue_Flag__c,
- Fixture_Model_No__c,Equipment_Type__c
- FROM Rental_Apply_Sequence__c
- WHERE ExternalKey__c IN: nodusequencekeylist
- AND Id NOT IN:changeSequenceIds
- AND Series_No__c > 0
- AND Invalid_Flag__c = false
- FOR UPDATE
- ];
- System.debug(LoggingLevel.INFO, '*** sequenceList: ' + sequenceList);
- Map<String,List<Rental_Apply_Sequence__c>> sequenceMap = new Map<String,List<Rental_Apply_Sequence__c>>();
- List<FixtureUtil.SequenceWrapper> Wrappers = new List<FixtureUtil.SequenceWrapper>();
- for(Rental_Apply_Sequence__c se: sequenceList){
- Wrappers.add(new FixtureUtil.SequenceWrapper(se));
- }
- Wrappers.sort();
- sequenceList = new List<Rental_Apply_Sequence__c>();
- for(FixtureUtil.SequenceWrapper wrapper:wrappers){
- sequenceList.add(wrapper.sequence);
- }
- for(Rental_Apply_Sequence__c se: sequenceList){
- if(!sequenceMap.containsKey(se.Externalkey__c)){
- sequenceMap.put(se.Externalkey__c,new List<Rental_Apply_Sequence__c>());
- }
- sequenceMap.get(se.Externalkey__c).add(se);
- }
- List<Rental_Apply_Sequence__c> changeSequenceList = new List<Rental_Apply_Sequence__c>();
- for(String key:sequenceMap.keyset()){
- Decimal i = 1;
- for(Rental_Apply_Sequence__c se: sequenceMap.get(key)){
- if(se.Series_No__c != i){
- se.Series_No__c = i;
- changeSequenceList.add(se);
- }
- i ++ ;
- }
- }
- update assignSequence;
- update changeSequenceList;
- update changeDetailList;
-
+ // 閲嶆帓鎴栬�呮帓闃烴o鍙樺寲鏃舵洿鏂�
+ if (!newdetail.Cancel_Select__c && newdetail.Queue_Number__c > 0 && newdetail.ExternalKey__c != null
+ && (newdetail.Queue_Number__c != olddetail.Queue_Number__c
+ || newdetail.ExternalKey__c != olddetail.ExternalKey__c)) {
+ // 鎺掗槦鐨刄niqueKey璁惧��
+ newdetail.UniqueKey_Queue__c = newdetail.ExternalKey__c + ':' + newdetail.Queue_Number__c;
+ System.debug('鏂版帓闃烾niqueKey_Queue__c锛�' + newdetail.UniqueKey_Queue__c);
+ }
+ }
+ System.debug('缁撴潫澶勭悊------------------------------------');
}
/*
@@ -4796,13 +4831,12 @@
ORDER BY Rental_Apply__c, Rental_Apply_Equipment_Set__c, Name];
// 鏀堕泦鍥炲瘎鏄庣粏 {raesId -> raesdList}
Map<Id, List<Rental_Apply_Equipment_Set_Detail__c>> raesdListMap = new Map<Id, List<Rental_Apply_Equipment_Set_Detail__c>>();
- Map<Id, Rental_Apply__c> return_DeliverySlipIdMap = new Map<Id, Rental_Apply__c>();
Map<Id, FixtureDeliverySlip__c> return_DeliverySlipMap = new Map<Id, FixtureDeliverySlip__c>();
for (Rental_Apply_Equipment_Set_Detail__c raesd : raesdList) {
if (!raesdListMap.containsKey(raesd.Rental_Apply_Equipment_Set__c)) {
raesdListMap.put(raesd.Rental_Apply_Equipment_Set__c, new List<Rental_Apply_Equipment_Set_Detail__c>());
}
- return_DeliverySlipIdMap.put(raesd.Return_DeliverySlip__c, raesd.Rental_Apply__r);
+
raesdListMap.get(raesd.Rental_Apply_Equipment_Set__c).add(raesd);
/* --------- 璁剧疆杩愯緭鍗昅ap Start --------- */
if (return_DeliverySlipMap.containsKey(raesd.Rental_Apply__c) == false) {
--
Gitblit v1.9.1