19626
2023-07-12 fbd4bea7bd57b4d4a33cb9ed0ebc15d9bf6551c0
force-app/main/default/classes/ReportController.cls
@@ -2,6 +2,44 @@
用于给lwc的js初始化数据和对记录进行dml操作,此controller属于报告书
*/
public with sharing class ReportController {
    @AuraEnabled
    public static InitData initForOPDReportConsumButton(String recordId){
        InitData res = new initData();
        try {
            Consum_Apply__c con = [select RA_Status__c,Product_category__c,Id,Hospital__c,Strategic_dept__c,Account__c from Consum_Apply__c where Id =: recordId];
            res.raStatus = con.RA_Status__c;
            res.productCategory = con.Product_category__c;
            res.consumApplyId = con.Id;
            res.hospital = con.Hospital__c;
            res.strategicDept = con.Strategic_dept__c;
            res.account = con.Account__c;
            res.recordTypeId1 = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(lexLightingButtonConstant.RECORD_TYPE_NAME_BY_SIS_ENG).getRecordTypeId();
            res.recordTypeId = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(lexLightingButtonConstant.RECORD_TYPE_NAME_BY_SIS_ET).getRecordTypeId();
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
        return res;
    }
    @AuraEnabled
    public static InitData initForOPDReportButton(String recordId){
        InitData res = new initData();
        try {
            Rental_Apply__c rent = [select RA_Status__c,Asset_return_day2__c,Hospital__c,Strategic_dept__c,Account__c,OPDPlan__c,Follow_UP_Opp__c,demo_purpose2__c from Rental_Apply__c where Id =: recordId];
            res.raStatus = rent.RA_Status__c;
            res.assetReturnDay2 = rent.Asset_return_day2__c;
            res.hospitalId = rent.Hospital__c;
            res.strategicDeptId = rent.Strategic_dept__c;
            res.accountId = rent.Account__c;
            res.demoPurpose2 = rent.demo_purpose2__c;
            res.followUPOpp = rent.Follow_UP_Opp__c;
            res.opdPlan = rent.OPDPlan__c;
            res.recordTypeId = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(lexLightingButtonConstant.RECORD_TYPE_NAME_BY_OPD).getRecordTypeId();
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
        return res;
    }
    //给VOC完毕相应的js提供初始化数据
    @AuraEnabled
    public static InitData initForVOCFinishButton (String recordId) {
@@ -77,8 +115,8 @@
        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;
            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);
@@ -105,8 +143,8 @@
        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.theOCSMAdministrativeReportDate = report.OCSMAdministrativeReportDate__c;
            res.theOCSMAdministrativeReportNumber = report.OCSMAdministrativeReportNumber__c;
            res.awareDate = report.Aware_date__c;
        } catch (Exception e) {
            System.debug(LoggingLevel.INFO, '*** e: ' + e);
@@ -134,7 +172,7 @@
        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.theOCSMAdministrativeReportStatus = report.OCSMAdministrativeReportStatus__c;
            res.awareDate = report.AwareDate__C;
        } catch (Exception e) {
            System.debug(LoggingLevel.INFO, '*** e: ' + e);
@@ -163,11 +201,11 @@
        try {
            PAE_DecisionRecord__c[] report = [SELECT LastModifiedDate, Id, Name, LastModifiedById,RecordType.DeveloperName FROM PAE_DecisionRecord__c where PAE_Report__c =  :recordId  And RecordType.DeveloperName = :developerName 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;
                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);
@@ -184,11 +222,11 @@
        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;
                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);
@@ -223,6 +261,25 @@
        }
        return res;
    }
    @AuraEnabled
    public static InitData initForNewOnLineSurveyButton(String recordId){
        InitData res = new InitData();
        try {
            Report__c re = [
                select
                Date__c,
                Practitioner1__c,
                OwnerId
                from Report__c where Id =: recordId
            ];
            res.ownerId = re.OwnerId;
            res.datec = re.Date__c;
            res.practitioner1 = re.Practitioner1__c;
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
        return res;
    }
    //给提交相应的js提供初始化数据
    @AuraEnabled
@@ -236,10 +293,14 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',') + 1;
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    //OPDtoSIS操作更新相应数据
@@ -248,14 +309,18 @@
        try {
            Report__c rac = new Report__c();
            rac.Id = recordId;
            rac.RecordTypeId = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(LightingButtonConstant.RECORD_TYPE_NAME_BY_OPD).getRecordTypeId();
            rac.recordTypeId = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(LightingButtonConstant.RECORD_TYPE_NAME_BY_OPD).getRecordTypeId();
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',') + 1;
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
@@ -271,10 +336,14 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',') + 1;
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    //完毕操作更新相应数据
@@ -284,14 +353,18 @@
        try {
            rac.Id = recordId;
            rac.Status__c = LightingButtonConstant.STATUS_COMPLETE;
            rac.RecordTypeId = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(LightingButtonConstant.VOC_NAME).getRecordTypeId();
            rac.recordTypeId = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(LightingButtonConstant.VOC_NAME).getRecordTypeId();
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',') + 1;
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    //OCSM要报告操作更新相应数据
@@ -304,10 +377,14 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',') + 1;
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
@@ -317,14 +394,18 @@
        Report__c rac = new Report__c();
        try {
            rac.Id = recordId;
            rac.RecordTypeId = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(LightingButtonConstant.RECORD_TYPE_NAME_BY_FOLLOW_THE_STAGE).getRecordTypeId();
            rac.recordTypeId = Schema.SObjectType.Report__c.getRecordTypeInfosByName().get(LightingButtonConstant.RECORD_TYPE_NAME_BY_FOLLOW_THE_STAGE).getRecordTypeId();
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',') + 1;
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    //DispatchOCSMQARA操作更新相应数据
@@ -337,10 +418,14 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',');
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    //OCSM不要报告操作更新相应数据
@@ -353,10 +438,14 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',');
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
@@ -370,24 +459,28 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',');
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    
    //VOC结果确认更新相应数据
    @AuraEnabled
    public static String updateForVOCConfirmButton(String recordId,String Satisfy,String Satisfy1){
    public static String updateForVOCConfirmButton(String recordId,String satisfy,String satisfy1){
        try {
            Report__c rac = new Report__c();
            rac.Id = recordId;
            if (Satisfy == LightingButtonConstant.CN_YES) {
            if (satisfy == LightingButtonConstant.CN_YES) {
                rac.Status__c = LightingButtonConstant.STATUS_VOC_CONFIRMED;
                } else if (Satisfy == LightingButtonConstant.CN_NO) {
                } else if (satisfy == LightingButtonConstant.CN_NO) {
                // 対応結果(一回目)に値なければ、一回目の「否」と見なす
                if (Satisfy1 != LightingButtonConstant.CN_NO) {
                if (satisfy1 != LightingButtonConstant.CN_NO) {
                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;
@@ -407,12 +500,18 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',');
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    //VOC回答更新相应数据
    @AuraEnabled
    public static String updateForVOCAnswerButton(String recordId){
@@ -422,14 +521,18 @@
            update rac;
            return null;
        } catch (Exception e) {
            System.debug(LoggingLevel.INFO, '*** e: ' + e);
            String exc = '' + e.getMessage();
            Integer left = exc.indexOf(':') + 1;
            Integer right = exc.lastIndexOf(':');
            String str = exc.substring(left,right);
            left = str.indexOf(',') +  1;
            String newStr = str.substring(left);
            return newStr;
            if (e.getMessage().contains(',')) {
                System.debug(LoggingLevel.INFO, '*** e: ' + e);
                String exc = '' + e.getMessage();
                Integer left = exc.indexOf(':') + 1;
                Integer right = exc.lastIndexOf(':');
                String str = exc.substring(left,right);
                left = str.indexOf(',') +  1;
                String newStr = str.substring(left);
                return newStr;
            }else {
                return e.getMessage();
            }
        }
    }
@@ -446,10 +549,14 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',');
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    //VOC回答更新相应数据
@@ -458,7 +565,6 @@
        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<String> userAccess = new List<String>();
            if (records[0].Job_Category__c == LightingButtonConstant.TYPE_OF_SALES_SERVICES) {
@@ -475,7 +581,7 @@
            userAccess.add(rac.ZongjianApprovalManager__c + LightingButtonConstant.USER_ACCESS_READ);
            String rtn = ControllerUtil.setSObjectShare(LightingButtonConstant.SOBJECT_NAME_OF_REPORT_SHARE,LightingButtonConstant.SOBJECT_NAME_OF_VOC_SHARE,recordId,userAccess,rac.Owner.Id);
            if (rtn != LightingButtonConstant.OK) {
            return null;
            return rtn;
            }
            rac.Status__c = LightingButtonConstant.STATUS_VOC_WRITE_OVER;
            rac.Submit_time__c = Date.today();
@@ -483,10 +589,14 @@
            update rac;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',');
            Integer right = eMessage.length();
            return eMessage.substring(left, right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    //VOC判定更新相应数据
@@ -541,10 +651,14 @@
            update report;
            return null;
        } catch (Exception e) {
            String eMessage = e.getMessage();
            Integer left = eMessage.indexOf(',');
            Integer right = eMessage.length();
            return eMessage.substring(left,right);
            if (e.getMessage().contains(',')) {
                String eMessage = e.getMessage();
                Integer left = eMessage.indexOf(',');
                Integer right = eMessage.length();
                return eMessage.substring(left,right);
            }else {
                return e.getMessage();
            }
        }
    }
    @AuraEnabled
@@ -579,29 +693,29 @@
        @AuraEnabled
        public String ownerId;
        @AuraEnabled
        public String Satisfy;
        public String satisfy;
        @AuraEnabled
        public String Satisfy1;
        public String satisfy1;
        @AuraEnabled
        public String profileId;
        @AuraEnabled
        public String OCSMAdministrativeReportNumber;
        public String theOCSMAdministrativeReportNumber;
        @AuraEnabled
        public Date OCSMAdministrativeReportDate;
        public Date theOCSMAdministrativeReportDate;
        @AuraEnabled
        public Date awareDate;
        @AuraEnabled
        public String OCSMAdministrativeReportStatus;
        public String theOCSMAdministrativeReportStatus;
        @AuraEnabled
        public Datetime LastModifiedDate;
        public Datetime lastModifiedDate;
        @AuraEnabled
        public String Id;
        public String id;
        @AuraEnabled
        public String Name;
        public String name;
        @AuraEnabled
        public String LastModifiedById;
        public String lastModifiedById;
        @AuraEnabled
        public String DeveloperName;
        public String developerName;
        @AuraEnabled
        public String userId;
        @AuraEnabled
@@ -610,10 +724,41 @@
        public String huDiAnId;
        @AuraEnabled
        public String systemProfileId;
        @AuraEnabled
        public String raStatus;
        @AuraEnabled
        public String productCategory;
        @AuraEnabled
        public String hospitalId;
        @AuraEnabled
        public String hospital;
        @AuraEnabled
        public String strategicDeptId;
        @AuraEnabled
        public String strategicDept;
        @AuraEnabled
        public String accountId;
        @AuraEnabled
        public String account;
        @AuraEnabled
        public String rentalApplyId;
        @AuraEnabled
        public String consumApplyId;
        @AuraEnabled
        public String recordTypeId;
        @AuraEnabled
        public String recordTypeId1;
        @AuraEnabled
        public Date assetReturnDay2;
        @AuraEnabled
        public String followUPOpp;
        @AuraEnabled
        public String demoPurpose2;
        @AuraEnabled
        public String opdPlan;
        @AuraEnabled
        public Date datec;
        @AuraEnabled
        public String practitioner1;
    }
}