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 codPageRecords { get; set; } // 丢失和巡回的,画面显示用 public static ApexPages.StandardSetController setCon { get; set; } @AuraEnabled public static List setConDetails2 { get; set; } public static Map pandiandetailsMap = new Map(); /*****************検索用******************/ public static String barcode { get; set; } public static Boolean done { get; set; } /*****************画面表示Bean******************/ //页面主数据显示用 private static List consumableorderdetailsRecords; //盘点到的产品 public static List reSet = new List(); public static List showcod2nid = new List(); //public List pandiandetailsList { get; set; } public static List> pandiandetailsListShow { get; set; } //寻回明细 public static List consumableorderdetailsRecordserrordummy; // 丢失和巡回的,实际炒作用 @AuraEnabled public static List> consumableorderdetailsRecordsview { get; set; } // 产品单位的List public static List InsListUp = New List(); public static List consumableorderdetailsviewRecords; public static Integer consumableorderdetailsCount { get { return consumableorderdetailsRecords == null ? 0 : consumableorderdetailsRecords.size(); } } //list notexitlist = new list(); public static Map reFindProduct = new Map(); //排序用 // public static String sortKey; // public static String preSortKey; // public static Boolean sortOrderAsc; // public static String[] sortOrder; //private Set carCodeListLose = new Set(); //ProductCount_Res 有,BarCodeListP 没有 /*****************经销商ID******************/ private static String accountid = null; private static String accountName = null; // 盘点 ID private static String eSetId = ''; // 登录者工作地 private static String userWorkLocation; //经销商用户产品分类(ET、ENG) 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(); done = false; consumableorderdetailsRecordsview = new List>(); consumableorderdetailsRecordserrordummy = new List(); codPageRecords = new List(); //codPageRecordsShow = new List(); } private static void initStandardController(){ // init standard controller List 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 cod2s() { return setConDetails2; } //Changes the size of pagination public static PageReference refreshPageSize() { setCon.setPageSize(size); //showcod2nid = cod2s(); makepagerecords(); return null; } public static List makepagerecords() { showcod2nid = cod2s(); codPageRecords = new List(); 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 data = new Map(); res.entity = data; consumableorderdetailsRecordsview = new List>(); setConDetails2 = new List(); String url = '在库调整一览'; fileName = EncodingUtil.urlEncode(url, 'UTF-8'); List 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(); Map midMap = new Map(); List boxRecords = new List(); Map newMidBoxMap = new Map(); Map newMidPieceMap = new Map(); //DB202302357027 消耗品追溯系统无法正常使用——盘点页面操作即报错 fy start //开始制作表头数据 // List 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 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 消耗品追溯系统无法正常使用——盘点页面操作即报错 fy start //开始制作表头数据 Set Product2cIdSet = new Set(); for(Consumable_order_details2__c con_or_d2item: ProductCount_Res){ Product2cIdSet.add(con_or_d2item.Consumable_Product__c); } List 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 消耗品追溯系统无法正常使用——盘点页面操作即报错 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做Box和piece2个map 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移除已经添加的Piece 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 ConsumableorderdetailsRecordsbreak = new List(); List ConsumableorderdetailsRecordsbreakover = new List(); ConsumableorderdetailsInfo c = null; ConsumableorderdetailsRecordsbreak.clear(); ConsumableorderdetailsRecordsbreakover.clear(); consumableorderdetailsRecordsview.clear(); //选择产品view ConsumableorderdetailsRecordsbreak = new List(); ConsumableorderdetailsRecordsbreakover = new List(); 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去掉重复的,转换成List //========20160311======ADD_Start================================ public static List ParseBarCode(String Code){ Map barcodeCountMap = new Map(); String[] Cache = new String[]{}; Cache = Code.split('\n'); List Buff = new List(); 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 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 consumableorderdetailsRecords = (List)JSON.deserialize(consumableorderdetailsRecordsLWC,List.class); // ConsumableorderdetailsInfo[] consumableorderdetailsRecords=(List)JSON.deserialize(consumableorderdetailsRecordsLWC,List.class); system.debug('=====>consumableorderdetailsRecordsLWC'+consumableorderdetailsRecordsLWC); ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; sqlagencyProType = '%' + agencyProType + '%'; /* BarCodelist做成 */ //FIXME barcodeSet 做成,ProductCount_ResSet 做成 List pandiandetailsList = new List(); pandiandetailsListShow = new List>(); done = false; List BarCodeListP = ParseBarCode( barcode ); //查询库存 追加返品库存 List 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 barCodeListAdjustMap = new Map(); //barCodeListLoseMap.clear(); Set carCodeListLose = new Set(); List consumableorderdetailsRecordsAdjust = new List(); Map proIdNotinpage = new Map(); List reFindProductList = new List(); codPageRecords = new List(); consumableorderdetailsRecordserrordummy = new List(); List reFindProductaddtopage = new List(); pandiandetailsMap.clear(); reSet = new List(); /* 判断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 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 needreturnMap = new Map(); 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 otherAgProMap = new Map(); 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 showcod2 = new List(); 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(); 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 pandiandetailsListMid = new List(); for(Consumable_order_details2__c cod2 : pandiandetailsList){ pandiandetailsListMid.add(cod2); if(pandiandetailsListMid.size() == 1000){ pandiandetailsListShow.add(pandiandetailsListMid); pandiandetailsListMid = new List(); } } 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 pageCodeRecords = new List(); 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; } //CHAN-B7J4NB 只有一个时,盘点不到 //init(); //CHAN-B7J4NB Map showproductIdMap = new Map(); 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 pandianProdIdCountMap = new Map(); // ProdId 単位 // 20200509 add gzw 记录需要销存数量 Map pandianoverdueCountMap = new Map(); // ProdId 単位 // 20200509 add gzw 记录需要销存数量 Map barCodeListPandianMap = new Map(); // 明細バーコード 単位 //盘点到的明细 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 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 otherAgProMap = new Map(); 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 productAdjust = new List(); 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 midMap = new Map(); List boxRecords = new List(); Map newMidBoxMap = new Map(); Map newMidPieceMap = new Map(); List 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做Box和piece2个map 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移除已经添加的Piece 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 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 needreturnMap = new Map(); for(Consumable_order_details2__c cod2 :reSet2){ needreturnMap.put(cod2.Bar_Code__c,cod2); } //// 经销商之间或者同一经销商不同工作地调货 //List 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 otherAgProMap = new Map(); //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 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 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 pandiandetailsListMid = new List(); for(Consumable_order_details2__c cod2 : pandiandetailsList){ pandiandetailsListMid.add(cod2); if(pandiandetailsListMid.size() == 1000){ pandiandetailsListShow.add(pandiandetailsListMid); pandiandetailsListMid = new List(); } } 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 pageCodeRecords = new List(); 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 pandiandetailsMap,List reSet) { List consumableorderdetailsRecords = (List)JSON.deserialize(consumableorderdetailsRecordsLWC,List.class); agencyProType = agencyProType; accountid =accountid; pandiandetailsMap = pandiandetailsMap; reSet =reSet; System.debug('pandiandetailsMap===>'+pandiandetailsMap); ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; // 跳过明细2不必要更新 StaticParameter.EscapeConsumableOrderDetail2Trigger = true; if(!iSinventory){ return new ResponseBodyLWC('Error',500, '请先录入BarCode', ''); // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'请先点【BarCode录入】')); // 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 = [SELECT Name FROM Consumable_order__c WHERE id =:Po.id]; List InsList = New List(); List InsListUp = New List(); List updListAdjust = New List(); Map ErrorName = new Map(); Map CheckTF = new Map(); 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 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 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; } } // 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; } } }