高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
force-app/main/default/classes/NFM704Rest.cls
@@ -5,7 +5,11 @@
@RestResource(urlMapping='/NFM704/*')
global with sharing class NFM704Rest {
     //add Response to aws 20220421 add sushanhu start
     static Boolean SFStatus=true;
     static String SFMessage='';
    //add Response to aws 20220421 add sushanhu end
    global class GeDatas {
        public NFMUtil.Monitoring Monitoring;
        public  GeData[] GeData;
@@ -28,7 +32,18 @@
        public String Speciality;   //擅长的手术
        public String ProfessionalField;    //专业领域
        public String Society1;  //学会名称
        public String EventStatus; //学会职称
        public String EventStatus; //学会职称 // 带有箭头 切割获取EventStatuslist pi改造之后 存***
        //add for pipl  by sushanhu 20220420 start
        // public String HCPLevelEncrypted; //HCP等级密文                //zhj新方案改造 2022-12-07
        // public String NameEncrypted;    //姓名                       //zhj新方案改造 2022-12-07
        // public String MobileEncrypted;   //电话                      //zhj新方案改造 2022-12-07
        // public String TechnicalTitleEncrypted; //技术职称            //zhj新方案改造 2022-12-07
        // public String SpecialityEncrypted;   //擅长的手术            //zhj新方案改造 2022-12-07
        // public String ProfessionalFieldEncrypted;    //专业领域      //zhj新方案改造 2022-12-07
        // public List<String> EventStatusEncryptedList; //学会职称 备注有逻辑 带有箭头 切割获取EventStatuslist 存hash      //zhj新方案改造 2022-12-07
        public String DataId;//AWSDATAID
        //public String WorkingSeniorityEncrypted;//临床工作年限密文
        //add for pipl  by sushanhu 20220420 end                        //zhj新方案改造 2022-12-07
    }
    @HttpPost
@@ -36,7 +51,9 @@
        //取得接口传输内容
        String strData = RestContext.request.requestBody.toString();
        GeDatas ges = (GeDatas) JSON.deserializeStrict(strData, GeDatas.class);
        //add Response to aws 20220421 add sushanhu start
        NFMUtil.NFMResponse result = NFMUtil.getNFMResponse();
        //add Response to aws 20220421 add sushanhu end
        if(ges == null) {
            return;
        }
@@ -57,8 +74,16 @@
        RestResponse res = RestContext.response;
        res.addHeader('Content-Type', 'application/json');
        res.statusCode = 200;
        String jsonResponse = '{"Result":{"Result": "00", "Message":""}}';
        // String jsonResponse = '{"Result":{"Result": "00", "Message":""}}';
        // res.responseBody = blob.valueOf(jsonResponse);
        //updata response toAWS sushanhu for pipl 20220421 start
        result.SFStatus=SFStatus;
        result.SFMessage=SFMessage;
        //String jsonResponse =JSON.serialize(result);
        String jsonResponse ='{"SFMessage":"","staticResponse":{"Result":{"Result":"00","Message":""}},"SFStatus":true}';
        system.debug('result---'+jsonResponse);
        res.responseBody = blob.valueOf(jsonResponse);
        //updata response toAWS sushanhu for pipl 20220421 end
        return;
    }
@@ -92,6 +117,11 @@
        Savepoint sp = Database.setSavepoint();
        // 704改善 2023-02-09 ssm start
        // 增加一个标记,当回传数据里,医院管理编码为空时,报错但不重发
        Boolean error_without_resend = false;
        // 704改善 2023-02-09 ssm end
        try{
            //管理编码List
            List<String> DoctorNoList = new List<String>();
@@ -120,7 +150,8 @@
            List<Contact> conList = [select Id,
                                            Management_Code__c, //医院管理编码
                                            CManageCode__c     //人员管理编码
                                            from Contact WHERE CManageCode__c IN:DoctorNoList];
                                            from Contact WHERE CManageCode__c IN:DoctorNoList
                                            and CManageCode__c != null];
            system.debug('conList============>'+conList);
            
            for(Contact con : conList ){
@@ -162,13 +193,21 @@
                        con.OwnerId = accMap.get(ged.HospitalMCode).GI_Main__c;//所有人取医院上的消化科担当
                        con.AccountId = accMap.get(ged.HospitalMCode).Id;//新建联系人放到医院下
                        con.LastName = ged.Name;
                        // add by sushanhu for pipl 20220420 start
                        //con.LastName_Encrypted__c =ged.NameEncrypted;         //zhj新方案改造 2022-12-07
                        // add by sushanhu for pipl 20220420 end
                        con.FirstName = '';
                        con = assignment(ged,con);
                    }
                    upsertList.add(con);
                }else{//否
                    continue;
                    // continue;
                    logstr += '不存在的医院管理编码:['+accMap.get(ged.HospitalMCode)+']/n';
                    // 704改善 2023-02-09 ssm start
                    // 设置标记为true
                    error_without_resend = true;
                    // 704改善 2023-02-09 ssm end
                    throw new ControllerUtil.myException('不存在的医院管理编码:['+accMap.get(ged.HospitalMCode)+']');
                }
                // //AccountId
