| | |
| | | @RestResource(urlMapping = '/NFM612/*') |
| | | global with sharing class NFM612Rest { |
| | | //add to AWS 回复 start sushanhu 20220225 |
| | | static Boolean SFStatus=true; |
| | | static String SFMessage=''; |
| | | //add to AWS 回复 end sushanhu 20220225 |
| | | public static final String LOG_TYPE = 'NFM612'; |
| | | global class GeData { |
| | | public RepairOderInfo repairOderInfo; |
| | |
| | | public String departmentCd; //报修科室编码 |
| | | public String repairApplyPerson; //报修人用户编码 |
| | | public String repairApplicantName; //报修人姓名 |
| | | //public String repairApplicantNameEncrypted; //报修人姓名密文 add20220214 //zhj新方案改造 2022-12-07 |
| | | public String repairApplyPersonTel; //报修人联系人电话 |
| | | //public String repairApplyPersonTelEncrypted;//保修人联系电话 密文 add 20220214 //zhj新方案改造 2022-12-07 |
| | | public String DataId;//aws 存储凭证 add 20220214 |
| | | public String repairApplyType; // 报修人岗位 |
| | | public String equipmentCategory; //设备大类 |
| | | public String assetType; //设备类型 |
| | |
| | | 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; //上门应对结果(暂时注掉) |
| | |
| | | res.addHeader('Content-Type', 'application/json'); |
| | | res.statusCode = 200; |
| | | //String jsonResponse = '{"status": "Success", "Message":' + gedata + '}'; |
| | | String jsonResponse = '{"status": "Success", "Message":"成功"}'; |
| | | res.responseBody = Blob.valueOf(jsonResponse); |
| | | // String jsonResponse = '{"status": "Success", "Message":"成功"}'; |
| | | // res.responseBody = Blob.valueOf(jsonResponse); |
| | | //updata response toAWS 20220225 sushanhu start |
| | | NFMUtil.NFMResponse result = NFMUtil.getNFMResponse(); |
| | | result.SFStatus=SFStatus; |
| | | result.SFMessage=SFMessage; |
| | | String jsonResponse =JSON.serialize(result); |
| | | system.debug('result---'+jsonResponse); |
| | | res.responseBody = blob.valueOf(jsonResponse); |
| | | //updata response toAWS 20220225 sushanhu end |
| | | return; |
| | | } |
| | | @future(callout = true) |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | |
| | | 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(); |
| | |
| | | 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; //报修人姓名 |
| | |
| | | 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 //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);//申请修理人编号 |
| | | repair.ApplicationTime__c = NFMUtil.parseStr2DateTime(ged.repairOderInfo.applyDate); //申请时间 |
| | |
| | | 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 = '待处理'; |
| | | |
| | |
| | | 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'; |
| | |
| | | Database.rollback(sp); |
| | | logstr += '\n' + ex.getMessage(); |
| | | iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; |
| | | rowData = NFMUtil.LogAutoSend(rowData, ex, null); |
| | | if (!Test.isRunningTest()) { |
| | | rowData = NFMUtil.LogAutoSend(rowData, ex, null); |
| | | } |
| | | } |
| | | update rowData; |
| | | iflog.Log__c = logstr; |
| | | |
| | | iflog.ErrorLog__c = logerr;//2022-07-11 zyh add |
| | | insert iflog; |
| | | } |
| | | /** |
| | |
| | | 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 |
| | |
| | | SELECT id, CManageCode__c,Employee_No_manual__c |
| | | FROM Contact |
| | | WHERE CManageCode__c IN: rpersonList OR Employee_No_manual__c IN:rpersonList]; |
| | | Map < String, Id > contactMap = new Map < String, Id > (); |
| | | Map < String, Id > contactMap = new Map < String, Id > (); |
| | | for (Contact con: couList) { |
| | | contactMap.put(con.CManageCode__c, con.Id); |
| | | if (String.isNotBlank(con.Employee_No_manual__c)) { |