高章伟
2022-03-10 1312ba82d4c880bdb5357d28e0d4af5b285f610f
force-app/main/default/classes/NFM620Rest.cls
@@ -10,7 +10,7 @@
@RestResource(urlMapping = '/NFM620/*')
global with sharing class NFM620Rest {
    //新增NFM620Rest 商品询问单接收数据接口 精琢技术 start
    global class GeDatas {
        public NFMUtil.Monitoring Monitoring;
        public  GeData[] GeData;
@@ -25,7 +25,7 @@
        public String Product;                   // 产品信息
        public String Request;                   // 委托事项
        public String RequestDetail;             // 委托事项详细
        // public String ApproverID;                // 审核人员员工编码
        public String ApproverID;                // 审核人员员工编码
    }
    @HttpPost
@@ -104,7 +104,7 @@
            List<String> inquiryNoList = new List<String>();
            List<String> conIDList = new List<String>();
            List<String> camNoList = new List<String>();
            // List<String> approverIDList = new List<String>();
            List<String> approverIDList = new List<String>();
            List<GeData> geDataListNew = new List<GeData>();
            for (GeData geData : geDataList) {
                if (String.isBlank(geData.InquiryNo)) {
@@ -122,22 +122,22 @@
                } else {
                    conIDList.add(geData.ContactId);
                }
                // if (String.isNotBlank(geData.ApproverID)) {
                //     approverIDList.add(geData.ApproverID);
                // }
                if (String.isNotBlank(geData.ApproverID)) {
                    approverIDList.add(geData.ApproverID);
                }
                if (String.isNotBlank(geData.Campaign)) {
                    camNoList.add(geData.Campaign);
                }
                geDataListNew.add(geData);
            }
            //使用统一用户ID获取科室、战略科室分类、用户姓名并存入Map
            Map<String, Contact> conInfoMap = new Map<String, Contact>();
            if (conIDList.size() > 0) {
                List<Contact> conList = [select UnifiedI_Contact_ID__c,Account.Id,
                                        Strategic_dept_Class__c, Strategic_dept_Class__r.OwnerId,Id
                                        from Contact where UnifiedI_Contact_ID__c in: conIDList];
                if (conList.size() > 0){
                List<Contact> conList = [select UnifiedI_Contact_ID__c, Account.Id,
                                         Strategic_dept_Class__c, Strategic_dept_Class__r.OwnerId, Id
                                         from Contact where UnifiedI_Contact_ID__c in: conIDList];
                if (conList.size() > 0) {
                    //科室、战略科室分类、用户姓名获取成功
                    for (Contact conInfo : conList) {
                        conInfoMap.put(conInfo.UnifiedI_Contact_ID__c, conInfo);
@@ -160,7 +160,7 @@
            //询问单编码已经存在的时候连同ID一起存入Map
            Map<String, String> inqInfoMap = new Map<String, String>();
            if (inquiryNoList.size() > 0) {
                List<Inquiry_form__c> inquiryList = [select Inquiry_No__c,Id from Inquiry_form__c where Inquiry_No__c in :inquiryNoList];
                List<Inquiry_form__c> inquiryList = [select Inquiry_No__c, Id from Inquiry_form__c where Inquiry_No__c in :inquiryNoList];
                if (inquiryList.size() > 0) {
                    for (Inquiry_form__c inqInfo : inquiryList) {
                        inqInfoMap.put(inqInfo.Inquiry_No__c, inqInfo.Id);
@@ -168,55 +168,63 @@
                }
            }
            //使用审核人员员工编码查询用户ID
            // Map<string,String> ownerMap = new Map<string,String>();
            // List<User> ownerList = [select Id,Employee_No__c from User where Employee_No__c  IN:approverIDList];
            // for(User temp : ownerList){
            //     ownerMap.put(temp.Employee_No__c,temp.Id);
            // }
            Map<string,String> ownerMap = new Map<string,String>();
            if(approverIDList.size()>0){
                List<User> ownerList = [select Id,Employee_No__c from User where Employee_No__c  IN:approverIDList];
                if (ownerList.size()>0){
                    for(User temp : ownerList){
                        ownerMap.put(temp.Employee_No__c,temp.Id);
                    }
                }
            }
            // 将XML各数据项更新到商品询问单对象中
            for (GeData geData : geDataListNew) {
                Inquiry_form__c inquiry = new Inquiry_form__c();
                inquiry.Name = geData.Name;                                       //询问单名称
                inquiry.ComPlat_Name__c = geData.Name;                                       //询问单名称
                inquiry.Inquiry_No__c = geData.InquiryNo;                         //询问单编码
                inquiry.Opportunity_Division__c = '询价';                         //意向区分
                inquiry.Status__c = '未跟进';                                     //询问单状态
                inquiry.Status__c = '01.未跟进';                                     //询问单状态
                inquiry.Request_Detail__c = geData.RequestDetail;                 //委托事项详细
                inquiry.Product1__c = geData.Product;                             //产品信息
                inquiry.ContactId__c = geData.ContactId;                          //统一用户ID
                // inquiry.OwnerId = ownerMap.get(geData.ApproverID);                //所有人
                if (String.isNotBlank(ownerMap.get(geData.ApproverID))){
                    inquiry.OwnerId = ownerMap.get(geData.ApproverID);            //所有人
                }
                //委托事项取值后拆分
                List<String> requestList = geData.Request.split(';');
                String request1 = '';
                for (String req11 : requestList) {
                    request1 += NFMUtil.getMapValue(transferMap,'Request1__c', req11, iflog) +';';
                }
                inquiry.Request1__c = request1.substring(0, request1.length()-1);    //委托事项
                    request1 += NFMUtil.getMapValue(transferMap, 'Request1__c', req11, iflog) + ';';
                }
                inquiry.Request1__c = request1.substring(0, request1.length() - 1);  //委托事项
                //使用统一用户ID获取科室、战略科室、客户姓名
                if (conInfoMap.containsKey(geData.ContactId)) {
                    Contact contact = conInfoMap.get(geData.ContactId);
                    inquiry.Hospital_Name__c = contact.Account.Id;                    //科室名
                    inquiry.Department_Class__c = contact.Strategic_dept_Class__c;    //战略科室分类
                    inquiry.Hospital_Name__c = contact.Account.Id;                    //科室名
                    //inquiry.Department_Class__c = contact.Strategic_dept_Class__c;    //战略科室分类
                    inquiry.Contact_Name__c = contact.Id;                             //客户姓名
                    inquiry.OwnerId = contact.Strategic_dept_Class__r.OwnerId;        //所有人
                }
                    //inquiry.OwnerId = contact.Strategic_dept_Class__r.OwnerId;        //所有人
                }
                //使用市场活动编码获取市场活动ID
                if (String.isNotBlank(geData.Campaign)){
                    if (String.isNotBlank(camInfoMap.get(geData.Campaign))){
                if (String.isNotBlank(geData.Campaign)) {
                    if (String.isNotBlank(camInfoMap.get(geData.Campaign))) {
                        inquiry.Campaign__c = camInfoMap.get(geData.Campaign); //主要学会
                        inquiry.LeadSource__c = '学会/沙龙';                    //询问单来源
                    }else {
                        iflog.ErrorLog__c += geData.InquiryNo +':市场活动编码不存在。\n';
                        continue;
                        inquiry.LeadSource__c = '学会会议';                    //询问单来源
                    } else {
                        iflog.ErrorLog__c += geData.InquiryNo + ':市场活动编码不存在。\n';
                        continue;
                    }
                } else {
                    inquiry.LeadSource__c = '智慧医疗';                 //询问单来源
                }
                logstr += '咨询单来源:' + inquiry.LeadSource__c +'\n';
                logstr += '咨询单来源:' + inquiry.LeadSource__c + '\n';
                //联系方式的值是否包含@来判断是邮箱还是电话
                if (geData.ContactWay.contains('@')) {
                    inquiry.Phone__c = '';                            //电话