高章伟
2023-03-02 e3c02c03dd2de442bbced87236f60a13a1cd154e
force-app/main/default/classes/LostReportHandler.cls
@@ -43,6 +43,9 @@
        //add by rentx 20210604 1635 start  
        setBeiPinWindowAndTOwner();
        //add by rentx 20210609 1635 end
        //遗失报告批准更新备品配套一览明细
        setRentalDetailFlag();
    }
    protected override void afterDelete() {
@@ -303,6 +306,7 @@
    // }
    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
@@ -381,11 +385,42 @@
                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() {
@@ -507,6 +542,38 @@
        }
    }
    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;
                    //add by lc 20220601 start 已借用自然日、借出状态(明细)字段逻辑调整
                    // 遗失报告批准时,关联一览明细的遗失报告批准时间设值
                    tempDetail.LostReportApprovalDate__c = today;
                    //add by lc 20220601 end 已借用自然日、借出状态(明细)字段逻辑调整
                    needUpdateRentalDetail.add(tempDetail);
                }
                if(needUpdateRentalDetail.size()>0){
                    update needUpdateRentalDetail;
                }
            }
        }
    }
    public void addFGL(){
        Integer i = 0;
        i++;