黄千龙
2023-04-25 98cf72d721051ca2c5dadc2a80d2eac9a92bf29d
Intake判定页面RepPAEDecisionRecord
3个文件已添加
1445 ■■■■■ 已修改文件
force-app/main/default/classes/RepPAEDecisionRecordController.cls 1036 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/RepPAEDecisionRecord.page 402 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/RepPAEDecisionRecord.page-meta.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RepPAEDecisionRecordController.cls
New file
@@ -0,0 +1,1036 @@
public with sharing class RepPAEDecisionRecordController {
    public PAE_DecisionRecord__c rdRecord {
        get;
        set;
    }
    //PAE判定记录的Id
    public String Id {
        get;
        set;
    }
    //PAE判定记录的记录类型Id
    public String RecordTypeId;
    public String RecordTypeIdD;
    public String RecordTypeName {
        get;
        set;
    }
    public String ASac_ASrc;
    public Boolean editAble {
        get;
        set;
    }
    // 保存按钮 需要考虑再现/不再现的更新了。
    // 简档:2F4_技术推进部,2F4_技术推进部_非SSO,2F2B_服务管理,系统管理员的人操作的时候,需要允许操作【保存】。
    public Boolean savebuton {
        get;
        set;
    }
    public Integer CancelineFlag {
        get;
        set;
    }
    public String OCSM_QARA {
        get;
        set;
    } //20200310
    public String OCSM_Cording {
        get;
        set;
    } //20200310
    public String intakePAEReappearConfirm {
        get;
        set;
    }
    public Integer pageLimit{get;set;}
    // 如果Repair__c     中DOJ_Status__c       的字段值为待EtQ Response 或者
    //     Report__c 中ComplaintStatus__c  的字段值为待EtQ Response 将标记改为true
    // 影响至对应页面中的按钮是否可用
    public Boolean editFlag {
        get;
        set;
    }
    // 当前报告书
    public Report__c repa {
        get;
        set;
    }
    // 是否是OSH
    public Boolean isOSH {
        get;
        set;
    }
    public String ReportId {
        get;
        set;
    }
    public String productIdx {
        get;
        set;
    }
    //页面的明细
    public List < PAE_DecisionRecordDetailInfo > paedRecordDetailView {
        get;
        set;
    }
    public Integer paedRecordDetailViewCount {
        get {
            return paedRecordDetailView == null ? 0 : paedRecordDetailView.size();
        }
    }
    public RepPAEDecisionRecordController(ApexPages.StandardController stdController) {
        Id = ApexPages.currentPage().getParameters().get('Id');
        String profileId = UserInfo.getProfileId();
        // 当前用户是否在 OSH自定义标签中
        isOSH = System.label.OSH.contains(profileId);
        System.debug('isOSH+' + isOSH);
        // 判断Report__c的ComplaintStatus__c字段值是否为待EtQ Response
        ReportId = ApexPages.currentPage().getParameters().get('ReportId');
        List < Report__c > Rep = [select id, name, ComplaintStatus__c, AsyncData__c from Report__c where id = : ReportId];
        //精琢科技  zxk  2021-11-03 根据修理进行的修改   start
         if (Rep.size() > 0){
              repa = Rep.get(0);
              system.debug('+++++++++++++++++'+repa);
                if ('待EtQ Response'.equals(Rep.get(0).ComplaintStatus__c)) {
                    editFlag = true;
                }
            }
        //精琢科技  zxk  2021-11-03 根据修理进行的修改   end
        // if (Rep.size() > 0 && '待EtQ Response'.equals(Rep.get(0).ComplaintStatus__c)) {
        //     editFlag = true;
        // }
        paedRecordDetailView = new List < PAE_DecisionRecordDetailInfo > ();
        editAble = false;
        CancelineFlag = 2;
        productIdx = '';
        // PAE_DecisionRecord__c 记录类型 ASRCDecision ASACDecision
        // ASRCDecision --> Intake
        // ASACDecision --> Final
        RecordTypeName = ApexPages.currentPage().getParameters().get('RecordTypeIds');
        pageLimit = Integer.valueOf(System.Label.mpddetPageLimitsize);//系统标签
    }
    public void init() {
        editAble = true;
        //当前登录着的ProfileId
        String profileId = UserInfo.getProfileId().substring(0, 15);
        //118_CFDA(质量法规本部)担当 简档ID和 118_CFDA(质量法规本部)窗口 简档ID和管理员
        if (profileId.equals(System.Label.ProfileId_OCSM_QARA1) || profileId.equals(System.Label.ProfileId_OCSM_QARA2) || UserInfo.getProfileId().equals(System.Label.ProfileId_SystemAdmin)) {
            OCSM_QARA = '1';
        } else {
            OCSM_QARA = '0';
        }
        //ProfileId 2F2B_2F4
        if (System.Label.ProfileId2F2B_2F4.contains(profileId)) {
            OCSM_Cording = '1';
        } else {
            OCSM_Cording = '0';
        }
        if (System.Label.ProfileId2F2B_2F4.contains(profileId) || UserInfo.getProfileId() == System.Label.ProfileId_SystemAdmin) {
            savebuton = true;
        } else {
            savebuton = false;
        }
        if (String.isNotBlank(RecordTypeName)) {
            RecordTypeId = Schema.SObjectType.PAE_DecisionRecord__c.getRecordTypeInfosByDeveloperName().get(RecordTypeName).getRecordTypeId();
        } else {
            List < PAE_DecisionRecord__c > paedRdList = [select Id, PAE_Report__c, RecordTypeId, PAEDetail_DetermineResults__c, RecordType.DeveloperName from PAE_DecisionRecord__c where Id = : Id];
            if (paedRdList.size() > 0) {
                RecordTypeName = paedRdList[0].RecordType.DeveloperName;
                RecordTypeId = paedRdList[0].PAE_Report__c;
            }
        }
        if ('ASRCDecision' == RecordTypeName) {
            ASac_ASrc = 'Intake';
            RecordTypeIdD = Schema.SObjectType.PAE_DecisionRecordDetail__c.getRecordTypeInfosByDeveloperName().get('intake').getRecordTypeId();
        } else if ('ASACDecision' == RecordTypeName) {
            ASac_ASrc = 'Final';
            RecordTypeIdD = Schema.SObjectType.PAE_DecisionRecordDetail__c.getRecordTypeInfosByDeveloperName().get('final').getRecordTypeId();
        }
        rdRecord = new PAE_DecisionRecord__c();
        Report__c repair1OrQIS1;
        if (!string.isBlank(ReportId)) {
            repair1OrQIS1 = [select id, PAE_codez__c, PAE_temp_final_code__c, PAE_reappear_confirm__c from Report__c where id = : ReportId];
        }
        Map < String, PAE_DecisionRecordDetailInfo > MidMap = new Map < String, PAE_DecisionRecordDetailInfo > ();
        if (Id == NULL || Id == '') {
            if (string.isnotBlank(ReportId)) {
                rdRecord.PAE_reappear_confirm__c = repair1OrQIS1.PAE_reappear_confirm__c;
            }
            //预留一行
            PAE_DecisionRecordDetail__c paedrd = new PAE_DecisionRecordDetail__c();
            paedrd.PAED_Status__c = '有效';
            paedrd.RecordTypeId = RecordTypeIdD;
            paedRecordDetailView.add(new PAE_DecisionRecordDetailInfo(paedrd));
            //预留一行
        } else {
            List < PAE_DecisionRecord__c > rdRecordList = new List < PAE_DecisionRecord__c > ();
            List < PAE_DecisionRecordDetail__c > rdRecordDetailList = new List < PAE_DecisionRecordDetail__c > ();
            rdRecordList = [SELECT Id, Name, CurrencyIsoCode, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById,
                SystemModstamp, PAE_DetermineResults__c, PAE_ConfirmationDate__c,
                PAE_Authenticator__c, PAE_reappear_confirm__c,
                PAEDetail_DetermineResults__c, PAE_DetermineResults_Text__c
                FROM PAE_DecisionRecord__c where Id = : Id
            ];
            if (rdRecordList.size() > 0) {
                rdRecord = rdRecordList[0];
            }
            //PAE_reappear_confirm__c  再现结果确认
            if (string.isnotBlank(ReportId)) {
                rdRecord.PAE_reappear_confirm__c = repair1OrQIS1.PAE_reappear_confirm__c;
            }
            rdRecordDetailList = [SELECT Id, IsDeleted, Name, CurrencyIsoCode, CreatedDate, CreatedById,
                LastModifiedDate, LastModifiedById, SystemModstamp, PAE_DecisionRecordD__c,
                PAED_ManagementCode__c, PAE_Judge__c, PAED_Reappear_Result__c, PAED_ResultAffirmant__r.Name,
                PAED_ResultConfirmationDate__c, Final_universal_code__c,
                PAED_Status__c, PAED_ConfirmationDate__c, PAED_Affirmant__c, PAE_is_save__c,
                PAED_Affirmant__r.Name, PAED_RCAC__c, PAED_CancellationDate__c, PAED_Nullifier__c,
                PAED_Nullifier__r.Name, isInterfaceCreate__c, Location__c, LocationGroup__c, FinalUniversalDesc__c,
                Phenomenon__c, IntakeUniversalDesc__c, PhenomenonDesc__c,
                // NFM109信息获取,Gzw add 20200826
                Description__c, Cause__c, EtqPart__c, EtqAsAnalyzed__c, EtqCause__c,
                InspectionCategory109__c, PAED_Affirmant_F__c, PAED_ConfirmationDate_F__c,
                //课题94 add by rentongxiao 2020-10-10 start
                PAED_ResultAffirmant_new__c
                //add by rentx 2020-11-04
                , isedit__c, RecordTypeId
                // RVS005信息获取 gzw add 20201126 start
                , RVSDetailNo__c, RVS_Date__c, RVS_Time__c, RVS_Decision_Person__c, Monitor_PAE__c
                // RVS005信息获取 gzw add 20201126 end
                FROM PAE_DecisionRecordDetail__c
                where PAE_DecisionRecordD__c = : Id Order by PAED_Status__c, PAED_ManagementCode__c ASC
            ];
            for (Integer i = 0; i < rdRecordDetailList.size(); i++) {
                MidMap.put(rdRecordDetailList[i].Id, new PAE_DecisionRecordDetailInfo(rdRecordDetailList[i]));
            }
            for (PAE_DecisionRecordDetailInfo paeDrd: MidMap.values()) {
                paedRecordDetailView.add(paeDrd);
            }
        }
    }
    //保存并关闭
    public PageReference SaveAndClose() {
        // 取消行
        if (CancelineFlag == 3) {
            Integer FLG = 0;
            Integer Count = 0;
            for (PAE_DecisionRecordDetailInfo CheckCount: paedRecordDetailView) {
                FLG = FLG + 1;
                if (CheckCount.check == false) {
                    Count = Count + 1;
                }
            }
            if (Count == FLG) {
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请选择要取消的行'));
                return null;
            }
        }
        List < PAE_DecisionRecordDetail__c > insertPaeDRDList = new List < PAE_DecisionRecordDetail__c > ();
        Savepoint sp = Database.setSavepoint();
        PAE_DecisionRecord__c paedRecord = new PAE_DecisionRecord__c();
        String paedRecordId = '';
        //明细有效状态此记录的总数量
        //明细有效状态此记录的PAE数量
        //明细有效状态此记录的Unknown数量
        //明细有效状态此记录的NonPAE数量
        Integer PAE_Judge_num = 0;
        Integer PAE_Judge_num_PAE = 0;
        Integer PAE_Judge_num_Unknown = 0;
        Integer PAE_Judge_num_nonPAE = 0;
        String PAE_DetermineResults = null;
        String prevDetermineResults = null;
        // try {
            //明细有效状态此记录的总数量
            //明细有效状态此记录的PAE数量
            //明细有效状态此记录的Unknown数量
            //明细有效状态此记录的NonPAE数量
            //如果Code包含汉字或超过15字数的化,需要提醒。【Intake universal code不可以使用汉字,不可以超过15字数】
            for (PAE_DecisionRecordDetailInfo rdRecorddl: paedRecordDetailView) {
                if (!(rdRecorddl.check && CancelineFlag == 3) && rdRecorddl.paedrdd.PAED_Status__c != '取消') {
                    PAE_Judge_num++;
                    if (rdRecorddl.paedrdd.PAE_Judge__c == 'PAE') {
                        PAE_Judge_num_PAE++;
                    }
                    if (rdRecorddl.paedrdd.PAE_Judge__c == 'Unknown') {
                        PAE_Judge_num_Unknown++;
                    }
                    if (rdRecorddl.paedrdd.PAE_Judge__c == 'nonPAE') {
                        PAE_Judge_num_nonPAE++;
                    }
                    // gzw 20210409 修改参数为空时,表达式判断出错问题
                    if (Schema.SObjectType.PAE_DecisionRecordDetail__c.getRecordTypeInfosByDeveloperName().get('intake').getRecordTypeId() == rdRecorddl.paedrdd.RecordTypeId && (containsChineseCharacters(rdRecorddl.paedrdd.PAED_ManagementCode__c) || (String.isNotBlank(rdRecorddl.paedrdd.PAED_ManagementCode__c) && rdRecorddl.paedrdd.PAED_ManagementCode__c.length() > 15))) {
                        rdRecorddl.paedrdd.PAED_ManagementCode__c.adderror('Intake universal code不可以使用汉字,不可以超过15字数。');
                        return null;
                    }
                }
                System.debug('rdRecorddl.paedrdd.Location__c' + rdRecorddl.paedrdd.Location__c);
            }
            if (PAE_Judge_num_PAE > 0) {
                PAE_DetermineResults = 'PAE';
            } else if (PAE_Judge_num_Unknown > 0) {
                PAE_DetermineResults = 'Unknown';
            } else if (PAE_Judge_num_nonPAE == PAE_Judge_num && PAE_Judge_num_nonPAE > 0) {
                PAE_DetermineResults = 'nonPAE';
            } else {
                PAE_DetermineResults = null;
            }
            rdRecord.PAE_DetermineResults_Text__c = PAE_DetermineResults;
            //System.debug('-----------------------:' + PAE_DetermineResults);
            //新增PAE判定
            if (String.isBlank(Id)) {
                //检查明细的编码是否为空---20200107 add 检查明细的PAE判定是否必填
                if (IsEmptyManagementCode(paedRecordDetailView)) {
                    return null;
                }
                paedRecord.PAE_Report__c = ReportId;
                paedRecord.PAE_reappear_confirm__c = rdRecord.PAE_reappear_confirm__c; // 20200908 Gzw Final 再现结果丢失问题 add
                paedRecord.RecordTypeId = RecordTypeId;
                insert paedRecord;
                paedRecordId = paedRecord.Id;
                UpsertPAE_DecisionRecordDetail(null, paedRecordDetailView, paedRecordId, false, prevDetermineResults);
            } else {
                //修改PAE变更
                List < PAE_DecisionRecord__c > paedRecordList = [select Id, PAE_DetermineResults__c, PAE_DetermineResults_Text__c, PAE_reappear_confirm__c from PAE_DecisionRecord__c where Id = : Id];
                List < PAE_DecisionRecordDetail__c > rdRecordDetailList = new List < PAE_DecisionRecordDetail__c > ();
                //存在的明细Map
                Map < Id, PAE_DecisionRecordDetail__c > paedRecordStatusMap = new Map < Id, PAE_DecisionRecordDetail__c > ();
                rdRecordDetailList = [SELECT Id, IsDeleted, Name, CurrencyIsoCode, CreatedDate, CreatedById,
                    LastModifiedDate, LastModifiedById, SystemModstamp, PAE_DecisionRecordD__c,
                    PAED_ManagementCode__c, PAE_Judge__c, PAED_Reappear_Result__c, PAED_ResultAffirmant__r.Name,
                    PAED_ResultConfirmationDate__c, Final_universal_code__c,
                    PAED_Status__c, PAED_ConfirmationDate__c, PAED_Affirmant__c, PAE_is_save__c,
                    PAED_Affirmant__r.Name, PAED_RCAC__c, PAED_CancellationDate__c, PAED_Nullifier__c,
                    PAED_Nullifier__r.Name, isInterfaceCreate__c, Location__c, LocationGroup__c, FinalUniversalDesc__c,
                    Phenomenon__c, IntakeUniversalDesc__c, PhenomenonDesc__c,
                    // NFM109信息获取,Gzw add 20200826
                    Description__c, Cause__c, EtqPart__c, EtqAsAnalyzed__c, EtqCause__c,
                    InspectionCategory109__c, PAED_Affirmant_F__c, PAED_ConfirmationDate_F__c,
                    //课题94 add by rentongxiao 2020-10-10 start
                    PAED_ResultAffirmant_new__c
                    //add by rentx
                    , isedit__c, RecordTypeId
                    // RVS005信息获取 gzw add 20201126 start
                    , RVSDetailNo__c, RVS_Date__c, RVS_Time__c, RVS_Decision_Person__c, Monitor_PAE__c
                    // RVS005信息获取 gzw add 20201126 end
                    FROM PAE_DecisionRecordDetail__c
                    where PAE_DecisionRecordD__c = : Id Order by PAED_Status__c, PAED_ManagementCode__c
                ];
                if (rdRecordDetailList.size() > 0) {
                    for (PAE_DecisionRecordDetail__c paedrd: rdRecordDetailList) {
                        paedRecordStatusMap.put(paedrd.Id, paedrd);
                    }
                }
                system.debug('paedRecordStatusMap===========>'+paedRecordStatusMap);
                if (paedRecordList.size() > 0) {
                    //PAE判定的Id
                    paedRecordId = paedRecordList[0].Id;
                    //PAE判定记录的状态不变
                    prevDetermineResults = paedRecordList[0].PAE_DetermineResults_Text__c;
                    if (paedRecordList[0].PAE_DetermineResults_Text__c == PAE_DetermineResults) {
                        //检查明细的编码是否为空---20200107 add 检查明细的PAE判定是否必填
                        if (IsEmptyManagementCode(paedRecordDetailView)) {
                            return null;
                        }
                        UpsertPAE_DecisionRecordDetail(paedRecordStatusMap, paedRecordDetailView, paedRecordId, false, prevDetermineResults);
                    } else if (paedRecordList[0].PAE_DetermineResults_Text__c != PAE_DetermineResults) {
                        //PAE判定记录的状态改变
                        //检查明细的编码是否为空---20200107 add 检查明细的PAE判定是否必填
                        if (IsEmptyManagementCode(paedRecordDetailView)) {
                            return null;
                        }
                        insertPaeDRDList = new List < PAE_DecisionRecordDetail__c > ();
                        paedRecord.PAE_DetermineResults_Text__c = PAE_DetermineResults;
                        paedRecord.PAE_Report__c = ReportId;
                        paedRecord.RecordTypeId = RecordTypeId;
                        insert paedRecord;
                        paedRecordId = paedRecord.Id;
                        UpsertPAE_DecisionRecordDetail(paedRecordStatusMap, paedRecordDetailView, paedRecordId, true, prevDetermineResults);
                    }
                }
            }
        // } catch (Exception e) {
        //     ApexPages.addMessages(e);
        //     Database.rollback(sp);
        //     return null;
        // }
        if (CancelineFlag != 2) {
            return RefreshOriginalInterface(paedRecordId);
        } else {
            return ReturnReportInterface();
        }
    }
    //返回报告书页面
    public PageReference ReturnReportInterface() {
        PageReference ref;
        system.debug('啦啦啦ReportId1' + ReportId);
        if (String.isnotBlank(ReportId)) {
            ref = new Pagereference('/' + ReportId);
        }
        //PageReference ref = new Pagereference('/' + ReportId);
        ref.setRedirect(true);
        return ref;
    }
    //留在当前页面
    public PageReference RefreshOriginalInterface(String paedRecordId) {
        PageReference ref;
        if (String.isnotBlank(ReportId)) {
            ref = new Pagereference('/apex/RepPAEDecisionRecord?Id=' + paedRecordId + '&ReportId=' + ReportId + '&RecordTypeIds=' + RecordTypeName);
        }
        ref.setRedirect(true);
        return ref;
    }
    //返回Intake页面
    public PageReference toIntake() {
        String url = null;
        if (String.isnotBlank(ReportId)) {
            List < PAE_DecisionRecord__c > pAE_DecisionRecord = [SELECT LastModifiedDate, Id, Name, LastModifiedById, RecordType.DeveloperName FROM PAE_DecisionRecord__c where PAE_Report__c = : ReportId And RecordType.DeveloperName = 'ASRCDecision'
                Order by LastModifiedDate desc
            ];
            if (pAE_DecisionRecord.size() > 0) {
                url = '/apex/RepPAEDecisionRecord?Id=' + pAE_DecisionRecord[0].Id + '&ReportId=' + ReportId + '&RecordTypeIds=ASRCDecision';
            } else {
                url = '/apex/RepPAEDecisionRecord?ReportId=' + ReportId + '&RecordTypeIds=ASRCDecision';
            }
        }
        PageReference ref = new Pagereference(url);
        ref.setRedirect(true);
        return ref;
    }
   //插入空行
    public PageReference InsertRow() {
        // 2021-12-08  zxk  精琢科技   手动赋值逻辑  start
        List < String > codeNumDataList = new List < String > ();
        for (PAE_DecisionRecordDetailInfo pdrdInFoCode: paedRecordDetailView) {
            String managementCodeStr = pdrdInFoCode.paedrdd.PAED_ManagementCode__c;
            if (String.isBlank(pdrdInFoCode.paedrdd.id) && String.isNotBlank(managementCodeStr)) {
                codeNumDataList.add(managementCodeStr);
            }
        }
        Map < String, String > strMapData = updateIsPae(codeNumDataList);
        for (PAE_DecisionRecordDetailInfo pdrdInFoCode: paedRecordDetailView) {
            String managementCodeStr = pdrdInFoCode.paedrdd.PAED_ManagementCode__c;
            if (String.isBlank(pdrdInFoCode.paedrdd.Id)) {
                if (String.isNotBlank(managementCodeStr)) {
                    if (pdrdInFoCode.paedrdd.PAE_Judge__c != strMapData.get(managementCodeStr) || String.isBlank(strMapData.get(managementCodeStr))) {
                        pdrdInFoCode.monitorPAE = true;
                    } else {
                        pdrdInFoCode.monitorPAE = false;
                    }
                }
            }
        }
        // 2021-12-08  zxk  精琢科技   手动赋值逻辑  end
        PAE_DecisionRecordDetail__c paedrd = new PAE_DecisionRecordDetail__c();
        paedrd.PAED_Status__c = '有效';
        paedrd.RecordTypeId = RecordTypeIdD;
        // Integer styNum = paedRecordDetailView.size();
        paedRecordDetailView.add(new PAE_DecisionRecordDetailInfo(paedrd));
        return null;
    }
    //批量插入空行字符串
    public void InsertMoreRows() {
        // 精琢科技   zxk  2021-10-21  start  给PAE判定记录赋值
        List < String > codeNumDataList = new List < String > ();
        for (PAE_DecisionRecordDetailInfo pdrdInFoCode: paedRecordDetailView) {
            String managementCodeStr = pdrdInFoCode.paedrdd.PAED_ManagementCode__c;
            if (String.isBlank(pdrdInFoCode.paedrdd.id) && String.isNotBlank(managementCodeStr)) {
                // && pdrdInFoCode.paedrdd.PAE_is_save__c != '1'
                for (String codeStr: managementCodeStr.split(',')) {
                    if (String.isNotBlank(codeStr)) {
                        codeNumDataList.add(codeStr);
                    }
                }
            }
        }
        Map < String, String > strMapData = updateIsPae(codeNumDataList);
        // 精琢科技   zxk  2021-10-21  end  给PAE判定记录赋值
        List < PAE_DecisionRecordDetailInfo > paedRecordDetailViewTemporary = new List < PAE_DecisionRecordDetailInfo > ();
        List < String > codeList = new List < String > ();
        for (PAE_DecisionRecordDetailInfo paedRDInfo: paedRecordDetailView) {
            String managementCode = paedRDInfo.paedrdd.PAED_ManagementCode__c;
            String finalUniversalCode = paedRDInfo.paedrdd.Final_universal_code__c;
            Date confirmationDate = paedRDInfo.paedrdd.PAED_ConfirmationDate__c;
            String pStatus = paedRDInfo.paedrdd.PAED_Status__c;
            PAE_DecisionRecordDetail__c paedrd = new PAE_DecisionRecordDetail__c();
            // 20210719 gzw LJPH-C4Y57Q start
            if (managementCode == '000' && paedRDInfo.paedrdd.PAE_Judge__c == null) {
                paedRDInfo.paedrdd.PAE_Judge__c = 'Unknown';
            }
            // 20210719 gzw LJPH-C4Y57Q end
            if (paedRDInfo.paedrdd.PAED_Status__c != '取消') {
                if (String.isBlank(finalUniversalCode) && confirmationDate == null) {
                    if (String.isNotBlank(managementCode)) {
                        if (managementCode.indexof(',') != -1) {
                            Integer q = 1;
                            for (String code: managementCode.split(',')) {
                                 // 2021-12-08  zxk  精琢科技   手动赋值逻辑  start
                                PAE_DecisionRecordDetailInfo info = new PAE_DecisionRecordDetailInfo();
                                // 2021-12-08  zxk  精琢科技   手动赋值逻辑  end
                                // bug fix gzw 已有的空code数据,数据数据时,会新建  20201214 start
                                PAE_DecisionRecordDetail__c paedrdtemp;
                                if (q == 1) {
                                    paedrdtemp = paedRDInfo.paedrdd;
                                } else {
                                    paedrdtemp = new PAE_DecisionRecordDetail__c();
                                }
                                paedrd = ReproduceResult(paedrdtemp, paedRDInfo); //20200106 add
                                // bug fix gzw 已有的空code数据,数据数据时,会新建  20201214 start
                                paedrd.PAED_Status__c = '有效';
                                paedrd.PAED_ManagementCode__c = code;
                                if (code == '000') {
                                    paedrd.PAE_Judge__c = 'Unknown';
                                }
                                paedrd.RecordTypeId = RecordTypeIdD;
                                paedrd.PAE_is_save__c = '';
                                  // 精琢科技   zxk  2021-10-21  start  给PAE判定记录赋值
                                if (strMapData.containsKey(code)) {
                                    paedrd.PAE_Judge__c = strMapData.get(code);
                                    info.strJudge = strMapData.get(code);
                                    info.monitorPAE = false;
                                    paedrd.Monitor_PAE__c = false;
                                } else if (managementCode.indexof(code) != -1) {
                                        paedrd.PAE_Judge__c = null;
                                        info.strJudge = paedRDInfo.strJudge;
                                        info.monitorPAE = true;
                                }
                                if (paedrd.PAE_Judge__c == null || paedrd.PAE_Judge__c == '') {
                                    paedrd.Monitor_PAE__c = true;
                                    info.monitorPAE = true;
                                }
                                info.paedrdd = paedrd;
                                paedRecordDetailViewTemporary.add(info);
                                // 精琢科技   zxk  2021-10-21  end  给PAE判定记录赋值
                                q++;
                            }
                        } else {
                             // 2021-12-08  zxk  精琢科技   手动赋值逻辑  start
                            PAE_DecisionRecordDetailInfo info = new PAE_DecisionRecordDetailInfo();
                            // 2021-12-08  zxk  精琢科技   手动赋值逻辑  end
                            // bug fix gzw 已有的空code数据,数据数据时,会新建  20201214 start
                            PAE_DecisionRecordDetail__c paedrdtemp = paedRDInfo.paedrdd;
                            paedrd = ReproduceResult(paedrdtemp, paedRDInfo); //20200106 add
                            // bug fix gzw 已有的空code数据,数据数据时,会新建  20201214 end
                            paedrd.PAED_Status__c = '有效';
                            paedrd.RecordTypeId = RecordTypeIdD;
                            paedrd.PAED_ManagementCode__c = managementCode;
                             // 精琢科技   zxk  2021-10-21  start  给PAE判定记录赋值
                            if (strMapData.containsKey(managementCode) && productIdx == managementCode) {
                                paedrd.PAE_Judge__c = strMapData.get(managementCode);
                                info.strJudge = strMapData.get(managementCode);
                                info.monitorPAE = false;
                                paedrd.Monitor_PAE__c = false;
                            } else {
                                 info.strJudge = paedRDInfo.strJudge;
                                if (strMapData.get(managementCode) != paedRDInfo.paedrdd.PAE_Judge__c || (paedrd.PAE_Judge__c == null || paedrd.PAE_Judge__c == '')) {
                                    info.monitorPAE = true;
                                }
                            }
                            if (paedrd.PAE_Judge__c == null || paedrd.PAE_Judge__c == '') {
                                paedrd.Monitor_PAE__c = true;
                                // info.monitorPAE = true;
                            }
                            info.paedrdd = paedrd;
                            paedRecordDetailViewTemporary.add(info);
                            // 精琢科技   zxk  2021-10-21  end  给PAE判定记录赋值
                        }
                    } else {
                        // Gzw 20201215 编辑页面空白行失去焦点后行消失 对应
                        paedRecordDetailViewTemporary.add(paedRDInfo);
                    }
                } else {
                    paedRecordDetailViewTemporary.add(paedRDInfo);
                }
            } else {
                paedRecordDetailViewTemporary.add(paedRDInfo);
            }
        }
        if (paedRecordDetailViewTemporary != null) {
            paedRecordDetailView = new List < PAE_DecisionRecordDetailInfo > ();
            paedRecordDetailView.addAll(paedRecordDetailViewTemporary);
            if (paedRecordDetailView.size() == 0) {
                PAE_DecisionRecordDetail__c paedrd = new PAE_DecisionRecordDetail__c();
                paedrd.PAED_Status__c = '有效';
                paedrd.RecordTypeId = RecordTypeIdD;
                paedRecordDetailView.add(new PAE_DecisionRecordDetailInfo(paedrd));
            }
        }
    }
    //检查明细的编码是否为空---20200107 add 检查明细的PAE判定是否必填
    public Boolean IsEmptyManagementCode(List < PAE_DecisionRecordDetailInfo > paedRecordDetailView) {
        String isEmpty = '';
        if (paedRecordDetailView.size() == 0) {
            return true;
        }
        // gzw 20201215 取消时不需要判断编码和状态 追加 && CancelineFlag != 3
        for (PAE_DecisionRecordDetailInfo paedRDInfo: paedRecordDetailView) {
            // gzw 20201215 取消时,不判断报错
            if (paedRDInfo.paedrdd.PAED_Status__c == '取消') {
                continue;
            }
            if (paedRDInfo.paedrdd != null) {
                system.debug('paedRDInfo.paedrdd.PAED_ManagementCode__c==========>'+paedRDInfo.paedrdd.PAED_ManagementCode__c);
                system.debug('CancelineFlag=========>'+CancelineFlag);
                system.debug('paedRDInfo.paedrdd.PAE_Judge__c==========>'+paedRDInfo.paedrdd.PAE_Judge__c);
                if (String.isBlank(paedRDInfo.paedrdd.PAED_ManagementCode__c) && CancelineFlag != 3) {
                    isEmpty = 'PAE判定记录明细的编码不能为空';
                }
                if (String.isBlank(paedRDInfo.paedrdd.PAE_Judge__c) && CancelineFlag != 3) {
                    isEmpty = 'PAE判定记录明细的PAE判定不能为空';
                }
            } else {
                if (String.isBlank(paedRDInfo.paedrdd.PAED_ManagementCode__c) && CancelineFlag != 3) {
                    isEmpty = 'PAE判定记录明细的编码不能为空';
                }
                if (String.isBlank(paedRDInfo.paedrdd.PAE_Judge__c) && CancelineFlag != 3) {
                    isEmpty = 'PAE判定记录明细的PAE判定不能为空';
                }
            }
            // gzw 20210409 修改参数为空时,表达式判断出错问题
            if (Schema.SObjectType.PAE_DecisionRecordDetail__c.getRecordTypeInfosByDeveloperName().get('intake').getRecordTypeId() == paedRDInfo.paedrdd.RecordTypeId && (containsChineseCharacters(paedRDInfo.paedrdd.PAED_ManagementCode__c) || (String.isNotBlank(paedRDInfo.paedrdd.PAED_ManagementCode__c) && paedRDInfo.paedrdd.PAED_ManagementCode__c.length() > 15))) {
                isEmpty = 'Intake universal code不可以使用汉字,不可以超过15字数。';
                paedRDInfo.paedrdd.PAED_ManagementCode__c.adderror('Intake universal code不可以使用汉字,不可以超过15字数。');
                return true;
            }
        }
        if (String.isNotBlank(isEmpty)) {
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '包含无效数据:' + isEmpty));
            return true;
        }
        return false;
    }
    //更新PAE明细
    public void UpsertPAE_DecisionRecordDetail(Map < Id, PAE_DecisionRecordDetail__c > paedRecordStatusMap, List < PAE_DecisionRecordDetailInfo > paedRecordDetailView, String paedRecordId, Boolean updateStatusFlag, String prevDetermineResults) {
         system.debug('paedRecordStatusMap.size()===============>'+paedRecordStatusMap);
        List < PAE_DecisionRecordDetail__c > upsertPaedrDetailList = new List < PAE_DecisionRecordDetail__c > ();
        String repair_PAED_ManagementCodes = '';
        String repair_PAED_ManagementCodesZ = '';
        String PAE_codez = '';
        String reappear_confirm = null;
        Integer PAED_Reappear_Result_noSelect_num = 0;
        Integer valid_num = 0;
         // 精琢科技   zxk  2021-10-21  start  给PAE判定记录赋值
        List < String > codeNumDataList = new List < String > ();
        for (PAE_DecisionRecordDetailInfo pdrdInFoCode: paedRecordDetailView) {
            String managementCodeStr = pdrdInFoCode.paedrdd.PAED_ManagementCode__c;
            if (String.isBlank(pdrdInFoCode.paedrdd.id) && String.isNotBlank(managementCodeStr)) {
                for (String codeStr: managementCodeStr.split(',')) {
                    if (String.isNotBlank(codeStr)) {
                        codeNumDataList.add(codeStr);
                    }
                }
            }
        }
        Map < String, String > strMapData = updateIsPae(codeNumDataList);
        // 精琢科技   zxk  2021-10-21  end  给PAE判定记录赋值
        System.debug('paedRecordDetailView ++++++++ ' + paedRecordDetailView.size());
        for (PAE_DecisionRecordDetailInfo paedRDInfo: paedRecordDetailView) {
            PAE_DecisionRecordDetail__c paedrd = new PAE_DecisionRecordDetail__c();
            if (paedRDInfo.paedrdd != null) {
                paedrd.PAED_Report__c = ReportId;
                paedrd.PAED_RCAC__c = ASac_ASrc;
                paedrd.PAE_DecisionRecordD__c = paedRecordId;
                paedrd.RecordTypeId = RecordTypeIdD;
                paedrd.PAE_is_save__c = '1'; //20200319 add
                system.debug('paedRecordStatusMap.containsKey(paedRDInfo.paedrdd.Id)===============>'+paedRDInfo.paedrdd.Id);
                if (paedRecordStatusMap != null && paedRecordStatusMap.size() > 0 && paedRecordStatusMap.containsKey(paedRDInfo.paedrdd.Id)) {
                    // Gzw add 20200821 PAE结果变化时,保存接口信息字段 start
                    paedrd.isInterfaceCreate__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).isInterfaceCreate__c;
                    paedrd.LocationGroup__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).LocationGroup__c;
                    paedrd.Location__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).Location__c;
                    paedrd.Phenomenon__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).Phenomenon__c;
                    paedrd.Description__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).Description__c;
                    paedrd.Cause__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).Cause__c;
                    paedrd.EtqPart__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).EtqPart__c;
                    paedrd.EtqAsAnalyzed__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).EtqAsAnalyzed__c;
                    paedrd.EtqCause__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).EtqCause__c;
                    paedrd.FinalUniversalDesc__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).FinalUniversalDesc__c;
                    paedrd.InspectionCategory109__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).InspectionCategory109__c;
                    // Gzw add 20200821 PAE结果变化时,保存接口信息字段 end
                    // Gzw add 20200821 PAE结果变化时,保存RVS005接口信息字段 start
                    paedrd.RVSDetailNo__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).RVSDetailNo__c;
                    paedrd.PhenomenonDesc__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).PhenomenonDesc__c;
                    paedrd.RVS_Date__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).RVS_Date__c;
                    paedrd.RVS_Time__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).RVS_Time__c;
                    paedrd.RVS_Decision_Person__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).RVS_Decision_Person__c;
                    // Gzw add 20200821 PAE结果变化时,保存RVS005接口信息字段 start
                    paedrd.PAED_Affirmant__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).PAED_Affirmant__c;
                    paedrd.PAED_ConfirmationDate__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).PAED_ConfirmationDate__c;
                     // 精琢科技  zxk  为Monitor_PAE__c赋值   start
                    paedrd.Monitor_PAE__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).Monitor_PAE__c;
                    // 精琢科技  zxk  为Monitor_PAE__c赋值   end
                    paedrd = ReproduceResult(paedrd, paedRDInfo);
                    if (CancelineFlag == 3 && paedRDInfo.check && paedRDInfo.paedrdd.PAED_Status__c != '取消') {
                        //有效变成取消
                        paedrd.PAED_ManagementCode__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).PAED_ManagementCode__c;
                        paedrd.PAED_Status__c = '取消';
                        paedrd.PAED_CancellationDate__c = Date.toDay();
                        paedrd.PAED_Nullifier__c = UserInfo.getUserId();
                    } else if (paedRDInfo.paedrdd.PAED_Status__c == '有效') {
                        //有效PAE明细编码
                        paedrd.PAED_Status__c = '有效';
                        paedrd.PAED_ManagementCode__c = paedRDInfo.paedrdd.PAED_ManagementCode__c;
                        if (String.isBlank(repair_PAED_ManagementCodes)) {
                            repair_PAED_ManagementCodes = paedRDInfo.paedrdd.PAED_ManagementCode__c;
                        } else {
                            repair_PAED_ManagementCodes += ',' + paedRDInfo.paedrdd.PAED_ManagementCode__c;
                        }
                        if (paedRDInfo.paedrdd.PAED_Reappear_Result__c == '不再現' && !paedRDInfo.paedrdd.PAED_ManagementCode__c.equals('000')) {
                            // WLIG-BWMB4S gzw start
                            String pmcode = paedRDInfo.paedrdd.PAED_ManagementCode__c.trim();
                            if (pmcode.length() == 3 && (pmcode.endsWith('V') || pmcode.endsWith('W') || pmcode.endsWith('X') || pmcode.endsWith('Y'))) {
                                PAE_codez = pmcode.substring(0, pmcode.length() - 1) + 'Z';
                            } else {
                                PAE_codez = pmcode + 'Z';
                            }
                            // WLIG-BWMB4S gzw end
                            if (String.isBlank(repair_PAED_ManagementCodesZ)) {
                                repair_PAED_ManagementCodesZ = PAE_codez;
                            } else {
                                repair_PAED_ManagementCodesZ += ',' + PAE_codez;
                            }
                        }
                        valid_num++;
                        if (paedrd.PAED_Reappear_Result__c == null) {
                            PAED_Reappear_Result_noSelect_num++;
                        }
                    } else if (paedRDInfo.paedrdd.PAED_Status__c == '取消') {
                        paedrd.PAED_Status__c = '取消';
                        paedrd.PAED_ManagementCode__c = paedRDInfo.paedrdd.PAED_ManagementCode__c;
                        paedrd.PAED_Nullifier__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).PAED_Nullifier__c; //UserInfo.getUserId();
                        paedrd.PAED_CancellationDate__c = paedRecordStatusMap.get(paedRDInfo.paedrdd.Id).PAED_CancellationDate__c; //Date.toDay();
                    }
                } else if ((paedRecordStatusMap != null && paedRecordStatusMap.size() > 0 && !paedRecordStatusMap.containsKey(paedRDInfo.paedrdd.Id)) || paedRecordStatusMap == null) {
                    paedrd = ReproduceResult(paedrd, paedRDInfo);
                    if (paedRDInfo.check && CancelineFlag == 3) {
                        //新增取消PAE判定明细
                        paedrd.PAED_CancellationDate__c = Date.toDay();
                        paedrd.PAED_Nullifier__c = UserInfo.getUserId();
                        paedrd.PAED_Status__c = '取消';
                    } else {
                        paedrd.PAED_Affirmant__c = UserInfo.getUserId();
                        paedrd.PAED_ConfirmationDate__c = Date.toDay();
                        paedrd.PAED_Status__c = paedRDInfo.paedrdd.PAED_Status__c;
                        if (String.isBlank(repair_PAED_ManagementCodes)) {
                            repair_PAED_ManagementCodes = paedRDInfo.paedrdd.PAED_ManagementCode__c;
                        } else {
                            repair_PAED_ManagementCodes += ',' + paedRDInfo.paedrdd.PAED_ManagementCode__c;
                        }
                        //20191217 add
                        if (paedRDInfo.paedrdd.PAED_Reappear_Result__c == '不再現' && !paedRDInfo.paedrdd.PAED_ManagementCode__c.equals('000')) {
                            // WLIG-BWMB4S gzw start
                            String pmcode = paedRDInfo.paedrdd.PAED_ManagementCode__c.trim();
                            if (pmcode.length() == 3 && (pmcode.endsWith('V') || pmcode.endsWith('W') || pmcode.endsWith('X') || pmcode.endsWith('Y'))) {
                                PAE_codez = pmcode.substring(0, pmcode.length() - 1) + 'Z';
                            } else {
                                PAE_codez = pmcode + 'Z';
                            }
                            // WLIG-BWMB4S gzw end
                            if (String.isBlank(repair_PAED_ManagementCodesZ)) {
                                repair_PAED_ManagementCodesZ = PAE_codez;
                            } else {
                                repair_PAED_ManagementCodesZ += ',' + PAE_codez;
                            }
                        }
                        valid_num++;
                        if (paedrd.PAED_Reappear_Result__c == null) {
                            PAED_Reappear_Result_noSelect_num++;
                        }
                    }
                    paedrd.PAED_ManagementCode__c = paedRDInfo.paedrdd.PAED_ManagementCode__c;
                    // 精琢科技   zxk   2021-11-15  为Monitor_PAE__c赋值   start
                    if (String.isBlank(strMapData.get(paedrd.PAED_ManagementCode__c))) {
                        paedrd.Monitor_PAE__c = true;
                    } else {
                        if (strMapData.get(paedrd.PAED_ManagementCode__c) != paedrd.PAE_Judge__c) {
                            paedrd.Monitor_PAE__c = true;
                        }
                    }
                    // 精琢科技   zxk   2021-11-15  为Monitor_PAE__c赋值   end
                    // Gzw add 20200821 PAE结果变化时,保存接口信息字段 start
                    paedrd.isInterfaceCreate__c = paedRDInfo.paedrdd.isInterfaceCreate__c;
                    paedrd.LocationGroup__c = paedRDInfo.paedrdd.LocationGroup__c;
                    paedrd.Location__c = paedRDInfo.paedrdd.Location__c;
                    paedrd.Phenomenon__c = paedRDInfo.paedrdd.Phenomenon__c;
                    paedrd.Description__c = paedRDInfo.paedrdd.Description__c;
                    paedrd.Cause__c = paedRDInfo.paedrdd.Cause__c;
                    // paedrd.PAE_Judge__c = paedRDInfo.paedrdd.PAE_Judge__c;
                    paedrd.EtqPart__c = paedRDInfo.paedrdd.EtqPart__c;
                    paedrd.EtqAsAnalyzed__c = paedRDInfo.paedrdd.EtqAsAnalyzed__c;
                    paedrd.EtqCause__c = paedRDInfo.paedrdd.EtqCause__c;
                    paedrd.FinalUniversalDesc__c = paedRDInfo.paedrdd.FinalUniversalDesc__c;
                    // paedrd.PAED_RCAC__c = paedRDInfo.paedrdd.PAED_RCAC__c;
                    paedrd.InspectionCategory109__c = paedRDInfo.paedrdd.InspectionCategory109__c;
                    // Gzw add 20200821 PAE结果变化时,保存接口信息字段 end
                }
                //20191216 ljh start
                //状态是否改变
                System.debug('+++++++++++++++++++++: ' + updateStatusFlag);
                if (updateStatusFlag) {
                    //改变状态--->复制新的更新需要更新的
                    upsertPaedrDetailList.add(paedrd);
                } else {
                    //更新需要更新的
                    paedrd.Id = paedRDInfo.paedrdd.Id;
                    upsertPaedrDetailList.add(paedrd);
                }
            }
        }
        if (upsertPaedrDetailList.size() > 0) {
            upsert upsertPaedrDetailList;
        }
        System.debug('PAED_Reappear_Result_noSelect_num' + PAED_Reappear_Result_noSelect_num);
        if (PAED_Reappear_Result_noSelect_num > 0) {
            reappear_confirm = '未确认';
        } else if (valid_num > 0 && PAED_Reappear_Result_noSelect_num == 0) {
            reappear_confirm = '已确认';
        }
        AssignValuesOtherObjects(repair_PAED_ManagementCodes, paedRecordId, repair_PAED_ManagementCodesZ, reappear_confirm, prevDetermineResults);
    }
    //为PAE判定和相关的修理赋值
    public void AssignValuesOtherObjects(String stitchingCode, String paedRecordId, String stitchingCodeZ, String reappear_confirm, String prevDetermineResults) {
        if (String.isNotBlank(stitchingCode) && stitchingCode.contains(',')) {
            String[] stitchingCodeArr = stitchingCode.split(',');
            stitchingCodeArr.sort();
            String stitchingCode1 = '';
            for (Integer i = 0; i < stitchingCodeArr.size(); i++) {
                if (i < (stitchingCodeArr.size() - 1)) {
                    stitchingCode1 += stitchingCodeArr[i] + ',';
                } else {
                    stitchingCode1 += stitchingCodeArr[i] + '';
                }
            }
            stitchingCode = stitchingCode1;
        }
        //报告书相关
        if (!string.isBlank(ReportId)) {
            Report__c Report = [select id, PAE_DetermineAC__c, PAE_Determine__c, PAE_codez__c, PAE_temp_final_code__c, PAE_reappear_confirm__c,
                PAE_intakePrevDetermineResults__c, PAE_finalPrevDetermineResults__c, Repair_Authenticator__c, OCSM_RC_CordingUser__c
                from Report__c where id = : ReportId
            ];
            List < PAE_DecisionRecord__c > rdRecordList = [SELECT Id, Name, PAE_DetermineResults__c, PAE_DetermineResults_Text__c, PAE_ConfirmationDate__c,
                PAE_Authenticator__c
                FROM PAE_DecisionRecord__c where Id = : paedRecordId
            ];
            PAE_DecisionRecord__c paedRecord = new PAE_DecisionRecord__c();
            paedRecord.Id = paedRecordId;
            if (ASac_ASrc == 'Intake') {
                paedRecord.PAE_reappear_confirm__c = reappear_confirm;
                Report.PAE_reappear_confirm__c = reappear_confirm;
            } else {
                paedRecord.PAE_reappear_confirm__c = Report.PAE_reappear_confirm__c;
            }
            if (rdRecordList[0].PAE_ConfirmationDate__c == null) {
                paedRecord.Id = paedRecordId;
                paedRecord.PAE_ConfirmationDate__c = Date.toDay();
                paedRecord.PAE_Authenticator__c = UserInfo.getUserId();
            }
            if (paedRecord != null) {
                update paedRecord;
            }
            List < Report__c > repList;
            if (ASac_ASrc == 'Intake') {
                repList = [select Id, Name, RC_PAED__c, AC_PAED__c from Report__c where RC_PAED__c = : paedRecordId];
                if (repList.size() == 0) {
                    if (String.isBlank(Report.Repair_Authenticator__c)) {
                        Report.Repair_ConfirmationDate__c = Date.toDay();
                        Report.Repair_Authenticator__c = UserInfo.getName();
                    }
                    Report.RC_PAED__c = paedRecordId;
                } else {
                    if (String.isBlank(Report.Repair_Authenticator__c)) {
                        Report.Repair_ConfirmationDate__c = rdRecord.PAE_ConfirmationDate__c;
                        Report.Repair_Authenticator__c = rdRecord.PAE_Authenticator__c;
                    }
                    Report.RC_PAED__c = paedRecordId;
                }
            } else {
                repList = [select Id, Name, RC_PAED__c, AC_PAED__c from Report__c where AC_PAED__c = : paedRecordId];
                if (repList.size() == 0) {
                    if (String.isBlank(Report.OCSM_RC_CordingUser__c)) {
                        Report.OCSM_RC_CordingDate__c = Date.toDay();
                        Report.OCSM_RC_CordingUser__c = UserInfo.getName();
                    }
                    Report.AC_PAED__c = paedRecordId;
                } else {
                    if (String.isBlank(Report.OCSM_RC_CordingUser__c)) {
                        Report.OCSM_RC_CordingDate__c = rdRecord.PAE_ConfirmationDate__c;
                        Report.OCSM_RC_CordingUser__c = rdRecord.PAE_Authenticator__c;
                    }
                    Report.AC_PAED__c = paedRecordId;
                }
            }
            if (String.isNotBlank(stitchingCode)) {
                if (ASac_ASrc == 'Intake') {
                    Report.ASReportedCode__c = stitchingCode;
                    // 2020/08/04 taoqz modify
                    Report.PAE_Determine__c = rdRecord.PAE_DetermineResults_Text__c;
                    Report.PAE_intakePrevDetermineResults__c = prevDetermineResults;
                    //如果有不在现 则更新repair.ASReportedCodeAC__c
                    if (String.isNotBlank(stitchingCodeZ)) {
                        if (String.isNotBlank(Report.PAE_temp_final_code__c)) {
                            Report.ASReportedCodeAC__c = Report.PAE_temp_final_code__c + ',' + stitchingCodeZ;
                        } else {
                            Report.ASReportedCodeAC__c = stitchingCodeZ;
                        }
                        Report.PAE_codez__c = stitchingCodeZ;
                    } else {
                        //202003224 add 如果没有有不在现 则更新repair.ASReportedCodeAC__c
                        Report.ASReportedCodeAC__c = Report.PAE_temp_final_code__c;
                        Report.PAE_codez__c = stitchingCodeZ;
                    }
                } else {
                    if (String.isNotBlank(Report.PAE_codez__c)) {
                        Report.ASReportedCodeAC__c = stitchingCode + ',' + Report.PAE_codez__c;
                    } else {
                        Report.ASReportedCodeAC__c = stitchingCode;
                    }
                    Report.PAE_temp_final_code__c = stitchingCode;
                    // 2020/08/04 taoqz modify
                    Report.PAE_DetermineAC__c = rdRecord.PAE_DetermineResults_Text__c;
                    Report.PAE_finalPrevDetermineResults__c = prevDetermineResults;
                }
            } else {
                if (ASac_ASrc == 'Intake') {
                    Report.ASReportedCode__c = stitchingCode;
                    Report.PAE_codez__c = stitchingCodeZ;
                    Report.ASReportedCodeAC__c = Report.PAE_temp_final_code__c;
                    // 2020/08/04 taoqz modify
                    Report.PAE_Determine__c = rdRecord.PAE_DetermineResults_Text__c;
                    Report.PAE_intakePrevDetermineResults__c = prevDetermineResults;
                } else {
                    Report.ASReportedCodeAC__c = stitchingCode;
                    Report.PAE_temp_final_code__c = stitchingCode;
                    // 2020/08/04 taoqz modify
                    Report.PAE_DetermineAC__c = rdRecord.PAE_DetermineResults_Text__c;
                    Report.PAE_finalPrevDetermineResults__c = prevDetermineResults;
                    Report.OCSM_RC_CordingDate__c = null;
                    Report.OCSM_RC_CordingUser__c = null;
                }
            }
            update Report;
        }
    }
    //20191209 ljh 新字段添加 start
    public static PAE_DecisionRecordDetail__c ReproduceResult(PAE_DecisionRecordDetail__c paedrd, PAE_DecisionRecordDetailInfo paedRDInfo) {
        paedrd.PAE_Judge__c = paedRDInfo.paedrdd.PAE_Judge__c;
        // 20201126 gzw 获取RVS005接口信息数据 start
        paedrd.RVSDetailNo__c = paedRDInfo.paedrdd.RVSDetailNo__c;
        paedrd.LocationGroup__c = paedRDInfo.paedrdd.LocationGroup__c;
        paedrd.Location__c = paedRDInfo.paedrdd.Location__c;
        paedrd.PhenomenonDesc__c = paedRDInfo.paedrdd.PhenomenonDesc__c;
        paedrd.RVS_Date__c = paedRDInfo.paedrdd.RVS_Date__c;
        paedrd.RVS_Time__c = paedRDInfo.paedrdd.RVS_Time__c;
        paedrd.RVS_Decision_Person__c = paedRDInfo.paedrdd.RVS_Decision_Person__c;
        // 20201126 gzw 获取RVS005接口信息数据 end
        if (paedRDInfo.paedrdd.PAED_Reappear_Result__c == '不再現') {
            paedrd.PAED_Reappear_Result__c = '不再現';
            paedrd.PAED_ResultAffirmant__c = UserInfo.getUserId();
            paedrd.PAED_ResultConfirmationDate__c = Date.toDay();
        } else {
            paedrd.PAED_Reappear_Result__c = paedRDInfo.paedrdd.PAED_Reappear_Result__c;
            paedrd.PAED_ResultAffirmant__c = null;
            paedrd.PAED_ResultConfirmationDate__c = null;
        }
        return paedrd;
    }
    // 正则表达式 判断是否包含汉字
    // gzw 20210409 修改参数为空时,表达式判断出错问题
    public static Boolean containsChineseCharacters(String InputString) {
        if (String.isNotblank(InputString)) {
            Pattern p = Pattern.compile('\\p{IsHan}');
            Matcher m = p.matcher(InputString);
            return m.find();
        } else {
            return false;
        }
    }
    // 精琢科技   zxk  2021-10-21  start  给PAE判定记录赋值
    public Map < String, String > updateIsPae(List < String > codeNumDataList) {
        Map < String, String > paeStrMap = new Map < String, String > ();
        String sql = 'select RSS_CODE__C, IS_INTAKE_ESTIMATION__C, IS_PAE__c, IS_INACTIVE__C FROM RSA_master_data__c  WHERE RSS_CODE__C in: codeNumDataList AND IS_INACTIVE__C = \'No\'';
        if ('ASRCDecision' == RecordTypeName) {
            sql += ' AND IS_INTAKE_ESTIMATION__C like \'%Intake%\'';
        }
        if ('ASACDecision' == RecordTypeName) {
            sql += ' AND IS_INTAKE_ESTIMATION__C like \'%Estimation%\'';
        }
        List < RSA_master_data__c > rsaMasterDataSqlList = DataBase.query(sql);
        String result = null;
        for (RSA_master_data__c rsaMaster: rsaMasterDataSqlList) {
            if ('ASRCDecision' == RecordTypeName) {
                if (rsaMaster.IS_PAE__c == 'YES') {
                    result = 'PAE';
                }
                if (rsaMaster.IS_PAE__c == 'No') {
                    result = 'nonPAE';
                }
                if (rsaMaster.IS_PAE__c == 'Unknown') {
                    result = 'Unknown';
                }
            }
            if ('ASACDecision' == RecordTypeName) {
                if (rsaMaster.IS_PAE__c == 'YES') {
                    result = 'PAE';
                }
                if (rsaMaster.IS_PAE__c == 'No') {
                    result = 'nonPAE';
                }
                if (rsaMaster.IS_PAE__c == 'Unknown') {
                    result = 'Unknown';
                }
            }
            paeStrMap.put(rsaMaster.RSS_CODE__C, result);
        }
        return paeStrMap;
    }
    // 精琢科技   zxk  2021-10-21  start  给PAE判定记录赋值
    //20191209 ljh 新字段添加 end
    class PAE_DecisionRecordDetailInfo {
         public Boolean check {
            get;
            set;
        }
        public Boolean oldCheck {
            get;
            set;
        }
        public Boolean canSelect {
            get;
            set;
        }
        public String strJudge {
            get;
            set;
        }
        public Boolean monitorPAE {
            get;
            set;
        }
        public PAE_DecisionRecordDetail__c paedrdd {
            get;
            set;
        }
        public PAE_DecisionRecordDetailInfo() {
            paedrdd = new PAE_DecisionRecordDetail__c();
            check = false;
            oldCheck = false;
            canSelect = false;
        }
        public PAE_DecisionRecordDetailInfo(PAE_DecisionRecordDetail__c paedrd) {
            check = false;
            oldCheck = false;
            paedrdd = paedrd;
            if (String.isNotBlank(paedrd.Id)) {
                monitorPAE = paedrd.Monitor_PAE__c;
            }
            strJudge = paedrd.PAE_Judge__c;
            //IISE来的明细允许删除。
            canSelect = false;
        }
    }
}
force-app/main/default/pages/RepPAEDecisionRecord.page
New file
@@ -0,0 +1,402 @@
<apex:page standardController="PAE_DecisionRecord__c" extensions="RepPAEDecisionRecordController" showHeader="false" sidebar="false" id="allPage" action="{!init}" title="PAE判定记录" lightningStylesheets="true">
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
<apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
<style  type="text/css">.bPageBlock .pbTitle{width:100%;text-align:center;}</style>
<script>
//插入行
function InsertRows(){
    //解除不可写状态
    blockme();
    InsertRow();
}
// 保存并关闭
function SaveAndCloses(onlySave){
   //  精琢科技   zxk   2021-11-17    start
            var productCount = "{!paedRecordDetailView}";
            //新值
            var PAEJudgeIdStr = '';
            //旧值
            var strJudgejsIdStr = '';
            var falsg = 0;
            //  + ':PAEJudge'
            for (var i = 0; i < productCount.length; i++) {
                var PAEJudgeId = 'allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':PAEJudge';
                var strJudgejsId = 'allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':strJudgejs';
                PAEJudgeIdStr = j$(escapeVfId(PAEJudgeId)).value();
                strJudgejsIdStr = j$(escapeVfId(strJudgejsId)).value();
                if (PAEJudgeIdStr != '' && PAEJudgeIdStr != strJudgejsIdStr) {
                    falsg = 1;
                    break;
                }
            }
            if (falsg == 1) {
                if (confirm('存在未知或者修改过PAE判定的code  确认保存?')) {
                    blockme();
                    SaveAndClose(onlySave);
                }
            } else {
                blockme();
                SaveAndClose(onlySave);
            }
            //  精琢科技   zxk   2021-11-17    end
        }
