Li Jun
2022-04-11 580549d5dace2d9982e71e18ac931febbe0428da
PIPLCloneIssue0411
9个文件已修改
264 ■■■■ 已修改文件
force-app/main/default/classes/NewAndEditCaseController.cls 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NewAndEditQISController.cls 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NewRepairController.cls 165 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewAndEditCase.page 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewAndEditInquiryForm.page 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewAndEditLead.page 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewAndEditReport.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewRepair.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest/packageForCloneButton.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NewAndEditCaseController.cls
@@ -13,6 +13,7 @@
    public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
    public static String sobjectTypeValue = 'Case';
    public Boolean isNewMode{set;get;}
    public Boolean isCloneMode{protected set;get;}
    public String rtTypeId {get; set;}
    public String AWSDataId{set;get;}
    public String contactId{set;get;}//For Lookup field
@@ -33,6 +34,7 @@
    public string AWSToSobjectEncryptedMapJson{get{return JSON.serialize(AWSToSobjectEncryptedMap);}}
    public NewAndEditCaseController(ApexPages.StandardController controller) {
        isNewMode = true;
        isCloneMode = false;
        Input_Required_Field_Msg = Label.Input_Required_Field_Msg;
        PIPL_Name_Label = Label.PIPL_Name_Label;
        PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg;
@@ -40,6 +42,10 @@
        //获取所有字段
        List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Case').getDescribe().fields.getMap().keyset());  
        // Add fields to controller. This is to avoid the SOQL error in visualforce page
        Map<string,string> mso = ApexPages.currentPage().getParameters();
        if(mso != null && mso.containsKey('newclone')){
            isCloneMode = true;
        }
        if (!Test.isRunningTest()) {
            controller.addFields(fieldList);
        }
@@ -60,7 +66,8 @@
            contactsInfo = JSON.serialize(sfIdToAWSIdMap);
        }else{
            //新建
            rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
            // rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
            rtTypeId = mso.get('RecordType');
            obj.put('OwnerId',UserInfo.getUserId());
        }
        LayoutDescriberHelper.LayoutWrapper LayoutWrapperValue = LayoutDescriberHelper.describeSectionWithFieldsWrapper(rtTypeId, 'Case','classic');
