global with sharing class InventoryReportDetailController extends CreateRelationListPagingCtrlBase { public override Integer getSearchNumMax() { //各ページに制御あれば、最大件数を指定する // searchNumMax = Integer.valueOf(Label.Product_Select_Limit); // searchNumMax = 100; pagesize = '200'; return 20000; } public override Boolean getIsNeedRunSearch() { return true; } public override String getWidth0Field() { return ''; } /* 選択されたデータ取得用Soql Fromから*/ public override String getSelectedDataSql() { myComponentController.columnRightRW.put('Inventory_Chujie_Count_Jia__c', 'r'); myComponentController.columnRightRW.put('WH_Location__c', 'r'); myComponentController.columnRightRW.put('SerialNumber__c', 'r'); myComponentController.columnRightRW.put('Equipment_Type__c', 'r'); myComponentController.columnRightRW.put('Fixture_Model_No__c', 'r'); myComponentController.columnRightRW.put('Internal_asset_location__c', 'r'); myComponentController.columnRightRW.put('Salesdepartment__c', 'r'); myComponentController.columnRightRW.put('Inventory_Diaobo_Count_Jia__c', 'r');//20210531 you 1650 return ''; } public override List getWritableColumnFieldList() { return new List{'Remarks_Person__c', 'Inventory_Remarks__c'}; } public override String getOriginObjName() { // オブジェクトAPI名 if(this.isConsum){ originObjName = 'Consum_Inventory_Detail__c'; } else{ originObjName = 'Inventory_Detail__c'; } return originObjName; } public override String getOriginObjColumns() { // 項目セット originObjColumns = 'Id'; return originObjColumns; } public override String getObjName() { // オブジェクトAPI名 if(this.isConsum){ objName = 'Consum_Inventory_Detail__c'; } else{ objName = 'Inventory_Detail__c'; } return objName; } // ページコントローラに検索処理は、WhereSoql作成のみ、パラメータとして、コンポーネントに渡される public override String getSqlWhereStr() { sqlWhereStr = ''; if (getIsNeedRunSearch()) { sqlWhereStr = this.makeSoql(keywdSort); system.debug(sqlWhereStr); } return sqlWhereStr; } public override String getColumnLeftFieldSetName() { // 左の項目セット // columnLeftFieldSetName = 'InventoryReportRecord_FieldSet'; // return columnLeftFieldSetName; return ''; } public override String getColumnRightFieldSetName() { // 右の項目セット if(this.isConsum){ columnRightFieldSetName = 'ConsumInventoryReportRecord_FieldSet'; } else if(angecylookrole==false){//20210628 you 1650 columnRightFieldSetName = 'InventoryReportRecord_FieldSet_Angecy'; }else{ columnRightFieldSetName = 'InventoryReportRecord_FieldSet'; } return columnRightFieldSetName; } public override List getColumnFieldList() { // strColumus 里加 field return new List{'Asset__c'}; } public override String getFKColumnField() { // getObjName 连 getOriginObjName 的 FK return ''; } public override String getRecordTypeId() { //ページレイアウトを収得するのレコードタイプ recordTypeId = ''; return recordTypeId; } public override String getOrderbyStr() { return 'order by Inventory_Remarks__c ASC nulls last, Fixture_Model_No__c, SerialNumber__c'; } private String keywdSort = null; public String saveType { get; set; } public String keyword { get; set; } public Inventory_Header__c parentObj { get; private set; } public String invDetailResultRemark {get; private set;} // 盘点明细画面查询结果说明 public static bp3_Setting__c conf = bp3_Setting__c.getOrgDefaults(); public String assetStatus {get; set;} // 备品状态 Asset_Status__c public String compareOperator {get; set;} public Consum_Inventory_Detail__c sampleCiDetail {get;set;} //public Asset sonObj { get; set; } public Boolean isConsum {get;set;} public Boolean angecylookrole {get; set;} // 只读权限 1650 20210628 public String bieCunFangDi { get; set; } //别存放地, 肯定有值 不为null public List assetStatusOptionList { get { List selectOptions = new List {new SelectOption('', '--全部--') }; selectOptions.add(new SelectOption('未盘点', '未盘点')); selectOptions.add(new SelectOption('已盘点', '已盘点')); return selectOptions; } } private void searchOppSetParam() { this.keywdSort = this.keyword; } public PageReference searchOpp() { searchOppSetParam(); if (!getIsNeedRunSearch()) { return null; } getSqlWhereStr(); myComponentController.searchAndPaging(); return null; } public InventoryReportDetailController() { } public InventoryReportDetailController(ApexPages.StandardController controller) { try { angecylookrole = false; isNeedCheckEvent = true; this.parentId = ApexPages.currentPage().getParameters().get('ivt_headId'); this.invDetailResultRemark = conf.Inventory_Detail_Result_Remark__c; this.sampleCiDetail = new Consum_Inventory_Detail__c(); this.isConsum = false; // 盘点表头の情報を取得--有ivt_headId的话根据id取盘点表头,否则取当前用户所在备品存放地最新一条 if (!String.isBlank(this.parentId)) { List parentObjs = [ SELECT Id, Internal_asset_location__c, Name, Inventory_Start_Date__c , Inventory_Status__c, InventoryPIC__c, Fixture_Header__c FROM Inventory_Header__c WHERE Id = :parentId ]; if (!parentObjs.isEmpty()) { parentObj = parentObjs.get(0); //20210628 you 1650 办事处看不到 货架号 bieCunFangDi = parentObj.Internal_asset_location__c; system.debug('zheli0'+bieCunFangDi); if (bieCunFangDi=='广州 备品中心' || bieCunFangDi=='北京 备品中心' || bieCunFangDi=='上海 备品中心') { angecylookrole =true; } } else { throw new ControllerUtil.myException('没有可以操作的盘点明细或者盘点表头数据不正确。'); } } else { User currUser = [ SELECT Id, Name, Default_Referable_Apply_Equipment_Center__c FROM User WHERE Id = :UserInfo.getUserId() ]; if (String.isBlank(currUser.Default_Referable_Apply_Equipment_Center__c)) { ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '当前用户所在地不能为空')); } //20210628 you 1650 办事处看不到 货架号 bieCunFangDi = currUser.Default_Referable_Apply_Equipment_Center__c; if (bieCunFangDi=='广州 备品中心' || bieCunFangDi=='北京 备品中心' || bieCunFangDi=='上海 备品中心') { angecylookrole =true; } List ihObjList = [ SELECT Id, Internal_asset_location__c, Name, Inventory_Start_Date__c , Inventory_Status__c, InventoryPIC__c, Fixture_Header__c FROM Inventory_Header__c WHERE Internal_asset_location__c = :currUser.Default_Referable_Apply_Equipment_Center__c AND Inventory_Status__c <> '处理中' ORDER BY Inventory_Start_Date__c desc LIMIT 1 ]; if (ihObjList.size() == 0) { this.parentId = 'temp'; // 如果parentId为空,当前controller的myexception会被共通的'Id必须指定'覆盖 throw new ControllerUtil.myException('当前用户所在地区没有盘点报告, 或者盘点报告状态为处理中'); } else { parentObj = ihObjList[0]; this.parentId = parentObj.Id; } } this.isConsum = String.isNotBlank(parentObj.Fixture_Header__c); } catch (ControllerUtil.myException me) { System.debug(LoggingLevel.ERROR, 'myException caught when init: ' + me.getMessage() + me.getStackTraceString()); ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, 'when init ' + me.getMessage())); return; } catch (Exception e) { System.debug(LoggingLevel.ERROR, 'Exception caught when init: ' + e.getMessage() + e.getStackTraceString()); ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, 'when init ' + e.getMessage())); return; } } // 画面初始化 public void init() { try { assetStatus = ''; isNeedSearchFirst = true; isNeedCheckEvent = true; searchOppSetParam(); getSqlWhereStr(); } catch (ControllerUtil.myException me) { System.debug('myException caught when init: ' + me.getMessage()); ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, me.getMessage())); return; } catch (Exception e) { System.debug('Exception caught when init: ' + e.getStackTraceString()); ApexPages.addMessages(e); return; } } public override void setViewList(List queryList) { system.debug('●●●●● setViewList START ' ); viewList = new List(); if (queryList.size() > 0) { final String soqlStr = 'SELECT {0} {1} '; String whereStr = ' FROM ' + this.getObjName() + ' WHERE ID IN: queryList'; String soql = String.format(soqlStr, new String[] {myComponentController.strColumus , whereStr}); List InDList = null; InDList = Database.query(soql); Set assetSet = new Set(); Map orderMap = null; if(this.isConsum){ orderMap = new Map(); for (sObject sObj : InDList) { Consum_Inventory_Detail__c InD = (Consum_Inventory_Detail__c) sObj; orderMap.put(InD.Id, InD); assetSet.add(InD.Asset__c); } } else{ orderMap = new Map(); for (sObject sObj : InDList) { Inventory_Detail__c InD = (Inventory_Detail__c) sObj; orderMap.put(InD.Id, InD); assetSet.add(InD.Asset__c); } } List statusArList = new List(); List statusYList = new List(); List statusKList = new List(); if(this.isConsum){ statusArList = [ SELECT Asset_Status__c status, sum(Amount__c) quantity , sum(Inventory_Count__c) invShipanCount, sum(Inventory_Deviation__c) deviaCount, sum(Asset__r.Abandoned_Inventory__c) abCount , Asset__c assetId FROM Consum_Inventory_Detail__c WHERE Asset__c in :assetSet AND Inventory_Header__c = :parentId AND Asset_Status__c!='已消耗明细' GROUP BY Asset_Status__c, Asset__c ]; // 页面显示"盘盈/盘亏"只计算有盘点时间的 statusYList = [ SELECT Asset_Status__c status, sum(Inventory_Deviation__c) yDeviaCount , Asset__c assetId FROM Consum_Inventory_Detail__c WHERE Asset__c in :assetSet AND Inventory_Header__c = :parentId AND Inventory_Time__c <> null AND Inventory_Deviation__c > 0 // 盘盈 AND Asset_Status__c!='已消耗明细' GROUP BY Asset_Status__c, Asset__c ]; statusKList = [ SELECT Asset_Status__c status, sum(Inventory_Deviation__c) kDeviaCount , Asset__c assetId FROM Consum_Inventory_Detail__c WHERE Asset__c in :assetSet AND Inventory_Header__c = :parentId AND Inventory_Time__c <> null AND Inventory_Deviation__c < 0 // 盘亏 AND Asset_Status__c!='已消耗明细' GROUP BY Asset_Status__c, Asset__c ]; } else{ statusArList = [ SELECT Asset_Status__c status, sum(Amount__c) quantity , sum(Inventory_Count__c) invShipanCount, sum(Inventory_Deviation__c) deviaCount , Asset__c assetId FROM Inventory_Detail__c WHERE Asset__c in :assetSet AND Inventory_Header__c = :parentId AND Asset_Status__c <> '丢失借出明细' GROUP BY Asset_Status__c, Asset__c ]; // 页面显示"盘盈/盘亏"只计算有盘点时间的 statusYList = [ SELECT Asset_Status__c status, sum(Inventory_Deviation__c) yDeviaCount , Asset__c assetId FROM Inventory_Detail__c WHERE Asset__c in :assetSet AND Inventory_Header__c = :parentId AND Asset_Status__c <> '丢失借出明细' AND Inventory_Time__c <> null AND Inventory_Deviation__c > 0 // 盘盈 GROUP BY Asset_Status__c, Asset__c ]; statusKList = [ SELECT Asset_Status__c status, sum(Inventory_Deviation__c) kDeviaCount , Asset__c assetId FROM Inventory_Detail__c WHERE Asset__c in :assetSet AND Inventory_Header__c = :parentId AND Asset_Status__c <> '丢失借出明细' AND Inventory_Time__c <> null AND Inventory_Deviation__c < 0 // 盘亏 GROUP BY Asset_Status__c, Asset__c ]; } Map assetCountMap = new Map(); for (AggregateResult ar : statusArList) { StatusCount statusCount = new StatusCount(0); Integer amount = (Integer.valueOf(ar.get('quantity')) == null) ? 0 : Integer.valueOf(ar.get('quantity')); // 应盘数 Integer acAmount = (Integer.valueOf(ar.get('invShipanCount')) == null) ? 0 : Integer.valueOf(ar.get('invShipanCount')); // 实盘数 (没有实盘的话显示空) Integer abmount = 0; if(isConsum){ abmount = (Integer.valueOf(ar.get('abCount')) == null) ? 0 : Integer.valueOf(ar.get('abCount')); // 应盘数 } Id assId = String.valueof(ar.get('assetId')); if (assetCountMap.get(assId) != null) { statusCount = assetCountMap.get(assId); } if (Integer.valueOf(ar.get('invShipanCount')) != null) { statusCount.ifSPNotNull = true; // 有实盘记录 } if (ar.get('status') == '在库') { statusCount.zaikuNum += amount; statusCount.quantity += abmount; } else if (ar.get('status') == '维修中') { statusCount.weixiuNum += amount; // 应盘维修中 } else if (ar.get('status') == '出借中') { statusCount.chujieNum += amount; // 应盘出借中 } else if (ar.get('status') == '丢失') { statusCount.diushiNum += amount; // 应盘丢失 } else if (ar.get('status') == '冻结') { statusCount.zaikuNum += amount; // 盘点在库数='在库'应盘数+'冻结'应盘数 } else if (ar.get('status') == '已消耗') { statusCount.xiaohaoNum += amount; } else if (ar.get('status') == '调拨中') {//20210531 you 1650 应盘调拨中 statusCount.diaoboNum += amount; } if(ar.get('status') != '已消耗'){ statusCount.quantity += amount; // 应盘数量 statusCount.shipanNum += acAmount; // 实盘数量 } assetCountMap.put(assId, statusCount); for (AggregateResult yAggr : statusYList) { Integer yWuchaAmount = (Integer.valueOf(yAggr.get('yDeviaCount')) == null) ? 0 : Integer.valueOf(yAggr.get('yDeviaCount')); // 盘点误差(盘盈/盘亏) if (String.valueof(ar.get('assetId')) == String.valueof(yAggr.get('assetId')) && String.valueOf(ar.get('status')) == String.valueOf(yAggr.get('status'))) { if (assetCountMap.containsKey(assId)) { statusCount = assetCountMap.get(assId); } statusCount.wuchaNum += yWuchaAmount; // 盘点误差(盘盈/盘亏) statusCount.panyinNum += yWuchaAmount; // 实际盘盈 assetCountMap.put(assId, statusCount); break; } } for (AggregateResult kAggr : statusKList) { Integer kWuchaAmount = (Integer.valueOf(kAggr.get('kDeviaCount')) == null) ? 0 : Integer.valueOf(kAggr.get('kDeviaCount')); // 盘点误差(盘盈/盘亏) if (String.valueof(ar.get('assetId')) == String.valueof(kAggr.get('assetId')) && String.valueOf(ar.get('status')) == String.valueOf(kAggr.get('status'))) { if (assetCountMap.containsKey(assId)) { statusCount = assetCountMap.get(assId); } statusCount.wuchaNum += kWuchaAmount; // 盘点误差(盘盈/盘亏) statusCount.pankuiNum += -kWuchaAmount; // 实际盘亏 assetCountMap.put(assId, statusCount); break; } } } for (Integer i = 0; i < queryList.size(); i++) { if(this.isConsum){ Consum_Inventory_Detail__c idcQueryObj = (Consum_Inventory_Detail__c) orderMap.get(queryList[i].Id); Id eachId = idcQueryObj.Asset__c; StatusCount eachSCount = assetCountMap.get(eachId); if (eachSCount != null) { idcQueryObj.Inventory_Zaiku_Count_Jia__c = eachSCount.zaikuNum; // 实盘数 (没有实盘的话显示空) if (eachSCount.shipanNum == 0 && eachSCount.ifSPNotNull == false) { idcQueryObj.Inventory_Shipan_Count_Jia__c = null; } else { idcQueryObj.Inventory_Shipan_Count_Jia__c = eachSCount.shipanNum; } idcQueryObj.Inventory_Chujie_Count_Jia__c = eachSCount.chujieNum; idcQueryObj.Inventory_Quantity_Jia__c = eachSCount.quantity; idcQueryObj.Inventory_Deviation_Jia__c = eachSCount.wuchaNum; idcQueryObj.Inventory_Profit_Quantity__c = eachSCount.panyinNum; idcQueryObj.Inventory_Loss_Quantity__c = eachSCount.pankuiNum; idcQueryObj.Consumed_Count_Jia__c = eachSCount.xiaohaoNum; } if (idcQueryObj != null) { viewList.add(new WrapperInfo(idcQueryObj, myComponentController)); viewList[viewList.size() - 1].lineNo = viewList.size() - 1; // setChangeFlg用到 viewList[viewList.size() - 1].check = true; viewList[viewList.size() - 1].oldCheck = true; } } else{ Inventory_Detail__c idcQueryObj = (Inventory_Detail__c) orderMap.get(queryList[i].Id); Id eachId = idcQueryObj.Asset__c; StatusCount eachSCount = assetCountMap.get(eachId); if (eachSCount != null) { idcQueryObj.Inventory_Zaiku_Count_Jia__c = eachSCount.zaikuNum; // 实盘数 (没有实盘的话显示空) if (eachSCount.shipanNum == 0 && eachSCount.ifSPNotNull == false) { idcQueryObj.Inventory_Shipan_Count_Jia__c = null; } else { idcQueryObj.Inventory_Shipan_Count_Jia__c = eachSCount.shipanNum; } idcQueryObj.Inventory_Weixiu_Count_Jia__c = eachSCount.weixiuNum; idcQueryObj.Inventory_Chujie_Count_Jia__c = eachSCount.chujieNum; idcQueryObj.Inventory_Quantity_Jia__c = eachSCount.quantity; idcQueryObj.Inventory_Deviation_Jia__c = eachSCount.wuchaNum; idcQueryObj.Inventory_Profit_Quantity__c = eachSCount.panyinNum; idcQueryObj.Inventory_Loss_Quantity__c = eachSCount.pankuiNum; idcQueryObj.Inventory_Daibaofei_Diushi_Count_Jia__c = eachSCount.diushiNum; idcQueryObj.Inventory_Diaobo_Count_Jia__c = eachSCount.diaoboNum;//20210531 you 1650 } if (idcQueryObj != null) { viewList.add(new WrapperInfo(idcQueryObj, myComponentController)); viewList[viewList.size() - 1].lineNo = viewList.size() - 1; // setChangeFlg用到 viewList[viewList.size() - 1].check = true; viewList[viewList.size() - 1].oldCheck = true; } } } } system.debug('●●●●● setViewList END ' ); } /** * 保存备注&备注人 */ public void save() { try{ if(this.isConsum){ List changedAsset = new List(); for (WrapperInfo wrapper : this.viewList) { if (wrapper.changeFlg != '0') { changedAsset.add((Consum_Inventory_Detail__c)wrapper.sobj); } } upsert changedAsset; } else{ List changedAsset = new List(); for (WrapperInfo wrapper : this.viewList) { if (wrapper.changeFlg != '0') { changedAsset.add((Inventory_Detail__c)wrapper.sobj); } } upsert changedAsset; } if (saveType == '1') { searchOpp(); saveType = ''; } } catch (Exception e) { System.debug('Exception caught when save: ' + e.getStackTraceString()); ApexPages.addMessages(e); } } /************************** 检索条件 **************************/ public String modelNo { get; set; } // 备品型号 public String assetNumberKey { get; set; } // 固定资产号(key) public String serialNo { get; set; } // 机身号 public String whLocation { get; set; } // 货架号 public String bpPankuiYing { get; set; } // 盘亏/盘盈 public String bpBodyFushupin { get; set; } // 主体/附属品 public String ifInternalAsset { get; set; } // 是否固定资产 public String bieChanPinFenLei { get; set; } // 产品分类(GI/SP) public String bieBeiPinFenLei { get; set; } // 备品分类 public String bieManageType { get; set; } // 管理种类 // 盘亏/盘盈 SelectOption public List getbpPankuiYingOps() { return new List{new SelectOption('', '--全部--'), new SelectOption('Panying', '盘盈'), new SelectOption('Pankui', '盘亏')}; } // 主体/附属品 SelectOption public List getbpBodyFushupinOps() { return new List{new SelectOption('', '--全部--'), new SelectOption('Zhuti', '主体'), new SelectOption('Fushupin', '附属品')}; } // 是否固定资产 SelectOption public List getifInternalAssetOps() { return new List{new SelectOption('', '--全部--'), new SelectOption('true', '固定资产'), new SelectOption('false', '非固定资产')}; } // 产品分类 SelectOption public List getbieChanPinFenLeiOps() { return FixtureUtil.bieChanPinFenLeiOpsMap.get('GISP'); } // 备品分类 SelectOption public List getbieBeiPinFenLeiOps() { List bpfl = FixtureUtil.bieBeiPinFenLeiOpsMap.get('备品分类'); if(bpfl.get(3).getLabel() != '检测用备品'){ bpfl.add(3, new SelectOption('检测用备品','检测用备品')); } if(bpfl.get(4).getLabel() != '空白'){ bpfl.add(4, new SelectOption('空白','空白')); } return bpfl; } // 管理种类 SelectOption public List getbieManageTypeOps() { return new List{new SelectOption('', '--全部--'), new SelectOption('数量管理', '数量管理'), new SelectOption('个体管理', '个体管理')}; } // 消耗品有效期至 比较符 SelectOption public List getCompareOperatorOps() { List options = new List(); options.add(new SelectOption('=', '等于')); options.add(new SelectOption('>', '大于')); options.add(new SelectOption('<', '小于')); options.add(new SelectOption('>=', '大于等于')); options.add(new SelectOption('<=', '小于等于')); return options; } // 检索条件 private String makeSoql(String keyword) { String soql =' WHERE Sync_Asset_Record_Flag__c = true'; soql += ' AND Inventory_Header__c = \'' + String.escapeSingleQuotes(parentId) + '\''; soql += ' AND Internal_asset_location__c = \'' + String.escapeSingleQuotes(parentObj.Internal_asset_location__c) + '\''; if (String.isNotBlank(keyword)) { String[] vals = keyword.split(' '); soql += ' AND ('; String fmodelno = ''; for (String v : vals) { // 关键字 -- 盘点备注 // fmodelno += ' Asset_Status__c LIKE \'%' + String.escapeSingleQuotes(v.replaceAll('%', '\\%')) + '%\' '; fmodelno += ' Inventory_Remarks__c LIKE \'%' + String.escapeSingleQuotes(v.replaceAll('%', '\\%')) + '%\''; fmodelno += 'OR'; } fmodelno = fmodelno.removeEnd('OR'); soql += fmodelno + ' )'; } // 备品配套明细型号 if (String.isNotBlank(modelNo)) { soql += ' AND Fixture_Model_No__c = \'' + String.escapeSingleQuotes(modelNo) + '\''; } // 固定资产号(key) if (String.isNotBlank(assetNumberKey)) { soql += ' AND Internal_Asset_number__c = \'' + String.escapeSingleQuotes(assetNumberKey) + '\''; } // 机身号 if (String.isNotBlank(serialNo)) { soql += ' AND SerialNumber__c = \'' + String.escapeSingleQuotes(serialNo) + '\''; } // 备品状态 if (String.isNotBlank(assetStatus)) { if (assetStatus == '未盘点') soql += ' AND Asset_Inventory_Flg__c = false '; if (assetStatus == '已盘点') soql += ' AND Asset_Inventory_Flg__c = true '; } // 货架号 if (String.isNotBlank(whLocation)) { soql += ' AND WH_location__c = \'' + String.escapeSingleQuotes(whLocation) + '\''; } // 盘亏/盘盈 if (bpPankuiYing == 'Panying') { soql += ' AND Sync_Asset_Profit_Quantity__c > 0 '; } else if (bpPankuiYing == 'Pankui') { soql += ' AND Sync_Asset_Frozen_Quantity__c > 0 '; } // 主体/附属品 if (bpBodyFushupin == 'Zhuti') { soql += ' AND Main_OneToOne__c = true '; } else if (bpBodyFushupin == 'Fushupin') { soql += ' AND Loaner_accsessary__c = true '; } // 是否固定资产 if (ifInternalAsset == 'true') { soql += ' AND Internal_Asset_number__c <> null '; } else if (ifInternalAsset == 'false') { soql += ' AND Internal_Asset_number__c = null '; } // 产品分类(GI/SP) if (String.isNotBlank(bieChanPinFenLei)) { soql += ' AND Product_category__c = \'' + String.escapeSingleQuotes(bieChanPinFenLei) + '\''; } // 备品分类 if (String.isNotBlank(bieBeiPinFenLei)) { if((bieBeiPinFenLei) == '空白'){ soql += ' AND Equipment_Type__c = null'; } else { soql += ' AND Equipment_Type__c = \'' + String.escapeSingleQuotes(bieBeiPinFenLei) + '\''; } } // 管理种类 if (String.isNotBlank(bieManageType)) { soql += ' AND Manage_type__c = \'' + String.escapeSingleQuotes(bieManageType) + '\''; } // 消耗品有效期 if (this.isConsum && String.isNotBlank(String.valueOf(sampleCiDetail.Consumable_Guaranteen_end__c))) { soql += ' AND Consumable_Guaranteen_end__c ' + compareOperator + String.escapeSingleQuotes(String.valueOf(sampleCiDetail.Consumable_Guaranteen_end__c)); } return soql; } public class StatusCount { public Integer zaikuNum; // 应盘在库+应盘冻结 public Integer shipanNum; // 实盘 public Integer weixiuNum; // 实盘维修 public Integer chujieNum; // 实盘出借 public Integer diushiNum; // 实盘丢失 public Integer xiaohaoNum; // 实盘消耗 public Integer quantity; // 应盘数量 public Integer wuchaNum; // 盘点误差(盘盈/盘亏) public Integer panyinNum; // 盘点误差(盘盈) public Integer pankuiNum; // 盘点误差(盘亏) public Boolean ifSPNotNull;// 是否实盘过 public Integer diaoboNum; // 实盘调拨 20210531 you 1650 public StatusCount(Integer initData) { this.zaikuNum = initData; this.shipanNum = initData; this.weixiuNum = initData; this.chujieNum = initData; this.diushiNum = initData; this.xiaohaoNum = initData; this.quantity = initData; this.wuchaNum = initData; this.panyinNum = initData; this.pankuiNum = initData; this.ifSPNotNull = false; this.diaoboNum = initData;// 20210531 you 1650 } } }