From e3c02c03dd2de442bbced87236f60a13a1cd154e Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 02 三月 2023 17:51:57 +0800
Subject: [PATCH] gzw 正式环境最新代码更新

---
 force-app/main/default/classes/LostReportHandler.cls |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/force-app/main/default/classes/LostReportHandler.cls b/force-app/main/default/classes/LostReportHandler.cls
index bd81ffe..4dd89a7 100644
--- a/force-app/main/default/classes/LostReportHandler.cls
+++ b/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 閬楀け鎶ュ憡鎻愪氦鐢宠涔︾殑鏃跺�欓渶瑕侀噸鏂拌缃畊ser,鐪嬬敵璇蜂功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++;

--
Gitblit v1.9.1