From ec47f5ab5923a315bf22e0df5af7371e9668589e Mon Sep 17 00:00:00 2001
From: 张宇恒 <bxyun0@163.com>
Date: 星期五, 23 十二月 2022 11:16:18 +0800
Subject: [PATCH] 修理接口推送触发条件新加故障描述修理内容等
---
force-app/main/default/classes/InquiryFormHandler.cls | 424 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 415 insertions(+), 9 deletions(-)
diff --git a/force-app/main/default/classes/InquiryFormHandler.cls b/force-app/main/default/classes/InquiryFormHandler.cls
index d0507c0..d148ca9 100644
--- a/force-app/main/default/classes/InquiryFormHandler.cls
+++ b/force-app/main/default/classes/InquiryFormHandler.cls
@@ -1,12 +1,12 @@
public without sharing class InquiryFormHandler extends Oly_TriggerHandler {
- private Map<Id, Inquiry_form__c> newMap;
- private Map<Id, Inquiry_form__c> oldMap;
- private List<Inquiry_form__c> newList;
- private List<Inquiry_form__c> oldList;
+ private Map<Id, Inquiry_form__c> newMap;
+ private Map<Id, Inquiry_form__c> oldMap;
+ private List<Inquiry_form__c> newList;
+ private List<Inquiry_form__c> oldList;
public InquiryFormHandler(){
- this.newMap = (Map<Id, Inquiry_form__c>) Trigger.newMap;
+ this.newMap = (Map<Id, Inquiry_form__c>) Trigger.newMap;
this.oldMap = (Map<Id, Inquiry_form__c>) Trigger.oldMap;
this.newList = (List<Inquiry_form__c>) Trigger.new;
this.oldList = (List<Inquiry_form__c>) Trigger.old;
@@ -27,11 +27,12 @@
}
protected override void afterInsert() {
- //shareToOSCM();
+ //FSE涓绘媴褰撳叡浜�
+ shareToFSEMain();
}
protected override void afterUpdate() {
- //shareToOSCM();
+ shareToFSEMain();
}
//Before鍑︾悊
private void beforeExecute() {
@@ -44,7 +45,7 @@
if (oldMap != null && oldMap.containsKey(nnObj.Id)) {
oObj = oldMap.get(nnObj.Id);
}
- if (String.isNotBlank(nnObj.Hospital_Name__c) && (Trigger.isInsert || oObj.Hospital_Name__c != nnObj.Hospital_Name__c || System.Label.Inquiry_form_flag == 'True')) {
+ if (String.isNotBlank(nnObj.Hospital_Name__c) && (Trigger.isInsert || oObj.Hospital_Name__c != nnObj.Hospital_Name__c)) {// || System.Label.Inquiry_form_flag == 'True')
depIDList.add(nnObj.Hospital_Name__c);
}
if (Trigger.isUpdate && String.isBlank(nnObj.Hospital_Name__c)){
@@ -53,8 +54,11 @@
nnObj.Department_Class__c = null; //鎴樼暐绉戝
nnObj.HospitalName__c = null; //鍖婚櫌鍚�
nnObj.Hospital__c = null; //鍖婚櫌
+ nnObj.CreateDate__c = null; //鍒涘缓鏃�
}
+
}
+
if (depIDList.size()>0) {
accList = [Select Id,OwnerId,
Hospital__c,Hospital__r.Name,
@@ -75,8 +79,10 @@
nObj.HospitalName__c = accMap.get(nObj.Hospital_Name__c).Hospital__r.Name; //鍖婚櫌鍚�
nObj.Hospital__c = accMap.get(nObj.Hospital_Name__c).Hospital__c; //鍖婚櫌
}
+
+
- //浜у搧淇℃伅鐨勬嫾鎺�
+ //浜у搧淇℃伅鐨勬嫾鎺�
if (String.isNotBlank(nObj.Product1__c) && String.isNotBlank(nObj.Product1_Manual__c)){
nObj.Product1__c = nObj.Product1__c +';'+nObj.Product1_Manual__c;
}else if (String.isBlank(nObj.Product1__c) && String.isNotBlank(nObj.Product1_Manual__c)){
@@ -99,9 +105,251 @@
}
nObj.Product1_Manual__c = '';
+ //20220419 you SWAG-CBUB2W start
+ //鍏紡鑰冩枃鏈� 缁橣SE鎷呭綋璧嬪�� 杩欐蹇呴』鏀惧湪杩欙紝鍥犱负鏂板垱寤虹殑鏁版嵁锛屽瓨鍦ㄧ瀹や负绌虹殑鎯呭喌锛�
+ System.debug(nObj.FSE_Owner_id__c+'==123=='+nObj.FSE_Owner__c);
+ if(nObj.FSE_Owner_id__c != nObj.FSE_Owner__c){
+ nObj.FSE_Owner__c = nObj.FSE_Owner_id__c;
+ }
+ if(Trigger.isInsert){
+ if( nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') !=-1 || nObj.ServiceCorrespond__c ==true){
+ nObj.Service_Status__c ='01.鏈窡杩�';
+ }
+ if(String.isBlank(nObj.Hospital_Name__c)){
+ nObj.CreateDate__c = null; //鍒涘缓鏃�
+ }else{
+ nObj.CreateDate__c = Date.today();
+ }
+ }
+ if(Trigger.isUpdate){
+
+ if((nObj.Request1__c != oldMap.get(nObj.Id).Request1__c && nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') !=-1) || (nObj.ServiceCorrespond__c != oldMap.get(nObj.Id).ServiceCorrespond__c && nObj.ServiceCorrespond__c ==true)){
+ if(String.isBlank(nObj.Service_Status__c)){
+ nObj.Service_Status__c ='01.鏈窡杩�';
+ }else{
+
+ }
+ }else if( nObj.Request1__c.indexOf('鏈嶅姟瀵瑰簲') ==-1 && nObj.ServiceCorrespond__c ==false){
+ nObj.Service_Status__c ='';
+ }
+ if(nObj.Hospital_Name__c != oldMap.get(nObj.Id).Hospital_Name__c && String.isBlank(oldMap.get(nObj.Id).Hospital_Name__c)){
+ nObj.CreateDate__c = Date.today();
+ }
+ //20220419 you SWAG-CBUB2W end
+
+ //涓嶉渶瑕佹棩鏈燂紝璺熻繘鏃ユ湡锛屾湇鍔¤窡杩涙棩鏈燂紝鍒涘缓鎰忓悜鏃ユ湡锛屾瘮杈冩渶鏃╂棩鏈�
+ String date1;
+ String date2;
+ String date3;
+ String date4;
+ if(null != nObj.No_Need_Date__c){
+ date1=String.valueOf(nObj.No_Need_Date__c);
+ }
+ if(null != nObj.Follow_Date__c){
+ date2=String.valueOf(nObj.Follow_Date__c);
+ }
+ if(null != nObj.Confirmation_Date__c){
+ date3=String.valueOf(nObj.Confirmation_Date__c);
+ }
+ if(null != nObj.Service_Follow_Date__c){
+ date4=String.valueOf(nObj.Service_Follow_Date__c);
+ }
+
+ //鏂规硶璋冪敤
+ Date date_MD;
+ if((String.isNotBlank(date1) && nObj.No_Need_Date__c !=oldMap.get(nObj.Id).No_Need_Date__c) || (String.isNotBlank(date2) && nObj.Follow_Date__c !=oldMap.get(nObj.Id).Follow_Date__c) || (String.isNotBlank(date3) && nObj.Confirmation_Date__c !=oldMap.get(nObj.Id).Confirmation_Date__c) || (String.isNotBlank(date4) && nObj.Service_Follow_Date__c !=oldMap.get(nObj.Id).Service_Follow_Date__c)){
+ date_MD =getBigTime(date1,date2,date3,date4);
+ nObj.MinimumDate__c = date_MD;//鏈�灏忔棩鏈�
+ String date5 = nObj.CreateDate__c==null?'':String.valueOf(nObj.CreateDate__c);
+ if(null != nObj.CreateDate__c){
+ 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');
+ }
+
+ }
+ //澶勭悊鑰佹暟鎹�
+ if( System.Label.Inquiry_form_flag == 'True' && null != nObj.CreateDate__c){
+ if(String.isNotBlank(date1) || String.isNotBlank(date2) || String.isNotBlank(date3) || String.isNotBlank(date4)){
+ date_MD =getBigTime(date1,date2,date3,date4);
+ nObj.MinimumDate__c = date_MD;//鏈�灏忔棩鏈�
+ String date5 = nObj.CreateDate__c==null?'':String.valueOf(nObj.CreateDate__c);
+ 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>();
+ //瀛樻斁(浜у搧鍜ㄨ鍗昳d,鍏变韩瀵硅薄)
+ 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>();
+ //瀛樻斁鐢ㄤ簬鐨刬d
+ List<Id> userIdList = new List<Id>();
+ // String rowCause = 'Manual';
+ //鏂板涓�涓叡浜師鍥�
+ 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) {
+ 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);
+ //瀛樻斁锛堜骇鍝佸挩璇㈠崟id,鍏变韩瀵硅薄锛�;
+ insertMap.put(nObj.Id,aos);
+ //瀛樻斁鐢ㄦ埛id 鐢ㄤ綔妫�绱㈡潯浠�
+ userIdList.add(nObj.FSE_Owner__c);
+ }
+ if(oObj != null && oObj.FSE_Owner__c != nObj.FSE_Owner__c){
+ deleteTargetAOIdList.add(nObj.Id);
+ }
+ }
+ System.debug('insertList:'+insertList);
+ System.debug('insertMap1:'+insertMap);
+ System.debug('IDlIST:'+deleteTargetAOIdList);
+ // 鍏� Delete 鍚� Insert
+ if (deleteTargetAOIdList.size() > 0) {
+ List<Inquiry_form__Share> deleteList = [SELECT Id
+ FROM Inquiry_form__Share
+ WHERE RowCause = :rowCause
+ AND ParentId IN :deleteTargetAOIdList
+ ];
+ delete deleteList;
+ }
+ //鍒ゆ柇闇�瑕佸叡浜殑浜� 鏄笉鏄垱寤轰汉 濡傛灉鏄垯璇存槑鏈変竴鏉¤繖涓汉鐨刼wner鏁版嵁 鍒欎笉鏂板
+ if (insertMap!= null) {
+ List<Inquiry_form__Share> ownerList = [SELECT Id,ParentId,UserOrGroupId
+ FROM Inquiry_form__Share
+ WHERE RowCause = :ownerCause
+ AND ParentId IN :insertMap.keySet()
+ AND UserOrGroupId IN :userIdList
+ ];
+ System.debug('ownerList:'+ownerList);
+ if(ownerList.size() > 0){
+ for( Inquiry_form__Share inq:ownerList){
+ String id = String.valueOf(inq.ParentId);
+ System.debug('id:'+id);
+ if(insertMap.containsKey(id)){
+ insertMap.remove(inq.ParentId);
+ }
+ }
+ }
+
+ }
+ System.debug('insertMap2:'+insertMap);
+
+ if(insertMap != null){
+ for(Inquiry_form__Share inquiry : insertMap.values()){
+ lastInsertList.add(inquiry);
+ }
+ }
+
+
+ System.debug('鍏变韩鍐呭:' +lastInsertList);
+ if(lastInsertList.size() > 0){
+ insert lastInsertList;
+ }
+
+ }
+ //20220419 you SWAG-CBUB2W end
+ //澶氫釜鏃ユ湡姣旇緝鏈�灏忔棩鏈�
+ public static Date getBigTime(String date1, String date2, String date3, String date4) {
+ system.debug(date1+'======'+date2+'====='+date3);
+ long millis1 =0;
+ Long millis2 =0;
+ Long millis3 =0;
+ Long millis4 =0;
+ List<Long> list_dateDecimal = new List<Long>();
+ if(String.isNotBlank(date1)){
+ millis1 = Datetime.valueOf(date1+' 08:00:05').getTime();
+ list_dateDecimal.add(millis1);
+ }
+ if(String.isNotBlank(date2)){
+ millis2 = Datetime.valueOf(date2+' 08:00:05').getTime();
+ list_dateDecimal.add(millis2);
+ }
+ if(String.isNotBlank(date3)){
+ millis3 = Datetime.valueOf(date3+' 08:00:05').getTime();
+ list_dateDecimal.add(millis3);
+ }
+ if(String.isNotBlank(date4)){
+ millis4 = Datetime.valueOf(date4+' 08:00:05').getTime();
+ list_dateDecimal.add(millis4);
+ }
+
+ list_dateDecimal.sort();
+ Date date_Mid;
+ if(null !=list_dateDecimal && list_dateDecimal.size()>0){
+ Long aaa=list_dateDecimal[0];
+ DateTime dt =DateTime.newInstance(aaa);
+ date_Mid = dt.dateGmt();
+ // DateTime.newInstance
+ system.debug('鏈�灏忕殑==='+date_Mid+list_dateDecimal);
+ }
+
+ return date_Mid;
+
+ }
+//淇╀釜鏃ユ湡涔嬮棿鐨勫伐浣滄棩
+ public integer diff(Datetime sdate, Datetime edate){
+ integer count=0;
+ Date d1 = Date.valueOf(sdate);
+ Date d2 = Date.valueOf(edate);
+ integer wDay = d1.daysBetween(d2) ;
+
+ do{
+ if(sdate.format('EEEE') == 'Saturday') {
+ count++;
+ }
+ if(sdate.format('EEEE') == 'Sunday') {
+ count++;
+ }
+ sdate= sdate.adddays(1);
+ }while(sdate<=edate);
+
+ wDay = wDay-count+1;
+ system.debug('*************'+wDay);
+ return wDay;
+ }
//瀹㈡埛浜哄憳褰曞叆鍚�,銆愮數璇濄�戙�愰偖绠便�戣嚜鍔ㄥ綍鍏� thh 20220321 start
// private void getContactInformation(){
// List<String> ContactIdList = new List<String>();
@@ -222,4 +470,162 @@
// }
// }
+
+ @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++;
+ 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++;
+ 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++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;
+ i++;//鍙互澶氬啓鐐�
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1