高章伟
2023-03-02 e3c02c03dd2de442bbced87236f60a13a1cd154e
force-app/main/default/classes/NFM612Rest.cls
@@ -18,9 +18,9 @@
        public String departmentCd; //报修科室编码
        public String repairApplyPerson; //报修人用户编码
        public String repairApplicantName; //报修人姓名
        public String repairApplicantNameEncrypted; //报修人姓名密文 add20220214
        //public String repairApplicantNameEncrypted; //报修人姓名密文 add20220214          //zhj新方案改造 2022-12-07
        public String repairApplyPersonTel; //报修人联系人电话
        public String repairApplyPersonTelEncrypted;//保修人联系电话 密文 add 20220214
        //public String repairApplyPersonTelEncrypted;//保修人联系电话 密文 add 20220214    //zhj新方案改造 2022-12-07
        public String DataId;//aws 存储凭证 add 20220214 
        public String repairApplyType; // 报修人岗位
        public String equipmentCategory; //设备大类
@@ -54,6 +54,11 @@
        public String applicantId; //申请修理人编号
        public String applyDate; //申请时间
        public String repairOrderNo2FSEID; //报修子单所属FSE的ID
        //  2022/4/6    zhangyuheng update start
        public String RepairFinishDate; //修理品处理完成日
        public String ApplicanterPhone; //处理人电话
        public String CancelDate;   //受理人取消报修日
        //  2022/4/6    zhangyuheng update end
        // 上线前 报修子单与修理上的相关字段都删除
        public String responseResultsFirst; //上门应对结果(暂时注掉)
