| New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |