李彤
2023-05-18 49dfe80719274f1548737d2e73f78d0604081ccc
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
public without sharing class TenderLostController {
 
    //初始化
    @AuraEnabled
    public static  String InitData(String ParamIdStr) {
        //根据招标项目Id  查  招标项目名称  作为 询价名称
        List<Tender_information__c> tenList = Database.query('Select Id, Name From Tender_information__c Where Id = : ParamIdStr ');
        Opportunity opp = new Opportunity();
        if(tenList.size() > 0){
            opp.Name = tenList[0].Name;
            opp.Bidding_Project_Name_Bid__c = ParamIdStr;
        }
        return JSON.serialize(opp);
    }
 
    // 已关联的医院
    @AuraEnabled
    public static List<String> LinkedHospitals(String ParamIdStr) {
        List<Tender_information__c> tenList = Database.query('Select Id, Hospital__c, Hospital1__c, Hospital2__c, Hospital3__c, Hospital4__c From Tender_information__c Where Id = : ParamIdStr ');
        List<String> hospitals = new List<String>();
        if(tenList.size() > 0){
            if (String.isNotBlank(tenList[0].Hospital__c)) {
                hospitals.add(tenList[0].Hospital__c);
            }
            if (String.isNotBlank(tenList[0].Hospital1__c)) {
                hospitals.add(tenList[0].Hospital1__c);
            }
            if (String.isNotBlank(tenList[0].Hospital2__c)) {
                hospitals.add(tenList[0].Hospital2__c);
            }
            if (String.isNotBlank(tenList[0].Hospital3__c)) {
                hospitals.add(tenList[0].Hospital3__c);
            }
            if (String.isNotBlank(tenList[0].Hospital4__c)) {
                hospitals.add(tenList[0].Hospital4__c);
            }
        }
        return hospitals;
    }
 
    //把页面上的数据赋值到询价对象上
    private static Opportunity mergeInfo(Map<String, Object> oppMap){
        Opportunity opp = new Opportunity();
 
        // 名称
        opp.Name = String.valueOf(oppMap.get('Name'));
        //询价 关联 招标项目
        opp.Bidding_Project_Name_Bid__c = String.valueOf(oppMap.get('Bidding_Project_Name_Bid__c'));
        //页面上获取 资金来源
        opp.Fund_Basis__c = String.valueOf(oppMap.get('Fund_Basis__c'));
        //页面上获取 招标方式
        opp.Sales_Method__c = String.valueOf(oppMap.get('Sales_Method__c'));
        // 科室
        opp.AccountId = String.valueOf(oppMap.get('AccountId'));
 
        System.debug('lt123test01默认询价内容'+opp);
 
        // 查找科室相关信息
        Account acc = [select Id, Name, Parent.Parent.State_Master__r.Name, Parent.Department_Class_Label__c 
                        ,Parent.Parent.OCM_man_province_HP__c  //20230329 lt DB202303246427 --青岛拆分 -- 根据询“省(客户)”赋值SAP上传省 add
                       from Account where Id = :opp.AccountId];
 
        System.debug('lt123test02默认询价内容'+opp);
        // 20221205 ljh DB202212030068 start
        /* 以后变化不大就这样吧代码中写死,就这样几个省有问题
        内蒙古自治区--->内蒙古
        宁夏回族自治区--->宁夏自治区
        新疆维吾尔自治区--->新疆自治区
        黑龙江--->黑龙江省*/
        // opp.SAP_Province__c = acc.Parent.Parent.State_Master__r.Name; // SAP上传省
        //20230329 lt DB202303246427 --青岛拆分 -- 根据询“省(客户)”赋值SAP上传省 start
        Map<String,String> SAP_ProvinceMap = new Map<String,String>();
        // SAP_ProvinceMap.put('内蒙古自治区','内蒙古');
        // SAP_ProvinceMap.put('宁夏回族自治区','宁夏自治区');
        // SAP_ProvinceMap.put('新疆维吾尔自治区','新疆自治区');
        // SAP_ProvinceMap.put('黑龙江','黑龙江省');
        SAP_ProvinceMap.put('宁夏','宁夏自治区');
        SAP_ProvinceMap.put('新疆','新疆自治区');
        SAP_ProvinceMap.put('黑龙江','黑龙江省');
        SAP_ProvinceMap.put('广西','广西自治区');
        SAP_ProvinceMap.put('大连','大连市');
        SAP_ProvinceMap.put('沈阳','辽宁省');    //暂定辽宁
        SAP_ProvinceMap.put('广东','广东省');
        SAP_ProvinceMap.put('深圳','深圳市');
        SAP_ProvinceMap.put('青岛','青岛市');
        SAP_ProvinceMap.put('山东','山东省');
        SAP_ProvinceMap.put('四川/西藏','四川省');
        SAP_ProvinceMap.put('安徽','安徽省');
        SAP_ProvinceMap.put('北京','北京市');
        SAP_ProvinceMap.put('福建','福建省');
        SAP_ProvinceMap.put('甘肃','甘肃省');
        SAP_ProvinceMap.put('贵州','贵州省');
        SAP_ProvinceMap.put('河北','河北省');
        SAP_ProvinceMap.put('河南','河南省');
        SAP_ProvinceMap.put('湖北','湖北省');
        SAP_ProvinceMap.put('湖南','湖南省');
        SAP_ProvinceMap.put('吉林','吉林省');
        SAP_ProvinceMap.put('江苏','江苏省');
        SAP_ProvinceMap.put('江西','江西省');
        SAP_ProvinceMap.put('青海','青海省');
        SAP_ProvinceMap.put('山西','山西省');
        SAP_ProvinceMap.put('陕西','陕西省');
        SAP_ProvinceMap.put('上海','上海市');
        SAP_ProvinceMap.put('天津','天津市');
        SAP_ProvinceMap.put('云南','云南省');
        SAP_ProvinceMap.put('浙江','浙江省');
        SAP_ProvinceMap.put('重庆','重庆市');
        SAP_ProvinceMap.put('海南','海南省');
        //内蒙古一致
 
        // String SAP_Province = acc.Parent.Parent.State_Master__r.Name;
        String SAP_Province = acc.Parent.Parent.OCM_man_province_HP__c;
        //20230329 lt DB202303246427 --青岛拆分 -- 根据询“省(客户)”赋值SAP上传省 end 
        if(SAP_ProvinceMap.containsKey(SAP_Province)){
            SAP_Province = SAP_ProvinceMap.get(SAP_Province);
        }
        opp.SAP_Province__c = SAP_Province;
        // 20221205 ljh DB202212030068 end
        switch on acc.Parent.Department_Class_Label__c {              // 询价科室分类  询价编码自动生成要用到
            when '消化科' {
                opp.Opportunity_Category__c = 'GI';
            }
            when '呼吸科' {
                opp.Opportunity_Category__c = 'BF';
            }
            when '普外科' {
                opp.Opportunity_Category__c = 'GS';
            }
            when '泌尿科' {
                opp.Opportunity_Category__c = 'URO';
            }
            when '妇科' {
                opp.Opportunity_Category__c = 'GYN';
            }
            when '耳鼻喉科' {
                opp.Opportunity_Category__c = 'ENT';
            }
            when 'ET' {
                opp.Opportunity_Category__c = 'ET';
            }
            when '其他' {
                opp.Opportunity_Category__c = 'OTH';
            }
            when else {
                opp.Opportunity_Category__c = 'OTH';
            }
        }
 
        opp.StageName = '引合';                                     // 状态
        opp.Purchase_Reason__c = '新期';                            // 购买原因
        opp.Trade__c = '内貿';                                      // 内贸外贸
        opp.Close_Forecasted_Date__c = Date.today().addDays(90);    // 预测OCSM签约日
        opp.CloseDate = Date.today().addDays(120);                  // 预测发货日
        opp.Purchase_Type__c = '一般引合';                          // 订货方式
        opp.Sales_Root__c = '販売店';                               // 渠道为"经销商"
        opp.ifOpenBid__c = '公开招标';                              // 是否公开招标
        opp.LeadSource = '招标网';                                  // 潜在客户来源
        opp.LeakageNumber__c = 1;                                   //漏单数
        opp.Tender_Number__c = 1;                                   //招标数
        opp.DirectLossFLG__c = true;                                //后台用-招标项目直接失单标记
        //应标数为0   Authorized_DB_No__c为空时为0
        //中标数为0 
        opp.ConfirmationofAward_createTime__c = Date.today();       //中标结果确认日
        opp.ConfirmationofAward__c = '竞争对手中标';                 //中标确认结果
 
        System.debug('lt123opp默认询价内容'+opp);
 
        return opp;
    }
 
    //保存数据  JSONData 是 json格式的值 
    @AuraEnabled
    public static string SaveData(String JsonData){
        Opportunity opp = new Opportunity();
        try{
            Map<String, Object> oppMap = (Map<String, Object>)JSON.deserializeUntyped(JsonData);
            System.debug('lt123JsonData'+JsonData);
            opp = mergeInfo(oppMap);
            insert opp;
            System.debug('lt123opp.Id'+opp.Id);
            return opp.Id;
        }catch(Exception ex)
        {
            return  '错误:' + ex.getLineNumber()+'  行错误 :   '+ex.getMessage();
        }
    }
 
    //查询普通科室
    @AuraEnabled
    public  static String SearchPTKS(String content, List<String> hospitals){
        String profile_2S1 = System.Label.ProfileId2S1HP;
        Boolean is_2S1 = profile_2S1.contains(UserInfo.getProfileId()) ? true : false;
        String jsonData = CommonUtils.GetPTKS(content, hospitals, is_2S1);
        System.debug('hospitals: ' + hospitals);
        System.debug('offices: ' + jsonData);
        return jsonData;
    }
 
    //查询父类
    // @AuraEnabled
    // public  static String SearchParent(String Id){
    //     String jsonData = CommonUtils.GetParent(Id);
    //     return jsonData;
    // }
 
}