From a886e1576fd1f45db37ed84b3c8b61aea4cdd4b1 Mon Sep 17 00:00:00 2001 From: 游畅 <youchang@prec-tech.com> Date: 星期五, 07 四月 2023 09:55:11 +0800 Subject: [PATCH] 20230407招标项目同步询价的中标信息 --- force-app/main/default/classes/UpdateTenderInformationBatch.cls | 585 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 562 insertions(+), 23 deletions(-) diff --git a/force-app/main/default/classes/UpdateTenderInformationBatch.cls b/force-app/main/default/classes/UpdateTenderInformationBatch.cls index 43a4a12..304e952 100644 --- a/force-app/main/default/classes/UpdateTenderInformationBatch.cls +++ b/force-app/main/default/classes/UpdateTenderInformationBatch.cls @@ -54,15 +54,19 @@ global Database.QueryLocator start(Database.BatchableContext bc) { String query = 'SELECT Id,IsBid__c,NotBidApprovalStatus__c,IsReactionOpp__c,Hospital__c,Hospital1__c,Hospital2__c,Hospital3__c,Hospital4__c, '; - query += 'Hospital__r.DepartmentChanges__c,Hospital1__r.DepartmentChanges__c,Hospital2__r.DepartmentChanges__c,Hospital3__r.DepartmentChanges__c,Hospital4__r.DepartmentChanges__c '; + query += 'Hospital__r.Assume_Change__c,Hospital1__r.Assume_Change__c,Hospital2__r.Assume_Change__c,Hospital3__r.Assume_Change__c,Hospital4__r.Assume_Change__c '; query += 'FROM Tender_information__c '; if(IsOnlyTrue){ query += 'WHERE ((IsReactionOpp__c = true ) '; //2021-07-29 mzy update 褰撳尰闄㈠彂鐢熷彉鍖�/鎷涙姇鏍囬」鐩甇CSM鐪佸彂鐢熷彉鍖栨椂,绌烘洿鏂颁竴涓嬫嫑鎶曟爣 start - query += 'OR (BiddingOCSMAdministration__c = true) OR (Hospital__r.DepartmentChanges__c = true) '; - query += 'OR (Hospital1__r.DepartmentChanges__c = true) OR (Hospital2__r.DepartmentChanges__c = true) '; - query += 'OR (Hospital3__r.DepartmentChanges__c = true) OR (Hospital4__r.DepartmentChanges__c = true) )'; + // 2022-04-08 ssm SWAG-CC58ME 澧炲姞鎵�鏈変汉鏃犳晥鐨勫垽鏂� start + query += 'OR (Owner.IsActive = false) '; + // 2022-04-08 ssm SWAG-CC58ME end + query += 'OR (BiddingOCSMAdministration__c = true) OR (Hospital__r.Assume_Change__c = true) '; + query += 'OR (Hospital1__r.Assume_Change__c = true) OR (Hospital2__r.Assume_Change__c = true) '; + query += 'OR (Hospital3__r.Assume_Change__c = true) OR (Hospital4__r.Assume_Change__c = true) )'; //2021-07-29 mzy update 褰撳尰闄㈠彂鐢熷彉鍖�/鎷涙姇鏍囬」鐩甇CSM鐪佸彂鐢熷彉鍖栨椂,绌烘洿鏂颁竴涓嬫嫑鎶曟爣 end + // DepartmentChanges__c 鍏ㄩ儴鎹㈡垚 Assume_Change__c } if(String.isNotBlank(this.tempTenderId)){ if(IsOnlyTrue){ @@ -111,6 +115,7 @@ //2021-07-29 mzy update 褰撳尰闄㈠彂鐢熷彉鍖�/鎷涙姇鏍囬」鐩甇CSM鐪佸彂鐢熷彉鍖栨椂,绌烘洿鏂颁竴涓嬫嫑鎶曟爣 end } //2021-07-29 mzy update 绌烘洿鏂板け璐ョ殑璇濅笉娓呯┖鍖婚櫌鐨勬爣璇� start + // System.debug('EmptyUpdateTenderList: ' + EmptyUpdateTenderList); if(EmptyUpdateTenderList.size()>0){ //绌烘洿鏂版嫑鎶曟爣 // fxk 2021/9/28 Star @@ -127,19 +132,19 @@ String faildTenderId = String.valueOf(EmptyUpdateTenderList.get(i).id).substring(0,15); Tender_information__c faildtender = EmptyUpdateTenderMap.get(faildTenderId); - if(faildtender.Hospital__c != null && faildtender.Hospital__r.DepartmentChanges__c == true){ + if(faildtender.Hospital__c != null && faildtender.Hospital__r.Assume_Change__c == true){ faildHospIdSet.add(faildtender.Hospital__c); } - if(faildtender.Hospital1__c != null && faildtender.Hospital1__r.DepartmentChanges__c == true){ + if(faildtender.Hospital1__c != null && faildtender.Hospital1__r.Assume_Change__c == true){ faildHospIdSet.add(faildtender.Hospital1__c); } - if(faildtender.Hospital2__c != null&& faildtender.Hospital2__r.DepartmentChanges__c == true){ + if(faildtender.Hospital2__c != null&& faildtender.Hospital2__r.Assume_Change__c == true){ faildHospIdSet.add(faildtender.Hospital2__c); } - if(faildtender.Hospital3__c != null&& faildtender.Hospital3__r.DepartmentChanges__c == true){ + if(faildtender.Hospital3__c != null&& faildtender.Hospital3__r.Assume_Change__c == true){ faildHospIdSet.add(faildtender.Hospital3__c); } - if(faildtender.Hospital4__c != null&& faildtender.Hospital4__r.DepartmentChanges__c == true){ + if(faildtender.Hospital4__c != null&& faildtender.Hospital4__r.Assume_Change__c == true){ faildHospIdSet.add(faildtender.Hospital4__c); } } @@ -153,23 +158,23 @@ Tender_information__c tender = EmptyUpdateTenderMap.get(tenderId); //濡傛灉澶辫触鐨凷et閲屾病鏈夎繖涓尰闄�,鍒欐竻绌鸿繖涓尰闄㈢殑鏍囪瘑 - if(tender.Hospital__c != null && tender.Hospital__r.DepartmentChanges__c == true + if(tender.Hospital__c != null && tender.Hospital__r.Assume_Change__c == true && (!faildHospIdSet.contains(tender.Hospital__c)) ){ HospitalId.add(tender.Hospital__c); } - if(tender.Hospital1__c != null && tender.Hospital1__r.DepartmentChanges__c == true + if(tender.Hospital1__c != null && tender.Hospital1__r.Assume_Change__c == true && (!faildHospIdSet.contains(tender.Hospital1__c)) ){ HospitalId.add(tender.Hospital1__c); } - if(tender.Hospital2__c != null && tender.Hospital2__r.DepartmentChanges__c == true + if(tender.Hospital2__c != null && tender.Hospital2__r.Assume_Change__c == true && (!faildHospIdSet.contains(tender.Hospital2__c)) ){ HospitalId.add(tender.Hospital2__c); } - if(tender.Hospital3__c != null && tender.Hospital3__r.DepartmentChanges__c == true + if(tender.Hospital3__c != null && tender.Hospital3__r.Assume_Change__c == true && (!faildHospIdSet.contains(tender.Hospital3__c)) ){ HospitalId.add(tender.Hospital3__c); } - if(tender.Hospital4__c != null && tender.Hospital4__r.DepartmentChanges__c == true + if(tender.Hospital4__c != null && tender.Hospital4__r.Assume_Change__c == true && (!faildHospIdSet.contains(tender.Hospital4__c)) ){ HospitalId.add(tender.Hospital4__c); } @@ -180,7 +185,7 @@ while(HospitalIds.hasNext()){ Account acc = new Account(); acc.id = HospitalIds.next(); - acc.DepartmentChanges__c = false; + acc.Assume_Change__c = false; needUpdateHPList.add(acc); } @@ -347,7 +352,11 @@ } } - + //璇环娴佺▼鏀瑰杽 fy start + System.debug('batch2寮�濮�'); + Id execBTId = Database.executeBatch(new UpdateTenderInformationBatch2(TenderIdList),100); + System.debug('batch2缁撴潫'); + //璇环娴佺▼鏀瑰杽 fy end }catch(NullPointerException ex){ system.debug('aa1:'+ex.getMessage()); @@ -389,7 +398,11 @@ List<Tender_information__c> updateTenderNumList = [SELECT Id, Hospital__c, Hospital1__c, Hospital2__c, Hospital3__c, Hospital4__c, OwnerId, IsRelateProject__c, IsBid__c, department__c, subDepartment1__c, subDepartment2__c, subDepartment3__c, subDepartment4__c, NotBidApprovalStatus__c, - OpportunityNum__c, OpportunityStatus__c FROM Tender_information__c WHERE Id IN :tenders]; + OpportunityNum__c, OpportunityStatus__c + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start + ,OlyNumberHosts__c, RivalHostsNumber__c, TotalNumberHosts__c + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end + FROM Tender_information__c WHERE Id IN :tenders]; // 鎷涙爣-璇环鍏宠仈淇敼 20210817 end return updateTenderNumList; @@ -435,24 +448,83 @@ Integer WinNum = 0; //澶卞崟 num Integer SHDNum = 0; + //XLIU-CG98L5銆愬鎵樸�戙�愯瘎浼般�戞柊闇�姹�-鎷涙爣椤圭洰/璇环瀵瑰簲娴佹爣銆佸簾鏍囨敼鍠� fy start + //鍙栨秷 num + Integer QuxNum = 0; + //XLIU-CG98L5銆愬鎵樸�戙�愯瘎浼般�戞柊闇�姹�-鎷涙爣椤圭洰/璇环瀵瑰簲娴佹爣銆佸簾鏍囨敼鍠� fy end + //涓爣 2022-6-29 yjk + Integer bidNum = 0; + //瀵规墜涓爣 2022-6-29 yjk + Integer loseNum = 0; + + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start + tempTender.OlyNumberHosts__c = 0; + tempTender.RivalHostsNumber__c = 0; + tempTender.TotalNumberHosts__c = 0; + + Decimal OlyNum = 0; + Decimal RivalNum = 0; + Decimal TotalNum = 0; + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end //鑾峰彇褰撳墠key鐨凩ist for(Opportunity tempOp :BiddingDownOppList){ + + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start + System.debug('lt123---------------------------------------'); + + if(tempOp.OlyNumberHosts__c == null){ + tempOp.OlyNumberHosts__c = 0; + } + if(tempOp.RivalHostsNumber__c == null){ + tempOp.RivalHostsNumber__c = 0; + } + + OlyNum += tempOp.OlyNumberHosts__c; + RivalNum += tempOp.RivalHostsNumber__c; + TotalNum += tempOp.InquireNumberHosts__c; + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end + // 鏉庢収濞熷娉� 锛� 杩欓噷璇锋浛鎹㈡垚<SAP涓婁紶(WIN)>鏍囪瘑鍒ゆ柇 //<!--璇环鐘舵��--> - if(tempOp.SAP_Send_OK__c){ + if(tempOp.SAP_Send_OK__c || '瀹屾瘯'.equals(tempOp.StageName__c)){ // 2022-6-2 yjk SWAG-CEP9G8 //win WinNum += 1; - }else if(tempOp.StageName__c.equals('澶卞崟')){ - //澶卞崟 - SHDNum += 1; } + //XLIU-CG98L5銆愬鎵樸�戙�愯瘎浼般�戞柊闇�姹�-鎷涙爣椤圭洰/璇环瀵瑰簲娴佹爣銆佸簾鏍囨敼鍠� fy start + // else if(tempOp.StageName__c.equals('澶卞崟') || tempOp.StageName__c.equals('鍙栨秷')){ //2022-5-23 yjk SWAG-CEP9G8 + // //澶卞崟 + // SHDNum += 1; + // } + else if(tempOp.StageName__c.equals('澶卞崟')){ //2022-5-23 yjk SWAG-CEP9G8 + //澶卞崟 + SHDNum += 1; + } + else if(tempOp.StageName__c.equals('鍙栨秷')){ //2022-5-23 yjk SWAG-CEP9G8 + //澶卞崟 + QuxNum += 1; + } + //XLIU-CG98L5銆愬鎵樸�戙�愯瘎浼般�戞柊闇�姹�-鎷涙爣椤圭洰/璇环瀵瑰簲娴佹爣銆佸簾鏍囨敼鍠� fy end //鑾峰彇璇环鐨勫尰闄�(鐩稿叧鎬ф椂鐢�) if(!OppHospitalList.contains(tempOp.Hospital__c)&&tempOp.Hospital__c!=null){ OppHospitalList.add(tempOp.Hospital__c); } + //2022-6-29 yjk 涓爣纭璧嬪�� start + if('OLY涓爣'.equals(tempOp.ConfirmationofAward__c)){ + bidNum++; + }else if('绔炰簤瀵规墜涓爣'.equals(tempOp.ConfirmationofAward__c)){ + loseNum++; + } + //2022-6-29 yjk 涓爣纭璧嬪�� end + } + + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start + tempTender.OlyNumberHosts__c = OlyNum; + tempTender.RivalHostsNumber__c = RivalNum; + tempTender.TotalNumberHosts__c = TotalNum; + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end //<!--璇环鐘舵��--> if(WinNum == BiddingDownOppList.size()){ @@ -464,7 +536,14 @@ }else if(WinNum>0&&SHDNum>0&&(WinNum + SHDNum) == BiddingDownOppList.size() ){ //閮ㄥ垎Win,閮ㄥ垎澶卞崟鏃�, 鐘舵�佷负 閮ㄥ垎鎴愪氦 tempTender.OpportunityStatus__c = '閮ㄥ垎鎴愪氦'; - }else if(tempTender.OpportunityNum__c > 0){ + } + //XLIU-CG98L5銆愬鎵樸�戙�愯瘎浼般�戞柊闇�姹�-鎷涙爣椤圭洰/璇环瀵瑰簲娴佹爣銆佸簾鏍囨敼鍠� fy start + else if(QuxNum == BiddingDownOppList.size()){ + //鍏ㄩ儴涓哄彇娑�.鐘舵�佷负 鍙栨秷 + tempTender.OpportunityStatus__c = '鍙栨秷'; + } + //XLIU-CG98L5銆愬鎵樸�戙�愯瘎浼般�戞柊闇�姹�-鎷涙爣椤圭洰/璇环瀵瑰簲娴佹爣銆佸簾鏍囨敼鍠� fy end + else if(tempTender.OpportunityNum__c > 0){ //濡傛灉璇环鏁伴噺澶т簬0鐨勮瘽灏辨槸 璺熻繘涓� tempTender.OpportunityStatus__c = '璺熻繘涓�'; }else{ @@ -472,6 +551,21 @@ tempTender.OpportunityStatus__c = ''; } //<!---- 璇环鐘舵�� end ---> + + //2022-6-29 yjk 涓爣纭璧嬪�� start + if(bidNum > 0 && loseNum == 0){ + tempTender.ConfirmationofAward__c = 'OLY涓爣'; + }else if(loseNum > 0 && bidNum == 0){ + tempTender.ConfirmationofAward__c = '绔炰簤瀵规墜涓爣'; + }else if(bidNum > 0 && loseNum > 0){ + tempTender.ConfirmationofAward__c = '閮ㄥ垎OLY涓爣'; + }else{ + //DB202304056706 you 20230406 娓呯┖ + tempTender.ConfirmationofAward__c = ''; + } + + + //2022-6-29 yjk 涓爣纭璧嬪�� end //<!------ 鐩稿叧鎬� 淇℃伅 start ----> //瀹氫箟Map瀛樻斁褰撳墠鎷涙姇鏍囬」鐩殑浜斾釜鍖婚櫌 @@ -564,6 +658,8 @@ }else { //娓呯┖ tempTender.OpportunityStatus__c = ''; + //DB202304056706 you 20230406 娓呯┖ + tempTender.ConfirmationofAward__c = ''; } updateTenderList.add(tempTender); } @@ -592,7 +688,11 @@ oppIds.add(link.Opportunity__c); } List<Opportunity> allRelativeOppList = [SELECT Id ,AccountId,Hospital__c,Department_Class__c,SAP_Send_OK__c,CreatedDate, Whether_Bidding__c, - Old_BiddingProject_Bid__c, OwnerId, StageName__c, Bidding_Project_Name_Bid__c FROM Opportunity WHERE Id in :oppIds ORDER By createdDate ASC]; + Old_BiddingProject_Bid__c, OwnerId, StageName__c, Bidding_Project_Name_Bid__c, ConfirmationofAward__c + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start + ,OlyNumberHosts__c, RivalHostsNumber__c, InquireNumberHosts__c + //20221010 lt SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end + FROM Opportunity WHERE Id in :oppIds ORDER By createdDate ASC]; // List<Opportunity> allRelativeOppList = [SELECT Id ,AccountId,Hospital__c,Department_Class__c,SAP_Send_OK__c,CreatedDate, Whether_Bidding__c, // Old_BiddingProject_Bid__c,Bidding_Project_Name_Bid__c ,StageName__c ,Bidding_Project_Name_Bid__r.Hospital__c,Bidding_Project_Name_Bid__r.Hospital1__c, // Bidding_Project_Name_Bid__r.Hospital2__c,Bidding_Project_Name_Bid__r.Hospital3__c,Bidding_Project_Name_Bid__r.Hospital4__c, @@ -771,5 +871,444 @@ 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++; + 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++; } } \ No newline at end of file -- Gitblit v1.9.1