public without sharing class LostReportHandler extends Oly_TriggerHandler {
|
private Map<Id, LostReport__c> newMap;
|
private Map<Id, LostReport__c> oldMap;
|
private List<LostReport__c> newList;
|
private List<LostReport__c> oldList;
|
|
private static Set<String> checkedSet = new Set<String>();
|
private static Map<Id, LostReport__c> needCheckLRMap = new Map<Id, LostReport__c>();
|
|
private static Set<String> checkedRAESDSet = new Set<String>();
|
|
private static Set<String> checkedIDSet = new Set<String>();
|
// 需要追加共享的共享Object
|
private static List<SObject> shareList = new List<SObject>();
|
// 已经放在追加共享List的Key
|
private static Set<String> shareSet = new Set<String>();
|
|
private static User planning_DivisionB;
|
|
public LostReportHandler() {
|
this.newMap = (Map<Id, LostReport__c>) Trigger.newMap;
|
this.oldMap = (Map<Id, LostReport__c>) Trigger.oldMap;
|
this.newList = (List<LostReport__c>) Trigger.new;
|
this.oldList = (List<LostReport__c>) Trigger.old;
|
}
|
|
protected override void beforeInsert() {
|
beforeExecute();
|
}
|
|
protected override void beforeUpdate() {
|
needCheckLRMap = new Map<Id, LostReport__c>();
|
beforeExecute();
|
setEmail_Detail();
|
}
|
|
protected override void afterUpdate() {
|
// updateNeedAutoGiveup();
|
setShare();
|
if (shareList.size() > 0) {
|
insert shareList;
|
}
|
//add by rentx 20210604 1635 start
|
setBeiPinWindowAndTOwner();
|
//add by rentx 20210609 1635 end
|
//2021-12-17 mzy 备品任务 start
|
//遗失报告批准给备品配套一览明细打标识
|
setRentalDetailFlag();
|
//2021-12-17 mzy 备品任务 end
|
}
|
|
protected override void afterDelete() {
|
deleteCheck();
|
}
|
|
//add by rentx 20210604 start
|
private void setBeiPinWindowAndTOwner(){
|
List<LostReport__c> updateList = new List<LostReport__c>();
|
//需要进行查询,因为有公式字段
|
List<Id> ids = new List<Id>();
|
for (LostReport__c nObj : newList) {
|
//add by rentx 1650 start 盘点时也给备品总窗口赋值
|
if (nObj.TransferApply__c != null || nObj.Inventory_Header__c != null) {
|
ids.add(nObj.Id);
|
}
|
}
|
|
if (ids.size() > 0) {
|
List<LostReport__c> lrList = [select id,BeiPinWindow_F__c,TransferApply__r.OwnerId,TransferApply__r.Contact_Person__c,TransferApplyDeveloperName__c from LostReport__c where id in :ids];
|
for (LostReport__c lost : lrList) {
|
//给备品总窗口赋值
|
lost.BeiPinWindow__c = lost.BeiPinWindow_F__c;
|
//给联络人赋值 办事处到备品中心取联络人,备品中心到办事处取申请人
|
if (lost.TransferApplyDeveloperName__c == '备品中心调拨至办事处') {
|
lost.TApplyOwner__c = lost.TransferApply__r.OwnerId;
|
}else if (lost.TransferApplyDeveloperName__c == '办事处调拨至备品中心') {
|
lost.TApplyOwner__c = lost.TransferApply__r.Contact_Person__c;
|
}
|
|
}
|
|
//add by rentx 20210604 1635 start 给备品总窗口赋值
|
if (lrList.size() > 0) {
|
Oly_TriggerHandler.bypass('LostReportHandler');
|
update lrList;
|
}
|
//add by rentx 20210604
|
}
|
|
}
|
//add by rentx 20210604 end
|
|
private void deleteCheck() {
|
for (LostReport__c oObj : oldList) {
|
if (oObj.Status__c == '草案中' && oObj.LostReport_Detail_Count__c > 0) {
|
oObj.addError('不可以删除有遗失报告明细的草案中遗失报告。');
|
}
|
}
|
}
|
|
private void setEmail_Detail() {
|
Set<Id> needSetEmailRaesdSet = new Set<Id>();
|
Set<Id> needSetEmailLHSet = new Set<Id>();
|
Set<Id> needSetEmailDBSet = new Set<Id>();
|
List<LostReport__c> needSetEmailAssetList = new List<LostReport__c>();
|
for (LostReport__c nObj : newList) {
|
LostReport__c oObj;
|
if (Trigger.isUpdate) {
|
oObj = oldMap.get(nObj.Id);
|
}
|
System.debug('nObj::'+nObj);
|
if (oObj != null
|
&& oObj.Status__c != nObj.Status__c
|
&& (nObj.Status__c == '已批准'
|
|| nObj.Status__c == '填写完毕')) {
|
if (String.isNotBlank(nObj.Rental_Apply__c)) {
|
needSetEmailRaesdSet.add(nObj.Id);
|
}
|
if (String.isNotBlank(nObj.Inventory_Header__c)) {
|
needSetEmailLHSet.add(nObj.Id);
|
}
|
if (String.isNotBlank(nObj.Asset__c)) {
|
needSetEmailAssetList.add(nObj);
|
}
|
//add by rentx 20210609 1635 start
|
if (String.isNotBlank(nObj.TransferApply__c)) {
|
needSetEmailDBSet.add(nObj.Id);
|
}
|
//add by rentx 20210609 end
|
}
|
}
|
//update by rentx 20210609 start
|
// if (needSetEmailRaesdSet.size() > 0 || needSetEmailLHSet.size() > 0) {
|
// setEmail_DetailRaesd(needSetEmailRaesdSet, needSetEmailLHSet);
|
// }
|
System.debug('115::::::'+needSetEmailDBSet);
|
if (needSetEmailRaesdSet.size() > 0 || needSetEmailLHSet.size() > 0 || needSetEmailDBSet.size() > 0) {
|
setEmail_DetailRaesd(needSetEmailRaesdSet, needSetEmailLHSet, needSetEmailDBSet);
|
}
|
//update by rentx 20210609 1635 end
|
setPlanning_DivisionB(needSetEmailAssetList);
|
}
|
|
private void setPlanning_DivisionB(List<LostReport__c> needSetEmailAssetList) {
|
if (needSetEmailAssetList.size() > 0) {
|
if (planning_DivisionB == null) {
|
List<User> us = [SELECT Id
|
, JingliEquipmentManager__c
|
FROM User
|
WHERE Id = :System.Label.Planning_DivisionAId];
|
if (us.size() > 0) {
|
planning_DivisionB = us[0];
|
}
|
}
|
for (LostReport__c nObj : needSetEmailAssetList) {
|
nObj.Planning_DivisionB__c = planning_DivisionB.JingliEquipmentManager__c;
|
nObj.Planning_DivisionA__c = System.Label.Planning_DivisionAId;
|
}
|
}
|
}
|
|
private void setEmail_DetailRaesd(Set<Id> needSetEmaiRAESDSet, Set<Id> needSetEmailLDSet, Set<Id> needSetEmailDBSet) {
|
System.debug(needSetEmaiRAESDSet);
|
System.debug(needSetEmailLDSet);
|
System.debug(needSetEmailDBSet);
|
Map<Id, String> lrMap = new Map<Id, String>();
|
List<LostReport_Detail__c> lrdList = [SELECT Id,
|
LostReport__c,
|
Rental_Apply_Equipment_Set_Detail__r.Fixture_Model_No_F__c,
|
Inventory_Detail__r.Inventory_Deviation__c,
|
Inventory_Detail__r.Asset__r.Fixture_Model_No_F__c,
|
Inventory_Detail__r.Asset__r.Internal_asset_location__c,
|
Inventory_Detail__r.Asset__r.SerialNumber,
|
Inventory_Detail__r.Asset__r.CompanyOfEquipment__c,
|
Inventory_Detail__r.Asset__r.Internal_Asset_number__c,
|
Inventory_Detail__r.Asset__r.Salesdepartment__c,
|
TransferApplyDetail__r.Fixture_Model_No_F__c
|
FROM LostReport_Detail__c
|
WHERE ( (LostReport__c = :needSetEmailLDSet
|
AND Inventory_Detail__c != null
|
)
|
OR (LostReport__c = :needSetEmaiRAESDSet
|
AND Rental_Apply_Equipment_Set_Detail__c != null
|
)
|
//add by rentx 1635 20210609
|
OR (LostReport__c = :needSetEmailDBSet
|
AND TransferApplyDetail__c != null
|
)
|
//add by rentx 1635 20210609
|
)
|
AND CancelLostReport__c = false
|
ORDER BY LostReport__c];
|
Integer i = 0;
|
LostReport_Detail__c lrd1 = new LostReport_Detail__c();
|
for (LostReport_Detail__c lrd : lrdList) {
|
if (lrMap.containsKey(lrd.LostReport__c) == false) {
|
String htmlStr = '备品明细:<BR>';
|
if (needSetEmaiRAESDSet.contains(lrd.LostReport__c)) {
|
// htmlStr += Asset.Fixture_Model_No_F__c.getDescribe().getLabel() + '</td>';
|
//add by rentx 20210609 1635 start
|
}else if (needSetEmailDBSet.contains(lrd.LostReport__c)) {
|
//add by rentx 20210609 1635 end
|
}
|
else {
|
htmlStr += '<table border="2">';
|
htmlStr += '<tr>';
|
htmlStr += '<td>' + Asset.Salesdepartment__c.getDescribe().getLabel() + '</td>';
|
htmlStr += '<td>' + Asset.Internal_asset_location__c.getDescribe().getLabel() + '</td>';
|
htmlStr += '<td>' + Asset.Fixture_Model_No_F__c.getDescribe().getLabel() + '</td>';
|
htmlStr += '<td>' + Asset.SerialNumber.getDescribe().getLabel() + '</td>';
|
htmlStr += '<td>' + Asset.CompanyOfEquipment__c.getDescribe().getLabel() + '</td>';
|
htmlStr += '<td>' + Asset.Internal_Asset_number__c.getDescribe().getLabel() + '</td>';
|
htmlStr += '<td>' + Inventory_Detail__c.Inventory_Deviation__c.getDescribe().getLabel() + '</td>';
|
htmlStr += '</tr>';
|
}
|
lrMap.put(lrd.LostReport__c, htmlStr);
|
}
|
if (lrd.LostReport__c != lrd1.LostReport__c) {
|
i = 0;
|
lrd1 = lrd;
|
}
|
String str = lrMap.get(lrd.LostReport__c);
|
String modelNo = '';
|
|
if (needSetEmaiRAESDSet.contains(lrd.LostReport__c)) {
|
modelNo += lrd.Rental_Apply_Equipment_Set_Detail__r.Fixture_Model_No_F__c;
|
lrMap.put(lrd.LostReport__c,str
|
// + '<a href="'
|
// + baseUrl + '/' + raes.Id
|
// +'">'
|
+ '型号:' + modelNo
|
// + '</a>'
|
+ '<BR>');
|
}
|
else if (needSetEmailLDSet.contains(lrd.LostReport__c)) {
|
modelNo += '<tr>';
|
// 本部 备品存放地 备品配套明细型号 机身号 分公司 固定资产号 盘亏数量
|
modelNo += '<td>' + checkBlank(lrd.Inventory_Detail__r.Asset__r.Salesdepartment__c) + '</td>';
|
modelNo += '<td>' + checkBlank(lrd.Inventory_Detail__r.Asset__r.Internal_asset_location__c) + '</td>';
|
modelNo += '<td>' + checkBlank(lrd.Inventory_Detail__r.Asset__r.Fixture_Model_No_F__c) + '</td>';
|
modelNo += '<td>' + checkBlank(lrd.Inventory_Detail__r.Asset__r.SerialNumber) + '</td>';
|
modelNo += '<td>' + checkBlank(lrd.Inventory_Detail__r.Asset__r.CompanyOfEquipment__c) + '</td>';
|
modelNo += '<td>' + checkBlank(lrd.Inventory_Detail__r.Asset__r.Internal_Asset_number__c) + '</td>';
|
modelNo += '<td>' + (lrd.Inventory_Detail__r.Inventory_Deviation__c * -1) + '</td>';
|
modelNo += '</tr>';
|
lrMap.put(lrd.LostReport__c,str + modelNo);
|
//add by rentx 20210609 1635 start 调拨的不要 前面这个和型号
|
}else if (needSetEmailDBSet.contains(lrd.LostReport__c)) {
|
modelNo += lrd.TransferApplyDetail__r.Fixture_Model_No_F__c;
|
lrMap.put(lrd.LostReport__c,str.replace('备品明细:<BR>', '')
|
+ modelNo
|
+ '<BR>');
|
}
|
//add by rentx 20210609 end
|
i ++;
|
}
|
System.debug(lrMap);
|
for (Id lrId : lrMap.keySet()) {
|
String emailD = lrMap.get(lrId);
|
if (needSetEmailLDSet.contains(lrId)) {
|
emailD += '</table>';
|
}
|
//add by rentx 1635 20210609 start
|
if (needSetEmailDBSet.contains(lrId)) {
|
emailD += '</table>';
|
}
|
//add by rentx 20210609 end
|
newMap.get(lrId).Email_Detail__c = emailD;
|
}
|
}
|
|
private String checkBlank(String str) {
|
if (String.isBlank(str)) {
|
return '';
|
}
|
return str;
|
}
|
|
// private void updateNeedAutoGiveup() {
|
// if (needCheckLRMap.isEmpty() == false) {
|
// List<LostReport_Detail__c> ldList = [SELECT Id,
|
// Rental_Apply_Equipment_Set_Detail__c,
|
// Inventory_Detail__c
|
// FROM LostReport_Detail__c
|
// WHERE LostReport__c = :needCheckLRMap.keySet()
|
// AND Auto_Lost_item_giveup_F__c = false
|
// AND CancelLostReport__c = false];
|
|
// List<Rental_Apply_Equipment_Set_Detail__c> raesdList = new List<Rental_Apply_Equipment_Set_Detail__c>();
|
// List<Inventory_Detail__c> idList = new List<Inventory_Detail__c>();
|
// for (LostReport_Detail__c ldObj : ldList) {
|
// if (String.isNotBlank(ldObj.Rental_Apply_Equipment_Set_Detail__c)
|
// && !checkedRAESDSet.contains(ldObj.Rental_Apply_Equipment_Set_Detail__c)) {
|
// checkedRAESDSet.add(ldObj.Rental_Apply_Equipment_Set_Detail__c);
|
// raesdList.add(new Rental_Apply_Equipment_Set_Detail__c(Id = ldObj.Rental_Apply_Equipment_Set_Detail__c));
|
// }
|
// else if (String.isNotBlank(ldObj.Inventory_Detail__c)
|
// && checkedIDSet.contains(ldObj.Inventory_Detail__c)) {
|
// checkedIDSet.add(ldObj.Inventory_Detail__c);
|
// idList.add(new Inventory_Detail__c(Id = ldObj.Inventory_Detail__c));
|
// }
|
// }
|
// if (raesdList.size() > 0 || idList.size() > 0) {
|
// Loaner_AutoGiveup(raesdList, null,idList);
|
// }
|
// }
|
// }
|
|
private void beforeExecute() {
|
Set<String> clearIsPunishObjSet = new Set<String>();// 20211216 ljh SFDC-C933NJ add start
|
for (LostReport__c nObj : newList) {
|
LostReport__c oObj;
|
// OCSM_BP3-126 遗失报告提交申请书的时候需要重新设置user,看申请书owner
|
if (Trigger.isUpdate) {
|
oObj = oldMap.get(nObj.Id);
|
}
|
if (Trigger.isInsert
|
|| (oObj != null
|
&& nObj.Status__c=='填写完毕'
|
&& nObj.Status__c != oObj.Status__c)) {
|
nObj.RA_BuchangApprovalManagerSales__c = nObj.RA_BuchangApprovalManagerSales_F__c;
|
nObj.RA_Person_In_Charge__c = nObj.RA_Person_In_Charge_F__c;
|
nObj.RA_ZongjianApprovalManager__c = nObj.RA_ZongjianApprovalManager_F__c;
|
nObj.RA_SalesManager__c = nObj.RA_SalesManager_F__c;
|
nObj.RA_TongkuoZongjian__c = nObj.RA_TongkuoZongjian_F__c;
|
nObj.Rental_Apply_SplitUser__c = nObj.Rental_Apply_SplitUser_F__c;//20210427 you 1653
|
bp3_Setting__c conf = bp3_Setting__c.getOrgDefaults();
|
nObj.BeiPin_ZhongJian__c = conf.BeiPin_ZhongJian__c;
|
if (nObj.Rental_Apply__c != null) {
|
if(nObj.Salesdept_F__c == '医疗华东营业本部') {
|
nObj.FuZongJian__c = conf.FuZongJian__c;
|
}
|
else {
|
nObj.FuZongJian__c = null;
|
}
|
}
|
//add by rentx 202109011 1635 start or 1650 you
|
if (nObj.TransferApply__c != null || nObj.Inventory_Header__c != null) {
|
if(nObj.benbu__c == '医疗华东营业本部') {
|
nObj.FuZongJian__c = conf.FuZongJian__c;
|
}
|
else {
|
nObj.FuZongJian__c = null;
|
}
|
}
|
//add by rentx 20210911 1635 end
|
|
if (String.isBlank(nObj.Asset__c)) {
|
nObj.YunYingBuZhang__c = conf.YunYingBuZhang__c;
|
}
|
nObj.Assign_Person__c = nObj.Assign_Person_F__c;
|
}
|
if (oObj != null
|
&& oObj.Status__c != '已批准'
|
&& nObj.Status__c == '已批准'
|
&& checkedSet.contains(nObj.Id)) {
|
needCheckLRMap.put(nObj.Id, nObj);
|
checkedSet.add(nObj.Id);
|
}
|
if (nObj.LostReport_Detail_Count__c == 0
|
&& oObj != null
|
&& ((oObj.LostReport_approval_time__c != nObj.LostReport_approval_time__c && nObj.LostReport_approval_time__c != null)
|
|| (oObj.BuchangManager_approval_time__c != nObj.BuchangManager_approval_time__c && nObj.BuchangManager_approval_time__c != null)
|
|| (oObj.Assign_Person_approval_time__c != nObj.Assign_Person_approval_time__c && nObj.Assign_Person_approval_time__c != null)
|
|| (oObj.BeiPin_ZhongJian_approval_time__c != nObj.BeiPin_ZhongJian_approval_time__c && nObj.BeiPin_ZhongJian_approval_time__c != null)
|
|| (oObj.ZongjianManager_approval_time__c != nObj.ZongjianManager_approval_time__c && nObj.ZongjianManager_approval_time__c != null)
|
|| (oObj.SalesManager_approval_time__c != nObj.SalesManager_approval_time__c && nObj.SalesManager_approval_time__c != null)
|
|| (oObj.TongkuoZongjian_approval_time__c != nObj.TongkuoZongjian_approval_time__c && nObj.TongkuoZongjian_approval_time__c != null)
|
|| (oObj.Planning_DivisionA_approval_time__c != nObj.Planning_DivisionA_approval_time__c && nObj.Planning_DivisionA_approval_time__c != null)
|
|| (oObj.Planning_DivisionB_approval_time__c != nObj.Planning_DivisionB_approval_time__c && nObj.Planning_DivisionB_approval_time__c != null)
|
)) {
|
nObj.addError('没有遗失报告明细,不能批准');
|
}
|
if(oObj != null && oObj.Status__c == '申请中' && nObj.Status__c == '草案中') {
|
// 各级批准时间共8个
|
nObj.SalesManager_approval_time__c = null;
|
nObj.BuchangManager_approval_time__c = null;
|
nObj.FuZongJian_approval_time__c = null;
|
nObj.ZongjianManager_approval_time__c = null;
|
nObj.TongkuoZongjian_approval_time__c = null;
|
nObj.Assign_Person_approval_time__c = null;
|
nObj.YunYingBuZhang_approval_time__c = null;
|
nObj.BeiPin_ZhongJian_approval_time__c = null;
|
nObj.Planning_DivisionA_approval_time__c = null;
|
nObj.Planning_DivisionB_approval_time__c = null;
|
nObj.Rental_Apply_SplitUser_approval_time__c = null;//20210427 you 1653
|
// 清空遗失报告批准时间
|
nObj.LostReport_approval_time__c = null;
|
// 20211216 ljh SFDC-C933NJ add start
|
// 2.驳回的时候清空明细&&是否罚则对象
|
nObj.IsFinishPunishObj__c = false;
|
clearIsPunishObjSet.add(nObj.Id);
|
// 20211216 ljh SFDC-C933NJ add end
|
}
|
// 20211216 ljh SFDC-C933NJ add start
|
// 1.备品中心提交 部长审批的时候 必须填写 【是否罚则对象】 部长批准时间 \运营部长批准时间
|
String uId = UserInfo.getUserId();
|
System.debug('zheli398:'+nObj.YunYingBuZhang__c+nObj.YunYingBuZhang_approval_time__c);
|
if(oObj != null && uId.substring(0,15) == System.Label.PersonalId
|
&& (
|
(String.isNotBlank(nObj.RA_BuchangApprovalManagerSales__c) && nObj.RA_BuchangApprovalManagerSales__c == UserInfo.getUserId() && oObj.BuchangManager_approval_time__c == null && nObj.BuchangManager_approval_time__c != null)
|
||
|
(String.isNotBlank(nObj.YunYingBuZhang__c) && nObj.YunYingBuZhang__c == UserInfo.getUserId() && oObj.YunYingBuZhang_approval_time__c == null && nObj.YunYingBuZhang_approval_time__c != null)
|
)
|
&& nObj.IsFinishPunishObj__c == false){
|
nObj.addError('【是否罚则对象】 必须填写保存后才能审批');
|
}
|
// 20211216 ljh SFDC-C933NJ add end
|
}
|
if (System.Trigger.isInsert) {
|
setPlanning_DivisionB(newList);
|
}
|
// 20211216 ljh SFDC-C933NJ add start
|
// 2.驳回的时候清空明细
|
if(clearIsPunishObjSet.size() > 0){
|
List<LostReport_Detail__c> lrdList = [SELECT Id,IsPunishObj__c FROM LostReport_Detail__c WHERE LostReport__c IN :clearIsPunishObjSet AND IsPunishObj__c != null];
|
if(lrdList.size() > 0){
|
for(LostReport_Detail__c lrd:lrdList){
|
lrd.IsPunishObj__c = null;
|
}
|
update lrdList;
|
}
|
}
|
// 20211216 ljh SFDC-C933NJ add end
|
}
|
|
private void setShare() {
|
for (LostReport__c nObj: newList) {
|
LostReport__c oObj = oldMap.get(nObj.Id);
|
if (oObj.Status__c != nObj.Status__c
|
&& nObj.Status__c == '填写完毕') {
|
List<String> userList = new List<String>();
|
userList.add(nObj.RA_SalesManager_F__c + '_Read');
|
userList.add(nObj.RA_BuchangApprovalManagerSales__c + '_Read');
|
userList.add(nObj.RA_ZongjianApprovalManager_F__c + '_Read');
|
userList.add(nObj.RA_TongkuoZongjian_F__c + '_Read');
|
setSObjectShare('LostReport__Share', 'Manual', nObj.Id, userList, nObj.OwnerId, shareSet, shareList);
|
}
|
}
|
}
|
|
//update by rentx 20210514 start 1635
|
// public static void Loaner_AutoGiveup(List<Rental_Apply_Equipment_Set_Detail__c> raesds, List<LostReport_Detail__c> lrds, List<Inventory_Detail__c> ids) {
|
public static void Loaner_AutoGiveup(List<Rental_Apply_Equipment_Set_Detail__c> raesds, List<LostReport_Detail__c> lrds, List<Inventory_Detail__c> ids, List<TransferApplyDetail__c> tadList) {
|
if (tadList != null && tadList.size() > 0) {
|
List<TransferApplyDetail__c> updateTList = new List<TransferApplyDetail__c>();
|
for (TransferApplyDetail__c tad: tadList ) {
|
//如果是非固定资产 状态丢失
|
// if (tad.Internal_Asset_number_key__c == null || tad.Internal_Asset_number_key__c == '') {
|
tad.Lost_item_giveup__c = true;
|
// }
|
tad.Loaner_Giveup_Time__c = Datetime.now();
|
updateTList.add(tad);
|
}
|
System.debug('LostReportHandler::::::::::::::::::::'+updateTList);
|
update updateTList;
|
}
|
//update by rentx 2021-05-14 end 1635
|
if (raesds != null && raesds.size() > 0) {
|
List<Sobject> raesdList = new List<Sobject>();
|
for (Rental_Apply_Equipment_Set_Detail__c raesd : raesds) {
|
raesd.Lost_item_giveup__c = true;
|
raesd.Loaner_Giveup_Time__c = Datetime.now();
|
raesdList.add(raesd);
|
}
|
update raesdList;
|
}
|
|
if (ids != null && ids.size() > 0) {
|
List<Inventory_Detail__c> idList = new List<Inventory_Detail__c>();
|
for (Inventory_Detail__c id1 : ids) {
|
id1.Auto_Lost_item_giveup__c = true;
|
idList.add(id1);
|
}
|
update idList;
|
}
|
|
if (lrds != null && lrds.size() > 0) {
|
List<LostReport_Detail__c> irdsList = new List<LostReport_Detail__c>();
|
Set<Id> reportIds = new Set<Id>();
|
for (LostReport_Detail__c idr : lrds) {
|
idr.CancelLostReport__c = true;
|
idr.DeleteLostReport_Detail_Reason__c = '自动断念删除';
|
irdsList.add(idr);
|
if(idr.LostReport__c != null) {
|
reportIds.add(idr.LostReport__c);
|
}
|
}
|
update irdsList;
|
|
if(reportIds.size() > 0) {
|
List<LostReport__c> reportList = [SELECT Id, Status__c FROM LostReport__c WHERE Id IN:reportIds AND LostReport_Detail_Count__c = 0];
|
Set<Id> cancelIdSet = new Set<Id>();
|
|
if(reportList.size() > 0) {
|
Datetime now = System.now();
|
for(LostReport__c report : reportList) {
|
if(report.Status__c == '申请中'){
|
cancelIdSet.add(report.Id);
|
}
|
report.Status__c = '取消';
|
report.Cancel_Time__c = now;
|
}
|
if (cancelIdSet.size() > 0) {
|
List<Approval.ProcessWorkitemRequest> requests = new List<Approval.ProcessWorkitemRequest> ();
|
Map<ID,ProcessInstance> piMap = New Map<ID,ProcessInstance>([Select Id from ProcessInstance where TargetObjectId IN :cancelIdSet]);
|
for(ProcessInstanceWorkItem wi : [Select Id from ProcessInstanceWorkItem where ProcessInstanceId IN :piMap.keySet()]){
|
Approval.ProcessWorkitemRequest req2 = new Approval.ProcessWorkitemRequest();
|
req2.setAction('Removed');
|
req2.setWorkitemId(wi.Id);
|
requests.add(req2);
|
}
|
if (requests.size() > 0) {
|
Approval.ProcessResult[] processResults = null;
|
processResults = Approval.process(requests, true);
|
}
|
}
|
update reportList;
|
}
|
}
|
}
|
}
|
|
public static void setSObjectShare(String sobjectName, String rowCause, String parentId, List<String> userAccess, String ownerId, Set<String> shareSet1, List<SObject> shareList1) {
|
// オブジェクトの共有権限が公開の場合__Shareオブジェクトが存在しませんので個々で判断します
|
if (Schema.getGlobalDescribe().containsKey(sobjectName)) {
|
for (String ua : userAccess) {
|
String userid = ua.split('_')[0];
|
String access = ua.split('_')[1];
|
SObject sObj = Schema.getGlobalDescribe().get(sobjectName).newSObject();
|
String key = parentId + ':' + userid;
|
if (String.isBlank(userid) == false
|
&& userid.substring(0, 15) != ownerId.substring(0, 15)
|
&& !shareSet.contains(key)) {
|
sObj.put('RowCause', rowCause);
|
sObj.put('ParentId', parentId);
|
sObj.put('UserOrGroupId', userid);
|
sObj.put('AccessLevel', access);
|
shareList1.add(sObj);
|
shareSet1.add(parentId + ':' + userid);
|
}
|
}
|
}
|
}
|
|
//2021-12-17 mzy 备品任务 start
|
public void setRentalDetailFlag(){
|
//如果遗失报告审批,则根据遗失报告明细将借出备品配套一览明细打标识
|
Set<String> LostReprotSet = new Set<String>();
|
for (LostReport__c nObj : newList) {
|
LostReport__c oObj = oldMap.get(nObj.Id);
|
if(oObj.Status__c != nObj.Status__c && '已批准'.equals(nObj.Status__c)){
|
LostReprotSet.add(nObj.Id);
|
}
|
}
|
//根据遗失报告查询遗失报告明细
|
if(LostReprotSet.size()>0){
|
List<LostReport_Detail__c> LostReprotDetailList = [SELECT Id,Rental_Apply_Equipment_Set_Detail__c FROM LostReport_Detail__c WHERE Rental_Apply_Equipment_Set_Detail__c != null AND LostReport__c in :LostReprotSet];
|
Date today = Date.today();
|
if(LostReprotDetailList.size()>0){
|
//存放借出备品配套一览明细
|
List<Rental_Apply_Equipment_Set_Detail__c> needUpdateRentalDetail = new List<Rental_Apply_Equipment_Set_Detail__c>();
|
for(LostReport_Detail__c ld :LostReprotDetailList){
|
Rental_Apply_Equipment_Set_Detail__c tempDetail = new Rental_Apply_Equipment_Set_Detail__c();
|
tempDetail.Id = ld.Rental_Apply_Equipment_Set_Detail__c;
|
tempDetail.LoseReportApprovaled__c = true;
|
tempDetail.LostReportApprovalDate__c = today;
|
needUpdateRentalDetail.add(tempDetail);
|
}
|
|
if(needUpdateRentalDetail.size()>0){
|
update needUpdateRentalDetail;
|
}
|
}
|
}
|
}
|
//2021-12-17 mzy 备品任务 end
|
|
public void addFGL(){
|
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++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
i++;
|
}
|
|
}
|