liuyan
2022-11-30 6b05e5c975c7e33b09e6073f1ec8419e1f9b065b
Merge branch 'master' of http://47.92.229.245:8089/r/OlyMEBG
2个文件已修改
105 ■■■■ 已修改文件
force-app/main/default/classes/EnquiryBoostTypeBatch.cls 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OPDPlanCancelPostponePlanLogicBatch.cls 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/EnquiryBoostTypeBatch.cls
@@ -42,41 +42,58 @@
    global void execute(Database.BatchableContext BC, list<Rental_Apply__c> scope) {
        if(scope != null && scope.size() > 0){
            List<Rental_Apply__c> addListRentalApply = new List<Rental_Apply__c>();
            // 20221129 ljh DB202211366462 询价状态2 start
            String InquiryStatusMapping = System.Label.Inquiry_Status_Mapping;
            Map<String, Object> mapping = (Map<String, Object>) JSON.deserializeUntyped(InquiryStatusMapping);
            // 20221129 ljh DB202211366462 询价状态2 end
            for(Rental_Apply__c ra : scope){
                String newFollowPclStatus2Text = ra.Follow_pcl_status2_Text__c;
                String newFollowPclStatus2 = ra.Follow_pcl_status2__c;
                Rental_Apply__c raData = new Rental_Apply__c();
                raData.id = ra.id;
                if(newFollowPclStatus2Text != null){
                    // 20221129 ljh DB202211366462 询价状态2 start
                    //跟进中
                    if(newFollowPclStatus2Text == '引合 : -' || newFollowPclStatus2Text == '引合 : 00 还没更新' || newFollowPclStatus2Text == '引合 : 01 还没拜访' || newFollowPclStatus2Text == '引合 : 02 跟进中'){
                        raData.Inquiry_Status_History__c = 1;
                    }else if(newFollowPclStatus2Text == '引合 : 03 已授权'){//已授权
                        raData.Inquiry_Status_History__c = 2;
                    }else if(newFollowPclStatus2Text == '引合 : 04 已中标' || newFollowPclStatus2Text == '引合 : 05 价格申请中' || newFollowPclStatus2Text == '引合 : 06 用户未签约' || newFollowPclStatus2Text == '引合 : 07 用户已签约'
                         || newFollowPclStatus2Text == '引合 : 08 已签约'){//准备签约
                        raData.Inquiry_Status_History__c = 3;
                    }else if(newFollowPclStatus2Text == '出荷 : -' || newFollowPclStatus2Text == '完了 : -'  || newFollowPclStatus2Text == '注残 : -' || newFollowPclStatus2Text == '完了 : 08 已签约'){//已订货
                        raData.Inquiry_Status_History__c = 4;
                    }else if(newFollowPclStatus2Text == '削除 : 17 取消' || newFollowPclStatus2Text == '敗戦 : 18 失单'){//0.取消  0.失单
                        raData.Inquiry_Status_History__c = 0;
                    }
                    // if(newFollowPclStatus2Text == '引合 : -' || newFollowPclStatus2Text == '引合 : 00 还没更新' || newFollowPclStatus2Text == '引合 : 01 还没拜访' || newFollowPclStatus2Text == '引合 : 02 跟进中'){
                    //     raData.Inquiry_Status_History__c = 1;
                    // }else if(newFollowPclStatus2Text == '引合 : 03 已授权'){//已授权
                    //     raData.Inquiry_Status_History__c = 2;
                    // }else if(newFollowPclStatus2Text == '引合 : 04 已中标' || newFollowPclStatus2Text == '引合 : 05 价格申请中' || newFollowPclStatus2Text == '引合 : 06 用户未签约' || newFollowPclStatus2Text == '引合 : 07 用户已签约'
                    //      || newFollowPclStatus2Text == '引合 : 08 已签约'){//准备签约
                    //     raData.Inquiry_Status_History__c = 3;
                    // }else if(newFollowPclStatus2Text == '出荷 : -' || newFollowPclStatus2Text == '完了 : -'  || newFollowPclStatus2Text == '注残 : -' || newFollowPclStatus2Text == '完了 : 08 已签约'){//已订货
                    //     raData.Inquiry_Status_History__c = 4;
                    // }else if(newFollowPclStatus2Text == '削除 : 17 取消' || newFollowPclStatus2Text == '敗戦 : 18 失单'){//0.取消  0.失单
                    //     raData.Inquiry_Status_History__c = 0;
                    // }
                    raData.Inquiry_Status_History__c = mapping.get(newFollowPclStatus2Text) != null ? Integer.valueOf(mapping.get(newFollowPclStatus2Text)) : null;
                    // System.debug('zheli00:'+mapping.get(newFollowPclStatus2Text));
                    // 20221129 ljh DB202211366462 询价状态2 end
                }
                if(newFollowPclStatus2 != null){
                    // 20221129 ljh DB202211366462 询价状态2 start
                    //跟进中
                    if(newFollowPclStatus2 == '引合 : -' || newFollowPclStatus2 == '引合 : 00 还没更新' || newFollowPclStatus2 == '引合 : 01 还没拜访' || newFollowPclStatus2 == '引合 : 02 跟进中'){
                        raData.Inquiry_Status_Now__c = 1;
                    }else if(newFollowPclStatus2 == '引合 : 03 已授权'){//已授权
                        raData.Inquiry_Status_Now__c = 2;
                    }else if(newFollowPclStatus2 == '引合 : 04 已中标' || newFollowPclStatus2 == '引合 : 05 价格申请中' || newFollowPclStatus2 == '引合 : 06 用户未签约' || newFollowPclStatus2 == '引合 : 07 用户已签约'
                         || newFollowPclStatus2 == '引合 : 08 已签约'){//准备签约
                        raData.Inquiry_Status_Now__c = 3;
                    }else if(newFollowPclStatus2 == '出荷 : -' || newFollowPclStatus2 == '完了 : -'  || newFollowPclStatus2 == '注残 : -' || newFollowPclStatus2 == '完了 : 08 已签约'){//已订货
                        raData.Inquiry_Status_Now__c = 4;
                    }else if(newFollowPclStatus2 == '削除 : 17 取消' || newFollowPclStatus2 == '敗戦 : 18 失单'){//0.取消  0.失单
                        raData.Inquiry_Status_Now__c = 0;
                    }
                    // if(newFollowPclStatus2 == '引合 : -' || newFollowPclStatus2 == '引合 : 00 还没更新' || newFollowPclStatus2 == '引合 : 01 还没拜访' || newFollowPclStatus2 == '引合 : 02 跟进中'){
                    //     raData.Inquiry_Status_Now__c = 1;
                    // }else if(newFollowPclStatus2 == '引合 : 03 已授权'){//已授权
                    //     raData.Inquiry_Status_Now__c = 2;
                    // }else if(newFollowPclStatus2 == '引合 : 04 已中标' || newFollowPclStatus2 == '引合 : 05 价格申请中' || newFollowPclStatus2 == '引合 : 06 用户未签约' || newFollowPclStatus2 == '引合 : 07 用户已签约'
                    //      || newFollowPclStatus2 == '引合 : 08 已签约'){//准备签约
                    //     raData.Inquiry_Status_Now__c = 3;
                    // }else if(newFollowPclStatus2 == '出荷 : -' || newFollowPclStatus2 == '完了 : -'  || newFollowPclStatus2 == '注残 : -' || newFollowPclStatus2 == '完了 : 08 已签约'){//已订货
                    //     raData.Inquiry_Status_Now__c = 4;
                    // }else if(newFollowPclStatus2 == '削除 : 17 取消' || newFollowPclStatus2 == '敗戦 : 18 失单'){//0.取消  0.失单
                    //     raData.Inquiry_Status_Now__c = 0;
                    // }
                    raData.Inquiry_Status_Now__c = mapping.get(newFollowPclStatus2) != null ? Integer.valueOf(mapping.get(newFollowPclStatus2)) : null;
                    // System.debug('zheli01:'+mapping.get(newFollowPclStatus2));
                    // 20221129 ljh DB202211366462 询价状态2 end
                }
                // Boolean aa = raData.Inquiry_Status_Now__c != ra.Inquiry_Status_Now__c;
                // System.debug('zheli03:'+aa+raData.Inquiry_Status_Now__c +'~~'+ ra.Inquiry_Status_Now__c);
                //为了减少update,如果值没有发生变化,那么不需要更新
                if((raData.Inquiry_Status_Now__c != ra.Inquiry_Status_Now__c) || (raData.Inquiry_Status_History__c != ra.Inquiry_Status_History__c)){
                    addListRentalApply.add(raData);
@@ -84,8 +101,10 @@
            }
            Savepoint sp = Database.setSavepoint();
            try{
                // System.debug('zheli05:');
                update addListRentalApply;
            }catch(exception e){
                // System.debug('zheli04:'+e.getMessage());
                errStr = e.getMessage()+'\n';
                errStr += e.getLineNumber()+'\n';
                Database.rollback(sp);
force-app/main/default/classes/OPDPlanCancelPostponePlanLogicBatch.cls
@@ -1,6 +1,7 @@
//当前日期大于OPD计划实施日期 and 状态不等于取消或完毕 and (opd计划下没有任何得备品借出申请 or 或者对应备品借出状态是草案中,申请中,取消时)
//需要创建OPD计划取消延期,更新opd计划
//1.OPD计划取消延期.取消理由是取消成功,2.需要考虑opd计划所有人是否已离职,若离职,取消/延期理由为担当离职,否则为没完成备品申请
// OPD计划延期一次后,在第二个月仍没有分配备品的,OPD计划自动取消,原因为备品不足,同时备品申请自动取消。 ljh 20220929
global class OPDPlanCancelPostponePlanLogicBatch implements Database.Batchable<sObject>, Database.Stateful {
    //加日志 为了更新历史数据 做一下日志查看 20201124 you start
    private final Id TEST_ID = null;
@@ -65,9 +66,8 @@
        List<CancelPostponePlan__c> cppList =  new List<CancelPostponePlan__c>();
        List<OPDPlan__c> OpdRtlList = new List<OPDPlan__c>();
        List<OPDPlan__c>OpdUpList = new List<OPDPlan__c>();
        system.debug('OPDPlanList' + OPDPlanList.size());
        Set<Id> raIdSet = new Set<Id>();// 有保有设备 的一申请书  20221107 ljh update SWAG-CHM5E4
        for (OPDPlan__c op : OPDPlanList) {
            if (op.Rental_Apply2__c != null) {
                // 所有有备品的OPD计划
@@ -79,25 +79,51 @@
        }
        //opdID与OPD计划取消延期Map
        Map<id, Rental_Apply__c> rtlMap  = new Map<id, Rental_Apply__c>();
        Set<Id> rtl3Set  = new Set<Id>();//20221108  ljh update SWAG-CHM5E4
        if (OpdRtlList.size() > 0) {
            //获取OPD计划下的取消延期数据
            //20220920  ljh update SWAG-CHM5E4  start
            List<Rental_Apply_Equipment_Set_Detail__c> raesList =
                [select Rental_Apply__c from Rental_Apply_Equipment_Set_Detail__c where Asset__c != null and Rental_Apply__r.OPDPlan__c in :OpdRtlList];
            for(Rental_Apply_Equipment_Set_Detail__c raes:raesList){
                raIdSet.add(raes.Rental_Apply__c);
            }
            //20220920  ljh update SWAG-CHM5E4 end
            List<Rental_Apply__c> rtlList =
                [select id, RA_Status__c, OPDPlan__c from Rental_Apply__c where OPDPlan__c in :OpdRtlList];
            //取出备品借出状态不是草案中,申请中,取消的取消延期数据放入map
            for (Rental_Apply__c rtl : rtlList) {
                if (rtl.RA_Status__c != '草案中' && rtl.RA_Status__c != '申请中' && rtl.RA_Status__c != '取消') {
                //20221007  ljh update SWAG-CHM5E4 start
                // if (rtl.RA_Status__c != '草案中' && rtl.RA_Status__c != '申请中' && rtl.RA_Status__c != '取消') {
                //     // OPD计划-所有备品Map
                //     rtlMap.put(rtl.OPDPlan__c, rtl);
                // }
                if (rtl.RA_Status__c == '草案中' || rtl.RA_Status__c == '申请中' || rtl.RA_Status__c == '取消') {
                    // OPD计划-所有备品Map
                    rtlMap.put(rtl.OPDPlan__c, rtl);
                    rtl3Set.add(rtl.OPDPlan__c);
                }
                if(raIdSet.contains(rtl.Id)){
                    rtlMap.put(rtl.OPDPlan__c, rtl);
                }
                //20221007  ljh update SWAG-CHM5E4 end
            }
        }
        Date dateToday1 = Date.today();//20221108  ljh update SWAG-CHM5E4
        //取出可以变更的备品借出申请
        for (OPDPlan__c OpdRt : OpdRtlList) {
            if (!rtlMap.containskey(OpdRt.Id)) {
            //20221108  ljh update SWAG-CHM5E4 start
            // if (!rtlMap.containskey(OpdRt.Id)) {
            //     OpdUpList.add(OpdRt);
            // }
            if (!rtlMap.containskey(OpdRt.Id) && rtl3Set.contains(OpdRt.Id)) {
                OpdUpList.add(OpdRt);
            }else if(!rtlMap.containskey(OpdRt.Id) && !rtl3Set.contains(OpdRt.Id) && OpdRt.OPDPlan_ImplementDate__c < dateToday1 && OpdRt.SystemDelayMark__c){
                OpdUpList.add(OpdRt);
            }
            //20221108  ljh update SWAG-CHM5E4 end
        }
        Date dateToday1 = Date.today();
        // Date dateToday1 = Date.today();
        System.debug('OpdUpList个数:'+OpdUpList.size());
        //赋值需要考虑担当者是否在职
        for (OPDPlan__c op : OpdUpList) {
            CancelPostponePlan__c cpp = new CancelPostponePlan__c();