@@ -290,16 +290,19 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
return result ;
}
@Override
public TableDataInfo < WmsMaterialCoilVo > queryCoilsByOrderId ( Long orderId , PageQuery pageQuery ) {
// ==================== 线圈ID解析辅助方法 ====================
/**
* 根据订单ID解析关联的线圈ID串( 通过发货单→发货单明细)
* @return 逗号分隔的coilId字符串, 无数据返回null
*/
private String resolveCoilIdsByOrderId ( Long orderId ) {
LambdaQueryWrapper < WmsDeliveryWaybill > waybillWrapper = new LambdaQueryWrapper < > ( ) ;
waybillWrapper . eq ( WmsDeliveryWaybill : : getOrderId , orderId ) ;
List < WmsDeliveryWaybill > waybills = wmsDeliveryWaybillMapper . selectList ( waybillWrapper ) ;
if ( waybills = = null | | waybills . isEmpty ( ) ) {
return new TableDataInfo < > ( ) ;
return null ;
}
List < Long > waybillIds = waybills . stream ( )
. map ( WmsDeliveryWaybill : : getWaybillId )
. collect ( Collectors . toList ( ) ) ;
@@ -307,31 +310,155 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
LambdaQueryWrapper < WmsDeliveryWaybillDetail > detailWrapper = new LambdaQueryWrapper < > ( ) ;
detailWrapper . in ( WmsDeliveryWaybillDetail : : getWaybillId , waybillIds ) ;
List < WmsDeliveryWaybillDetail > details = wmsDeliveryWaybillDetailMapper . selectList ( detailWrapper ) ;
if ( details = = null | | details . isEmpty ( ) ) {
return new TableDataInfo < > ( ) ;
return null ;
}
String coilIds = details . stream ( )
return details . stream ( )
. map ( WmsDeliveryWaybillDetail : : getCoilId )
. map ( String : : valueOf )
. collect ( Collectors . joining ( " , " ) ) ;
}
/**
* 根据销售员解析关联的线圈ID串( 通过crm_order→wms_coil_contract_rel)
* @return 逗号分隔的coilId字符串, 无数据返回null
*/
private String resolveCoilIdsBySalesman ( String salesman ) {
LambdaQueryWrapper < CrmOrder > orderWrapper = new LambdaQueryWrapper < > ( ) ;
orderWrapper . eq ( CrmOrder : : getSalesman , salesman ) ;
orderWrapper . eq ( CrmOrder : : getDelFlag , 0 ) ;
List < CrmOrder > orders = crmOrderMapper . selectList ( orderWrapper ) ;
if ( orders = = null | | orders . isEmpty ( ) ) {
return null ;
}
List < Long > orderIds = orders . stream ( )
. map ( CrmOrder : : getOrderId )
. collect ( Collectors . toList ( ) ) ;
LambdaQueryWrapper < WmsCoilContractRel > relWrapper = new LambdaQueryWrapper < > ( ) ;
relWrapper . in ( WmsCoilContractRel : : getContractId , orderIds ) ;
relWrapper . eq ( WmsCoilContractRel : : getDelFlag , 0 ) ;
List < WmsCoilContractRel > rels = coilContractRelMapper . selectList ( relWrapper ) ;
if ( rels = = null | | rels . isEmpty ( ) ) {
return null ;
}
return rels . stream ( )
. map ( WmsCoilContractRel : : getCoilId )
. distinct ( )
. map ( String : : valueOf )
. collect ( Collectors . joining ( " , " ) ) ;
}
/**
* 根据合同ID解析关联的线圈ID串( 通过crm_order→wms_coil_contract_rel)
* @return 逗号分隔的coilId字符串, 无数据返回null
*/
private String resolveCoilIdsByContractId ( Long contractId ) {
LambdaQueryWrapper < CrmOrder > orderWrapper = new LambdaQueryWrapper < > ( ) ;
orderWrapper . eq ( CrmOrder : : getContractId , contractId ) ;
orderWrapper . eq ( CrmOrder : : getDelFlag , 0 ) ;
List < CrmOrder > orders = crmOrderMapper . selectList ( orderWrapper ) ;
if ( orders = = null | | orders . isEmpty ( ) ) {
return null ;
}
List < Long > orderIds = orders . stream ( )
. map ( CrmOrder : : getOrderId )
. collect ( Collectors . toList ( ) ) ;
LambdaQueryWrapper < WmsCoilContractRel > relWrapper = new LambdaQueryWrapper < > ( ) ;
relWrapper . in ( WmsCoilContractRel : : getContractId , orderIds ) ;
relWrapper . eq ( WmsCoilContractRel : : getDelFlag , 0 ) ;
List < WmsCoilContractRel > rels = coilContractRelMapper . selectList ( relWrapper ) ;
if ( rels = = null | | rels . isEmpty ( ) ) {
return null ;
}
return rels . stream ( )
. map ( WmsCoilContractRel : : getCoilId )
. distinct ( )
. map ( String : : valueOf )
. collect ( Collectors . joining ( " , " ) ) ;
}
// ==================== 分页列表查询 ====================
@Override
public TableDataInfo < WmsMaterialCoilVo > queryCoilsByOrderId ( Long orderId , PageQuery pageQuery ) {
String coilIds = resolveCoilIdsByOrderId ( orderId ) ;
if ( coilIds = = null ) {
return new TableDataInfo < > ( ) ;
}
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo ( ) ;
coilBo . setCoilIds ( coilIds ) ;
return iWmsMaterialCoilService . queryPageList ( coilBo , pageQuery ) ;
}
@Override
public TableDataInfo < WmsMaterialCoilVo > queryCoilsBySalesman ( String salesman , PageQuery pageQuery ) {
String coilIds = resolveCoilIdsBySalesman ( salesman ) ;
if ( coilIds = = null ) {
return new TableDataInfo < > ( ) ;
}
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo ( ) ;
coilBo . setCoilIds ( coilIds ) ;
return iWmsMaterialCoilService . queryPageList ( coilBo , pageQuery ) ;
}
@Override
public TableDataInfo < WmsMaterialCoilVo > queryCoilsByContractIdPaginated ( Long contractId , PageQuery pageQuery ) {
String coilIds = resolveCoilIdsByContractId ( contractId ) ;
if ( coilIds = = null ) {
return new TableDataInfo < > ( ) ;
}
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo ( ) ;
coilBo . setCoilIds ( coilIds ) ;
return iWmsMaterialCoilService . queryPageList ( coilBo , pageQuery ) ;
}
// ==================== 统计汇总查询 ====================
@Override
public Map < String , java . math . BigDecimal > queryCoilsByOrderIdStatistics ( Long orderId ) {
String coilIds = resolveCoilIdsByOrderId ( orderId ) ;
if ( coilIds = = null ) {
return emptyStatistics ( ) ;
}
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo ( ) ;
coilBo . setCoilIds ( coilIds ) ;
return iWmsMaterialCoilService . getStatistics ( coilBo ) ;
}
@Override
public Map < String , java . math . BigDecimal > queryCoilsBySalesmanStatistics ( String salesman ) {
String coilIds = resolveCoilIdsBySalesman ( salesman ) ;
if ( coilIds = = null ) {
return emptyStatistics ( ) ;
}
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo ( ) ;
coilBo . setCoilIds ( coilIds ) ;
return iWmsMaterialCoilService . getStatistics ( coilBo ) ;
}
@Override
public Map < String , java . math . BigDecimal > queryCoilsByContractIdStatistics ( Long contractId ) {
String coilIds = resolveCoilIdsByContractId ( contractId ) ;
if ( coilIds = = null ) {
return emptyStatistics ( ) ;
}
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo ( ) ;
coilBo . setCoilIds ( coilIds ) ;
return iWmsMaterialCoilService . getStatistics ( coilBo ) ;
}
// ==================== 已有方法(非分页) ====================
@Override
public List < WmsMaterialCoilVo > queryCoilsByContractId ( Long contractId ) {
LambdaQueryWrapper < CrmOrder > orderWrapper = new LambdaQueryWrapper < > ( ) ;
orderWrapper . eq ( CrmOrder : : getContractId , contractId ) ;
List < CrmOrder > orders = crmOrderMapper . selectList ( orderWrapper ) ;
if ( orders = = null | | orders . isEmpty ( ) ) {
return Collections . emptyList ( ) ;
}
List < Long > orderIds = orders . stream ( )
. map ( CrmOrder : : getOrderId )
. collect ( Collectors . toList ( ) ) ;
@@ -339,11 +466,9 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
LambdaQueryWrapper < WmsDeliveryWaybill > waybillWrapper = new LambdaQueryWrapper < > ( ) ;
waybillWrapper . in ( WmsDeliveryWaybill : : getOrderId , orderIds ) ;
List < WmsDeliveryWaybill > waybills = wmsDeliveryWaybillMapper . selectList ( waybillWrapper ) ;
if ( waybills = = null | | waybills . isEmpty ( ) ) {
return Collections . emptyList ( ) ;
}
List < Long > waybillIds = waybills . stream ( )
. map ( WmsDeliveryWaybill : : getWaybillId )
. collect ( Collectors . toList ( ) ) ;
@@ -351,11 +476,9 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
LambdaQueryWrapper < WmsDeliveryWaybillDetail > detailWrapper = new LambdaQueryWrapper < > ( ) ;
detailWrapper . in ( WmsDeliveryWaybillDetail : : getWaybillId , waybillIds ) ;
List < WmsDeliveryWaybillDetail > details = wmsDeliveryWaybillDetailMapper . selectList ( detailWrapper ) ;
if ( details = = null | | details . isEmpty ( ) ) {
return Collections . emptyList ( ) ;
}
String coilIds = details . stream ( )
. map ( WmsDeliveryWaybillDetail : : getCoilId )
. map ( String : : valueOf )
@@ -373,11 +496,9 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
LambdaQueryWrapper < CrmOrder > orderWrapper = new LambdaQueryWrapper < > ( ) ;
orderWrapper . eq ( CrmOrder : : getCustomerId , customerId ) ;
List < CrmOrder > orders = crmOrderMapper . selectList ( orderWrapper ) ;
if ( orders = = null | | orders . isEmpty ( ) ) {
return result ;
}
List < Long > orderIds = orders . stream ( )
. map ( CrmOrder : : getOrderId )
. collect ( Collectors . toList ( ) ) ;
@@ -405,11 +526,9 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
LambdaQueryWrapper < CrmOrder > orderWrapper = new LambdaQueryWrapper < > ( ) ;
orderWrapper . eq ( CrmOrder : : getCustomerId , customerId ) ;
List < CrmOrder > orders = crmOrderMapper . selectList ( orderWrapper ) ;
if ( orders = = null | | orders . isEmpty ( ) ) {
return Collections . emptyList ( ) ;
}
List < Long > orderIds = orders . stream ( )
. map ( CrmOrder : : getOrderId )
. collect ( Collectors . toList ( ) ) ;
@@ -417,11 +536,9 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
LambdaQueryWrapper < WmsDeliveryWaybill > waybillWrapper = new LambdaQueryWrapper < > ( ) ;
waybillWrapper . in ( WmsDeliveryWaybill : : getOrderId , orderIds ) ;
List < WmsDeliveryWaybill > waybills = wmsDeliveryWaybillMapper . selectList ( waybillWrapper ) ;
if ( waybills = = null | | waybills . isEmpty ( ) ) {
return Collections . emptyList ( ) ;
}
List < Long > waybillIds = waybills . stream ( )
. map ( WmsDeliveryWaybill : : getWaybillId )
. collect ( Collectors . toList ( ) ) ;
@@ -429,11 +546,9 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
LambdaQueryWrapper < WmsDeliveryWaybillDetail > detailWrapper = new LambdaQueryWrapper < > ( ) ;
detailWrapper . in ( WmsDeliveryWaybillDetail : : getWaybillId , waybillIds ) ;
List < WmsDeliveryWaybillDetail > details = wmsDeliveryWaybillDetailMapper . selectList ( detailWrapper ) ;
if ( details = = null | | details . isEmpty ( ) ) {
return Collections . emptyList ( ) ;
}
String coilIds = details . stream ( )
. map ( WmsDeliveryWaybillDetail : : getCoilId )
. map ( String : : valueOf )
@@ -444,73 +559,11 @@ public class CrmOrderItemServiceImpl implements ICrmOrderItemService {
return iWmsMaterialCoilService . queryList ( coilBo ) ;
}
@Override
public TableDataInfo < WmsMaterialCoilVo > queryCoilsBySalesman ( String salesman , PageQuery pageQuery ) {
LambdaQueryWrapper < CrmOrder > orderWrapper = new LambdaQueryWrapper < > ( ) ;
orderWrapper . eq ( CrmOrder : : getSalesman , salesman ) ;
orderWrapper . eq ( CrmOrder : : getDelFlag , 0 ) ;
List < CrmOrder > orders = crmOrderMapper . selectList ( orderWrapper ) ;
if ( orders = = null | | orders . isEmpty ( ) ) {
return new TableDataInfo < > ( ) ;
}
List < Long > orderIds = orders . stream ( )
. map ( CrmOrder : : getOrderId )
. collect ( Collectors . toList ( ) ) ;
LambdaQueryWrapper < WmsCoilContractRel > relWrapper = new LambdaQueryWrapper < > ( ) ;
relWrapper . in ( WmsCoilContractRel : : getContractId , orderIds ) ;
relWrapper . eq ( WmsCoilContractRel : : getDelFlag , 0 ) ;
List < WmsCoilContractRel > rels = coilContractRelMapper . selectList ( relWrapper ) ;
if ( rels = = null | | rels . isEmpty ( ) ) {
return new TableDataInfo < > ( ) ;
}
String coilIds = rels . stream ( )
. map ( WmsCoilContractRel : : getCoilId )
. distinct ( )
. map ( String : : valueOf )
. collect ( Collectors . joining ( " , " ) ) ;
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo ( ) ;
coilBo . setCoilIds ( coilIds ) ;
return iWmsMaterialCoilService . queryPageList ( coilBo , pageQuery ) ;
}
@Override
public TableDataInfo < WmsMaterialCoilVo > queryCoilsByContractIdPaginated ( Long contractId , PageQuery pageQuery ) {
LambdaQueryWrapper < CrmOrder > orderWrapper = new LambdaQueryWrapper < > ( ) ;
orderWrapper . eq ( CrmOrder : : getContractId , contractId ) ;
orderWrapper . eq ( CrmOrder : : getDelFlag , 0 ) ;
List < CrmOrder > orders = crmOrderMapper . selectList ( orderWrapper ) ;
if ( orders = = null | | orders . isEmpty ( ) ) {
return new TableDataInfo < > ( ) ;
}
List < Long > orderIds = orders . stream ( )
. map ( CrmOrder : : getOrderId )
. collect ( Collectors . toList ( ) ) ;
LambdaQueryWrapper < WmsCoilContractRel > relWrapper = new LambdaQueryWrapper < > ( ) ;
relWrapper . in ( WmsCoilContractRel : : getContractId , orderIds ) ;
relWrapper . eq ( WmsCoilContractRel : : getDelFlag , 0 ) ;
List < WmsCoilContractRel > rels = coilContractRelMapper . selectList ( relWrapper ) ;
if ( rels = = null | | rels . isEmpty ( ) ) {
return new TableDataInfo < > ( ) ;
}
String coilIds = rels . stream ( )
. map ( WmsCoilContractRel : : getCoilId )
. distinct ( )
. map ( String : : valueOf )
. collect ( Collectors . joining ( " , " ) ) ;
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo ( ) ;
coilBo . setCoilIds ( coilIds ) ;
return iWmsMaterialCoilService . queryPageList ( coilBo , pageQuery ) ;
private Map < String , java . math . BigDecimal > emptyStatistics ( ) {
Map < String , java . math . BigDecimal > empty = new HashMap < > ( ) ;
empty . put ( " total_count " , java . math . BigDecimal . ZERO ) ;
empty . put ( " total_gross_weight " , java . math . BigDecimal . ZERO ) ;
empty . put ( " total_net_weight " , java . math . BigDecimal . ZERO ) ;
return empty ;
}
}