From 3962c2bb0435484b60a3e408e4738d792e249a53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:09:55 +0800
Subject: [PATCH] LEX CommunityNewCmp
---
force-app/main/default/classes/LexInventoryController.cls | 1283 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,283 insertions(+), 0 deletions(-)
diff --git a/force-app/main/default/classes/LexInventoryController.cls b/force-app/main/default/classes/LexInventoryController.cls
new file mode 100644
index 0000000..564eded
--- /dev/null
+++ b/force-app/main/default/classes/LexInventoryController.cls
@@ -0,0 +1,1283 @@
+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>();
+
+ //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;
+
+ 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>();
+ }
+
+ 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;
+ }
+
+ // 鐢婚潰鍒濆鍖�
+ @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', '');
+ // }
+ //========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;
+
+ }
+
+
+
+ //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 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;
+ }
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.1