李金换
2023-04-21 cc7487a59bd4b0fa5bed1dd59f6d0565ace81b8b
force-app/main/default/classes/OPDPlanHandler.cls
@@ -115,6 +115,7 @@
                    PlanProdDetail__c,
                    DelayCancel_Reason__c,
                    Rental_Apply2__c,
                    Rental_Apply2__r.Name,
                    RentalReson__c, //出借目的
                    noReportStatus__c, //无报告状态
                    ModelLendingProduct__c, //模型出借产品
@@ -173,6 +174,7 @@
                            nobj.SkipValidationRulesAndWorkflows__c = true;//跳过验证规则或工作流
                            nObj.supplementaryApplication__c = true;
                            nobj.originalOpdRentalApply__c = originalOpdPlanApplication.Rental_Apply2__c;
                            //nobj.originalOpdRentalApplyName__c = originalOpdPlanApplication.Rental_Apply2__r.Name;
                            if (nObj.Account_Laboratory__c != originalOpdPlanApplication.Account_Laboratory__c) {
                                nObj.Account_Laboratory__c.addError('补充申请的OPD计划,不可修改科室的值');
@@ -266,7 +268,7 @@
                         //2021-08-13  mzy   SWAG-C5RAZV  事件——计划 延期 调查  start
                         delayReason__c,
                         //2021-08-13  mzy   SWAG-C5RAZV  事件——计划 延期 调查  end
                         Subject from Event where Opd_Plan__c in: oSetIdSet];
                         Subject from Event where Opd_Plan__c in: oSetIdSet and EventStatus__c in ('02 接受','01 分配')];//2022-4-28 yjk 排除掉已经完成的事件
        }
        if (eventList.size() > 0) {
@@ -382,6 +384,7 @@
            insert eveCloneList;
            update taskList;
        }
    }
@@ -407,7 +410,29 @@
        // 取得User审批人
        List<User> uList = new List<User>();
        if (userFlg) {
            uList = [select Id, SalesManager__c, SalesManager__r.Name from user where SalesManager__r.IsActive = true And id = :UserInfo.getUserId()];
            //2022-07-20   zyh   update   SWAG-CGG7X9   start
            // uList = [select Id, SalesManager__c, SalesManager__r.Name from user where SalesManager__r.IsActive = true And id = :UserInfo.getUserId()];
            uList = [select Id,
                            SalesManager__c,
                            SalesManager__r.Name,
                            BuchangApprovalManagerSales__c,
                            BuchangApprovalManagerSales__r.Name,
                            Buzhang_Equipment_Manager__c,
                            // Buzhang_Equipment_Manager__r.Name,
                            ZongjianApprovalManager__c,
                            // ZongjianApprovalManager__r.Name,
                            TongkuoZongjian__c,
                            TongkuoZongjianHD__c,
                            // TongkuoZongjian__r.Name,
                            SalesManager__r.IsActive,
                            BuchangApprovalManagerSales__r.IsActive,
                            Buzhang_Equipment_Manager__r.IsActive,
                            ZongjianApprovalManager__r.IsActive,
                            TongkuoZongjian__r.IsActive,
                            TongkuoZongjianHD__r.IsActive,
                            Salesdepartment__c
                            from user where id = :UserInfo.getUserId()];
            //2022-07-20   zyh   update   SWAG-CGG7X9   end
        }
        // 设置审批人