@@ -138,18 +145,27 @@
        Response resp = new Response();
        Savepoint sp = Database.setSavepoint();
        String rid = '';
        String awsDataId = '';
        Boolean isClone = false;
        try{
            System.debug('abcde');
            if(isNew){
            awsDataId = (String)caseInfo.get('AWS_Data_Id__c');
            System.debug('awsDataId = ' + awsDataId);
            Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId];
            if(!isNew){
                isClone = cases.size() == 0;
            }
            if(isNew || isClone){
                System.debug('caseInfozhj = ' + caseInfo);
                if(!Test.isRunningTest()){
                    insert caseInfo;
                }
            }else{
                System.debug('into update');
                String awsDataId = (String)caseInfo.get('AWS_Data_Id__c');
                System.debug('awsDataId = ' + awsDataId);
                Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId];
                // String awsDataId = (String)caseInfo.get('AWS_Data_Id__c');
                // System.debug('awsDataId = ' + awsDataId);
                // Case[] cases = [select id from Case where AWS_Data_Id__c =:awsDataId];
                System.debug('cases ========================= ' + cases);
                System.debug('Cases[0].id = ' + cases[0].id);
                caseInfo.put('Id',cases[0].id);//For testing;
force-app/main/default/classes/NewAndEditQISController.cls
@@ -1,5 +1,6 @@
global with sharing class NewAndEditQISController extends NewAndEditBaseController{
    public String Input_Required_Field_Msg{set;get;}
    public String qisId{set;get;}
    public NewAndEditQISController(ApexPages.StandardController controller) {
        Input_Required_Field_Msg = Label.Input_Required_Field_Msg;
        List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('QIS_Report__c').getDescribe().fields.getMap().keyset());  
@@ -12,13 +13,16 @@
        //Updated by Chen Yanan 20220323 Start
        String contactId = controller.getRecord().Id;
        Map<string,string> mso = ApexPages.currentPage().getParameters();
        if(contactId == null){
            Map<string,string> mso = ApexPages.currentPage().getParameters();
            system.debug('mso='+mso);
            if(mso.containsKey('CF00N10000002FHFK_lkid')){
                controller.getRecord().put('Name', '*');
            }
        }
        if(mso.containsKey('CF00N100000073PA0_lkid')){
            controller.getRecord().put('QIS_pre__c',mso.get('CF00N100000073PA0_lkid'));
        }
        system.debug('controller.getRecord()='+controller.getRecord());
        //Updated by Chen Yanan 20220323 End
    }
force-app/main/default/classes/NewRepairController.cls
@@ -190,18 +190,134 @@
            if(mso.containsKey('00N10000008rsVuEAI')){
                controller.getRecord().put('ProblemDescription__c',mso.get('00N10000008rsVuEAI'));
            }
            //报修人00N1m0000054ufW
            if(mso.containsKey('00N1m0000054ufW')){
                controller.getRecord().put('RepairApplicant__c',mso.get('00N1m0000054ufW'));
            //如果是测试环境
            if(NFMUtil.isSandbox()){
                //报修人00N1m0000054ufW
                if(mso.containsKey('00N1m0000054ufW')){
                    controller.getRecord().put('RepairApplicant__c',mso.get('00N1m0000054ufW'));
                }
                //报修人医院00N1m0000054ufU
                if(mso.containsKey('00N1m0000054ufU')){
                    controller.getRecord().put('RepairApplicantHospital__c',mso.get('00N1m0000054ufU'));
                }
                //报修人科室00N1m0000054ufT
                if(mso.containsKey('00N1m0000054ufT')){
                    controller.getRecord().put('RepairApplicantDepartment__c',mso.get('00N1m0000054ufT'));
                }
                //报修子单CF00N1m0000054ufZ_lkid
                if(mso.containsKey('CF00N1m0000054ufZ_lkid')){
                    controller.getRecord().put('RepairSubOrder__c',mso.get('CF00N1m0000054ufZ_lkid'));
                    //查询AWSDataId
                    List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:mso.get('CF00N1m0000054ufZ_lkid')];
                    if(rso.size() > 0){
                        RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
                    }
                }
                //报修发起日
                if(mso.containsKey('00N1m0000054ufa')){
                    String o = mso.get('00N1m0000054ufa');
                    controller.getRecord().put('RepairTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //报修单受理日ReceiverTime__c
                if(mso.containsKey('00N1m0000054ufS')){
                    String o = mso.get('00N1m0000054ufS');
                    controller.getRecord().put('ReceiverTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //计划上门日
                if(mso.containsKey('00N1m000005SRiF')){
                    String o = mso.get('00N1m000005SRiF');
                    controller.getRecord().put('PlannedVisitDay__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //一次上门日
                if(mso.containsKey('00N1m000005SRiK')){
                    String o = mso.get('00N1m000005SRiK');
                    controller.getRecord().put('ActualVisitDateFirst__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //二次上门日
                if(mso.containsKey('00N1m000005SRiP')){
                    String o = mso.get('00N1m000005SRiP');
                    controller.getRecord().put('ActualVisitDateSecond__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //三次上门日
                if(mso.containsKey('00N1m000005SRiU')){
                    String o = mso.get('00N1m000005SRiU');
                    controller.getRecord().put('ActualVisitDateThird__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //移动端申请修理日
                if(mso.containsKey('00N1m000005SRmg')){
                    String o = mso.get('00N1m000005SRmg');
                    controller.getRecord().put('SubOrderCompleteDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //报修单处理完成日
                if(mso.containsKey('00N1m000005SRmW')){
                    String o = mso.get('00N1m000005SRmW');
                    controller.getRecord().put('SubOrderCreatedDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
            }else {
                //正式环境
                //报修人
                if(mso.containsKey('00N10000009H1rQ')){
                    controller.getRecord().put('RepairApplicant__c',mso.get('00N10000009H1rQ'));
                }
                //报修人医院
                if(mso.containsKey('00N10000009H1rP')){
                    controller.getRecord().put('RepairApplicantHospital__c',mso.get('00N10000009H1rP'));
                }
                //报修人科室
                if(mso.containsKey('00N10000009H1rO')){
                    controller.getRecord().put('RepairApplicantDepartment__c',mso.get('00N10000009H1rO'));
                }
                //报修子单
                if(mso.containsKey('00N10000009H1rR_lkid')){
                    controller.getRecord().put('RepairSubOrder__c',mso.get('00N10000009H1rR_lkid'));
                    //查询AWSDataId
                    List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:mso.get('00N10000009H1rR_lkid')];
                    if(rso.size() > 0){
                        RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
                    }
                }
                //报修发起日
                if(mso.containsKey('00N10000009H1rS')){
                    String o = mso.get('00N10000009H1rS');
                    controller.getRecord().put('RepairTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //报修单受理日
                if(mso.containsKey('00N10000009H1rN')){
                    String o = mso.get('00N10000009H1rN');
                    controller.getRecord().put('ReceiverTime__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //计划上门日
                if(mso.containsKey('00N10000009H1rM')){
                    String o = mso.get('00N10000009H1rM');
                    controller.getRecord().put('PlannedVisitDay__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //一次上门日
                if(mso.containsKey('00N10000009H1r6')){
                    String o = mso.get('00N10000009H1r6');
                    controller.getRecord().put('ActualVisitDateFirst__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //二次上门日
                if(mso.containsKey('00N10000009H1r7')){
                    String o = mso.get('00N10000009H1r7');
                    controller.getRecord().put('ActualVisitDateSecond__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //三次上门日
                if(mso.containsKey('00N10000009H1r8')){
                    String o = mso.get('00N10000009H1r8');
                    controller.getRecord().put('ActualVisitDateThird__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //移动端申请修理日
                if(mso.containsKey('00N10000009H1ri')){
                    String o = mso.get('00N10000009H1ri');
                    controller.getRecord().put('SubOrderCompleteDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
                //报修单处理完成日
                if(mso.containsKey('00N10000009H1rj')){
                    String o = mso.get('00N10000009H1rj');
                    controller.getRecord().put('SubOrderCreatedDate__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
                }
            }
            //报修人医院00N1m0000054ufU
            if(mso.containsKey('00N1m0000054ufU')){
                controller.getRecord().put('RepairApplicantHospital__c',mso.get('00N1m0000054ufU'));
            }
            //报修人科室00N1m0000054ufT
            if(mso.containsKey('00N1m0000054ufT')){
                controller.getRecord().put('RepairApplicantDepartment__c',mso.get('00N1m0000054ufT'));
            }
            //送修物流方式00N1m0000054ufE
            if(mso.containsKey('00N1m0000054ufE')){
                controller.getRecord().put('DeliveryLogisticsMode__c',mso.get('00N1m0000054ufE'));
@@ -222,15 +338,7 @@
            if(mso.containsKey('00N10000008rsVS')){
                controller.getRecord().put('DelayReportReason__c',mso.get('00N10000008rsVS'));
            }
            //报修子单CF00N1m0000054ufZ_lkid
            if(mso.containsKey('CF00N1m0000054ufZ_lkid')){
                controller.getRecord().put('RepairSubOrder__c',mso.get('CF00N1m0000054ufZ_lkid'));
                //查询AWSDataId
                List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:mso.get('CF00N1m0000054ufZ_lkid')];
                if(rso.size() > 0){
                    RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
                }
            }
            rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
            if(String.isBlank(rtTypeId)||String.isEmpty(rtTypeId)){
                List<RecordType> rtList = new List<RecordType>([select Id,DeveloperName from RecordType  where SobjectType ='Repair__c' and DeveloperName ='Repair']);
@@ -264,9 +372,24 @@
    
    @RemoteAction
    global static Response EncryptUpdate(string rid){
        system.debug('rid='+rid);
        Response r = new Response();
        List<Repair__c> reps = [select id,Encrypt_Update_Flag__c from Repair__c where id =:rid];
        if(reps.size()==0){
            r.status = 'failed';
            r.message = '符合条件的数据未找到';
            return r;
        }
        Repair__c rep = reps[0];
        if(!rep.Encrypt_Update_Flag__c){
            r.status = 'success';
            r.message = '无需更改';
            return r;
        }
        
        boolean b = AWSServiceTool2.EncryptPushData(new string[]{rid});
        Response r = new Response();
        rep.Encrypt_Update_Flag__c = false;
        update rep;
        r.status = b ? 'success' : 'failed';
        r.message = b ? '' : '加密推送失败';
        r.recordId = rid;
force-app/main/default/pages/NewAndEditCase.page
@@ -24,7 +24,7 @@
        //判断insert or update
        function ProcessPI(caseJson, payloadForNewPI) {
            blockme();
            if ({!isNewMode}) {
            if ({!isNewMode} || {!isCloneMode}) {
                NewPIToAWS(caseJson, payloadForNewPI)
            }else {
                UpdatePIToAWS(caseJson, payloadForNewPI)
@@ -175,7 +175,7 @@
            payloadJson.Customer_manual_Encrypted__c = r.object[0].customerManualEncrypt;
            //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
            payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
            if (isNewMode) {
            if (isNewMode || {!isCloneMode}) {
                payloadJson.AWS_Data_Id__c = r.object[0].dataId;
            } else {
                payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
force-app/main/default/pages/NewAndEditInquiryForm.page
@@ -228,20 +228,26 @@
                } else if (ele.type == 'checkbox') {
                    result[field_api_name] = ele.checked;
                } else if (ele.type == 'select-multiple') {
                    //field_api_name
                    let multiple = field_api_name;
                    let targets = "";
                    //InquiryForm特殊处理
                    if(multiple == "Product1__c"){
                        targets = GetEleByClass(config.ApiPrefix+'_'+field_api_name).parentNode.children[1].rows[1].cells[2].innerText;
                    }else if(multiple == "Request1__c"){
                        targets = GetEleByClass(config.ApiPrefix+'_'+field_api_name).parentNode.children[2].rows[1].cells[2].innerText;
                    }else{
                        targets = GetEleByClass(config.ApiPrefix+'_'+field_api_name).parentNode.children[1].children[0].children[1].children[2].children[0].innerText;
                    //After Update By zhj 20220411 Start
                    let multiple = nodelist[index].getAttribute("data-id");
                    let targets = document.querySelector("[data-id=" + multiple + "]").options;
                    let selValues = [];
                    for(i=0; i < targets.length; i++){
                        if(targets[i].selected){
                            selValues.push(targets[i].value);
                        }
                    }
                    targets = targets.replace(/\n/g, ";");
                    console.log('targets = ' + targets);
                    result[field_api_name] = targets;
                    let setValuesStr = JSON.stringify(selValues);
                    setValuesStr = setValuesStr.substring(1,setValuesStr.length-1);
                    if(setValuesStr){
                        setValuesStr = setValuesStr.replace(/"/g,"");
                        if(setValuesStr.indexOf(',')!=-1){
                            setValuesStr = setValuesStr.replace(/,/g,";");
                        }
                    }
                    console.log('targets = ' + setValuesStr);
                    result[nodelist[index].getAttribute("data-id")] = setValuesStr;
                    //After Update By zhj 20220411 end
                } else {
                    result[field_api_name] = ele.value;
                }
force-app/main/default/pages/NewAndEditLead.page
@@ -118,12 +118,26 @@
                } else if (nodelist[index].type == 'checkbox') {
                    result[nodelist[index].getAttribute("data-id")] = nodelist[index].checked;
                } else if (nodelist[index].type == 'select-multiple') {
                    //nodelist[index].getAttribute("data-id")
                    //After Update By zhj 20220411 Start
                    let multiple = nodelist[index].getAttribute("data-id");
                    let targets = document.querySelector("[data-id=" + multiple + "]").parentNode.children[1].children[0].children[1].children[2].children[0].innerText;
                    targets = targets.replace(/\n/g, ";");
                    console.log('targets = ' + targets);
                    result[nodelist[index].getAttribute("data-id")] = targets;
                    let targets = document.querySelector("[data-id=" + multiple + "]").options;
                    let selValues = [];
                    for(i=0; i < targets.length; i++){
                        if(targets[i].selected){
                            selValues.push(targets[i].value);
                        }
                    }
                    let setValuesStr = JSON.stringify(selValues);
                    setValuesStr = setValuesStr.substring(1,setValuesStr.length-1);
                    if(setValuesStr){
                        setValuesStr = setValuesStr.replace(/"/g,"");
                        if(setValuesStr.indexOf(',')!=-1){
                            setValuesStr = setValuesStr.replace(/,/g,";");
                        }
                    }
                    console.log('targets = ' + setValuesStr);
                    result[nodelist[index].getAttribute("data-id")] = setValuesStr;
                    //After Update By zhj 20220411 end
                } else {
                    result[nodelist[index].getAttribute("data-id")] = nodelist[index].value;
                }
force-app/main/default/pages/NewAndEditReport.page
@@ -72,7 +72,6 @@
                    result[nodelist[index].getAttribute("data-id")] = nodelist[index].checked;
                } else if (nodelist[index].type == 'select-multiple') {
                    //nodelist[index].getAttribute("data-id")
                    let multiple = nodelist[index].getAttribute("data-id");
                    //let targets = document.querySelector("[data-id=" + multiple + "]").nextSibling.children[0].children[1].children[2].innerText;
                    //Before Update By Li Jun 20220411
                    // let targets = document.querySelector("[data-id=" + multiple + "]").parentNode.children[2].children[0].children[1].children[2].children[0].innerText;
@@ -82,6 +81,7 @@
                    //Before Update By Li Jun 20220411
                    //After Update By Li Jun 20220411 Start
                    let multiple = nodelist[index].getAttribute("data-id");
                    let targets = document.querySelector("[data-id=" + multiple + "]").options;
                    let selValues = [];
                    for(i=0; i < targets.length; i++){
force-app/main/default/pages/NewRepair.page
@@ -227,7 +227,7 @@
           //page:form:block:j_id34:17:j_id35:j_id36:2:j_id37
           //page:form:block:j_id34:17:j_id35:j_id36:2:j_id37
           if(document.getElementById('page:form:block:j_id34:17:j_id35:j_id36:2:j_id37')){
               result.Return_Without_Repair_Reason__c = document.getElementById('page:form:block:j_id34:17:j_id35:j_id36:2:j_id37').value;
               result.Return_Without_Repair_Reason__c = document.getElementById('page:form:block:j_id34:17:j_id35:j_id36:2:j_id37').value=='_\x01_'?'':document.getElementById('page:form:block:j_id34:17:j_id35:j_id36:2:j_id37').value;
           }
            console.log(JSON.stringify(result));
            return result;
manifest/packageForCloneButton.xml
@@ -19,6 +19,8 @@
        <members>RentalApplyControllerTest</members>
        <members>NewAndEditReportController</members>
        <members>NewAndEditReportControllerTest</members>
        <members>NewAndEditQISController</members>
        <members>NewAndEditCaseController</members>
        <name>ApexClass</name>
    </types>
    <types>
@@ -36,6 +38,7 @@
        <members>NewAndEditQIS</members>
        <members>NewAndEditContact</members>
        <members>NewAndEditInquiryForm</members>
        <members>NewAndEditCase</members>
        <name>ApexPage</name>
    </types>
    <version>52.0</version>