Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/MaterialInvoiceTableManager.java =================================================================== diff -u -r18549 -r25216 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/MaterialInvoiceTableManager.java (.../MaterialInvoiceTableManager.java) (revision 18549) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/dwr/table/MaterialInvoiceTableManager.java (.../MaterialInvoiceTableManager.java) (revision 25216) @@ -4,10 +4,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.invoicemanager.MaterialInvoice; import com.forgon.disinfectsystem.entity.invoicemanager.MaterialInvoiceItem; +import com.forgon.disinfectsystem.entity.invoicemanager.MaterialItem; import com.forgon.disinfectsystem.invoicemanager.service.MaterialInvoiceManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.tools.db.DatabaseUtil; @@ -39,22 +41,34 @@ if (DatabaseUtil.isPoIdValid(materialInvoiceId)) { List> mapList = new ArrayList>(); MaterialInvoice materialInvoice = materialInvoiceManager.getMaterialInvoiceById(materialInvoiceId); - List materialInvoiceItem = materialInvoice.getMaterialInvoiceItemList(); - for(MaterialInvoiceItem materialInvoiceItems : materialInvoiceItem){ - String name = CssdUtils.getMaterialName(materialDefinitionManager.get(materialInvoiceItems.getMaterialDefinitionId())); - Integer amount = materialInvoiceItems.getAmount(); - Double price = materialInvoiceItems.getSettlementPrice(); - + try { + List materialInvoiceItemList = materialInvoice.getMaterialInvoiceItemList();//材料发货单明细 + List materialItemList = materialInvoice.getMaterialItemList();//材料各业务项的明细 + //1、遍历材料发货明细 + for(MaterialInvoiceItem mInvoiceItem : materialInvoiceItemList){ + Long materialDefinitionId = mInvoiceItem.getMaterialDefinitionId(); + String name = CssdUtils.getMaterialName(materialDefinitionManager.get(materialDefinitionId));//根据材料定义id获取材料名称 + Integer amount = mInvoiceItem.getAmount();//材料发货数量 + Double settlementPrice = mInvoiceItem.getSettlementPrice();// 材料发货物品小结价格 + //根据材料发货单明细id获得对应的材料明细 + MaterialItem materialItem = materialItemList.stream().filter( + mi -> mInvoiceItem.getId().equals(mi.getMaterialInvoiceItemID())) + .findFirst().orElse(new MaterialItem()); + Double price = materialItem.getPrice();//材料明细单价 + //2、生成返回的数据 Map temp = new HashMap(); temp.put("name", name); temp.put("amount",amount); temp.put("price",price); + temp.put("settlementPrice",settlementPrice); mapList.add(temp); } + } catch (Exception e) { + e.printStackTrace(); + } return mapList; }else{ return null; } - } } Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/MaterialInvoiceAction.java =================================================================== diff -u -r13522 -r25216 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/MaterialInvoiceAction.java (.../MaterialInvoiceAction.java) (revision 13522) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/MaterialInvoiceAction.java (.../MaterialInvoiceAction.java) (revision 25216) @@ -23,11 +23,13 @@ import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.entity.invoicemanager.MaterialInvoice; import com.forgon.disinfectsystem.entity.invoicemanager.MaterialInvoiceItem; +import com.forgon.disinfectsystem.entity.invoicemanager.MaterialItem; import com.forgon.disinfectsystem.entity.useRecord.UseRecord; import com.forgon.disinfectsystem.invoicemanager.service.MaterialInvoiceManager; import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JsonPropertyFilter; @@ -85,6 +87,49 @@ e.printStackTrace(); } } + + /** + * 根据id + * 返回材料发货单数据 + * 返回格式:{"success":true,"data":{"sendTime":"...","materialInvoiceItemList":{"id":"...",...}}} + */ + public void loadMaterialInvoiceById() { + JSONObject jsonData = new JSONObject(); + try { + if(null != materialInvoice){ + List materialInvoiceItemList = materialInvoice.getMaterialInvoiceItemList(); + ListmaterialItemList = materialInvoice.getMaterialItemList(); + //材料发货单 + jsonData.put("sendTime", materialInvoice.getSendTime()); + jsonData.put("sourceWarehouseName", materialInvoice.getSourceWarehouseName()); + jsonData.put("depart", materialInvoice.getDepart()); + jsonData.put("sendTime", materialInvoice.getSendTime()); + JSONArray mInvoiceItemListArray = new JSONArray(); + //材料发货单明细 + for (MaterialInvoiceItem mInvoiceItem : materialInvoiceItemList) { + JSONObject mInvoiceJson = new JSONObject(); + mInvoiceJson.put("id", mInvoiceItem.getId()); + mInvoiceJson.put("materialDefinitionId", mInvoiceItem.getMaterialDefinitionId()); + mInvoiceJson.put("materialName", mInvoiceItem.getMaterialName()); + mInvoiceJson.put("amount", mInvoiceItem.getAmount()); + mInvoiceJson.put("userecordId", mInvoiceItem.getUserecordId()); + mInvoiceJson.put("userecordName", mInvoiceItem.getUserecordName()); + mInvoiceJson.put("userecordDepartCoding", mInvoiceItem.getUserecordDepartCoding()); + //根据材料发货单明细id获得对应的材料明细 + MaterialItem materialItem = materialItemList.stream().filter( + mi -> mInvoiceItem.getId().equals(mi.getMaterialInvoiceItemID())) + .findFirst().orElse(new MaterialItem()); + mInvoiceJson.put("price", materialItem.getPrice());//单价 + mInvoiceItemListArray.add(mInvoiceJson); + }; + jsonData.put("materialInvoiceItemList",mInvoiceItemListArray); + } + StrutsResponseUtils.output(true, jsonData); + } catch (Exception e) { + e.printStackTrace(); + StrutsResponseUtils.output(false, e.getMessage()); + } + } public void iniInfo() { String id = StrutsParamUtils.getPraramValue("id", "");