From 2f3267bcc0e42e09b6f191cad6a0374f4a59b317 Mon Sep 17 00:00:00 2001
From: Denny chen <chenbangcai@prec-tech.com>
Date: 星期二, 10 五月 2022 17:45:34 +0800
Subject: [PATCH] InquiryVerifyBatch update
---
force-app/main/default/classes/InquiryVerifyBatch.cls | 109 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 62 insertions(+), 47 deletions(-)
diff --git a/force-app/main/default/classes/InquiryVerifyBatch.cls b/force-app/main/default/classes/InquiryVerifyBatch.cls
index 335c567..c309fad 100644
--- a/force-app/main/default/classes/InquiryVerifyBatch.cls
+++ b/force-app/main/default/classes/InquiryVerifyBatch.cls
@@ -1,41 +1,67 @@
global class InquiryVerifyBatch implements Schedulable,Database.Batchable<SObject>,Database.Stateful {
public String query;
-
public Date start_date;
-
+ public Integer year;
+ public Integer month;
global InquiryVerifyBatch() {
- // if(Test.isRunningTest()){
- this.query = 'select id,quoteSavedDate__c,Opportunity.Id,Opportunity.Department_Class__c from quote where Quote_No_last2__c = \'01\' and CreatedDate = today';
- // }else{
- // this.query = 'select id,quoteSavedDate__c,Opportunity.Id,Opportunity.Department_Class__c from quote where Quote_No__c like \'%01\' and CreatedDate = today';
- // }
-
+ this.query = query;
}
global InquiryVerifyBatch(Integer year, Integer month) {
if (year == null) {
- year = 2021;
+ this.year = 2021;
}
if (month == null) {
- month = 4;
+ this.month = 4;
}
start_date = Date.newInstance(year, month, 1);
-
- this.query = 'select id,quoteSavedDate__c,Opportunity.Id,Opportunity.Department_Class__c from quote where Quote_No_last2__c = \'01\' and CreatedDate >= :start_date';
+ this.query = query;
}
-
public void execute(SchedulableContext sc) {
Database.executeBatch(this);
}
- // global void execute(SchedulableContext sc){Database.executebatch(this);}
global Database.QueryLocator start(Database.BatchableContext bc) {
// 鑾峰彇鎶ヤ环鍗曟暟鎹�
+
+
+ if (start_date!=null) {
+ query = 'select id,quoteSavedDate__c,Opportunity.Id,Opportunity.Department_Class__c from quote where Quote_No_last2__c = \'01\' and CreatedDate >= :start_date';
+ }else{
+ query = 'select id,quoteSavedDate__c,Opportunity.Id,Opportunity.Department_Class__c from quote where Quote_No_last2__c = \'01\' and CreatedDate = today';
+ }
+
+ System.debug(LoggingLevel.INFO, '*** query: ' + query);
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, list<quote> quotes) {
List<Opportunity> os = new List<Opportunity>();
+ List<String> qids = new List<String>();
+ List<String> oppDepartmentList = new List<String>();
+ List<String> ca4 = new List<String>();
+ for (quote quo : quotes) {
+ qids.add(quo.id);
+ oppDepartmentList.add(quo.Opportunity.Department_Class__c);
+ }
+ Map<String,List<String>> mapc4 = new Map<String,List<String>>();
+ for(List<QuoteLineItem> qlt:[Select Id,Product2.Category4__c,QuoteId
+ from QuoteLineItem
+ where QuoteId In :qids and Product2.Important_product__c = true]){
+
+ for ( QuoteLineItem qlt1:qlt ) {
+ ca4.add(qlt1.Product2.Category4__c);
+ }
+ if (!mapc4.containskey(qlt[0].QuoteId)) {
+ mapc4.put(qlt[0].QuoteId,ca4);
+ }
+ }
+ List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [select id, product__c, Bollow_Date__c,Category4__c, Rental_Apply__r.Hospital__c,Rental_Apply__r.Strategic_dept__c
+ from Rental_Apply_Equipment_Set_Detail__c
+ where Rental_Apply__r.Demo_purpose2__c = '璇曠敤锛堟棤璇环锛�'
+ AND Rental_Apply__r.Strategic_dept__c IN : oppDepartmentList
+ and Category4__c IN :ca4
+ order by Bollow_Date__c];
// 閬嶅巻鎶ヤ环鍗�
for (quote quo: quotes) {
Opportunity o = New Opportunity();
@@ -47,48 +73,37 @@
}else{
createdDateStr = Date.today();
}
- // 鑾峰彇鎶ヤ环浜у搧鏁版嵁锛岃幏鍙栫鍥涘垎绫�
- List<QuoteLineItem> qlts = [Select Id,Product2.Category4__c from QuoteLineItem where QuoteId = :quo.Id and Product2.Important_product__c = true];
- List<String> c4 = new List<String>();
- List<String> qdept = new List<String>();
- // 绗洓鍒嗙被鏀惧叆list
- for (QuoteLineItem qlt : qlts) {
- c4.add(qlt.Product2.Category4__c);
- }
+
// 涓�骞村墠鐨勬棩鏈�
Date createdDateYear = createdDateStr.addYears(-1);
- // 鑾峰彇澶囧搧閰嶅涓�瑙堟槑缁�
- List<Rental_Apply_Equipment_Set_Detail__c> raesdList = [select id, product__c, Bollow_Date__c,Category4__c, Rental_Apply__r.Hospital__c
- from Rental_Apply_Equipment_Set_Detail__c
- where Rental_Apply__r.Strategic_dept__c = : quo.Opportunity.Department_Class__c
- and Category4__c IN :c4
- and Rental_Apply__r.Demo_purpose2__c = '璇曠敤锛堟棤璇环锛�'
- and Bollow_Date__c >= :createdDateYear order by Bollow_Date__c limit 200 ];
-
-
- for (Rental_Apply_Equipment_Set_Detail__c raesd : raesdList) {
- o.WhetherTrySpareParts_3m__c = false;
- o.WhetherTrySpareParts_6m__c = false;
- o.WhetherTrySpareParts_1y__c = false;
- Date bollDate = raesd.Bollow_Date__c;
- if (bollDate != null && bollDate.addMonths(3) > createdDateStr) {
- o.WhetherTrySpareParts_3m__c = true;
- }
- if (bollDate != null && bollDate.addMonths(6) > createdDateStr && bollDate.addMonths(3) < createdDateStr) {
- o.WhetherTrySpareParts_6m__c = true;
- }
- if (bollDate != null && bollDate.addYears(1) > createdDateStr && bollDate.addMonths(6) < createdDateStr) {
- o.WhetherTrySpareParts_1y__c = true;
- }
- }
+ for (Rental_Apply_Equipment_Set_Detail__c raesd : raesdList) {
+ if (raesd.Rental_Apply__r.Strategic_dept__c == quo.Opportunity.Department_Class__c && mapc4.containskey(quo.id) && mapc4.get(quo.id).contains(raesd.Category4__c) && raesd.Bollow_Date__c >= createdDateYear) {
+ o.WhetherTrySpareParts_3m__c = false;
+ o.WhetherTrySpareParts_6m__c = false;
+ o.WhetherTrySpareParts_1y__c = false;
+ Date bollDate = raesd.Bollow_Date__c;
+ if (bollDate != null && bollDate.addMonths(3) > createdDateStr) {
+ o.WhetherTrySpareParts_3m__c = true;
+ }
+ if (bollDate != null && bollDate.addMonths(6) > createdDateStr && bollDate.addMonths(3) < createdDateStr) {
+ o.WhetherTrySpareParts_6m__c = true;
+ }
+ if (bollDate != null && bollDate.addYears(1) > createdDateStr && bollDate.addMonths(6) < createdDateStr) {
+ o.WhetherTrySpareParts_1y__c = true;
+ }
+ }
+ }
+
os.add(o);
}
if (os.size()>0) {
+ Oly_TriggerHandler.bypass('AWSServiceTool2');
+ Oly_TriggerHandler.bypass('PIHelper');
update os;
system.debug('鎵ц鎴愬姛');
- }else{
+ }else{
system.debug('鎵ц澶辫触');
}
}
--
Gitblit v1.9.1