//20200107
function toIntake(){
    blockme();
    toIntake();
}
//20191209 ljh
function InsertMoreRowsJs(productIdx){
    blockme();
    InsertMoreRows(productIdx);
}
var selectedSize = 0;
var pageLimit = {!pageLimit};
function CheckSize(j){
    var a = j.id;
    var productCount = j$(escapeVfId(a)).attr('checked');
    if (productCount == 'checked') {
        if(selectedSize >= pageLimit){
            window.alert("页面所选数据不能超过500条");
            j$(escapeVfId(a)).attr('checked',false);
            return;
        }
        selectedSize ++;
    } else {
        selectedSize --;
    }
    //alert(selectedSize);
}
// 2021-12-08  zxk   精琢科技  手动赋值逻辑  start
        function checkBoxTf() {
            // alert(lineNumberStr);
            var productCountStr = "{!paedRecordDetailView}";
            var PAEJudgeIdStr = '';
            var strJudgejsIdStr = '';
            var PaeIsSaveIdStr = '';
            var  MonitorPAE = '';
            var falsg = 0;
            for (var i = 0; i < productCountStr.length; i++) {
                var PAEJudgeId = 'allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':PAEJudge';
                var strJudgejsId = 'allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':strJudgejs';
                var PaeIsSaveId = 'allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':PaeIsSave';
                var MonitorPAEId = 'allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':MonitorPAE';
                PAEJudgeIdStr = j$(escapeVfId(PAEJudgeId)).value();
                strJudgejsIdStr = j$(escapeVfId(strJudgejsId)).value();
                PaeIsSaveIdStr = j$(escapeVfId(PaeIsSaveId)).value();
                MonitorPAE = j$(escapeVfId(MonitorPAEId)).value();
                 if(PaeIsSaveIdStr != '1'){
                        if (strJudgejsIdStr != PAEJudgeIdStr || (strJudgejsIdStr == '' || strJudgejsIdStr == null)) {
                           j$(escapeVfId('allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':MonitorPAE')).attr('checked',true);
                        }else{
                           j$(escapeVfId('allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':MonitorPAE')).attr('checked',false);
                        }
                }
            }
        }
        // 2021-12-08  zxk   精琢科技  手动赋值逻辑  end
function checkAll() {
    selectedSize = 0;
    var productCount = "{!paedRecordDetailViewCount}";
    if (j$(escapeVfId('checker')).attr('checked') == 'checked') {
        for (var i = 0; i < productCount; i++) {
            var checkId = 'allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':variableinfo' + ':consumablesCountproRowCheckbox';
            if (!j$(escapeVfId(checkId)).attr('disabled')){
                j$(escapeVfId(checkId)).attr('checked',true);
                selectedSize ++;
            }
        }
    } else {
        for (var i = 0; i < productCount; i++) {
            j$(escapeVfId('allPage:allForm:allBlock:unEditable:ConsumableorderdetailsTable:' + i + ':variableinfo' + ':consumablesCountproRowCheckbox')).attr('checked',false);
        }
    }
}
</script>
<style>
    .dateFormat  {
        display: none;
    }
    td.columuslowercolour {
        background-color:red;
        text-align: right;
    }
    td.columuscuperolour {
        background-color: yellow;
        text-align: right;
    }
</style>
    <apex:form id="allForm">
        <apex:actionFunction name="InsertRow" action="{!InsertRow}" rerender="unEditable" onComplete="unblockUI();" >
        </apex:actionFunction>
        <apex:actionFunction name="InsertMoreRows" action="{!InsertMoreRows}" rerender="unEditable,message" onComplete="unblockUI();" >
            <!-- // 2021-12-08  zxk   精琢科技  手动赋值逻辑  start -->
            <apex:param assignto="{!productIdx}" name="productIdx" value="">
            </apex:param>
        <!-- // 2021-12-08  zxk   精琢科技  手动赋值逻辑  end -->
        </apex:actionFunction>
        <apex:actionFunction name="SaveAndClose" action="{!SaveAndClose}" rerender="unEditable,message" onComplete="unblockUI();" >
            <apex:param name="firstParam" assignTo="{!CancelineFlag}" value="" />
        </apex:actionFunction>
        <apex:actionFunction name="toIntake" action="{!toIntake}" rerender="unEditable" onComplete="unblockUI();" >
        </apex:actionFunction>
        <apex:actionFunction name="ReturnReportInterface" action="{!ReturnReportInterface}" rerender="unEditable" onComplete="unblockUI();" >
        </apex:actionFunction>
        <apex:outputPanel id="allPanel">
            <apex:pageBlock id="allBlock" >
                <apex:pageBlock title="{!IF(RecordTypeName = 'ASRCDecision' , 'Intake universal code 编辑画面', 'Final universal code 编辑画面')}" id="unEditable" rendered="{!editAble}">
                     <table cellspacing="10">
                        <colgroup>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="5%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                            <col width="15%"/>
                            <col width="15%"/>
                            </apex:outputPanel>
                        </colgroup>
                        <tr>
                            <td align="left" ><apex:outputText id="OrderCode_out"  value="{!$Label.PAE}" /></td>
                            <!-- 2020/07/28 taoqz start -->
                            <!-- PAE判定结果 由选项列表改为经过工作流更新后的文本 -->
                            <td align="left" ><apex:inputField id="OrderStatus_out" value="{!rdRecord.PAEDetail_DetermineResults__c}"/></td>
                            <!-- 2020/07/28 taoqz end -->
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <!-- <th>AS-RC</th> -->
                                <td ><span> {!$ObjectType.Report__c.fields.Repair_ConfirmationDate__c.label}:</span></td>
                            </apex:outputPanel>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <td align="right"> {!$ObjectType.Report__c.fields.OCSM_RC_CordingDate__c.label}:</td>
                            </apex:outputPanel>
                            <td align="left" ><apex:outputField value="{!rdRecord.PAE_ConfirmationDate__c}"/></td>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <!-- <th>AS-RC</th> -->
                                <td align="right" > {!$ObjectType.Report__c.fields.Repair_Authenticator__c.label}:</td>
                            </apex:outputPanel>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <!-- <th>AS-AC</th> -->
                                <td align="right" >{!$ObjectType.Report__c.fields.OCSM_RC_CordingUser__c.label}:</td>
                            </apex:outputPanel>
                            <td align="left" ><apex:outputField value="{!rdRecord.PAE_Authenticator__c}"/></td>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <td align="right" >再现结果确认:</td>
                                <td align="left" style="{!IF(rdRecord.PAE_reappear_confirm__c = '未确认' , 'color: red;font-weight: 800;', '')}" ><apex:outputField value="{!rdRecord.PAE_reappear_confirm__c}"/></td>
                                 <input type="button" value="Intake universal code 编辑
" style="margin-left:30px;float:right;{!IF(rdRecord.PAE_reappear_confirm__c = '未确认','color: red;','')}"  onclick="toIntake();return false;"  class="btn" />
                            </apex:outputPanel>
                        </tr>
                    </table>
                    <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认',false , true)}">
                    <table style="width:100%; {!IF(RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认', 'display: none;', '')}" >
                        <tr>
                            <td>
                            <apex:commandButton value="关闭"  style="margin-left:30px;width:80px;float:right"  onclick="ReturnReportInterface();return false;"  rerender="unEditable,message" oncomplete="unblockUI();"/>
                            <apex:commandButton value="保存"  disabled="{!IF((editFlag) && savebuton == false && !(RecordTypeName='ASRCDecision'&&OCSM_QARA='1'),true,false)}" style="margin-left:30px;width:80px;float:right"  onclick="SaveAndCloses(1);return false;"  rerender="unEditable,message" oncomplete="unblockUI();"/>
                            <apex:commandButton value="保存并关闭" disabled="{!editFlag}"  rendered="{!IF(repa != null && RecordTypeName = 'ASACDecision',true,false)}" style="margin-left:30px;width:80px;float:right"  onclick="SaveAndCloses(2);return false;"  rerender="unEditable,message" oncomplete="unblockUI();" />
                            <!-- OCSM QARA screen  [确定并关闭] -->
                            <!-- update by rentx 2020-10-26 start -->
                            <apex:commandButton rendered="{!IF((OCSM_QARA == '1' && RecordTypeName = 'ASRCDecision' && repa != null) || (RecordTypeName = 'ASRCDecision' && ReportId != null),true,false)}" value="确定并关闭"  disabled="{!editFlag}" style="margin-left:30px;width:100px;float:right"  onclick="SaveAndCloses(2);return false;"  rerender="unEditable,message" oncomplete="unblockUI();" />
                            <!-- update by rentx 2020-10-26 start -->
                            <apex:commandButton value="插入行" disabled="{!IF((RecordTypeName = 'ASRCDecision' && OCSM_QARA = '0') && ((RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag)),true,false)}" style="margin-left:30px;width:100px;float:right" onclick="InsertRows();return false;" rerender="unEditable,message" oncomplete="unblockUI();"/>
                            <apex:commandButton value="取消行" disabled="{!IF((RecordTypeName = 'ASRCDecision' && OCSM_QARA = '0') && ((RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag)),true,false)}" style="margin-left:30px;width:100px;float:right" onclick="SaveAndCloses(3);return false;"  rerender="unEditable,message" oncomplete="unblockUI();"/>
                            <!-- update by rentx 2020-10-26 end -->
                            </td>
                        </tr>
                    </table>
                    </apex:outputPanel>
                    <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认',true , false)}">
                    <p style="text-align: center;padding-bottom: 10px;width:100%;font-weight: 800;">再现结果未确认,请点击Intake universal code 编辑 按钮前去确认</p>
                    </apex:outputPanel>
                        <apex:outputPanel id="message">
                            <apex:pageMessages />
                        </apex:outputPanel>
                    <table class="list" border="0" cellpadding="0" cellspacing="0">
                        <tr class="headerRow">
                            <apex:variable var="v" value="" rendered="{!editAble}">
                                <th><input type='checkbox' onClick='checkAll()' id='checker'/>选择</th>
                            </apex:variable>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <th>Location Group </th>
                                <th>Location </th>
                                <th>Final universal description / Phenomenon </th>
                            </apex:outputPanel>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <th>Intake universal description</th>
                            </apex:outputPanel>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <th>Intake universal code</th>
                            </apex:outputPanel>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <th>Final universal code </th>
                            </apex:outputPanel>
                            <!-- <th>AS-RC</th> -->
                            <!-- <th width="7%">PAE判定</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAE_Judge__c.label}</th>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                            <!-- <th width="7%">再现結果</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAED_Reappear_Result__c.label}</th>
                            <!-- <th width="15%">intake 页面 Final universal Code</th> -->
                            <th width="15%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.Final_universal_code__c.label}</th>
                            </apex:outputPanel>
                            <!-- <th width="7%">状态</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAED_Status__c.label}</th>
                            <!-- <th width="7%">确认日</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAED_ConfirmationDate__c.label}</th>
                            <!-- <th width="7%">确认者</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAED_Affirmant__c.label}</th>
                            <!-- <th width="7%">取消日</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAED_CancellationDate__c.label}</th>
                            <!-- <th width="7%">取消者</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAED_Nullifier__c.label}</th>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                            <!-- <th width="7%">不再現結果確認日</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAED_ResultConfirmationDate__c.label}</th>
                            <!-- <th width="7%">不再現結果確認者</th> -->
                            <th width="7%">{!$ObjectType.PAE_DecisionRecordDetail__c.fields.PAED_ResultAffirmant__c.label}</th>
                            </apex:outputPanel>
                            <!-- <th width="7%">手动修改</th> -->
                            <th width="7%">
                                {!$ObjectType.PAE_DecisionRecordDetail__c.fields.Monitor_PAE__c.label}
                            </th>
                        </tr>
                        <apex:repeat value="{!paedRecordDetailView}" var="paedRdV" id="ConsumableorderdetailsTable">
                            <tr class="dataRow">
                                <!-- //复选框 -->
                                <apex:variable var="v" value="" rendered="{!editAble}" id="variableinfo">
                                    <td>
                                        <apex:inputCheckbox value="{!paedRdV.check}" onclick="CheckSize(this);" id="consumablesCountproRowCheckbox" disabled="{!paedRdV.canSelect}"/>
                                            <apex:inputCheckbox value="{!paedRdV.oldCheck}" id="proRowOldCheckbox" style="display:none"/>
                                        <apex:inputCheckbox id="isReadOnly" value="{!paedRdV.canSelect}" style="display:none" />
                                    </td>
                                 </apex:variable>
                                <!-- QIS read only; always blank-->
                                <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' && repa != null , true, false)}">
                                    <td class="dataCell"></td>
                                </apex:outputPanel>
                                <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' && repa != null, true, false)}">
                                    <td class="dataCell"></td>
                                    <td class="dataCell"></td>
                                    <td class="dataCell"></td>
                                </apex:outputPanel>
                                <td class="dataCell">
                                    <apex:outputPanel layout="none" rendered="{!IF(paedRdV.paedrdd.PAE_is_save__c !='1' || paedRdV.paedrdd.isedit__c = true, true,false)}">
                                        <apex:outputPanel layout="none" rendered="{!IF((RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认')||(OCSM_QARA='0' &&RecordTypeName = 'ASRCDecision'), false, true)}">
                                        <apex:InputField id="PAEDManagementCode" value="{!paedRdV.paedrdd.PAED_ManagementCode__c}" onblur="InsertMoreRowsJs(this.value);return false;"/>
                                        </apex:outputPanel>
                                    </apex:outputPanel>
                                    <apex:outputPanel layout="none" rendered="{!IF(!(paedRdV.paedrdd.PAE_is_save__c !='1' || paedRdV.paedrdd.isedit__c = true),true , false)}">
                                        <apex:outputField value="{!paedRdV.paedrdd.PAED_ManagementCode__c}" />
                                    </apex:outputPanel>
                                </td>
                                <td class="dataCell">
                                 <apex:outputPanel layout="none" rendered="{!IF(paedRdV.paedrdd.PAE_is_save__c ='1',false, true)}">
                                    <apex:outputPanel layout="none" rendered="{!IF((RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认')||(OCSM_QARA='0'&&RecordTypeName = 'ASRCDecision'), false, true)}">
                                        <apex:InputField id="PAEJudge" onchange="checkBoxTf();" value="{!paedRdV.paedrdd.PAE_Judge__c}"/>
                                    </apex:outputPanel>
                                    </apex:outputPanel>
                                        <apex:outputPanel layout="none" rendered="{!IF(paedRdV.paedrdd.PAE_is_save__c ='1',true , false)}">
                                        <apex:outputField id="PAEJudge1" value="{!paedRdV.paedrdd.PAE_Judge__c}"/>
                                    </apex:outputPanel>
                                     <!-- // 2021-12-08  zxk   精琢科技  手动赋值逻辑  start -->
                                    <apex:inputhidden id="strJudgejs" value="{!paedRdV.strJudge}">
                                    </apex:inputhidden>
                                    <apex:inputhidden id="Monitor_PAE__c" value="{!paedRdV.paedrdd.Monitor_PAE__c}">
                                    </apex:inputhidden>
                                    <apex:inputhidden id="PaeIsSave" value="{!paedRdV.paedrdd.PAE_is_save__c }">
                                    </apex:inputhidden>
                                    <!-- // 2021-12-08  zxk   精琢科技  手动赋值逻辑  end -->
                                </td>
                                <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <td class="dataCell">
                                    <apex:outputPanel layout="none" rendered="{!IF(OCSM_Cording != '1', true, false)}">
                                    <apex:outputField value="{!paedRdV.paedrdd.PAED_Reappear_Result__c}"/>
                                    </apex:outputPanel>
                                    <apex:outputPanel layout="none" rendered="{!IF(OCSM_Cording='1', true, false)}">
                                    <apex:InputField value="{!paedRdV.paedrdd.PAED_Reappear_Result__c}"/>
                                    </apex:outputPanel>
                                </td>
                                <td class="dataCell">
                                    <apex:outputField value="{!paedRdV.paedrdd.Final_universal_code__c}"/>
                                </td>
                                </apex:outputPanel>
                                <td class="dataCell">
                                    <apex:OutputField value="{!paedRdV.paedrdd.PAED_Status__c}"/>
                                </td>
                                <td class="dataCell">
                                    <!-- Gzw 20200826 修改 Final 信息没有时,显示修理上内容 -->
                                    <apex:OutputField value="{!paedRdV.paedrdd.PAED_ConfirmationDate_F__c}"/>
                                </td>
                                <td class="dataCell">
                                    <apex:OutputField value="{!paedRdV.paedrdd.PAED_Affirmant_F__c}"/>
                                </td>
                                <td class="dataCell">
                                    <apex:OutputField value="{!paedRdV.paedrdd.PAED_CancellationDate__c}" rendered="{!IF(paedRdV.paedrdd.PAED_CancellationDate__c != null, true, false)}"/>
                                </td>
                                <td class="dataCell">
                                    <apex:OutputField value="{!paedRdV.paedrdd.PAED_Nullifier__r.Name}"/>
                                </td>
                                <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <td class="dataCell">
                                    <apex:OutputField value="{!paedRdV.paedrdd.PAED_ResultConfirmationDate__c}"/>
                                </td>
                                <td class="dataCell">
                                    <apex:OutputField value="{!paedRdV.paedrdd.PAED_ResultAffirmant_new__c}"/>
                                </td>
                                </apex:outputPanel>
                                <!-- // 2021-12-08  zxk   精琢科技  手动赋值逻辑  start -->
                                    <td class="dataCell">
                                        <apex:inputcheckbox id="MonitorPAE" value="{!paedRdV.monitorPAE}" disabled="true">
                                        </apex:inputcheckbox>
                                        <apex:inputhidden id="MonitorPAEhidden" value="{!paedRdV.monitorPAE}">
                                        </apex:inputhidden>
                                    </td>
                                    <!-- // 2021-12-08  zxk   精琢科技  手动赋值逻辑  end -->
                            </tr>
                        </apex:repeat>
                    </table>
                </apex:pageBlock>
            </apex:pageBlock>
        </apex:outputPanel>
    </apex:form>
</apex:page>
force-app/main/default/pages/RepPAEDecisionRecord.page-meta.xml
New file
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexPage xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>52.0</apiVersion>
    <availableInTouch>false</availableInTouch>
    <confirmationTokenRequired>false</confirmationTokenRequired>
    <label>RepPAEDecisionRecord</label>
</ApexPage>