public without sharing class InventoryViewController {
|
/*****************画面表示Bean******************/
|
public List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
|
public List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>();
|
|
//page
|
public Integer pagesize { get; set; }
|
public Integer totalcount { get; set; }
|
public Integer pagecount { get; set; }
|
public Integer currentpage { get; set; }
|
public Boolean hasPrevious { get; set; }
|
public Boolean hasNext { get; set; }
|
public List<ConsumableorderdetailsInfo> pageRecords { get; set; }
|
public String soql { get; set; }
|
|
public String sortKey { get; set; }
|
public String preSortKey { get; private set; }
|
public Boolean sortOrderAsc { get; private set; }
|
public String[] sortOrder { get; private set; }
|
private String[] columus = new List<String>{
|
'Product2__c.Name__c',
|
'Asset_Model_No__c',
|
'',
|
'Category3__c',
|
'Category4__c',
|
'Category5__c',
|
''
|
};
|
|
String[] proLimitAndDate = new List<String>{};
|
private Map<String, Date> productkucun = new Map<String, Date>();
|
public List<SelectOption> categoryOptionList { get; set; }
|
public List<SelectOption> category4OptionList { get; set; }
|
public List<SelectOption> category5OptionList { get; set; }
|
public String category5 { get; set; }
|
public String category4 { get; set; }
|
public String category3 { get; set; }
|
public String category_Goods { get; set; }
|
public String category1 { get; set; }
|
public Boolean editAble { get; set; }
|
// 经销商在库产品ID
|
List<String> orderDetZaikuList = new List<String>();
|
// 产品 ID
|
public String ESetId { get; set; }
|
public String idCheck { get; set; }
|
/*****************ソート時再検索条件(画面からの入力条件を無視するため)******************/
|
private String accountid = null;
|
public String accountName { get; set; }
|
// 查看产品
|
//private String[] ProidListAll = new String[]{};
|
// 登录者工作地
|
private String userWorkLocation;
|
//经销商用户产品分类(ET、ENG)
|
public String agencyProType { get; set; }
|
String sqlagencyProType;
|
|
//add by rentx 2021-3-10
|
public Boolean hasHos { get; set; }
|
//add by rentx 2021-3-10
|
|
public InventoryViewController() {
|
consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
|
consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>();
|
editAble = false;
|
categoryOptionList = new List<SelectOption>();
|
category4OptionList = new List<SelectOption>();
|
category5OptionList = new List<SelectOption>();
|
|
//page
|
pagesize = Integer.valueof(system.label.orderdetLimitsize);
|
currentpage = 0;
|
}
|
// 画面初始化
|
public void init() {
|
this.sortKey = '2';
|
this.preSortKey = '2';
|
this.sortOrderAsc = false;
|
this.sortOrder = new String[8];
|
this.sortOrder = new List<String>{ ' ', '', ' ', ' ', '', '', '', '↓' };
|
|
//取用户ID
|
String userId = UserInfo.getUserId();
|
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';
|
}
|
Account accountInfo = [SELECT Name, Dealer_discount__c, Product_Limit_Date__c FROM account WHERE id = :accountid];
|
accountName = accountInfo.Name;
|
//经销商查看产品
|
String product_Limit = accountInfo.Product_Limit_Date__c;
|
|
if (product_Limit != null && product_Limit != '') {
|
proLimitAndDate = product_Limit.split(',');
|
}
|
|
List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>();
|
Map<String, Product2__c> MidMap = new Map<String, Product2__c>();
|
Map<String, ConsumableorderdetailsInfo> newMidBoxMap = new Map<String, ConsumableorderdetailsInfo>();
|
Map<String, ConsumableorderdetailsInfo> newMidPieceMap = new Map<String, ConsumableorderdetailsInfo>();
|
//库存明细取得
|
sqlagencyProType = '%' + agencyProType + '%';
|
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 Bar_Code__c != NULL
|
AND Product_Type__c LIKE :sqlagencyProType
|
AND Dealer_Info_text__c = :accountName
|
AND Cancellation_Flag__c = FALSE
|
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')));
|
}
|
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 :sqlagencyProType
|
AND Dealer_Info_text__c = :accountName
|
AND Arrive_Owner_Work_Location__c = :userWorkLocation
|
];
|
List<Product2__c> product2Selected = [
|
SELECT
|
Id,
|
Name,
|
Name__c,
|
Intra_Trade_List_RMB__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]);
|
}
|
/////////////////////====================================update by rentx
|
Map<String, ConsumableorderdetailsInfo> newHosMidBoxMap = new Map<String, ConsumableorderdetailsInfo>();
|
Map<String, ConsumableorderdetailsInfo> newHosMidPieceMap = new Map<String, ConsumableorderdetailsInfo>();
|
//update by rentx 2021-01-27 start
|
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;
|
} 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;
|
if (CountDel[i].hospitalSpecialOffer__c) {
|
Jstage.hospitalSpecialOffer = true;
|
} else {
|
Jstage.hospitalSpecialOffer = false;
|
}
|
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;
|
} else {
|
Jstage.hospitalSpecialOffer = false;
|
}
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage);
|
}
|
}
|
}
|
consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
|
//把Boxmap里的值从新赋给boxRecords
|
for (ConsumableorderdetailsInfo bss : newMidBoxMap.values()) {
|
if (bss.allnumber > 0) {
|
bss.sortBy = false;
|
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;
|
}
|
}
|
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'));
|
}
|
}
|
|
/////////////////////====================================update by rentx
|
|
/*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 == '盒'){
|
|
if(newMidBoxMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c)){
|
ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c).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, 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;
|
newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, Jstage);
|
}
|
}else if(MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '个'){
|
if(newMidPieceMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c)){
|
ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c).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, 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;
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, Jstage);
|
}
|
}
|
}
|
consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
|
//把Boxmap里的值从新赋给boxRecords
|
for(ConsumableorderdetailsInfo bss : newMidBoxMap.values()){
|
if(bss.allnumber>0){
|
bss.sortBy = false;
|
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;
|
}
|
}
|
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 + '个'));
|
}*/
|
|
//update by rentx 2021-01-27 end
|
productLimtAndDate();
|
datelimitSearch();
|
|
//add by rentx 2021-3-10 start
|
Integer hosnum = 0;
|
//add by rentx 2021-3-10 end
|
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) {
|
hosnum = hosnum + 1;
|
}
|
}
|
if (hosnum > 0) {
|
hasHos = true;
|
} else {
|
hasHos = false;
|
}
|
//add by rentx 2021-3-10 end
|
//listCut();
|
|
AggregateResult[] categoryList = [
|
SELECT Count(id), Category3_text__c c3c
|
FROM Product2__c
|
WHERE Estimation_Entry_Possibility__c = '○' AND Product_Type__c LIKE :agencyProType AND Category3_text__c != NULL
|
GROUP BY Category3_text__c
|
];
|
|
categoryOptionList = new List<SelectOption>();
|
categoryOptionList.add(new SelectOption('', '-无-'));
|
for (AggregateResult category3Search : categoryList) {
|
String deliverycnt = String.valueOf(category3Search.get('c3c'));
|
categoryOptionList.add(new SelectOption(deliverycnt, deliverycnt));
|
}
|
|
category4OptionList = new List<SelectOption>();
|
category4OptionList.add(new SelectOption('', '-无-'));
|
category5OptionList = new List<SelectOption>();
|
category5OptionList.add(new SelectOption('', '-无-'));
|
|
//总件数
|
totalcount = consumableorderdetailsRecords.size();
|
//页数
|
pagecount = (totalcount + pagesize - 1) / pagesize;
|
|
//显示第一页
|
moveToFirst();
|
makeCurrentPageRecords();
|
}
|
public void categoryAllload() {
|
AggregateResult[] category4List = [
|
SELECT Count(id), Category4_text__c c4c
|
FROM Product2__c
|
WHERE
|
Estimation_Entry_Possibility__c = '○'
|
AND Category3_text__c = :category3
|
AND Product_Type__c LIKE :agencyProType
|
AND Category4_text__c != NULL
|
AND Category5_text__c != NULL
|
GROUP BY Category4_text__c
|
];
|
category4OptionList = new List<SelectOption>();
|
category4OptionList.add(new SelectOption('', '-无-'));
|
for (AggregateResult category4Search : category4List) {
|
String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
|
category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
|
}
|
|
AggregateResult[] category5List = [
|
SELECT Count(id), Category5_text__c c5c
|
FROM Product2__c
|
WHERE
|
Estimation_Entry_Possibility__c = '○'
|
AND Category3_text__c = :category3
|
AND Product_Type__c LIKE :agencyProType
|
AND Category4_text__c != NULL
|
AND Category5_text__c != NULL
|
GROUP BY Category5_text__c
|
];
|
|
category5OptionList = new List<SelectOption>();
|
category5OptionList.add(new SelectOption('', '-无-'));
|
for (AggregateResult category5Search : category5List) {
|
String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
|
category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
|
}
|
}
|
|
public void categoryload() {
|
AggregateResult[] category4List = [
|
SELECT Count(id), Category4_text__c c4c
|
FROM Product2__c
|
WHERE
|
Estimation_Entry_Possibility__c = '○'
|
AND Category3_text__c = :category3
|
AND Product_Type__c LIKE :agencyProType
|
AND Category4_text__c != NULL
|
AND Category5_text__c != NULL
|
GROUP BY Category4_text__c
|
];
|
category4OptionList = new List<SelectOption>();
|
category4OptionList.add(new SelectOption('', '-无-'));
|
for (AggregateResult category4Search : category4List) {
|
String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
|
category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
|
}
|
|
AggregateResult[] category5List = [
|
SELECT Count(id), Category5_text__c c5c
|
FROM Product2__c
|
WHERE
|
Estimation_Entry_Possibility__c = '○'
|
AND Category3_text__c = :category3
|
AND Product_Type__c LIKE :agencyProType
|
AND Category4_text__c = :category4
|
AND Category5_text__c != NULL
|
GROUP BY Category5_text__c
|
];
|
|
category5OptionList = new List<SelectOption>();
|
category5OptionList.add(new SelectOption('', '-无-'));
|
for (AggregateResult category5Search : category5List) {
|
String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
|
category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
|
}
|
}
|
// 检索
|
public void searchConsumableorderdetails() {
|
this.sortKey = '2';
|
this.preSortKey = '2';
|
this.sortOrderAsc = false;
|
this.sortOrder = new String[8];
|
this.sortOrder = new List<String>{ ' ', '', ' ', ' ', '', '', '', '↓' };
|
|
List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
|
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 Bar_Code__c != NULL
|
AND Product_Type__c LIKE :sqlagencyProType
|
AND Dealer_Info_text__c = :accountName
|
AND Arrive_Owner_Work_Location__c = :userWorkLocation
|
];
|
|
List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>();
|
Map<String, Product2__c> MidMap = new Map<String, Product2__c>();
|
Map<String, ConsumableorderdetailsInfo> newMidBoxMap = new Map<String, ConsumableorderdetailsInfo>();
|
Map<String, ConsumableorderdetailsInfo> newMidPieceMap = new Map<String, ConsumableorderdetailsInfo>();
|
|
// 所有产品取得
|
String soql = this.makeSoql(category1, category_Goods, category3, category4, category5);
|
System.debug('====>soql11' + soql);
|
//soql += ' ORDER BY ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last');
|
List<Product2__c> queryList = Database.query(soql);
|
for (Integer i = 0; i < queryList.size(); i++) {
|
MidMap.put(queryList[i].Id, queryList[i]);
|
}
|
|
/*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 == '盒'){
|
|
if(newMidBoxMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c)){
|
ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c).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, 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;
|
newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, Jstage);
|
}
|
}else if(MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '个'){
|
if(newMidPieceMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c)){
|
ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c).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, 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;
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, Jstage);
|
}
|
}
|
} 注释by rentx */
|
Map<String, ConsumableorderdetailsInfo> newHosMidBoxMap = new Map<String, ConsumableorderdetailsInfo>();
|
Map<String, ConsumableorderdetailsInfo> newHosMidPieceMap = new Map<String, ConsumableorderdetailsInfo>();
|
|
/*for(Integer i = 0 ; i< CountDel.size();i++){
|
//如果是 医院特价创建的明细2 则 update and add by rentx 2020-11-26 start
|
if (MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].hospitalSpecialOffer__c) {
|
//如果是 盒
|
if (CountDel[i].Box_Piece__c == '盒') {
|
if (newHosMidBoxMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c)) {
|
ConsumableorderdetailsInfo Jstage = newHosMidBoxMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c).clone();
|
Jstage.allnumber = Jstage.allnumber+1 ;
|
if(CountDel[i].Isoverdue__c == 1){
|
Jstage.limitCount = Jstage.limitCount + 1;
|
}
|
Jstage.BoxPiece = CountDel[i].Box_Piece__c;
|
Jstage.hospitalSpecialOffer = true;
|
newHosMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, 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;
|
Jstage.hospitalSpecialOffer = true;
|
newHosMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, Jstage);
|
}
|
}else if (CountDel[i].Box_Piece__c == '个') {
|
if(newHosMidPieceMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c)){
|
ConsumableorderdetailsInfo Jstage = newHosMidPieceMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c).clone();
|
Jstage.allnumber = Jstage.allnumber+1 ;
|
if(CountDel[i].Isoverdue__c == 1){
|
Jstage.limitCount = Jstage.limitCount + 1;
|
}
|
Jstage.BoxPiece = CountDel[i].Box_Piece__c;
|
Jstage.hospitalSpecialOffer = true;
|
newHosMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, 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;
|
Jstage.hospitalSpecialOffer = true;
|
newHosMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, Jstage);
|
}
|
}
|
}else{
|
if (MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].hospitalSpecialOffer__c == false) {
|
//不是 医院特价
|
//如果是 盒
|
if (CountDel[i].Box_Piece__c == '盒') {
|
if (newMidBoxMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c)) {
|
ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c).clone();
|
Jstage.allnumber = Jstage.allnumber+1 ;
|
if(CountDel[i].Isoverdue__c == 1){
|
Jstage.limitCount = Jstage.limitCount + 1;
|
}
|
Jstage.BoxPiece = CountDel[i].Box_Piece__c;
|
System.debug(Jstage+'61333333333333333333');
|
Jstage.hospitalSpecialOffer = false;
|
newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, 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;
|
Jstage.hospitalSpecialOffer = false;
|
System.debug(Jstage + '624444444444444444');
|
|
newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, Jstage);
|
}
|
}else if (CountDel[i].Box_Piece__c == '个') {
|
if(newMidPieceMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c)){
|
ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c).clone();
|
Jstage.allnumber = Jstage.allnumber+1 ;
|
if(CountDel[i].Isoverdue__c == 1){
|
Jstage.limitCount = Jstage.limitCount + 1;
|
}
|
Jstage.BoxPiece = CountDel[i].Box_Piece__c;
|
Jstage.hospitalSpecialOffer = false;
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, 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;
|
Jstage.hospitalSpecialOffer = false;
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c, Jstage);
|
}
|
}
|
|
}
|
|
}
|
}*/
|
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;
|
} 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;
|
if (CountDel[i].hospitalSpecialOffer__c) {
|
Jstage.hospitalSpecialOffer = true;
|
} else {
|
Jstage.hospitalSpecialOffer = false;
|
}
|
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;
|
} else {
|
Jstage.hospitalSpecialOffer = false;
|
}
|
newMidPieceMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage);
|
}
|
}
|
}
|
|
consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
|
//把Boxmap里的值从新赋给boxRecords
|
for (ConsumableorderdetailsInfo bss : newMidBoxMap.values()) {
|
if (bss.allnumber > 0) {
|
bss.sortBy = false;
|
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;
|
}
|
}
|
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'));
|
}
|
}
|
|
/////////////////////====================================update by rentx
|
/*//把Boxmap里的值从新赋给boxRecords
|
for(ConsumableorderdetailsInfo bss : newMidBoxMap.values()){
|
if(bss.allnumber>0){
|
bss.sortBy = false;
|
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;
|
}
|
}
|
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 + '个'));
|
}注释 by rentx 2020-12-09*/
|
productLimtAndDate();
|
datelimitSearch();
|
for (ConsumableorderdetailsInfo bss : consumableorderdetailsRecords) {
|
if (productkucun.get(bss.Prod.Id) != null) {
|
bss.guaranteeperiod = productkucun.get(bss.Prod.Id);
|
}
|
}
|
//listCut();
|
|
this.sortKey = '2';
|
this.preSortKey = '2';
|
this.sortOrderAsc = false;
|
this.sortOrder = new String[8];
|
this.sortOrder = new List<String>{ ' ', '', ' ', ' ', '', '', '', '↓' };
|
|
//总件数
|
totalcount = consumableorderdetailsRecords.size();
|
//页数
|
pagecount = (totalcount + pagesize - 1) / pagesize;
|
|
//显示第一页
|
currentpage = 0;
|
moveToFirst();
|
makeCurrentPageRecords();
|
}
|
|
//库存上下限
|
public 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 void datelimitSearch() {
|
List<String> barcodekucun = new List<String>();
|
List<Consumable_order_details2__c> orderkucun = [
|
SELECT Id, Bar_Code__c, Name, Consumable_Product__c, Recordtypeid, Guarantee_period_for_products__c, Sterilization_limit__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 :sqlagencyProType
|
AND Dealer_Info_text__c = :accountName
|
AND Arrive_Owner_Work_Location__c = :userWorkLocation
|
ORDER BY Consumable_Product__c, Sterilization_limit__c ASC
|
];
|
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);
|
}
|
}
|
}
|
|
//名称排序
|
public void SortLimited() {
|
Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
|
Map<String, ConsumableorderdetailsInfo> newMap = new Map<String, ConsumableorderdetailsInfo>();
|
if (this.sortKey == this.preSortKey) {
|
// 方向が変わるのみ
|
this.sortOrderAsc = !this.sortOrderAsc;
|
this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? '↑' : '↓');
|
} else {
|
this.sortOrderAsc = true;
|
this.sortOrder[Integer.valueOf(this.preSortKey)] = ' ';
|
this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? '↑' : '↓');
|
}
|
|
this.preSortKey = this.sortKey;
|
// 所有产品取得
|
String soql = this.makeSoql(null, null, null, null, null);
|
soql +=
|
' ORDER BY ' +
|
this.columus[Integer.valueOf(this.sortKey)] +
|
' ' +
|
(this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last');
|
List<Product2__c> queryList = Database.query(soql);
|
for (Integer i = 0; i < queryList.size(); i++) {
|
MidMap.put(queryList[i].Id + '盒', null);
|
MidMap.put(queryList[i].Id + '个', null);
|
}
|
|
//update by rentx 2020-12-29
|
for (Integer i = 0; i < pageRecords.size(); i++) {
|
if (MidMap.containsKey(pageRecords[i].prod.Id + pageRecords[i].BoxPiece)) {
|
ConsumableorderdetailsInfo Jstage = pageRecords[i].clone();
|
if (Jstage.hospitalSpecialOffer == true) {
|
newMap.put(pageRecords[i].prod.id + pageRecords[i].BoxPiece, Jstage);
|
} else {
|
MidMap.put(pageRecords[i].prod.id + pageRecords[i].BoxPiece, Jstage);
|
}
|
}
|
}
|
//update by rentx 2020-12-29
|
|
// for(Integer i = 0 ; i< pageRecords.size();i++){
|
// if(MidMap.containsKey(pageRecords[i].prod.Id+pageRecords[i].BoxPiece)){
|
// ConsumableorderdetailsInfo Jstage = pageRecords[i].clone();
|
// MidMap.put(pageRecords[i].prod.id+pageRecords[i].BoxPiece, Jstage);
|
// }
|
// }
|
pageRecords = new List<ConsumableorderdetailsInfo>();
|
|
//update byr entx 2020-12-29
|
//再把map里的值从新赋给CpageRecords
|
for (ConsumableorderdetailsInfo bss : MidMap.values()) {
|
if (bss != null) {
|
pageRecords.add(bss);
|
if (newMap.get(bss.Prod.Id + bss.BoxPiece) != null) {
|
pageRecords.add(newMap.get(bss.Prod.Id + bss.BoxPiece));
|
newMap.remove(bss.Prod.Id + bss.BoxPiece);
|
}
|
}
|
}
|
for (ConsumableorderdetailsInfo bss : newMap.values()) {
|
if (bss != null) {
|
pageRecords.add(bss);
|
}
|
}
|
|
//再把map里的值从新赋给CpageRecords
|
// for(ConsumableorderdetailsInfo bss : MidMap.values()){
|
// if(bss != null){
|
// pageRecords.add(bss);
|
// }
|
// }
|
//update by rentx 2020-12-29
|
}
|
|
//库存排序
|
public void SortStore() {
|
if (this.sortKey == this.preSortKey) {
|
// 方向が変わるのみ
|
this.sortOrderAsc = !this.sortOrderAsc;
|
this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? '↑' : '↓');
|
} else {
|
this.sortOrderAsc = true;
|
this.sortOrder[Integer.valueOf(this.preSortKey)] = ' ';
|
this.sortOrder[Integer.valueOf(this.sortKey)] = (this.sortOrderAsc == true ? '↑' : '↓');
|
}
|
this.preSortKey = this.sortKey;
|
|
for (ConsumableorderdetailsInfo ass : pageRecords) {
|
ass.sortBy = this.sortOrderAsc;
|
}
|
pageRecords.sort();
|
}
|
//检索sql文做成
|
private String makeSoql(String CateName, String CateCode, String Category3, String Category4, String Category5) {
|
String sqlTail = '(\'';
|
for (Integer i = 0; i < orderDetZaikuList.size(); i++) {
|
if (i < orderDetZaikuList.size() - 1) {
|
sqlTail += orderDetZaikuList[i] + '\',\'';
|
} else {
|
sqlTail += orderDetZaikuList[i] + '\')';
|
}
|
}
|
String soql = 'select Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Category3__c,Category4__c,Category5__c,';
|
soql += ' SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Product2__r.Packing_list_manual__c FROM Product2__c ';
|
soql += ' WHERE Id in' + sqlTail;
|
if (!String.isBlank(CateName)) {
|
soql +=
|
' AND (Name__c like \'%' +
|
String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) +
|
'%\' or Asset_Model_No__c like \'%' +
|
String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) +
|
'%\')';
|
}
|
if (!String.isBlank(Category3)) {
|
soql += ' AND Category3__c = \'' + Category3 + '\'';
|
}
|
if (!String.isBlank(Category4)) {
|
soql += ' AND Category4__c = \'' + Category4 + '\'';
|
}
|
if (!String.isBlank(Category5)) {
|
soql += ' AND Category5__c = \'' + Category5 + '\'';
|
}
|
System.debug('====>soql' + soql);
|
return soql;
|
}
|
|
//首页
|
public void moveToFirst() {
|
if (currentpage == 1)
|
return;
|
currentpage = 1;
|
canMove();
|
}
|
|
//尾页
|
public void moveToLast() {
|
if (currentpage >= pagecount)
|
return;
|
currentpage = pagecount;
|
canMove();
|
}
|
|
//上一页
|
public void moveToPrevious() {
|
if (currentpage == 1)
|
return;
|
currentpage = currentpage - 1;
|
canMove();
|
}
|
|
//下一页
|
public void moveToNext() {
|
if (currentpage >= pagecount)
|
return;
|
|
currentpage = currentpage + 1;
|
canMove();
|
}
|
|
//判断是否可翻页
|
public void canMove() {
|
hasPrevious = false;
|
hasNext = false;
|
if (pagecount > 1 && currentpage > 1)
|
hasPrevious = true;
|
if (pagecount > 1 && currentpage < pagecount)
|
hasNext = true;
|
}
|
|
//刷新当前页
|
public PageReference refreshPageSize() {
|
makeCurrentPageRecords();
|
return null;
|
}
|
|
//编辑当前页内容
|
public void makeCurrentPageRecords() {
|
Integer startIdx;
|
Integer endIdx;
|
|
pageRecords = new List<ConsumableorderdetailsInfo>();
|
startIdx = (currentpage - 1) * pagesize;
|
endIdx = (currentpage - 1) * pagesize + pagesize;
|
if (endIdx > consumableorderdetailsRecords.size()) {
|
endIdx = consumableorderdetailsRecords.size();
|
}
|
|
for (Integer i = startIdx; i < endIdx; i++) {
|
pageRecords.add(consumableorderdetailsRecords.get(i));
|
}
|
}
|
|
// Data Bean
|
class ConsumableorderdetailsInfo implements Comparable {
|
public Consumable_order_details2__c esd { get; set; }
|
public Product2__c Prod { get; set; }
|
public Decimal allnumber { get; set; }
|
public Integer packing_list { get; set; }
|
public Date expiration_Date { get; set; }
|
public String approbation_No { get; set; }
|
public Consumable_order__c Concc { get; set; }
|
public Boolean sortBy { get; set; }
|
public Decimal upperlimit { get; set; }
|
public Decimal lowerlimit { get; set; }
|
public String BoxPiece { get; set; }
|
public Date guaranteeperiod { get; set; }
|
public Decimal limitCount { get; set; }
|
public Decimal overlimitCount { get; set; }
|
public Boolean hospitalSpecialOffer { get; set; }
|
|
public ConsumableorderdetailsInfo(Product2__c e) {
|
esd = new Consumable_order_details2__c();
|
Prod = e;
|
allnumber = 0;
|
limitCount = 0;
|
overlimitCount = 0;
|
}
|
// 排序
|
public Integer compareTo(Object compareTo) {
|
ConsumableorderdetailsInfo compareToesd = (ConsumableorderdetailsInfo) compareTo;
|
Integer returnValue = 0;
|
if (sortBy == false) {
|
if (allnumber > compareToesd.allnumber) {
|
returnValue = -1;
|
} else if (allnumber < compareToesd.allnumber) {
|
returnValue = 1;
|
}
|
return returnValue;
|
} else {
|
if (allnumber > compareToesd.allnumber) {
|
returnValue = 1;
|
} else if (allnumber < compareToesd.allnumber) {
|
returnValue = -1;
|
}
|
return returnValue;
|
}
|
}
|
}
|
}
|