From e4185f503d973b28f95725908e3fad155cfbf088 Mon Sep 17 00:00:00 2001 From: 沙世明 <shashiming@prec-tech.com> Date: 星期三, 22 三月 2023 11:55:32 +0800 Subject: [PATCH] 进口单证发货日逻辑 --- force-app/main/default/classes/ESignFormHandler.cls | 132 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 113 insertions(+), 19 deletions(-) diff --git a/force-app/main/default/classes/ESignFormHandler.cls b/force-app/main/default/classes/ESignFormHandler.cls index 85b0ad6..e474d4c 100644 --- a/force-app/main/default/classes/ESignFormHandler.cls +++ b/force-app/main/default/classes/ESignFormHandler.cls @@ -1,8 +1,11 @@ +/* + 20230302 ljh 娴嬭瘯绫� ESignFormHandlerTest 鍙互 FrameNumUploadControllerTest 涔熷彲浠� + */ public without sharing class ESignFormHandler extends Oly_TriggerHandler { - private Map<Id, eSignForm__c> newMap; - private Map<Id, eSignForm__c> oldMap; - private List<eSignForm__c> newList; - private List<eSignForm__c> oldList; + private Map<Id, eSignForm__c> newMap; + private Map<Id, eSignForm__c> oldMap; + private List<eSignForm__c> newList; + private List<eSignForm__c> oldList; public ESignFormHandler() { @@ -20,11 +23,15 @@ beforeExecute(); } protected override void afterInsert() { - afterExecute(); + // afterExecute(); + // 杩涘彛鍗曡瘉 start + // 绛炬敹鍗曠敓鎴愬悗鎻掑叆杩涘彛鍗曡瘉瀵瑰簲鐨勬暟鎹� + insertFrameNumManage(); + // 杩涘彛鍗曡瘉 end } protected override void afterUpdate() { - afterExecute(); + // afterExecute(); } private void beforeExecute() { @@ -32,7 +39,7 @@ for(eSignForm__c nObj : newList) { //DN鍙蜂笉涓虹┖ if(String.isNotBlank(nObj.DNNameNo0__c)){ - Blob bodyBlob=Blob.valueOf(nObj.DNNameNo0__c); + Blob bodyBlob=Blob.valueOf(nObj.DNNameNo0__c); nObj.DNName0_base64__c =String.valueOf(EncodingUtil.base64Encode(bodyBlob)); } //缁忛攢鍟嗙鐞嗙紪鐮佷笉涓虹┖ @@ -43,22 +50,109 @@ } } - private void afterExecute() { - List<eSignFormEntry__c> eSignFormEntryList = new List<eSignFormEntry__c>(); + // private void afterExecute() { + // List<eSignFormEntry__c> eSignFormEntryList = new List<eSignFormEntry__c>(); - for (eSignForm__c eSignForm : newList) { + // for (eSignForm__c eSignForm : newList) { - if(eSignForm.finalUpadteFrom__c != null){ - eSignFormEntry__c es = new eSignFormEntry__c(); - es.id = eSignForm.finalUpadteFrom__c; - es.IsHandled__c = true; - eSignFormEntryList.add(es); - } + // if(eSignForm.finalUpadteFrom__c != null){ + // eSignFormEntry__c es = new eSignFormEntry__c(); + // es.id = eSignForm.finalUpadteFrom__c; + // es.IsHandled__c = true; + // eSignFormEntryList.add(es); + // } + // } + // if(eSignFormEntryList.size() > 0){ + // update eSignFormEntryList; + // } + // } + + private void insertFrameNumManage() { + Set<String> IdSet = new Set<String>(); + // 杩涘彛鍗曡瘉 澧炲姞鍙戣揣鏃ヨ缃� start + Set<Date> dateset = new Set<Date>(); + Map<Date, String> olycals = new Map<Date, String>(); + // 杩涘彛鍗曡瘉 澧炲姞鍙戣揣鏃ヨ缃� end + Map<String,Id> eSignFormMap = new Map<String,Id>(); + Map<String,String> DNMap = new Map<String,String>(); + for (eSignForm__c nObj : newList) { + IdSet.add(nObj.Statu_Achievements_DN__c); + } + Map<String,Statu_Achievements_DN_details__c> sandMap = new Map<String,Statu_Achievements_DN_details__c>(); + Map<String,Statu_Achievements_DN_details__c> UpdateSandMap = new Map<String,Statu_Achievements_DN_details__c>(); + Map<String,String> UpdateFIdMap = new Map<String,String>(); + // 鏌ヨ鏄庣粏 鍦ㄦ満韬彿绠$悊涓湁娌★紝娌℃湁鐢熸垚,鏈夋洿鏂� 绛炬敹鍗曘�佸彂璐N鏄庣粏銆佷繚鏈夎澶� + for(Statu_Achievements_DN_details__c dn:[SELECT Id,SerialNumber__c,asset__c, + Statu_Achievements_DN__c,SerialNoorLotNo_Raw__c,TracingCode_Raw__c, + OTCode_Raw__c,asset__r.Name,QTY__c,Statu_Achievements_DN__r.Name + // 杩涘彛鍗曡瘉 澧炲姞鍙戣揣鏃ヨ缃� start + , Statu_Achievements_DN__r.DeliveryDate__c + // 杩涘彛鍗曡瘉 澧炲姞鍙戣揣鏃ヨ缃� end + FROM Statu_Achievements_DN_details__c + WHERE Statu_Achievements_DN__c =:IdSet ]){ + sandMap.put(dn.TracingCode_Raw__c,dn); + DNMap.put(dn.TracingCode_Raw__c,dn.Statu_Achievements_DN__r.Name); + // 鍙栨墍鏈夊彂璐ф棩 + dateset.add(dn.Statu_Achievements_DN__r.DeliveryDate__c); + } + for(FrameNumManage__c f:[SELECT Id,ManagementCode__c FROM FrameNumManage__c WHERE ManagementCode__c in :sandMap.keySet()]){ + // 鏇存柊鏈鸿韩鍙风鐞� + UpdateSandMap.put(f.ManagementCode__c,sandMap.get(f.ManagementCode__c)); + UpdateFIdMap.put(f.ManagementCode__c, f.Id); + sandMap.remove(f.ManagementCode__c); + } + for(eSignForm__c es: newList){ + for(String key:DNMap.keySet()){ + if(DNMap.get(key) == es.DNName__c){ + eSignFormMap.put(key,es.Id); + } + } + } + // 鍙栧彂璐ф棩鐨勫ゥ鏋楀反鏂棩鍘� + for (OlympusCalendar__c oc : [select Id, Date__c from OlympusCalendar__c where Date__c in :dateset]) { + olycals.put(oc.Date__c, oc.Id); + } + if(sandMap.size() > 0){ + List<FrameNumManage__c> infnmList = new List<FrameNumManage__c>(); + for (Statu_Achievements_DN_details__c s:sandMap.values()) { + FrameNumManage__c temp = new FrameNumManage__c(); + temp.Name = s.TracingCode_Raw__c; + temp.ManagementCode__c = s.TracingCode_Raw__c; + temp.SerialNumberS__c = s.SerialNoorLotNo_Raw__c+'('+s.TracingCode_Raw__c+')'; + temp.SerialNumber__c = s.SerialNoorLotNo_Raw__c; + temp.Num__c = s.QTY__c; + temp.CheckOutNo__c = s.Statu_Achievements_DN__r.Name.subString(2);//鍙戣揣DN 鐨刵ame鍘绘帀鍓嶄袱浣嶇殑 00 + + temp.Statu_Achievements_DN_details__c = s.Id; + temp.Asset__c = s.asset__c; + temp.signInForm__c = eSignFormMap.get(s.TracingCode_Raw__c); + + // 璁剧疆鍙戣揣鏃ュ拰濂ユ灄宸存柉鏃ュ巻 + temp.DeliveryDate__c = s.Statu_Achievements_DN__r.DeliveryDate__c; + temp.DeliveryDate_select__c = temp.DeliveryDate__c != null && olycals.size() > 0 && String.isNotBlank(olycals.get(temp.DeliveryDate__c)) ? olycals.get(temp.DeliveryDate__c) : null; + + temp.Material__c = s.OTCode_Raw__c; + temp.MaterialDepict__c = s.asset__r.Name; + infnmList.add(temp); } - if(eSignFormEntryList.size() > 0){ - update eSignFormEntryList; - } + if(infnmList.size() > 0){ + insert infnmList; + // Database.executeBatch(new SetFrameNumManageBatch(), 100); + } + } + if(UpdateSandMap.size() > 0){ + List<FrameNumManage__c> upfnmList = new List<FrameNumManage__c>(); + for (Statu_Achievements_DN_details__c s:UpdateSandMap.values()) { + FrameNumManage__c temp = new FrameNumManage__c(); + temp.id = UpdateFIdMap.get(s.TracingCode_Raw__c); + temp.Statu_Achievements_DN_details__c = s.Id; + temp.Asset__c = s.asset__c; + temp.signInForm__c = eSignFormMap.get(s.TracingCode_Raw__c); + upfnmList.add(temp); + } + update upfnmList; + } } } \ No newline at end of file -- Gitblit v1.9.1