高章伟
2023-03-02 e3c02c03dd2de442bbced87236f60a13a1cd154e
force-app/main/default/classes/RepairTrigger.cls
@@ -1,4 +1,36 @@
public without sharing class RepairTrigger {
    //before insert, brfore update
    public static void sendEmailByInspectionFailureCause(List<Repair__c> newList, Map<Id, Repair__c> newMap, List<Repair__c> oldList, Map<Id, Repair__c> oldMap){
        EmailTemplate et=[Select id from EmailTemplate where name = '修理报价信息更新' limit 1];
        List<Id> needUpdateList = new List<Id>();
        for(Repair__c re : newList){
            if((re.Repair_Firstestimated_Date_formula__c != null && re.Repair_Quotation_Id__c != oldMap.get(re.Id).Repair_Quotation_Id__c) || re.InspectionFailureCause__c != oldMap.get(re.Id).InspectionFailureCause__c){
                needUpdateList.add(re.Id);
            }
        }
        String[] toccAddresses = System.Label.RepairUpdatecc.split(';');
        String[] toAddresses = System.Label.RepairUpdateTo.split(';');
        List<Messaging.SingleEmailMessage> emails = new List<Messaging.SingleEmailMessage>();
        for(Id repairId : needUpdateList){
            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
            mail = Messaging.renderStoredEmailTemplate(et.Id, null , repairId);
            mail.setSaveAsActivity(false);
            mail.setToAddresses(toAddresses);
            mail.setCcAddresses(toccAddresses);
            emails.add(mail);
        }
    }
    // before insert, before update
    public static void setRepairWorkday(List<Repair__c> newList, Map<Id, Repair__c> newMap, List<Repair__c> oldList, Map<Id, Repair__c> oldMap) {
        // 日历查询开始
@@ -105,7 +137,7 @@
        Map<String, List<Repair__c>> repaMap = new Map<String, List<Repair__c>>();
        List<Repair__c> repList = [select id, Status1__c, Status2__c, Return_Without_Repair_Reason__c, Contract_status__c, Return_Without_Repair_IF__c, Failure_Occurrence_Date__c,
        List<Repair__c> repList = [select id, Status1__c, Status2__c, Return_Without_Repair_Reason__c, Contract_status__c, Return_Without_Repair_IF__c, Failure_Occurrence_Date__c,CancellationReason__c,
                                   Delivered_Product__c
                                   // LJPH-C67A6E gzw 逻辑fix start
                                   ,FSE_ApplyForRepair_Day__c,Contract_Start_Date__c,Contract_End_Date__c
@@ -134,12 +166,33 @@
                if (rList[0] != null) {
                    if (rList[0].Return_Without_Repair_IF__c == true) {
                        //判断弃修的逻辑
                        // 20230207“弃修”“修理中”设备判断逻辑修改 start
                        if (rList[0].Return_Without_Repair_Reason__c == 'I/F理由、確認' &&(rList[0].CancellationReason__c == '报价单到期'
                            || rList[0].CancellationReason__c == '废弃' || rList[0].CancellationReason__c == '购买新品' || rList[0].CancellationReason__c == '零件停产'
                            || rList[0].CancellationReason__c == '零件已停止生产' || rList[0].CancellationReason__c == '到其他公司修理' || rList[0].CancellationReason__c == '其他'
                            || rList[0].CancellationReason__c == '修理价格高' || rList[0].CancellationReason__c == '坚持继续使用' || rList[0].CancellationReason__c == '无法修理'
                            || rList[0].CancellationReason__c == '修理价格太高' || rList[0].CancellationReason__c == '用户坚持继续使用' || rList[0].CancellationReason__c == '无法修理返品')) {
                                if (reason != null) {
                                    if (reason.contains('修理中')) {
                                        a.Reson_Can_not_Warranty__c = reason.replace('修理中', '');
                                    }
                                    if (!reason.contains('弃修')) {
                                        a.Reson_Can_not_Warranty__c = reason + '弃修';
                                    }
                                } else {
                                    a.Reson_Can_not_Warranty__c = '弃修';
                                }
                        }
                        // 20230207“弃修”“修理中”设备判断逻辑修改 end
                        if (rList[0].Return_Without_Repair_Reason__c == '1.修理价格太高' || rList[0].Return_Without_Repair_Reason__c == '2.到其他公司修理'
                                || rList[0].Return_Without_Repair_Reason__c == '4.坚持继续使用' || rList[0].Return_Without_Repair_Reason__c == '3.报价单超期'
                                || rList[0].Return_Without_Repair_Reason__c == '5.废弃' || rList[0].Return_Without_Repair_Reason__c == '6.购买新品'
                                || rList[0].Return_Without_Repair_Reason__c == '8.乾燥') {
                            //ass = assMap.get(rpc.Delivered_Product__c);
                            if (reason != null) {
                                if (reason.contains('修理中')) {
                                    a.Reson_Can_not_Warranty__c = reason.replace('修理中', '');
                                }
                                if (!reason.contains('弃修')) {
                                    a.Reson_Can_not_Warranty__c = reason + '弃修';
                                }
@@ -164,7 +217,7 @@
                        // LJPH-C67A6E gzw 逻辑fix start
                        // if (rList[0].Contract_status__c != '契約') {
                        if (!(rList[0].Contract_status__c == '契約' ||
                            (rList[0].FSE_ApplyForRepair_Day__c >= rList[0].Contract_Start_Date__c && rList[0].FSE_ApplyForRepair_Day__c >= rList[0].Contract_End_Date__c))) {
                            (rList[0].FSE_ApplyForRepair_Day__c >= rList[0].Contract_Start_Date__c && rList[0].FSE_ApplyForRepair_Day__c <= rList[0].Contract_End_Date__c))) {
                        // LJPH-C67A6E gzw 逻辑fix end
                            if (rList[0].Status2__c == '01.分公司受理完毕' || rList[0].Status2__c == '02.RC受理完毕' || rList[0].Status2__c == '03.报价检查结束' || rList[0].Status2__c == '04.报价跟进中') {
                                if (reason != null) {
@@ -232,7 +285,6 @@
        }
        // 20210622 SQL优化 End
        System.debug('===========> end');
    }
    //wwp   2021/10/15    维修中心赋值新加西安 杭州 成都              start
@@ -776,8 +828,9 @@
            rpOld.addError('数据已经删除或者取消不能再修改!!!!');
            return;
        }
        System.debug('rpNew.Status1__c ==' + rpNew.Status1__c);
        if (rpNew.Status1__c == '0.取消') {
            System.debug('rpNew.Status1__c == 取消');
            if (rpNew.Status__c != rpOld.Status__c) {
                return;
            }
@@ -1215,16 +1268,63 @@
            //     chkFlg = false;
            // }
            System.debug('chkFlg = ' + chkFlg);
            if (!chkFlg && !System.Test.isRunningTest()) {
                rpOld.addError('数据已经删除或者取消不能再修改!');
                return;
            } else {
                integer i = 0;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                i++;
                return;
            }
        }
        System.debug('===========> end');
    }
}