Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManager.java =================================================================== diff -u -r12738 -r12811 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManager.java (.../DisposableGoodsStockManager.java) (revision 12738) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DisposableGoodsStockManager.java (.../DisposableGoodsStockManager.java) (revision 12811) @@ -1,5 +1,7 @@ package com.forgon.disinfectsystem.diposablegoods.service; +import net.sf.json.JSONObject; + import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; /** @@ -13,4 +15,22 @@ * @return */ public DisposableGoodsStock getDisposableGoodsStockByDisposableGoodsId(String disposableGoodsId,String wareHouseId); + /** + * 验证库存 + * @param id + * @param name + * @param specification + * @return + */ + public boolean verifyDiposableGoods(String id, String name, + String specification); + /** + * 获取一次性物品库存列表 + * @param spell + * @param allItems + * @param wareHouseId + * @return + */ + public JSONObject searchDisposableGoodsStockList(String spell, + String allItems, String wareHouseId); } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManagerImpl.java =================================================================== diff -u -r12789 -r12811 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManagerImpl.java (.../DiposableGoodBatchStockManagerImpl.java) (revision 12789) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManagerImpl.java (.../DiposableGoodBatchStockManagerImpl.java) (revision 12811) @@ -220,7 +220,7 @@ public List getDiposableGoodBatchInfoByDiposableGoodsId( String id,String wareHouseId, boolean selectAll) { if (StringUtils.isNotBlank(id)) { - String sql = " where po.diposableGoods.id = " + id; + String sql = " where po.disposableGoodsID = " + id; if (!selectAll) { sql += " and po.storage > 0"; } @@ -232,7 +232,6 @@ } return null; } - /** * 根据一次性物品定义拿到该物品对应的任意一个标识号 * Index: ssts-web/src/main/webapp/disinfectsystem/stocktakeinfomanager/stockTakeInfoView.js =================================================================== diff -u -r12804 -r12811 --- ssts-web/src/main/webapp/disinfectsystem/stocktakeinfomanager/stockTakeInfoView.js (.../stockTakeInfoView.js) (revision 12804) +++ ssts-web/src/main/webapp/disinfectsystem/stocktakeinfomanager/stockTakeInfoView.js (.../stockTakeInfoView.js) (revision 12811) @@ -160,7 +160,7 @@ // 清空批次 clearBatchNumber(); // DiposableGoodsTableManager.getBatchNumbersByDiposableGoodsId(record.data.id,"inStock",function(batchNumbers){ - DiposableGoodsTableManager.getBatchsByDiposableGoodsId(record.data.id,top.Ext.getCmp('wareHouseId').getValue(),false,function(batchesStr){ + DiposableGoodsTableManager.getBatchsByDisposableGoodsIDAndWareHouse(record.data.id,top.Ext.getCmp('wareHouseId').getValue(),false,function(batchesStr){ var batches = JSON.parse(batchesStr); // alert(batchesStr) transBatchesDate(batches); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/DiposableGoodsTableManager.java =================================================================== diff -u -r12790 -r12811 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/DiposableGoodsTableManager.java (.../DiposableGoodsTableManager.java) (revision 12790) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/DiposableGoodsTableManager.java (.../DiposableGoodsTableManager.java) (revision 12811) @@ -165,7 +165,39 @@ } return batchs; } - + /** + * 根据一次性物品定义的id获取批次 + * @param id 一次性物品定义id + * @param wareHouseId 仓库id + * @param selectAll 是获取所有还是只获取供应室可以申请的 + * @return + */ + public String getBatchsByDisposableGoodsIDAndWareHouse(String disposableGoodsId,String wareHouseId, + boolean selectAll){ + List batchStocks = diposableGoodBatchStockManager + .getDiposableGoodBatchInfoByDiposableGoodsId(disposableGoodsId,wareHouseId, selectAll); + String batchs = "[]"; + if(batchStocks != null){ + batchs = JSONUtil.toJSONStringEx(batchStocks,true,DisposableGoodsBatchStock.filterProperties); + } + return batchs; + } + /** + * 根据一次性物品库存的id获取批次 + * @param disposableGoodsStockId 一次性物品库存id + * @param wareHouseId 仓库id + * @param selectAll 是获取所有还是只获取供应室可以申请的 + * @return + */ + public String getBatchsByDisposableGoodsStockIdAndWareHouse(String disposableGoodsStockId,String wareHouseId, + boolean selectAll){ + DisposableGoodsStock goodsStock = this.diposableGoodsManager.getDiposableGoodsStockById(disposableGoodsStockId); + String batchs = "[]"; + if(goodsStock != null && StringUtils.equals(goodsStock.getWarehouseID() + "", wareHouseId)){ + return getBatchsByDisposableGoodsIDAndWareHouse(goodsStock.getDisposableGoodsID() + "",wareHouseId,selectAll); + } + return batchs; + } public String getExpDateByDiposableGoodsId_batcherNum(String id, String batcherNumber) { java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/godownOutView.js =================================================================== diff -u -r12797 -r12811 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/godownOutView.js (.../godownOutView.js) (revision 12797) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/godownOutView.js (.../godownOutView.js) (revision 12811) @@ -8,7 +8,7 @@ var PriceRecord = null; // 清除表单数据 function clearFormData(){ - diposableGoodsBatchNumStore.removeAll(); + disposableGoodsBatchNumStore.removeAll(); priceStore.removeAll(); } // 清空批次和价格 @@ -17,7 +17,7 @@ clearPrice(); } function clearBatchNumber() { - clearCombo(diposableGoodsBatchNumStore,'batchNumber1'); + clearCombo(disposableGoodsBatchNumStore,'batchNumber1'); } // 清空价格 function clearPrice() { @@ -31,7 +31,7 @@ } for(var i = 0;i> mapList = getDisposableGoodsStockListInternal( + wareHouseId, sql,true); + Map map = new HashMap(); + map.put("totalCount", mapList.size()); + map.put("data", mapList); + return JSONObject.fromObject(map); + } + /** + * 将一次性物品的库存信息放入List列表中 + * @param wareHouseId + * @param sql + * @param showReferencePrice + * @return + */ + @SuppressWarnings("unchecked") + private List> getDisposableGoodsStockListInternal( + String wareHouseId, String sql,boolean showReferencePrice) { + List disposableGoodsStockList = objectDao.findBySql( + DisposableGoodsStock.class.getSimpleName(), sql); + + SupplyRoomConfig config = supplyRoomConfigManager.getSystemParamsObj(); + double floatPercent = config.getDiposablePriceFluctuation();// 一次性物品浮动价格系数/ + List> mapList = new ArrayList>(); + for (DisposableGoodsStock disposableGoodsStock : disposableGoodsStockList) { + Map item = buildDisposableGoodsStockPropertyMap(disposableGoodsStock,floatPercent, + showReferencePrice); + if(item != null){ + mapList.add(item); + } + } + return mapList; + } + /** + * 创建获取一次性物品库存的基本sql + * @param simpleSpell + * @param allItems + * @return + */ + private String buildGetDisposableGoodsStockSql(String simpleSpell, + String allItems) { + String sql; + if (StringUtils.equals(allItems, "yes")) { + sql = "where 1=1"; + } else { + sql = " where po.isApplicationMaterial = '" + + DisposableGoods.CONSTANT_YES + "'"; + } + + Matcher m = Constants.ChineseCharPattern.matcher(simpleSpell); + String searchMode = AcegiHelper.getLoginUser().getSearchMode(); + if (StringUtils.isNotBlank(simpleSpell)) { + simpleSpell = simpleSpell.toUpperCase(); + if (m.find()) { + sql += " and po.name like '%" + simpleSpell + "%'"; + } else { + sql += Util.getSearchSQLByUserSetting(searchMode, + simpleSpell); + } + } + return sql; + } + /** + * 创建一次性物品库存的性质/值对 + * @param goodsStock + * @param floatPercent + * @param showReferencePrice + * @return + */ + private Map buildDisposableGoodsStockPropertyMap( + DisposableGoodsStock disposableGoodsStock,double floatPercent,boolean showReferencePrice) { + Map temp = new HashMap(); + if(disposableGoodsStock == null) + return temp; + + + String goodsName = DisposableGoodsUtils.getDisposableGoodsFullName(disposableGoodsStock.getName(), + disposableGoodsStock.getSpecification()) ; + + temp.put("id", disposableGoodsStock.getId()); + // TousseDefintionManagerImpl中的查询加上了type,需确认是否可以去掉 + temp.put("type", "一次性物品"); + + temp.put("name", goodsName); + temp.put("spelling", disposableGoodsStock.getSpelling()); + temp.put("amount", disposableGoodsStock.getAmount()); + temp.put("externalCode", disposableGoodsStock.getExternalCode()); + temp.put("minApplyAmount", disposableGoodsStock.getMinApplyAmount()); + temp.put("unit", StringTools.getDefaultString(disposableGoodsStock.getUnit())); + temp.put("tousseType", "一次性物品"); + temp.put("packageSpec", disposableGoodsStock.getPackageSpec()); + + String displayName; + + if (showReferencePrice) { + temp.put("referencePrice", disposableGoodsStock.getReferencePrice()); + + // 价格修改为浮动价格 + Double price = diposableGoodBatchStockManager.getRecentPrice(disposableGoodsStock); + price = MathTools.mul(price, floatPercent, 2); + temp.put("price", price); + displayName = getDisposableGoodsStockDisplayName(disposableGoodsStock,price); + }else{ + displayName = getDisposableGoodsStockDisplayName(disposableGoodsStock); + } + + temp.put("displayName", displayName); + + return temp; + } + /** + * 获取库存的显示名称,会显示当前有多少库存 + * @param disposableGoodsStock + * @return + */ + private String getDisposableGoodsStockDisplayName(DisposableGoodsStock disposableGoodsStock){ + if(disposableGoodsStock == null){ + return StringTools.EMPTY; + } + String displayName = DisposableGoodsUtils.getDisposableGoodsFullName( + disposableGoodsStock.getName(),disposableGoodsStock.getSpecification()); + displayName += "(库存:"; + displayName += disposableGoodsStock.getAmount(); + displayName += ")"; + return displayName; + } + /** + * 获取库存的显示名称,根据price是否为null来显示参考价格,同时也显示库存 + * @param disposableGoodsStock 一次性物品库存对象 + * @param price 显示的价格 + * @return + */ + private String getDisposableGoodsStockDisplayName( + DisposableGoodsStock disposableGoodsStock,Double price){ + if(disposableGoodsStock == null){ + return StringTools.EMPTY; + } + String displayName = DisposableGoodsUtils.getDisposableGoodsFullName( + disposableGoodsStock.getName(),disposableGoodsStock.getSpecification()); + if(price != null){ + String packageSpec = disposableGoodsStock.getPackageSpec(); + if (StringUtils.isBlank(packageSpec)) { + packageSpec = ""; + } else { + packageSpec = "(" + packageSpec + + ")"; + } + displayName = displayName + packageSpec + + "(参考价:" + price + ")(库存:" + + disposableGoodsStock.getAmount() + ")"; + } + return displayName; + } } Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/appropriationView.js =================================================================== diff -u -r12793 -r12811 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/appropriationView.js (.../appropriationView.js) (revision 12793) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/appropriationView.js (.../appropriationView.js) (revision 12811) @@ -312,7 +312,7 @@ // 清空批次和价格 clearBatchNumberAndPrice(); var wareHouseid = top.Ext.getCmp('warehouseID').getValue(); - DiposableGoodsTableManager.getBatchsByDiposableGoodsId(record.data.id,wareHouseid,false,function(batchesStr){ + DiposableGoodsTableManager.getBatchsByDisposableGoodsIDAndWareHouse(record.data.id,wareHouseid,false,function(batchesStr){ var batches = JSON.parse(batchesStr); for(var i = 0;i