Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java =================================================================== diff -u -r20863 -r20867 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java (.../Invoice.java) (revision 20863) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java (.../Invoice.java) (revision 20867) @@ -24,6 +24,7 @@ import org.hibernate.annotations.CascadeType; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoodsInstance; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.idpredicate.IDAble; import com.forgon.tools.hibernate.ObjectDao; @@ -289,6 +290,14 @@ } return tousseInstanceList; } + + public List getExpensiveGoodsInstances(ObjectDao objectDao) { + List expensiveGoodsInstanceList = objectDao.findByProperty(ExpensiveGoodsInstance.class.getSimpleName(), "invoiceId", ""+id); + if(expensiveGoodsInstanceList == null){ + expensiveGoodsInstanceList = new LinkedList(); + } + return expensiveGoodsInstanceList; + } @OneToMany(fetch = FetchType.LAZY) @Cascade(value = {CascadeType.SAVE_UPDATE}) Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java =================================================================== diff -u -r20813 -r20867 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 20813) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 20867) @@ -56,6 +56,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; @@ -485,6 +486,54 @@ jsonArray.add(obj); } } + { + List expensiveGoodsInstanceList = invoice + .getExpensiveGoodsInstances(objectDao); + for (ExpensiveGoodsInstance expensiveGoodsInstance : expensiveGoodsInstanceList) { + if (expensiveGoodsInstance.getPrice() == null) { + expensiveGoodsInstance.setPrice(0.0); + } + String sterilizerName = ""; + String frequency = ""; + String endDate = ""; + + String expireDateStr = ""; + + if(StringUtils.isBlank(endDate)){ + endDate = ""; + } + ExpensiveGoods expensiveGoods = expensiveGoodsInstance.getExpensiveGoods(); + + if (endDate.length() > 10){ + endDate = endDate.substring(0, 10); + } + + JSONObject obj = new JSONObject(); + + obj.put("id", expensiveGoodsInstance.getId()); + obj.put("barcode", expensiveGoodsInstance.getBarcode()); + obj.put("name", expensiveGoods.getName()); + obj.put("specification", ""); + obj.put("batchNumber", endDate); + obj.put("sterilizerName", sterilizerName); + obj.put("frequency", frequency); + obj.put("count", 1); + + obj.put("unit", expensiveGoods.getUnit()); + obj.put("diposable", "否"); + obj.put("price", expensiveGoodsInstance.getPrice()); + obj.put("fluctuationPrice", expensiveGoodsInstance.getPrice()); + obj.put("storage", ""); + obj.put("showTousseName", expensiveGoods.getShowName()); + obj.put("externalCode", ""); + obj.put("expireDate", expireDateStr); + obj.put("manufacturer", ""); + obj.put("certification", ""); + obj.put("tousseType", ExpensiveGoods.TYPE_NAME); + + jsonArray.add(obj); + } + } try { StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); StrutsParamUtils.getResponse().getWriter()