高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls
@@ -2880,12 +2880,8 @@
        if(!disabled){
            beforeSetValue();
            // 不太确定此处理会对其他处理有什么影响,防止生产环境发生问题,用此标签控制
            // 等确认没问题后,在删除(Todo)
            if (System.Label.Set_Queue_UniqueKey == 'TRUE') {
                // 设值排队的UniqueKey
                setUniqueKeyQueue();
            }
        }
    }
    protected override void afterInsert() {
@@ -4499,6 +4495,7 @@
            }
        }
                
        if (!detailIds.isEmpty()) {
        List<String> sequencekeylist = new List<String>();
        List<String> changeSequenceIds = new List<String>();
        Map<String,Decimal> changesequenceMap = new Map<String,Decimal>();
@@ -4605,15 +4602,19 @@
        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;
        for(Rental_Apply_Equipment_Set_Detail__c newdetail : (List<Rental_Apply_Equipment_Set_Detail__c>)trigger.new){
        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('旧排队No:' + olddetail.Queue_Number__c);
            System.debug('新排队No:' + newdetail.Queue_Number__c);
            
            if((olddetail.Queue_Number__c > 0  && newdetail.Queue_Number__c == 0)// 暂定分配
                || (!olddetail.Cancel_Select__c && newdetail.Cancel_Select__c && olddetail.Queue_Number__c > 0)  //取消(排队中,暂定分配)
@@ -4621,6 +4622,7 @@
                ){
                // 清空排队的UniqueKey
                newdetail.UniqueKey_Queue__c = null;
                System.debug('新排队UniqueKey_Queue__c:' + newdetail.UniqueKey_Queue__c);
            }
            // 重排或者排队No变化时更新
@@ -4629,8 +4631,10 @@
                    || newdetail.ExternalKey__c != olddetail.ExternalKey__c)) {
                // 排队的UniqueKey设值
                newdetail.UniqueKey_Queue__c = newdetail.ExternalKey__c + ':' + newdetail.Queue_Number__c;
            System.debug('新排队UniqueKey_Queue__c:' + newdetail.UniqueKey_Queue__c);
            }
        }
        System.debug('结束处理------------------------------------');
    }
    /*
@@ -4827,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);
            /* --------- 设置运输单Map Start --------- */
            if (return_DeliverySlipMap.containsKey(raesd.Rental_Apply__c) == false) {