fuyu
2023-01-05 f7dffb669b42852e90ff91b6362a07e3a88945b0
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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
public without sharing class eSignHomePageController {
    // 初始方法,获取当前所有任务,包括当前用户和当前用户下属的任务
    //url 为DN号的 返回需要信息
    //为了避免后期修改麻烦 目前没有把DN号 和 客户id两种后台检索方法合在一起
    //签收页面后台检索
    @AuraEnabled
    public static eSignWrapper getDNSignUpStatus(string DNName){
        list<eSignForm__c> tempEsignFormList = new list<eSignForm__c> ();
        list<eSignFormEntry__c> tempEsignFormEntryList = new list<eSignFormEntry__c> ();
        try {
            tempEsignFormList =
                [select id ,HPDNSignUpStatus__c,agencyDNSignUpStatus__c,
                HPScanDay__c,agencyScanDay__c,handleOpinionAgency__c,DNNameNo0__c,
                Sales_Root_Formula__c, HPAcceptResult__c,HPSignUpDate__c,
                agencyAcceptResult__c, salesHPManageConfirmDate__c,
                salesManageConfirmDate__c,salesHPManageFBDate__c,salesManageFBDate__c
                ,agencyAutoSignUpStatus__c,HPSignUpStatus__c,agencyConfirmDate__c,endUser__c,HPConfirmDate__c,agencySignUpDate__c,skip_Hospital_Sign__c,skip_Distribution_Sign__c,
                //根据不同情况返回对应的提示信息  精琢技术 thh 2021-10-09 start
                skip_Distribution_Sign_Message__c, skip_Hospital_Sign_Message__c
                //根据不同情况返回对应的提示信息  精琢技术 thh 2021-10-09 end
                     from eSignForm__c
                    where DNNameNo0__c =: DNName ];
            //system.debug('tempEsignFormList:'+tempEsignFormList[0]);
        } catch (Exception ex) {
            return null;
        }
 
        try {
            tempEsignFormEntryList =
                [select id ,entryType__c,
                Sales_Root_Formula__c, HPAcceptResult__c,HPDNSignUpStatus__c,agencyDNSignUpStatus__c,
                HPScanDay__c,agencyScanDay__c,handleOpinionAgency__c,DNNameNo0__c,
                agencyAcceptResult__c, salesHPManageConfirmDate__c,HPSignUpDate__c,
                salesManageConfirmDate__c,salesHPManageFBDate__c,salesManageFBDate__c
                ,agencyAutoSignUpStatus__c,HPSignUpStatus__c,IsSubmit__c,IsHPSubmit__c,agencyConfirmDate__c,agencySignUpDate__c
                ,agencyScanDayBack__c,agencySignUpDateBack__c,agencyConfirmDateBack__c,endUser__c,HPConfirmDate__c,IsHandled__c,skip_Hospital_Sign__c,skip_Distribution_Sign__c,   
                //根据不同情况返回对应的提示信息  精琢技术 thh 2021-10-09 start
                skip_Distribution_Sign_Message__c, skip_Hospital_Sign_Message__c
                //根据不同情况返回对应的提示信息  精琢技术 thh 2021-10-09 end
                     from eSignFormEntry__c
                    where DNNameNo0__c =: DNName 
                    order by createddate desc
                    ];
            //system.debug('tempEsignFormEntryList:'+tempEsignFormEntryList[0]);
        } catch (Exception ex) {
            return null;
        }
        Boolean isAgencySubmit = false;
        Boolean isHPSubmit = false;
 
        String entryType = '';
        //new 
        eSignWrapper eSignWrapper = new eSignWrapper(isAgencySubmit,isHPSubmit,entryType);
        //先判断有没有中间表 没有则赋值为空
        if(tempEsignFormEntryList.size() > 0 ){
            eSignWrapper.eSignFormEntry = tempEsignFormEntryList[0];
                if(tempEsignFormEntryList[0].IsSubmit__c){
                    isAgencySubmit = true;
                    entryType = tempEsignFormEntryList[0].entryType__c;
                }
                if(tempEsignFormEntryList[0].IsHPSubmit__c){
                    isHPSubmit = true;
                    entryType = tempEsignFormEntryList[0].entryType__c;
                }
        }else{
            eSignWrapper.eSignFormEntry = null;
        }
        //
        if(tempEsignFormList.size() > 0){
            eSignWrapper.eSignForm = tempEsignFormList[0];
        }else{
            eSignWrapper.eSignForm = null;
        }
        eSignWrapper.isAgencySubmit =isAgencySubmit;
        eSignWrapper.isHPSubmit =isHPSubmit;
        eSignWrapper.entryType =entryType;
       return eSignWrapper;
    }
 
    //DN清单页后台检索方法
    @AuraEnabled
    public static  eSignWrapperList getDNSignUpLists(String id ,String type){
        list<eSignForm__c> tempEsignFormList = new list<eSignForm__c> ();
        list<eSignFormEntry__c> tempEsignFormEntryList = new list<eSignFormEntry__c> ();
 
        //传过来是18位的 截取一下
        id = id.substring(0,15);
        Date todate = Date.today(); 
        //签收单list
        try {
            
            //检索id,DN号,经销商名称,合同编号,医院名,经销商签收状态,医院签收状态,发货日期
            String sql = 'select id ,Agency1_Name_F__c,ContractNO__c,Hospital_Name__c,DeliveryDate__c,HPDNSignUpStatus__c,agencyDNSignUpStatus__c,';
                   sql +='HPScanDay__c,agencyScanDay__c,handleOpinionAgency__c,DNNameNo0__c,Sales_Root_Formula__c, HPAcceptResult__c,HPSignUpDate__c,';
                   sql +='agencyAcceptResult__c, salesHPManageConfirmDate__c,salesManageConfirmDate__c,salesHPManageFBDate__c,salesManageFBDate__c,';
                   sql +='agencyAutoSignUpStatus__c,HPSignUpStatus__c,agencyConfirmDate__c,endUser__c,endUserName__c,HPConfirmDate__c,endConfirmDate__c,Hospital_Name_Text__c,CustomerNameContract__c,agencySignUpDate__c,skip_Hospital_Sign__c,skip_Distribution_Sign__c,skip_Distribution_Sign_Message__c, skip_Hospital_Sign_Message__c ';
                   sql +=' from  eSignForm__c ';
                   //当isProcessed__c 为true的时候,工作流更新日期 所以不会有日期为null并且还打勾的情况
                   sql +=' where (isProcessed__c = false  or (isProcessed__c = true and  endConfirmDate__c >: todate)) ';
 
                   //退货则不被检索
                   //sql +=' and ReturnMark__c = false ';
                //根据传入的经销商或者医院传入不同的where 条件
                if(type == 'Agency'||type == 'AgencyContract'){
                    sql +=' and Agency1_ID__c =: id ';
                 }else if(type == 'HP'){
                    sql +=' and Hospital_ID__c =: id ';
                 }
                 sql +=' order by createddate desc ';
            tempEsignFormList =DataBase.query(sql);
            //System.debug('tempEsignFormList+++'+tempEsignFormList);
        } catch (Exception ex) {
            //System.debug('ex+++'+ex);
            return null;
        }
        //签收单录入表 list
        try {
            
            String query = 'select id ,isProcessed__c,DNSignUpStatus__c,ContractNO__c,Hospital_Name__c,DeliveryDate__c,';
                   query +='entryType__c,Sales_Root_Formula__c, HPAcceptResult__c,HPDNSignUpStatus__c,agencyDNSignUpStatus__c,';
                   query +='HPScanDay__c,agencyScanDay__c,handleOpinionAgency__c,DNNameNo0__c,agencyAcceptResult__c, salesHPManageConfirmDate__c,HPSignUpDate__c,';
                   query +='salesManageConfirmDate__c,salesHPManageFBDate__c,salesManageFBDate__c,agencyAutoSignUpStatus__c,HPSignUpStatus__c,IsSubmit__c,IsHPSubmit__c,agencyConfirmDate__c,';
                   query +='agencyScanDayBack__c,agencySignUpDateBack__c,agencyConfirmDateBack__c,endUser__c,HPConfirmDate__c,endConfirmDate__c,Hospital_Name_Text__c,CustomerNameContract__c,agencySignUpDate__c,IsHandled__c,skip_Distribution_Sign_Message__c, skip_Hospital_Sign_Message__c ';
                   query +=' from eSignFormEntry__c ';
                   query +=' where IsHandled__c = false  ';
                    //and ReturnMark__c = false 
                   //根据传入的经销商或者医院传入不同的where 条件
                    if(type == 'Agency' ||type == 'AgencyContract'){
                        query +=' and Agency1_ID__c =: id ';
                     }else if(type == 'HP'){
                        query +=' and Hospital_ID__c =: id ';
                     }
                     // query +=' order by createddate desc ';
 
            tempEsignFormEntryList = DataBase.query(query);
            //System.debug('tempEsignFormEntryList+++'+tempEsignFormEntryList);
        } catch (Exception ex) {
            return null;
        }
        //new 
        eSignWrapperList eWList = new eSignWrapperList();
        //先判断有没有中间表 没有则赋值为空
        if(tempEsignFormEntryList.size() > 0 ){
            for(eSignFormEntry__c esfe:tempEsignFormEntryList){
                if(esfe.endUser__c =='契約'){
                    esfe.Hospital_Name_Text__c = esfe.CustomerNameContract__c;
                }else{
                    esfe.Hospital_Name_Text__c = esfe.Hospital_Name__c;
                }
            }
            eWList.eSignFormEntryList = tempEsignFormEntryList;
        }else{
            eWList.eSignFormEntryList = null;
        }
        system.debug('ceshi4+++'+tempEsignFormList);
        if(tempEsignFormList.size() > 0){
            //fy 20220727 start
            List<Id> eSignFormId = new List<Id>();
            for(eSignForm__c es:tempEsignFormList){
                eSignFormId.add(es.Id);
            }
            List<Attachment> AttachmentList= new  List<Attachment>();
            AttachmentList =[select Id,name,ParentId from Attachment where ParentId in:eSignFormId];
            Map<String,String> AttachmentMap = new Map<String,String>();
            List<String> AttachmentStringList = new List<String>();
            if(AttachmentList.size() > 0){
                for(Attachment  Att:AttachmentList){
                    AttachmentMap.put(Att.ParentId, Att.ParentId+'_'+Att.name);
                }
                for (String value : AttachmentMap.values()) {
                    AttachmentStringList.add(value);
                }
            }
            
            system.debug('ceshi1+++'+AttachmentList);
            system.debug('ceshi2+++'+AttachmentStringList);
            system.debug('ceshi3+++'+eSignFormId);
            //fy 20220727 end
            for(eSignForm__c esf:tempEsignFormList){
                if(esf.endUser__c =='契約'){
                    esf.Hospital_Name_Text__c = esf.CustomerNameContract__c;
                }else{
                    esf.Hospital_Name_Text__c = esf.Hospital_Name__c;
                }
            }
            eWList.eSignFormList = tempEsignFormList;
            //fy 20220727 start
            if(AttachmentStringList.size()>0){
                eWList.AttachmentStringList = AttachmentStringList;
            }
            //fy 20220727 end
        }else{
            eWList.eSignFormList = null;
        }
 
        return eWList;
 
    }
 
    //区分经销商/医院  传入客户的管理编码
    @AuraEnabled
    public static eSignAccount getAccount(String managementCode){
        //CHAN-BX736B 【委托】请帮恢复河南嘉信元泰医疗器械有限公司签收单明细 精琢技术 wql 2021/01/18 start
        //根据管理编码 检索有效的客户 使用去0的管理编码 字段 and Is_Active_Formula__c = '有效'
        //CHAN-BX736B 【委托】请帮恢复河南嘉信元泰医疗器械有限公司签收单明细 精琢技术 wql 2021/01/18 end
        List<Account> accList = [select id,RecordType.developerName,name  from Account where Management_FormulaCode__c =: managementCode  ];
 
        String accountId = '';
        String recordTypeName = '';
        String agencyName = '';
        if(accList.size()>0){
            accountId =accList[0].id;
            recordTypeName = accList[0].RecordType.developerName;
            agencyName = accList[0].name;
            
        }
        eSignAccount acc  = new eSignAccount(accountId,recordTypeName,agencyName);
        acc.accountId = accountId;
        acc.recordTypeName = recordTypeName;
        acc.agencyName = agencyName;
    
        return acc;
    }
 
    @AuraEnabled
    public static List<Product2> getProduct(List<Id> ids){
        List<Product2> proLists = NewQuoteEntryWebService.getProduct2(ids);
    
        return proLists;
    }
 
    //公用类 返回签收单对象或者签收单录入表对象
    public class eSignWrapper{
        @AuraEnabled
        public eSignFormEntry__c eSignFormEntry;
 
        @AuraEnabled
        public eSignForm__c eSignForm;
        //判断是否有经销商已提交的数据
        @AuraEnabled
        public Boolean isAgencySubmit;
        //判断是否有医院已提交的数据
         @AuraEnabled
        public Boolean isHPSubmit;
        //判断传入的类型
        @AuraEnabled
        public String entryType;
        
        public eSignWrapper(Boolean isAgencySubmit,Boolean isHPSubmit,String entryType){
            eSignFormEntry = new eSignFormEntry__c();
            eSignForm = new eSignForm__c();
            isAgencySubmit = isAgencySubmit;
            isHPSubmit = isHPSubmit;
            entryType = entryType;
        }
 
    }
 
    //公用类 返回签收单list或者签收单录入表list
    public class eSignWrapperList{
        @AuraEnabled
        public List<eSignFormEntry__c> eSignFormEntryList;
 
        @AuraEnabled
        public List<eSignForm__c> eSignFormList;
        //fy 20220727 start
        @AuraEnabled
        public List<String> AttachmentStringList;
        //fy 20220727 end
        public eSignWrapperList(){
            eSignFormEntryList = new List<eSignFormEntry__c>();
            eSignFormList = new List<eSignForm__c>();
            //fy 20220727 start
            List<String> AttachmentStringList = new List<String>();
            //fy 20220727 end
        }
 
    }
 
    //公用类 返回客户id 和记录类型developerName   (Agency、HP、AgencyContract)
    public class eSignAccount{
        @AuraEnabled
        public String accountId;
 
        @AuraEnabled
        public String recordTypeName;
 
        @AuraEnabled
        public String agencyName;
        
        public eSignAccount(String accountId,String recordTypeName,String agencyName){
            accountId = accountId;
            recordTypeName = recordTypeName;
            agencyName = agencyName;
        }
 
    }
}