diff --git a/src/main/java/com/xujie/modules/quality/data/QualityIssuePoSelectDto.java b/src/main/java/com/xujie/modules/quality/data/QualityIssuePoSelectDto.java index ff0e503..d45fb8d 100644 --- a/src/main/java/com/xujie/modules/quality/data/QualityIssuePoSelectDto.java +++ b/src/main/java/com/xujie/modules/quality/data/QualityIssuePoSelectDto.java @@ -16,11 +16,15 @@ public class QualityIssuePoSelectDto { private String partNo; - private String sku; + private String partDesc; private Date poDate; private BigDecimal qty; - private BigDecimal shippedQty; + private String supplierNo; + + private String supplierName; + + private String buyer; } diff --git a/src/main/java/com/xujie/modules/quality/entity/SrmQualityIssuePo.java b/src/main/java/com/xujie/modules/quality/entity/SrmQualityIssuePo.java index 07a42b6..014b960 100644 --- a/src/main/java/com/xujie/modules/quality/entity/SrmQualityIssuePo.java +++ b/src/main/java/com/xujie/modules/quality/entity/SrmQualityIssuePo.java @@ -20,10 +20,22 @@ public class SrmQualityIssuePo { private String partNo; @TableField(exist = false) - private String sku; + private String partDesc; private BigDecimal poQty; + @TableField(exist = false) + private Date poDate; + + @TableField(exist = false) + private String supplierNo; + + @TableField(exist = false) + private String supplierName; + + @TableField(exist = false) + private String buyer; + private BigDecimal shippedQty; private String createBy; diff --git a/src/main/java/com/xujie/modules/quality/mapper/SrmQualityIssuePoMapper.java b/src/main/java/com/xujie/modules/quality/mapper/SrmQualityIssuePoMapper.java index 4046ca3..9cdb05e 100644 --- a/src/main/java/com/xujie/modules/quality/mapper/SrmQualityIssuePoMapper.java +++ b/src/main/java/com/xujie/modules/quality/mapper/SrmQualityIssuePoMapper.java @@ -17,7 +17,8 @@ public interface SrmQualityIssuePoMapper { @Param("poNo") String poNo, @Param("partNo") String partNo, @Param("beginDate") Date beginDate, - @Param("endDate") Date endDate + @Param("endDate") Date endDate, + @Param("limit") Integer limit ); int deleteByIssueNo( diff --git a/src/main/java/com/xujie/modules/quality/service/impl/QualityIssueServiceImpl.java b/src/main/java/com/xujie/modules/quality/service/impl/QualityIssueServiceImpl.java index 2a6e4d3..733b4c1 100644 --- a/src/main/java/com/xujie/modules/quality/service/impl/QualityIssueServiceImpl.java +++ b/src/main/java/com/xujie/modules/quality/service/impl/QualityIssueServiceImpl.java @@ -173,9 +173,9 @@ public class QualityIssueServiceImpl extends ServiceImpl list = new ArrayList<>(); for (int i = 0; i < dto.getPoList().size(); i++) { QualityIssueSavePoDto item = dto.getPoList().get(i); - log.info("处理第{}条PO: poNo={}, itemNo={}, partNo={}, qty={}, shippedQty={}", - i + 1, item.getPoNo(), item.getItemNo(), item.getPartNo(), - item.getQty(), item.getShippedQty()); + log.info("处理第{}条PO: poNo={}, itemNo={}, partNo={}, qty={}", + i + 1, item.getPoNo(), item.getItemNo(), item.getPartNo(), + item.getQty()); SrmQualityIssuePo po = new SrmQualityIssuePo(); po.setSite(dto.getSite()); @@ -189,7 +189,6 @@ public class QualityIssueServiceImpl extends ServiceImpl page = - new Page<>( - dto.getPageIndex(), - dto.getPageSize() - ); - - page.setRecords( - qualityIssuePoMapper.getAvailablePoList( - dto.getSite(), - dto.getSupplierNo(), - dto.getPoNo(), - dto.getPartNo(), - dto.getBeginDate(), - dto.getEndDate() - ) + boolean noFilter = isBlank(dto.getPoNo()) + && isBlank(dto.getPartNo()) + && dto.getBeginDate() == null + && dto.getEndDate() == null; + Integer limit = noFilter ? 500 : null; + + List records = qualityIssuePoMapper.getAvailablePoList( + dto.getSite(), + dto.getSupplierNo(), + dto.getPoNo(), + dto.getPartNo(), + dto.getBeginDate(), + dto.getEndDate(), + limit ); + IPage page = new Page<>(1, records.size()); + page.setRecords(records); + page.setTotal(records.size()); return new PageUtils(page); } + private boolean isBlank(String value) { + return value == null || value.trim().isEmpty(); + } + @Override public List getIssuePoList(String site, String issueNo) { return qualityIssuePoMapper.getIssuePoList(site, issueNo); diff --git a/src/main/resources/mapper/quality/SrmQualityIssuePoMapper.xml b/src/main/resources/mapper/quality/SrmQualityIssuePoMapper.xml index 0c5f59d..40ccf3a 100644 --- a/src/main/resources/mapper/quality/SrmQualityIssuePoMapper.xml +++ b/src/main/resources/mapper/quality/SrmQualityIssuePoMapper.xml @@ -8,18 +8,23 @@ p.order_ref1 as poNo, p.item_no as itemNo, p.part_no as partNo, - pt.sku as sku, + pt.part_desc as partDesc, h.order_date as poDate, p.qty, - p.shipped_qty as shippedQty + h.supplier_no as supplierNo, + ss.supplier_name as supplierName, + h.buyer as buyer FROM PODetail p LEFT JOIN POHeader h ON p.site = h.site AND p.order_no = h.order_no + LEFT JOIN srm_supplier ss + ON ss.site = h.site + AND ss.supplier_no = h.supplier_no LEFT JOIN part pt ON p.part_no = pt.part_no + AND p.site = pt.site WHERE p.site = #{site} - AND ISNULL(p.shipped_qty, 0) > 0 AND h.supplier_no = #{supplierNo} @@ -36,6 +41,9 @@ AND h.order_date <= #{endDate} ORDER BY h.order_date DESC + + OFFSET 0 ROWS FETCH NEXT #{limit} ROWS ONLY + @@ -67,7 +75,7 @@ #{item.itemNo}, #{item.partNo}, #{item.poQty}, - #{item.shippedQty}, + #{item.shippedQty,jdbcType=DECIMAL}, #{item.createBy}, GETDATE() ) @@ -81,14 +89,28 @@ qip.po_no, qip.item_no, qip.part_no, - pt.sku, + pt.part_desc as partDesc, qip.po_qty, - qip.shipped_qty, + h.order_date as poDate, + h.supplier_no as supplierNo, + ss.supplier_name as supplierName, + h.buyer as buyer, qip.create_by, qip.create_date FROM srm_quality_issue_po qip LEFT JOIN part pt ON qip.part_no = pt.part_no + AND qip.site = pt.site + LEFT JOIN PODetail p + ON p.site = qip.site + AND p.order_ref1 = qip.po_no + AND p.item_no = qip.item_no + LEFT JOIN POHeader h + ON h.site = p.site + AND h.order_no = p.order_no + LEFT JOIN srm_supplier ss + ON ss.site = h.site + AND ss.supplier_no = h.supplier_no WHERE qip.site = #{site} AND qip.issue_no = #{issueNo}