高章伟
2022-03-10 1312ba82d4c880bdb5357d28e0d4af5b285f610f
force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls
@@ -2879,6 +2879,13 @@
    protected override void beforeUpdate() {
        if(!disabled){
            beforeSetValue();
            // 不太确定此处理会对其他处理有什么影响,防止生产环境发生问题,用此标签控制
            // 等确认没问题后,在删除(Todo)
            if (System.Label.Set_Queue_UniqueKey == 'TRUE') {
                // 设值排队的UniqueKey
                setUniqueKeyQueue();
            }
        }
    }
    protected override void afterInsert() {
@@ -4602,6 +4609,30 @@
    }
    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){
            Rental_Apply_Equipment_Set_Detail__c olddetail = olddetailMap.get(newdetail.Id);
            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 )//分单
                ){
                // 清空排队的UniqueKey
                newdetail.UniqueKey_Queue__c = null;
            }
            // 重排或者排队No变化时更新
            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)) {
                // 排队的UniqueKey设值
                newdetail.UniqueKey_Queue__c = newdetail.ExternalKey__c + ':' + newdetail.Queue_Number__c;
            }
        }
    }
    /*
    private void reQueueNumber() {
        Map<String, List<Rental_Apply_Equipment_Set_Detail__c>> queueRaesdMap = new Map<String, List<Rental_Apply_Equipment_Set_Detail__c>>();