高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
force-app/main/default/classes/NFM007Controller.cls
@@ -75,7 +75,7 @@
    //CHAN-BDPBVY 20190703 end
    public static boolean isRunning = false;
    public static String debug_msg = '';
    // 20220921 ljh SWAG-CG2A7S update start
    /**
     * NFM007の送信処理
     *
@@ -85,6 +85,19 @@
     */
    @future (callout=true)
    public static void callout(String iflog_Id, List<String> oppIds, Map<String, String> purposeOfAdviceMap) {
            calloutNotfuture(iflog_Id,oppIds,purposeOfAdviceMap);
    }
    // 20220921 ljh SWAG-CG2A7S update end
    /**
     * NFM007の送信処理
     *
     * @param iflog_Id           ログテーブルのId
     * @param oppIds             送信対象商談(論理上1件のみです)
     * @param purposeOfAdviceMap 1:Delete 2:Add(Insert) 3:Change(Update)
     */
    // @future (callout=true)
    public static void calloutNotfuture(String iflog_Id, List<String> oppIds, Map<String, String> purposeOfAdviceMap) {
        if (oppIds == null || oppIds.size() == 0) {
            return;
        }
@@ -370,7 +383,36 @@
                            detail.PROCODE = '8888';
                        }
                        system.debug(' detail.PROCODE=='+detail.PROCODE);
                        detail.GuaranteeType = promotionSalesProductsList.get(i).latestWarrantyType__c;  // 保修类别
                        //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy start
                        detail.GuaranteeType =',';
                        if(String.isNotBlank(promotionSalesProductsList.get(i).latestWarrantyType__c)){
                            Date nowDate = Date.today();
                            Date baojidate = Date.newInstance(2022,3,30);
                            Date baojidatewai = Date.newInstance(2022,8,1);
                            if(opp.Trade__c == '内貿'&&baojidate<=nowDate&&promotionSalesProductsList.get(i).latestWarrantyType__c=='市场多年保修'){
                                detail.GuaranteeType = promotionSalesProductsList.get(i).latestWarrantyType__c+',new';
                            }
                                    //    detail.GuaranteeType = promotionSalesProductsList.get(i).latestWarrantyType__c+',';// 保修类别
                            else{
                                // Date nowDate = Date.today();
                                // // Date baojidate = Date.valueOf('2022-4-1');
                                // Date baojidate = Date.newInstance(2022,3,30);
                                // if(baojidate<=nowDate&&promotionSalesProductsList.get(i).latestWarrantyType__c=='市场多年保修'){
                                //     detail.GuaranteeType = promotionSalesProductsList.get(i).latestWarrantyType__c+',new';
                                // }else{
                                    if(opp.Trade__c == '外貿'&&baojidatewai<=nowDate&&promotionSalesProductsList.get(i).latestWarrantyType__c=='市场多年保修'){
                                        detail.GuaranteeType = promotionSalesProductsList.get(i).latestWarrantyType__c+',new';
                                    }else{
                                        detail.GuaranteeType = promotionSalesProductsList.get(i).latestWarrantyType__c+',';
                                    }
                                    // detail.GuaranteeType = promotionSalesProductsList.get(i).latestWarrantyType__c+',';
                                // }
                            }
                        }else{
                            detail.GuaranteeType =',';
                        }
                        //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy end
                        // detail.GuaranteeType = promotionSalesProductsList.get(i).latestWarrantyType__c;  // 保修类别
                        if (!oldDate) {
                            if (promotionSalesProductsList.get(i).latestProvistonPeriod__c != null) {
                                detail.ProvistonPeriod = String.valueOf(promotionSalesProductsList.get(i).latestProvistonPeriod__c).leftPad(2,'0');
@@ -472,9 +514,40 @@
                            
                            //保修类别
                            if(oppLiList.get(i).latestWarrantyType__c != null){
                                detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c;  // 保修类别
                                //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy start
                                Date nowDate = Date.today();
                                Date baojidate = Date.newInstance(2022,3,30);
                                Date baojidatewai = Date.newInstance(2022,8,1);
                                if(opp.Trade__c == '内貿'&&baojidate<=nowDate&&oppLiList.get(i).latestWarrantyType__c=='市场多年保修'){
                                    detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c+',new';
                                }
                                else{
                                    if(opp.Trade__c == '外貿'&&baojidatewai<=nowDate&&oppLiList.get(i).latestWarrantyType__c=='市场多年保修'){
                                        detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c+',new';
                            }else{
                                detail.GuaranteeType = null;
                                        detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c+',';
                                    }
                                    // detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c+',';
                                }
                                // if(opp.Trade__c == '外貿'){
                                //     detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c+',';// 保修类别
                                // }else{
                                //     Date nowDate = Date.today();
                                //     // Date baojidate = Date.valueOf('2022-4-1');
                                //     Date baojidate = Date.newInstance(2022,3,30);
                                //     if(baojidate<=nowDate&&oppLiList.get(i).latestWarrantyType__c=='市场多年保修'){
                                //         detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c+',new';
                                //     }else{
                                //         detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c+',';
                                //     }
                                // }
                                //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy end
                                // detail.GuaranteeType = oppLiList.get(i).latestWarrantyType__c;  // 保修类别
                            }else{
                                //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy start
                               detail.GuaranteeType = ',';
                                //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy end
                                // detail.GuaranteeType = null;
                            }
                            //计提金额
                            detail.GuaranteePrice = oppLiList.get(i).latestGuranteePrice__c;
@@ -492,7 +565,11 @@
                            // detail.GuaranteePeriod = null;
                            // detail.GuaranteeType = null;
                            //外贸多年保修未上线前 保修类别 传null
                            detail.GuaranteeType = null;
                            //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy start
                                detail.GuaranteeType = ',';
                            //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy end
                            // detail.GuaranteeType = null;
                            //外贸多年保修未上线前  计提金额 传0 
                            detail.GuaranteePrice = 0;
                            //外贸多年保修未上线前 nodiscount 传0
@@ -506,7 +583,10 @@
                        //③decide在20191001 之前  老数据
                        else if(oldDate){
                            detail.GuaranteePeriod = null;
                            detail.GuaranteeType = null;
                            //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy start
                            detail.GuaranteeType = ',';
                            //WLIG-CCT9UG 【委托】关于市场多年保计提金调整 fy end
                            // detail.GuaranteeType = null;
                            detail.ProvistonPeriod = null;
                            detail.GuaranteePrice = null;
                            detail.ServicePrice = null;
@@ -562,6 +642,7 @@
                //请求号码:CHAN-BDPBVY 修改前rowData = NFMUtil.makeRowData(Monitoring, 'NFM007', quotations);
                rowData = NFMUtil.makeRowData(Monitoring, 'NFM007', mfn007);
                System.debug('+++++rowData+++++' + rowData);
                System.debug('+++++rowDataId+++++' + rowData.Id + '+++++rowDataNum+++++' + rowData.MessageGroupNumber__c + '+++++rowDataType+++++' + rowData.Type__c);
                execute(rowData, iflog);
            }
            Set<String> inquiryNoList = new Set<String>();
@@ -632,14 +713,15 @@
            // NFMUtil.sendToSap(rowDataStr, NFMUtil.NFM007_ENDPOINT);
            // CHAN-BSV3GZ start
            // 接收 SAP返回状态
            status =
            // status = // 2022-07-13 zyh update 注释
            // CHAN-BSV3GZ end
            NFMUtil.sendToSapRet(rowDataStr, NFMUtil.NFM007_ENDPOINT);
            // NFMUtil.sendToSapRet(rowDataStr, NFMUtil.NFM007_ENDPOINT); // 2022-07-13 zyh update 注释
            //CHAN-BDPBVY 20190703 end
            NFMUtil.sendToSap(rowDataStr, NFMUtil.NFM007_ENDPOINT); // 2022-07-13 zyh add
            // CHAN-BSV3GZ start
            // 原代码
            // rowData.retry_cnt__c=0;
             if (status == 'OK') {
            rowData.retry_cnt__c=0;// 2022-07-13 zyh update 解开注释
            /* if (status == 'OK') {
                rowData.retry_cnt__c = 0;
            } else {
                if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0;
@@ -651,7 +733,7 @@
                    rowData.ErrorLog__c = 'status:' + status + ' 询价编码:' + nfm007.Quotations.Quotation.get(0).QuotationCode + 
                                          '\n错误次数已经超过自动送信设定的最大次数,请手动送信';
                }
            }
            }*/    // 2022-07-13 zyh update 注释
            // CHAN-BSV3GZ end
            
        }catch(Exception ex) {
@@ -664,14 +746,16 @@
            iflog.ErrorLog__c += ex.getStackTraceString() + '\n';
            //---xiongyl---add
            if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0;
            /*if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0;
            if (rowData.retry_cnt__c < batch_retry_max_cnt){
                rowData.retry_cnt__c++;
                LogAutoSendSchedule.assignOneMinute();
            }
            if (rowData.retry_cnt__c >= batch_retry_max_cnt){
                rowData.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + rowData.ErrorLog__c+'错误次数已经超过自动送信设定的最大次数,请手动送信';
            }
            }*/   //  2022-12-6   zyh   注释:重发逻辑修改,课题号:DB202211540694
            Boolean check = true;
            NFMUtil.LogAutoSend(rowData, ex , null,check); // 2022-12-6   zyh   add
        }
        iflog.Log__c = logstr;
        if (needUpdateIflog) {
@@ -679,4 +763,283 @@
            update rowData;
        }
    }
    @TestVisible private void test() {
        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++;
        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++;
        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++;
        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++;
        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++;
        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++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
    }
}