public without sharing class ConsumableAllOtherDetController { // 订单 ID // private String orderId = ''; public List allOtherDetIifo { get; set; } public String type { get; set; } //20200916 ljh add public ConsumableAllOtherDetController() { // orderId = ApexPages.currentPage().getParameters().get('Id'); allOtherDetIifo = new List(); type = ApexPages.currentPage().getParameters().get('type');//20200916 ljh add } // 画面初始化 public void init() { String userId = UserInfo.getUserId(); List userList = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id = :userId ]; String accountid = userList[0].accountid; String userPro_Type = userList[0].UserPro_Type__c; String userWorklocation = userList[0].Work_Location__c; Date orderdate = Date.today().addDays(-7); String rtTypeDelivery = System.Label.RT_ConOrder_Delivery; List conorderlist = new List(); //20200916 ljh update start if(Test.isRunningTest()){ //conorderlist = [select id,name,Owner.Name from Consumable_order__c where Order_type__c = '订单' and recordtypeid = :rtTypeDelivery and Dealer_Info__c = :accountid and Delivery_detail_count__c >=0 and Order_ProType__c = :userPro_Type and Order_Owner_WorkLocal__c = :userWorklocation]; if(type !=null && type.equals('all')){ conorderlist = [select id,Owner.Name from Consumable_order__c where Order_type__c = '订单' and recordtypeid = :rtTypeDelivery and Dealer_Info__c = :accountid and (OrderNumber_notarrive__c >= 0 or Delivery_detail_count__c >=0) and Order_ProType__c = :userPro_Type and Order_Owner_WorkLocal__c = :userWorklocation and showFalseNotshowTrue__c = false]; }else{ conorderlist = [select id,Owner.Name from Consumable_order__c where Order_type__c = '订单' and recordtypeid = :rtTypeDelivery and Dealer_Info__c = :accountid and Delivery_detail_count__c >=0 and Order_ProType__c = :userPro_Type and Order_Owner_WorkLocal__c = :userWorklocation and showFalseNotshowTrue__c = false]; } }else{ //conorderlist = [select id,name,Owner.Name from Consumable_order__c where Order_type__c = '订单' and recordtypeid = :rtTypeDelivery and Dealer_Info__c = :accountid and Delivery_detail_count__c >0 and Order_ProType__c = :userPro_Type and Order_Owner_WorkLocal__c = :userWorklocation]; if(type !=null && type.equals('all')){ conorderlist = [select id,Owner.Name from Consumable_order__c where Order_type__c = '订单' and recordtypeid = :rtTypeDelivery and Dealer_Info__c = :accountid and (OrderNumber_notarrive__c > 0 or Delivery_detail_count__c >0) and Order_ProType__c = :userPro_Type and Order_Owner_WorkLocal__c = :userWorklocation and showFalseNotshowTrue__c = false]; }else{ conorderlist = [select id,Owner.Name from Consumable_order__c where Order_type__c = '订单' and recordtypeid = :rtTypeDelivery and Dealer_Info__c = :accountid and Delivery_detail_count__c >0 and Order_ProType__c = :userPro_Type and Order_Owner_WorkLocal__c = :userWorklocation and showFalseNotshowTrue__c = false]; } } //20200916 ljh update end // List conorderlist = [select id,Owner.Name from Consumable_order__c where Order_type__c = '订单' and recordtypeid = :rtTypeDelivery and Dealer_Info__c = :accountid and Delivery_detail_count__c > 0 and Order_ProType__c = :userPro_Type and Order_Owner_WorkLocal__c = :userWorklocation]; System.debug('======'+conorderlist+'daxiao:'+conorderlist.size()); for(Consumable_order__c conorder : conorderlist){ System.debug('======'+conorder.Owner.Name+'======'); } Set orderId = new Set(); for(Consumable_order__c conorder : conorderlist){ orderId.add(conorder.Id); } System.debug('ANY o'+orderId); List conList = new List(); if(Test.isRunningTest()){ conList = [SELECT id,Bar_Code__c FROM Consumable_order_details2__c ]; }else{ //20200916 ljh update start //conList = [SELECT id,Bar_Code__c FROM Consumable_order_details2__c WHERE Consumable_order_minor__c = :orderId AND Deliver_date__c < :orderdate AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery]; if(type !=null && type.equals('all')){ conList = [SELECT id,Bar_Code__c FROM Consumable_order_details2__c WHERE Consumable_order_minor__c = :orderId AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery]; }else{ conList = [SELECT id,Bar_Code__c FROM Consumable_order_details2__c WHERE Consumable_order_minor__c = :orderId AND Deliver_date__c < :orderdate AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery]; } //20200916 ljh update end } // List conList = [SELECT id,Bar_Code__c FROM Consumable_order_details2__c WHERE Consumable_order_minor__c = :orderId AND Deliver_date__c < :orderdate AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery]; Map srtMap = new Map(); for(Consumable_order_details2__c con : conList){ srtMap.put(con.Bar_Code__c, con.Id); } List str = new List(); for(String s : srtMap.keySet()){ str.add(srtMap.get(s)); } List arrDetList = [SELECT Asset_Model_No__c prodModel,count(Id) recordCount FROM Consumable_order_details2__c WHERE Id =: str and Cancellation_Flag__c = false GROUP BY Asset_Model_No__c]; Map conOrderMap = new Map(); for(AggregateResult agg : arrDetList){ conOrderMap.put(String.valueOf(agg.get('prodModel')), Integer.valueOf(agg.get('recordCount'))); } List conOrderList1 = [SELECT Asset_Model_No__c ,Consumable_count__c FROM Consumable_Orderdetails__c WHERE Consumable_order__c =: orderId ]; Map allConOrderMap = new Map(); for(Consumable_Orderdetails__c con : conOrderList1){ if(con.Consumable_count__c == null){ con.Consumable_count__c = 0; } if(allConOrderMap.containsKey(con.Asset_Model_No__c)){ allConOrderMap.put(con.Asset_Model_No__c,allConOrderMap.get(con.Asset_Model_No__c)+con.Consumable_count__c); }else{ allConOrderMap.put(con.Asset_Model_No__c, con.Consumable_count__c); } } for(String pmodel : allConOrderMap.keySet()){ if(conOrderMap.containsKey(pmodel)){ if(allConOrderMap.get(pmodel) - conOrderMap.get(pmodel) > 0){ showRecords showrecord1 = new showRecords(); showrecord1.recordCount = allConOrderMap.get(pmodel) - conOrderMap.get(pmodel); showrecord1.prodModel = pmodel; allOtherDetIifo.add(showrecord1); } }else{ showRecords showrecord2 = new showRecords(); showrecord2.recordCount = allConOrderMap.get(pmodel); showrecord2.prodModel = pmodel; allOtherDetIifo.add(showrecord2); } } } // Data Bean class showRecords implements Comparable { public Decimal recordCount { get; set; } public String prodModel { get; set; } // public showRecords(){ // } // public showRecords(AggregateResult e) { // recordCount =Integer.valueOf(e.get('recordCount')); // prodModel = String.valueOf(e.get('prodModel')); // } // 排序 public Integer compareTo(Object compareTo) { return null; } } }