,入库单明细表关联是itemCode,receiptCode。

根据上述需求,可以编写以下Java代码:

  1. 定义两个实体类:Item(商品)和Vendor(供应商),分别包含对应的属性和getter/setter方法。

public class Item { private String itemCode; // 商品编码 private String itemName; // 商品名称 // 其他属性和getter/setter方法 }

public class Vendor { private String vendorCode; // 供应商编码 private String vendorName; // 供应商名称 // 其他属性和getter/setter方法 }

  1. 定义一个入库单明细实体类ReceiptDetail,包含对应的属性和getter/setter方法,并关联Item和Vendor。

public class ReceiptDetail { private String receiptCode; // 入库单编码 private String itemCode; // 商品编码 private int quantity; // 商品数量 private double price; // 商品单价 private Item item; // 商品实体 private Vendor vendor; // 供应商实体 // 其他属性和getter/setter方法 }

  1. 编写查询方法,查询所有供应商都维护了入库单里所有的商品。

public List queryAllVendors() { List vendors = new ArrayList<>(); // 查询所有商品 List items = itemDao.queryAllItems(); // 查询所有入库单明细 List receiptDetails = receiptDetailDao.queryAllReceiptDetails(); // 根据商品编码分组,统计每个商品在哪些入库单中出现 Map<String, List> itemReceiptMap = new HashMap<>(); for (ReceiptDetail receiptDetail : receiptDetails) { String itemCode = receiptDetail.getItemCode(); String receiptCode = receiptDetail.getReceiptCode(); if (!itemReceiptMap.containsKey(itemCode)) { itemReceiptMap.put(itemCode, new ArrayList<>()); } itemReceiptMap.get(itemCode).add(receiptCode); } // 遍历所有供应商,判断是否维护了所有商品 for (Vendor vendor : vendorDao.queryAllVendors()) { boolean maintainAllItems = true; for (Item item : items) { if (!itemReceiptMap.containsKey(item.getItemCode())) { // 商品没有出现在任何入库单中,不需要判断供应商是否维护 continue; } List receipts = itemReceiptMap.get(item.getItemCode()); boolean maintainItem = false; for (String receiptCode : receipts) { ReceiptDetail receiptDetail = receiptDetailDao.queryReceiptDetail(receiptCode, item.getItemCode()); if (receiptDetail != null && receiptDetail.getVendorCode().equals(vendor.getVendorCode())) { // 该供应商维护了该商品 maintainItem = true; break; } } if (!maintainItem) { // 该供应商没有维护该商品 maintainAllItems = false; break; } } if (maintainAllItems) { // 该供应商维护了所有商品 vendors.add(vendor); } } return vendors; }

在该方法中,先查询所有商品和入库单明细,然后根据商品编码分组,统计每个商品在哪些入库单中出现。接着遍历所有供应商,判断是否维护了所有商品,最后返回维护了所有商品的供应商列表

java需求要查询入库单明细里的所有商品有哪些供应商都维护了入库单里所有的商品有单独的商品供应商表关联是itemCodevendorCode

原文地址: https://www.cveoy.top/t/topic/gpAQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录