liuyn
2024-03-11 a87f1c3df03078814ee97ad0c8ac200a232419e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
@IsTest
private class MonthEndAutoJudgeNotUpdateBatchTest {
 
    /**
     * 创建出当月所有日期
     */
    @TestSetup
    static void makeData(){
 
        // 获取当前月份的第一天
        Date firstDayOfMonth = Date.today().toStartOfMonth();
        // 将月份推到下一个月
        Date nextMonth = Date.newInstance(firstDayOfMonth.year(), firstDayOfMonth.month() + 1, 1);
        // 获取当前月份最后一天
        System.debug('lastDay:' + nextMonth.addDays(-1));
        Date lastDayOfMonth = nextMonth.addDays(-1);
 
        List<OlympusCalendar__c> currentMonthDays = new List<OlympusCalendar__c>();
 
        for(Integer i = firstDayOfMonth.day(); i <= lastDayOfMonth.day(); i++){
            Date OlympusCalendarDate1 = Date.newInstance(firstDayOfMonth.year(),firstDayOfMonth.month(),i);
            OlympusCalendar__c oc1 = new OlympusCalendar__c(Date__c = OlympusCalendarDate1);
            currentMonthDays.add(oc1);
        }
 
        insert currentMonthDays;
 
    }
 
    static testMethod void test() {
        // 预测发货日  
        Date forecastDate = Date.today().addMonths(1);
        // 发货日
        Date delivery = forecastDate.addDays(-5);
        //14.收到合同日
        Date conReceivedDate = Date.today().addMonths(-5);
 
        Statu_Achievements__c sa1 = new Statu_Achievements__c(Name='测试数据1',Shipping_Scheduled_Date__c=forecastDate,
            DeliveryStatus__c='未交付',DeliveryDate__c=delivery,PaymentStatus__c='尾款支付',
            Monthly_forecast_shipping__c='本月发货预测',NM_forecast_shipping__c=null,
            UnshippedAmount__c=42529.0,ContractAmount__c=42529.0,Opportunity__c='00610000016seNJAAY',End_User_price__c=51000.0,
            InstallStatus__c='已提交',ContractReceivedDate__c=conReceivedDate);
 
 
        // 预测发货日  
        Date forecastDate2 = Date.today();
        // 发货日
        Date delivery2 = forecastDate.addDays(-1);
        //14.收到合同日
        Date conReceivedDate2 = Date.today().addMonths(-5);
 
        Statu_Achievements__c sa2 = new Statu_Achievements__c(Name='测试数据2',Shipping_Scheduled_Date__c=forecastDate2,
            DeliveryStatus__c='已完全交付',DeliveryDate__c=delivery2,PaymentStatus__c='尾款支付',
            Monthly_forecast_shipping__c=null,NM_forecast_shipping__c=null,
            UnshippedAmount__c=42529.0,ContractAmount__c=42529.0,Opportunity__c='00610000016seNJAAY',End_User_price__c=51000.0,
            InstallStatus__c='已提交',ContractReceivedDate__c=conReceivedDate2);
 
        insert new Statu_Achievements__c[]{sa1,sa2};
 
 
        System.Test.startTest();
        List<Id> ids = new List<Id>();
        ids.add(sa1.Id);
        ids.add(sa2.Id);
        System.debug('ids'+ids);
        Database.executeBatch(new MonthEndAutoJudgeNotUpdateBatch(ids));
        System.Test.stopTest();
 
        sa1 = [SELECT Id,Name,Monthly_forecast_shipping__c,NM_forecast_shipping__c,Shipping_Scheduled_Date__c FROM Statu_Achievements__c WHERE Id = :sa1.Id];
        System.debug('sa1.Monthly_forecast_shipping__c'+sa1.Monthly_forecast_shipping__c);
        System.debug('sa1.NM_forecast_shipping__c'+sa1.NM_forecast_shipping__c);
        // System.assertEquals(null, sa1.Monthly_forecast_shipping__c);
        // System.assertEquals('次月发货预测', sa1.NM_forecast_shipping__c);
 
    }
}