@@ -416,8 +441,38 @@
                    && (String.isBlank(oldMap.get(n.Id).Status__c) || oldMap.get(n.Id).Status__c.equals('草案中')))                  
                || ((String.isNotBlank(n.noReportStatus__c) && n.noReportStatus__c.equals('提交')
                && (String.isBlank(oldMap.get(n.Id).noReportStatus__c) || oldMap.get(n.Id).noReportStatus__c.equals('已保存'))))) {
                if (uList.size() > 0) {
                //2022-07-20   zyh   update   SWAG-CGG7X9   start
                if (uList[0].SalesManager__r.IsActive == true || String.isNotBlank(uList[0].SalesManager__c)) {
                    n.SalesManager__c = uList[0].SalesManager__c;
                    n.SalesManager_Txt__c = uList[0].SalesManager__r.Name;
                }
                if ('OPD'.equals(n.RentalReson__c) && String.isBlank(n.Related_Opportunity1_Name__c) && String.isBlank(n.Related_Opportunity2_Name__c)) {
                    if (uList[0].BuchangApprovalManagerSales__r.IsActive == true || String.isNotBlank(uList[0].BuchangApprovalManagerSales__c)) {
                        n.BuchangApprovalManagerSales__c = uList[0].BuchangApprovalManagerSales__c;
                        n.BuchangApprovalManagerSales_Txt__c = uList[0].BuchangApprovalManagerSales__r.Name;
                    }
                    if (uList[0].Buzhang_Equipment_Manager__r.IsActive == true || String.isNotBlank(uList[0].Buzhang_Equipment_Manager__c)) {
                        n.Buzhang_Equipment_Manager__c = uList[0].Buzhang_Equipment_Manager__c;
                    }
                    if (uList[0].ZongjianApprovalManager__r.IsActive == true || String.isNotBlank(uList[0].ZongjianApprovalManager__c)) {
                        n.ZongjianApprovalManager__c = uList[0].ZongjianApprovalManager__c;
                    }
                    // 20230420 ljh DB202304312550 start
                    // if (uList[0].Salesdepartment__c == '1.华北' || uList[0].Salesdepartment__c == '2.东北') {
                    //     if (uList[0].TongkuoZongjianHD__r.IsActive == true || String.isNotBlank(uList[0].TongkuoZongjianHD__c)) {
                    //         n.TongkuoZongjian__c = uList[0].TongkuoZongjianHD__c;
                    //     }
                    // }else{
                    //     if (uList[0].TongkuoZongjian__r.IsActive == true || String.isNotBlank(uList[0].TongkuoZongjian__c)) {
                    //         n.TongkuoZongjian__c = uList[0].TongkuoZongjian__c;
                    //     }
                    // }
                    if (uList[0].TongkuoZongjian__r.IsActive == true || String.isNotBlank(uList[0].TongkuoZongjian__c)) {
                        n.TongkuoZongjian__c = uList[0].TongkuoZongjian__c;
                    }
                    // 20230420 ljh DB202304312550 end
                }
                /*if (uList.size() > 0) {
                    String MId = uList[0].SalesManager__c;
                    if (String.isBlank(MId)) {
                        n.addError('经理无效,请联系管理员。');
@@ -429,7 +484,8 @@
                    }
                }else {
                    n.addError('经理无效/离职,请联系管理员。');
                }
                }*/  //2022-07-20   zyh  update
                //2022-07-20   zyh   update   SWAG-CGG7X9   end
            }else 
            //推广经理发生变化赋值文本字段
            if(oldMap.get(n.Id).SalesManager__c != n.SalesManager__c){
@@ -446,7 +502,23 @@
                    }
                }
                
            }
            }else     //2022-07-22   zyh   add   start
            //推广总监发生变化赋值文本字段
            if(oldMap.get(n.Id).BuchangApprovalManagerSales__c != n.BuchangApprovalManagerSales__c){
                //推广总监 等于空
                if(String.isBlank(n.BuchangApprovalManagerSales__c)){
                    n.SalesManager_Txt__c = '';
                }else {
                    List<User> tempUList = new List<User>();
                    tempUList = [select Id, Name from user where IsActive = true And id = :n.BuchangApprovalManagerSales__c];
                    if(tempUList.size() > 0){
                        n.BuchangApprovalManagerSales_Txt__c = tempUList[0].Name;
                    }else {
                        n.addError('总监无效/离职,请联系管理员。');
                    }
                }
            }//2022-07-22   zyh   add   end
        }
    }
@@ -559,8 +631,7 @@
                            if(t.OPDType__c=='学会'){
                             OpdTargetLastAcc.put(t.id,an.Id+'');//上财年  dcListMap.keySet()  dcListMap.values()
                             }
                        }
                        }
                    }
                }
            }
