/** * MakeAssetHistory.triggerを動かすために一部ロジックを追加 * 填写完毕 後、明細のAssetを更新、MakeAssetHistory.triggerにて履歴を削除、更新する */ public without sharing class OFSInsReportAssetHistoryController { // MakeAssetHistory.trigger用、何回も呼び出すので、ここで項目が重複しないようにするため public static Map> astHistoryMap = new Map>(); public static Map> astHistoryUpsertMap = new Map>(); // MakeAssetHistory.trigger用のメソッド public static void upsertAssetHistory(List ahList) { if (ahList.size() > 0) { upsert ahList; } } // MakeAssetHistory.trigger用のメソッド public static void upsertExtAssetHistory(List ahUpsertList) { if (ahUpsertList.size() > 0) { upsert ahUpsertList Asset_Inspection_ExtID__c; } } public static void delAssetHistoryExtIdList(List ahDelExtIdList) { if (ahDelExtIdList.size() > 0) { List ahList = [Select Id from AssetHistory__c where Asset_Inspection_ExtID__c IN: ahDelExtIdList]; if (ahList.size() > 0) delete ahList; } } public static void delAssetHistory() { List ahList = [Select Id from AssetHistory__c where AssetId__c = null]; if (ahList.size() > 0) delete ahList; } public static void upsertInspection_Report(Inspection_Report__c ir) { system.debug(ir.Id); upsert ir; } public static void deleteInspection_Item(Inspection_Report__c ir, List irItems) { if (irItems.size() > 0) { delete irItems; if (ir.status__c != '草案中') { List astIdList = new List(); List ahDelList = new List(); for (Inspection_Item__c irItem : irItems) { if (irItem.AssetId__c != null) { astIdList.add(irItem.AssetId__c); } } if (astIdList.size() > 0) { for (Asset ast : [Select Id, Inspection_report_number__c from Asset where Id IN :astIdList]) { // 同じ点検番号のもの再度提出時、AssetHistoryを作り直します if (ast.Inspection_report_number__c == ir.Name) { ast.Inspection_report_number__c = ''; ast.Inspection_Report__c = null; ast.Inspection_Result__c = ''; ast.Last_inspection_staff__c = null; ast.Final_Examination_Date__c = null; ast.Inspection_Comment__c = ''; ahDelList.add(ast); } } if (ahDelList.size() > 0) update ahDelList; } } } } public static void upsertInspection_Item(Inspection_Report__c ir, List irItems) { if (irItems.size() > 0) { upsert irItems; //2021-05-12 mzy update LJPH-BZPB7W SFDC点检报告更新逻辑修改 start //现在想要的是通过batch来更新保有设备的信息,在点检报告书提交时只把标识 √勾上就行 //因为报告书提交的时候状态会发生改变,触发器(InspectionReportTriggerHandler)里会自动给报告书进行 打勾√ /* List ahList = new List(); for (Inspection_Item__c irItem : irItems) { if (irItem.AssetId__c != null) { if (ir.status__c != '草案中') { ahList.add(new Asset(Id = irItem.AssetId__c, Inspection_report_number__c = ir.Name, Inspection_Report__c = ir.id, Inspection_Result__c = irItem.Inspection_Result__c, Last_Inspection_staff__c = ir.Reporter__c, Final_Examination_Date__c = ir.Inspection_Date__c, Inspection_Comment__c = irItem.Inspection_Comment__c )); } else { // TODO 同じ点検番号のもの再度提出時、AssetHistoryを作り直しますので、ここは AssetHistoryを削除しなくでもいいでしょう } } } if (ahList.size() > 0) { update ahList; }*/ //2021-05-12 mzy update LJPH-BZPB7W SFDC点检报告更新逻辑修改 end } } }