Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java =================================================================== diff -u -r17757 -r18101 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java (.../ReturnGoodsRecordAction.java) (revision 17757) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java (.../ReturnGoodsRecordAction.java) (revision 18101) @@ -836,6 +836,17 @@ return null; } + + public String loadReturnedTousseItemsByInvoiceId() { + String invoiceId = StrutsParamUtils.getPraramValue("invoiceId", ""); + JSONArray array = new JSONArray(); + if (StringUtils.isNotBlank(invoiceId)) {// 初始化加载的数据 + array = returnGoodsRecordManager.loadReturnedTousseItemsByInvoiceId(Long.valueOf(invoiceId)); + } + StrutsResponseUtils.output(array); + return null; + + } private StringBuffer appendToTreeJson( StringBuffer tousseInstanceStringBuffer, ReturnGoodsItem item) { Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManager.java =================================================================== diff -u -r17725 -r18101 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManager.java (.../ReturnGoodsRecordManager.java) (revision 17725) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManager.java (.../ReturnGoodsRecordManager.java) (revision 18101) @@ -56,4 +56,5 @@ String warehouseID,String depart); public JSONArray loadDiposableGoodsReturnGoodsInfoByInvoicePlanId(String warehouseID,Long invoicePlanId); public JSONArray loadReturnedTousseItemsByInvoicePlanId(Long invoicePlanId); + public JSONArray loadReturnedTousseItemsByInvoiceId(Long invoiceId); } Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/dwr/table/ReturnGoodsRecordTableManager.java =================================================================== diff -u -r17724 -r18101 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/dwr/table/ReturnGoodsRecordTableManager.java (.../ReturnGoodsRecordTableManager.java) (revision 17724) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/dwr/table/ReturnGoodsRecordTableManager.java (.../ReturnGoodsRecordTableManager.java) (revision 18101) @@ -16,6 +16,7 @@ import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; @@ -160,4 +161,53 @@ obj.put("warehouses", warehouses); return obj.toString(); } + + public String getInvoiceInfo(String invoicePlanId) { + JSONObject obj = new JSONObject(); + JSONArray warehouses = new JSONArray(); + Invoice invoice = (Invoice) objectDao.getByProperty( + Invoice.class.getSimpleName(), "id", Long.valueOf(invoicePlanId)); + if(invoice != null){ + List list = objectDao.findBySql(Invoice.class.getSimpleName(), String.format(" where po.id=%s", invoice.getId())); + obj.put("depart", invoice.getDepart()); + obj.put("departCoding", invoice.getDepartCoding()); +// WareHouse defaultWareHouse = wareHouseManager.getDefaultWareHouseByUnitCode(invoicePlan.getDepartCoding()); + Long warehouseId = invoice.getSourceWarehouseId(); + String warehouseName = invoice.getSourceWarehouseName(); + JSONObject warehouse = new JSONObject(); + warehouse.put("id", warehouseId); + warehouse.put("name", warehouseName); + + warehouses.add(warehouse); + + } + obj.put("warehouses", warehouses); + return obj.toString(); + } + + public String findToussesByReturnGoodsRecordId(String returnGoodsRecordId){ + JSONArray jsonArray = new JSONArray(); + ReturnGoodsRecord returnGoodsRecord = returnGoodsRecordManager.getById(returnGoodsRecordId); + if(returnGoodsRecord != null){ + List returnGoodsItems = returnGoodsRecord.getReturnGoodsItems(); + if(returnGoodsItems != null){ + for (ReturnGoodsItem returnGoodsItem : returnGoodsItems) { + List list = returnGoodsItem.getTousseInstanceList(); + if(list == null){ + continue; + } + for (int i = 0; i < list.size(); i++) { + JSONObject obj = new JSONObject(); + String barcode = list.get(i).getBarcode(); + if(StringUtils.isBlank(barcode)){ + continue; + } + obj.put("barcode", barcode); + jsonArray.add(obj); + } + } + } + } + return jsonArray.toString(); + } } Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java =================================================================== diff -u -r17757 -r18101 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java (.../ReturnGoodsRecordManagerImpl.java) (revision 17757) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java (.../ReturnGoodsRecordManagerImpl.java) (revision 18101) @@ -1747,52 +1747,88 @@ } } - for (Map.Entry> entry : nameToTousseListMap.entrySet()) { - String name = entry.getKey(); - List list3 = entry.getValue(); - if(list3.size() == 0){ - continue; - } - JSONObject folder = new JSONObject(); - folder.put("tousseName", name); - folder.put("amount", list3.size()); - folder.put("barcode", ""); - folder.put("price", list3.get(0).getFluctuationPrice()); - folder.put("isDelivery", "否"); - folder.put("isPacking", "否"); - folder.put("uiProvider", "col"); - folder.put("cls", "master-task"); - folder.put("leaf", false); - folder.put("iconCls", "task-folder"); + convertNameToTousseListMapToTousseArray(tousses, nameToTousseListMap); + } + + return tousses; + } + + /** + * @param tousses + * @param nameToTousseListMap + */ + private void convertNameToTousseListMapToTousseArray(JSONArray tousses, + Map> nameToTousseListMap) { + for (Map.Entry> entry : nameToTousseListMap.entrySet()) { + String name = entry.getKey(); + List list3 = entry.getValue(); + if(list3.size() == 0){ + continue; + } + JSONObject folder = new JSONObject(); + folder.put("tousseName", name); + folder.put("amount", list3.size()); + folder.put("barcode", ""); + folder.put("price", list3.get(0).getFluctuationPrice()); + folder.put("isDelivery", "否"); + folder.put("isPacking", "否"); + folder.put("uiProvider", "col"); + folder.put("cls", "master-task"); + folder.put("leaf", false); + folder.put("iconCls", "task-folder"); + + JSONArray children = new JSONArray(); + for (TousseInstance tousseInstance : list3) { + JSONObject tousse = new JSONObject(); + tousse.put("tousseName", name); + tousse.put("amount", 1); + tousse.put("barcode", tousseInstance.getBarcode()); + tousse.put("price", tousseInstance.getFluctuationPrice()); - JSONArray children = new JSONArray(); - for (TousseInstance tousseInstance : list3) { - JSONObject tousse = new JSONObject(); - tousse.put("tousseName", name); - tousse.put("amount", 1); - tousse.put("barcode", tousseInstance.getBarcode()); - tousse.put("price", tousseInstance.getFluctuationPrice()); + tousse.put("departCoding", tousseInstance.getLocation()); + tousse.put("location", tousseInstance.getLocation()); + tousse.put("settleAccountsDepartCode", tousseInstance.getSettleAccountsDepartCode()); + tousse.put("settleAccountsDepart", tousseInstance.getSettleAccountsDepart()); + tousse.put("tousseInstance", tousse); + + tousse.put("isDelivery", ""); + tousse.put("isPacking", ""); + tousse.put("uiProvider", "col"); + tousse.put("leaf", true); + tousse.put("iconCls", "task"); + + children.add(tousse); + } + folder.put("children", children); + + tousses.add(folder); + } + } + + public JSONArray loadReturnedTousseItemsByInvoiceId(Long invoiceId){ + + JSONArray tousses = new JSONArray(); + Invoice invoice = (Invoice) objectDao.getByProperty( + Invoice.class.getSimpleName(), "id", Long.valueOf(invoiceId)); + if(invoice != null){ + Map> nameToTousseListMap = new HashMap>(); + List list = objectDao.findBySql(TousseInstance.class.getSimpleName(), String.format(" where po.invoice_id=%s and po.status in('%s','%s')", invoice.getId(),TousseInstance.STATUS_SHIPPED,TousseInstance.STATUS_SIGNED)); + if(list != null){ + for (TousseInstance tousseInstance : list) { + String name = tousseInstance.getShowTousseName(); + List list2 = nameToTousseListMap.get(name); + if(list2 == null){ + list2 = new LinkedList(); + nameToTousseListMap.put(name, list2); + } + list2.add(tousseInstance); - tousse.put("departCoding", tousseInstance.getLocation()); - tousse.put("location", tousseInstance.getLocation()); - tousse.put("settleAccountsDepartCode", tousseInstance.getSettleAccountsDepartCode()); - tousse.put("settleAccountsDepart", tousseInstance.getSettleAccountsDepart()); - tousse.put("tousseInstance", tousse); - - tousse.put("isDelivery", ""); - tousse.put("isPacking", ""); - tousse.put("uiProvider", "col"); - tousse.put("leaf", true); - tousse.put("iconCls", "task"); - - children.add(tousse); } - folder.put("children", children); - - tousses.add(folder); } + convertNameToTousseListMapToTousseArray(tousses, nameToTousseListMap); } return tousses; + } }