高章伟
2022-02-18 8b5f4c6c281cfa548f92de52c8021e37aa81901e
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
@isTest
private class UpdateSAPContractNoTextBatchTest {
 
    static testMethod void testMethod1() {
        StaticParameter.ConsumableAssetHanderTrigger = true;
 
        Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true);
        insert new Product2[] {prod01};
        Product2__c pro1 = new Product2__c(Name='Pro001',OT_CODE_Text__c='N20201020',Product2__c = prod01.Id);
        insert new Product2__c[] {pro1};
 
        //创建明细2
        Consumable_order_details2__c order1 = new Consumable_order_details2__c();
        order1.Name                         = 'TEST_01_10161144';
        order1.SerialLotNo__c               = '86K';
        order1.Consumable_Product__c        = pro1.Id;
        order1.RecordTypeId                 = System.Label.RT_ConOrderDetail2_Delivery;
        order1.Consumable_order_minor__c    = null;
        order1.TracingCode__c               = 'BXJRA';
        insert order1;
        List<Consumable_order_details2__c> coclist = [select id,Consumable_product__r.OT_CODE_Text__c from Consumable_order_details2__c];
 
        // System.debug('tessNo__c,,SerialLotNo__c:'+order1.SerialLotNo__c);
        // System.debug('tessNo__c,,TracingCode__c:'+order1.TracingCode__c);
        System.debug('pro1 OT_CODE_Text__c   ,'+pro1.OT_CODE_Text__c);
        System.debug('tessNo__c,'+order1.Consumable_product__r.OT_CODE_Text__c + ':' + order1.sNo__c);
        System.debug('tessNo__c,'+order1.Consumable_product__r.OT_CODE_Text__c + ':' + order1.SerialLotNo__c);
 
 
        // Consumable_order_details2__c order2 = new Consumable_order_details2__c();
        // order2.Name                         = 'TEST_02_10161144';
        // order2.SerialLotNo__c                 = '86F';
        // order2.Consumable_Product__c         = pro2.Id;
        // order2.RecordTypeId                 = System.Label.RT_ConOrderDetail2_Delivery;
        // order2.Bar_Code__c                     = '1234567880900000000097777675656454ZDH450RXREN';
        // order2.Consumable_order_minor__c     = null;
        // order2.TracingCode__c                 = 'RXREN';
        // insert order2;
 
        Opportunity opp = new Opportunity();
 
        opp.Name='testOpp1';
        opp.StageName='引合';
        opp.CloseDate=Date.today();
        opp.Sales_Root__c = '販売店';
        opp.Competitor__c ='A';
        opp.Click_Close_Date__c = null;
        insert opp;
 
        List<Opportunity> opplist = [select id,Name from Opportunity];
 
        //创建注残
        Statu_Achievements__c sac = new Statu_Achievements__c();
 
        sac.name = 'zhucan_one';
        sac.Opportunity__c = opp.id;
        sac.DeliveryDate__c = Date.today();
        sac.ContractNO__c = 'ContractNO1';
        sac.ContractAmount__c = 100;
        insert sac;
        System.debug('sac,,oppid:'+sac.Opportunity__c);
 
 
        Account hospital = new Account();
        hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id;
        hospital.Name = 'test hospital';
        hospital.Is_Active__c = '有効';
        hospital.Attribute_Type__c = '卫生部';
        hospital.Speciality_Type__c = '综合医院';
        hospital.Grade__c = '一级';
        hospital.OCM_Category__c = 'SLTV';
        hospital.Is_Medical__c = '医疗机构';
        hospital.Town__c = '东京';
        insert hospital;
 
        Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH'];
 
        Account dep = new Account();
        dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id;
        dep.Name = 'test dep';
        dep.AgentCode_Ext__c = '9999998';
        dep.ParentId = strategicDep[0].Id;
        dep.Department_Class__c = strategicDep[0].Id;
        dep.Hospital__c = hospital.Id;
        insert dep;
 
        Product2 pro5 = new Product2(Name='name05',IsActive=true,Family='SP',
                                     Fixture_Model_No__c='n05',Serial_Lot_No__c='S/N tracing',
                                     Fixture_Model_No_T__c = 'n05',
                                     ProductCode_Ext__c='pc05',Manual_Entry__c=false,ProductCode = 'N20201020');
 
 
        insert pro5;
 
        //创建对应的保有设备
        Asset asset1                        = new Asset(Asset_Owner__c = 'Olympus');
        asset1.RecordTypeId                 = System.Label.Asset_RecordType;
        asset1.SerialNumber                 = '86K';
        asset1.Name                         = 'asset1';
        asset1.AccountId                    = dep.Id;
        asset1.Hospital__c                  = hospital.Id;
        asset1.Backorder__c                 = sac.Id;
        asset1.IsCompetitorProduct          = true;
        asset1.Product2Id                   = pro5.Id;
        asset1.Product_Serial_No__c         = '123:321:2321';
        insert asset1;
 
        List<Asset> alist = [select id,OT_CODE__c,TocodeAndSerialNumber__c from Asset];
        System.debug('TocodeAndSerialNumber__c::'+alist);
        for (Asset ass : alist ) {
            System.debug('12121:OT_CODE__c::'+ass.OT_CODE__c);
        }
 
        // List<Consumable_order_details2__c> listt = [SELECT Id FROM Consumable_order_details2__c where ContractNo__c = null limit 1];
        System.Test.startTest();
        List<String> IdList=new List<String>();
        IdList.add(String.valueOf(order1.Id));
        Database.executeBatch(new UpdateSAPContractNoTextBatch(IdList));
        Database.executeBatch(new UpdateSAPContractNoTextBatch());
        System.Test.stopTest();
 
 
    }
}