public without sharing class QISMBCTrigger { // QISMBCのId public static Set QISMBS_Ids = new Set(); // after insert, after update public static void setQISValues(List newList, List oldList, Map newMap, Map oldMap) { List updQisList = new LIst(); for (QIS_M_BC__c qm : newList) { if (qm.QIS_request_name__c != null) { QIS_Report__c qr = new QIS_Report__c(Id = qm.QIS_request_name__c); // ① /* if (qm.QIS_submit_date_for_MBC__c != null) { qr.Wether_publish_QIS_not__c = '发行'; } else { qr.Wether_publish_QIS_not__c = '不发行'; } */ // ② qr.QIS_no_for_m_BC__c = qm.Name; // ③ qr.QIS_submit_date_for_MBC__c = qm.QIS_submit_date_for_MBC__c; qr.QIS_M_BC_submit_person__c = qm.OwnerAlias__c; // ④ qr.QIS_M_BC_reception__c = qm.QIS_M_BC_reception__c; // ⑤ qr.QIS_M_BC_reply_date__c = qm.QIS_M_BC_answer_day__c; // ⑥ qr.Received_feiqi_date__c = qm.Received_feiqi_date__c; // ⑦ qr.QIS_M_BC_answer__c = qm.QIS_M_BC_answer_detail__c; updQisList.add(qr); } } if (updQisList.size() > 0) update updQisList; } // before insert, before update public static void setMails(List newList, List oldList, Map newMap, Map oldMap) { // 使用的QISID Map use_qisid = new Map(); for (QIS_M_BC__c local : newList) { if (use_qisid.containskey(local.QIS_request_name__c) == false) { use_qisid.put(local.QIS_request_name__c, local.id); } } // 检索QIS的mail信息 Map qisMap = new Map(); //LJPH-C5H8ST QIS判定邮件抄送添加 追加OCM_Repair_Mail1__c字段 liuyan List qisList = [select id, OCM_Manager_Mail__c, OCM_Member_Mail__c,OCM_Repair_Mail__c,OCM_Repair_Mail1__c from QIS_Report__c where id in :use_qisid.keyset()]; for (QIS_Report__c qis : qisList) { if (qisMap.containskey(qis.Id) == false) { qisMap.put(qis.Id, qis); } } // repair,Member,Manager的mail拷贝到QISMBC for (QIS_M_BC__c local : newList) { QIS_Report__c qis = qisMap.get(local.QIS_request_name__c); local.OCM_Manager_Mail__c = qis == null ? null : qis.OCM_Manager_Mail__c; local.OCM_Member_Mail__c = qis == null ? null : qis.OCM_Member_Mail__c; local.OCM_Repair_Mail__c = qis == null ? null : qis.OCM_Repair_Mail__c; //LJPH-C5H8ST QIS判定邮件抄送添加 追加OCM_Member_Mail1__c字段 liuyan START local.OCM_Repair_Mail1__c = qis == null ? null : qis.OCM_Repair_Mail1__c; //END } } // after insert, after update, after delete public static Boolean checkAndSetNo(List newList, List oldList, Map newMap, Map oldMap) { // 新规或更新后 if (Trigger.isInsert || Trigger.isUpdate) { // 使用的QISID Map use_qisid = new Map(); for (QIS_M_BC__c local : newList) { if (use_qisid.containskey(local.QIS_request_name__c) == false) { use_qisid.put(local.QIS_request_name__c, local.id); } } // 所有使用这些QISID的QISMBC Map all_qismbc = new Map(); List qismbcList = [select id,name,QIS_request_name__c from QIS_M_BC__c where QIS_request_name__c in :use_qisid.keyset()]; for (QIS_M_BC__c qismbc : qismbcList) { if (qismbc.QIS_request_name__c != null && qismbc.id != use_qisid.get(qismbc.QIS_request_name__c)) { QIS_M_BC__c q = newMap.get(use_qisid.get(qismbc.QIS_request_name__c)); q.addError('一个QIS只能创建一个QISMBC'); return false; } } } // 更新QIS的QIS No(M-BC) List qisList = new List(); List oldqisList = new List(); if (Trigger.isInsert) { // 新建QIS_M_BC全部更新 for (QIS_M_BC__c local : newList) { QIS_Report__c qis = new QIS_Report__c(id=local.QIS_request_name__c, QIS_no_for_m_BC__c=local.id); qisList.add(qis); } } if (Trigger.isUpdate) { for (QIS_M_BC__c local : newList) { QIS_M_BC__c old = oldMap.get(local.Id); // QIS号码变更时,需要更新 if (old.QIS_request_name__c != local.QIS_request_name__c) { QIS_Report__c qis_old = new QIS_Report__c(id=old.QIS_request_name__c, QIS_no_for_m_BC__c=''); oldqisList.add(qis_old); QIS_Report__c qis_new = new QIS_Report__c(id=local.QIS_request_name__c, QIS_no_for_m_BC__c=local.Name); qisList.add(qis_new); } } } if (Trigger.isDelete) { // 删除QIS_M_BC全部更新 for (QIS_M_BC__c local : oldList) { QIS_Report__c qis = new QIS_Report__c(id=local.QIS_request_name__c, QIS_no_for_m_BC__c=''); oldqisList.add(qis); } } // 更新QIS if (oldqisList.size() > 0) { update oldqisList; } if (qisList.size() > 0) { update qisList; } return true; } }