public without sharing class InspectionReportTriggerHandler extends Oly_TriggerHandler { private Map newMap; private Map oldMap; private List newList; private List oldList; public InspectionReportTriggerHandler() { this.newMap = (Map) Trigger.newMap; this.oldMap = (Map) Trigger.oldMap; this.newList = (List) Trigger.new; this.oldList = (List) Trigger.old; } protected override void afterInsert() { updateAsset(); } protected override void afterUpdate() { updateAsset(); //fxk 2021/8/31 点检计划中相应字段的赋值逻辑 Star updateCheckPlan(); // updateCheckPlanSubmit(); // updateCheckPlanreject(); //fxk 2021/8/31 点检计划中相应字段的赋值逻辑 end //add by rentx 20210823 start 在批准之后更新 使用ET 等信息到维修合同上 updateVM(); //add by rentx 20210823 end 在批准之后更新 使用ET 等信息到维修合同上 } protected override void beforeDelete() { updateAsset_delete(); } // 2021-04-16 mzy LJPH-BZPB7W SFDC点检报告更新逻辑修改 start //将更新保有设备的代码 移至Batch中 每天凌晨运行 //Batch : UpdateInspectionReportAssetBatch private void updateAsset() { // 触发trigger的点检报告书 List irIds = new List(); for (Inspection_Report__c new_ir : newList) { irIds.add(new_ir.Id); } if (Trigger.isUpdate) { List updateList = new List(); //2021-08-23 mzy LJPH-C5Y5YD 【委托】合同前点检结果的实时带入 start //获取批准的报告书Id Set irIdSet = new Set(); //2021-08-23 mzy LJPH-C5Y5YD 【委托】合同前点检结果的实时带入 end for (Inspection_Report__c new_ir : newList) { //System.debug('新数据 :'+new_ir); //获取老数据 Inspection_Report__c oldReport = oldMap.get(new_ir.Id) == null ? new Inspection_Report__c() : oldMap.get(new_ir.Id); //System.debug('老数据 :'+oldReport); //1.判断状态是否发生改变--为申请中 if (oldReport != null && !String.isEmpty(String.valueOf(oldReport.Status__c)) && new_ir.Status__c != null && '申请中'.equals(new_ir.Status__c) && oldReport.Status__c != new_ir.Status__c ) { irIdSet.add(new_ir.Id); } //2.判断状态是否发生改变--为批准 if (oldReport != null && !String.isEmpty(String.valueOf(oldReport.Status__c)) && new_ir.Status__c != null && '批准'.equals(new_ir.Status__c) && oldReport.Status__c != new_ir.Status__c ) { // 2021-08-23 mzy LJPH-C5Y5YD 【委托】合同前点检结果的实时带入 start if (!new_ir.if_UpdateAsset__c) { //需要更新 Inspection_Report__c tempReport = new Inspection_Report__c(); tempReport.Id = new_ir.id; tempreport.if_UpdateAsset__c = true; updateList.add(tempreport); } // 将批准的报告书 Id 保存到set集合中 irIdSet.add(new_ir.id); // 2021-08-23 mzy LJPH-C5Y5YD 【委托】合同前点检结果的实时带入 end } } if (updateList.size() > 0) { System.debug('List集合 :' + updateList); update updateList; } //2021-09-01 mzy LJPH-C5Y5YD 【委托】合同前点检结果的实时带入 改为调用Batch来实现更新到保有设备 start if (irIdSet.size() > 0) { //如果有批准的点检报告书则将点检报告书的Id传入Batch进行更新保有设备 List ids = new List(); for (String i : irIdSet) { ids.add(i); } UpdateInspectionReportAssetBatch.updateAssetFun(ids); } //2021-09-01 mzy LJPH-C5Y5YD 【委托】合同前点检结果的实时带入 改为调用Batch来实现更新到保有设备 end } /* System.debug('希望下面的代码不要运行.....'); // 点检报告书中所有的保有设备 List assIds = new List(); Map assMap = new Map(); List iis = [select id, AssetId__c from Inspection_Item__c where Inspection_ReportId__c = :irIds]; for (Inspection_Item__c ii : iis) { if (ii.AssetId__c != null && assMap.containsKey(ii.AssetId__c) == false) { assIds.add(ii.AssetId__c); assMap.put(ii.AssetId__c, ii.AssetId__c); } } // 保有设备对应的所有点检报告明细 List iiList = [select id, AssetId__c, Inspection_ReportId__c, Inspection_Result__c, Inspection_Comment__c, Inspection_ReportId__r.Name, Inspection_ReportId__r.Approved_date__c from Inspection_Item__c where AssetId__c = :assIds order by Inspection_ReportId__r.Approved_date__c desc]; Map iiMap = new Map(); for (Inspection_Item__c ii : iiList) { if (iiMap.containsKey(ii.AssetId__c) == false && ii.Inspection_ReportId__r.Approved_date__c != null) { iiMap.put(ii.AssetId__c, ii); } } List updList = new List(); for (String assid : assIds) { Inspection_Item__c tmp = iiMap.get(assid) == null ? new Inspection_Item__c() : iiMap.get(assid); Asset ass = new Asset( Id = assid, Inspection_report_number__c = tmp.Inspection_ReportId__r.Name, Inspection_Report__c = tmp.Inspection_ReportId__c, Inspection_Comment__c = tmp.Inspection_Comment__c, Inspection_Result__c = tmp.Inspection_Result__c ); updList.add(ass); } if (updList.size() > 0) update updList; */ } // 2021-04-16 mzy LJPH-BZPB7W SFDC点检报告更新逻辑修改 end private void updateAsset_delete() { // 触发trigger的点检报告书 List irIds = new List(); for (Inspection_Report__c old_ir : oldList) { irIds.add(old_ir.Id); } // 点检报告书中所有的保有设备 List assIds = new List(); Map assMap = new Map(); List iis = [select id, AssetId__c from Inspection_Item__c where Inspection_ReportId__c = :irIds]; for (Inspection_Item__c ii : iis) { if (assMap.containsKey(ii.AssetId__c) == false) { assIds.add(ii.AssetId__c); assMap.put(ii.AssetId__c, ii.AssetId__c); } } // 保有设备对应的所有点检报告明细 List iiList = [select id, AssetId__c, Inspection_ReportId__c, Inspection_Result__c, Inspection_Comment__c, Inspection_ReportId__r.Name, Inspection_ReportId__r.Approved_date__c from Inspection_Item__c where AssetId__c = :assIds and Inspection_ReportId__c <> :irIds order by Inspection_ReportId__r.Approved_date__c desc]; Map iiMap = new Map(); for (Inspection_Item__c ii : iiList) { if (iiMap.containsKey(ii.AssetId__c) == false && ii.Inspection_ReportId__r.Approved_date__c != null) { iiMap.put(ii.AssetId__c, ii); } } List updList = new List(); for (String assid : assIds) { Inspection_Item__c tmp = iiMap.get(assid) == null ? new Inspection_Item__c() : iiMap.get(assid); Asset ass = new Asset( Id = assid, Inspection_report_number__c = tmp.Inspection_ReportId__r.Name, Inspection_Report__c = tmp.Inspection_ReportId__c, Inspection_Comment__c = tmp.Inspection_Comment__c, Inspection_Result__c = tmp.Inspection_Result__c ); updList.add(ass); } if (updList.size() > 0) update updList; } //fxk 2021/8/31 点检计划中相应字段的赋值逻辑 star private void updateCheckPlan() { System.debug('Start'); List updateIPInfoList = new List(); Set IPIdSet = new Set(); for (Inspection_Report__c new_IRInfo : newList) { if ((new_IRInfo.Status__c != oldMap.get(new_IRInfo.Id).Status__c) && new_IRInfo.Status__c == '批准') { if (new_IRInfo.Inspectup_Plan__c != null) { IPIdSet.add(new_IRInfo.Inspectup_Plan__c); } } } Map> iplanMap = new Map>(); List sumNumsList = new List {'aEQs', 'aEQInPlans', 'failnum', 'abandonmentnum', 'assetNum', 'reports', 'iDate', 'aEQsKeyRepeat'}; Map> PlanToAssetMap = new Map>(); List ItemInfoList = new List(); if (IPIdSet.size() > 0) { ItemInfoList = [select Id, name, AssetId__c, Failourassetnumber__c, Inspection_ReportId__c, Inspection_ReportId__r.Inspectup_Plan__c, Inspection_ReportId__r.Inspection_Date__c, Inspection_ReportId__r.Failourassetnumber__c,Inspection_ReportId__r.Inspectup_Plan__r.overstep_check_interval__c, Inspection_ReportId__r.Inspectup_Plan__r.Planned_Start_Date__c, Inspection_ReportId__r.Inspectup_Plan__r.Planned_End_Date__c, Inspection_ReportId__r.Inspectup_Plan__r.Check_Object_Quantity__c, Inspection_ReportId__r.Start_Date__c, Inspection_ReportId__r.Inspection_asset_number__c, ItemStatus__c,Inspection_ReportId__r.Inspectup_Plan__r.Execution_End_Date__c, Inspection_ReportId__r.Abandonment_Num__c, Inspection_ReportId__r.Status__c from Inspection_Item__c where Inspection_ReportId__r.Inspectup_Plan__c in: IPIdSet AND Inspection_ReportId__r.Status__c = '批准']; } System.debug('-------3------' + ItemInfoList); Map IDateMap = new Map(); Map SumNumMap = new Map(); // add 如果 超出点检区间=true 则个点检计划数据不计算 fxk 2021/10/20 Star Map overstepMap = new Map(); // add 如果 超出点检区间=true 则个点检计划数据不计算 fxk 2021/10/20 End if (ItemInfoList.size() > 0) { for (Inspection_Item__c items : ItemInfoList) { Decimal aEQs = 0;//实际执行数(季度):没去重 计划内外 Decimal aEQInPlans = 0;//计划内实际执行数 Decimal failnum = 0;//点检计划,设备异常数 Decimal abandonmentnum = 0;//点检计划 放弃设备树 // Decimal Reportnum = 0;//本次点检次数(审批过后的点检报告书) String planId = items.Inspection_ReportId__r.Inspectup_Plan__c; if (iplanMap.containsKey(planId)) { SumNumMap = iplanMap.get(planId); } // iplanMap.put(ANY key, ANY value) // SumNumMap.put(planId , SumNumMap.get(planId)) if (items.Inspection_ReportId__r.Inspection_Date__c >= items.Inspection_ReportId__r.Inspectup_Plan__r.Planned_Start_Date__c) { //items.Inspection_ReportId__r.Inspection_asset_number__c;//计划内和外(实际执行数) // System.debug('-------6------'+ a ); // 实际执行数(季度):没去重 计划内外 String aEQsKeyRepeat = planId + sumNumsList[7]; if (SumNumMap.containsKey(aEQsKeyRepeat)) { aEQs = SumNumMap.get(aEQsKeyRepeat); } aEQs++; SumNumMap.put(aEQsKeyRepeat, aEQs); System.debug('-------7------' + SumNumMap ); // 实际点检设备数 去重 if (items.AssetId__c != null) { String aEQsKey = planId + sumNumsList[0]; Set AssetSet = new Set(); if (PlanToAssetMap.containsKey(aEQsKey)) { AssetSet = PlanToAssetMap.get(aEQsKey); } AssetSet.add(items.AssetId__c); PlanToAssetMap.put(aEQsKey , AssetSet); System.debug('-------8------' + PlanToAssetMap ); } } if (items.Inspection_ReportId__r.Inspection_Date__c <= items.Inspection_ReportId__r.Inspectup_Plan__r.Planned_End_Date__c && items.Inspection_ReportId__r.Inspection_Date__c >= items.Inspection_ReportId__r.Inspectup_Plan__r.Planned_Start_Date__c) { // AEQInPlans++; //items.Inspection_ReportId__r.Inspection_asset_number__c; // 计划期内完成设备数 String aEQInPlansKey = planId + sumNumsList[1]; if (SumNumMap.containsKey(aEQInPlansKey)) { AEQInPlans = SumNumMap.get(aEQInPlansKey); } AEQInPlans++; SumNumMap.put(aEQInPlansKey, AEQInPlans); System.debug('-------9------' + PlanToAssetMap ); // 计划内点检设备数 if (items.AssetId__c != null) { String assetNumKey = planId + sumNumsList[4]; Set AssetSet = new Set(); if (PlanToAssetMap.containsKey(assetNumKey)) { AssetSet = PlanToAssetMap.get(assetNumKey); } AssetSet.add(items.AssetId__c); PlanToAssetMap.put(assetNumKey , AssetSet); System.debug('-------8------' + PlanToAssetMap ); } } //点检计划,设备异常数 if (items.ItemStatus__c == 'NG' && items.AssetId__c != null) { String failnumKey = planId + sumNumsList[2]; Set AssetSet = new Set(); if (PlanToAssetMap.containsKey(failnumKey)) { AssetSet = PlanToAssetMap.get(failnumKey); } AssetSet.add(items.AssetId__c); PlanToAssetMap.put(failnumKey, AssetSet); } //点检计划 放弃设备数 if (items.ItemStatus__c == '医院放弃' && items.AssetId__c != null ) { String abandonmentnumKey = planId + sumNumsList[3]; Set AssetSet = new Set(); if (PlanToAssetMap.containsKey(abandonmentnumKey)) { AssetSet = PlanToAssetMap.get(abandonmentnumKey); } AssetSet.add(items.AssetId__c); PlanToAssetMap.put(abandonmentnumKey, AssetSet); } // 计划点检对象数 String reportKey = planId + sumNumsList[5]; SumNumMap.put(reportKey, items.Inspection_ReportId__r.Inspectup_Plan__r.Check_Object_Quantity__c); //点检报告书 检测日期 // String IDateKey = planId + sumNumsList[6]; IDateMap.put(planId, items.Inspection_ReportId__r.Inspection_Date__c); // 报告书 执行日 IDateMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c + 'Start', items.Inspection_ReportId__r.Start_Date__c); // 点检计划 完成日 IDateMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c + 'End', items.Inspection_ReportId__r.Inspectup_Plan__r.Execution_End_Date__c); // add 如果 超出点检区间=true 则个点检计划数据不计算 fxk 2021/10/20 Star // 点检计划 超出点检区间 if(items.Inspection_ReportId__r.Inspectup_Plan__r.overstep_check_interval__c){ overstepMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c,items.Inspection_ReportId__r.Inspectup_Plan__r.overstep_check_interval__c); } // add 如果 超出点检区间=true 则个点检计划数据不计算 fxk 2021/10/20 End iplanMap.put(planId, SumNumMap); } } if (IPIdSet.size() > 0) { // 点检计划赋值 for (String iPId : IPIdSet) { // add 如果 超出点检区间=true 则个点检计划数据不计算 fxk 2021/10/20 Star System.debug('超出'+overstepMap.get(iPId+'overstep')); if(!overstepMap.containskey(iPId)){ // add 如果 超出点检区间=true 则个点检计划数据不计算 fxk 2021/10/20 End Inspectup_Plan__c IPlanInfo = new Inspectup_Plan__c(); IPlanInfo.Id = iPId; SumNumMap = iplanMap.get(iPId); System.debug('-------4------' + iplanMap); System.debug('-------2------' + SumNumMap); // 20210911 gzw bug fix start // if (SumNumMap.size() > 0) { if (SumNumMap != null && SumNumMap.size() > 0 ) { // 20210911 gzw bug fix end if (PlanToAssetMap.containsKey(iPId + sumNumsList[0])) { IPlanInfo.Actual_Execution_Quantity__c = PlanToAssetMap.get(iPId + sumNumsList[0]).size();//实际点检设备数 去重 } IPlanInfo.Actual_Execution_Quantity_Inplan__c = SumNumMap.get(iPId + sumNumsList[1]);// 计划期内完成设备数 System.debug('-------11------' + SumNumMap.get(iPId + sumNumsList[1])); if (PlanToAssetMap.containsKey(iPId + sumNumsList[4])) { System.debug('-------10------' + PlanToAssetMap.get(iPId + sumNumsList[4]).size()); IPlanInfo.Planned_check_equipment_Num__c = PlanToAssetMap.get(iPId + sumNumsList[4]).size();// 计划内点检设备数 } if (PlanToAssetMap.containsKey(iPId + sumNumsList[2])) { IPlanInfo.Outlier_Quantity__c = PlanToAssetMap.get(iPId + sumNumsList[2]).size();//点检计划,设备异常数 } if (PlanToAssetMap.containsKey(iPId + sumNumsList[3])) { IPlanInfo.Abandonment_Number__c = PlanToAssetMap.get(iPId + sumNumsList[3]).size();//点检计划 放弃设备数 } System.debug('-------131------' + IPlanInfo.Planned_check_equipment_Num__c); System.debug('-------121------' + SumNumMap.get(iPId + sumNumsList[5])); if (IPlanInfo.Actual_Execution_Quantity__c == SumNumMap.get(iPId + sumNumsList[5])) { System.debug('-------13------' + IPlanInfo.Actual_Execution_Quantity__c); System.debug('-------12------' + SumNumMap.get(iPId + sumNumsList[5])); IPlanInfo.Ben_Actual_Times__c = 1;//本次点检次数(审批过后的点检报告书) if (IDateMap.get(iPId + 'End') == null) { IPlanInfo.Execution_End_Date__c = IDateMap.get(iPId);//点检计划 完成日 } } if (IDateMap.get(iPId + 'Start') == null) { System.debug('--------123------' + IDateMap.get(iPId + 'Start')); IPlanInfo.Execution_Start_Date__c = IDateMap.get(iPId);//执行开始日--检测日期 } IPlanInfo.Actual_Execute_Num__c = SumNumMap.get(iPId + sumNumsList[7]); } System.debug('=====1===='+IPlanInfo.overstep_check_interval__c); updateIPInfoList.add(IPlanInfo); System.debug('-------1------' + updateIPInfoList); } } } if (updateIPInfoList.size() > 0) { update updateIPInfoList; } // // System.debug('IPIdMap.values():' + IPIdMap.values()); // // 报告书批准后,点检计划 // List IRInfoList = [select Id, Failourassetnumber__c, Inspection_asset_number__c, Inspectup_Plan__c, Inspection_Date__c, // Submit_date__c, Abandonment_Num__c // from Inspection_Report__c where Inspectup_Plan__c in:IPIdSet and Status__c = '批准']; // // System.debug('IRInfoList:' + IRInfoList); // Map> IPToIRsMap = new Map>(); // List InsReportIdList = new List(); // for (Inspection_Report__c IRInfo : IRInfoList) { // String IPkey = String.valueOf(IRInfo.Inspectup_Plan__c); // // if (IPToIRsMap.containsKey(IPkey)) { // // List IRValue = IPToIRsMap.get(IPkey); // // IRValue.add(IRInfo); // // IPToIRsMap.put(IPkey, IRValue); // // } else { // // List IRValue1 = new List(); // // IRValue1.add(IRInfo); // // IPToIRsMap.put(IPkey, IRValue1); // // } // List IRValue = new List(); // if (IPToIRsMap.containsKey(IPkey)) { // IRValue = IPToIRsMap.get(IPkey); // } // IRValue.add(IRInfo); // IPToIRsMap.put(IPkey, IRValue); // InsReportIdList.add(IRInfo.Id); // } // List IPInfoList = [select Id, Check_Object_Quantity__c, Actual_Execution_Quantity__c, // Planned_Start_Date__c, Planned_End_Date__c // from Inspectup_Plan__c where Id in:IPToIRsMap.keySet()]; // Map> PlanToItemMap = new Map>(); // List ItemInfoList = [select Id, name, AssetId__c, Inspection_ReportId__r.Inspectup_Plan__c from Inspection_Item__c // where Inspection_ReportId__c in: InsReportIdList AND Inspection_ReportId__r.Status__c = '批准']; // for (Inspection_Item__c Item : ItemInfoList) { // set AssetSet = new set(); // if (PlanToItemMap.containsKey(Item.Inspection_ReportId__r.Inspectup_Plan__c)) { // AssetSet = PlanToItemMap.get(Item.Inspection_ReportId__r.Inspectup_Plan__c); // } // AssetSet.add(Item.AssetId__c); // PlanToItemMap.put(Item.Inspection_ReportId__r.Inspectup_Plan__c, AssetSet); // } // if (IPInfoList.size() > 0) { // for (Inspectup_Plan__c IPInfokeys : IPInfoList) { // Inspectup_Plan__c IPInfo = new Inspectup_Plan__c(); // IPInfo.Id = IPInfokeys.Id; // Decimal AEQs = 0;//计划内和外(实际执行数) // Decimal AEQInPlans = 0;//计划内实际执行数 // Decimal Failnum = 0;//点检计划,设备异常数 // Decimal Abandonmentnum = 0;//点检计划 放弃设备树 // for (Inspection_Report__c IRFeilds : IPToIRsMap.get(IPInfokeys.Id)) { // if (IRFeilds.Inspection_Date__c >= IPInfokeys.Planned_Start_Date__c) { // AEQs += IRFeilds.Inspection_asset_number__c;//计划内和外(实际执行数) // } // if (IRFeilds.Inspection_Date__c < IPInfokeys.Planned_End_Date__c // && IRFeilds.Inspection_Date__c > IPInfokeys.Planned_Start_Date__c) { // AEQInPlans += IRFeilds.Inspection_asset_number__c;//计划内实际执行数 // } // Failnum += IRFeilds.Failourassetnumber__c;//点检计划,设备异常数 // Abandonmentnum += IRFeilds.Abandonment_Num__c;//点检计划 放弃设备数 // if (IPInfokeys.Check_Object_Quantity__c == PlanToItemMap.get(IPInfokeys.Id).size()) { // IPInfo.Execution_End_Date__c = IRFeilds.Inspection_Date__c;//点检计划 完成日 // } // } // IPInfo.Planned_check_equipment_Num__c = PlanToItemMap.get(IPInfokeys.Id).size(); // IPInfo.Actual_Execution_Quantity_Inplan__c = AEQInPlans;//计划内实际执行数 // IPInfo.Actual_Execution_Quantity__c = AEQs;//计划内和外(实际执行数) // IPInfo.Outlier_Quantity__c = Failnum;//点检计划,设备异常数 // IPInfo.Abandonment_Number__c = Abandonmentnum;//点检计划 放弃设备数 // IPInfo.Ben_Actual_Times__c = IPToIRsMap.get(IPInfokeys.Id).size();//本次点检次数(审批过后的点检报告书) // updateIPInfoList.add(IPInfo); // } // // update updateIPInfoList; // } // // System.debug('updateIPInfoList:' + updateIPInfoList); // if (updateIPInfoList.size() > 0) { // update updateIPInfoList; // } } // private void updateCheckPlanSubmit() { // System.debug('--------123123123123------'); // List updateIPInfoList = new List(); // Set IPIdSet = new Set(); // for (Inspection_Report__c new_IRInfo : newList) { // if ((new_IRInfo.Status__c != oldMap.get(new_IRInfo.Id).Status__c) && new_IRInfo.Status__c == '申请中') { // if (new_IRInfo.Inspectup_Plan__c != null) { // IPIdSet.add(new_IRInfo.Inspectup_Plan__c); // // Inspectup_Plan__c IPInfo = new Inspectup_Plan__c(); // // IPInfo.Id = new_IRInfo.Inspectup_Plan__c; // // System.debug('--------123123------' + new_IRInfo.Start_Date__c); // // if (new_IRInfo.Start_Date__c == null) { // // System.debug('--------123------' + new_IRInfo.Start_Date__c); // // IPInfo.Execution_Start_Date__c = new_IRInfo.Inspection_Date__c;//执行开始日--申请日 // // } // // updateIPInfoList.add(IPInfo); // } // } // } // // ItemSql(IPIdSet, '申请中', '批准'); // List ItemInfoList = new List(); // if (IPIdSet.size() > 0) { // ItemInfoList = [select Id, name, AssetId__c, Failourassetnumber__c, Inspection_ReportId__c, Inspection_ReportId__r.Inspectup_Plan__c, // Inspection_ReportId__r.Inspection_Date__c, Inspection_ReportId__r.Failourassetnumber__c, // Inspection_ReportId__r.Inspectup_Plan__r.Planned_Start_Date__c, Inspection_ReportId__r.Inspectup_Plan__r.Planned_End_Date__c, // Inspection_ReportId__r.Inspectup_Plan__r.Check_Object_Quantity__c, // Inspection_ReportId__r.Inspection_asset_number__c, ItemStatus__c, Inspection_ReportId__r.Start_Date__c, // Inspection_ReportId__r.Abandonment_Num__c, Inspection_ReportId__r.Status__c from Inspection_Item__c // where Inspection_ReportId__r.Inspectup_Plan__c in: IPIdSet AND (Inspection_ReportId__r.Status__c = '申请中' OR Inspection_ReportId__r.Status__c = '批准')]; // } // // 获取日期 // Map IDateMap = new Map(); // // 去重设备数 // Map> NumsMap = new Map>(); // // 获取设备数量 // Map SumNumMap = new Map(); // if (ItemInfoList.size() > 0) { // for (Inspection_Item__c items : ItemInfoList) { // // 提交或申请设备数 // if (items.AssetId__c != null) { // Set AssetSet = new Set(); // if (NumsMap.containsKey(items.Inspection_ReportId__r.Inspectup_Plan__c)) { // AssetSet = NumsMap.get(items.Inspection_ReportId__r.Inspectup_Plan__c); // } // AssetSet.add(items.AssetId__c); // NumsMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c, AssetSet); // } // // 报告书 检测日期(为申请日和完成日赋值) // IDateMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c, items.Inspection_ReportId__r.Inspection_Date__c); // // 报告书 执行日 // IDateMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c + 'Start', items.Inspection_ReportId__r.Start_Date__c); // // 计划点检对象数 // SumNumMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c + 'PlanNum', items.Inspection_ReportId__r.Inspectup_Plan__r.Check_Object_Quantity__c); // } // } // if (IPIdSet.size() > 0) { // for (String iPId : IPIdSet) { // Inspectup_Plan__c IPlanInfo = new Inspectup_Plan__c(); // IPlanInfo.Id = iPId; // System.debug('--------123321------' + IDateMap.get(iPId + 'Start')); // if (IDateMap.get(iPId + 'Start') == null) { // System.debug('--------123------' + IDateMap.get(iPId + 'Start')); // IPlanInfo.Execution_Start_Date__c = IDateMap.get(iPId);//执行开始日--检测日期 // } // if (NumsMap.containsKey(iPId)) { // IPlanInfo.Submit_Approval_Num__c = NumsMap.get(iPId).size(); // } // if (IPlanInfo.Submit_Approval_Num__c == SumNumMap.get(iPId + 'PlanNum')) { // IPlanInfo.Execution_End_Date__c = IDateMap.get(iPId);//完成日--检测日期 // } // updateIPInfoList.add(IPlanInfo); // } // } // if (updateIPInfoList.size() > 0) { // update updateIPInfoList; // } // } // private void updateCheckPlanreject() { // List updateIPInfoList = new List(); // Set IRIdSet = new Set(); // Set IPIdSet = new Set(); // for (Inspection_Report__c new_IRInfo : newList) { // if ((new_IRInfo.Status__c != oldMap.get(new_IRInfo.Id).Status__c) // && new_IRInfo.Status__c == '草案中' // && oldMap.get(new_IRInfo.Id).Status__c == '申请中') { // if (new_IRInfo.Inspectup_Plan__c != null ) { // IRIdSet.add(new_IRInfo.Id); // IPIdSet.add(new_IRInfo.Inspectup_Plan__c); // } // } // } // List ItemInfoList = new List(); // if (IPIdSet.size() > 0 && IRIdSet.size() > 0) { // ItemInfoList = [select Id, name, AssetId__c, Failourassetnumber__c, Inspection_ReportId__c, Inspection_ReportId__r.Inspectup_Plan__c, // Inspection_ReportId__r.Inspection_Date__c, Inspection_ReportId__r.Failourassetnumber__c, // Inspection_ReportId__r.Inspectup_Plan__r.Planned_Start_Date__c, Inspection_ReportId__r.Inspectup_Plan__r.Planned_End_Date__c, // Inspection_ReportId__r.Inspectup_Plan__r.Check_Object_Quantity__c, // Inspection_ReportId__r.Inspection_asset_number__c, ItemStatus__c, Inspection_ReportId__r.Inspectup_Plan__r.Submit_Approval_Num__c, // Inspection_ReportId__r.Abandonment_Num__c, Inspection_ReportId__r.Status__c from Inspection_Item__c // where Inspection_ReportId__r.Inspectup_Plan__c in: IPIdSet and Inspection_ReportId__c in: IRIdSet]; // } // // 驳回(去重设备数) // Map> NumsMap = new Map>(); // // 获取设备数量 // Map SumNumMap = new Map(); // if (ItemInfoList.size() > 0) { // for (Inspection_Item__c items : ItemInfoList) { // // 提交或申请设备数(驳回设备数) // if (items.AssetId__c != null) { // Set AssetSet = new Set(); // if (NumsMap.containsKey(items.Inspection_ReportId__r.Inspectup_Plan__c)) { // AssetSet = NumsMap.get(items.Inspection_ReportId__r.Inspectup_Plan__c); // } // AssetSet.add(items.AssetId__c); // NumsMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c, AssetSet); // } // // 提交或申请设备数 // SumNumMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c, items.Inspection_ReportId__r.Inspectup_Plan__r.Submit_Approval_Num__c); // } // } // if (IPIdSet.size() > 0) { // for (String iPId : IPIdSet) { // Inspectup_Plan__c IPlanInfo = new Inspectup_Plan__c(); // IPlanInfo.Id = iPId; // if (NumsMap.containsKey(iPId)) { // IPlanInfo.Submit_Approval_Num__c = SumNumMap.get(iPId) - NumsMap.get(iPId).size(); // } // IPlanInfo.Execution_End_Date__c = null; // updateIPInfoList.add(IPlanInfo); // } // } // if (updateIPInfoList.size() > 0) { // update updateIPInfoList; // } // } // private List ItemSql(Set IPIdsSet, String Status1, String Status2) { // List ItemInfoList = [select Id, name, AssetId__c, Failourassetnumber__c, Inspection_ReportId__c, Inspection_ReportId__r.Inspectup_Plan__c, // Inspection_ReportId__r.Inspection_Date__c, Inspection_ReportId__r.Failourassetnumber__c, // Inspection_ReportId__r.Inspectup_Plan__r.Planned_Start_Date__c, Inspection_ReportId__r.Inspectup_Plan__r.Planned_End_Date__c, // Inspection_ReportId__r.Inspectup_Plan__r.Check_Object_Quantity__c, // Inspection_ReportId__r.Inspection_asset_number__c, ItemStatus__c, // Inspection_ReportId__r.Abandonment_Num__c, Inspection_ReportId__r.Status__c from Inspection_Item__c // where Inspection_ReportId__r.Inspectup_Plan__c in: IPIdsSet AND Inspection_ReportId__r.Status__c = : Status1 AND Inspection_ReportId__r.Status__c = :Status2]; // // return ItemInfoList; // Map> NumsMap = new Map>(); // for (Inspection_Item__c items : ItemInfoList) { // Set AssetSet = new Set(); // if (NumsMap.containsKey(items.Inspection_ReportId__r.Inspectup_Plan__c)) { // AssetSet = NumsMap.get(items.Inspection_ReportId__r.Inspectup_Plan__c); // } // AssetSet.add(items.AssetId__c); // NumsMap.put(items.Inspection_ReportId__r.Inspectup_Plan__c, AssetSet); // } // } //fxk 2021/8/31 点检计划中相应字段的赋值逻辑 end //add by rentx 20210823 start 在批准之后更新 使用ET 等信息到维修合同上 private void updateVM() { // 批准后的点检报告书上传至AWS(关联的维修合同对应的修理来源是报修子单) Map idMap = new Map(); List updatevmList = new List(); //1. 当前操作是否变为 批准 for (Inspection_Report__c rep : newList) { if (rep.Status__c == '批准' && oldMap.get(rep.Id).Status__c != '批准' ) { //2. 判断当前报告书是否关联维修合同 if (rep.Contract__c != null) { Boolean flag = false; Maintenance_Contract__c vm = new Maintenance_Contract__c(); vm.Id = rep.Contract__c; if (rep.Used_ET__c != null && rep.Used_ET__c != '') { vm.Used_ET__c = rep.Used_ET__c; flag = true; } if (rep.UsedMachine__c != null && rep.UsedMachine__c != '') { vm.UsedMachine__c = rep.UsedMachine__c; flag = true; } if (rep.Disinfectant__c != null && rep.Disinfectant__c != '') { vm.Disinfectant__c = rep.Disinfectant__c; flag = true; } if (rep.CleaningFluid__c != null && rep.CleaningFluid__c != '') { vm.CleaningFluid__c = rep.CleaningFluid__c; flag = true; } if (rep.Remarks__c != null && rep.Remarks__c != '') { vm.Remarks__c = rep.Remarks__c; flag = true; } if (rep.Mode__c != null && rep.Mode__c != '') { vm.Mode__c = rep.Mode__c; flag = true; } if (rep.SterilizationMethod__c != null && rep.SterilizationMethod__c != '') { vm.SterilizationMethod__c = rep.SterilizationMethod__c; flag = true; } if (flag) { updatevmList.add(vm); } // 记录类型是 合同点检 时,发送至ASW if(rep.RecordTypeId.equals(System.Label.InspectionReportRecordTypeId)){ idMap.put(rep.Id, rep.Contract__c); } } } } if (updatevmList.size() > 0) { update updatevmList; } if (idMap.size() > 0) { NFM602Controller.sendToAWS(idMap); } } //add by rentx 20210823 end 在批准之后更新 使用ET 等信息到维修合同上 }