@@ -114,6 +119,7 @@
    global static void main(String rowData_Id) {
        BatchIF_Log__c rowData = [Select Id, Name, Log__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c from BatchIF_Log__c where RowDataFlg__c = true and Id =: rowData_Id];
        String logstr = ' start\n';
        String logerr = '';
        BatchIF_Log__c iflog = new BatchIF_Log__c();
        iflog.Type__c = LOG_TYPE;
        iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c;
@@ -131,10 +137,12 @@
            List < String > managementCodeList = new List < String > (); //存放科室编码
            List < String > rpersonList = new List < String > (); //存放报修人用户编码
            List < String > canIdList = new List < String > (); //存放取消人用户编号
            List < String > repairNoList = new List < String > ();  //存放报修子单号
            for (GeData ged: itemMasterList) {
                String dataComplete = verify(ged);
                if (!String.isBlank(dataComplete)) {
                    logstr += dataComplete;
                    logerr += '报修子单No['+ged.repairOderInfo.repairOrderNo2+']\n' + logstr;    //2022-07-11   zyh   add
                    continue;
                }
                gedMap.put(ged.repairOderInfo.repairOrderNo2, ged);
@@ -174,24 +182,29 @@
                    if (!accountMap.containsKey(ged.repairOderInfo.departmentCd)) {
                        logstr += ged.repairOderInfo.departmentCd + '该科室不存在,此条数据跳过!';
                        logerr += '报修子单No['+repairOrderNo2+']\n' + logstr;    //2022-07-11   zyh   add
                        continue;
                    }
                    if (String.isNotBlank(ged.repairOderInfo.repairApplyPerson) && !personMap.containsKey(ged.repairOderInfo.repairApplyPerson)) {
                        logstr += ged.repairOderInfo.repairApplyPerson + '报修人用户编码不存在,此条数据跳过';
                        logerr += '报修子单No['+repairOrderNo2+']\n' + logstr;    //2022-07-11   zyh   add
                        continue;
                    }
                    if (!personMap.containsKey(ged.repairOderInfo.receiverId)) {
                        logstr += ged.repairOderInfo.receiverId + '受理人用户编号不存在,此条数据跳过';
                        logerr += '报修子单No['+repairOrderNo2+']\n' + logstr;    //2022-07-11   zyh   add
                        continue;
                    }
                    
                    if ('申请修理'.equals(ged.applyRepairInfo.processResult) && !personMap.containsKey(ged.repairOderInfo.applicantId)) {
                        logstr += ged.repairOderInfo.applicantId + '申请修理人编号不存在,此条数据跳过';
                        logerr += '报修子单No['+repairOrderNo2+']\n' + logstr;    //2022-07-11   zyh   add
                        continue;
                    }
                    if (!canidMap.containsKey(ged.repairOderInfo.repairOrderNo2FSEID)) {
                        logstr += ged.repairOderInfo.repairOrderNo2FSEID + '报修子单所属FSE的ID不存在,此条数据跳过';
                        logerr += '报修子单No['+repairOrderNo2+']\n' + logstr;    //2022-07-11   zyh   add
                        continue;
                    }
                    RepairSubOrder__c repair = new RepairSubOrder__c();
@@ -202,6 +215,10 @@
                    repair.Hospital__c = dep.Parent.ParentId; //报修医院编码
                    repair.StrategicDepartment__c = dep.ParentId; //战略科室
                    repair.Department__c = dep.Id; //报修科室编码
                    //XLIU-CFZ3AR LY 20220705 Start
                    system.debug('12121121'+dep.Province_formula__c);
                    repair.State__c = dep.Province_formula__c; //省
                    //XLIU-CFZ3AR LY 20220705 End
                    repair.RepairApplicant__c = personMap.get(ged.repairOderInfo.repairApplyPerson); //报修人用户编码
                    repair.RepairApplicantName__c = ged.repairOderInfo.repairApplicantName; //报修人姓名
@@ -226,17 +243,17 @@
                    repair.StartTimeFirst__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.startTimeFirst); //开始时间
                    repair.EndTimeFirst__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.endTimeThird); //结束时间
                    repair.FaultDescriptionFirst__c = ged.repairOderInfo.faultDescriptionFirst; //故障描述
                    repair.ActualVisitTimeSecond__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.actualVisitTimeSecond); //二次上门日
                    repair.StartTimeSecond__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.startTimeSecond); //二次上门开始时间
                    repair.ActualVisitTimeSecond__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.actualVisitTimeSecond); //二次上门日--->二次计划上门日
                    repair.StartTimeSecond__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.startTimeSecond); //二次上门开始时间--->二次上门日
                    repair.EndTimeSecond__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.endTimeSecond); //二次上门结束时间
                    repair.FaultDescriptionSecond__c = ged.repairOderInfo.faultDescriptionSecond; //二次故障描述
                    repair.ActualVisitTimeThird__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.actualVisitTimeThird); //三次上门日
                    repair.StartTimeThird__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.startTimeThird); //三次上门开始时间
                    repair.ActualVisitTimeThird__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.actualVisitTimeThird); //三次上门日--->三次计划上门日
                    repair.StartTimeThird__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.startTimeThird); //三次上门开始时间--->三次上门日
                    repair.EndTimeThird__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.endTimeThird); //三次上门结束时间
                    repair.FaultDescriptionThird__c = ged.repairOderInfo.faultDescriptionThird; //三次故障描述
                    repair.ApplicantType__c = ged.repairOderInfo.applicantType; //申请修理人类型
                    repair.RepairApplicantName_Encrypted__c =ged.repairOderInfo.repairApplicantNameEncrypted; //报修人姓名密文 add 20220214
                    repair.RepairApplicantTel_Encrypted__c = ged.repairOderInfo.repairApplyPersonTelEncrypted;//保修人联系电话密文 add 20220214
                    //repair.RepairApplicantName_Encrypted__c =ged.repairOderInfo.repairApplicantNameEncrypted; //报修人姓名密文 add 20220214           //zhj 新方案改造 2022-12-09
                    //repair.RepairApplicantTel_Encrypted__c = ged.repairOderInfo.repairApplyPersonTelEncrypted;//保修人联系电话密文 add 20220214       //zhj 新方案改造 2022-12-09
                    repair.AWS_Data_Id__c =ged.repairOderInfo.DataId;//AWS 存储凭证 add 20220214
                    // repair.Applicant__c = canidMap.get(ged.repairOderInfo.applicantId).Id; //申请修理人编号
                    repair.Applicanter__c = personMap.get(ged.repairOderInfo.applicantId);//申请修理人编号
