| | |
| | | Inquiry_form__c oObj = null; |
| | | List<String> depIDList = new List<String>(); |
| | | List<Account> accList = new List<Account>(); |
| | | //20220511 you SWAG-CBUB2W start |
| | | Map<String, OCM_Management_Province__c> mpMap = new Map<String, OCM_Management_Province__c>(); |
| | | Set<String> accOCSMset = new Set<String>(); |
| | | //20220511 you SWAG-CBUB2W end |
| | | |
| | | for(Inquiry_form__c nnObj : newList) { |
| | | if (oldMap != null && oldMap.containsKey(nnObj.Id)) { |
| | |
| | | nnObj.Hospital__c = null; //医院 |
| | | nnObj.CreateDate__c = null; //创建日 |
| | | } |
| | | |
| | | //20220507 SWAG-CBUB2W you start |
| | | if(Trigger.isInsert || oObj.Request1__c != nnObj.Request1__c){ |
| | | if(String.isNotBlank(nnObj.Request1__c) && '服务对应' == nnObj.Request1__c && String.isBlank(nnObj.Follow_Content__c)){ |
| | | nnObj.Status__c =''; |
| | | }else if( String.isBlank(nnObj.Status__c) && (nnObj.Request1__c.indexOf('需要报价')!=-1 || nnObj.Request1__c.indexOf('OPD')!=-1 || nnObj.Request1__c.indexOf('产品说明')!=-1 || nnObj.Request1__c.indexOf('寄送产品资料')!=-1)){ |
| | | nnObj.Status__c ='01.未跟进'; |
| | | } |
| | | |
| | | } |
| | | //20220507 SWAG-CBUB2W you end |
| | | //20220511 you SWAG-CBUB2W start |
| | | if(Trigger.isUpdate){ |
| | | /** 挪到营业跟进页面 |
| | | if(false != nnObj.Redistribution__c && String.isBlank(nnObj.GotoDepartment__c)){ |
| | | nnObj.GotoDepartment__c.addError('勾选时必须填写转至科室'); |
| | | } |
| | | if(false == nnObj.Redistribution__c && String.isNotBlank(nnObj.GotoDepartment__c)){ |
| | | nnObj.GotoDepartment__c.addError('未勾选时不能填写转至科室'); |
| | | } |
| | | **/ |
| | | if(String.isNotBlank(nnObj.GotoDepartment__c) && nnObj.GotoDepartment__c != oObj.GotoDepartment__c){ |
| | | nnObj.RedistributionDate__c = System.now(); |
| | | accOCSMset.add(nnObj.OCM_man_province_cus__c); |
| | | } |
| | | if(String.isNotBlank(nnObj.Hospital_Name__c) && String.isNotBlank(oObj.Hospital_Name__c) && nnObj.Hospital_Name__c != oObj.Hospital_Name__c ){ |
| | | nnObj.AssistantRedistributionDate__c = System.now(); |
| | | } |
| | | |
| | | //20221130 you DB202211530484 start |
| | | if(null!= nnObj.Product_Owner__c && nnObj.Product_Owner__c != oObj.Product_Owner__c){ |
| | | nnObj.ProductAssumeDate__c = System.now(); |
| | | accOCSMset.add(nnObj.OCM_man_province_cus__c); |
| | | } |
| | | if(null!= nnObj.OwnerId && nnObj.OwnerId != oObj.OwnerId){ |
| | | nnObj.AssistantChangeOwnerTime__c = System.now(); |
| | | } |
| | | //20221130 you DB202211530484 end |
| | | } |
| | | //20220511 you SWAG-CBUB2W end |
| | | } |
| | | |
| | | if (depIDList.size()>0) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | //20220511 you SWAG-CBUB2W start |
| | | if(null !=accOCSMset){ |
| | | List<OCM_Management_Province__c> mpList = |
| | | [select id, Name, GI_assistant__c,SP_assistant__c from OCM_Management_Province__c where Name =: accOCSMset]; |
| | | |
| | | // 取得OCSM管理省的GI,SP 助理 |
| | | for (OCM_Management_Province__c mp : mpList) { |
| | | mpMap.put(mp.Name, mp); |
| | | } |
| | | } |
| | | //20220511 you SWAG-CBUB2W end |
| | | |
| | | for(Inquiry_form__c nObj : newList) { |
| | | if (accMap.containsKey(nObj.Hospital_Name__c)){ |
| | | nObj.Depart_Owner__c = accMap.get(nObj.Hospital_Name__c).OwnerId; //战略科室所有人 |
| | | nObj.OwnerId = accMap.get(nObj.Hospital_Name__c).OwnerId; //所有人 |
| | | //20221128 you DB202211530484 当勾选 转产品担当时,所有人可以手动更改,不需要同步跟科室所有人一致 |
| | | if(nObj.Product_Owner__c == false){ |
| | | nObj.OwnerId = accMap.get(nObj.Hospital_Name__c).OwnerId; //所有人 |
| | | } |
| | | nObj.Department_Class__c = accMap.get(nObj.Hospital_Name__c).Department_Class__c; //战略科室 |
| | | nObj.HospitalName__c = accMap.get(nObj.Hospital_Name__c).Hospital__r.Name; //医院名 |
| | | nObj.Hospital__c = accMap.get(nObj.Hospital_Name__c).Hospital__c; //医院 |
| | |
| | | nObj.CreateDate__c = Date.today(); |
| | | } |
| | | //20220419 you SWAG-CBUB2W end |
| | | |
| | | //20220511 you SWAG-CBUB2W start |
| | | system.debug(mpMap+'===='+nObj.OCM_man_province_cus__c); |
| | | if(null!=mpMap && mpMap.containsKey(nObj.OCM_man_province_cus__c)){ |
| | | OCM_Management_Province__c omp = mpMap.get(nObj.OCM_man_province_cus__c); |
| | | if (omp != null) { |
| | | nObj.GI_assistant__c = omp.GI_assistant__c; |
| | | nObj.SP_assistant__c = omp.SP_assistant__c; |
| | | //nObj.OCSM_ID__c = omp.id; |
| | | } |
| | | } |
| | | //20220511 you SWAG-CBUB2W end |
| | | //不需要日期,跟进日期,服务跟进日期,创建意向日期,比较最早日期 |
| | | String date1; |
| | | String date2; |
| | |
| | | String confdate=calendarUtil.getWorkDayNum(date5,String.valueOf(date_MD)); |
| | | //nObj.addError(s+'=='+date5+'==='+String.valueOf(date_MD)+'=='+e+'=='+confdate); |
| | | nObj.Confirmation_days__c =Integer.valueOf(confdate); |
| | | if(Integer.valueOf(confdate) > 5){ |
| | | nObj.TimeoutDays__c = Integer.valueOf(confdate)-5; |
| | | }else{ |
| | | nObj.TimeoutDays__c = null; |
| | | } |
| | | system.debug('跑这了3'); |
| | | }else{ |
| | | nObj.Confirmation_days__c = null; |
| | | nObj.TimeoutDays__c = null; |
| | | system.debug('跑这了1'); |
| | | } |
| | | |
| | |
| | | String confdate=calendarUtil.getWorkDayNum(date5,String.valueOf(date_MD)); |
| | | system.debug('跑这了2'+date5+'==='+String.valueOf(date_MD)+'=='+confdate); |
| | | nObj.Confirmation_days__c =Integer.valueOf(confdate); |
| | | if(Integer.valueOf(confdate) > 5){ |
| | | nObj.TimeoutDays__c = Integer.valueOf(confdate)-5; |
| | | }else{ |
| | | nObj.TimeoutDays__c = null; |
| | | } |
| | | } |
| | | } |
| | | system.debug('==='+date_MD); |
| | |
| | | |
| | | } |
| | | } |
| | | |
| | | //20220419 you SWAG-CBUB2W start |
| | | private void shareToFSEMain() { |
| | | //存放用于新增的共享数据 |
| | | List<Inquiry_form__Share> insertList = new List<Inquiry_form__Share>(); |
| | | //存放(产品咨询单id,共享对象) |
| | | Map<Id,Inquiry_form__Share> insertMap = new Map<Id,Inquiry_form__Share>(); |
| | | //存放最后需要新增的共享数据 |
| | | List<Inquiry_form__Share> lastInsertList = new List<Inquiry_form__Share>(); |
| | | //存放已有的相同的共享原因的数据 |
| | | List<Id> deleteTargetAOIdList = new List<Id>(); |
| | | List<Id> deleteTargetAOIdList = new List<Id>(); |
| | | //存放(产品咨询单id,共享对象) |
| | | Map<Id,Inquiry_form__Share> insertMap1 = new Map<Id,Inquiry_form__Share>(); |
| | | Map<Id,Inquiry_form__Share> insertMap2 = new Map<Id,Inquiry_form__Share>(); |
| | | Map<Id,Inquiry_form__Share> insertMap3 = new Map<Id,Inquiry_form__Share>(); |
| | | //存放用于的id |
| | | List<Id> userIdList = new List<Id>(); |
| | | // String rowCause = 'Manual'; |
| | | //存放用于的id 用来删除 |
| | | List<Id> userIdListold = new List<Id>(); |
| | | //新增一个共享原因 |
| | | String rowCause = Schema.Inquiry_form__Share.RowCause.FSE_Owner_c_User__c; |
| | | System.debug('rowCause:'+rowCause); |
| | | String ownerCause = 'Owner'; |
| | | //Apex共有の理由名OCSM_Owner_c_User |
| | | for(Inquiry_form__c nObj : newList) { |
| | | for(Inquiry_form__c nObj : newList) { |
| | | Inquiry_form__c oObj = null; |
| | | if (oldMap != null && oldMap.containsKey(nObj.Id)) { |
| | | oObj = oldMap.get(nObj.Id); |
| | |
| | | |
| | | if ( nObj.FSE_Owner__c != null && (oObj == null || oObj.FSE_Owner__c != nObj.FSE_Owner__c)) { |
| | | Inquiry_form__Share aos = new Inquiry_form__Share( |
| | | RowCause = rowCause, |
| | | ParentId = nObj.Id, |
| | | UserOrGroupId = nObj.FSE_Owner__c, |
| | | AccessLevel = 'Edit'); |
| | | //存放要新增的共享数据 |
| | | insertList.add(aos); |
| | | System.debug('key:'+nObj.Id); |
| | | RowCause = rowCause, |
| | | ParentId = nObj.Id, |
| | | UserOrGroupId = nObj.FSE_Owner__c, |
| | | AccessLevel = 'Edit'); |
| | | //存放(产品咨询单id,共享对象); |
| | | insertMap.put(nObj.Id,aos); |
| | | insertMap1.put(nObj.Id,aos); |
| | | //存放用户id 用作检索条件 |
| | | userIdList.add(nObj.FSE_Owner__c); |
| | | if(oObj != null && oObj.FSE_Owner__c != nObj.FSE_Owner__c){ |
| | | userIdListold.add(oObj.FSE_Owner__c); |
| | | deleteTargetAOIdList.add(nObj.Id); |
| | | } |
| | | System.debug('insertMap1:'+insertMap1); |
| | | System.debug('IDlIST:'+deleteTargetAOIdList); |
| | | //shareToFSEMainPublicMethod(insertMap,userIdList,deleteTargetAOIdList,rowCause,userIdListold); |
| | | } |
| | | if(oObj != null && oObj.FSE_Owner__c != nObj.FSE_Owner__c){ |
| | | deleteTargetAOIdList.add(nObj.Id); |
| | | if( nObj.GI_assistant__c != null && oObj.GI_assistant__c != nObj.GI_assistant__c){ |
| | | Inquiry_form__Share aos = new Inquiry_form__Share( |
| | | RowCause = rowCause, |
| | | ParentId = nObj.Id, |
| | | UserOrGroupId = nObj.GI_assistant__c, |
| | | AccessLevel = 'Edit'); |
| | | //存放(产品咨询单id,共享对象); |
| | | insertMap2.put(nObj.Id,aos); |
| | | //存放用户id 用作检索条件 |
| | | userIdList.add(nObj.GI_assistant__c); |
| | | if(oObj != null && oObj.GI_assistant__c != nObj.GI_assistant__c){ |
| | | userIdListold.add(oObj.GI_assistant__c); |
| | | deleteTargetAOIdList.add(nObj.Id); |
| | | } |
| | | System.debug('insertMap2:'+insertMap2); |
| | | System.debug('IDlIST:'+deleteTargetAOIdList); |
| | | //shareToFSEMainPublicMethod(insertMap,userIdList,deleteTargetAOIdList,rowCause,userIdListold); |
| | | } |
| | | if( nObj.SP_assistant__c != null && oObj.SP_assistant__c != nObj.SP_assistant__c){ |
| | | Inquiry_form__Share aos = new Inquiry_form__Share( |
| | | RowCause = rowCause, |
| | | ParentId = nObj.Id, |
| | | UserOrGroupId = nObj.SP_assistant__c, |
| | | AccessLevel = 'Edit'); |
| | | //存放(产品咨询单id,共享对象); |
| | | insertMap3.put(nObj.Id,aos); |
| | | //存放用户id 用作检索条件 |
| | | userIdList.add(nObj.SP_assistant__c); |
| | | if(oObj != null && oObj.SP_assistant__c != nObj.SP_assistant__c){ |
| | | userIdListold.add(oObj.SP_assistant__c); |
| | | deleteTargetAOIdList.add(nObj.Id); |
| | | } |
| | | System.debug('insertMap3:'+insertMap3); |
| | | System.debug('IDlIST:'+deleteTargetAOIdList); |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | System.debug('insertList:'+insertList); |
| | | System.debug('insertMap1:'+insertMap); |
| | | System.debug('IDlIST:'+deleteTargetAOIdList); |
| | | if(null!= insertMap1){ |
| | | shareToFSEMainPublicMethod(insertMap1,userIdList,deleteTargetAOIdList,rowCause,userIdListold); |
| | | } |
| | | if(null!= insertMap2){ |
| | | shareToFSEMainPublicMethod(insertMap2,userIdList,deleteTargetAOIdList,rowCause,userIdListold); |
| | | } |
| | | if(null!= insertMap3){ |
| | | shareToFSEMainPublicMethod(insertMap3,userIdList,deleteTargetAOIdList,rowCause,userIdListold); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | public void shareToFSEMainPublicMethod(Map<Id,Inquiry_form__Share> insertMap,List<Id> userIdList,List<Id> deleteTargetAOIdList,String rowCause, List<Id> userIdListold) { |
| | | |
| | | //存放最后需要新增的共享数据 |
| | | List<Inquiry_form__Share> lastInsertList = new List<Inquiry_form__Share>(); |
| | | //存放已有的相同的共享原因的数据 |
| | | // String rowCause = 'Manual'; |
| | | System.debug('rowCause:'+rowCause); |
| | | String ownerCause = 'Owner'; |
| | | |
| | | // 先 Delete 后 Insert |
| | | if (deleteTargetAOIdList.size() > 0) { |
| | | List<Inquiry_form__Share> deleteList = [SELECT Id |
| | | FROM Inquiry_form__Share |
| | | WHERE RowCause = :rowCause |
| | | AND UserOrGroupId in : userIdListold |
| | | AND ParentId IN :deleteTargetAOIdList |
| | | ]; |
| | | delete deleteList; |
| | |
| | | // } |
| | | |
| | | // } |
| | | |
| | | |
| | | @TestVisible private static void test() { |
| | | Integer i = 0; |
| | |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++;//可以多写点 |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | //可以多写点 |
| | | } |
| | | } |