黄千龙
2023-03-08 962519811b7c4be07f30d09e791798b0ea79d3ae
force-app/main/default/classes/NFM612Rest.cls
@@ -8,6 +8,13 @@
    global class GeData {
        public RepairOderInfo repairOderInfo;
        public ApplyRepairInfo applyRepairInfo;
        public problem problem;
        public Logistics logistics;     //物流 zhj 改造新增字段 2023-02-14
        public String item0010;         //备用字段 zhj 改造新增字段 2023-02-14
        public String item0020;         //备用字段 zhj 改造新增字段 2023-02-14
        public String item0030;         //备用字段 zhj 改造新增字段 2023-02-14
        public String item0040;         //备用字段 zhj 改造新增字段 2023-02-14
        public String item0050;         //备用字段 zhj 改造新增字段 2023-02-14
    }
    //报修单信息
    public class RepairOderInfo {
@@ -69,6 +76,9 @@
        public String cancelleRepairDate; //取消报修日
        public String cancelReportReason; //取消报修原因
    }
    //设备信息
@@ -77,6 +87,47 @@
        public String equipmentCd; //机身编码(工程师)
        public String responseResultDesc; //应对描述
        public String processResult; //处理结果
    }
    //故障处理信息
    public class problem {
        public String dateReceiptQuestions; //投诉知悉日(Complaint Aware Date)
        public String ifDeadHurt; //是否有死亡、伤害、感染
        public String problemOccurred; //问题发生时间情况
        public String problemOccurredSelect; //问题发生时间情况 其他
        public String reportAdverseEvents; //医院有没有向政府机关报告不良事件或疑似不良事件
        public String whatProject; //做的是哪个项目
        public String operationOrExaminationName; //手术/检查名称
        public String breakORFallOff; //是否有发生断裂或脱落
        public String useFailProductFinish; //是否用该产品完成了手术/检查
        public String supportingProducts; //配套使用产品
        public String afterFailureInformation; //发现故障后,医院对患者的处理情况
        public String delay15Min; //发现故障现象后,有延误15分钟以上的手术实施的情况发生吗
        public String informationFrom; //信息是从医院的谁那里得到的
        public String failureQInHospital; //在医院,故障发生的频率是多少
        public String delayReportReason; //超时报告的理由
        public String isProductFaultRelated; //是否与这次产品故障相关
    }
    //物流
    public class logistics {
        public String isOts; //是否使用ots
        public String senderOrgCode; //送修机构代码
        public String senderCompany; //送修机构名称
        public String senderName; //送修人姓名
        public String senderMobilePhone; //送修人手机
        public String senderAddress; //送修人地址
        public String recepientCompany; //接收机构名称
        public String recepientName; //接收送修人姓名
        public String recepientMobilePhone; //接收人手机
        public String recepientAddress; //接收人地址
        public String returnWayType; //返品方式
        public String orderNumber; //送修物流单号
        public String failureReason; //下单失败原因
        public String logisticsSendDate; //送修物流发送日
        public String item0010; //备用字段1
        public String item0020; //备用字段2
        public String item0030; //备用字段3
        public String item0040; //备用字段4
        public String item0050; //备用字段5
    }
    @HttpPost
    global static void doPost() {
@@ -131,6 +182,11 @@
            return;
        }
        Savepoint sp = Database.setSavepoint();
        /*List<RepairSubOrder__c> rsoList = [SELECT Id FROM RepairSubOrder__c WHERE Name = ged.repairOderInfo.repairOrderNo2];
        if (rsoList.size() > 0) {
        }
*/
        try {
            List < RepairSubOrder__c > repairList = new List < RepairSubOrder__c > ();
            Map < String, GeData > gedMap = new Map < String, GeData > ();
@@ -177,6 +233,7 @@
                // 附件下载标记
                Boolean attachmentDownloadFlg = false;
                String repairOrderNo2Str = '报修子单No [ \n';
                Map<String,RepairSubOrder__c> RsoMap = new Map<String,RepairSubOrder__c>();
                for (String repairOrderNo2: gedMap.keySet()) {
                    GeData ged = gedMap.get(repairOrderNo2);
@@ -272,7 +329,43 @@
                    // repair.CancelleRepairTime__c = NFMUtil.parseStr2Date(ged.repairOderInfo.CancelDate);    //受理人取消报修日
                    repair.RepairCancelReason__c = ged.repairOderInfo.cancelReportReason;   //修理取消原因
                    //  2022/4/6    zhangyuheng update end
                    // 2023-02-20   zyh   add   start
                    repair.DateReceiptQuestions__c = ged.problem.dateReceiptQuestions; //投诉知悉日(Complaint Aware Date)
                    repair.IfDeadHurt__c = ged.problem.ifDeadHurt; //是否有死亡、伤害、感染
                    repair.ProblemOccurred__c = ged.problem.problemOccurred; //问题发生时间情况
                    repair.ProblemOccurredSelect__c = ged.problem.problemOccurredSelect; //问题发生时间情况 其他
                    repair.ReportAdverseEvents__c = ged.problem.reportAdverseEvents; //医院有没有向政府机关报告不良事件或疑似不良事件
                    repair.WhatProject__c = ged.problem.whatProject; //做的是哪个项目
                    repair.OperationOrExaminationName__c = ged.problem.operationOrExaminationName; //手术/检查名称
                    repair.BreakORFallOff__c = ged.problem.breakORFallOff; //是否有发生断裂或脱落
                    repair.UseFailProductFinish__c = ged.problem.useFailProductFinish; //是否用该产品完成了手术/检查
                    repair.SupportingProducts__c = ged.problem.supportingProducts; //配套使用产品
                    repair.AfterFailureInformation__c = ged.problem.afterFailureInformation; //发现故障后,医院对患者的处理情况
                    repair.Delay15Min__c = ged.problem.delay15Min; //发现故障现象后,有延误15分钟以上的手术实施的情况发生吗
                    repair.InformationFrom__c = ged.problem.informationFrom; //信息是从医院的谁那里得到的
                    repair.FailureQInHospital__c = ged.problem.failureQInHospital; //在医院,故障发生的频率是多少
                    repair.DelayReportReason__c = ged.problem.delayReportReason; //超时报告的理由
                    repair.IsProductFaultRelated__c = ged.problem.isProductFaultRelated; //是否与这次产品故障相关
                    repair.IsOts__c = ged.logistics.isOts; //是否使用ots
                    repair.SenderOrgCode__c = ged.logistics.senderOrgCode; //送修机构代码
                    repair.SenderCompany__c = ged.logistics.senderCompany; //送修机构名称
                    repair.SenderName__c = ged.logistics.senderName; //送修人姓名
                    repair.SenderMobilePhone__c = ged.logistics.senderMobilePhone; //送修人手机
                    repair.SenderAddress__c = ged.logistics.senderAddress; //送修人地址
                    repair.RecepientCompany__c = ged.logistics.recepientCompany; //接收机构名称
                    repair.RecepientName__c = ged.logistics.recepientName; //接收送修人姓名
                    repair.RecepientMobilePhone__c = ged.logistics.recepientMobilePhone; //接收人手机
                    repair.RecepientAddress__c = ged.logistics.recepientAddress; //接收人地址
                    repair.ReturnWayType__c = ged.logistics.returnWayType; //返品方式
                    repair.OrderNumber__c = ged.logistics.orderNumber; //送修物流单号
                    repair.FailureReason__c = ged.logistics.failureReason; //下单失败原因
                    repair.LogisticsSendDate__c = ged.logistics.logisticsSendDate; //送修物流发送日
                    repair.Item0010__c = ged.item0010; //备用字段1
                    repair.Item0020__c = ged.item0020; //备用字段2
                    repair.Item0030__c = ged.item0030; //备用字段3
                    repair.Item0040__c = ged.item0040; //备用字段4
                    repair.Item0050__c = ged.item0050; //备用字段5
                    // 2023-02-20   zyh   add   end
                    //LLIU-CG53S9 20220715 LY start
                    if ('问题已解决'.equals(ged.applyRepairInfo.processResult) ||'需做质量判定'.equals(ged.applyRepairInfo.processResult) ||'用户选择不修理'.equals(ged.applyRepairInfo.processResult)) {
                    //LLIU-CG53S9 20220715 LY end
@@ -298,11 +391,24 @@
                    repairOrderNo2Str += repairOrderNo2 + '\n';
                    repairList.add(repair);
                    repairNoList.add(ged.repairOderInfo.repairOrderNo2);
                    RsoMap.put(ged.repairOderInfo.repairOrderNo2,repair);
                }
                //  2022/4/6    zhangyuheng update start
                List<RepairSubOrder__c> repairList1 = [SELECT Id FROM RepairSubOrder__c WHERE RepairSubOrderNo__c in: repairNoList];
                if (repairList1.size() > 0) {
                List<RepairSubOrder__c> upList = new List<RepairSubOrder__c>();
                List<RepairSubOrder__c> repairSOList1 = [SELECT Id,RepairSubOrderNo__c,DateReceiptQuestions__c FROM RepairSubOrder__c WHERE RepairSubOrderNo__c in: repairNoList];
                if (repairSOList1.size() > 0) {
                    for(RepairSubOrder__c rso: repairSOList1){
                        if(RsoMap.containsKey(rso.RepairSubOrderNo__c)){
                            RepairSubOrder__c temp = new RepairSubOrder__c();
                            temp = RsoMap.get(rso.RepairSubOrderNo__c);
                            temp.Id = rso .Id;
                            upList.add(temp);
                        }
                    }
                    logstr += repairOrderNo2Str + ']-已存在';
                    update upList;
                    System.debug(repairSOList1[0].Id + '===' + repairSOList1[0].DateReceiptQuestions__c);
                    logstr += repairOrderNo2Str + '更新完成, 更新总数为:' + repairSOList1.size() + '\n' + repairSOList1;
                }
                // if (repairList.size() > 0) {==== 2022/4/6 zhangyuheng注释掉
                else {