From af7b716a60d889acea95560abba0e46eee008b8f Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期三, 05 七月 2023 13:54:50 +0800 Subject: [PATCH] backup0705 --- force-app/main/default/classes/LexInventoryController.cls | 3008 ++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 1,763 insertions(+), 1,245 deletions(-) diff --git a/force-app/main/default/classes/LexInventoryController.cls b/force-app/main/default/classes/LexInventoryController.cls index 564eded..238f43d 100644 --- a/force-app/main/default/classes/LexInventoryController.cls +++ b/force-app/main/default/classes/LexInventoryController.cls @@ -1,1283 +1,1801 @@ public without sharing class LexInventoryController { - // page - public static Integer pagesize { get; set; } - public static Integer pageToken { get; set; } - public static String sortField { get; set; } - public static String sortOrder { get; set; } - - public static Integer totalcount { get; set; } - //鍒嗛〉浣跨敤鏁版嵁 - public static String fileName { get; set; } - public static Integer size{get;set;} - public static Integer noOfRecords{get; set;} - public static List<ConsumableorderdetailsInfo> codPageRecords { get; set; } // 涓㈠け鍜屽贰鍥炵殑,鐢婚潰鏄剧ず鐢� - public static ApexPages.StandardSetController setCon { get; set; } - @AuraEnabled - public static List<Consumable_order_details2__c> setConDetails2 { get; set; } - public static Map<Id,String> pandiandetailsMap = new Map<Id,String>(); - /*****************妞滅储鐢�******************/ - public static String barcode { get; set; } - public static Boolean done { get; set; } - /*****************鐢婚潰琛ㄧずBean******************/ - //椤甸潰涓绘暟鎹樉绀虹敤 - private static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords; - //鐩樼偣鍒扮殑浜у搧 - public static List<Consumable_order_details2__c> reSet = new List<Consumable_order_details2__c>(); - public static List<Consumable_order_details2__c> showcod2nid = new List<Consumable_order_details2__c>(); + // page + public static Integer pagesize { get; set; } + public static Integer pageToken { get; set; } + public static String sortField { get; set; } + public static String sortOrder { get; set; } - //public List<Consumable_order_details2__c> pandiandetailsList { get; set; } - public static List<List<Consumable_order_details2__c>> pandiandetailsListShow { get; set; } - //瀵诲洖鏄庣粏 - public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecordserrordummy; // 涓㈠け鍜屽贰鍥炵殑,瀹為檯鐐掍綔鐢� - @AuraEnabled - public static List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview { get; set; } // 浜у搧鍗曚綅鐨凩ist - public static List<Consumable_order_details2__c> InsListUp = New List<Consumable_order_details2__c>(); + public static Integer totalcount { get; set; } + //鍒嗛〉浣跨敤鏁版嵁 + public static String fileName { get; set; } + public static Integer size { get; set; } + public static Integer noOfRecords { get; set; } + public static List<ConsumableorderdetailsInfo> codPageRecords { get; set; } // 涓㈠け鍜屽贰鍥炵殑,鐢婚潰鏄剧ず鐢� + public static ApexPages.StandardSetController setCon { get; set; } + @AuraEnabled + public static List<Consumable_order_details2__c> setConDetails2 { get; set; } + public static Map<Id, String> pandiandetailsMap = new Map<Id, String>(); + /*****************妞滅储鐢�******************/ + public static String barcode { get; set; } + public static Boolean done { get; set; } + /*****************鐢婚潰琛ㄧずBean******************/ + //椤甸潰涓绘暟鎹樉绀虹敤 + // private static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords; + public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords; + //鐩樼偣鍒扮殑浜у搧 + public static List<Consumable_order_details2__c> reSet = new List<Consumable_order_details2__c>(); + public static List<Consumable_order_details2__c> showcod2nid = new List<Consumable_order_details2__c>(); - public static List<ConsumableorderdetailsInfo> consumableorderdetailsviewRecords; - - public static Integer consumableorderdetailsCount { - get { - return consumableorderdetailsRecords == null ? 0 : consumableorderdetailsRecords.size(); - } + //public List<Consumable_order_details2__c> pandiandetailsList { get; set; } + public static List<List<Consumable_order_details2__c>> pandiandetailsListShow { + get; + set; + } + //瀵诲洖鏄庣粏 + public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecordserrordummy; // 涓㈠け鍜屽贰鍥炵殑,瀹為檯鐐掍綔鐢� + @AuraEnabled + public static List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview { + get; + set; + } // 浜у搧鍗曚綅鐨凩ist + public static List<Consumable_order_details2__c> InsListUp = new List<Consumable_order_details2__c>(); + + public static List<ConsumableorderdetailsInfo> consumableorderdetailsviewRecords; + + public static Integer consumableorderdetailsCount { + get { + return consumableorderdetailsRecords == null + ? 0 + : consumableorderdetailsRecords.size(); } - //list<String> notexitlist = new list<String>(); - public static Map<String,String> reFindProduct = new Map<String,String>(); - //鎺掑簭鐢� - // public static String sortKey; - // public static String preSortKey; - // public static Boolean sortOrderAsc; - // public static String[] sortOrder; - //private Set<String> carCodeListLose = new Set<String>(); //ProductCount_Res 鏈夛紝BarCodeListP 娌℃湁 - /*****************缁忛攢鍟咺D******************/ - private static String accountid = null; - private static String accountName = null; - // 鐩樼偣 ID - private static String eSetId = ''; - // 鐧诲綍鑰呭伐浣滃湴 - private static String userWorkLocation; - //缁忛攢鍟嗙敤鎴蜂骇鍝佸垎绫伙紙ET銆丒NG锛� - public static String agencyProType {get;set;} - public static String sqlagencyProType; - //鍒ゆ柇鎿嶄綔浜哄憳鏄惁鐩樼偣 - public static Boolean iSinventory = false; + } + //list<String> notexitlist = new list<String>(); + public static Map<String, String> reFindProduct = new Map<String, String>(); + //鎺掑簭鐢� + // public static String sortKey; + // public static String preSortKey; + // public static Boolean sortOrderAsc; + // public static String[] sortOrder; + //private Set<String> carCodeListLose = new Set<String>(); //ProductCount_Res 鏈夛紝BarCodeListP 娌℃湁 + /*****************缁忛攢鍟咺D******************/ + private static String accountid = null; + private static String accountName = null; + // 鐩樼偣 ID + private static String eSetId = ''; + // 鐧诲綍鑰呭伐浣滃湴 + private static String userWorkLocation; + //缁忛攢鍟嗙敤鎴蜂骇鍝佸垎绫伙紙ET銆丒NG锛� + public static String agencyProType { get; set; } + public static String sqlagencyProType; + //鍒ゆ柇鎿嶄綔浜哄憳鏄惁鐩樼偣 + public static Boolean iSinventory = false; - public LexInventoryController(){ - size = Integer.valueOf(System.Label.orderdetLimitsize); - consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); - done = false; + public LexInventoryController() { + size = Integer.valueOf(System.Label.orderdetLimitsize); + consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); + done = false; - consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>(); - consumableorderdetailsRecordserrordummy = new List<ConsumableorderdetailsInfo>(); - codPageRecords = new List<ConsumableorderdetailsInfo>(); - //codPageRecordsShow = new List<ConsumableorderdetailsInfo>(); + consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>(); + consumableorderdetailsRecordserrordummy = new List<ConsumableorderdetailsInfo>(); + codPageRecords = new List<ConsumableorderdetailsInfo>(); + //codPageRecordsShow = new List<ConsumableorderdetailsInfo>(); + } + + private static void initStandardController() { + // init standard controller + List<Consumable_order_details2__c> showcod2 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c + FROM Consumable_order_details2__c + WHERE Id IN :pandiandetailsMap.keySet() + ORDER BY Name DESC + ]; + setConDetails2 = showcod2; + System.debug('setConDetails2===>' + setConDetails2); + // setCon = new ApexPages.StandardSetController(showcod2); + // // sets the number of records in each page set + // setCon.setPageSize(size); + // noOfRecords = setCon.getResultSize(); + } + + public static List<Consumable_order_details2__c> cod2s() { + return setConDetails2; + } + //Changes the size of pagination + public static PageReference refreshPageSize() { + setCon.setPageSize(size); + //showcod2nid = cod2s(); + makepagerecords(); + return null; + } + + public static List<ConsumableorderdetailsInfo> makepagerecords() { + showcod2nid = cod2s(); + codPageRecords = new List<ConsumableorderdetailsInfo>(); + for (Consumable_order_details2__c cod2 : showcod2nid) { + codPageRecords.add( + new ConsumableorderdetailsInfo(cod2, pandiandetailsMap.get(cod2.Id)) + ); } + System.debug('===>codPageRecords1' + codPageRecords); + return codPageRecords; + } - private static void initStandardController(){ - // init standard controller - List<Consumable_order_details2__c> showcod2 = [select Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c - FROM Consumable_order_details2__c - WHERE Id in :pandiandetailsMap.keySet() - order by Name desc]; - setConDetails2 = showcod2; - System.debug('setConDetails2===>'+setConDetails2); - // setCon = new ApexPages.StandardSetController(showcod2); - // // sets the number of records in each page set - // setCon.setPageSize(size); - // noOfRecords = setCon.getResultSize(); + // 鐢婚潰鍒濆鍖� + @AuraEnabled + public static ResponseBodyLWC init() { + ResponseBodyLWC res = new ResponseBodyLWC(); + Map<String, object> data = new Map<String, object>(); + res.entity = data; + + consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>(); + setConDetails2 = new List<Consumable_order_details2__c>(); + String url = '鍦ㄥ簱璋冩暣涓�瑙�'; + fileName = EncodingUtil.urlEncode(url, 'UTF-8'); + List<Consumable_order_details2__c> showcod2 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c + FROM Consumable_order_details2__c + WHERE Id IN :pandiandetailsMap.keySet() + ORDER BY Name + ]; + System.debug('pandiandetailsMap====>' + pandiandetailsMap); + initStandardController(); + makepagerecords(); + // sortKey = '1'; + // preSortKey = '1'; + // sortOrderAsc = false; + // sortOrder = new String[1]; + // sortOrder = new String[]{' ',' ','鈫�'}; + + String userId = UserInfo.getUserId(); + //String userId = '00510000006k82X'; + //String userId = '00510000005QO75'; + user Useracc = [ + SELECT Accountid, Work_Location__c, UserPro_Type__c + FROM user + WHERE id = :userId + ]; + accountid = Useracc.Accountid; + userWorkLocation = Useracc.Work_Location__c; + agencyProType = Useracc.UserPro_Type__c; + if (String.isBlank(Useracc.UserPro_Type__c)) { + agencyProType = 'ET'; } - - public static List<Consumable_order_details2__c> cod2s() { - return setConDetails2; - } - //Changes the size of pagination - public static PageReference refreshPageSize() { - setCon.setPageSize(size); - //showcod2nid = cod2s(); - makepagerecords(); - return null; - } - - public static List<ConsumableorderdetailsInfo> makepagerecords() { - showcod2nid = cod2s(); - codPageRecords = new List<ConsumableorderdetailsInfo>(); - for (Consumable_order_details2__c cod2 : showcod2nid) { - codPageRecords.add(new ConsumableorderdetailsInfo(cod2,pandiandetailsMap.get(cod2.Id))); - } - System.debug('===>codPageRecords1'+codPageRecords); - return codPageRecords; - } - - // 鐢婚潰鍒濆鍖� - @AuraEnabled - public static ResponseBodyLWC init() { - - - ResponseBodyLWC res = new ResponseBodyLWC(); - Map<String,object> data = new Map<String,object>(); - res.entity = data; - - consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>(); - setConDetails2 = new List<Consumable_order_details2__c>(); - String url = '鍦ㄥ簱璋冩暣涓�瑙�'; - fileName = EncodingUtil.urlEncode(url, 'UTF-8'); - List<Consumable_order_details2__c> showcod2 = [select Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c - FROM Consumable_order_details2__c - WHERE Id in :pandiandetailsMap.keySet() - order by Name]; - System.debug('pandiandetailsMap====>'+pandiandetailsMap); - initStandardController(); - makepagerecords(); - // sortKey = '1'; - // preSortKey = '1'; - // sortOrderAsc = false; - // sortOrder = new String[1]; - // sortOrder = new String[]{' ',' ','鈫�'}; - - String userId = UserInfo.getUserId(); - //String userId = '00510000006k82X'; - //String userId = '00510000005QO75'; - user Useracc = [select Accountid, Work_Location__c,UserPro_Type__c from user where id =:userId]; - accountid = Useracc.Accountid; - userWorkLocation = Useracc.Work_Location__c; - agencyProType = Useracc.UserPro_Type__c; - if(String.isBlank(Useracc.UserPro_Type__c)){ - agencyProType = 'ET'; - } - sqlagencyProType = '%' + agencyProType + '%'; - Account accountInfo = [SELECT Name,Dealer_discount__c FROM account WHERE id =:accountid]; - accountName = accountInfo.Name; - consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); - Map<String,Product2__c> midMap = new Map<String,Product2__c>(); - List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>(); - Map<String,ConsumableorderdetailsInfo> newMidBoxMap = new Map<String,ConsumableorderdetailsInfo>(); - Map<String,ConsumableorderdetailsInfo> newMidPieceMap = new Map<String,ConsumableorderdetailsInfo>(); - //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy start - //寮�濮嬪埗浣滆〃澶存暟鎹� - // List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c, - // SFDA_Status__c,Packing_list_manual__c, - // Asset_Model_No__c - // from Product2__c - // //where Estimation_Entry_Possibility__c = '鈼�' - // where Product_Type__c like : sqlagencyProType - // ]; - // for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){ - // midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]); - // } - //鏌ヨ搴撳瓨 杩藉姞杩斿搧搴撳瓨 - List<Consumable_order_details2__c> ProductCount_Res = [select Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c - FROM Consumable_order_details2__c - WHERE Dealer_Arrive__c = true - AND Dealer_Shipment__c = false - AND Dealer_Saled__c = false - AND Dealer_Returned__c = false - AND Lose_Flag__c = false - AND Cancellation_Flag__c = false - AND Bar_Code__c !=null - AND Product_Type__c like : sqlagencyProType - AND Arrive_Owner_Work_Location__c =: userWorkLocation - AND Dealer_Info_text__c = :accountName]; - //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy start - //寮�濮嬪埗浣滆〃澶存暟鎹� - Set<Id> Product2cIdSet = new Set<Id>(); - for(Consumable_order_details2__c con_or_d2item: ProductCount_Res){ - Product2cIdSet.add(con_or_d2item.Consumable_Product__c); - } - List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c, - SFDA_Status__c,Packing_list_manual__c, - Asset_Model_No__c - from Product2__c - //where Estimation_Entry_Possibility__c = '鈼�' - where Id in:Product2cIdSet - and Product_Type__c like : sqlagencyProType - ]; - for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){ - midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]); - } - system.debug('productCount_Unfull_bak'+productCount_Unfull_bak.size()); - // String erro='productCount_Unfull_bak:'+productCount_Unfull_bak.size(); - // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, erro)); - //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy end - // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'ProductCount_Res ' + ProductCount_Res.size())); - for(Integer i = 0 ; i< ProductCount_Res.size();i++){ - //鐒跺悗寰幆CountDel鍋欱ox鍜宲iece2涓猰ap - if(MidMap.containsKey(ProductCount_Res[i].Consumable_Product__c) && ProductCount_Res[i].Box_Piece__c == '鐩�'){ - - if(newMidBoxMap.containsKey(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c)){ - ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c).clone(); - Jstage.countid = Jstage.countid+1 ; - if(ProductCount_Res[i].Isoverdue__c == 1){ - Jstage.limitCount = Jstage.limitCount + 1; - } - Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c; - newMidBoxMap.put(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c, Jstage); - }else{ - ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(ProductCount_Res[i].Consumable_Product__c)); - Jstage.countid = Jstage.countid+1 ; - if(ProductCount_Res[i].Isoverdue__c == 1){ - Jstage.limitCount = Jstage.limitCount + 1; - } - Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c; - newMidBoxMap.put(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c, Jstage); - } - }else if(MidMap.containsKey(ProductCount_Res[i].Consumable_Product__c) && ProductCount_Res[i].Box_Piece__c == '涓�'){ - if(newMidPieceMap.containsKey(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c)){ - ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c).clone(); - Jstage.countid = Jstage.countid+1 ; - if(ProductCount_Res[i].Isoverdue__c == 1){ - Jstage.limitCount = Jstage.limitCount + 1; - } - Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c; - newMidPieceMap.put(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c, Jstage); - }else{ - ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(ProductCount_Res[i].Consumable_Product__c)); - Jstage.countid = Jstage.countid+1 ; - if(ProductCount_Res[i].Isoverdue__c == 1){ - Jstage.limitCount = Jstage.limitCount + 1; - } - Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c; - newMidPieceMap.put(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c, Jstage); - } - } - } - for(ConsumableorderdetailsInfo bss : newMidBoxMap.values()){ - bss.overlimitCount = bss.countid - bss.limitCount; - boxRecords.add(bss); - } - boxRecords.sort(); - for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){ - bss.overlimitCount = bss.countid - bss.limitCount; - } - for(ConsumableorderdetailsInfo bss : boxRecords){ - consumableorderdetailsRecords.add(bss); - if(newMidPieceMap.containsKey(bss.Prod.Id + '涓�')){ - consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�')); - //newMidPieceMap绉婚櫎宸茬粡娣诲姞鐨凱iece - newMidPieceMap.remove(bss.Prod.Id + '涓�'); - } - } - for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){ - consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�')); - } - //consumableorderdetailsCount = consumableorderdetailsRecords.size(); - listCut(); - - - - - - data.put('ConsumableorderdetailsRecordsview',JSON.serialize(ConsumableorderdetailsRecordsview)); - data.put('userWorkLocation',userWorkLocation); - data.put('agencyProType',agencyProType); - data.put('accountName',accountName); - data.put('accountid',accountid); - - data.put('consumableorderdetailsRecords',JSON.serialize(consumableorderdetailsRecords)); - res.status = 'Success'; - res.code = 200; - System.debug('res = ' + res); - return res; - } - - private static void listCut(){ - //鎷嗗垎鏆傜敤list - List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsbreak = new List<ConsumableorderdetailsInfo>(); - List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsbreakover = new List<ConsumableorderdetailsInfo>(); - ConsumableorderdetailsInfo c = null; - ConsumableorderdetailsRecordsbreak.clear(); - ConsumableorderdetailsRecordsbreakover.clear(); - consumableorderdetailsRecordsview.clear(); - //閫夋嫨浜у搧view - ConsumableorderdetailsRecordsbreak = new List<ConsumableorderdetailsInfo>(); - ConsumableorderdetailsRecordsbreakover = new List<ConsumableorderdetailsInfo>(); - if(consumableorderdetailsRecords.size() > 1000){ - for(Integer i = 0; i < consumableorderdetailsRecords.size(); i++){ - if(i < 1000){ - c = consumableorderdetailsRecords.get(i); - ConsumableorderdetailsRecordsbreak.add(c); - }else{ - c = consumableorderdetailsRecords.get(i); - ConsumableorderdetailsRecordsbreakover.add(c); - } - } - consumableorderdetailsRecordsview.add(ConsumableorderdetailsRecordsbreak); - consumableorderdetailsRecordsview.add(ConsumableorderdetailsRecordsbreakover); - }else{ - consumableorderdetailsRecordsview.add(consumableorderdetailsRecords); - } - } - //========20160311======ADD_Start================================ - // 灏嗛〉闈㈡垨鍙栧緱BarCode鍘绘帀閲嶅鐨勶紝杞崲鎴怢ist - //========20160311======ADD_Start================================ - public static List<String> ParseBarCode(String Code){ - Map<String,Integer> barcodeCountMap = new Map<String,Integer>(); - String[] Cache = new String[]{}; - Cache = Code.split('\n'); - List <String> Buff = new List<String>(); - for(String A : Cache){ - A = A.trim().toUpperCase(); - if(barcodeCountMap.containsKey(A)){ - barcodeCountMap.put(A,barcodeCountMap.get(A) + 1); - }else{ - barcodeCountMap.put(A,1); - } - Buff.add(A + barcodeCountMap.get(A)); - } - return Buff; - - } - - - - //test - - // @AuraEnabled - // public static ResponseBodyLWC searchConsumableorderdetails(String sqlagencyProType,String userWorkLocation,String accountName,String barcode,List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsLWC){ - // return new ResponseBodyLWC('Error',500, 'test', ''); + sqlagencyProType = '%' + agencyProType + '%'; + Account accountInfo = [ + SELECT Name, Dealer_discount__c + FROM account + WHERE id = :accountid + ]; + accountName = accountInfo.Name; + consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); + Map<String, Product2__c> midMap = new Map<String, Product2__c>(); + List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>(); + Map<String, ConsumableorderdetailsInfo> newMidBoxMap = new Map<String, ConsumableorderdetailsInfo>(); + Map<String, ConsumableorderdetailsInfo> newMidPieceMap = new Map<String, ConsumableorderdetailsInfo>(); + //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy start + //寮�濮嬪埗浣滆〃澶存暟鎹� + // List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c, + // SFDA_Status__c,Packing_list_manual__c, + // Asset_Model_No__c + // from Product2__c + // //where Estimation_Entry_Possibility__c = '鈼�' + // where Product_Type__c like : sqlagencyProType + // ]; + // for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){ + // midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]); // } - //========20160311======ADD_End================================== - // BarCode褰曞叆 - @AuraEnabled - public static ResponseBodyLWC searchConsumableorderdetails(String agencyProType,String userWorkLocation,String accountName,String barcode,String consumableorderdetailsRecordsLWC,Integer pageSizeLWC, Integer pageTokenLWC, String sortFieldLWC, String sortOrderLWC){ - pageSize = pageSizeLWC; - pageToken = pageTokenLWC; - sortField = sortFieldLWC; - sortOrder = sortOrderLWC; - - System.debug('===>consumableorderdetailsRecordsLWC'+consumableorderdetailsRecordsLWC); - List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = (List<ConsumableorderdetailsInfo>)JSON.deserialize(consumableorderdetailsRecordsLWC,List<ConsumableorderdetailsInfo>.class); - // ConsumableorderdetailsInfo[] consumableorderdetailsRecords=(List<ConsumableorderdetailsInfo>)JSON.deserialize(consumableorderdetailsRecordsLWC,List<ConsumableorderdetailsInfo>.class); - system.debug('=====>consumableorderdetailsRecordsLWC'+consumableorderdetailsRecordsLWC); - ResponseBodyLWC res = new ResponseBodyLWC(); - Map<String,object> data = new Map<String,object>(); - res.entity = data; - - sqlagencyProType = '%' + agencyProType + '%'; - - - - - /* BarCodelist鍋氭垚 */ - //FIXME barcodeSet 鍋氭垚锛孭roductCount_ResSet 鍋氭垚 - List<Consumable_order_details2__c> pandiandetailsList = new List<Consumable_order_details2__c>(); - pandiandetailsListShow = new List<List<Consumable_order_details2__c>>(); - done = false; - List<String> BarCodeListP = ParseBarCode( barcode ); - //鏌ヨ搴撳瓨 杩藉姞杩斿搧搴撳瓨 - List<Consumable_order_details2__c> ProductCount_Res = [select Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c,Dealer_Info_text__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c - FROM Consumable_order_details2__c - WHERE Dealer_Arrive__c = true - AND Dealer_Shipment__c = false - AND Dealer_Saled__c = false - AND Dealer_Returned__c = false - AND Lose_Flag__c = false - AND Cancellation_Flag__c = false - AND Bar_Code__c !=null - AND Product_Type__c like : sqlagencyProType - AND Arrive_Owner_Work_Location__c =: userWorkLocation - AND Dealer_Info_text__c = :accountName ]; - reFindProduct.clear(); - Map<String,ConsumableorderdetailsInfo> barCodeListAdjustMap = new Map<String,ConsumableorderdetailsInfo>(); - //barCodeListLoseMap.clear(); - Set<String> carCodeListLose = new Set<String>(); - List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsAdjust = new List<ConsumableorderdetailsInfo>(); - Map<String,String> proIdNotinpage = new Map<String,String>(); - List<Consumable_order_details2__c> reFindProductList = new List<Consumable_order_details2__c>(); - codPageRecords = new List<ConsumableorderdetailsInfo>(); - consumableorderdetailsRecordserrordummy = new List<ConsumableorderdetailsInfo>(); - List<ConsumableorderdetailsInfo> reFindProductaddtopage = new List<ConsumableorderdetailsInfo>(); - pandiandetailsMap.clear(); - reSet = new List<Consumable_order_details2__c>(); - /* 鍒ゆ柇BarCode鏄惁涓虹┖ */ - if (barcode == null || barcode == ''){ - //鍏堝彇鍑烘墍鏈変涪澶变骇鍝� - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - // 20200509 gzw add 鐩樼偣鏁伴噺鍒濆鍖� - ass.Pandian = 0; - // 20200509 gzw add 鐩樼偣鏁伴噺鍒濆鍖� - if(ass.check==true){ - //ass.Diff = ass.countid - ass.Pandian; - for(integer i = 0 ; i < ProductCount_Res.size();i++){ - if(ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && ass.boxPiece == ProductCount_Res[i].Box_Piece__c){ - if(carCodeListLose.contains(ProductCount_Res[i].Bar_Code__c)){ - continue; - }else{ - - //consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け')); - //pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け'); - ////barCodeListLoseMap.put(ProductCount_Res[i].Id, new ConsumableorderdetailsInfo(ProductCount_Res[i])); - carCodeListLose.add(ProductCount_Res[i].Bar_Code__c); - } - } - } - } - } - - //宸茬粡鍑哄簱鐨勪骇鍝� - List<Consumable_order_details2__c> reSet1 = [SELECT Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c,Dealer_Info_text__c - FROM Consumable_order_details2__c - WHERE Dealer_Arrive__c = TRUE - AND (Dealer_Shipment__c= TRUE - or Dealer_Saled__c = TRUE) - AND Dealer_Returned__c = FALSE - AND Cancellation_Flag__c = FALSE - AND Bar_Code__c in :carCodeListLose - AND Dealer_Info_text__c = :accountName - ORDER BY Name ]; - Map<String,Consumable_order_details2__c> needreturnMap = new Map<String,Consumable_order_details2__c>(); - for(Consumable_order_details2__c cod2 :reSet1){ - needreturnMap.put(cod2.Bar_Code__c,cod2); - } - - // 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣 - reSet1 = [SELECT Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c,Dealer_Info_text__c - FROM Consumable_order_details2__c - WHERE Dealer_Arrive__c = TRUE - AND Dealer_Shipment__c= FALSE - AND Dealer_Saled__c = FALSE - AND Dealer_Returned__c = FALSE - AND Cancellation_Flag__c = FALSE - AND Bar_Code__c in :carCodeListLose - AND (Dealer_Info_text__c != :accountName - OR (Dealer_Info_text__c = :accountName - AND Arrive_Owner_Work_Location__c != :userWorkLocation) - ) - ORDER BY Name ]; - Map<String,Consumable_order_details2__c> otherAgProMap = new Map<String,Consumable_order_details2__c>(); - for(Consumable_order_details2__c cod2 :reSet1){ - otherAgProMap.put(cod2.Bar_Code__c,cod2); - } - carCodeListLose.clear(); - - - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - if(ass.check==true){ - ass.Diff = ass.countid - ass.Pandian; - for(integer i = 0 ; i < ProductCount_Res.size();i++){ - if(ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && ass.boxPiece == ProductCount_Res[i].Box_Piece__c){ - if(carCodeListLose.contains(ProductCount_Res[i].Bar_Code_search__c)){ - continue; - }else{ - if(needreturnMap.containsKey(ProductCount_Res[i].Bar_Code__c)){ - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'璇ヤ骇鍝佹湭杩斿搧')); - pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佹湭杩斿搧'); - carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c); - continue; - - } - if(otherAgProMap.containsKey(ProductCount_Res[i].Bar_Code__c)){ - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'璇ヤ骇鍝佸綊灞炰簬' + otherAgProMap.get(ProductCount_Res[i].Bar_Code__c).Dealer_Info_text__c + '鐨勫簱瀛樸��')); - pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佸綊灞炰簬' + otherAgProMap.get(ProductCount_Res[i].Bar_Code__c).Dealer_Info_text__c + '鐨勫簱瀛樸��'); - carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c); - continue; - - } - if (ProductCount_Res[i].Isoverdue__c == 0) { - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��')); - pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��'); - carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c); - ass.Diff--; - continue; - } - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け')); - pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け'); - carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c); - } - } - } - }else{ - ass.Pandian = 0; - ass.Diff = 0; - } - } - List<Consumable_order_details2__c> showcod2 = new List<Consumable_order_details2__c>(); - if (pandiandetailsMap.keySet().size() > 0) { - showcod2 = [select Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c - FROM Consumable_order_details2__c - WHERE Id in :pandiandetailsMap.keySet() - order by Name]; - } - initStandardController(); - showcod2nid = cod2s(); - - for (Consumable_order_details2__c cod2 : showcod2nid) { - codPageRecords.add(new ConsumableorderdetailsInfo(cod2,pandiandetailsMap.get(cod2.Id))); - } - - iSinventory = true; - if(codPageRecords.size() > 0) done = true; - consumableorderdetailsRecordserrordummy.clear(); - - //pandiandetailsList = new list<Consumable_order_details2__c>(); - pandiandetailsList = [select Id, Bar_Code__c,Consumable_Product__r.Name__c, - Box_Piece__c,Lose_reason__c - FROM Consumable_order_details2__c - WHERE Id in :pandiandetailsMap.keySet() - order by Name]; - for(Consumable_order_details2__c codDet : pandiandetailsList){ - codDet.Lose_reason__c = pandiandetailsMap.get(codDet.Id); - } - List<Consumable_order_details2__c> pandiandetailsListMid = new List<Consumable_order_details2__c>(); - for(Consumable_order_details2__c cod2 : pandiandetailsList){ - pandiandetailsListMid.add(cod2); - if(pandiandetailsListMid.size() == 1000){ - pandiandetailsListShow.add(pandiandetailsListMid); - pandiandetailsListMid = new List<Consumable_order_details2__c>(); - } - } - if(pandiandetailsListMid.size() > 0){ - pandiandetailsListShow.add(pandiandetailsListMid); - } - - //鍒嗛〉 - PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); - totalCount = codPageRecords.size(); - paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; - paginatedAccounts.recordStart = pageToken + 1; - paginatedAccounts.pageNumber = pageToken / pageSize + 1; - Integer recordEnd = pageSize * paginatedAccounts.pageNumber; - paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; - paginatedAccounts.totalRecords = totalCount; - - Integer startIdx; - Integer endIdx; - List<ConsumableorderdetailsInfo> pageCodeRecords = new List<ConsumableorderdetailsInfo>(); - startIdx = pageToken; - endIdx = startIdx + pageSize; - if (endIdx > codPageRecords.size()) { - endIdx = codPageRecords.size(); - } - for (Integer i = startIdx; i < endIdx; i++) { - pageCodeRecords.add(codPageRecords.get(i)); - } - - data.put('paginatedAccounts', paginatedAccounts); - data.put('pageCodeRecords', pageCodeRecords); - - //end - data.put('codPageRecords',JSON.serialize(codPageRecords)); - data.put('consumableorderdetailsRecords',JSON.serialize(consumableorderdetailsRecords)); - data.put('consumableorderdetailsRecordsview',JSON.serialize(consumableorderdetailsRecordsview)); - data.put('pandiandetailsMap',pandiandetailsMap); - System.debug('iSinventory===>'+iSinventory); - System.debug('codPageRecords===>'+codPageRecords); - data.put('iSinventory',JSON.serialize(iSinventory)); - data.put('reSet1',reSet1); - System.debug('reSet1===>'+reSet1); - res.code = 200; - res.status = 'Success1'; - - return res; - + //鏌ヨ搴撳瓨 杩藉姞杩斿搧搴撳瓨 + List<Consumable_order_details2__c> ProductCount_Res = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND Dealer_Shipment__c = FALSE + AND Dealer_Saled__c = FALSE + AND Dealer_Returned__c = FALSE + AND Lose_Flag__c = FALSE + AND Cancellation_Flag__c = FALSE + AND Bar_Code__c != NULL + AND Product_Type__c LIKE :sqlagencyProType + AND Arrive_Owner_Work_Location__c = :userWorkLocation + AND Dealer_Info_text__c = :accountName + ]; + //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy start + //寮�濮嬪埗浣滆〃澶存暟鎹� + Set<Id> Product2cIdSet = new Set<Id>(); + for (Consumable_order_details2__c con_or_d2item : ProductCount_Res) { + Product2cIdSet.add(con_or_d2item.Consumable_Product__c); + } + List<Product2__c> productCount_Unfull_bak = [ + SELECT + Id, + Name, + Name__c, + SFDA_Status__c, + Packing_list_manual__c, + Asset_Model_No__c + FROM Product2__c + //where Estimation_Entry_Possibility__c = '鈼�' + WHERE Id IN :Product2cIdSet AND Product_Type__c LIKE :sqlagencyProType + ]; + for (integer i = 0; i < productCount_Unfull_bak.size(); i++) { + midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]); + } + system.debug('productCount_Unfull_bak' + productCount_Unfull_bak.size()); + // String erro='productCount_Unfull_bak:'+productCount_Unfull_bak.size(); + // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, erro)); + //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy end + // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'ProductCount_Res ' + ProductCount_Res.size())); + for (Integer i = 0; i < ProductCount_Res.size(); i++) { + //鐒跺悗寰幆CountDel鍋欱ox鍜宲iece2涓猰ap + if ( + MidMap.containsKey(ProductCount_Res[i].Consumable_Product__c) && + ProductCount_Res[i].Box_Piece__c == '鐩�' + ) { + if ( + newMidBoxMap.containsKey( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c + ) + ) { + ConsumableorderdetailsInfo Jstage = newMidBoxMap.get( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c + ) + .clone(); + Jstage.countid = Jstage.countid + 1; + if (ProductCount_Res[i].Isoverdue__c == 1) { + Jstage.limitCount = Jstage.limitCount + 1; + } + Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c; + newMidBoxMap.put( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c, + Jstage + ); + } else { + ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo( + MidMap.get(ProductCount_Res[i].Consumable_Product__c) + ); + Jstage.countid = Jstage.countid + 1; + if (ProductCount_Res[i].Isoverdue__c == 1) { + Jstage.limitCount = Jstage.limitCount + 1; + } + Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c; + newMidBoxMap.put( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c, + Jstage + ); } - - - - //CHAN-B7J4NB 鍙湁涓�涓椂锛岀洏鐐逛笉鍒� - //init(); - //CHAN-B7J4NB - Map<String,String> showproductIdMap = new Map<String,String>(); - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - showproductIdMap.put(ass.prod.Id + ass.boxPiece, ass.prod.Id + ass.boxPiece); + } else if ( + MidMap.containsKey(ProductCount_Res[i].Consumable_Product__c) && + ProductCount_Res[i].Box_Piece__c == '涓�' + ) { + if ( + newMidPieceMap.containsKey( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c + ) + ) { + ConsumableorderdetailsInfo Jstage = newMidPieceMap.get( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c + ) + .clone(); + Jstage.countid = Jstage.countid + 1; + if (ProductCount_Res[i].Isoverdue__c == 1) { + Jstage.limitCount = Jstage.limitCount + 1; + } + Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c; + newMidPieceMap.put( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c, + Jstage + ); + } else { + ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo( + MidMap.get(ProductCount_Res[i].Consumable_Product__c) + ); + Jstage.countid = Jstage.countid + 1; + if (ProductCount_Res[i].Isoverdue__c == 1) { + Jstage.limitCount = Jstage.limitCount + 1; + } + Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c; + newMidPieceMap.put( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c, + Jstage + ); } -// ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCodeListP' + BarCodeListP)); - /***************************************************************************/ - // BarCode鐨勬绱� 鎵�鏈夊湪搴� - reSet = [select Id,Consumable_Product__c,Consumable_Product__r.Name__c, - Box_Piece__c,Bar_Code_search__c,Isoverdue__c - from Consumable_order_details2__c - where Bar_Code_search__c in :BarCodeListP - AND Dealer_Arrive__c = true - AND Dealer_Shipment__c = false - AND Dealer_Saled__c = false - AND Dealer_Returned__c = false - AND Lose_Flag__c = false - AND Cancellation_Date__c = null - and Bar_Code__c !=null - AND Product_Type__c like : sqlagencyProType - AND Arrive_Owner_Work_Location__c =: userWorkLocation - AND Dealer_Info_text__c = :accountName - order by Name]; - System.debug('reSet===>'+reSet); - Map<String, Integer> pandianProdIdCountMap = new Map<String, Integer>(); // ProdId 鍗樹綅 - // 20200509 add gzw 璁板綍闇�瑕侀攢瀛樻暟閲� - Map<String, Integer> pandianoverdueCountMap = new Map<String, Integer>(); // ProdId 鍗樹綅 - // 20200509 add gzw 璁板綍闇�瑕侀攢瀛樻暟閲� - Map<String,ConsumableorderdetailsInfo> barCodeListPandianMap = new Map<String,ConsumableorderdetailsInfo>(); // 鏄庣窗銉愩兗銈炽兗銉� 鍗樹綅 - //鐩樼偣鍒扮殑鏄庣粏 - for(Consumable_order_details2__c rs : reSet){ - //BarCodeListPandian.add(rs.Bar_Code_search__c); - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - if(rs.Consumable_Product__c == ass.Prod.Id && rs.Box_Piece__c == ass.boxPiece){ - ass.check = true; - } - } + } + } + for (ConsumableorderdetailsInfo bss : newMidBoxMap.values()) { + bss.overlimitCount = bss.countid - bss.limitCount; + boxRecords.add(bss); + } + boxRecords.sort(); + for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { + bss.overlimitCount = bss.countid - bss.limitCount; + } + for (ConsumableorderdetailsInfo bss : boxRecords) { + consumableorderdetailsRecords.add(bss); + if (newMidPieceMap.containsKey(bss.Prod.Id + '涓�')) { + consumableorderdetailsRecords.add( + newMidPieceMap.get(bss.Prod.Id + '涓�') + ); + //newMidPieceMap绉婚櫎宸茬粡娣诲姞鐨凱iece + newMidPieceMap.remove(bss.Prod.Id + '涓�'); + } + } + for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { + consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�')); + } + //consumableorderdetailsCount = consumableorderdetailsRecords.size(); + listCut(); - barCodeListPandianMap.put(rs.Bar_Code_search__c, new ConsumableorderdetailsInfo(rs)); - if (rs.Isoverdue__c == 0) { - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(rs,'璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��')); - pandiandetailsMap.put(rs.Id, '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��'); - if (pandianoverdueCountMap.containsKey(rs.Consumable_product__c + rs.Box_Piece__c) == false) { - pandianoverdueCountMap.put(rs.Consumable_Product__c + rs.Box_Piece__c, 1); - } else { - pandianoverdueCountMap.put(rs.Consumable_Product__c + rs.Box_Piece__c, pandianoverdueCountMap.get(rs.Consumable_Product__c + rs.Box_Piece__c) + 1); - } + data.put( + 'ConsumableorderdetailsRecordsview', + JSON.serialize(ConsumableorderdetailsRecordsview) + ); + data.put('userWorkLocation', userWorkLocation); + data.put('agencyProType', agencyProType); + data.put('accountName', accountName); + data.put('accountid', accountid); + + data.put( + 'consumableorderdetailsRecords', + JSON.serialize(consumableorderdetailsRecords) + ); + res.status = 'Success'; + res.code = 200; + System.debug('res = ' + res); + return res; + } + + private static void listCut() { + //鎷嗗垎鏆傜敤list + List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsbreak = new List<ConsumableorderdetailsInfo>(); + List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsbreakover = new List<ConsumableorderdetailsInfo>(); + ConsumableorderdetailsInfo c = null; + ConsumableorderdetailsRecordsbreak.clear(); + ConsumableorderdetailsRecordsbreakover.clear(); + consumableorderdetailsRecordsview.clear(); + //閫夋嫨浜у搧view + ConsumableorderdetailsRecordsbreak = new List<ConsumableorderdetailsInfo>(); + ConsumableorderdetailsRecordsbreakover = new List<ConsumableorderdetailsInfo>(); + if (consumableorderdetailsRecords.size() > 1000) { + for (Integer i = 0; i < consumableorderdetailsRecords.size(); i++) { + if (i < 1000) { + c = consumableorderdetailsRecords.get(i); + ConsumableorderdetailsRecordsbreak.add(c); + } else { + c = consumableorderdetailsRecords.get(i); + ConsumableorderdetailsRecordsbreakover.add(c); + } + } + consumableorderdetailsRecordsview.add(ConsumableorderdetailsRecordsbreak); + consumableorderdetailsRecordsview.add( + ConsumableorderdetailsRecordsbreakover + ); + } else { + consumableorderdetailsRecordsview.add(consumableorderdetailsRecords); + } + } + //========20160311======ADD_Start================================ + // 灏嗛〉闈㈡垨鍙栧緱BarCode鍘绘帀閲嶅鐨勶紝杞崲鎴怢ist + //========20160311======ADD_Start================================ + public static List<String> ParseBarCode(String Code) { + Map<String, Integer> barcodeCountMap = new Map<String, Integer>(); + String[] Cache = new List<String>{}; + Cache = Code.split('\n'); + List<String> Buff = new List<String>(); + for (String A : Cache) { + A = A.trim().toUpperCase(); + if (barcodeCountMap.containsKey(A)) { + barcodeCountMap.put(A, barcodeCountMap.get(A) + 1); + } else { + barcodeCountMap.put(A, 1); + } + Buff.add(A + barcodeCountMap.get(A)); + } + return Buff; + } + + //test + + // @AuraEnabled + // public static ResponseBodyLWC searchConsumableorderdetails(String sqlagencyProType,String userWorkLocation,String accountName,String barcode,List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsLWC){ + // return new ResponseBodyLWC('Error',500, 'test', ''); + // } + //========20160311======ADD_End================================== + // BarCode褰曞叆 + @AuraEnabled + public static ResponseBodyLWC searchConsumableorderdetails( + String agencyProType, + String userWorkLocation, + String accountName, + String barcode, + String consumableorderdetailsRecordsLWC, + Integer pageSizeLWC, + Integer pageTokenLWC, + String sortFieldLWC, + String sortOrderLWC + ) { + pageSize = pageSizeLWC; + pageToken = pageTokenLWC; + sortField = sortFieldLWC; + sortOrder = sortOrderLWC; + + System.debug( + '===>consumableorderdetailsRecordsLWC' + consumableorderdetailsRecordsLWC + ); + List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = (List<ConsumableorderdetailsInfo>) JSON.deserialize( + consumableorderdetailsRecordsLWC, + List<ConsumableorderdetailsInfo>.class + ); + // ConsumableorderdetailsInfo[] consumableorderdetailsRecords=(List<ConsumableorderdetailsInfo>)JSON.deserialize(consumableorderdetailsRecordsLWC,List<ConsumableorderdetailsInfo>.class); + system.debug( + '=====>consumableorderdetailsRecordsLWC' + + consumableorderdetailsRecordsLWC + ); + ResponseBodyLWC res = new ResponseBodyLWC(); + Map<String, object> data = new Map<String, object>(); + res.entity = data; + + sqlagencyProType = '%' + agencyProType + '%'; + System.debug('sqlagencyProType==>' + sqlagencyProType); + System.debug('accountName==>' + accountName); + System.debug('userWorkLocation==>' + userWorkLocation); + + /* BarCodelist鍋氭垚 */ + //FIXME barcodeSet 鍋氭垚锛孭roductCount_ResSet 鍋氭垚 + List<Consumable_order_details2__c> pandiandetailsList = new List<Consumable_order_details2__c>(); + pandiandetailsListShow = new List<List<Consumable_order_details2__c>>(); + done = false; + List<String> BarCodeListP = ParseBarCode(barcode); + System.debug('BarCodeListP===>' + BarCodeListP); + //鏌ヨ搴撳瓨 杩藉姞杩斿搧搴撳瓨 + List<Consumable_order_details2__c> ProductCount_Res = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Dealer_Info_text__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND Dealer_Shipment__c = FALSE + AND Dealer_Saled__c = FALSE + AND Dealer_Returned__c = FALSE + AND Lose_Flag__c = FALSE + AND Cancellation_Flag__c = FALSE + AND Bar_Code__c != NULL + AND Product_Type__c LIKE :sqlagencyProType + AND Arrive_Owner_Work_Location__c = :userWorkLocation + AND Dealer_Info_text__c = :accountName + ]; + System.debug('ProductCount_Res==>' + ProductCount_Res); + reFindProduct.clear(); + Map<String, ConsumableorderdetailsInfo> barCodeListAdjustMap = new Map<String, ConsumableorderdetailsInfo>(); + //barCodeListLoseMap.clear(); + Set<String> carCodeListLose = new Set<String>(); + List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsAdjust = new List<ConsumableorderdetailsInfo>(); + Map<String, String> proIdNotinpage = new Map<String, String>(); + List<Consumable_order_details2__c> reFindProductList = new List<Consumable_order_details2__c>(); + codPageRecords = new List<ConsumableorderdetailsInfo>(); + consumableorderdetailsRecordserrordummy = new List<ConsumableorderdetailsInfo>(); + List<ConsumableorderdetailsInfo> reFindProductaddtopage = new List<ConsumableorderdetailsInfo>(); + pandiandetailsMap.clear(); + reSet = new List<Consumable_order_details2__c>(); + /* 鍒ゆ柇BarCode鏄惁涓虹┖ */ + if (barcode == null || barcode == '') { + //鍏堝彇鍑烘墍鏈変涪澶变骇鍝� + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + // 20200509 gzw add 鐩樼偣鏁伴噺鍒濆鍖� + ass.Pandian = 0; + // 20200509 gzw add 鐩樼偣鏁伴噺鍒濆鍖� + if (ass.check == true) { + //ass.Diff = ass.countid - ass.Pandian; + for (integer i = 0; i < ProductCount_Res.size(); i++) { + System.debug('Pro==>' + ProductCount_Res[i].Consumable_Product__c); + System.debug('ProId==>' + ass.Prod.Id); + System.debug('ass.boxPiece ==>' + ass.boxPiece); + System.debug('boxPiece ==>' + ProductCount_Res[i].Box_Piece__c); + if ( + ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && + ass.boxPiece == ProductCount_Res[i].Box_Piece__c + ) { + if (carCodeListLose.contains(ProductCount_Res[i].Bar_Code__c)) { continue; + } else { + //consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け')); + //pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け'); + ////barCodeListLoseMap.put(ProductCount_Res[i].Id, new ConsumableorderdetailsInfo(ProductCount_Res[i])); + carCodeListLose.add(ProductCount_Res[i].Bar_Code__c); + } } - if (pandianProdIdCountMap.containsKey(rs.Consumable_product__c + rs.Box_Piece__c) == false) { - pandianProdIdCountMap.put(rs.Consumable_Product__c + rs.Box_Piece__c, 1); - } else { - pandianProdIdCountMap.put(rs.Consumable_Product__c + rs.Box_Piece__c, pandianProdIdCountMap.get(rs.Consumable_Product__c + rs.Box_Piece__c) + 1); - } + } } + } - // 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣 - List<Consumable_order_details2__c> reSet1 = [SELECT Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c,Dealer_Shipment__c,Dealer_Saled__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c,Dealer_Arrive__c, - Bar_Code_search__c,Dealer_Info_text__c - FROM Consumable_order_details2__c - WHERE (Dealer_Arrive__c = TRUE - or Dealer_Shipment__c= TRUE - or Dealer_Saled__c = TRUE) - AND Dealer_Returned__c = FALSE - AND Cancellation_Flag__c = FALSE - AND Bar_Code_search__c in :BarCodeListP - AND (Dealer_Info_text__c != :accountName - OR (Dealer_Info_text__c = :accountName - AND Arrive_Owner_Work_Location__c != :userWorkLocation) + //宸茬粡鍑哄簱鐨勪骇鍝� + List<Consumable_order_details2__c> reSet1 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c, + Dealer_Info_text__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND (Dealer_Shipment__c = TRUE + OR Dealer_Saled__c = TRUE) + AND Dealer_Returned__c = FALSE + AND Cancellation_Flag__c = FALSE + AND Bar_Code__c IN :carCodeListLose + AND Dealer_Info_text__c = :accountName + ORDER BY Name + ]; + Map<String, Consumable_order_details2__c> needreturnMap = new Map<String, Consumable_order_details2__c>(); + for (Consumable_order_details2__c cod2 : reSet1) { + needreturnMap.put(cod2.Bar_Code__c, cod2); + } + + // 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣 + reSet1 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c, + Dealer_Info_text__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND Dealer_Shipment__c = FALSE + AND Dealer_Saled__c = FALSE + AND Dealer_Returned__c = FALSE + AND Cancellation_Flag__c = FALSE + AND Bar_Code__c IN :carCodeListLose + AND (Dealer_Info_text__c != :accountName + OR (Dealer_Info_text__c = :accountName + AND Arrive_Owner_Work_Location__c != :userWorkLocation)) + ORDER BY Name + ]; + Map<String, Consumable_order_details2__c> otherAgProMap = new Map<String, Consumable_order_details2__c>(); + for (Consumable_order_details2__c cod2 : reSet1) { + otherAgProMap.put(cod2.Bar_Code__c, cod2); + } + carCodeListLose.clear(); + + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + if (ass.check == true) { + ass.Diff = ass.countid - ass.Pandian; + for (integer i = 0; i < ProductCount_Res.size(); i++) { + if ( + ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && + ass.boxPiece == ProductCount_Res[i].Box_Piece__c + ) { + if ( + carCodeListLose.contains(ProductCount_Res[i].Bar_Code_search__c) + ) { + continue; + } else { + if ( + needreturnMap.containsKey(ProductCount_Res[i].Bar_Code__c) + ) { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo( + ProductCount_Res[i], + '璇ヤ骇鍝佹湭杩斿搧' ) - ORDER BY Name ]; - Map<String,Consumable_order_details2__c> otherAgProMap = new Map<String,Consumable_order_details2__c>(); - for(Consumable_order_details2__c cod2 :reSet1){ - otherAgProMap.put(cod2.Bar_Code__c,cod2); - } - // 闇�瑕佸叆搴撶殑浜у搧 - for(Consumable_order_details2__c cod2 : reSet1){ - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - if(cod2.Consumable_Product__c == ass.Prod.Id && cod2.Box_Piece__c == ass.boxPiece){ - ass.check = true; + ); + pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佹湭杩斿搧'); + carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c); + continue; } - } - if(!showproductIdMap.containsKey(cod2.Consumable_product__c + cod2.Box_Piece__c)){ - reFindProductList.add(cod2); - proIdNotinpage.put(cod2.Consumable_Product__c, cod2.Box_Piece__c); - } - if(!barCodeListPandianMap.containsKey(cod2.Bar_Code_search__c) - && otherAgProMap.containsKey(cod2.Bar_Code__c) - && (otherAgProMap.get(cod2.Bar_Code__c).Dealer_Saled__c == true - || otherAgProMap.get(cod2.Bar_Code__c).Dealer_Shipment__c == true) ){ - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(cod2,'鏃犳浜у搧鐨勫簱瀛橈紝璇峰叆搴撱��')); - pandiandetailsMap.put(cod2.Id, '鏃犳浜у搧鐨勫簱瀛橈紝璇峰叆搴撱��'); - } - } - //瀵诲洖鏄庣粏 - List<Consumable_order_details2__c> productAdjust = new List<Consumable_order_details2__c>(); - productAdjust = [select Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c,Lose_reason__c, - Asset_Model_No__c,Box_Piece__c,Bar_Code_search__c,Isoverdue__c - from Consumable_order_details2__c - where Bar_Code_search__c in :BarCodeListP - and Bar_Code__c !=null - and Lose_Flag__c = true - AND Product_Type__c like : sqlagencyProType - AND Dealer_Info_text__c = :accountName - AND Arrive_Owner_Work_Location__c =: userWorkLocation - order by Name]; - - - for (Consumable_order_details2__c rs : productAdjust){ - // 杩囨湡搴撳瓨閿�瀛� 20200427 gzw add srart - if (rs.Isoverdue__c == 0 || rs.Lose_reason__c == '杩囨湡搴撳瓨閿�瀛�' ) { - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(rs,'杩囨湡鎴栬�呴攢瀛樹骇鍝侊紝鏃犳硶瀵诲洖鍏ュ簱')); - pandiandetailsMap.put(rs.Id, '杩囨湡鎴栬�呴攢瀛樹骇鍝侊紝鏃犳硶瀵诲洖鍏ュ簱'); - carCodeListLose.add(rs.Bar_Code_search__c); - continue; - } - // 杩囨湡搴撳瓨閿�瀛� 20200427 gzw add end - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - if(rs.Consumable_Product__c == ass.Prod.Id && rs.Box_Piece__c == ass.boxPiece){ - ass.check = true; + if ( + otherAgProMap.containsKey(ProductCount_Res[i].Bar_Code__c) + ) { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo( + ProductCount_Res[i], + '璇ヤ骇鍝佸綊灞炰簬' + + otherAgProMap.get(ProductCount_Res[i].Bar_Code__c) + .Dealer_Info_text__c + + '鐨勫簱瀛樸��' + ) + ); + pandiandetailsMap.put( + ProductCount_Res[i].Id, + '璇ヤ骇鍝佸綊灞炰簬' + + otherAgProMap.get(ProductCount_Res[i].Bar_Code__c) + .Dealer_Info_text__c + + '鐨勫簱瀛樸��' + ); + carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c); + continue; } - } - if(!showproductIdMap.containsKey(rs.Consumable_product__c + rs.Box_Piece__c)){ - reFindProductList.add(rs); - proIdNotinpage.put(rs.Consumable_Product__c, rs.Box_Piece__c); - } - if(barCodeListAdjustMap.containsKey(rs.Bar_Code_search__c)){ - continue; - }else{ - barCodeListAdjustMap.put(rs.Bar_Code_search__c, new ConsumableorderdetailsInfo(rs)); - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(rs,'瀵诲洖')); - pandiandetailsMap.put(rs.Id, '瀵诲洖'); - consumableorderdetailsRecordsAdjust.add(new ConsumableorderdetailsInfo(rs)); - } - } - if(reFindProductList.size() > 0){ - Map<String,Product2__c> midMap = new Map<String,Product2__c>(); - List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>(); - Map<String,ConsumableorderdetailsInfo> newMidBoxMap = new Map<String,ConsumableorderdetailsInfo>(); - Map<String,ConsumableorderdetailsInfo> newMidPieceMap = new Map<String,ConsumableorderdetailsInfo>(); - List<Product2__c> product_Refind = [select Id, Name,Name__c,SFDA_Status__c,Packing_list_manual__c,Asset_Model_No__c - from Product2__c - WHERE Id in :proIdNotinpage.keySet()]; - for(Product2__c pro : product_Refind){ - midMap.put(pro.Id, pro); - } - for(Integer i = 0 ; i< reFindProductList.size();i++){ - //鐒跺悗寰幆CountDel鍋欱ox鍜宲iece2涓猰ap - if(MidMap.containsKey(reFindProductList[i].Consumable_Product__c) && reFindProductList[i].Box_Piece__c == '鐩�'){ - - if(newMidBoxMap.containsKey(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c)){ - ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c).clone(); - Jstage.countid = 0 ; - if(reFindProductList[i].Isoverdue__c == 1){ - Jstage.limitCount = 0; - } - Jstage.boxPiece = reFindProductList[i].Box_Piece__c; - newMidBoxMap.put(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c, Jstage); -}else{ - ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(reFindProductList[i].Consumable_Product__c)); - Jstage.countid = 0 ; - if(reFindProductList[i].Isoverdue__c == 1){ - Jstage.limitCount = 0; - } - Jstage.boxPiece = reFindProductList[i].Box_Piece__c; - newMidBoxMap.put(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c, Jstage); - } - }else if(MidMap.containsKey(reFindProductList[i].Consumable_Product__c) && reFindProductList[i].Box_Piece__c == '涓�'){ - if(newMidPieceMap.containsKey(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c)){ - ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(reFindProductList[i].Consumable_product__c+reFindProductList[i].Box_Piece__c).clone(); - Jstage.countid = 0 ; - if(reFindProductList[i].Isoverdue__c == 1){ - Jstage.limitCount = 0; - } - Jstage.boxPiece = reFindProductList[i].Box_Piece__c; - newMidPieceMap.put(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c, Jstage); - }else{ - ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(reFindProductList[i].Consumable_Product__c)); - Jstage.countid = 0 ; - if(reFindProductList[i].Isoverdue__c == 1){ - Jstage.limitCount = 0; - } - Jstage.boxPiece = reFindProductList[i].Box_Piece__c; - newMidPieceMap.put(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c, Jstage); - } + if (ProductCount_Res[i].Isoverdue__c == 0) { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo( + ProductCount_Res[i], + '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��' + ) + ); + pandiandetailsMap.put( + ProductCount_Res[i].Id, + '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��' + ); + carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c); + ass.Diff--; + continue; } + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo(ProductCount_Res[i], '涓㈠け') + ); + pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け'); + carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c); + } } - for(ConsumableorderdetailsInfo bss : newMidBoxMap.values()){ - bss.check = true; - bss.overlimitCount = bss.countid - bss.limitCount; - boxRecords.add(bss); - } - boxRecords.sort(); - for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){ - bss.check = true; - bss.overlimitCount = bss.countid - bss.limitCount; - } - for(ConsumableorderdetailsInfo bss : boxRecords){ - consumableorderdetailsRecords.add(bss); - if(newMidPieceMap.containsKey(bss.Prod.Id + '涓�')){ - consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�')); - //newMidPieceMap绉婚櫎宸茬粡娣诲姞鐨凱iece - newMidPieceMap.remove(bss.Prod.Id + '涓�'); - } - } - for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){ - consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�')); - } + } + } else { + ass.Pandian = 0; + ass.Diff = 0; } + } + List<Consumable_order_details2__c> showcod2 = new List<Consumable_order_details2__c>(); + if (pandiandetailsMap.keySet().size() > 0) { + showcod2 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c + FROM Consumable_order_details2__c + WHERE Id IN :pandiandetailsMap.keySet() + ORDER BY Name + ]; + } + initStandardController(); + showcod2nid = cod2s(); - //鍏堝彇鍑烘湭鐩樼偣鍒扮殑浜у搧 - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - if(ass.check == true){ - for(integer i = 0 ; i<ProductCount_Res.size();i++){ - if(ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && ass.boxPiece == ProductCount_Res[i].Box_Piece__c){ - if(barCodeListPandianMap.get(ProductCount_Res[i].Bar_Code_search__c) != null){ - continue; - }else{ - carCodeListLose.add(ProductCount_Res[i].Bar_Code__c); - ////barCodeListLoseMap.put(ProductCount_Res[i].Id, new ConsumableorderdetailsInfo(ProductCount_Res[i])); - //consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け')); - //pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け'); - } - } - } - } + for (Consumable_order_details2__c cod2 : showcod2nid) { + codPageRecords.add( + new ConsumableorderdetailsInfo(cod2, pandiandetailsMap.get(cod2.Id)) + ); + } + + iSinventory = true; + if (codPageRecords.size() > 0) + done = true; + consumableorderdetailsRecordserrordummy.clear(); + + //pandiandetailsList = new list<Consumable_order_details2__c>(); + pandiandetailsList = [ + SELECT + Id, + Bar_Code__c, + Consumable_Product__r.Name__c, + Box_Piece__c, + Lose_reason__c + FROM Consumable_order_details2__c + WHERE Id IN :pandiandetailsMap.keySet() + ORDER BY Name + ]; + for (Consumable_order_details2__c codDet : pandiandetailsList) { + codDet.Lose_reason__c = pandiandetailsMap.get(codDet.Id); + } + List<Consumable_order_details2__c> pandiandetailsListMid = new List<Consumable_order_details2__c>(); + for (Consumable_order_details2__c cod2 : pandiandetailsList) { + pandiandetailsListMid.add(cod2); + if (pandiandetailsListMid.size() == 1000) { + pandiandetailsListShow.add(pandiandetailsListMid); + pandiandetailsListMid = new List<Consumable_order_details2__c>(); } - //宸茬粡鍑哄簱鐨勪骇鍝� - List<Consumable_order_details2__c> reSet2 = [SELECT Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c,Dealer_Info_text__c - FROM Consumable_order_details2__c - WHERE Dealer_Arrive__c = TRUE - AND (Dealer_Shipment__c= TRUE - or Dealer_Saled__c = TRUE) - AND Dealer_Returned__c = FALSE - AND Cancellation_Flag__c = FALSE - AND Bar_Code_search__c in :BarCodeListP - AND Dealer_Info_text__c = :accountName - ORDER BY Name ]; - Map<String,Consumable_order_details2__c> needreturnMap = new Map<String,Consumable_order_details2__c>(); - for(Consumable_order_details2__c cod2 :reSet2){ - needreturnMap.put(cod2.Bar_Code__c,cod2); - } - //// 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣 - //List<Consumable_order_details2__c> reSet1 = [SELECT Id, Name,Consumable_Product__c, - // Bar_Code__c,Consumable_Product__r.Name__c,Dealer_Shipment__c,Dealer_Saled__c, - // Asset_Model_No__c,Isoverdue__c,Box_Piece__c,Dealer_Arrive__c, - // Bar_Code_search__c,Dealer_Info_text__c - // FROM Consumable_order_details2__c - // WHERE (Dealer_Arrive__c = TRUE - // or Dealer_Shipment__c= TRUE - // or Dealer_Saled__c = TRUE) - // AND Dealer_Returned__c = FALSE - // AND Cancellation_Flag__c = FALSE - // AND Bar_Code_search__c in :BarCodeListP - // AND (Dealer_Info_text__c != :accountName - // OR (Dealer_Info_text__c = :accountName - // AND Arrive_Owner_Work_Location__c != :userWorkLocation) - // ) - // ORDER BY Name ]; - //Map<String,Consumable_order_details2__c> otherAgProMap = new Map<String,Consumable_order_details2__c>(); - //for(Consumable_order_details2__c cod2 :reSet1){ - // otherAgProMap.put(cod2.Bar_Code__c,cod2); - //} - carCodeListLose.clear(); - //鏈洏鐐瑰埌鐨勪骇鍝� - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - if(ass.check == true){ - for(integer i = 0 ; i<ProductCount_Res.size();i++){ - if(ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && ass.boxPiece == ProductCount_Res[i].Box_Piece__c){ - if(barCodeListPandianMap.containsKey(ProductCount_Res[i].Bar_Code_search__c)){ - continue; - } - if (ProductCount_Res[i].Isoverdue__c == 0) { - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��')); - pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��'); - if (pandianoverdueCountMap.containsKey(ProductCount_Res[i].Consumable_product__c + ProductCount_Res[i].Box_Piece__c) == false) { - pandianoverdueCountMap.put(ProductCount_Res[i].Consumable_Product__c + ProductCount_Res[i].Box_Piece__c, 1); - } else { - pandianoverdueCountMap.put(ProductCount_Res[i].Consumable_Product__c + ProductCount_Res[i].Box_Piece__c, pandianoverdueCountMap.get(ProductCount_Res[i].Consumable_Product__c + ProductCount_Res[i].Box_Piece__c) + 1); - } - continue; - } + } + if (pandiandetailsListMid.size() > 0) { + pandiandetailsListShow.add(pandiandetailsListMid); + } - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け')); - pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け'); - } - } - // 鍚屾椂瀛樺湪鍏朵粬缁忛攢鍟嗗簱瀛樹骇鍝� - for(Consumable_order_details2__c cod2 : reSet1){ - if(cod2.Consumable_Product__c == ass.Prod.Id && ass.boxPiece == cod2.Box_Piece__c){ - if(barCodeListPandianMap.containsKey(cod2.Bar_Code_search__c) - && otherAgProMap.containsKey(cod2.Bar_Code__c) - && otherAgProMap.get(cod2.Bar_Code__c).Dealer_Saled__c == false - && otherAgProMap.get(cod2.Bar_Code__c).Dealer_Shipment__c == false ){ - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(cod2,'璇ヤ骇鍝佸綊灞炰簬' + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Info_text__c + '鐨勫簱瀛樸��')); - pandiandetailsMap.put(cod2.Id, '璇ヤ骇鍝佸綊灞炰簬' + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Info_text__c + '鐨勫簱瀛樸��'); - continue; - } - } - } - // 闇�瑕佽繑鍝佺殑浜у搧 - for(Consumable_order_details2__c cod2 : reSet2){ - if(cod2.Consumable_Product__c == ass.Prod.Id && ass.boxPiece == cod2.Box_Piece__c){ - if(needreturnMap.containsKey(cod2.Bar_Code__c)){ - consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(cod2,'璇ヤ骇鍝佺洰鍓嶅嚭搴撶姸鎬侊紝璇疯繑鍝併��')); - pandiandetailsMap.put(cod2.Id, '璇ヤ骇鍝佺洰鍓嶅嚭搴撶姸鎬侊紝璇疯繑鍝併��'); - continue; - } - } - } - } - } + //鍒嗛〉 + PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); + totalCount = codPageRecords.size(); + paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) + ? pageToken + pageSize + : null; + paginatedAccounts.recordStart = pageToken + 1; + paginatedAccounts.pageNumber = pageToken / pageSize + 1; + Integer recordEnd = pageSize * paginatedAccounts.pageNumber; + paginatedAccounts.recordEnd = totalCount >= recordEnd + ? recordEnd + : totalCount; + paginatedAccounts.totalRecords = totalCount; - //鏇存柊涓绘槑缁嗗崟 - if(barCodeListPandianMap.size() > 0){ - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - if(ass.check == true){ - integer countSum = 0; - if (pandianProdIdCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) { - countSum = pandianProdIdCountMap.get(ass.Prod.Id + ass.boxPiece); - } - integer overdueSum = 0; - if (pandianoverdueCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) { - overdueSum = pandianoverdueCountMap.get(ass.Prod.Id + ass.boxPiece); - } - ass.Pandian = countSum; - ass.Diff = ass.countid - countSum - overdueSum; - ass.refind = 0; - } - } - }else{ - for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ - if(ass.check == true){ - integer overdueSum = 0; - if (pandianoverdueCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) { - overdueSum = pandianoverdueCountMap.get(ass.Prod.Id + ass.boxPiece); - } - ass.Diff = ass.countid - ass.Pandian - overdueSum; - } - } - } + Integer startIdx; + Integer endIdx; + List<ConsumableorderdetailsInfo> pageCodeRecords = new List<ConsumableorderdetailsInfo>(); + startIdx = pageToken; + endIdx = startIdx + pageSize; + if (endIdx > codPageRecords.size()) { + endIdx = codPageRecords.size(); + } + for (Integer i = startIdx; i < endIdx; i++) { + pageCodeRecords.add(codPageRecords.get(i)); + } + data.put('paginatedAccounts', paginatedAccounts); + data.put('pageCodeRecords', pageCodeRecords); - //瀵诲洖鍋氭垚 - for(ConsumableorderdetailsInfo ass :consumableorderdetailsRecords){ - for(ConsumableorderdetailsInfo adjust :consumableorderdetailsRecordsAdjust){ - if(ass.Prod.Name__c == adjust.Prod.Name__c && ass.boxPiece == adjust.orderdetails2.Box_Piece__c){ - if(reFindProduct.containsKey(adjust.orderdetails2.Bar_Code_search__c)){ - continue; - }else { - ass.Pandian ++; - ass.refind ++; - reFindProduct.put(adjust.orderdetails2.Bar_Code_search__c,adjust.orderdetails2.Bar_Code_search__c); - } - } - } - } - if (pandiandetailsMap.keySet().size() > 0) { - List<Consumable_order_details2__c> showcod2 = [select Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c - FROM Consumable_order_details2__c - WHERE Id in :pandiandetailsMap.keySet() - order by Name]; - initStandardController(); - showcod2nid = cod2s(); + //end + data.put('codPageRecords', JSON.serialize(codPageRecords)); + data.put( + 'consumableorderdetailsRecords', + JSON.serialize(consumableorderdetailsRecords) + ); + data.put( + 'consumableorderdetailsRecordsview', + JSON.serialize(consumableorderdetailsRecordsview) + ); + data.put('pandiandetailsMap', pandiandetailsMap); + System.debug('iSinventory===>' + iSinventory); + System.debug('codPageRecords===>' + codPageRecords); + data.put('iSinventory', JSON.serialize(iSinventory)); + data.put('reSet1', reSet1); + System.debug('reSet1===>' + reSet1); + res.code = 200; + res.status = 'Success1'; - } - for (Consumable_order_details2__c cod2 : showcod2nid) { - codPageRecords.add(new ConsumableorderdetailsInfo(cod2,pandiandetailsMap.get(cod2.Id))); - } - if(codPageRecords.size() > 0) done = true; - iSinventory = true; - consumableorderdetailsRecordserrordummy.clear(); - pandiandetailsList = [select Id, Bar_Code__c,Consumable_Product__r.Name__c, - Box_Piece__c,Lose_reason__c - FROM Consumable_order_details2__c - WHERE Id in :pandiandetailsMap.keySet() - order by Name]; - for(Consumable_order_details2__c codDet : pandiandetailsList){ - codDet.Lose_reason__c = pandiandetailsMap.get(codDet.Id); - } - List<Consumable_order_details2__c> pandiandetailsListMid = new List<Consumable_order_details2__c>(); - for(Consumable_order_details2__c cod2 : pandiandetailsList){ - pandiandetailsListMid.add(cod2); - if(pandiandetailsListMid.size() == 1000){ - pandiandetailsListShow.add(pandiandetailsListMid); - pandiandetailsListMid = new List<Consumable_order_details2__c>(); - } - } - if(pandiandetailsListMid.size() > 0){ - pandiandetailsListShow.add(pandiandetailsListMid); - } - //鍒嗛〉 - PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); - totalCount = codPageRecords.size(); - paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; - paginatedAccounts.recordStart = pageToken + 1; - paginatedAccounts.pageNumber = pageToken / pageSize + 1; - Integer recordEnd = pageSize * paginatedAccounts.pageNumber; - paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; - paginatedAccounts.totalRecords = totalCount; - - Integer startIdx; - Integer endIdx; - List<ConsumableorderdetailsInfo> pageCodeRecords = new List<ConsumableorderdetailsInfo>(); - startIdx = pageToken; - endIdx = startIdx + pageSize; - if (endIdx > codPageRecords.size()) { - endIdx = codPageRecords.size(); - } - for (Integer i = startIdx; i < endIdx; i++) { - pageCodeRecords.add(codPageRecords.get(i)); - } - - data.put('paginatedAccounts', paginatedAccounts); - data.put('pageCodeRecords', pageCodeRecords); - - //end - - System.debug('=====>codPageRecords2'+codPageRecords); - System.debug('=====>consumableorderdetailsRecords'+consumableorderdetailsRecords); - data.put('codPageRecords',JSON.serialize(codPageRecords)); - data.put('consumableorderdetailsRecords',JSON.serialize(consumableorderdetailsRecords)); - System.debug('iSinventory===>'+iSinventory); - data.put('iSinventory',JSON.serialize(iSinventory)); - System.debug('pandiandetailsMap===>'+pandiandetailsMap); - data.put('pandiandetailsMap',pandiandetailsMap); - data.put('reSet',reSet); - data.put('consumableorderdetailsRecordsview',JSON.serialize(consumableorderdetailsRecordsview)); - System.debug('=====>consumableorderdetailsRecordsview'+consumableorderdetailsRecordsview); - res.code = 200; - res.status = 'Sucess'; - return res; + return res; } - - // 淇濆瓨鎸夐挳 + + //CHAN-B7J4NB 鍙湁涓�涓椂锛岀洏鐐逛笉鍒� + //init(); + //CHAN-B7J4NB + Map<String, String> showproductIdMap = new Map<String, String>(); + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + showproductIdMap.put( + ass.prod.Id + ass.boxPiece, + ass.prod.Id + ass.boxPiece + ); + } + // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCodeListP' + BarCodeListP)); + /***************************************************************************/ + // BarCode鐨勬绱� 鎵�鏈夊湪搴� + reSet = [ + SELECT + Id, + Consumable_Product__c, + Consumable_Product__r.Name__c, + Box_Piece__c, + Bar_Code_search__c, + Isoverdue__c + FROM Consumable_order_details2__c + WHERE + Bar_Code_search__c IN :BarCodeListP + AND Dealer_Arrive__c = TRUE + AND Dealer_Shipment__c = FALSE + AND Dealer_Saled__c = FALSE + AND Dealer_Returned__c = FALSE + AND Lose_Flag__c = FALSE + AND Cancellation_Date__c = NULL + AND Bar_Code__c != NULL + AND Product_Type__c LIKE :sqlagencyProType + AND Arrive_Owner_Work_Location__c = :userWorkLocation + AND Dealer_Info_text__c = :accountName + ORDER BY Name + ]; + System.debug('reSet===>' + reSet); + Map<String, Integer> pandianProdIdCountMap = new Map<String, Integer>(); // ProdId 鍗樹綅 + // 20200509 add gzw 璁板綍闇�瑕侀攢瀛樻暟閲� + Map<String, Integer> pandianoverdueCountMap = new Map<String, Integer>(); // ProdId 鍗樹綅 + // 20200509 add gzw 璁板綍闇�瑕侀攢瀛樻暟閲� + Map<String, ConsumableorderdetailsInfo> barCodeListPandianMap = new Map<String, ConsumableorderdetailsInfo>(); // 鏄庣窗銉愩兗銈炽兗銉� 鍗樹綅 + //鐩樼偣鍒扮殑鏄庣粏 + for (Consumable_order_details2__c rs : reSet) { + //BarCodeListPandian.add(rs.Bar_Code_search__c); + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + if ( + rs.Consumable_Product__c == ass.Prod.Id && + rs.Box_Piece__c == ass.boxPiece + ) { + ass.check = true; + } + } + + barCodeListPandianMap.put( + rs.Bar_Code_search__c, + new ConsumableorderdetailsInfo(rs) + ); + if (rs.Isoverdue__c == 0) { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo(rs, '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��') + ); + pandiandetailsMap.put(rs.Id, '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��'); + if ( + pandianoverdueCountMap.containsKey( + rs.Consumable_product__c + rs.Box_Piece__c + ) == false + ) { + pandianoverdueCountMap.put( + rs.Consumable_Product__c + rs.Box_Piece__c, + 1 + ); + } else { + pandianoverdueCountMap.put( + rs.Consumable_Product__c + rs.Box_Piece__c, + pandianoverdueCountMap.get( + rs.Consumable_Product__c + rs.Box_Piece__c + ) + 1 + ); + } + continue; + } + if ( + pandianProdIdCountMap.containsKey( + rs.Consumable_product__c + rs.Box_Piece__c + ) == false + ) { + pandianProdIdCountMap.put( + rs.Consumable_Product__c + rs.Box_Piece__c, + 1 + ); + } else { + pandianProdIdCountMap.put( + rs.Consumable_Product__c + rs.Box_Piece__c, + pandianProdIdCountMap.get( + rs.Consumable_Product__c + rs.Box_Piece__c + ) + 1 + ); + } + } + + // 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣 + List<Consumable_order_details2__c> reSet1 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Dealer_Shipment__c, + Dealer_Saled__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Dealer_Arrive__c, + Bar_Code_search__c, + Dealer_Info_text__c + FROM Consumable_order_details2__c + WHERE + (Dealer_Arrive__c = TRUE + OR Dealer_Shipment__c = TRUE + OR Dealer_Saled__c = TRUE) + AND Dealer_Returned__c = FALSE + AND Cancellation_Flag__c = FALSE + AND Bar_Code_search__c IN :BarCodeListP + AND (Dealer_Info_text__c != :accountName + OR (Dealer_Info_text__c = :accountName + AND Arrive_Owner_Work_Location__c != :userWorkLocation)) + ORDER BY Name + ]; + Map<String, Consumable_order_details2__c> otherAgProMap = new Map<String, Consumable_order_details2__c>(); + for (Consumable_order_details2__c cod2 : reSet1) { + otherAgProMap.put(cod2.Bar_Code__c, cod2); + } + // 闇�瑕佸叆搴撶殑浜у搧 + for (Consumable_order_details2__c cod2 : reSet1) { + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + if ( + cod2.Consumable_Product__c == ass.Prod.Id && + cod2.Box_Piece__c == ass.boxPiece + ) { + ass.check = true; + } + } + if ( + !showproductIdMap.containsKey( + cod2.Consumable_product__c + cod2.Box_Piece__c + ) + ) { + reFindProductList.add(cod2); + proIdNotinpage.put(cod2.Consumable_Product__c, cod2.Box_Piece__c); + } + if ( + !barCodeListPandianMap.containsKey(cod2.Bar_Code_search__c) && + otherAgProMap.containsKey(cod2.Bar_Code__c) && + (otherAgProMap.get(cod2.Bar_Code__c).Dealer_Saled__c == true || + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Shipment__c == true) + ) { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo(cod2, '鏃犳浜у搧鐨勫簱瀛橈紝璇峰叆搴撱��') + ); + pandiandetailsMap.put(cod2.Id, '鏃犳浜у搧鐨勫簱瀛橈紝璇峰叆搴撱��'); + } + } + //瀵诲洖鏄庣粏 + List<Consumable_order_details2__c> productAdjust = new List<Consumable_order_details2__c>(); + productAdjust = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Lose_reason__c, + Asset_Model_No__c, + Box_Piece__c, + Bar_Code_search__c, + Isoverdue__c + FROM Consumable_order_details2__c + WHERE + Bar_Code_search__c IN :BarCodeListP + AND Bar_Code__c != NULL + AND Lose_Flag__c = TRUE + AND Product_Type__c LIKE :sqlagencyProType + AND Dealer_Info_text__c = :accountName + AND Arrive_Owner_Work_Location__c = :userWorkLocation + ORDER BY Name + ]; + + for (Consumable_order_details2__c rs : productAdjust) { + // 杩囨湡搴撳瓨閿�瀛� 20200427 gzw add srart + if (rs.Isoverdue__c == 0 || rs.Lose_reason__c == '杩囨湡搴撳瓨閿�瀛�') { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo(rs, '杩囨湡鎴栬�呴攢瀛樹骇鍝侊紝鏃犳硶瀵诲洖鍏ュ簱') + ); + pandiandetailsMap.put(rs.Id, '杩囨湡鎴栬�呴攢瀛樹骇鍝侊紝鏃犳硶瀵诲洖鍏ュ簱'); + carCodeListLose.add(rs.Bar_Code_search__c); + continue; + } + // 杩囨湡搴撳瓨閿�瀛� 20200427 gzw add end + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + if ( + rs.Consumable_Product__c == ass.Prod.Id && + rs.Box_Piece__c == ass.boxPiece + ) { + ass.check = true; + } + } + if ( + !showproductIdMap.containsKey( + rs.Consumable_product__c + rs.Box_Piece__c + ) + ) { + reFindProductList.add(rs); + proIdNotinpage.put(rs.Consumable_Product__c, rs.Box_Piece__c); + } + if (barCodeListAdjustMap.containsKey(rs.Bar_Code_search__c)) { + continue; + } else { + barCodeListAdjustMap.put( + rs.Bar_Code_search__c, + new ConsumableorderdetailsInfo(rs) + ); + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo(rs, '瀵诲洖') + ); + pandiandetailsMap.put(rs.Id, '瀵诲洖'); + consumableorderdetailsRecordsAdjust.add( + new ConsumableorderdetailsInfo(rs) + ); + } + } + if (reFindProductList.size() > 0) { + Map<String, Product2__c> midMap = new Map<String, Product2__c>(); + List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>(); + Map<String, ConsumableorderdetailsInfo> newMidBoxMap = new Map<String, ConsumableorderdetailsInfo>(); + Map<String, ConsumableorderdetailsInfo> newMidPieceMap = new Map<String, ConsumableorderdetailsInfo>(); + List<Product2__c> product_Refind = [ + SELECT + Id, + Name, + Name__c, + SFDA_Status__c, + Packing_list_manual__c, + Asset_Model_No__c + FROM Product2__c + WHERE Id IN :proIdNotinpage.keySet() + ]; + for (Product2__c pro : product_Refind) { + midMap.put(pro.Id, pro); + } + for (Integer i = 0; i < reFindProductList.size(); i++) { + //鐒跺悗寰幆CountDel鍋欱ox鍜宲iece2涓猰ap + if ( + MidMap.containsKey(reFindProductList[i].Consumable_Product__c) && + reFindProductList[i].Box_Piece__c == '鐩�' + ) { + if ( + newMidBoxMap.containsKey( + reFindProductList[i].Consumable_Product__c + + reFindProductList[i].Box_Piece__c + ) + ) { + ConsumableorderdetailsInfo Jstage = newMidBoxMap.get( + reFindProductList[i].Consumable_Product__c + + reFindProductList[i].Box_Piece__c + ) + .clone(); + Jstage.countid = 0; + if (reFindProductList[i].Isoverdue__c == 1) { + Jstage.limitCount = 0; + } + Jstage.boxPiece = reFindProductList[i].Box_Piece__c; + newMidBoxMap.put( + reFindProductList[i].Consumable_Product__c + + reFindProductList[i].Box_Piece__c, + Jstage + ); + } else { + ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo( + MidMap.get(reFindProductList[i].Consumable_Product__c) + ); + Jstage.countid = 0; + if (reFindProductList[i].Isoverdue__c == 1) { + Jstage.limitCount = 0; + } + Jstage.boxPiece = reFindProductList[i].Box_Piece__c; + newMidBoxMap.put( + reFindProductList[i].Consumable_Product__c + + reFindProductList[i].Box_Piece__c, + Jstage + ); + } + } else if ( + MidMap.containsKey(reFindProductList[i].Consumable_Product__c) && + reFindProductList[i].Box_Piece__c == '涓�' + ) { + if ( + newMidPieceMap.containsKey( + reFindProductList[i].Consumable_Product__c + + reFindProductList[i].Box_Piece__c + ) + ) { + ConsumableorderdetailsInfo Jstage = newMidPieceMap.get( + reFindProductList[i].Consumable_product__c + + reFindProductList[i].Box_Piece__c + ) + .clone(); + Jstage.countid = 0; + if (reFindProductList[i].Isoverdue__c == 1) { + Jstage.limitCount = 0; + } + Jstage.boxPiece = reFindProductList[i].Box_Piece__c; + newMidPieceMap.put( + reFindProductList[i].Consumable_Product__c + + reFindProductList[i].Box_Piece__c, + Jstage + ); + } else { + ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo( + MidMap.get(reFindProductList[i].Consumable_Product__c) + ); + Jstage.countid = 0; + if (reFindProductList[i].Isoverdue__c == 1) { + Jstage.limitCount = 0; + } + Jstage.boxPiece = reFindProductList[i].Box_Piece__c; + newMidPieceMap.put( + reFindProductList[i].Consumable_Product__c + + reFindProductList[i].Box_Piece__c, + Jstage + ); + } + } + } + for (ConsumableorderdetailsInfo bss : newMidBoxMap.values()) { + bss.check = true; + bss.overlimitCount = bss.countid - bss.limitCount; + boxRecords.add(bss); + } + boxRecords.sort(); + for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { + bss.check = true; + bss.overlimitCount = bss.countid - bss.limitCount; + } + for (ConsumableorderdetailsInfo bss : boxRecords) { + consumableorderdetailsRecords.add(bss); + if (newMidPieceMap.containsKey(bss.Prod.Id + '涓�')) { + consumableorderdetailsRecords.add( + newMidPieceMap.get(bss.Prod.Id + '涓�') + ); + //newMidPieceMap绉婚櫎宸茬粡娣诲姞鐨凱iece + newMidPieceMap.remove(bss.Prod.Id + '涓�'); + } + } + for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { + consumableorderdetailsRecords.add( + newMidPieceMap.get(bss.Prod.Id + '涓�') + ); + } + } + + //鍏堝彇鍑烘湭鐩樼偣鍒扮殑浜у搧 + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + if (ass.check == true) { + for (integer i = 0; i < ProductCount_Res.size(); i++) { + if ( + ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && + ass.boxPiece == ProductCount_Res[i].Box_Piece__c + ) { + if ( + barCodeListPandianMap.get( + ProductCount_Res[i].Bar_Code_search__c + ) != null + ) { + continue; + } else { + carCodeListLose.add(ProductCount_Res[i].Bar_Code__c); + ////barCodeListLoseMap.put(ProductCount_Res[i].Id, new ConsumableorderdetailsInfo(ProductCount_Res[i])); + //consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け')); + //pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け'); + } + } + } + } + } + //宸茬粡鍑哄簱鐨勪骇鍝� + List<Consumable_order_details2__c> reSet2 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c, + Dealer_Info_text__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND (Dealer_Shipment__c = TRUE + OR Dealer_Saled__c = TRUE) + AND Dealer_Returned__c = FALSE + AND Cancellation_Flag__c = FALSE + AND Bar_Code_search__c IN :BarCodeListP + AND Dealer_Info_text__c = :accountName + ORDER BY Name + ]; + Map<String, Consumable_order_details2__c> needreturnMap = new Map<String, Consumable_order_details2__c>(); + for (Consumable_order_details2__c cod2 : reSet2) { + needreturnMap.put(cod2.Bar_Code__c, cod2); + } + //// 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣 + //List<Consumable_order_details2__c> reSet1 = [SELECT Id, Name,Consumable_Product__c, + // Bar_Code__c,Consumable_Product__r.Name__c,Dealer_Shipment__c,Dealer_Saled__c, + // Asset_Model_No__c,Isoverdue__c,Box_Piece__c,Dealer_Arrive__c, + // Bar_Code_search__c,Dealer_Info_text__c + // FROM Consumable_order_details2__c + // WHERE (Dealer_Arrive__c = TRUE + // or Dealer_Shipment__c= TRUE + // or Dealer_Saled__c = TRUE) + // AND Dealer_Returned__c = FALSE + // AND Cancellation_Flag__c = FALSE + // AND Bar_Code_search__c in :BarCodeListP + // AND (Dealer_Info_text__c != :accountName + // OR (Dealer_Info_text__c = :accountName + // AND Arrive_Owner_Work_Location__c != :userWorkLocation) + // ) + // ORDER BY Name ]; + //Map<String,Consumable_order_details2__c> otherAgProMap = new Map<String,Consumable_order_details2__c>(); + //for(Consumable_order_details2__c cod2 :reSet1){ + // otherAgProMap.put(cod2.Bar_Code__c,cod2); + //} + carCodeListLose.clear(); + //鏈洏鐐瑰埌鐨勪骇鍝� + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + if (ass.check == true) { + for (integer i = 0; i < ProductCount_Res.size(); i++) { + if ( + ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && + ass.boxPiece == ProductCount_Res[i].Box_Piece__c + ) { + if ( + barCodeListPandianMap.containsKey( + ProductCount_Res[i].Bar_Code_search__c + ) + ) { + continue; + } + if (ProductCount_Res[i].Isoverdue__c == 0) { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo( + ProductCount_Res[i], + '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��' + ) + ); + pandiandetailsMap.put( + ProductCount_Res[i].Id, + '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��' + ); + if ( + pandianoverdueCountMap.containsKey( + ProductCount_Res[i].Consumable_product__c + + ProductCount_Res[i].Box_Piece__c + ) == false + ) { + pandianoverdueCountMap.put( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c, + 1 + ); + } else { + pandianoverdueCountMap.put( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c, + pandianoverdueCountMap.get( + ProductCount_Res[i].Consumable_Product__c + + ProductCount_Res[i].Box_Piece__c + ) + 1 + ); + } + continue; + } + + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo(ProductCount_Res[i], '涓㈠け') + ); + pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け'); + } + } + // 鍚屾椂瀛樺湪鍏朵粬缁忛攢鍟嗗簱瀛樹骇鍝� + for (Consumable_order_details2__c cod2 : reSet1) { + if ( + cod2.Consumable_Product__c == ass.Prod.Id && + ass.boxPiece == cod2.Box_Piece__c + ) { + if ( + barCodeListPandianMap.containsKey(cod2.Bar_Code_search__c) && + otherAgProMap.containsKey(cod2.Bar_Code__c) && + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Saled__c == false && + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Shipment__c == false + ) { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo( + cod2, + '璇ヤ骇鍝佸綊灞炰簬' + + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Info_text__c + + '鐨勫簱瀛樸��' + ) + ); + pandiandetailsMap.put( + cod2.Id, + '璇ヤ骇鍝佸綊灞炰簬' + + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Info_text__c + + '鐨勫簱瀛樸��' + ); + continue; + } + } + } + // 闇�瑕佽繑鍝佺殑浜у搧 + for (Consumable_order_details2__c cod2 : reSet2) { + if ( + cod2.Consumable_Product__c == ass.Prod.Id && + ass.boxPiece == cod2.Box_Piece__c + ) { + if (needreturnMap.containsKey(cod2.Bar_Code__c)) { + consumableorderdetailsRecordserrordummy.add( + new ConsumableorderdetailsInfo( + cod2, + '璇ヤ骇鍝佺洰鍓嶅嚭搴撶姸鎬侊紝璇疯繑鍝併��' + ) + ); + pandiandetailsMap.put(cod2.Id, '璇ヤ骇鍝佺洰鍓嶅嚭搴撶姸鎬侊紝璇疯繑鍝併��'); + continue; + } + } + } + } + } + + //鏇存柊涓绘槑缁嗗崟 + if (barCodeListPandianMap.size() > 0) { + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + if (ass.check == true) { + integer countSum = 0; + if (pandianProdIdCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) { + countSum = pandianProdIdCountMap.get(ass.Prod.Id + ass.boxPiece); + } + integer overdueSum = 0; + if (pandianoverdueCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) { + overdueSum = pandianoverdueCountMap.get(ass.Prod.Id + ass.boxPiece); + } + ass.Pandian = countSum; + ass.Diff = ass.countid - countSum - overdueSum; + ass.refind = 0; + } + } + } else { + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + if (ass.check == true) { + integer overdueSum = 0; + if (pandianoverdueCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) { + overdueSum = pandianoverdueCountMap.get(ass.Prod.Id + ass.boxPiece); + } + ass.Diff = ass.countid - ass.Pandian - overdueSum; + } + } + } + + //瀵诲洖鍋氭垚 + for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { + for ( + ConsumableorderdetailsInfo adjust : consumableorderdetailsRecordsAdjust + ) { + if ( + ass.Prod.Name__c == adjust.Prod.Name__c && + ass.boxPiece == adjust.orderdetails2.Box_Piece__c + ) { + if ( + reFindProduct.containsKey(adjust.orderdetails2.Bar_Code_search__c) + ) { + continue; + } else { + ass.Pandian++; + ass.refind++; + reFindProduct.put( + adjust.orderdetails2.Bar_Code_search__c, + adjust.orderdetails2.Bar_Code_search__c + ); + } + } + } + } + if (pandiandetailsMap.keySet().size() > 0) { + List<Consumable_order_details2__c> showcod2 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c + FROM Consumable_order_details2__c + WHERE Id IN :pandiandetailsMap.keySet() + ORDER BY Name + ]; + initStandardController(); + showcod2nid = cod2s(); + } + for (Consumable_order_details2__c cod2 : showcod2nid) { + codPageRecords.add( + new ConsumableorderdetailsInfo(cod2, pandiandetailsMap.get(cod2.Id)) + ); + } + if (codPageRecords.size() > 0) + done = true; + iSinventory = true; + consumableorderdetailsRecordserrordummy.clear(); + pandiandetailsList = [ + SELECT + Id, + Bar_Code__c, + Consumable_Product__r.Name__c, + Box_Piece__c, + Lose_reason__c + FROM Consumable_order_details2__c + WHERE Id IN :pandiandetailsMap.keySet() + ORDER BY Name + ]; + for (Consumable_order_details2__c codDet : pandiandetailsList) { + codDet.Lose_reason__c = pandiandetailsMap.get(codDet.Id); + } + List<Consumable_order_details2__c> pandiandetailsListMid = new List<Consumable_order_details2__c>(); + for (Consumable_order_details2__c cod2 : pandiandetailsList) { + pandiandetailsListMid.add(cod2); + if (pandiandetailsListMid.size() == 1000) { + pandiandetailsListShow.add(pandiandetailsListMid); + pandiandetailsListMid = new List<Consumable_order_details2__c>(); + } + } + if (pandiandetailsListMid.size() > 0) { + pandiandetailsListShow.add(pandiandetailsListMid); + } + //鍒嗛〉 + PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); + totalCount = codPageRecords.size(); + paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) + ? pageToken + pageSize + : null; + paginatedAccounts.recordStart = pageToken + 1; + paginatedAccounts.pageNumber = pageToken / pageSize + 1; + Integer recordEnd = pageSize * paginatedAccounts.pageNumber; + paginatedAccounts.recordEnd = totalCount >= recordEnd + ? recordEnd + : totalCount; + paginatedAccounts.totalRecords = totalCount; + + Integer startIdx; + Integer endIdx; + List<ConsumableorderdetailsInfo> pageCodeRecords = new List<ConsumableorderdetailsInfo>(); + startIdx = pageToken; + endIdx = startIdx + pageSize; + if (endIdx > codPageRecords.size()) { + endIdx = codPageRecords.size(); + } + for (Integer i = startIdx; i < endIdx; i++) { + pageCodeRecords.add(codPageRecords.get(i)); + } + + data.put('paginatedAccounts', paginatedAccounts); + data.put('pageCodeRecords', pageCodeRecords); + + //end + + System.debug('=====>codPageRecords2' + codPageRecords); + System.debug( + '=====>consumableorderdetailsRecords' + consumableorderdetailsRecords + ); + data.put('codPageRecords', JSON.serialize(codPageRecords)); + data.put( + 'consumableorderdetailsRecords', + JSON.serialize(consumableorderdetailsRecords) + ); + System.debug('iSinventory===>' + iSinventory); + data.put('iSinventory', JSON.serialize(iSinventory)); + System.debug('pandiandetailsMap===>' + pandiandetailsMap); + data.put('pandiandetailsMap', pandiandetailsMap); + data.put('reSet', reSet); + data.put( + 'consumableorderdetailsRecordsview', + JSON.serialize(consumableorderdetailsRecordsview) + ); + System.debug( + '=====>consumableorderdetailsRecordsview' + + consumableorderdetailsRecordsview + ); + res.code = 200; + res.status = 'Sucess'; + return res; + } + + // 淇濆瓨鎸夐挳 + @AuraEnabled + public static ResponseBodyLWC save( + Boolean iSinventory, + String consumableorderdetailsRecordsLWC, + String accountid, + String agencyProType, + Map<Id, String> pandiandetailsMap, + List<Consumable_order_details2__c> reSet + ) { + List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = (List<ConsumableorderdetailsInfo>) JSON.deserialize( + consumableorderdetailsRecordsLWC, + List<ConsumableorderdetailsInfo>.class + ); + agencyProType = agencyProType; + accountid = accountid; + pandiandetailsMap = pandiandetailsMap; + reSet = reSet; + System.debug('pandiandetailsMap===>' + pandiandetailsMap); + + ResponseBodyLWC res = new ResponseBodyLWC(); + Map<String, object> data = new Map<String, object>(); + res.entity = data; + // 璺宠繃鏄庣粏2涓嶅繀瑕佹洿鏂� + StaticParameter.EscapeConsumableOrderDetail2Trigger = true; + if (!iSinventory) { + return new ResponseBodyLWC('Error', 500, '璇峰厛褰曞叆BarCode', ''); + // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇峰厛鐐广�怋arCode褰曞叆銆�')); + // return null; + } + integer Lo = 0; + for (ConsumableorderdetailsInfo header : consumableorderdetailsRecords) { + if (header.check == true) { + Lo++; + } + } + if (Lo == 0) { + iSinventory = false; + // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇烽�夋嫨瑕佺洏鐐圭殑鏄庣粏')); + // return null; + return new ResponseBodyLWC('Error', 500, '璇烽�夋嫨瑕佺洏鐐圭殑鏄庣粏', ''); + } + for (ConsumableorderdetailsInfo header : consumableorderdetailsRecords) { + if (header.check == true) { + //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, header.prod.Name__c + ' '+header.prod.Name__c)); + //return null; + if ( + (header.DiffReason == '' || header.DiffReason == null) && + header.Diff > 0 + ) { + return new ResponseBodyLWC( + 'Error', + 500, + header.prod.Name__c + '璇疯緭鍏ュ樊寮傚師鍥�', + '' + ); + // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, header.prod.Name__c + '璇疯緭鍏ュ樊寮傚師鍥�')); + // return null; + } else if ( + (header.DiffReason != '' && header.DiffReason != null) && + header.Diff == 0 + ) { + // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '鏃犱涪澶变骇鍝侊紝涓嶉渶瑕佸~鍐欏樊寮傚師鍥�')); + // return null; + return new ResponseBodyLWC( + 'Error', + 500, + header.prod.Name__c + '鏃犱涪澶变骇鍝侊紝涓嶉渶瑕佸~鍐欏樊寮傚師鍥�', + '' + ); + } + } + } + Integer orderDetNo = 1; + Savepoint sp = Database.setSavepoint(); + Consumable_order__c Po = new Consumable_order__c(); + Po.Name = '*'; + Po.Order_status__c = '鎵瑰噯'; + Po.Inventory_date__c = Date.today(); + Po.Order_type__c = '鐩樼偣'; + Po.Dealer_Info__c = accountid; + Po.Order_ProType__c = agencyProType; + Po.RecordTypeid = System.Label.RT_ConOrder_Inventory; + try { + insert Po; + eSetId = Po.id; + List<Consumable_order__c> Consumable_order = [ + SELECT Name + FROM Consumable_order__c + WHERE id = :Po.id + ]; + List<Consumable_orderdetails__c> InsList = new List<Consumable_orderdetails__c>(); + List<Consumable_order_details2__c> InsListUp = new List<Consumable_order_details2__c>(); + List<Consumable_order_details2__c> updListAdjust = new List<Consumable_order_details2__c>(); + Map<String, String> ErrorName = new Map<String, String>(); + Map<String, Boolean> CheckTF = new Map<String, Boolean>(); + for (ConsumableorderdetailsInfo header : consumableorderdetailsRecords) { + if (header.check == true) { + Consumable_orderdetails__c insPan = new Consumable_orderdetails__c(); + insPan = new Consumable_orderdetails__c(); + String str = string.valueOf(orderDetNo); + if (str.length() == 1) { + str = '0' + str; + } + insPan.Name = Consumable_order[0].Name + '-' + str; + insPan.Consumable_Product__c = header.ProdId; + ErrorName.put(insPan.Consumable_Product__c, header.DiffReason); + CheckTF.put(insPan.Consumable_product__c, true); + insPan.Consumable_order__c = Po.Id; + insPan.Lose_reason__c = header.DiffReason; + insPan.Diff__c = header.Diff; + insPan.Product_Refind__c = header.refind; + insPan.inventory_sum__c = header.Pandian; + insPan.Count_Sum__c = header.countid; + insPan.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory; + orderDetNo++; + InsList.add(insPan); + } + } + if (InsList.size() > 0) { + insert InsList; + } + List<Consumable_order_details2__c> showcod2 = [ + SELECT + Id, + Name, + Consumable_Product__c, + Bar_Code__c, + Consumable_Product__r.Name__c, + Asset_Model_No__c, + Isoverdue__c, + Box_Piece__c, + Bar_Code_search__c + FROM Consumable_order_details2__c + WHERE Id IN :pandiandetailsMap.keySet() + ORDER BY Name + ]; + for (Consumable_order_details2__c cod : showcod2) { + Consumable_order_details2__c InsDetail = new Consumable_order_details2__c(); + InsDetail.Id = cod.Id; + InsDetail.Consumable_Inventory_order__c = po.Id; + InsDetail.Inventory_date__c = Date.today(); + // 20210224 gzw CHAN-BXF3PG start + // if(pandiandetailsMap.get(cod.Id) == '涓㈠け' ){ + if ( + pandiandetailsMap.get(cod.Id) == '涓㈠け' && + CheckTF.containsKey(cod.Consumable_product__c) + ) { + // 20210224 gzw CHAN-BXF3PG end + InsDetail.Lose_reason__c = ErrorName.get(cod.Consumable_product__c); + InsDetail.Lose_Flag__c = true; + } else if (pandiandetailsMap.get(cod.Id) == '瀵诲洖') { + InsDetail.Lose_reason__c = ''; + InsDetail.Lose_Flag__c = false; + } else { + continue; + } + InsListUp.add(InsDetail); + } + for (Consumable_order_details2__c rs : reSet) { + rs.Inventory_date__c = Date.today(); + } + if (reSet.size() > 0) { + update reSet; + } + if (InsListUp.size() > 0) { + ControllerUtil.updateOrderDetailsSatus(InsListUp); // Commented By DTT - Li Jun for testing 20230407 + } + } catch (Exception e) { + Database.rollback(sp); + // ApexPages.addMessages(ex); + return new ResponseBodyLWC( + 'Error', + 500, + e.getMessage() + e.getLineNumber(), + '' + ); + // return null; + } + // FIXME impliment BarCodeListAdjust + /************************************************************************************************/ + // return ProS(); + data.put('eSetId', eSetId); + data.put('InsListUp', InsListUp); + res.status = 'Success'; + res.code = 200; + System.debug('res = ' + res); + return res; + } + + //鐩樼偣涓�瑙� + public PageReference ProS() { + // 杩斿洖鐩樼偣涓�瑙� + PageReference ref = new Pagereference( + '/apex/InventoryList?eSetId=' + eSetId + ); + ref.setRedirect(true); + return ref; + } + //CSV鍑哄姏 + public PageReference doClick() { + Pagereference pr = page.InventoryCSV; + return pr; + } + //鍒嗛〉Bean + public class PaginatedAccounts { @AuraEnabled - public static ResponseBodyLWC save(Boolean iSinventory,String consumableorderdetailsRecordsLWC,String accountid,String agencyProType,Map<Id,String> pandiandetailsMap,List<Consumable_order_details2__c> reSet) { - List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = (List<ConsumableorderdetailsInfo>)JSON.deserialize(consumableorderdetailsRecordsLWC,List<ConsumableorderdetailsInfo>.class); - agencyProType = agencyProType; - accountid =accountid; - pandiandetailsMap = pandiandetailsMap; - reSet =reSet; - System.debug('pandiandetailsMap===>'+pandiandetailsMap); + public Integer nextPageToken; + @AuraEnabled + public Integer pageNumber { get; set; } + @AuraEnabled + public Integer totalRecords { get; set; } + @AuraEnabled + public Integer recordStart { get; set; } + @AuraEnabled + public Integer recordEnd { get; set; } + } - ResponseBodyLWC res = new ResponseBodyLWC(); - Map<String, object> data = new Map<String, object>(); - res.entity = data; - // 璺宠繃鏄庣粏2涓嶅繀瑕佹洿鏂� - StaticParameter.EscapeConsumableOrderDetail2Trigger = true; - if(!iSinventory){ - return new ResponseBodyLWC('Error',500, '璇峰厛褰曞叆BarCode', ''); - // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇峰厛鐐广�怋arCode褰曞叆銆�')); - // return null; - } - integer Lo = 0; - for(ConsumableorderdetailsInfo header : consumableorderdetailsRecords){ - if(header.check==true){ - Lo++; - } - } - if(Lo == 0){ - iSinventory = false; - // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇烽�夋嫨瑕佺洏鐐圭殑鏄庣粏')); - // return null; - return new ResponseBodyLWC('Error',500, '璇烽�夋嫨瑕佺洏鐐圭殑鏄庣粏', ''); - } - for(ConsumableorderdetailsInfo header : consumableorderdetailsRecords){ - if(header.check==true){ - //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, header.prod.Name__c + ' '+header.prod.Name__c)); - //return null; - if((header.DiffReason == ''||header.DiffReason ==null)&&header.Diff>0){ - return new ResponseBodyLWC('Error',500, header.prod.Name__c + '璇疯緭鍏ュ樊寮傚師鍥�', ''); - // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, header.prod.Name__c + '璇疯緭鍏ュ樊寮傚師鍥�')); - // return null; - }else if ((header.DiffReason != ''&&header.DiffReason !=null)&&header.Diff==0){ - // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '鏃犱涪澶变骇鍝侊紝涓嶉渶瑕佸~鍐欏樊寮傚師鍥�')); - // return null; - return new ResponseBodyLWC('Error',500, header.prod.Name__c + '鏃犱涪澶变骇鍝侊紝涓嶉渶瑕佸~鍐欏樊寮傚師鍥�', ''); - } - } - } - Integer orderDetNo = 1; - Savepoint sp = Database.setSavepoint(); - Consumable_order__c Po = new Consumable_order__c(); - Po.Name ='*'; - Po.Order_status__c = '鎵瑰噯'; - Po.Inventory_date__c = Date.today(); - Po.Order_type__c = '鐩樼偣'; - Po.Dealer_Info__c = accountid; - Po.Order_ProType__c = agencyProType; - Po.RecordTypeid = System.Label.RT_ConOrder_Inventory; - try{ - insert Po; - eSetId = Po.id; - List<Consumable_order__c> Consumable_order = [SELECT Name FROM Consumable_order__c WHERE id =:Po.id]; - List<Consumable_orderdetails__c> InsList = New List<Consumable_orderdetails__c>(); - List<Consumable_order_details2__c> InsListUp = New List<Consumable_order_details2__c>(); - List<Consumable_order_details2__c> updListAdjust = New List<Consumable_order_details2__c>(); - Map<String,String> ErrorName = new Map<String,String>(); - Map<String,Boolean> CheckTF = new Map<String,Boolean>(); - for(ConsumableorderdetailsInfo header : consumableorderdetailsRecords){ - if(header.check==true){ - Consumable_orderdetails__c insPan = new Consumable_orderdetails__c(); - insPan = new Consumable_orderdetails__c(); - String str = string.valueOf(orderDetNo); - if(str.length() == 1){ - str = '0' + str; - } - insPan.Name = Consumable_order[0].Name + '-'+ str; - insPan.Consumable_Product__c = header.ProdId; - ErrorName.put(insPan.Consumable_Product__c,header.DiffReason); - CheckTF.put(insPan.Consumable_product__c,true); - insPan.Consumable_order__c = Po.Id; - insPan.Lose_reason__c = header.DiffReason; - insPan.Diff__c = header.Diff; - insPan.Product_Refind__c = header.refind; - insPan.inventory_sum__c = header.Pandian; - insPan.Count_Sum__c = header.countid; - insPan.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory; - orderDetNo ++; - InsList.add(insPan); - } - } - if(InsList.size()>0){ - insert InsList; - } - List<Consumable_order_details2__c> showcod2 = [select Id, Name,Consumable_Product__c, - Bar_Code__c,Consumable_Product__r.Name__c, - Asset_Model_No__c,Isoverdue__c,Box_Piece__c, - Bar_Code_search__c - FROM Consumable_order_details2__c - WHERE Id in :pandiandetailsMap.keySet() - order by Name]; - for(Consumable_order_details2__c cod : showcod2){ - Consumable_order_details2__c InsDetail = new Consumable_order_details2__c(); - InsDetail.Id =cod.Id; - InsDetail.Consumable_Inventory_order__c = po.Id; - InsDetail.Inventory_date__c = Date.today(); - // 20210224 gzw CHAN-BXF3PG start - // if(pandiandetailsMap.get(cod.Id) == '涓㈠け' ){ - if(pandiandetailsMap.get(cod.Id) == '涓㈠け' && CheckTF.containsKey(cod.Consumable_product__c)){ - // 20210224 gzw CHAN-BXF3PG end - InsDetail.Lose_reason__c = ErrorName.get(cod.Consumable_product__c); - InsDetail.Lose_Flag__c = true; - }else if(pandiandetailsMap.get(cod.Id) == '瀵诲洖' ){ - InsDetail.Lose_reason__c = ''; - InsDetail.Lose_Flag__c = false; - }else{ - continue; - } - InsListUp.add(InsDetail); - } - for(Consumable_order_details2__c rs : reSet){ - rs.Inventory_date__c = Date.today(); - } - if(reSet.size() > 0){ - update reSet; - } - if(InsListUp.size()>0){ - ControllerUtil.updateOrderDetailsSatus(InsListUp);// Commented By DTT - Li Jun for testing 20230407 - } - - }catch (Exception e) { - Database.rollback(sp); - // ApexPages.addMessages(ex); - return new ResponseBodyLWC('Error',500, e.getMessage()+e.getLineNumber(), ''); - // return null; - } - // FIXME impliment BarCodeListAdjust - /************************************************************************************************/ - // return ProS(); - data.put('eSetId',eSetId); - data.put('InsListUp',InsListUp); - res.status = 'Success'; - res.code = 200; - System.debug('res = ' + res); - return res; + // Data Bean + @TestVisible + class ConsumableorderdetailsInfo implements Comparable { + @AuraEnabled + public Boolean check { get; set; } + @AuraEnabled + public Consumable_orderdetails__c orderdetails1 { get; set; } + @AuraEnabled + public Consumable_order_details2__c orderdetails2 { get; set; } + @AuraEnabled + public Product2__c Prod { get; set; } + @AuraEnabled + public Decimal countid { get; set; } + @AuraEnabled + public String ProdId { get; set; } + @AuraEnabled + public Decimal Pandian { get; set; } + @AuraEnabled + public Decimal Diff { get; set; } + @AuraEnabled + public Decimal refind { get; set; } + @AuraEnabled + public String DiffReason { get; set; } + @AuraEnabled + public Boolean canSelect { get; set; } + @AuraEnabled + public Boolean sortBy { get; set; } + @AuraEnabled + public Decimal limitCount { get; set; } + @AuraEnabled + public Decimal overlimitCount { get; set; } + @AuraEnabled + public String boxPiece { get; set; } + public ConsumableorderdetailsInfo( + Consumable_order_details2__c e, + string str + ) { + orderdetails2 = e; + Prod = e.Consumable_Product__r; + //e.Lose_reason__c = str; + DiffReason = str; } - //鐩樼偣涓�瑙� - public PageReference ProS() { - // 杩斿洖鐩樼偣涓�瑙� - PageReference ref = new Pagereference('/apex/InventoryList?eSetId=' + eSetId); - ref.setRedirect(true); - return ref; + // 宸插瓨鍦ㄦ秷鑰楀搧鏄庣粏鐢� + public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { + check = false; + orderdetails2 = e; + Prod = e.Consumable_Product__r; + canSelect = true; } - //CSV鍑哄姏 - public PageReference doClick() { - Pagereference pr = page.InventoryCSV; - return pr; + public ConsumableorderdetailsInfo(Product2__c e) { + check = false; + //orderdetails1 = new Consumable_orderdetails__c(); + Prod = e; + canSelect = true; + ProdId = string.valueOf(e.id); + countid = 0; + Pandian = 0; + refind = 0; + Diff = 0; + limitCount = 0; + overlimitCount = 0; } - //鍒嗛〉Bean - public class PaginatedAccounts { - @AuraEnabled - public Integer nextPageToken; - @AuraEnabled - public Integer pageNumber { get; set; } - @AuraEnabled - public Integer totalRecords { get; set; } - @AuraEnabled - public Integer recordStart { get; set; } - @AuraEnabled - public Integer recordEnd { get; set; } + // 鎺掑簭 + public Integer compareTo(Object compareTo) { + ConsumableorderdetailsInfo compareToesd = (ConsumableorderdetailsInfo) compareTo; + Integer returnValue = 0; + if (countid > compareToesd.countid) { + returnValue = -1; + } else if (countid < compareToesd.countid) { + returnValue = 1; + } + return returnValue; } - - // Data Bean - class ConsumableorderdetailsInfo implements Comparable { - @AuraEnabled - public Boolean check { get; set; } - @AuraEnabled - public Consumable_orderdetails__c orderdetails1 { get; set; } - @AuraEnabled - public Consumable_order_details2__c orderdetails2 { get; set; } - @AuraEnabled - public Product2__c Prod { get; set; } - @AuraEnabled - public Decimal countid { get; set; } - @AuraEnabled - public String ProdId{get;set;} - @AuraEnabled - public Decimal Pandian { get; set; } - @AuraEnabled - public Decimal Diff { get; set; } - @AuraEnabled - public Decimal refind { get; set; } - @AuraEnabled - public String DiffReason { get; set; } - @AuraEnabled - public Boolean canSelect { get; set; } - @AuraEnabled - public Boolean sortBy { get; set; } - @AuraEnabled - public Decimal limitCount { get; set; } - @AuraEnabled - public Decimal overlimitCount { get; set; } - @AuraEnabled - public String boxPiece { get; set; } - public ConsumableorderdetailsInfo(Consumable_order_details2__c e,string str) { - - orderdetails2 = e; - Prod = e.Consumable_Product__r; - //e.Lose_reason__c = str; - DiffReason = str; - } - - // 宸插瓨鍦ㄦ秷鑰楀搧鏄庣粏鐢� - public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { - check = false; - orderdetails2 = e; - Prod = e.Consumable_Product__r; - canSelect = true; - } - public ConsumableorderdetailsInfo(Product2__c e) { - check = false; - //orderdetails1 = new Consumable_orderdetails__c(); - Prod = e; - canSelect = true; - ProdId = string.valueOf(e.id); - countid =0; - Pandian = 0; - refind = 0; - Diff = 0; - limitCount = 0; - overlimitCount = 0; - } - // 鎺掑簭 - public Integer compareTo(Object compareTo) { - ConsumableorderdetailsInfo compareToesd =(ConsumableorderdetailsInfo)compareTo; - Integer returnValue = 0; - if (countid > compareToesd.countid ) { - returnValue = -1; - } else if (countid < compareToesd.countid ) { - returnValue = 1; - } - return returnValue; - } - } -} \ No newline at end of file + } +} -- Gitblit v1.9.1