Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/dwr/table/MaterialEntryTableManager.java =================================================================== diff -u -r18549 -r18830 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/dwr/table/MaterialEntryTableManager.java (.../MaterialEntryTableManager.java) (revision 18549) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/dwr/table/MaterialEntryTableManager.java (.../MaterialEntryTableManager.java) (revision 18830) @@ -1,5 +1,6 @@ package com.forgon.disinfectsystem.tousse.materialmanager.dwr.table; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -18,14 +19,18 @@ import com.forgon.disinfectsystem.basedatamanager.goodsstock.service.GoodsStockManager; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; import com.forgon.disinfectsystem.entity.materialmanager.MaterialEntry; import com.forgon.disinfectsystem.entity.materialmanager.MaterialEntryItem; +import com.forgon.disinfectsystem.idpredicate.IDOperators; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; +import com.forgon.disinfectsystem.tousse.materialmanager.service.MaterialEntryItemManager; import com.forgon.disinfectsystem.tousse.materialmanager.service.MaterialEntryManager; import com.forgon.disinfectsystem.vo.PriceAmount; import com.forgon.search.service.TBarFilterManager; import com.forgon.tools.MathTools; +import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.util.SqlUtils; public class MaterialEntryTableManager { @@ -36,6 +41,8 @@ private MaterialEntryManager materialEntryManager; + private MaterialEntryItemManager materialEntryItemManager; + private GoodsStockManager goodsStockManager; private MaterialDefinitionManager materialDefinitionManager; @@ -53,6 +60,11 @@ this.materialEntryManager = materialEntryManager; } + public void setMaterialEntryItemManager( + MaterialEntryItemManager materialEntryItemManager) { + this.materialEntryItemManager = materialEntryItemManager; + } + @Resource(name = "materialEntryTableFilterManagerImpl") private TBarFilterManager materialEntryTableFilterManagerImpl; @@ -156,26 +168,29 @@ * @return */ public List> obtainMaterialDetails(String materialEntryId) { - if(materialEntryId == null){ + if(!DatabaseUtil.isPoIdValid(materialEntryId)){ return null; } List> mapList = new ArrayList>(); - MaterialEntry materialEntry = materialEntryManager.get(materialEntryId); - List materialEntryItem = materialEntry.getItemsList(); - for(MaterialEntryItem materialEntryItems : materialEntryItem){ - String name = CssdUtils.getMaterialName(materialDefinitionManager.get(materialEntryItems.getMaterialDefinition().getId())); - Integer amount = materialEntryItems.getAmount(); - Double cost = materialEntryItems.getCost(); - String supplierName = materialEntryItems.getSupplierName(); - String certification = materialEntryItems.getCertification(); - - Map temp = new HashMap(); - temp.put("name", name); - temp.put("amount",amount); - temp.put("cost",cost); - temp.put("supplierName", supplierName); - temp.put("certification", certification); - mapList.add(temp); + List materialEntryItems = materialEntryItemManager.getByProperty("materialEntry.id", materialEntryId); + if(CollectionUtils.isNotEmpty(materialEntryItems)){ + List materialDefIds = materialEntryItemManager.getProperty("materialDefinition.id", "materialEntry.id=" + materialEntryId); + Collection mds = materialDefinitionManager.getCollection(materialDefIds); + for(MaterialEntryItem materialEntryItem : materialEntryItems){ + String name = CssdUtils.getMaterialName(IDOperators.find(mds, materialEntryItem.getMaterialDefinition().getId())); + Integer amount = materialEntryItem.getAmount(); + Double cost = materialEntryItem.getCost(); + String supplierName = materialEntryItem.getSupplierName(); + String certification = materialEntryItem.getCertification(); + + Map temp = new HashMap(); + temp.put("name", name); + temp.put("amount",amount); + temp.put("cost",cost); + temp.put("supplierName", supplierName); + temp.put("certification", certification); + mapList.add(temp); + } } return mapList; } Index: forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManager.java =================================================================== diff -u -r18442 -r18830 --- forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManager.java (.../BasePoManager.java) (revision 18442) +++ forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManager.java (.../BasePoManager.java) (revision 18830) @@ -190,6 +190,13 @@ */ public TT getMaxProperty(String property); /** + * 获取po的属性值 + * @param propertyName 要获取的属性的名称 + * @param condition 查询条件 + * @return + */ + public List getProperty(String propertyName,String condition); + /** * 获取所有对象 * @return */ Index: ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialEntryView.js =================================================================== diff -u -r18614 -r18830 --- ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialEntryView.js (.../materialEntryView.js) (revision 18614) +++ ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialEntryView.js (.../materialEntryView.js) (revision 18830) @@ -909,8 +909,14 @@ DWREngine.setAsync(false); MaterialEntryTableManager.obtainMaterialDetails(record.data['id'],function(voItems){ for(var i=0;i" + voItems[i].amount +"" + voItems[i].cost +"" + voItems[i].supplierName +"" + voItems[i].certification +" "+""; + content += " " + voItems[i].name +"" + voItems[i].amount +"" + voItems[i].cost +"" + voItems[i].supplierName+" " +"" + voItems[i].certification +" "+""; content += ""; } }); @@ -925,6 +931,7 @@ } }); + var tBarForm = new TBarForm(); var queryForm = new TBarForm(materialDefinitionStore,100).initForm(); //100为每页最多显示多少条记录 var viewport = new Ext.Viewport( { layout : 'border', Index: forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManagerImpl.java =================================================================== diff -u -r18442 -r18830 --- forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManagerImpl.java (.../BasePoManagerImpl.java) (revision 18442) +++ forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManagerImpl.java (.../BasePoManagerImpl.java) (revision 18830) @@ -252,6 +252,12 @@ } return null; } + @Override + public List getProperty(String propertyName,String condition){ + String hql = "select " + propertyName + " from " + poName + " where " + condition; + Query query = objectDao.getHibernateSession().createQuery(hql); + return query.list(); + } @Override public Collection getCollection(Collection ids) {