@@ -630,6 +701,7 @@
        Integer buffer = Integer.valueOf(System.Label.opd_oldDate_update);//为了刷新prod上的老数据
        //存放模型出借配套的id
        List<OPDPlan__c>  opdModelLendList = new  List<OPDPlan__c> ();
        Map<Id,Id> opdTaskIdMap = new Map<Id,Id>();//2022-6-24 yjk 延期时opd未对应延期任务
        for (OPDPlan__c t : newList) {
            if (Trigger.isUpdate && (oldMap.get(t.id).Status__c != t.Status__c && t.Status__c == '审批中' || buffer==1)) { 
@@ -665,8 +737,24 @@
            
            // SWAG-BXW4AH  XHL 20210312 因OPD计划 系统自动延期  后 会清空 备品出借优先度与排序日期
            // 因此 注掉 End
            //2022-6-24 yjk 延期时opd未对应延期任务 start
            opdTaskIdMap.put(t.Task_ID__c,t.id);
            //2022-6-24 yjk 延期时opd未对应延期任务 end
            
        }
        //2022-6-24 yjk 延期时opd未对应延期任务 start
        List<Task__c> taskList = [select id,delayTask__c from Task__c where id in :opdTaskIdMap.keySet()];
        for(Task__c tsk : taskList){
            if(tsk != null && tsk.delayTask__c != null){
                newMap.get(opdTaskIdMap.get(tsk.id)).Task_ID__c = taskList.get(0).delayTask__c;
            }
        }
        //2022-6-24 yjk 延期时opd未对应延期任务 end
        if(opdModelLendList.size()>0){
            updateModelLending(opdModelLendList);
        }
@@ -863,6 +951,7 @@
                    from Account_Number_of_target__c
                    where id in :OpdTargetAcc.values()]);//查询目标客户 本财年的 
            system.debug('==本财年' + acctarList.size());
            Map<id, Account_Number_of_target__c> acctarlastList = new Map<id, Account_Number_of_target__c>([select id,
                    OPD_amount_290MiroBF__c,
                    OPD_amount_290MiroGI__c,
@@ -922,7 +1011,7 @@
                    OPDPlan__c opdplan = new OPDPlan__c();
                    for (String opd : OpdPlanDetail) {
                        opdplan.id = t.id;
                        if(acctarList !=null){
                        if(acctarList !=null && acctarList.size() >0){
                        if (column != null) {
                            for (Integer i = 0; i < column.size(); i++) { //是否产品OPD目标客户
                                List<String>  titleAccout = tempImportantProduct.get(column[i]);
@@ -1039,7 +1128,7 @@
                            for (Integer i = 0; i < columnOPDAmount.size(); i++) { //本期OPD次数
                                String  titleAccout5 = tempImportantOPDAmount.get(columnOPDAmount[i]);
                                if (opd == titleAccout5) {
                                    if(acctarList !=null){
                                    if(acctarList !=null && acctarList.size()>0){
                                        if (acctarList.containskey(opdct) && acctarList.get(opdct).get(columnOPDAmount[i]) != null && acctarList.get(opdct).get(columnOPDAmount[i]) != 0) {
                                            system.debug('=columnOPDAmount[i]==' + columnOPDAmount[i] + '=本期OPD次数=' + acctarList.get(opdct).get(columnOPDAmount[i]));
                                            Decimal aa = acctarList.get(opdct).get(columnOPDAmount[i]) == null ? 0 : Decimal.valueOf(String.valueOf(acctarList.get(opdct).get(columnOPDAmount[i])));
@@ -1056,7 +1145,7 @@
                                            }
                                        }
                                    }
                                    if(acctarlastList !=null){
                                    if(acctarlastList !=null && acctarlastList.size()>0){
                                        if (acctarlastList.containskey(opdla) && acctarlastList.get(opdla).get(columnOPDAmount[i]) != null && acctarlastList.get(opdla).get(columnOPDAmount[i]) != 0) {
                                            system.debug('=columnOPDAmount[i]==' + columnOPDAmount[i] + '=上期OPD次数=' + acctarlastList.get(opdla).get(columnOPDAmount[i]));
                                            Decimal bb = acctarlastList.get(opdla).get(columnOPDAmount[i]) == null ? 0 : Decimal.valueOf(String.valueOf(acctarlastList.get(opdla).get(columnOPDAmount[i])));