Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java =================================================================== diff -u -r17715 -r17723 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java (.../ReturnGoodsRecordAction.java) (revision 17715) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java (.../ReturnGoodsRecordAction.java) (revision 17723) @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -16,14 +17,18 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; import net.sf.json.util.JSONStringer; +import net.sf.json.util.PropertyFilter; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.FastDateFormat; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; +import com.forgon.Constants; import com.forgon.component.grid.GridManager; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; @@ -34,14 +39,20 @@ import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodBatchStockManager; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; +import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.invoicemanager.DiposableGoodsItem; +import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsItem; import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsRecord; +import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.returngoodsrecord.service.ReturnGoodsItemVO; import com.forgon.disinfectsystem.returngoodsrecord.service.ReturnGoodsRecordManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; @@ -51,7 +62,9 @@ import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.json.DateJsonValueProcessor; import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.json.JsonPropertyFilter; import com.forgon.tools.util.StrutsUtils; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @@ -183,6 +196,7 @@ Long disposableGoodsStockID = obj.optLong("disposableGoodsStockID"); Long disposableGoodsBatchID = obj.optLong("disposableGoodsBatchID"); Long disposableGoodsBatchStockID = obj.optLong("disposableGoodsBatchStockID"); + Long identificationID = obj.optLong("identificationID"); Long expensiveDisposablegoodsId = obj.optLong("expensiveDisposablegoodsId"); String batchNumber = obj.optString("batchNumber"); String barcode = obj.optString("barcode"); @@ -197,6 +211,7 @@ returnGoodsItem.setDisposableGoodsStockID(disposableGoodsStockID); returnGoodsItem.setDisposableGoodsBatchID(disposableGoodsBatchID); returnGoodsItem.setDisposableGoodsBatchStockID(disposableGoodsBatchStockID); + returnGoodsItem.setIdentificationID(identificationID); returnGoodsItem.setExpensiveDisposablegoodsId(expensiveDisposablegoodsId); returnGoodsItem.setBarcode(barcode); returnGoodsItem.setBatchNumber(batchNumber); @@ -267,6 +282,17 @@ StrutsResponseUtils.output(array); return null; } + + public String loadReturnGoodsItemByInvoicePlanId() { + String invoicePlanId = StrutsParamUtils.getPraramValue("invoicePlanId", ""); + String warehouseId = StrutsParamUtils.getPraramValue("warehouseId", ""); + JSONArray array = new JSONArray(); + if (StringUtils.isNotBlank(invoicePlanId) && StringUtils.isNotBlank(warehouseId)) {// 初始化加载的数据 + array = returnGoodsRecordManager.loadDiposableGoodsReturnGoodsInfoByInvoicePlanId(warehouseId,Long.valueOf(invoicePlanId)); + } + StrutsResponseUtils.output(array); + return null; + } // 扫描的发货器械包 public String loadTousseInstanceInfo() { @@ -792,6 +818,17 @@ return null; } + + public String loadReturnedTousseItemsByInvoicePlanId() { + String invoicePlanId = StrutsParamUtils.getPraramValue("invoicePlanId", ""); + JSONArray array = new JSONArray(); + if (StringUtils.isNotBlank(invoicePlanId)) {// 初始化加载的数据 + array = returnGoodsRecordManager.loadReturnedTousseItemsByInvoicePlanId(Long.valueOf(invoicePlanId)); + } + StrutsResponseUtils.output(array); + return null; + + } private StringBuffer appendToTreeJson( StringBuffer tousseInstanceStringBuffer, ReturnGoodsItem item) { @@ -815,7 +852,137 @@ } return tousseInstanceStringBuffer; } + + public void findReturnGoodsRecords() { + String invoicePlanId = StrutsParamUtils.getPraramValue( + "invoicePlanId", ""); + List returnGoodsRecords = null; + if (StringUtils.isNotBlank(invoicePlanId)) { + String sql = " where po.invoicePlanId = " + invoicePlanId; + returnGoodsRecords = returnGoodsRecordManager.findReturnGoodsRecordBySql(sql); + } + if(returnGoodsRecords == null){ + returnGoodsRecords = new LinkedList(); + } + try { + JsonConfig config = new JsonConfig(); + config.registerJsonValueProcessor(Date.class, + new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss")); + PropertyFilter propertyFilter = new JsonPropertyFilter( + new String[] { "recyclingApplication", "returnGoodsItems"}); + config.setJsonPropertyFilter(propertyFilter); + JSONArray json = JSONArray.fromObject(returnGoodsRecords, config); + StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); + String jsonStr = "{totalProperty:" + returnGoodsRecords.size() + ",root:" + + json.toString() + "}"; + StrutsParamUtils.getResponse().getWriter().println(jsonStr); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void loadReturnGoodsRecordItemsByid() { + String id = StrutsParamUtils.getPraramValue("id", ""); + JSONArray jsonArray = new JSONArray(); + + if (StringUtils.isNotBlank(id)) {// 初始化加载的数据 + ReturnGoodsRecord invoice = returnGoodsRecordManager.getById(id); + if(invoice != null){ + List returnGoodsItems = invoice.getReturnGoodsItems(); + for (ReturnGoodsItem returnGoodsItem : returnGoodsItems) { + List tousseInstanceList = returnGoodsItem.getTousseInstanceList(); + if(!CollectionUtils.isEmpty(tousseInstanceList)){ + for (TousseInstance tousseInstance : tousseInstanceList) { + if (tousseInstance.getPrice() == null) { + tousseInstance.setPrice(0.0); + } + String sterilizerName = tousseInstance.getSterilizerName(); + String frequency = tousseInstance.getSterileFrequency(); + String endDate = tousseInstance.getSterileEndTime(); + + String expireDateStr = tousseInstance.getValidUntilStr(Constants.SIMPLEDATEFORMAT_YYYYMMDD);; + + if(StringUtils.isBlank(endDate)){ + endDate = ""; + } + + TousseDefinition tousseDefinition = tousseInstance.getTousseDefinition(); + + if (endDate.length() > 10){ + endDate = endDate.substring(0, 10); + } + + JSONObject obj = new JSONObject(); + + obj.put("id", tousseInstance.getId()); + obj.put("barcode", tousseInstance.getBarcode()); + obj.put("name", tousseInstance.getTousseDefinitionName()); + obj.put("specification", ""); + obj.put("batchNumber", endDate); + obj.put("sterilizerName", sterilizerName); + obj.put("frequency", frequency); + obj.put("count", 1); + + obj.put("unit", tousseDefinition.getUnit()); + obj.put("diposable", "否"); + obj.put("price", tousseInstance.getPrice()); + obj.put("fluctuationPrice", tousseInstance.getFluctuationPrice()); + obj.put("storage", ""); + obj.put("showTousseName", tousseInstance.getShowTousseName()); + obj.put("externalCode", ""); + obj.put("expireDate", expireDateStr); + obj.put("manufacturer", ""); + obj.put("certification", ""); + obj.put("tousseType", tousseDefinition.getTousseType()); + jsonArray.add(obj); + } + }else{ + JSONObject obj = new JSONObject(); + + String certification = ""; + DisposableGoodsBatchStock diposableGoodBatchStock = returnGoodsItem.getDiposableGoodBatchStock(); + if(diposableGoodBatchStock == null){ + diposableGoodBatchStock = new DisposableGoodsBatchStock(); + } + + obj.put("barcode", returnGoodsItem.getBarcode()); + + obj.put("name", returnGoodsItem.getTousseName()); +// obj.put("specification", diposableGoodBatch.getDiposableGoods().getSpecification()); + obj.put("batchNumber", returnGoodsItem.getBatchNumber()); + obj.put("sterilizerName", "-"); + obj.put("frequency", "-"); + Integer amount = returnGoodsItem.getAmount(); + obj.put("count", amount); +// obj.put("unit", diposableGoodBatch.getDiposableGoods().getUnit()); + obj.put("diposable", "是"); + obj.put("price", returnGoodsItem.getPrice()); + obj.put("fluctuationPrice", returnGoodsItem.getFluctuationPrice()); +// obj.put("storage", storage); +// obj.put("type", diposableGoodsItem.getType()); + obj.put("showTousseName", returnGoodsItem.getTousseName()); + obj.put("externalCode", ""); + obj.put("expireDate", returnGoodsItem.getExpDate()); +// obj.put("manufacturer", diposableGoodBatch.getManufacturer()); + obj.put("certification", certification); + obj.put("tousseType", TousseItem.TYPE_DIPOSABLE_GOODS); + + jsonArray.add(obj); + } + } + } + } + try { + StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); + StrutsParamUtils.getResponse().getWriter() + .println(jsonArray.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + + } + @Override public void prepare() throws Exception { try { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsItem.java =================================================================== diff -u -r15628 -r17723 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsItem.java (.../ReturnGoodsItem.java) (revision 15628) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsItem.java (.../ReturnGoodsItem.java) (revision 17723) @@ -78,6 +78,7 @@ private Long disposableGoodsBatchID ;// 批次id private Long disposableGoodsBatchStockID ;// 批次库存id private Long expensiveDisposablegoodsId; + private Long identificationID; /** * 仓库ID */ @@ -296,6 +297,14 @@ this.expensiveDisposablegoodsId = expensiveDisposablegoodsId; } + public Long getIdentificationID() { + return identificationID; + } + + public void setIdentificationID(Long identificationID) { + this.identificationID = identificationID; + } + public Long getWarehouseID() { return warehouseID; } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsRecord.java =================================================================== diff -u -r17715 -r17723 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsRecord.java (.../ReturnGoodsRecord.java) (revision 17715) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsRecord.java (.../ReturnGoodsRecord.java) (revision 17723) @@ -88,6 +88,10 @@ private Long inventoryWriteBackEntryId; private BigDecimal settlementPrice = new BigDecimal("0.00"); + /** + * 申请单id + */ + private Long invoicePlanId; @Id @GeneratedValue(strategy = GenerationType.AUTO) @@ -287,4 +291,13 @@ public void setSettlementPrice(BigDecimal settlementPrice) { this.settlementPrice = settlementPrice; } + public Long getInvoicePlanId() { + return invoicePlanId; + } + + public void setInvoicePlanId(Long invoicePlanId) { + this.invoicePlanId = invoicePlanId; + } + + } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java =================================================================== diff -u -r17643 -r17723 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java (.../InvoicePlan.java) (revision 17643) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java (.../InvoicePlan.java) (revision 17723) @@ -224,6 +224,10 @@ * 省医需要在列表显示,由于此字段不能影响过滤、查询与翻页功能,所以需要持久化到数据库,不保存数据,get方法返回item里面的物品与数量 */ private String lendGoodsBrief; + /** + * 已退货 + */ + private String returnedGoods = com.forgon.Constants.STR_NO; public final static Integer SIGNED_TRUE = 1; public final static Integer SIGNED_FALSE = 0; @@ -818,6 +822,14 @@ this.lendGoodsBrief = lendGoodsBrief; } + public String getReturnedGoods() { + return returnedGoods; + } + + public void setReturnedGoods(String returnedGoods) { + this.returnedGoods = returnedGoods; + } + public void tousseItemList2LendGoodsBrief(){ List lendGoodsBriefList = new ArrayList(); String[] lendGoodsBriefArray = null;