| | |
| | | /* |
| | | 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() { |
| | | |
| | |
| | | beforeExecute(); |
| | | } |
| | | protected override void afterInsert() { |
| | | afterExecute(); |
| | | // afterExecute(); |
| | | // 进口单证 start |
| | | // 签收单生成后插入进口单证对应的数据 |
| | | insertFrameNumManage(); |
| | | // 进口单证 end |
| | | } |
| | | |
| | | protected override void afterUpdate() { |
| | | afterExecute(); |
| | | // afterExecute(); |
| | | } |
| | | |
| | | private void beforeExecute() { |
| | |
| | | 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)); |
| | | } |
| | | //经销商管理编码不为空 |
| | |
| | | } |
| | | } |
| | | |
| | | 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>(); |
| | | // 查询明细 在机身号管理中有没,没有生成,有更新 签收单、发货DN明细、保有设备 |
| | | 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 的name去掉前两位的 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; |
| | | } |
| | | } |
| | | } |