@@ -245,12 +262,22 @@
                    repair.Ownerid = canidMap.get(ged.repairOderInfo.repairOrderNo2FSEID).Id; //报修子单所属FSE的ID
                    repair.AssetModel__c = ged.applyRepairInfo.equipmentModel; //设备型号
                    repair.AirframeCodeEngineer__c = ged.applyRepairInfo.equipmentCd; //机身编码(工程师)
                    repair.ResponseResultDesc__c = ged.applyRepairInfo.responseResultDesc; //应对描述
                    repair.ResponseResultDesc__c = ged.applyRepairInfo.responseResultDesc; //应对描述--->问题描述(工程师)
                    repair.ProcessResult__c = ged.applyRepairInfo.processResult; //处理结果
                    if ('问题已解决'.equals(ged.applyRepairInfo.processResult)) {
                        repair.Status__c = '关闭';
                    //  2022/4/6    zhangyuheng update start
                    repair.RepairFinishDate__c = NFMUtil.parseDateTimeStr2Date(ged.repairOderInfo.RepairFinishDate) ;   //修理品处理完成日
                    repair.ApplicanterPhone__c = ged.repairOderInfo.ApplicanterPhone;   //处理人电话
                    repair.CancelleRepairTime__c = NFMUtil.parseDateTimeStr2Date(ged.repairOderInfo.CancelDate);    //受理人取消报修日
                    // repair.CancelleRepairTime__c = NFMUtil.parseStr2Date(ged.repairOderInfo.CancelDate);    //受理人取消报修日
                    repair.RepairCancelReason__c = ged.repairOderInfo.cancelReportReason;   //修理取消原因
                    //  2022/4/6    zhangyuheng update end
                    //LLIU-CG53S9 20220715 LY start
                    if ('问题已解决'.equals(ged.applyRepairInfo.processResult) ||'需做质量判定'.equals(ged.applyRepairInfo.processResult) ||'用户选择不修理'.equals(ged.applyRepairInfo.processResult)) {
                    //LLIU-CG53S9 20220715 LY end
                        // repair.Status__c = '关闭';
                        repair.Status__c = '已完成';   // 2022/4/6 zhangyuheng
                    } else {
                        repair.Status__c = '待处理';
@@ -270,10 +297,16 @@
                    repair.AttachmentName__c = attachmentName;
                    repairOrderNo2Str += repairOrderNo2 + '\n';
                    repairList.add(repair);
                    repairNoList.add(ged.repairOderInfo.repairOrderNo2);
                }
                if (repairList.size() > 0) {
                //  2022/4/6    zhangyuheng update start
                List<RepairSubOrder__c> repairList1 = [SELECT Id FROM RepairSubOrder__c WHERE RepairSubOrderNo__c in: repairNoList];
                if (repairList1.size() > 0) {
                    logstr += repairOrderNo2Str + ']-已存在';
                }
                // if (repairList.size() > 0) {==== 2022/4/6 zhangyuheng注释掉
                else {
                //  2022/4/6    zhangyuheng update end
                    insert repairList;
                    repairOrderNo2Str += ' ]\n';
                    logstr += repairOrderNo2Str + '新增完成, 新增总数数为:' + repairList.size() + '\n';
@@ -297,7 +330,7 @@
        }
        update rowData;
        iflog.Log__c = logstr;
        iflog.ErrorLog__c = logerr;//2022-07-11   zyh   add
        insert iflog;
    }
    /**
@@ -308,6 +341,9 @@
    private static Map < String, Account > getAccountMap(List < String > managementCodeList) {
        List < Account > accountList =
            [SELECT id, Management_Code__c, ParentId, Parent.ParentId
                //XLIU-CFZ3AR LY 20220705 Start
                ,Province_formula__c
                //XLIU-CFZ3AR LY 20220705 End
                FROM Account
                WHERE Management_Code__c
                IN: managementCodeList