public with sharing class ReportController { @AuraEnabled public static InitData initForVOCFinishButton (String recordId) { InitData res = new initData(); try { Report__c report = [select Status__c from Report__c where Id = :recordId]; res.status = report.Status__c; res.profileId = UserInfo.getProfileId(); System.debug(LoggingLevel.INFO, '*** res: ' + res); } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForVOCCheckButton (String recordId) { InitData res = new initData(); try { Report__c report = [select Status__c,IsVOC__c,Responsible_Person__r.Id from Report__c where Id = :recordId]; res.status = report.Status__c; res.isVOC = report.IsVOC__c; res.personId = report.Responsible_Person__r.Id; res.profileId = UserInfo.getProfileId(); System.debug(LoggingLevel.INFO, '*** res: ' + res); } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static Initdata initForVOCSubmitButton(String recordId){ InitData res = new InitData(); try { Report__c report = [select Status__c,Owner.Id,CreatedBy.Id from Report__c where Id = :recordId]; res.status = report.Status__c; res.ownerId = report.Owner.Id; res.createdById = report.CreatedBy.Id; System.debug(LoggingLevel.INFO, '*** res: ' + res); } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static Initdata initForVOCAnswerButton(String recordId){ InitData res = new InitData(); try { Report__c report = [select Status__c from Report__c where Id = :recordId]; res.status = report.Status__c; System.debug(LoggingLevel.INFO, '*** res: ' + res); } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForVOCConfirmButton (String recordId) { InitData res = new initData(); try { Report__c report = [select Status__c,VOC_Satisfy__c,VOC_Satisfy1__c from Report__c where Id = :recordId]; res.status = report.Status__c; res.Satisfy = report.VOC_Satisfy__c; res.Satisfy1 = report.VOC_Satisfy1__c; System.debug(LoggingLevel.INFO, '*** res: ' + res); } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForCancelButton(String recordId){ InitData res = new InitData(); try { Report__c report = [select Status__c from Report__c where Id = :recordId]; res.status = report.Status__c; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForOCSMNoToReportButton(String recordId){ InitData res = new InitData(); try { Report__c report = [select OCSMAdministrativeReportNumber__c,OCSMAdministrativeReportDate__c,Aware_date__c from Report__c where Id = :recordId]; res.OCSMAdministrativeReportDate = report.OCSMAdministrativeReportDate__c; res.OCSMAdministrativeReportNumber = report.OCSMAdministrativeReportNumber__c; res.awareDate = report.Aware_date__c; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForSIStoOPDButton(String recordId){ InitData res = new InitData(); try { Report__c report = [select Status__c,Owner.Id from Report__c where Id = :recordId]; res.status = report.Status__c; res.ownerId = report.Owner.Id; res.userId = UserInfo.getUserId(); } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForOCSMToReportButton(String recordId){ InitData res = new InitData(); try { Report__c report = [select OCSMAdministrativeReportStatus__c,AwareDate__C from Report__c where Id = :recordId]; res.OCSMAdministrativeReportStatus = report.OCSMAdministrativeReportStatus__c; res.awareDate = report.AwareDate__C; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForCompleteButton(String recordId){ InitData res = new InitData(); try { Report__c report = [select Status__c from Report__c where Id = :recordId]; res.status = report.Status__c; res.profileId = UserInfo.getProfileId(); } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForASRCEditorButton(String recordId){ InitData res = new InitData(); String recordTypeId = 'ASRCDecision'; try { PAE_DecisionRecord__c[] report = [SELECT LastModifiedDate, Id, Name, LastModifiedById,RecordType.DeveloperName FROM PAE_DecisionRecord__c where PAE_Report__c = :recordId And RecordType.DeveloperName = :recordTypeId Order by LastModifiedDate desc]; if (report != null && !report.isEmpty()) { res.LastModifiedDate = report[0].LastModifiedDate; res.Id = report[0].Id; res.Name = report[0].Name; res.LastModifiedById = report[0].LastModifiedById; res.DeveloperName = report[0].RecordType.DeveloperName; } } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForASACEditorButton(String recordId){ InitData res = new InitData(); String recordTypeId = 'ASACDecision'; try { PAE_DecisionRecord__c[] report = [SELECT LastModifiedDate, Id, Name, LastModifiedById,RecordType.DeveloperName FROM PAE_DecisionRecord__c where PAE_Report__c = :recordId And RecordType.DeveloperName = :recordTypeId Order by LastModifiedDate desc]; if (report != null && !report.isEmpty()) { res.LastModifiedDate = report[0].LastModifiedDate; res.Id = report[0].Id; res.Name = report[0].Name; res.LastModifiedById = report[0].LastModifiedById; res.DeveloperName = report[0].RecordType.DeveloperName; } } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForOPDtoSISButton(String recordId){ InitData res = new InitData(); try { Report__c report = [select Status__c,Owner.Id from Report__C where Id = :recordId]; res.status = report.Status__c; res.ownerId = report.Owner.Id; res.userId = UserInfo.getUserId(); } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } return res; } @AuraEnabled public static InitData initForSubmitCompetitorReportButton(String recordId){ InitData res = null; try { res = new InitData(); } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } return res; } @AuraEnabled public static void updateForSubmitButton(String reocrdId){ try { Report__c rac = new Report__c(); rac.Id = reocrdId; rac.Status__c = '提交'; rac.Submit_time__c = Datetime.now(); rac.Submit_report_day__c = Date.today(); update rac; } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } @AuraEnabled public static void updateForOPDtoSISButton(String recordId){ try { Report__c rac = new Report__c(); rac.Id = recordId; rac.RecordTypeId = '01210000000RLTi'; update rac; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } @AuraEnabled public static void updateForCancelSubmitReportButton(String recordId){ try { Report__c rac = new Report__c(); rac.Id = recordId; rac.Status__c = '草案中'; rac.Submit_report_day__c = null; rac.Submit_time__c = null; update rac; } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } @AuraEnabled public static void updateForCompleteButton(String recordId){ Report__c rac = new Report__c(); try { rac.Id = recordId; rac.Status__c = '完毕'; rac.RecordTypeId = '01210000000Qeky'; update rac; } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } @AuraEnabled public static void updateForOCSMToReportButton(String recordId){ try { Report__c rac = new Report__c(); rac.Id = recordId; rac.OCSMAdministrativeReportStatus__c = '待报告'; update rac; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } @AuraEnabled public static void updateForSIStoOPDButton(String recordId){ Report__c rac = new Report__c(); try { rac.Id = recordId; rac.RecordTypeId = '01210000000Qekj'; update rac; } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } @AuraEnabled public static void updateForDispatchOCSMQARAButton(String recordId){ try { Report__c rac = new Report__c(); rac.Id = recordId; rac.Dispatch_OCSM_QARA__c = true; update rac; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } @AuraEnabled public static void updateForOCSMNoToReportButton(String recordId){ try { Report__c rac = new Report__c(); rac.Id = recordId; rac.OCSMAdministrativeReportStatus__c = '无需报告'; update rac; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } @AuraEnabled public static void updateForCancelButton(String recordId){ try { Report__c rac = new Report__c(); rac.Id = recordId; rac.Status__c = '取消'; update rac; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } @AuraEnabled public static void updateForVOCConfirmButton(String recordId,String Satisfy,String Satisfy1){ try { Report__c rac = new Report__c(); rac.Id = recordId; if (Satisfy == '是') { rac.Status__c = '结果确认完毕'; } else if (Satisfy == '否') { // 対応結果(一回目)に値なければ、一回目の「否」と見なす if (Satisfy1 != '否') { Report__c[] records = [SELECT Id, VOC_Satisfy__c, VOC_Unsatisfy_Reason__c, VOC_follow_up_result__c, VOC_solution_category__c FROM Report__c WHERE Id = :recordId]; rac.VOC_Satisfy__c = null; rac.VOC_Unsatisfy_Reason__c = null; rac.VOC_follow_up_result__c = null; rac.VOC_solution_category__c = null; rac.VOC_Satisfy1__c= records[0].VOC_Satisfy__c; rac.VOC_Unsatisfy_Reason1__c = records[0].VOC_Unsatisfy_Reason__c; rac.VOC_follow_up_result1__c = records[0].VOC_follow_up_result__c; rac.VOC_solution_category1__c = records[0].VOC_solution_category__c; rac.Status__c = '草案中'; } // 対応結果(一回目)に値あれば、二回目の「否」と見なす else { rac.Status__c = '结果确认完毕'; } } update rac; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } @AuraEnabled public static String updateForVOCAnswerButton(String recordId){ try { Report__c rac = [select Status__c from Report__c where Id = :recordId]; rac.Status__c = '回答完毕'; update rac; return null; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); String exc = '' + e.getMessage(); return exc; } } @AuraEnabled public static void updateForSubmitCompetitorReportButton(String recordId){ try { Report__c rac = new Report__c(); rac.Id = recordId; rac.Status__c = '申請中'; rac.Submit_time__c = Datetime.now(); rac.Submit_report_day__c = Date.today(); rac.Date__c = Date.today(); update rac; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } @AuraEnabled public static void updateForVOCSubmitButton(String recordId ,String createdById){ try { Report__c rac = [select Status__c,JingliApprovalManager__r.Id,BuchangApprovalManager__r.Id,SalesManager__r.Id,BuchangApprovalManagerSales__r.Id,ZongjianApprovalManager__c,Submit_time__c,Submit_report_day__c,Owner.Id from Report__c where Id = :recordId]; // share rac.Id = recordId; User[] records = [SELECT Job_Category__c FROM User WHERE Id = :createdById]; List userAccess = new List(); if (records[0].Job_Category__c == '销售服务') { userAccess.add(rac.JingliApprovalManager__c + '_Read'); userAccess.add(rac.BuchangApprovalManager__c + '_Read'); rac.VOC_CreatedBy_jingli__c = rac.JingliApprovalManager__c; rac.VOC_CreatedBy_buzhang__c = rac.BuchangApprovalManager__c; } else { userAccess.add(rac.SalesManager__c + '_Read'); userAccess.add(rac.BuchangApprovalManagerSales__c + '_Read'); rac.VOC_CreatedBy_jingli__c = rac.SalesManager__c; rac.VOC_CreatedBy_buzhang__c = rac.BuchangApprovalManagerSales__c; } userAccess.add(rac.ZongjianApprovalManager__c + '_Read'); String rtn = ControllerUtil.setSObjectShare('Report__Share','VOCShare__c',recordId,userAccess,rac.Owner.Id); if (rtn != 'OK') { return; } rac.Status__c = '填写完毕'; rac.Submit_time__c = Date.today(); rac.Submit_report_day__c = Date.today(); update rac; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } @AuraEnabled public static String updateForVOCCheckButton (String recordId,String isVOC,String personId) { try { Report__c rac = [select Owner.Id,VOC_jingli__r.Id,VOC_buzhang__r.Id,VOC_zongjian__r.Id,VOC_Finish__c,VOC_share_date__c,Responsible_Person__r.Id from Report__c where Id = :recordId]; if (isVOC == 'VOC') { // VOC対応者の経理部長総監を設定 User[] records = [SELECT Id, Job_Category__c, JingliApprovalManager__c, SalesManager__c, BuchangApprovalManager__c, BuchangApprovalManagerSales__c, ZongjianApprovalManager__c FROM User WHERE Id = :personId]; if (records[0].job_Category__c == '销售服务') { rac.VOC_jingli__c = records[0].JingliApprovalManager__c == null ? '' : records[0].JingliApprovalManager__c; rac.VOC_buzhang__c = records[0].BuchangApprovalManager__c == null ? '' : records[0].BuchangApprovalManager__c; } else { rac.VOC_jingli__c = records[0].SalesManager__c == null ? '' : records[0].SalesManager__c; rac.VOC_buzhang__c = records[0].BuchangApprovalManagerSales__c == null ? '' : records[0].BuchangApprovalManagerSales__c; } rac.VOC_zongjian__c = records[0].ZongjianApprovalManager__c == null ? '' : records[0].ZongjianApprovalManager__c; rac.Status__c = '判定完毕'; rac.VOC_Finish__c = false; Date serverTimestamp = Date.today(); rac.VOC_share_date__c = serverTimestamp; // share List userAccess = new List(); userAccess.add(rac.Responsible_Person__c + '_Edit'); userAccess.add(rac.VOC_jingli__c + '_Read'); userAccess.add(rac.VOC_buzhang__c + '_Read'); userAccess.add(rac.VOC_zongjian__c + '_Read'); String rtn = ControllerUtil.setSObjectShare('Report__Share','VOCShare__c',recordId,userAccess,rac.Owner.Id); if (rtn != 'OK') { return null; } update rac; } else { rac.Status__c = '完毕'; rac.VOC_Finish__c = true; update rac; } return null; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); String exc = e.getMessage(); return exc; } } @AuraEnabled public static void updateForVOCFinishButton (String recordId) { try { Report__c report = [select Id,Status__C from Report__c where Id = :recordId]; report.Status__c = '完毕'; update report; } catch (Exception e) { System.debug(LoggingLevel.INFO, '*** e: ' + e); } } public class InitData{ @AuraEnabled public String status; @AuraEnabled public String isVOC; @AuraEnabled public String personId; @AuraEnabled public String createdById; @AuraEnabled public String ownerId; @AuraEnabled public String Satisfy; @AuraEnabled public String Satisfy1; @AuraEnabled public String profileId; @AuraEnabled public String OCSMAdministrativeReportNumber; @AuraEnabled public Date OCSMAdministrativeReportDate; @AuraEnabled public Date awareDate; @AuraEnabled public String OCSMAdministrativeReportStatus; @AuraEnabled public Datetime LastModifiedDate; @AuraEnabled public String Id; @AuraEnabled public String Name; @AuraEnabled public String LastModifiedById; @AuraEnabled public String DeveloperName; @AuraEnabled public String userId; } }