@@ -188,7 +227,7 @@
            system.debug('upsertList==================>'+upsertList);
            if(upsertList.size() > 0 ){
                // Update updateList;
                Oly_TriggerHandler.bypass('ConsumableOrderTrigger');
                Oly_TriggerHandler.bypass('ContactTriggerHandler');
                UpSert upsertList;
            }
@@ -202,10 +241,24 @@
            logstr += '\n' + ex.getMessage();
            iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c;
            // 异常重发
            rowData = NFMUtil.LogAutoSend(rowData, ex, null);
            // 704改善 2023-02-09 ssm start
            if (error_without_resend) {
                // retry_cnt设置为0
                rowData.retry_cnt__c = 0;
                logstr += '\nend';
                rowData.ErrorLog__c += ex.getMessage() + '\n' + ex.getStackTraceString() + '\n';
                iflog.ErrorLog__c += ex.getMessage() + '\n' + ex.getStackTraceString() + '\n';
                iflog.Log__c += logstr;
                upsert iflog;
                upsert rowData;
            } else {
                rowData = NFMUtil.LogAutoSend(rowData, ex, null);
            }
            // 704改善 2023-02-09 ssm end
        }
        iflog.Log__c = logstr;
        upsert iflog;
        upsert rowData;
    }
    public static String verify(GeData ged){
@@ -250,6 +303,17 @@
        con.TechnicalTitleOBPM__c   = ged.TechnicalTitle;//技术职称
        con.SpecialityOBPM__c       = ged.Speciality;//擅长的手术
        con.ProfessionalField__c    = ged.ProfessionalField;//专业领域
        //add by sushanhu 20220420 for pipl start
        // con.HCPLevel_Encrypted__c   = ged.HCPLevelEncrypted;                     //zhj新方案改造 2022-12-07
        // con.NameOBPM_Encrypted__c   = ged.NameEncrypted;                         //zhj新方案改造 2022-12-07
        // con.MobileOBPM_Encrypted__c    = ged.MobileEncrypted;                    //zhj新方案改造 2022-12-07
        // con.WorkingSeniorityOBPM_Encrypted__c = ged.WorkingSeniorityEncrypted;   //zhj新方案改造 2022-12-07
        // con.TechnicalTitleOBPM_Encrypted__c = ged.TechnicalTitleEncrypted;       //zhj新方案改造 2022-12-07
        // con.ProfessionalField_Encrypted__c = ged.ProfessionalFieldEncrypted;     //zhj新方案改造 2022-12-07
        // con.SpecialityOBPM_Encrypted__c = ged.SpecialityEncrypted;               //zhj新方案改造 2022-12-07
        con.AWS_Data_Id__c          = ged.DataId;
        //add by sushanhu 20220420 for pipl end
        if(societyList.size()>0){
            con.Learn_name1__c          = societyList[0];//学会名称1
        }
@@ -261,12 +325,25 @@
        }
        if(eventStatusList.size()>0){
            con.Learn_serve1__c         = eventStatusList[0];//学会职称1
            // add by sushanhu for pipl 20220420 start
            //zhj新方案改造 2022-12-07 start
            // if(ged.EventStatusEncryptedList.size()>0){
            //      con.Learn_serve1_Encrypted__c =ged.EventStatusEncryptedList[0];
            // }
            //zhj新方案改造 2022-12-07 end
            // add by sushanhu for pipl 20220420 end
        }
        if(eventStatusList.size()>1){
            con.Learn_serve2__c         = eventStatusList[1];//学会职称2
            // add by sushanhu for pipl 20220420 start
            //con.Learn_serve2_Encrypted__c =ged.EventStatusEncryptedList[1];   //zhj新方案改造 2022-12-07
            // add by sushanhu for pipl 20220420 end
        }
        if(eventStatusList.size()>2){
            con.Learn_serve3__c         = eventStatusList[2];//学会职称3
            // add by sushanhu for pipl 20220420 start
            //con.Learn_serve3_Encrypted__c =ged.EventStatusEncryptedList[2];   //zhj新方案改造 2022-12-07
            // add by sushanhu for pipl 20220420 end
        }
        return con;
    }