From 7c7cb195462c2ded7bfe4105959ea36d1dd68ded Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期三, 11 十月 2023 19:26:36 +0800
Subject: [PATCH] 近期修改

---
 force-app/main/default/classes/OpportunityService.cls |   98 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 82 insertions(+), 16 deletions(-)

diff --git a/force-app/main/default/classes/OpportunityService.cls b/force-app/main/default/classes/OpportunityService.cls
index f8044db..063be70 100644
--- a/force-app/main/default/classes/OpportunityService.cls
+++ b/force-app/main/default/classes/OpportunityService.cls
@@ -1,6 +1,8 @@
 public with sharing   class OpportunityService{
 
-  private static String opp_search_field = ' Id, Name, Account_Name_F__c, OwnerId, Hospital__c, Opportunity_No__c, Opportunity_stage__c, StageName__c, Bidding_Project_Name_Bid__c, Department_Class__r.RecordTypeId ';
+  public static Decimal selectcancelcount{get;set;}//閫夋嫨鐨勫彇娑堢殑璇环涓暟
+
+  private static String opp_search_field = ' Id, Name, Account_Name_F__c, OwnerId, Hospital__c, Opportunity_No__c, Opportunity_stage__c, StageName__c, stagename, Bidding_Project_Name_Bid__c, Department_Class__r.RecordTypeId ';
   
   // 鏌ヨ宸蹭繚瀛樼殑鏁版嵁  
   //noStr 璇环鐨処D
@@ -36,10 +38,13 @@
     // String paremt2 = '01210000000QekK';
     // String paremt3 = '寮曞悎';
     // sql += ' and (recordtypeid = :paremt1 or recordtypeid = :paremt2) and stagename = :paremt3 ';
-    sql += ' and recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'鏈夊姽\' '+
+    sql += ' and recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'鏈夊姽\' ';
         // 杩欓噷鏈変慨鏀癸紝鍒粰鐩栦簡
+    /**
+    DB202305552102  you 202305230 闄や簡鐩爣鐨勯兘鐪�
     ' and ( (SAP_Send_OK__c = true and SAP_Send_OK_Date__c   = LAST_N_DAYS:183  ) '+
         'or( stagename = \'鏁楁垿\' and Final_Contract_Proceeded_Date__c = LAST_N_DAYS:183  ) or stagename = \'寮曞悎\' ) ';
+    **/
       // 杩欓噷鏈変慨鏀癸紝鍒粰鐩栦簡
     // 20210914 鎴樼暐绉戝淇敼
     //if (departments != null && String.isNotBlank(departments)) {
@@ -59,9 +64,15 @@
     if(proId.substring(0,15) == p_2M4.substring(0,15)){
        sql += ' AND OwnerId =\''+UserInfo.getUserId()+'\'';
     }
-    System.debug('sql:'+sql);
     // 20221014 ljh SWAG-CK28WT add end
-    sql += '  limit 50';
+    //DB202305552102  you 202305230 闄や簡鐩爣鐨勯兘鐪�
+    sql += ' and stageName != \'鐩\'';
+    //DB202305552102  you 202305230 闄や簡鐩爣鐨勯兘鐪�
+    //DB202309608863  chenjingwu 2023/10/11 鎷涙爣椤圭洰寰呭叧鑱旇浠蜂腑鎺掗櫎鍙樻洿鐢ㄦ埛璇环
+    sql += ' and If_Account_Change__c = false';
+    //DB202309608863  chenjingwu 2023/10/11 鎷涙爣椤圭洰寰呭叧鑱旇浠蜂腑鎺掗櫎鍙樻洿鐢ㄦ埛璇环
+    sql += ' order by stageName limit 50';
+    System.debug('sql1:'+sql);
     List<Opportunity> arrays = Database.query(sql);
     return JSON.serialize(arrays); 
     
@@ -73,7 +84,6 @@
   @AuraEnabled
   public  static string GetNormalProductDataNotSave(String IdStr,String[] hospital, String departments) {
 
-    //TODU
     // QueryWrapper query = new QueryWrapper(Tender_information__c.SObjectType);
     // query.eq('Id',IdStr);
 
@@ -90,10 +100,12 @@
     // String paremt3 = '寮曞悎';
     // sql += ' and (recordtypeid = :paremt1 or recordtypeid = :paremt2) and stagename = \'寮曞悎\' ';
     // sql += ' and recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'鏈夊姽\' '+
-    sql += ' where recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'鏈夊姽\' '+
+    sql += ' where recordtype.developername in (\'Opportunity\',\'SI_Oppor\') and Hospital__r.Is_Active__c = \'鏈夊姽\' ';
         // 杩欓噷鏈変慨鏀癸紝鍒粰鐩栦簡
+    /**DB202305552102  you 202305230 闄や簡鐩爣鐨勯兘鐪�    
     ' and ( (SAP_Send_OK__c = true and SAP_Send_OK_Date__c   = LAST_N_DAYS:183 ) '+
         'or( stagename = \'鏁楁垿\' and Final_Contract_Proceeded_Date__c = LAST_N_DAYS:183  ) or stagename = \'寮曞悎\' ) ';
+    **/
       // 杩欓噷鏈変慨鏀癸紝鍒粰鐩栦簡
     // 鍘绘帀宸茬粡鍏宠仈鐨勬嫑鏍�
     if(IdStr != null && String.isNotBlank(IdStr)) {
@@ -112,16 +124,23 @@
       sql += ' and Hospital__c in :hospital';
     }
     // 20221014 ljh SWAG-CK28WT add start
+    
     String proId = UserInfo.getProfileId();
     String p_2M4 = System.Label.ProfileId_2M4;
     if(proId.substring(0,15) == p_2M4.substring(0,15)){
        sql += ' AND OwnerId =\''+UserInfo.getUserId()+'\'';
     }
-    System.debug('sql:'+sql);
+    
     // 20221014 ljh SWAG-CK28WT add end
-    sql += '  limit 50';
+    //DB202305552102  you 202305230 闄や簡鐩爣鐨勯兘鐪�
+    sql += ' and stageName != \'鐩\'';
+    //DB202305552102  you 202305230 闄や簡鐩爣鐨勯兘鐪�
+    //DB202309608863  chenjingwu 2023/10/11 鎷涙爣椤圭洰寰呭叧鑱旇浠蜂腑鎺掗櫎鍙樻洿鐢ㄦ埛璇环
+    sql += ' and If_Account_Change__c = false';
+    //DB202309608863  chenjingwu 2023/10/11 鎷涙爣椤圭洰寰呭叧鑱旇浠蜂腑鎺掗櫎鍙樻洿鐢ㄦ埛璇环
+    sql += ' order by stageName limit 200';
+    System.debug('sql2:'+sql);
     List<Opportunity> arrays = Database.query(sql);
-
     // Tender_information__c
     return JSON.serialize(arrays); 
     
@@ -167,7 +186,7 @@
    // flag  淇敼 鎷涙姇鏍囬」鐩� 鍏宠仈璇环鏃堕棿鐨勪竴涓爣璇�
   @AuraEnabled
   public  static string SaveData(String JsonSelected,String JsonNotSelected,String BiddingId,Boolean flag) {
-
+   selectcancelcount=0;
     try{
       // 鏂板鎷涙爣-璇环鍏宠仈鍏崇郴琛紝鍘绘帀鏇存柊璇环涓婄殑鏈�鏂版嫑鏍囦俊鎭� 20210813 start
       // if(JsonSelected != null &&  JsonSelected != '' && JsonSelected !='[]')
@@ -234,9 +253,12 @@
       sql += 'Hospital2__c, ';
       sql += 'Hospital3__c, ';
       sql += 'Hospital4__c, ';
+      sql += 'OpportunityNum__c, ';//20230714 you DB202306372336 
       sql += 'publicDate__c, ';// 20221114 ljh SWAG-CKL5UC
       sql += 'Tender_Order__c, ';  //20220620 you SWAG-CFD4SU 
-      sql += 'subInfoType__c ';  //20220718 you 鎷涙爣浠诲姟 
+      sql += 'subInfoType__c, ';  //20220718 you 鎷涙爣浠诲姟 
+      sql += 'status__c, ProjectRestartFLG__c,IsTerminate__c,TerminateApprovalStatus__c, ';
+      sql += 'TerminateApprovalTime__c ';//DB202305552102  澧炲姞椤圭洰缁堟鏃堕棿 鍙湁鐢宠椤圭洰缁堟鎵嶅厑璁稿叧鑱斿彇娑堢殑璇环
       sql += 'FROM Tender_information__c  WHERE Id = :BiddingId order by Tender_Order__c desc,relativeTime_F__c desc'; //20220620 you SWAG-CFD4SU 澧炲姞 order by
       List<Tender_information__c> arrays = Database.query(sql);
       Tender_information__c tender = arrays[0];
@@ -291,8 +313,37 @@
       List<Opportunity> upd_opps = new List<Opportunity>();
       List<Opportunity> upd_opps1 = new List<Opportunity>();
       List<String> owners = new List<String>();
+      Integer links=0;
       // 鎻掑叆link
       if (all_selected_list.size() > 0) {
+        //鍙栨秷鐘舵�� 璇环鍒ゆ柇
+        Map<String,String> oppStagename= new Map<String,String>();
+        for (Opportunity opp : all_selected_list) { //褰撳墠閫夋嫨鐨勮浠�
+          if(opp.stagename=='鍓婇櫎'){
+             oppStagename.put(opp.Id,opp.stagename);
+             selectcancelcount +=1;
+          }  
+          }
+
+          system.debug(all_selected_list.size()+'==oppStagename=='+oppStagename +'==selectcancelcount=='+selectcancelcount);
+        if(null!= oppStagename && oppStagename.size()>0 && tender.TerminateApprovalTime__c ==null){
+          return '鍙湁鐢宠椤圭洰缁堟鎵嶅厑璁稿叧鑱斿彇娑堢殑璇环';
+          /**
+           List<Tender_Opportunity_Link__c> del_links = [select Id,Opportunity__c,Opportunity__r.Name,Opportunity__r.Opportunity_No__c,Tender_information__r.status__c from Tender_Opportunity_Link__c where Opportunity__c = :oppStagename.keySet() and Tender_information__r.status__c !='09.缁堟'];
+           system.debug('==del_links=='+del_links);
+           Map<String,String> deldate= new Map<String,String>();
+           if(del_links != null && del_links.size() > 0){
+             for(Tender_Opportunity_Link__c ten:del_links){
+                deldate.put(ten.Opportunity__c,ten.Opportunity__r.Name);
+              }             
+           }
+           if(null!=deldate&& deldate.size()>0){
+              for (String del : deldate.keySet()) {
+                qxopp+=deldate.get(del)+',';
+              }  
+           }
+           **/
+        }
         // 璁剧疆鎷涙爣鎵�鏈変汉
         // OppOwnerId = all_selected_list[0].ownerId;
         // 鍒濆鍖栧弬鏁�
@@ -313,6 +364,7 @@
         }
         // 鎻掑叆link
         if (add_list.size() > 0) {
+          links=add_list.size();
           insert add_list;
         }
         // 鎭㈠trigger鏍囪
@@ -356,7 +408,8 @@
                 }
               opp.Tender_Number__c = returncount;
               // 20221114 ljh SWAG-CKL5UC start 
-              if(opp.LeakageNumber__c != 1 && tender.publicDate__c != null && String.isNotBlank(opp.LeadSource) && opp.LeadSource == '鎷涙爣缃�' && opp.Created_Day__c > tender.publicDate__c){
+              //20230727 lt DB202307367354 銆愭嫑鏍囬」鐩�戞紡鍗曡绠楅�昏緫淇敼 delete  && String.isNotBlank(opp.LeadSource) && opp.LeadSource == '鎷涙爣缃�'
+              if(opp.LeakageNumber__c != 1 && tender.publicDate__c != null && opp.Created_Day__c > tender.publicDate__c){
                 opp.LeakageNumber__c = 1;
               }
               // 20221114 ljh SWAG-CKL5UC start 
@@ -396,7 +449,9 @@
       tender.IsReactionOpp__c = true;
       // 鏌ヨ鎷涙爣鏁伴噺骞舵洿鏂�
       //List<Tender_Opportunity_Link__c> tenderLinks = [SELECT id, Tender_information__c, Opportunity__c, Opportunity__r.Hospital__c FROM Tender_Opportunity_Link__c WHERE Tender_information__c = :tender.Id];
-      tender.OpportunityNum__c = tenderLinks != null ? tenderLinks.size() : 0;
+      //tender.OpportunityNum__c = tenderLinks != null ? tenderLinks.size() : 0;
+      //20230714 you DB202306372336  鍘熷洜锛屽綋鍓嶆媴褰撳彧鑳界湅鍒拌嚜宸卞緱鍏宠仈璇环锛岀湅涓嶅埌鍏朵粬浜哄緱锛屾墍浠ヨ浠锋暟閲忎篃鍙兘绱鑷繁鐨�
+      tender.OpportunityNum__c = tender.OpportunityNum__c != null ? tender.OpportunityNum__c + links :links ;
       // 鍏宠仈璇环鏃堕棿鍜屾槸鍚︾浉鍏崇姸鎬�
       if (tender.IsRelateProject__c != '鏄�') {
         tender.IsRelateProject__c = '鏄�';
@@ -446,11 +501,22 @@
         tender.Hospital3__c = fiveHospitalMap.get('Hospital3__c');
         tender.Hospital4__c = fiveHospitalMap.get('Hospital4__c');
       }
+      //鐘舵�佷负缁堟 && 鍏ㄩ儴閫夋嫨鐨勬槸鍙栨秷鏃讹紝涓嶈繘琛岄」鐩噸鍚�
+      if(tender.status__c == '09.缁堟' && selectcancelcount !=0 && selectcancelcount != all_selected_list.size()){
+        tender.ProjectRestartFLG__c = true;
+        tender.IsTerminate__c = null;
+        tender.TerminateApprovalTime__c = null;
+        tender.TerminateApprovalStatus__c = null;
+      }  
       update tender;
       // 鎷涙爣-璇环鍏宠仈淇敼 20210813 end
-      return '鎴愬姛'; 
-    }catch (Exception ex) {
-      return  ex.getMessage();
+      return '鎴愬姛';
+    }catch (Exception e) {
+      // String eMsg = e.getMessage();
+      // Integer left = eMsg.indexOf('锛�')+1;
+      // Integer right = eMsg.indexOf('锛�');
+      // return eMsg.substring(left,right);
+      return e.getMessage();
     }
 
   }

--
Gitblit v1.9.1