public without sharing class Product2Handler extends Oly_TriggerHandler {
|
private Map<Id, Product2> newMap;
|
private Map<Id, Product2> oldMap;
|
private List<Product2> newList;
|
private List<Product2> oldList;
|
|
public Product2Handler() {
|
this.newMap = (Map<Id, Product2>) Trigger.newMap;
|
this.oldMap = (Map<Id, Product2>) Trigger.oldMap;
|
this.newList = (List<Product2>) Trigger.new;
|
this.oldList = (List<Product2>) Trigger.old;
|
}
|
|
protected override void beforeInsert() {
|
beforeSetValue();
|
// SWAG-BHE9GK LHJ 竞争对手产品自动编码 Start
|
SetCompetitorCode();
|
// SWAG-BHE9GK LHJ 竞争对手产品自动编码 End
|
// WLIG-CKKA4M xxf 【委托】【产品主数据】注册证更新后部分字段信息未自动代入 Start
|
AutomaticallyBringData();
|
// WLIG-CKKA4M xxf 【委托】【产品主数据】注册证更新后部分字段信息未自动代入 End
|
}
|
protected override void beforeUpdate() {
|
beforeSetValue();
|
//SFDC停止预警 lt 20211015 add start
|
// FlgStopManufacure(this.newList, this.oldMap);
|
//SFDC停止预警 lt 20211015 add end
|
FlgStopManufacure();
|
}
|
|
//SFDC停止预警 lt 20210922 add start
|
protected override void afterUpdate() {
|
Calculate_AverageMonthSales(this.newList, this.oldMap);
|
AssignmentUltrasonic(this.newList, this.oldMap); //20230506 lt DB202304618804 包含超声 add
|
}
|
//SFDC停止预警 lt 20210922 add end
|
|
// SWAG-BHE9GK LHJ 竞争对手产品自动编码 Start
|
private void SetCompetitorCode() {
|
Boolean SelctFlg = false;
|
list<AggregateResult> proList;
|
//带量采购修改 start fy
|
list<AggregateResult> proListsc;
|
//带量采购修改 end fy
|
String strPC = '';
|
//带量采购修改 start fy
|
String strPCsc = '';
|
//带量采购修改 end fy
|
Integer i = 1;
|
|
String ProductRecordTypes = System.Label.ProductRecordTypeID;
|
String[] RecordTypes = String.isNotBlank(ProductRecordTypes)
|
? ProductRecordTypes.split(',')
|
: null;
|
|
for (Product2 nObj : newList) {
|
//带量采购修改 start fy
|
String RecordTypeString = '';
|
if (nObj.RecordTypeId != null) {
|
RecordTypeString = String.valueof(nObj.RecordTypeId).substring(0, 15);
|
}
|
// nObj.Competitor_product_dummy__c=System.Label.ProductRecordTypeID.contains(RecordTypeString);
|
// if (nObj.Competitor_product_dummy__c) {
|
if (System.Label.ProductRecordTypeID.contains(RecordTypeString)) {
|
SelctFlg = true;
|
}
|
//带量采购修改 end fy
|
}
|
if (SelctFlg) {
|
proList = [
|
SELECT Max(ProductCode) PC
|
FROM Product2
|
WHERE ProductCode LIKE 'SD%' AND ProductCode != 'SD999999'
|
];
|
if (proList != null && proList.size() > 0) {
|
strPC = String.valueof(proList[0].get('PC'));
|
}
|
//带量采购 start fy
|
// proListsc = [Select Max(ProductCode) PC From Product2 Where ProductCode Like 'SC%'];
|
// if (proListsc != null && proListsc.size() > 0) {
|
// strPCsc = String.valueof(proListsc[0].get('PC'));
|
// }
|
List<Product2> lastPro = [
|
SELECT Id, ProductCode
|
FROM Product2
|
WHERE ProductCode LIKE 'SC%'
|
ORDER BY ProductCode DESC
|
LIMIT 1
|
];
|
strPCsc = lastPro != null &&
|
lastPro.size() > 0
|
? lastPro[0].ProductCode
|
: '';
|
//带量采购 end fy
|
}
|
for (Product2 nObj : newList) {
|
//带量采购 start fy
|
String RecordTypeString = '';
|
if (nObj.RecordTypeId != null) {
|
RecordTypeString = String.valueof(nObj.RecordTypeId).substring(0, 15);
|
}
|
// if (nObj.Competitor_product_dummy__c && strPC.length() == 8
|
// if (System.Label.ProductRecordTypeID.contains(RecordTypeString) && strPC.length() == 8
|
if (System.Label.ProductRecordTypeID.contains(RecordTypeString)) {
|
//带量采购 end fy
|
// && proList != null && proList.size() > 0 ) {
|
// Integer num = Integer.valueOf(strPC.SubString(2,strPC.length())) + i;
|
Integer num = String.isNotBlank(strPC)
|
? Integer.valueOf(strPC.SubString(2, strPC.length())) + i
|
: i;
|
//带量采购 start fy
|
Integer numsc = String.isNotBlank(strPCsc)
|
? Integer.valueOf(strPCsc.SubString(2, strPCsc.length())) + i
|
: i;
|
// if(RecordTypeString=='0129D000001NacC'){
|
if (
|
RecordTypes != null &&
|
RecordTypes.size() > 1 &&
|
RecordTypeString == RecordTypes[1]
|
) {
|
nObj.ProductCode = 'SC' + String.valueOf(numsc).leftpad(8, '0');
|
} else {
|
nObj.ProductCode = 'SD' + String.valueOf(num).leftpad(6, '0');
|
}
|
//带量采购 end fy
|
// nObj.ProductCode = 'SD' + String.valueOf(num).leftpad(6,'0');
|
i++;
|
}
|
}
|
}
|
// SWAG-BHE9GK LHJ 竞争对手产品自动编码 End
|
|
//WLIG-CKKA4M xxf 【委托】【产品主数据】注册证更新后部分字段信息未自动代入 Start
|
private void AutomaticallyBringData() {
|
List<String> noNewList = new List<String>();
|
for (Product2 prd : newList) {
|
if (prd.Asset_Model_No__c != null) {
|
noNewList.add(prd.Asset_Model_No__c);
|
}
|
}
|
if (!noNewList.isEmpty()) {
|
List<Product2> prdList = [
|
SELECT
|
Id,
|
Name,
|
Asset_Model_No__c,
|
MDM_Name__c,
|
Maintenance_Price_Year__c,
|
Extend_new_product_gurantee_MD__c,
|
Extend_Gurantee_Start_MD__c,
|
Extend_Gurantee_End_MD__c,
|
Entend_gurantee_period_MD__c,
|
Extend_new_product_gurantee__c,
|
Extend_Gurantee_Start__c,
|
Extend_Gurantee_End__c,
|
Entend_gurantee_period__c,
|
CanNotCancelledGurantee__c,
|
Service_Category1__c,
|
Service_Category2__c,
|
Service_Category3__c,
|
Service_Category4__c,
|
Service_Category5__c,
|
Service_Category6__c,
|
Service_Category7__c,
|
Can_Repair__c,
|
RepairListPriceLevelA__c,
|
RepairListPriceLevelB__c,
|
RepairListPriceLevelC__c,
|
PartSupplyFinishDate__c,
|
EndSaleDate__c,
|
ProductClass__c,
|
ProductCategory__c,
|
Period_Filter_Classify1__c,
|
Period_Filter_Classify2__c,
|
Period_Filter_Classify3__c,
|
Intra_Trade_Service_RMB_Date1__c,
|
Intra_Trade_Service_RMB_Date2__c,
|
Intra_Trade_Service_RMB_EndDate1__c,
|
Intra_Trade_Service_RMB_EndDate2__c,
|
Intra_Trade_Service_RMB_1__c,
|
Intra_Trade_Service_RMB_2__c
|
FROM Product2
|
WHERE Asset_Model_No__c IN :noNewList
|
ORDER BY CreatedDate DESC
|
];
|
if (prdList.isEmpty()) {
|
return;
|
}
|
Map<String, Product2> prdMap = new Map<String, Product2>();
|
for (Product2 pro2 : prdList) {
|
if (!prdMap.isEmpty() && prdMap.containskey(pro2.Asset_Model_No__c)) {
|
} else {
|
prdMap.put(pro2.Asset_Model_No__c, pro2);
|
}
|
}
|
|
for (Product2 prd : newList) {
|
if (prdMap.containskey(prd.Asset_Model_No__c)) {
|
prd.Maintenance_Price_Year__c = prdMap.get(prd.Asset_Model_No__c)
|
.Maintenance_Price_Year__c; //维修合同报价
|
prd.CanNotCancelledGurantee__c = prdMap.get(prd.Asset_Model_No__c)
|
.CanNotCancelledGurantee__c; //不可取消多年保修
|
prd.ProductClass__c = prdMap.get(prd.Asset_Model_No__c)
|
.ProductClass__c; //市场产品类别
|
prd.ProductCategory__c = prdMap.get(prd.Asset_Model_No__c)
|
.ProductCategory__c; //市场区分
|
prd.Extend_new_product_gurantee_MD__c = prdMap.get(
|
prd.Asset_Model_No__c
|
)
|
.Extend_new_product_gurantee_MD__c; //市场保修对象
|
prd.Extend_new_product_gurantee__c = prdMap.get(prd.Asset_Model_No__c)
|
.Extend_new_product_gurantee__c; //服务保修对象
|
if (
|
prdMap.get(prd.Asset_Model_No__c)
|
.Extend_new_product_gurantee_MD__c == true
|
) {
|
//市场保修对象
|
prd.Entend_gurantee_period_MD__c = prdMap.get(prd.Asset_Model_No__c)
|
.Entend_gurantee_period_MD__c; //市场保修期(年)
|
}
|
if (
|
prdMap.get(prd.Asset_Model_No__c).Extend_new_product_gurantee__c ==
|
true
|
) {
|
//服务保修对象
|
prd.Entend_gurantee_period__c = prdMap.get(prd.Asset_Model_No__c)
|
.Entend_gurantee_period__c; //服务保修期(年)
|
}
|
prd.Extend_Gurantee_Start_MD__c = prdMap.get(prd.Asset_Model_No__c)
|
.Extend_Gurantee_Start_MD__c; //市场保修开始日
|
prd.Extend_Gurantee_End_MD__c = prdMap.get(prd.Asset_Model_No__c)
|
.Extend_Gurantee_End_MD__c; //市场保修结束日
|
prd.Extend_Gurantee_Start__c = prdMap.get(prd.Asset_Model_No__c)
|
.Extend_Gurantee_Start__c; //服务保修开始日
|
prd.Extend_Gurantee_End__c = prdMap.get(prd.Asset_Model_No__c)
|
.Extend_Gurantee_End__c; //服务保修结束日
|
prd.Service_Category1__c = prdMap.get(prd.Asset_Model_No__c)
|
.Service_Category1__c; //第1服务分类
|
prd.Service_Category2__c = prdMap.get(prd.Asset_Model_No__c)
|
.Service_Category2__c;
|
prd.Service_Category3__c = prdMap.get(prd.Asset_Model_No__c)
|
.Service_Category3__c;
|
prd.Service_Category4__c = prdMap.get(prd.Asset_Model_No__c)
|
.Service_Category4__c;
|
prd.Service_Category5__c = prdMap.get(prd.Asset_Model_No__c)
|
.Service_Category5__c;
|
prd.Service_Category6__c = prdMap.get(prd.Asset_Model_No__c)
|
.Service_Category6__c;
|
prd.Service_Category7__c = prdMap.get(prd.Asset_Model_No__c)
|
.Service_Category7__c;
|
prd.Can_Repair__c = prdMap.get(prd.Asset_Model_No__c).Can_Repair__c; //是否可维修
|
prd.RepairListPriceLevelA__c = prdMap.get(prd.Asset_Model_No__c)
|
.RepairListPriceLevelA__c; //A(W)级维修参考价格
|
prd.RepairListPriceLevelB__c = prdMap.get(prd.Asset_Model_No__c)
|
.RepairListPriceLevelB__c;
|
prd.RepairListPriceLevelC__c = prdMap.get(prd.Asset_Model_No__c)
|
.RepairListPriceLevelC__c;
|
prd.PartSupplyFinishDate__c = prdMap.get(prd.Asset_Model_No__c)
|
.PartSupplyFinishDate__c; //零件停止供应日期
|
prd.EndSaleDate__c = prdMap.get(prd.Asset_Model_No__c).EndSaleDate__c; //停止销售日期
|
prd.Period_Filter_Classify1__c = prdMap.get(prd.Asset_Model_No__c)
|
.Period_Filter_Classify1__c; //营业统计分类1
|
prd.Period_Filter_Classify2__c = prdMap.get(prd.Asset_Model_No__c)
|
.Period_Filter_Classify2__c; //营业统计分类2
|
prd.Period_Filter_Classify3__c = prdMap.get(prd.Asset_Model_No__c)
|
.Period_Filter_Classify3__c; //营业统计分类3
|
prd.Intra_Trade_Service_RMB_Date1__c = prdMap.get(
|
prd.Asset_Model_No__c
|
)
|
.Intra_Trade_Service_RMB_Date1__c; //多年保价格有效开始日1
|
prd.Intra_Trade_Service_RMB_Date2__c = prdMap.get(
|
prd.Asset_Model_No__c
|
)
|
.Intra_Trade_Service_RMB_Date2__c; //多年保价格有效开始日2
|
prd.Intra_Trade_Service_RMB_EndDate1__c = prdMap.get(
|
prd.Asset_Model_No__c
|
)
|
.Intra_Trade_Service_RMB_EndDate1__c; //多年保价格有效结束日1
|
prd.Intra_Trade_Service_RMB_EndDate2__c = prdMap.get(
|
prd.Asset_Model_No__c
|
)
|
.Intra_Trade_Service_RMB_EndDate2__c; //多年保价格有效结束日2
|
prd.Intra_Trade_Service_RMB_1__c = prdMap.get(prd.Asset_Model_No__c)
|
.Intra_Trade_Service_RMB_1__c; //多年保价格1
|
prd.Intra_Trade_Service_RMB_2__c = prdMap.get(prd.Asset_Model_No__c)
|
.Intra_Trade_Service_RMB_2__c; //多年保价格2
|
}
|
}
|
}
|
}
|
// WLIG-CKKA4M xxf 【委托】【产品主数据】注册证更新后部分字段信息未自动代入 end
|
|
private void beforeSetValue() {
|
for (Product2 nObj : newList) {
|
//CHAN-B8GCBB
|
if (nObj.WhiteSpace__c == true) {
|
nObj.StorageStatus__c = String.valueOf(nObj.StorageStatusNo__c);
|
} else {
|
nObj.StorageStatus__c = '';
|
}
|
//CHAN-B8GCBB
|
|
nObj.Fixture_Model_No_T__c = nObj.Fixture_Model_No_F__c;
|
// CBPR LHJ
|
if (
|
Trigger.isInsert ||
|
(Trigger.isUpdate &&
|
nObj.SFDA_Status_New__c != oldMap.get(nObj.id).SFDA_Status_New__c)
|
) {
|
nObj.SFDA_Status__c = nobj.SFDA_Status_New__c;
|
if (
|
nobj.SFDA_Status_New__c == '新製品申請中' ||
|
nobj.SFDA_Status_New__c == '準備中'
|
) {
|
nObj.SFDA_Status__c = '停止';
|
}
|
}
|
// CBPR LHJ
|
|
// SWAG-BHE9GK LHJ 竞争对手产品自动编码 Start
|
if (Trigger.isInsert) {
|
}
|
// SWAG-BHE9GK LHJ 竞争对手产品自动编码 End
|
}
|
}
|
|
//SFDC停止预警 lt 20210914 add start
|
private static void Calculate_AverageMonthSales(
|
List<Product2> newList,
|
Map<Id, Product2> oldMap
|
) {
|
//符合条件的 旧 产品List
|
List<Id> oproList = new List<Id>();
|
//符合条件的 新旧 产品Id List 作为条件
|
List<Id> conList = new List<Id>();
|
//Map<旧的,新的>对应
|
Map<String, String> matMap = new Map<String, String>();
|
|
//Map<旧Id,预计停止日>
|
Map<String, Date> adateMap = new Map<String, Date>();
|
|
//Map<旧Id, x(平均月销量)>
|
Map<String, Integer> xMap = new Map<String, Integer>();
|
//Map<旧Id, z(天数)>
|
Map<String, Integer> zMap = new Map<String, Integer>();
|
|
for (Product2 term : newList) {
|
System.debug('标识' + term.CalMonthSalesFLG__c);
|
System.debug('新库存' + term.StorageStatusNo__c);
|
System.debug('旧库存' + oldMap.get(term.Id).StorageStatusNo__c);
|
if (
|
term.M_BC_Stop_manufacure__c != null &&
|
term.SFDA_Status__c != '停止' &&
|
(term.StorageStatusNo__c != oldMap.get(term.Id).StorageStatusNo__c ||
|
term.CalMonthSalesFLG__c == true)
|
) {
|
if (term.Correspond_Code__c != null) {
|
matMap.put((String) term.Id, (String) term.Correspond_Code__c);
|
conList.add(term.Correspond_Code__c);
|
}
|
conList.add(term.Id);
|
oproList.add(term.Id);
|
|
adateMap.put(term.Id, term.M_BC_Stop_manufacure__c);
|
}
|
}
|
|
//做 一对多 的 Map<String,List<月销量>>
|
Map<String, List<ProductMonthlySales__c>> msMap = new Map<String, List<ProductMonthlySales__c>>();
|
|
if (conList.size() > 0) {
|
List<ProductMonthlySales__c> msList = [
|
SELECT
|
Id,
|
MonthSales__c,
|
CurrentMonth__c,
|
CurrentDate__c,
|
CurrentYear__c,
|
ProductM__c,
|
Product2Model__c,
|
ProductM__r.StorageStatusNo__c,
|
ProductM__r.M_BC_Stop_manufacure__c
|
FROM ProductMonthlySales__c
|
WHERE ProductM__c IN :conList
|
ORDER BY CurrentDate__c DESC
|
];
|
//双层循环 产品==>月销量
|
for (Id pro : conList) {
|
for (ProductMonthlySales__c mms : msList) {
|
if (pro == mms.ProductM__c) {
|
if (msMap.containsKey(pro)) {
|
msMap.get(pro).add(mms);
|
} else {
|
List<ProductMonthlySales__c> pmsaleList = new List<ProductMonthlySales__c>();
|
pmsaleList.add(mms);
|
msMap.put(pro, pmsaleList);
|
}
|
}
|
}
|
}
|
|
System.debug('条件List' + conList);
|
System.debug('sql查到的List' + msList);
|
System.debug('产品月销量msMap为' + msMap);
|
System.debug('旧的产品List' + oproList);
|
|
if (msMap.size() > 0) {
|
System.debug('产品月销量msMap为' + msMap);
|
for (Id res : oproList) {
|
//a旧 月销量和 ; b新 月销量和 ; c商(平均月销量) ; x商四舍五入 ;
|
//y 库存/平均月销量天数 ; z 天数 四舍五入
|
Decimal c = 0, y = 0;
|
Integer x = 0, z = 0;
|
|
if (msMap.get(res) != null) {
|
//月销量大于12个月
|
if (msMap.get(res).size() >= 12) {
|
Decimal a = 0, b = 0;
|
Integer i;
|
for (i = 0; i < 12; i++) {
|
a += msMap.get(res)[i].MonthSales__c;
|
}
|
if (matMap.get(res) != null) {
|
if (msMap.get(matMap.get(res)) != null) {
|
if (msMap.get(matMap.get(res)).size() >= 12) {
|
for (i = 0; i < 12; i++) {
|
b += msMap.get(matMap.get(res))[i].MonthSales__c;
|
System.debug('新的大于十二' + b);
|
}
|
} else {
|
for (
|
ProductMonthlySales__c nms : msMap.get(matMap.get(res))
|
) {
|
b += nms.MonthSales__c;
|
System.debug('新的小于十二遍历全部' + b);
|
}
|
}
|
}
|
}
|
|
//四舍五入
|
c = (a + b) / 12;
|
|
if (c > 1) {
|
x = Integer.valueOf(c.round(System.RoundingMode.HALF_UP));
|
xMap.put(res, x);
|
} else if (c > 0) {
|
x = 1;
|
xMap.put(res, x);
|
}
|
//x = Integer.valueOf(c.round(System.RoundingMode.Up));
|
//x = Integer.valueOf(c.round(System.RoundingMode.HALF_UP));
|
|
System.debug('新' + b);
|
System.debug('旧' + a);
|
System.debug('除法足c' + c);
|
System.debug('四舍五入x' + x);
|
}
|
//月销量不足12个月
|
else {
|
Decimal a = 0, b = 0;
|
for (ProductMonthlySales__c oms : msMap.get(res)) {
|
a += oms.MonthSales__c;
|
}
|
if (msMap.get(matMap.get(res)) != null) {
|
for (ProductMonthlySales__c nms : msMap.get(matMap.get(res))) {
|
b += nms.MonthSales__c;
|
}
|
}
|
c = (a + b) / msMap.get(res).size();
|
//x = Integer.valueOf(c.round(System.RoundingMode.UP));
|
//x = Integer.valueOf(c.round(System.RoundingMode.HALF_UP));
|
if (c > 1) {
|
x = Integer.valueOf(c.round(System.RoundingMode.HALF_UP));
|
xMap.put(res, x);
|
} else if (c > 0) {
|
x = 1;
|
xMap.put(res, x);
|
}
|
|
System.debug('除法不足12c' + c);
|
System.debug('四舍五入x' + x);
|
}
|
|
if (x != 0) {
|
for (ProductMonthlySales__c dat : msMap.get(res)) {
|
Decimal m = 0;
|
if (dat.ProductM__r.StorageStatusNo__c != null) {
|
m = dat.ProductM__r.StorageStatusNo__c;
|
}
|
y = m / x;
|
y = y * 30;
|
}
|
}
|
//z = Integer.valueOf(y.round(System.RoundingMode.UP));
|
z = Integer.valueOf(y.round(System.RoundingMode.HALF_UP));
|
zMap.put(res, z);
|
System.debug('天数y' + y);
|
System.debug('四舍五入z' + z);
|
}
|
}
|
}
|
|
List<Product2> finList = new List<Product2>();
|
for (Id fin : oproList) {
|
Product2 fip = new Product2();
|
fip.Id = fin;
|
fip.CalMonthSalesFLG__c = false;
|
|
if (xMap.get(fin) != null) {
|
fip.Average_MonthSales__c = xMap.get(fin);
|
}
|
|
//20211020
|
if (zMap.get(fin) != null) {
|
if (zMap.get(fin) != 0) {
|
fip.Estimated_ConsumptionDueDate__c = Date.today()
|
.addDays(zMap.get(fin));
|
} else {
|
if (adateMap != null) {
|
Date adate = adateMap.get(fin);
|
fip.Estimated_ConsumptionDueDate__c = adate;
|
}
|
}
|
} else {
|
if (adateMap != null) {
|
Date adate = adateMap.get(fin);
|
fip.Estimated_ConsumptionDueDate__c = adate;
|
}
|
}
|
//20211020
|
|
finList.add(fip);
|
}
|
update finList;
|
}
|
}
|
//SFDC停止预警 lt 20210914 add end
|
|
//SFDC停止预警 lt 20211015 add start
|
//ProductMonthlySalesFlag__c 12月销量标识 预计停止日期(M_BC_Stop_manufacure__c)变化时
|
// private static void FlgStopManufacure(List<Product2> newList,Map<Id, Product2> oldMap){
|
// if(newList != null){
|
// for(Product2 pts : newList){
|
// if(oldMap != null){
|
// if(pts.M_BC_Stop_manufacure__c != null && oldMap.get(pts.Id).M_BC_Stop_manufacure__c == null){
|
// pts.ProductMonthlySalesFlag__c = true;
|
// }
|
// if(pts.M_BC_Stop_manufacure__c != null && oldMap.get(pts.Id).M_BC_Stop_manufacure__c != null && pts.M_BC_Stop_manufacure__c != oldMap.get(pts.Id).M_BC_Stop_manufacure__c){
|
// pts.ProductMonthlySalesFlag__c = true;
|
// }
|
// if(pts.M_BC_Stop_manufacure__c == null && oldMap.get(pts.Id).M_BC_Stop_manufacure__c != null){
|
// pts.ProductMonthlySalesFlag__c = false;
|
// pts.Estimated_ConsumptionDueDate__c = null;
|
// }
|
// }
|
// }
|
// }
|
|
// }
|
//SFDC停止预警 lt 20211015 add end
|
private void FlgStopManufacure() {
|
for (Product2 pts : newList) {
|
Product2 oldPts = oldMap.get(pts.Id);
|
|
if (pts.M_BC_Stop_manufacure__c != oldPts.M_BC_Stop_manufacure__c) {
|
pts.ProductMonthlySalesFlag__c = true;
|
if (pts.M_BC_Stop_manufacure__c == null) {
|
pts.ProductMonthlySalesFlag__c = false;
|
pts.Estimated_ConsumptionDueDate__c = null;
|
}
|
}
|
|
if (pts.SFDA_Status__c == '停止' && oldPts.SFDA_Status__c != '停止') {
|
pts.Estimated_ConsumptionDueDate__c = null;
|
}
|
}
|
}
|
|
//20230506 lt DB202304618804 包含超声 start
|
private static void AssignmentUltrasonic(
|
List<Product2> newList,
|
Map<Id, Product2> oldMap
|
) {
|
List<String> proIdList = new List<String>();
|
List<PCLLostProduct__c> updateplpList = new List<PCLLostProduct__c>();
|
|
for (Product2 pro : newList) {
|
if (
|
pro.RecordTypeId == System.Label.Pro_RecordType &&
|
(pro.Lost_Product_Differ__c !=
|
oldMap.get(pro.Id).Lost_Product_Differ__c ||
|
pro.Lost_Product_Category__c !=
|
oldMap.get(pro.Id).Lost_Product_Category__c)
|
) {
|
proIdList.add(pro.Id);
|
}
|
}
|
|
List<PCLLostProduct__c> plpList = [
|
SELECT Id, LostProduct__c, ProductClass__c, ProductCategory__c
|
FROM PCLLostProduct__c
|
WHERE LostProduct__c IN :proIdList
|
];
|
if (plpList.size() > 0) {
|
for (PCLLostProduct__c plp : plpList) {
|
plp.ProductClass__c = '主机';
|
plp.ProductCategory__c = '超声主机';
|
updateplpList.add(plp);
|
}
|
}
|
|
update updateplpList;
|
}
|
//20230506 lt DB202304618804 包含超声 end
|
}
|