public without sharing class LexTopPageController {
|
//经销商信息
|
public static account accountInfo;
|
/*****************画面表示Bean******************/
|
public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords =new List<ConsumableorderdetailsInfo>();
|
public static List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>();
|
//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 Integer pagesize = Integer.valueof(system.label.orderdetLimitsize);
|
// public static Integer totalcount;
|
// public static Integer pagecount;
|
// public static Integer currentpage = 0;
|
// public static Boolean hasPrevious;
|
// public static Boolean hasNext;
|
public static List<ConsumableorderdetailsInfo> pageRecords;
|
public static String soql {get;set;}
|
// 汇总使用
|
public static Integer Total_num;
|
public static Integer OrderNumber_arrived;
|
public static Integer Delivery_detail_count;
|
public static Integer OrderNumber_notarrive;
|
public static Integer More_than_seven_days;
|
//排序使用
|
// public static String sortKey;
|
// public static String preSortKey;
|
// public static Boolean sortOrderAsc;
|
// public static String[] sortOrder;
|
/*****************一周未到货订单一览对应start******************/
|
// 订单 字段标签
|
public static List<String> title;
|
// 订单 字段名
|
public static List<String> column;
|
public static List<List<String>> columns;
|
// 画面显示数据
|
public static List<Consumable_order__c> raesList;
|
/*****************一周未到货订单一览对应end******************/
|
//排序使用
|
private static String[] orderby = new String[]{ 'Product2__c.Name__c'};
|
//产品上下限
|
public static String[] proLimitAndDate =new String[]{};
|
public static String product_Limit;
|
//库存产品最早有效期限
|
private static Map<String,Date> productkucun = new Map<String,Date>();
|
//消费期限小于一年的产品
|
public static List<ConsumableorderdetailsInfo> overlimitdateorderdetails = new List<ConsumableorderdetailsInfo>();
|
public static String accountid;
|
public static String accountName;
|
public static List<String> orderDetZaikuList = new List<String>();
|
// 登录者工作地
|
private static String userWorkLocation;
|
// 未到货订单信息(超过一周)显示控制
|
public static Boolean over_view {
|
get {
|
return raesList.size() > 0 ? true : false;
|
}
|
}
|
// 使用期限小于一年的产品 显示控制
|
public static Boolean overlimit {
|
get {
|
return overlimitdateorderdetails.size() > 0 ? true : false;
|
}
|
}
|
//用户产品区分
|
public static String userPro_Type;
|
public static String userPro_Typestr = null;
|
public static Boolean EngFlag = false;
|
public static Boolean ETFlag = false;
|
public static Boolean hasHos;
|
|
@AuraEnabled
|
public static Results initAgency(){
|
Results results = new Results();
|
results.isNoteStay = LexUtility.getIsNoteStay();
|
try {
|
User useracc = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id =:UserInfo.getUserId()];
|
accountid = useracc.accountid;
|
List<Account> accList = new List<Account>();
|
accList = [SELECT Name,Ban_On_Use_Reason__c,Deposit_Price__c,
|
Medical_Equipment_Num__c,Medical_Equipment_Expiration_Date__c,
|
Ban_On_Use_Date__c,Tax_Practice_No__c,Tax_Practice_Expiration_Date__c,
|
Business_Authorization_No__c,Business_Paper_Expiration_Date__c,
|
Credit_Check_No__c,Dealer_discount__c,
|
Phone,Address_Together__c,Is_Active_Formula__c,
|
Management_Code__c,Sales_Shop_Class__c,Postal_Code__c,
|
Fax,Address__c,Deposit_Receipt_Finished__c,
|
Deposit_Receipt_Completion_Day__c,
|
Product_Limit_Date__c,
|
Product_Limit_DateENG__c
|
FROM account WHERE id =:accountid];
|
if(accList.size() == 1){
|
accountInfo = accList[0];
|
}else{
|
results.result = 'Fail';
|
results.errorMsg = '未获取到经销商信息';
|
return results;
|
}
|
results.result = 'Success';
|
results.accountInfo = accountInfo;
|
}catch(Exception e){
|
results.result = 'Fail';
|
results.errorMsg = e.getLineNumber()+'---'+e.getMessage();
|
}
|
return results;
|
}
|
|
@AuraEnabled
|
public static Results initPage(Integer pageSizeLWC,Integer pageTokenLWC){
|
pageSize = pageSizeLWC;
|
pageToken = pageTokenLWC;
|
Results results = new Results();
|
results.isNoteStay = LexUtility.getIsNoteStay();
|
try {
|
consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
|
consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>();
|
overlimitdateorderdetails = new List<ConsumableorderdetailsInfo>();
|
//page
|
// pagesize = Integer.valueof(system.label.orderdetLimitsize);
|
// currentpage = 0;
|
|
User useracc = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id =:UserInfo.getUserId()];
|
// String uid = '0051000000E7Pv9AAF';
|
// User useracc = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id =:uid];
|
accountid = useracc.accountid;
|
userWorkLocation = useracc.Work_Location__c;
|
userPro_Type = useracc.UserPro_Type__c;
|
if(String.isBlank(userPro_Type)){
|
userPro_Type = 'ET';
|
}
|
userPro_Typestr = '%' + userPro_Type + '%';
|
if(userPro_Type == 'ENG'){
|
EngFlag = true;
|
}else{
|
ETFlag = true;
|
}
|
//经销商·基本信息获取
|
List<Account> accList = new List<Account>();
|
accList = [SELECT Name,Ban_On_Use_Reason__c,Deposit_Price__c,
|
Medical_Equipment_Num__c,Medical_Equipment_Expiration_Date__c,
|
Ban_On_Use_Date__c,Tax_Practice_No__c,Tax_Practice_Expiration_Date__c,
|
Business_Authorization_No__c,Business_Paper_Expiration_Date__c,
|
Credit_Check_No__c,Dealer_discount__c,
|
Phone,Address_Together__c,Is_Active_Formula__c,
|
Management_Code__c,Sales_Shop_Class__c,Postal_Code__c,
|
Fax,Address__c,Deposit_Receipt_Finished__c,
|
Deposit_Receipt_Completion_Day__c,
|
Product_Limit_Date__c,
|
Product_Limit_DateENG__c
|
FROM account WHERE id =:accountid];
|
if(accList.size() == 1){
|
accountInfo = accList[0];
|
}else{
|
results.result = 'Fail';
|
results.errorMsg = '未获取到经销商信息';
|
return results;
|
}
|
accountName = accountInfo.Name;
|
if(EngFlag){
|
product_Limit = accountInfo.Product_Limit_DateENG__c;
|
}else if(ETFlag){
|
product_Limit = accountInfo.Product_Limit_Date__c;
|
}
|
if(product_Limit != null && product_Limit !=''){
|
proLimitAndDate = product_Limit.split(',');
|
}
|
List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>();
|
//库存明细取得
|
orderDetZaikuList = new List<String>();
|
List<AggregateResult> orderDetZaiku = [SELECT count(Id),
|
Consumable_Product__c
|
FROM Consumable_order_details2__c
|
WHERE Dealer_Arrive__c = true
|
AND Dealer_Shipment__c = false
|
AND Dealer_Saled__c = false
|
AND Lose_Flag__c = false
|
AND Dealer_Returned__c = false
|
AND Cancellation_Flag__c = false
|
AND Bar_Code__c !=null
|
AND Product_Type__c like : userPro_Typestr
|
AND Dealer_Info_text__c = :accountName
|
AND Arrive_Owner_Work_Location__c = :userWorkLocation
|
group by Consumable_Product__c];
|
for(AggregateResult zaikuId : orderDetZaiku){
|
orderDetZaikuList.add(String.valueOf(zaikuId.get('Consumable_Product__c')));
|
}
|
Map<String,Product2__c> MidMap = new Map<String,Product2__c>();
|
List<Product2__c> product2Selected = [SELECT Id, Name,
|
Name__c,
|
Asset_Model_No__c,
|
Category3__c,
|
Category4__c,
|
Category5__c,
|
SFDA_Status__c,
|
Product2__r.SFDA_Approbation_No__c,
|
Product2__r.SFDA_Expiration_Date__c,
|
Product2__r.Packing_list_manual__c
|
FROM Product2__c
|
WHERE Id in :orderDetZaikuList
|
];
|
|
for (Integer i = 0; i < product2Selected.size(); i++) {
|
MidMap.put(product2Selected[i].Id, product2Selected[i]);
|
}
|
//返品库存统计
|
List<Consumable_order_details2__c> CountDel = [SELECT Id,
|
Bar_Code__c,
|
Name,
|
Inventory_date__c,
|
Consumable_Product__c,
|
Recordtypeid,
|
Guarantee_period_for_products__c,
|
Isoverdue__c,
|
Box_Piece__c,
|
hospitalSpecialOffer__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 : userPro_Typestr
|
AND Dealer_Info_text__c = :accountName
|
AND Arrive_Owner_Work_Location__c = :userWorkLocation];
|
Map<String,ConsumableorderdetailsInfo> newMidBoxMap = new Map<String,ConsumableorderdetailsInfo>();
|
Map<String,ConsumableorderdetailsInfo> newMidPieceMap = new Map<String,ConsumableorderdetailsInfo>();
|
Map<String,ConsumableorderdetailsInfo> newHosMidBoxMap = new Map<String,ConsumableorderdetailsInfo>();
|
Map<String,ConsumableorderdetailsInfo> newHosMidPieceMap = new Map<String,ConsumableorderdetailsInfo>();
|
for(Integer i = 0 ; i< CountDel.size();i++){
|
//然后循环CountDel做Box和piece2个map
|
if(MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '盒'){
|
String tex = 'A';
|
if (CountDel[i].hospitalSpecialOffer__c) {
|
tex = 'B';
|
}
|
if(newMidBoxMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex)){
|
ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex).clone();
|
Jstage.allnumber = Jstage.allnumber+1 ;
|
if(CountDel[i].Isoverdue__c == 1){
|
Jstage.limitCount = Jstage.limitCount + 1;
|
}
|
Jstage.BoxPiece = CountDel[i].Box_Piece__c;
|
newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex, Jstage);
|
}else{
|
ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(CountDel[i].Consumable_Product__c));
|
Jstage.allnumber = Jstage.allnumber+1 ;
|
if(CountDel[i].Isoverdue__c == 1){
|
Jstage.limitCount = Jstage.limitCount + 1;
|
}
|
Jstage.BoxPiece = CountDel[i].Box_Piece__c;
|
if (CountDel[i].hospitalSpecialOffer__c) {
|
Jstage.hospitalSpecialOffer = true;
|
newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex, Jstage);
|
}else{
|
Jstage.hospitalSpecialOffer = false;
|
newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex, Jstage);
|
}
|
}
|
}else if(MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '个'){
|
String tex = 'A';
|
if (CountDel[i].hospitalSpecialOffer__c) {
|
tex = 'B';
|
}
|
if(newMidPieceMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c+ tex )){
|
ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c+ tex).clone();
|
Jstage.allnumber = Jstage.allnumber+1 ;
|
if(CountDel[i].Isoverdue__c == 1){
|
Jstage.limitCount = Jstage.limitCount + 1;
|
}
|
Jstage.BoxPiece = CountDel[i].Box_Piece__c;
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex, Jstage);
|
}else{
|
ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(CountDel[i].Consumable_Product__c));
|
Jstage.allnumber = Jstage.allnumber+1 ;
|
if(CountDel[i].Isoverdue__c == 1){
|
Jstage.limitCount = Jstage.limitCount + 1;
|
}
|
Jstage.BoxPiece = CountDel[i].Box_Piece__c;
|
if (CountDel[i].hospitalSpecialOffer__c) {
|
Jstage.hospitalSpecialOffer = true;
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c+ tex, Jstage);
|
}else{
|
Jstage.hospitalSpecialOffer = false;
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c+ tex, Jstage);
|
}
|
}
|
}
|
//如果是 医院特价创建的明细2 则
|
}
|
consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
|
List<ConsumableorderdetailsInfo> newHosMidBoxList = new List<ConsumableorderdetailsInfo>();
|
//把Boxmap里的值从新赋给boxRecords
|
for(ConsumableorderdetailsInfo bss : newMidBoxMap.values()){
|
if(bss.allnumber>0){
|
bss.packing_list = Integer.valueof(bss.Prod.Product2__r.Packing_list_manual__c);
|
bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
|
bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
|
bss.overlimitCount = bss.allnumber - bss.limitCount;
|
boxRecords.add(bss);
|
}
|
}
|
boxRecords.sort();
|
for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){
|
if(bss.allnumber>0){
|
bss.packing_list = Integer.valueof(bss.Prod.Product2__r.Packing_list_manual__c);
|
bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
|
bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
|
bss.overlimitCount = bss.allnumber - bss.limitCount;
|
}
|
}
|
//排序应该是 非医院特价的盒,医院特价的盒,非医院特价的个,医院特价的个
|
//add by rentx 2020-11-27 先判断医院特价的盒 和 个
|
//2020-11-27 日 于 rentx 注释 start
|
String temp = 'A';
|
for(ConsumableorderdetailsInfo bss : boxRecords){
|
consumableorderdetailsRecords.add(bss);
|
//该产品是医院特价产品
|
if (bss.hospitalSpecialOffer && newMidPieceMap.containsKey(bss.Prod.Id+'个B')) {
|
if (newMidPieceMap.get(bss.Prod.Id+'个B').hospitalSpecialOffer) {
|
consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id+'个B'));
|
newMidPieceMap.remove(bss.Prod.Id+'个B');
|
}
|
}
|
|
if (!bss.hospitalSpecialOffer && newMidPieceMap.containsKey(bss.Prod.Id+'个A')) {
|
// if (newMidPieceMap.get(bss.Prod.Id+'个A')) {
|
consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id+'个A'));
|
newMidPieceMap.remove(bss.Prod.Id+'个A');
|
// }
|
}
|
}
|
|
for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){
|
if (newMidPieceMap.containsKey(bss.Prod.Id+'个B')) {
|
consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个B'));
|
}
|
}
|
for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){
|
if (newMidPieceMap.containsKey(bss.Prod.Id+'个A')) {
|
consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个A'));
|
}
|
}
|
// consumableorderdetailsRecords.addAll(newMidPieceMap.values());
|
//2020-11-27 日 于 rentx 注释 end
|
// consumableorderdetailsRecords.addAll(newMidPieceMap.values());
|
//2020-11-27 日 于 rentx 注释 end
|
|
notarriveorder();
|
productLimtAndDate();
|
datelimitSearch();
|
//add by rentx
|
Integer ishos = 0;
|
for(ConsumableorderdetailsInfo bss : consumableorderdetailsRecords){
|
if(productkucun.get(bss.Prod.Id) != null){
|
bss.guaranteeperiod = productkucun.get(bss.Prod.Id);
|
}
|
//add by rentx 2021-3-10 start
|
if (bss.hospitalSpecialOffer) {
|
ishos = ishos+1;
|
}
|
|
}
|
if (ishos > 0) {
|
hasHos = true;
|
}else{
|
hasHos = false;
|
}
|
//add by rentx 2021-3-10 end
|
//consumableorderdetailsRecords.sort();
|
//list分割
|
//listCut();
|
// sortKey = '0';
|
// preSortKey = '0';
|
// sortOrderAsc = false;
|
// sortOrder = new String[1];
|
// sortOrder = new String[]{' ', '↓'};
|
//总件数
|
totalCount = consumableorderdetailsRecords.size();
|
//页数
|
// pagecount=(totalcount + pagesize - 1) / pagesize;
|
//显示第一页
|
// moveToFirst();
|
makeCurrentPageRecords();
|
//分页
|
PaginatedAccounts paginatedAccounts = new PaginatedAccounts();
|
System.debug('pageToken==>'+ pageToken);
|
System.debug('pageSize===>'+ pageSize);
|
|
paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null;
|
paginatedAccounts.recordStart = pageToken + 1;
|
paginatedAccounts.pageNumber = pageToken / pageSize + 1;
|
Integer recordEnd = pageSize * paginatedAccounts.pageNumber;
|
System.debug('paginatedAccounts.recordStart'+ paginatedAccounts.recordStart);
|
System.debug('paginatedAccounts.pageNumber'+ paginatedAccounts.pageNumber);
|
System.debug('paginatedAccounts.nextPageToken===>'+paginatedAccounts.nextPageToken);
|
System.debug('recordEnd'+ recordEnd);
|
|
paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount;
|
paginatedAccounts.totalRecords = totalCount;
|
//end
|
System.debug('PaginatedAccounts===>'+PaginatedAccounts);
|
|
//赋值回传
|
results.result = 'Success';
|
results.title = title;
|
results.raesList = raesList;
|
results.columns = columns;
|
results.over_view = over_view;
|
results.overlimit = overlimit;
|
results.hasHos = hasHos;
|
results.overlimitdateorderdetails = overlimitdateorderdetails;
|
results.accountInfo = accountInfo;
|
results.pageRecords = pageRecords;
|
results.product_Limit = product_Limit;
|
results.totalNum = Total_num;
|
results.orderNumberArrived = OrderNumber_arrived;
|
results.deliveryDetailCount = Delivery_detail_count;
|
results.orderNumberNotarrive = OrderNumber_notarrive;
|
results.moreThanSevenDays = More_than_seven_days;
|
//add by WangXueqin 2023/05/05
|
results.userPro_Type = userPro_Type;
|
results.paginatedAccounts = paginatedAccounts;
|
} catch (Exception e) {
|
results.result = 'Fail';
|
results.errorMsg = e.getLineNumber()+'---'+e.getMessage();
|
}
|
return results;
|
}
|
|
//超过一周未到货订单
|
public static void notarriveorder(){
|
//over_view = false;
|
Date orderdate = Date.today().addDays(-7);
|
|
List<Consumable_order_details2__c> orderdetails = [SELECT Id,Name,Consumable_order_minor__c
|
FROM Consumable_order_details2__c
|
WHERE Deliver_date__c < :orderdate
|
and Consumable_order_minor__c !=null
|
and Dealer_Info_text__c = :accountName
|
AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery
|
AND Dealer_Arrive__c = false
|
];
|
//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'userPro_Type——————' + userPro_Type));
|
Map<String, String> notarriveorderMap = new Map<String, String>();
|
List<String> notarriveorderid = new List<String>();
|
for(Integer i = 0; i < orderdetails.size(); i++){
|
if(notarriveorderMap.containsKey(orderdetails[i].Consumable_order_minor__c)){
|
continue;
|
}else{
|
notarriveorderMap.put(orderdetails[i].Consumable_order_minor__c, orderdetails[i].Consumable_order_minor__c);
|
//notarriveorderid.add('\'' + orderdetails[i].Consumable_order_minor__c +'\'');
|
notarriveorderid.add(orderdetails[i].Consumable_order_minor__c);
|
}
|
}
|
// 获得订单一览
|
Map<String, Schema.FieldSet> fsMap = Schema.getGlobalDescribe().get('Consumable_order__c').getDescribe().fieldSets.getMap();
|
Schema.FieldSet fs = fsMap.get('arrive_view');
|
// 获得订单中的所有项目
|
List<FieldSetMember> fsmList = fs.getFields();
|
// 获得字段标签和字段名
|
title = new List<String>();
|
column = new List<String>();
|
columns = new List<List<String>>();
|
for (FieldSetMember fsm : fsmList) {
|
title.add(fsm.getLabel());
|
column.add(fsm.getFieldPath());
|
columns.add(fsm.getFieldPath().split('\\.'));
|
}
|
system.debug('columns=====================>'+columns);
|
// 获得显示数据
|
raesList = new List<Consumable_order__c>();
|
String soql = 'select Id';
|
for (String s : column) {
|
soql += ',' + s;
|
}
|
soql += ' from Consumable_order__c where Order_type__c = \''+'订单'+'\' and recordtypeid =\'' + System.Label.RT_ConOrder_Delivery + '\' and Dealer_Info__c =\'' + accountid +'\' and Delivery_detail_count__c > 0 and showFalseNotshowTrue__c = false ';
|
soql += ' and Order_ProType__c = \'' + userPro_Type + '\' ' ;
|
soql += ' and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' ';
|
|
if(notarriveorderid.size() < 1){
|
soql +=' AND Id = null ';
|
}else{
|
String sqlTail = '(\'';
|
for(Integer i = 0 ; i< notarriveorderid.size();i++){
|
if(i<notarriveorderid.size()-1){
|
sqlTail += notarriveorderid[i]+'\',\'';
|
}else{
|
sqlTail += notarriveorderid[i]+'\')';
|
}
|
}
|
//over_view = true;
|
soql +=' AND Id in ' + sqlTail;
|
}
|
system.debug('soql_____11111__' + soql);
|
raesList = Database.query(soql);
|
// update end by vivek2020-01-15
|
Total_num = 0;
|
OrderNumber_arrived = 0;
|
Delivery_detail_count = 0;
|
OrderNumber_notarrive = 0;
|
More_than_seven_days = 0;
|
for(Consumable_order__c conorder :raesList){
|
Total_num += (Integer)conorder.Total_num__c;
|
OrderNumber_arrived += (Integer)conorder.OrderNumber_arrived__c;
|
Delivery_detail_count += (Integer)conorder.Delivery_detail_count__c;
|
OrderNumber_notarrive += (Integer)conorder.OrderNumber_notarrive__c;
|
More_than_seven_days += (Integer)conorder.More_than_seven_days__c;
|
}
|
// update end by vivek2020-01-15
|
}
|
|
public static void productLimtAndDate(){
|
String nowName = null, nowRightAsstModelNo = null;
|
Map<String,String> productLimt = new Map<String,String>();
|
for(Integer i = 0; i < proLimitAndDate.size(); i++){
|
nowName = proLimitAndDate[i];
|
if( nowName.indexOf( '|') >= 0) {
|
nowRightAsstModelNo = nowName.subString( 0, nowName.indexOf( '|'));
|
nowName = nowName.subString( nowName.indexOf( '|')+1);
|
}
|
productLimt.put(nowRightAsstModelNo, nowName);
|
}
|
for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
|
if(productLimt.containsKey(ass.Prod.Asset_Model_No__c)){
|
ass.lowerlimit = decimal.valueOf(productLimt.get(ass.Prod.Asset_Model_No__c).subString(0, productLimt.get(ass.Prod.Asset_Model_No__c).indexOf( '|')));
|
ass.upperlimit = decimal.valueOf(productLimt.get(ass.Prod.Asset_Model_No__c).subString(productLimt.get(ass.Prod.Asset_Model_No__c).indexOf( '|')+1));
|
}
|
}
|
}
|
|
public static void datelimitSearch(){
|
Set<String> barcodekucun = new Set<String>();
|
//--------UpdateStart-----XHL--------------20180929-------------
|
List<Consumable_order_details2__c> orderkucun = [SELECT Id,Bar_Code__c, Name,Consumable_Product__c,
|
Recordtypeid,Guarantee_period_for_products__c,
|
Sterilization_limit__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 Bar_Code__c !=null
|
AND Product_Type__c like :userPro_Typestr
|
AND Dealer_Info_text__c = :accountName
|
AND Arrive_Owner_Work_Location__c = :userWorkLocation
|
ORDER BY Consumable_Product__c, Sterilization_limit__c asc ];
|
//--------UpdateEnd-----XHL--------------20180929-------------
|
for(Integer i = 0 ; i< orderkucun.size();i++){
|
if(productkucun.containsKey(orderkucun[i].Consumable_Product__c)){
|
continue;
|
}else{
|
productkucun.put(orderkucun[i].Consumable_Product__c, orderkucun[i].Sterilization_limit__c);
|
}
|
}
|
barcodekucun.clear();
|
for(Integer i = 0 ; i< orderkucun.size();i++){
|
if(orderkucun[i].Sterilization_limit__c < Date.today().addYears(1)){
|
if(barcodekucun.contains(orderkucun[i].Bar_Code__c)){
|
continue;
|
}else{
|
barcodekucun.add(orderkucun[i].Bar_Code__c);
|
}
|
}
|
}
|
List<AggregateResult> overlimitdatedetails = [SELECT Asset_Model_No__c prodName ,
|
Box_Piece__c BoxPiece,count(id) countid
|
FROM Consumable_order_details2__c
|
WHERE Bar_Code__c in :barcodekucun
|
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
|
GROUP BY Asset_Model_No__c,Box_Piece__c
|
ORDER BY Asset_Model_No__c,Box_Piece__c];
|
for(Integer i = 0 ; i< overlimitdatedetails.size();i++){
|
overlimitdateorderdetails.add(new ConsumableorderdetailsInfo(overlimitdatedetails[i]));
|
}
|
}
|
|
//首页
|
// public static void moveToFirst(){
|
// if(currentpage == 1) return;
|
// currentpage = 1;
|
// canMove();
|
// }
|
|
//判断是否可翻页
|
// public static void canMove(){
|
// hasPrevious = false;
|
// hasNext = false;
|
// if(pagecount > 1 && currentpage > 1) hasPrevious = true;
|
// if(pagecount > 1 && currentpage < pagecount) hasNext = true;
|
// }
|
|
//编辑当前页内容
|
public static void makeCurrentPageRecords(){
|
Integer startIdx;
|
Integer endIdx;
|
pageRecords = new List<ConsumableorderdetailsInfo>();
|
startIdx = pageToken;
|
endIdx = pageToken + pageSize;
|
if (endIdx > consumableorderdetailsRecords.size()) {
|
endIdx = consumableorderdetailsRecords.size();
|
}
|
for (Integer i = startIdx; i < endIdx; i++) {
|
pageRecords.add(consumableorderdetailsRecords.get(i));
|
}
|
}
|
//分页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
|
public class ConsumableorderdetailsInfo implements Comparable {
|
//public Boolean check { get; set; }
|
//public Boolean oldCheck { get; set; }
|
@AuraEnabled
|
public Consumable_order_details2__c esd { get; set; }
|
@AuraEnabled
|
public Product2__c Prod { get; set; }
|
@AuraEnabled
|
public Decimal allnumber { get; set; }
|
@AuraEnabled
|
public Decimal oldConsumableCount { get; set; }
|
@AuraEnabled
|
public Integer packing_list { get; set; }
|
@AuraEnabled
|
public Date expiration_Date { get; set; }
|
@AuraEnabled
|
public String approbation_No { get; set; }
|
@AuraEnabled
|
public Decimal upperlimit { get; set; }
|
@AuraEnabled
|
public Decimal lowerlimit { get; set; }
|
@AuraEnabled
|
public Date guaranteeperiod { get; set; }
|
@AuraEnabled
|
public Decimal countid { get; set; }
|
@AuraEnabled
|
public String prodName { get; set; }
|
@AuraEnabled
|
public Decimal limitCount { get; set; }
|
@AuraEnabled
|
public Decimal overlimitCount { get; set; }
|
@AuraEnabled
|
public String BoxPiece { get; set; }
|
@AuraEnabled
|
public Boolean hospitalSpecialOffer { get; set ;}
|
|
public ConsumableorderdetailsInfo(Product2__c e) {
|
//check = false;
|
//oldCheck = false;
|
esd = new Consumable_order_details2__c();
|
Prod = e;
|
oldConsumableCount = null;
|
allnumber = 0;
|
limitCount = 0;
|
overlimitCount = 0;
|
|
}
|
|
public ConsumableorderdetailsInfo(AggregateResult e) {
|
countid =Integer.valueOf(e.get('countid'));
|
prodName = String.valueOf(e.get('prodname'));
|
BoxPiece = String.valueOf(e.get('BoxPiece'));
|
}
|
|
// 排序
|
public Integer compareTo(Object compareTo) {
|
ConsumableorderdetailsInfo compareToesd =(ConsumableorderdetailsInfo)compareTo;
|
Integer returnValue = 0;
|
if (allnumber > compareToesd.allnumber) {
|
returnValue = -1;
|
} else if (allnumber < compareToesd.allnumber) {
|
returnValue = 1;
|
}
|
return returnValue;
|
}
|
}
|
|
public class Results {
|
@AuraEnabled
|
public String result;
|
@AuraEnabled
|
public String errorMsg;
|
@AuraEnabled
|
public List<String> title;
|
@AuraEnabled
|
public List<Consumable_order__c> raesList;
|
@AuraEnabled
|
public List<List<String>> columns;
|
@AuraEnabled
|
public Boolean over_view;
|
@AuraEnabled
|
public Boolean overlimit;
|
@AuraEnabled
|
public Boolean hasHos;
|
@AuraEnabled
|
public List<ConsumableorderdetailsInfo> overlimitdateorderdetails;
|
@AuraEnabled
|
public Account accountInfo;
|
@AuraEnabled
|
public List<ConsumableorderdetailsInfo> pageRecords;
|
@AuraEnabled
|
public String product_Limit;
|
@AuraEnabled
|
public Integer totalNum;
|
@AuraEnabled
|
public Integer orderNumberArrived;
|
@AuraEnabled
|
public Integer deliveryDetailCount;
|
@AuraEnabled
|
public Integer orderNumberNotarrive;
|
@AuraEnabled
|
public Integer moreThanSevenDays;
|
@AuraEnabled
|
public Boolean isNoteStay;
|
//add by WangXueqin 2023/05/05
|
@AuraEnabled
|
public String userPro_Type;
|
@AuraEnabled
|
public List<ConsumableorderdetailsInfo> pageCodeRecords;
|
@AuraEnabled
|
public PaginatedAccounts paginatedAccounts;
|
|
|
}
|
}
|