Browse Source

自提列表调整、导出调整

dist.1.3.0
汤建军 10 months ago
parent
commit
514aef14b0
  1. 15
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistrilbutionBillLadingDTO.java
  2. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml
  3. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  4. 429
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  5. 22
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  6. 161
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

15
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistrilbutionBillLadingDTO.java

@ -52,10 +52,20 @@ public class DistrilbutionBillLadingDTO extends DistrilbutionBillLadingEntity {
*/
private String pickupBatch;
/**
* 提货批次
*/
private String orderCode;
/**
* 多个提货批次
*/
private List<String> pickupBatchs;
/**
* 多个订单
*/
private List<String> orderCodes;
/**
* 服务号
*/
@ -142,10 +152,7 @@ public class DistrilbutionBillLadingDTO extends DistrilbutionBillLadingEntity {
*/
private String stockupCode;
/**
* 订单自编号
*/
private String orderCode;
/**
* 库存品
*/

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml

@ -1512,7 +1512,13 @@
ldl.signing_user AS nodeControlsUserName,
ldl.signing_user_id AS nodeControlsUserId,
IF(ldla.id is not null AND ldl.scan_status = '2','异常签收','扫描签收' )AS nodeName,
CONCAT('签收操作成功') AS description
CASE ldl.scan_status
WHEN '2' THEN CONCAT('扫描签收,签收方式:',IF(ldl.tray_no is not null,'托盘','包件'),IF(ldl.tray_no is null,'',ldl.tray_no))
WHEN '3' THEN CONCAT('扫描签收,签收方式:订单')
WHEN '4' THEN CONCAT('扫描签收,签收方式:批量确认')
WHEN '5' THEN CONCAT('扫描签收,签收方式:未装车签收')
ELSE CONCAT('扫描装车,装车方式:',IF(ldl.tray_no is not null,'托盘','包件'),IF(ldl.tray_no is null,'',ldl.tray_no))
END description
FROM
logpm_distribution_loadscan AS ldl
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldl.package_id = ldpl.id

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java

@ -99,7 +99,7 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
List<DistrilbutionBillLadingVO> selectBillStockList(IPage<DistrilbutionBillLadingVO> page, @Param("distrilbutionBillLading") Map<String, Object> distrilbutionBillLading);
List<DistrilbutionBillLadingVO> exportDistributionBillLading(@Param("param") Map<String, Object> param, @Param("idArr") List<String> idArr);
List<DistrilbutionBillLadingVO> exportDistributionBillLading(@Param("param") Map<String, Object> param);
/**

429
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml

@ -32,97 +32,165 @@
</foreach>
</update>
<select id="pageList" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingVO">
select dbl.id,
GROUP_CONCAT(DISTINCT dsa.service_number) serviceNumber,
GROUP_CONCAT(DISTINCT dsa.waybill_number) waybillNumber,
GROUP_CONCAT(DISTINCT dsa.consignee_unit)
consigneeUnit,GROUP_CONCAT(DISTINCT dsa.consignee_person) customerName,
GROUP_CONCAT(DISTINCT dsa.customer_telephone)
customerTelephone,dsa.warehouse,dsa.warehouse_entry_time warehouseEntryTime,dsa.storage_fee
storageFee,
IFNULL((SELECT SUM(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = dbl.id AND packet_bar_status != 2),0)+IFNULL((SELECT SUM(quantity) FROM logpm_distribution_reservation_zero_package WHERE reservation_id = dbl.id AND zero_package_status !=2),0) + IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = dbl.id AND inventory_status != 2),0)AS totalNumber,
dbl.certificate_type certificateType,
GROUP_CONCAT(DISTINCT dsa.brand) brand,dsa.type_service typeService,
dbl.pick_up_time pickUpTime,dbl.consignee,dbl.delivery_document
deliveryDocument,dbl.conditions,
dbl.total_cost totalCost,
dbl.pick_up_plate pickUpPlate,dbl.pickup_batch pickupBatch,
SELECT
dbl.id,
t.orderCode,
t.serviceNumber,
t.consigneeUnit,
t.customerName,
t.customerTelephone,
t.waybillNumber,
3 AS typeService,
t.warehouseEntryTime,
t.storageFee,
IFNULL(( SELECT sum( packet_number ) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = dbl.id AND packet_bar_status != 2 ), 0 ) + IFNULL(( SELECT sum( quantity ) FROM logpm_distribution_reservation_zero_package WHERE reservation_id = dbl.id AND zero_package_status != 2 ), 0 ) + IFNULL(( SELECT sum( quantity ) FROM logpm_distribution_delivery_details WHERE bill_lading_id = dbl.id AND inventory_status != 2 ), 0 ) AS totalNumber,
dbl.certificate_type AS certificateType,
dbl.pick_up_time AS pickUpTime,
dbl.consignee,
dbl.delivery_document AS deliveryDocument,
dbl.conditions,
dbl.total_cost AS totalCost,
dbl.pick_up_plate AS pickUpPlate,
dbl.pickup_batch AS pickupBatch,
( SELECT count( quantity ) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id = dbl.id ) AS stopNum,
(
select COUNT(quantity)
from logpm_distribution_bill_lading_scan
where bill_lading_id = dbl.id
) stopNum,
GROUP_CONCAT(DISTINCT dsa.order_code) orderCode,
(SELECT
GROUP_CONCAT(splice)
from
SELECT
group_concat( splice )
FROM
(
SELECT
dbl2.id AS id,
IF
(
SELECT dbl2.id as id,
if(ldpl2.second=null or ldpl2.second='' ,'',CONCAT(ldpl2.second,'(',count(*),')') )
as splice from logpm_distrilbution_bill_lading dbl2
LEFT JOIN logpm_distrilbution_bill_package dbp2 ON dbp2.bill_lading_id = dbl2.id AND dbp2.packet_bar_status IN ( 1, 3 )
ldpl2.SECOND = NULL
OR ldpl2.SECOND = '',
'',
CONCAT( ldpl2.SECOND, '(', count(*), ')' )) AS splice
FROM
logpm_distrilbution_bill_lading dbl2
LEFT JOIN logpm_distrilbution_bill_package dbp2 ON dbp2.bill_lading_id = dbl2.id
AND dbp2.packet_bar_status IN ( 1, 3 )
LEFT JOIN logpm_distribution_parcel_list ldpl2 ON dbp2.parce_list_id = ldpl2.id
AND dbp2.tenant_id = '627683'
GROUP BY dbl2.pickup_batch,ldpl2.second
) as aimdate
WHERE dbl.id=id
GROUP BY id
GROUP BY
dbl2.pickup_batch,
ldpl2.SECOND
) aimdate
WHERE
dbl.id = id
GROUP BY
id
) AS productInformation
from logpm_distrilbution_bill_lading dbl
LEFT JOIN logpm_distrilbution_bill_stock AS lds on lds.bill_lading_id = dbl.id
LEFT JOIN logpm_distribution_stock_article dsa on lds.stock_article_id = dsa.id
FROM
logpm_distrilbution_bill_lading dbl
LEFT JOIN (
SELECT
CASE
WHEN
k.id IS NULL THEN
m.id
WHEN m.id IS NULL THEN
k.id ELSE k.id
END id,
CONCAT_WS( ',', k.orderCode, m.orderCode ) AS orderCode,
CONCAT_WS( ',', k.serviceNumber, m.serviceNumber ) AS serviceNumber,
CONCAT_WS( ',', k.consigneeUnit, m.consigneeUnit ) AS consigneeUnit,
CONCAT_WS( ',', k.customerName, m.customerName ) AS customerName,
CONCAT_WS( ',', k.customerTelephone, m.customerTelephone ) AS customerTelephone,
CONCAT_WS( ',', k.waybillNumber ) AS waybillNumber,
k.warehouse_entry_time AS warehouseEntryTime,
k.storage_fee AS storageFee
FROM
(
SELECT
aaa.id,
group_concat( DISTINCT dsa.service_number ) AS serviceNumber,
group_concat( DISTINCT dsa.waybill_number ) AS waybillNumber,
group_concat( DISTINCT dsa.consignee_unit ) AS consigneeUnit,
group_concat( DISTINCT dsa.consignee_person ) AS customerName,
group_concat( DISTINCT dsa.customer_telephone ) AS customerTelephone,
group_concat( DISTINCT dsa.brand ) AS brand,
group_concat( DISTINCT dsa.order_code ) AS orderCode,
group_concat( DISTINCT dsa.warehouse ) AS warehouse,
dsa.warehouse_entry_time,
dsa.storage_fee
FROM
logpm_distrilbution_bill_lading aaa
LEFT JOIN logpm_distrilbution_bill_stock lds ON lds.bill_lading_id = aaa.id
LEFT JOIN logpm_distribution_stock_article dsa ON lds.stock_article_id = dsa.id
WHERE
lds.order_status != 2
GROUP BY
aaa.id
) AS k
LEFT JOIN (
SELECT
bbb.id,
group_concat( DISTINCT ldsl.service_number ) AS serviceNumber,
group_concat( ldsl.incoming_batch ) AS incomingBatch,
group_concat( DISTINCT ldsl.market_name ) AS consigneeUnit,
group_concat( DISTINCT ldsl.order_code ) AS orderCode,
group_concat( DISTINCT lbc.linkman ) AS customerName,
group_concat( DISTINCT lbc.phone ) AS customerTelephone,
group_concat( DISTINCT ldsl.brand_name ) AS brand
FROM
logpm_distrilbution_bill_lading bbb
LEFT JOIN logpm_distribution_delivery_details lddd ON lddd.bill_lading_id = bbb.id
AND lddd.is_deleted = 0
LEFT JOIN logpm_distribution_stock_list ldsl ON lddd.stock_list_id = ldsl.id
LEFT JOIN logpm_basicdata_client lbc ON ldsl.market_id = lbc.id
WHERE
lddd.inventory_status != 2
GROUP BY
bbb.id
) AS m ON m.id = k.id
) AS t ON t.id = dbl.id
<where>
dbl.is_deleted = 0 AND lds.order_status != 2
<if test="param.serviceNumber != null and param.serviceNumber != ''">and dsa.service_number like
concat('%',#{param.serviceNumber},'%')
</if>
<if test="param.orderCode != null and param.orderCode != ''">and dsa.order_code like
concat('%',#{param.orderCode},'%')
</if>
<if test="param.pickupBatch != null and param.pickupBatch != ''">and dbl.pickup_batch like
concat('%',#{param.pickupBatch},'%')
</if>
<if test="param.waybillNumber != null and param.waybillNumber != ''">and dsa.waybill_number like
concat('%',#{param.waybillNumber},'%')
</if>
<if test="param.consigneeUnit != null and param.consigneeUnit != ''">and dsa.consignee_unit like
concat('%',#{param.consigneeUnit},'%')
</if>
<if test="param.customerName != null and param.customerName != ''">and dbl.customer_name like
concat('%',#{param.customerName},'%')
</if>
<if test="param.customerTelephone != null and param.customerTelephone != ''">and dsa.customer_telephone like
concat('%',#{param.customerTelephone},'%')
</if>
<if test="param.warehouse != null and param.warehouse != ''">and dsa.warehouse like
concat('%',#{param.warehouse},'%')
</if>
<if test="param.warehouseIdList != null and @org.apache.commons.collections4.CollectionUtils@isNotEmpty(param.warehouseIdList)">
and dbl.warehouse_id in
<foreach collection="param.warehouseIdList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.warehouseEntryTime != null ">and date(dsa.warehouse_entry_time) =
<if test="param.warehouseEntryTime != null ">and date(t.warehouseEntryTime) =
#{param.warehouseEntryTime}
</if>
<if test="param.startDate != null ">and dsa.warehouse_entry_time between #{param.startDate} and
<if test="param.pickUpTime != null ">and date(dbl.pick_up_time) =
#{param.pickUpTime}
</if>
<if test="param.startDate != null ">and t.warehouseEntryTime between #{param.startDate} and
#{param.entDate}
</if>
<if test="param.brand != null and param.brand != ''">and dsa.brand like concat('%',#{param.brand},'%')</if>
<if test="param.typeService != null and param.typeService != ''">and dsa.type_service =
#{param.typeService}
</if>
<if test="param.productInformation != null and param.productInformation != ''">and dsa.allocation like
concat('%',#{param.productInformation},'%')
</if>
<if test="param.pickupPhone != null and param.pickupPhone != ''">and dbl.pickup_phone
concat('%',#{param.pickupPhone},'%')
</if>
<if test="param.consignee != null and param.consignee != ''">and dbl.consignee like
concat('%',#{param.consignee},'%')
</if>
<if test="param.orderCode != null and param.orderCode != ''">and t.orderCode like
concat('%',#{param.orderCode},'%')
</if>
<if test="param.waybillNumber != null and param.waybillNumber != ''">and t.waybillNumber like
concat('%',#{param.waybillNumber},'%')
</if>
<if test="param.serviceNumber != null and param.serviceNumber != ''">and t.serviceNumber like
concat('%',#{param.serviceNumber},'%')
</if>
<if test="param.consigneeUnit != null and param.consigneeUnit != ''">and t.consigneeUnit like
concat('%',#{param.consigneeUnit},'%')
</if>
<if test="param.customerName != null and param.customerName != ''">and t.customerName like
concat('%',#{param.customerName},'%')
</if>
<if test="param.customerTelephone != null and param.customerTelephone != ''">and t.customerTelephone like
concat('%',#{param.customerTelephone},'%')
</if>
<if test="param.pickUpPlate != null and param.pickUpPlate != ''">and dbl.pick_up_plate like
concat('%',#{param.pickUpPlate},'%')
</if>
@ -135,33 +203,40 @@
<if test="param.warehouseId != null and param.warehouseId != ''">and dbl.warehouse_id =
#{param.warehouseId}
</if>
<if test="param.pickupBatchs != null and param.warehouseId != ''">
<if test="param.pickupBatchs != null ">
and dbl.pickup_batch IN
<foreach collection="param.pickupBatchs" item="batch" index="index" separator="," open="(" close=")">
#{batch}
</foreach>
</if>
<if test="param.orderCodes != null ">
and t.orderCode IN
<foreach collection="param.orderCodes" item="orderCode" index="index" separator="," open="(" close=")">
#{orderCode}
</foreach>
</if>
</where>
GROUP BY dbl.id,dsa.warehouse,dsa.type_service
Order BY dbl.create_time desc
GROUP BY
dbl.id
ORDER BY
dbl.create_time DESC
</select>
<select id="exportDistributionBillLading" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingVO">
SELECT
dbl.id,
dsa.service_number AS serviceNumber,
dsa.waybill_number AS waybillNumber,
dsa.consignee_unit AS consigneeUnit,
dsa.customer_name AS customerName,
dsa.customer_telephone AS customerTelephone,
dsa.warehouse,
dsa.warehouse_entry_time AS warehouseEntryTime,
dsa.storage_fee AS storageFee,
(count(DISTINCT ldbp.id,0)+count(DISTINCT lddd.quantity,0)) AS totalNumber,
t.orderCode,
t.serviceNumber,
t.consigneeUnit,
t.customerName,
t.customerTelephone,
t.waybillNumber,
3 AS typeService,
t.warehouseEntryTime,
t.storageFee,
IFNULL(( SELECT sum( packet_number ) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = dbl.id AND packet_bar_status != 2 ), 0 ) + IFNULL(( SELECT sum( quantity ) FROM logpm_distribution_reservation_zero_package WHERE reservation_id = dbl.id AND zero_package_status != 2 ), 0 ) + IFNULL(( SELECT sum( quantity ) FROM logpm_distribution_delivery_details WHERE bill_lading_id = dbl.id AND inventory_status != 2 ), 0 ) AS totalNumber,
dbl.certificate_type AS certificateType,
dsa.brand,
dsa.type_service AS typeService,
dbl.pick_up_time AS pickUpTime,
dbl.consignee,
dbl.delivery_document AS deliveryDocument,
@ -169,80 +244,180 @@
dbl.total_cost AS totalCost,
dbl.pick_up_plate AS pickUpPlate,
dbl.pickup_batch AS pickupBatch,
dbl.total_cost totalCost,
count(DISTINCT ldbls.id ) AS stopNum
( SELECT count( quantity ) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id = dbl.id ) AS stopNum,
(
SELECT
group_concat( splice )
FROM
(
SELECT
dbl2.id AS id,
IF
(
ldpl2.SECOND = NULL
OR ldpl2.SECOND = '',
'',
CONCAT( ldpl2.SECOND, '(', count(*), ')' )) AS splice
FROM
logpm_distrilbution_bill_lading dbl2
LEFT JOIN logpm_distrilbution_bill_package dbp2 ON dbp2.bill_lading_id = dbl2.id
AND dbp2.packet_bar_status IN ( 1, 3 )
LEFT JOIN logpm_distribution_parcel_list ldpl2 ON dbp2.parce_list_id = ldpl2.id
GROUP BY
dbl2.pickup_batch,
ldpl2.SECOND
) aimdate
WHERE
dbl.id = id
GROUP BY
id
) AS productInformation
FROM
logpm_distrilbution_bill_lading dbl
LEFT JOIN logpm_distrilbution_bill_stock AS ldbs ON ldbs.bill_lading_id = dbl.id AND ldbs.order_status != 3
LEFT JOIN logpm_distribution_stock_article dsa ON ldbs.stock_article_id = dsa.id
LEFT JOIN logpm_distrilbution_bill_package AS ldbp ON ldbp.stock_article_id = dsa.id AND ldbp.bill_lading_id = dbl.id AND ldbp.packet_bar_status != 3
LEFT JOIN logpm_distribution_delivery_details AS lddd ON lddd.bill_lading_id = dbl.id AND lddd.inventory_status != 3
LEFT JOIN logpm_distribution_bill_lading_scan ldbls ON ldbls.bill_lading_id = dbl.id
LEFT JOIN (
SELECT
CASE
WHEN
k.id IS NULL THEN
m.id
WHEN m.id IS NULL THEN
k.id ELSE k.id
END id,
CONCAT_WS( ',', k.orderCode, m.orderCode ) AS orderCode,
CONCAT_WS( ',', k.serviceNumber, m.serviceNumber ) AS serviceNumber,
CONCAT_WS( ',', k.consigneeUnit, m.consigneeUnit ) AS consigneeUnit,
CONCAT_WS( ',', k.customerName, m.customerName ) AS customerName,
CONCAT_WS( ',', k.customerTelephone, m.customerTelephone ) AS customerTelephone,
CONCAT_WS( ',', k.waybillNumber ) AS waybillNumber,
k.warehouse_entry_time AS warehouseEntryTime,
k.storage_fee AS storageFee
FROM
(
SELECT
aaa.id,
group_concat( DISTINCT dsa.service_number ) AS serviceNumber,
group_concat( DISTINCT dsa.waybill_number ) AS waybillNumber,
group_concat( DISTINCT dsa.consignee_unit ) AS consigneeUnit,
group_concat( DISTINCT dsa.consignee_person ) AS customerName,
group_concat( DISTINCT dsa.customer_telephone ) AS customerTelephone,
group_concat( DISTINCT dsa.brand ) AS brand,
group_concat( DISTINCT dsa.order_code ) AS orderCode,
group_concat( DISTINCT dsa.warehouse ) AS warehouse,
dsa.warehouse_entry_time,
dsa.storage_fee
FROM
logpm_distrilbution_bill_lading aaa
LEFT JOIN logpm_distrilbution_bill_stock lds ON lds.bill_lading_id = aaa.id
LEFT JOIN logpm_distribution_stock_article dsa ON lds.stock_article_id = dsa.id
WHERE
lds.order_status != 2
GROUP BY
aaa.id
) AS k
LEFT JOIN (
SELECT
bbb.id,
group_concat( DISTINCT ldsl.service_number ) AS serviceNumber,
group_concat( ldsl.incoming_batch ) AS incomingBatch,
group_concat( DISTINCT ldsl.market_name ) AS consigneeUnit,
group_concat( DISTINCT ldsl.order_code ) AS orderCode,
group_concat( DISTINCT lbc.linkman ) AS customerName,
group_concat( DISTINCT lbc.phone ) AS customerTelephone,
group_concat( DISTINCT ldsl.brand_name ) AS brand
FROM
logpm_distrilbution_bill_lading bbb
LEFT JOIN logpm_distribution_delivery_details lddd ON lddd.bill_lading_id = bbb.id
AND lddd.is_deleted = 0
LEFT JOIN logpm_distribution_stock_list ldsl ON lddd.stock_list_id = ldsl.id
LEFT JOIN logpm_basicdata_client lbc ON ldsl.market_id = lbc.id
WHERE
lddd.inventory_status != 2
GROUP BY
bbb.id
) AS m ON m.id = k.id
) AS t ON t.id = dbl.id
<where>
dbl.is_deleted = 0
<if test="param.serviceNumber != null and param.serviceNumber != ''">
and dsa.service_number like concat('%',#{param.serviceNumber},'%')
<if test="param.pickupBatch != null and param.pickupBatch != ''">and dbl.pickup_batch like
concat('%',#{param.pickupBatch},'%')
</if>
<if test="param.pickupBatch != null and param.pickupBatch != ''">
and dbl.pickup_batch like concat('%',#{param.pickupBatch},'%')
<if test="param.warehouseIdList != null and @org.apache.commons.collections4.CollectionUtils@isNotEmpty(param.warehouseIdList)">
and dbl.warehouse_id in
<foreach collection="param.warehouseIdList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.waybillNumber != null and param.waybillNumber != ''">
and dsa.waybill_number like concat('%',#{param.waybillNumber},'%')
<if test="param.warehouseEntryTime != null ">and date(t.warehouseEntryTime) =
#{param.warehouseEntryTime}
</if>
<if test="param.consigneeUnit != null and param.consigneeUnit != ''">
and dsa.consignee_unit like concat('%',#{param.consigneeUnit},'%')
<if test="param.pickUpTime != null ">and date(dbl.pick_up_time) =
#{param.pickUpTime}
</if>
<if test="param.customerName != null and param.customerName != ''">
and dsa.customer_name like concat('%',#{param.customerName},'%')
<if test="param.startDate != null ">and t.warehouseEntryTime between #{param.startDate} and
#{param.entDate}
</if>
<if test="param.customerTelephone != null and param.customerTelephone != ''">
and dsa.customer_telephone like concat('%',#{param.customerTelephone},'%')
<if test="param.typeService != null and param.typeService != ''">and dsa.type_service =
#{param.typeService}
</if>
<if test="param.pickupPhone != null and param.pickupPhone != ''">and dbl.pickup_phone
concat('%',#{param.pickupPhone},'%')
</if>
<if test="param.consignee != null and param.consignee != ''">and dbl.consignee like
concat('%',#{param.consignee},'%')
</if>
<if test="param.warehouse != null and param.warehouse != ''">
and dsa.warehouse like concat('%',#{param.warehouse},'%')
<if test="param.orderCode != null and param.orderCode != ''">and t.orderCode like
concat('%',#{param.orderCode},'%')
</if>
<if test="param.warehouseId != null and param.warehouseId != ''">
and dsa.warehouse_id like concat('%',#{param.warehouseId},'%')
<if test="param.waybillNumber != null and param.waybillNumber != ''">and t.waybillNumber like
concat('%',#{param.waybillNumber},'%')
</if>
<if test="param.warehouseEntryTime != null ">
and date(dsa.warehouse_entry_time) = #{param.warehouseEntryTime}
<if test="param.serviceNumber != null and param.serviceNumber != ''">and t.serviceNumber like
concat('%',#{param.serviceNumber},'%')
</if>
<if test="param.startDate != null ">
and dsa.warehouse_entry_time between #{param.startDate} and #{param.entDate}
<if test="param.consigneeUnit != null and param.consigneeUnit != ''">and t.consigneeUnit like
concat('%',#{param.consigneeUnit},'%')
</if>
<if test="param.brand != null and param.brand != ''">
and dsa.brand like concat('%',#{param.brand},'%')
<if test="param.customerName != null and param.customerName != ''">and t.customerName like
concat('%',#{param.customerName},'%')
</if>
<if test="param.typeService != null and param.typeService != ''">
and dsa.type_service = #{param.typeService}
<if test="param.customerTelephone != null and param.customerTelephone != ''">and t.customerTelephone like
concat('%',#{param.customerTelephone},'%')
</if>
<if test="param.productInformation != null and param.productInformation != ''">
and dsa.allocation like concat('%',#{param.productInformation},'%')
<if test="param.pickUpPlate != null and param.pickUpPlate != ''">and dbl.pick_up_plate like
concat('%',#{param.pickUpPlate},'%')
</if>
<if test="param.pickupPhone != null and param.pickupPhone != ''">
and dbl.pickup_phone concat('%',#{param.pickupPhone},'%')
<if test="param.deliveryDocument != null and param.deliveryDocument != ''">and dbl.delivery_document like
concat('%',#{param.deliveryDocument},'%')
</if>
<if test="param.consignee != null and param.consignee != ''">
and dbl.consignee like concat('%',#{param.consignee},'%')
<if test="param.certificateType != null and param.certificateType != ''">and dbl.certificate_type =
#{param.certificateType}
</if>
<if test="param.pickUpPlate != null and param.pickUpPlate != ''">
and dbl.pick_up_plate like concat('%',#{param.pickUpPlate},'%')
<if test="param.warehouseId != null and param.warehouseId != ''">and dbl.warehouse_id =
#{param.warehouseId}
</if>
<if test="param.deliveryDocument != null and param.deliveryDocument != ''">
and dbl.delivery_document like concat('%',#{param.deliveryDocument},'%')
<if test="param.pickupBatchs != null ">
and dbl.pickup_batch IN
<foreach collection="param.pickupBatchs" item="batch" index="index" separator="," open="(" close=")">
#{batch}
</foreach>
</if>
<if test="param.certificateType != null and param.certificateType != ''">
and dbl.certificate_type = #{param.certificateType},
<if test="param.orderCodes != null ">
and t.orderCode IN
<foreach collection="param.orderCodes" item="orderCode" index="index" separator="," open="(" close=")">
#{orderCode}
</foreach>
</if>
<if test="idArr != null and idArr != ''">
and dbl.id in
<foreach collection="idArr" item="item" open="(" close=")" separator=",">
#{item}
<if test="param.idArr != null ">
and dbl.id IN
<foreach collection="param.idArr" item="id" index="index" separator="," open="(" close=")">
#{id}
</foreach>
</if>
</where>
GROUP BY dbl.id
GROUP BY
dbl.id
ORDER BY
dbl.create_time DESC
</select>
<select id="selectDistrilbutionBillLadingPage" resultMap="distrilbutionBillLadingResultMap">

22
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -638,16 +638,32 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
return Resp.scanFail("系统无编码", "系统无编码");
}
if (!Objects.isNull(parcelList)) {
if (OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(parcelList.getOrderPackageLoadingStatus())) {
return Resp.scanFail("包件已装车", "包件已装车");
if (OrderPackageStatusConstant.yiqianshou.getValue().equals(parcelList.getOrderPackageStatus())) {
return Resp.scanFail("包件已签收", "包件已签收");
}
}
//查询是否在其他车次进行装车
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (!loadscanEntityList.isEmpty()){
boolean flag = loadscanEntityList.stream().anyMatch(l -> distrilbutionloadingscanDTO.getDeliveryId().equals(l.getDeliveryId()));
if (flag){
return Resp.scanFail("包件在本车次装车", "包件已装车");
}else {
return Resp.scanFail("包件在其他车次装车", "包件已装车");
}
}
if (!Objects.isNull(parcelList)) {
if (OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(parcelList.getOrderPackageLoadingStatus())) {
return Resp.scanFail("包件已装车", "包件已装车");
}
}
List<DistributionParcelListEntity> distributionParcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isNotEmpty(distrilbutionloadingscanDTO.getReservationId())) {
//在客户列表进行装车

161
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -487,27 +487,32 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
throw new ServiceException("请勿重复提交!!!");
}
redis.setEx(lockKey, distrilbutionBillLading.getStockArticleId(), 5L);
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(!distrilbutionBillLading.getStockArticleId().contains(","), DistrilbutionBillStockEntity::getStockArticleId, distrilbutionBillLading.getStockArticleId())
.in(distrilbutionBillLading.getStockArticleId().contains(","), DistrilbutionBillStockEntity::getStockArticleId, distrilbutionBillLading.getStockArticleId().split(","))
);
if (!list.isEmpty()) {
for (DistrilbutionBillStockEntity i : list) {
DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId());
if (byId.getStockupStatus().equals(OrderReservationStatusConstant.daiyuyue.getValue())) {
break;
}
if (Func.isNotEmpty(distrilbutionBillLading.getStockArticleId())){
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(!distrilbutionBillLading.getStockArticleId().contains(","), DistrilbutionBillStockEntity::getStockArticleId, distrilbutionBillLading.getStockArticleId())
.in(distrilbutionBillLading.getStockArticleId().contains(","), DistrilbutionBillStockEntity::getStockArticleId, distrilbutionBillLading.getStockArticleId().split(","))
);
if (!list.isEmpty()) {
for (DistrilbutionBillStockEntity i : list) {
DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId());
if (byId.getStockupStatus().equals(OrderReservationStatusConstant.daiyuyue.getValue())) {
break;
}
List<DistributionParcelListEntity> list1 = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getStockArticleId, i.getStockArticleId()));
int sum = list1.stream().filter(ii -> ii.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.daiyuyue.getValue())).collect(Collectors.toList()).stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
if (sum == 0) {
log.debug("####{}当前订单备货包件为空,无法创建任务!", byId.getOrderCode());
throw new ServiceException(byId.getOrderCode() + "当前订单备货包件为空,无法创建任务!");
List<DistributionParcelListEntity> list1 = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getStockArticleId, i.getStockArticleId()));
int sum = list1.stream().filter(ii -> ii.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.daiyuyue.getValue())).collect(Collectors.toList()).stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
if (sum == 0) {
log.debug("####{}当前订单备货包件为空,无法创建任务!", byId.getOrderCode());
throw new ServiceException(byId.getOrderCode() + "当前订单备货包件为空,无法创建任务!");
}
}
}
}
}
//新增
// distrilbutionBillLading.setConditions("1");
distrilbutionBillLading.setStockupCode(distributionReservationService.bianMa());
@ -527,7 +532,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(packageisd);
if (Func.isNotEmpty(distributionParcelListEntities)){
packageMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getStockArticleId));
}
}
Map<Long, List<DistributionParcelListDTO>> zeroPackageMap = null;
@ -536,107 +540,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
zeroPackageMap = zeroPackageList.stream().collect(Collectors.groupingBy(DistributionParcelListDTO::getStockArticleId));
}
this.saveDistrilbutionBillLading(distrilbutionBillLading);
//修改订单状态
// if (StringUtils.isNotBlank(distrilbutionBillLading.getStockArticleId())) {
// String[] split = distrilbutionBillLading.getStockArticleId().split(",");
//// for (String s : split) {
//// //查询订单信息
//// DistributionStockArticleEntity byId = distributionStockArticleService.getById(s);
//// //查询是否创建过
//// DistributionStockArticleEntity distributionStockArticle = new DistributionStockArticleEntity();
//// //添加订单和提货单关联
//// DistrilbutionBillStockEntity distrilbutionBillStock = new DistrilbutionBillStockVO();
//// distrilbutionBillStock.setBillLadingId(distrilbutionBillLading.getId());
//// distrilbutionBillStock.setStockArticleId(Long.parseLong(s));
//// distrilbutionBillStock.setConditions(BillLadingStatusConstant.daitihuo.getValue());
//// distrilbutionBillStock.setOrderStatus("1");
//// distrilbutionBillStockService.save(distrilbutionBillStock);
//// List<DistrilbutionBillPackageEntity> packageEntityList = new ArrayList<>();
//// if (ObjectUtils.isNotNull(distrilbutionBillLading.getBillPackageEntityList())) {
//// //添加自提包件信息
////// List<DistrilbutionBillPackageEntity> collect = new ArrayList<>();
//// List<DistrilbutionBillPackageEntity> collect = distrilbutionBillLading.getBillPackageEntityList().stream().filter(qqq -> qqq.getStockArticleId().toString().equals(s)).collect(Collectors.toList());
//// if (!collect.isEmpty()) {
//// //有包件
//// collect.stream().forEach(ss -> {
//// DistrilbutionBillPackageEntity billPackageEntity = new DistrilbutionBillPackageEntity();
//// billPackageEntity.setBillLadingId(distrilbutionBillLading.getId());
//// billPackageEntity.setPacketBarCode(ss.getPacketBarCode());
//// billPackageEntity.setPacketBarStatus(1);
//// billPackageEntity.setParceListId(ss.getParceListId());
//// billPackageEntity.setStockArticleId(ss.getStockArticleId());
//// billPackageEntity.setPacketNumber(1);
//// billPackageEntity.setBillType(byId.getIsZero().equals("1") ? "2" : "1");
//// packageEntityList.add(billPackageEntity);
//// });
////
//// List<Long> collect1 = collect.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList());
//// distributionAsyncService.updateParcelListReservation(collect1);
////
////// //判断是否全部修改
////// int i = byId.getHandQuantity() - collect.size();
////// if (i > 0) {
////// //部分
////// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
////// }
//// } else {
//// //没有包件 查询包件信息
//// List<DistrilbutionBillPackageEntity> packageEntityList1 = billPackInfo(s, distrilbutionBillLading.getId(), parcelLisList, byId);
//// if (packageEntityList1.isEmpty()) {
//// throw new ServiceException(byId.getOrderCode() + "没有可用包件信息!");
//// }
//// packageEntityList.addAll(packageEntityList1);
////
////// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
//// }
//// } else {
//// //没有包件 查询包件信息
//// List<DistrilbutionBillPackageEntity> packageEntityList1 = billPackInfo(s, distrilbutionBillLading.getId(), parcelLisList, byId);
//// if (packageEntityList1.isEmpty()) {
//// throw new ServiceException(byId.getOrderCode() + "没有可用包件信息!");
//// }
//// packageEntityList.addAll(packageEntityList1);
////
////// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
//// }
////
////// int i1 = byId.getHandQuantity() + byId.getSigninQuantity(); //总数
//// if (byId.getCompleteSet() == 2) {
//// //全部
//// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
////
//// } else {
//// //部分
//// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
//// }
////
//// //判断是否改为已预约
//// List<DistributionParcelNumberEntity> parcelNumberList = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda()
//// .eq(DistributionParcelNumberEntity::getStockArticleId, s)
//// );
//// if (!parcelNumberList.isEmpty()) {
//// //零担
//// int handQuantity = parcelNumberList.stream().mapToInt(DistributionParcelNumberEntity::getHandQuantity).sum(); //在库总数量
//// int sum = parcelNumberList.stream().mapToInt(DistributionParcelNumberEntity::getDeliveryQuantity).sum(); //配送数量
//// int i = handQuantity - sum;
//// if (i > 0) {
//// //部分
//// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
//// } else if (i == 0) {
//// //全部
//// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
//// }
//// }
//// distrilbutionBillPackageService.saveBatch(packageEntityList);
////// distributionStockArticle.setId(Long.parseLong(s));
////// distributionStockArticleService.updateById(distributionStockArticle);
//// distributionStockArticleService.maintenanceOrderInfo(distributionStockArticle.getOrderCode(),myCurrentWarehouse.getId());
//// }
// }
List<DistrilbutionBillPackageEntity> packageEntityList = new ArrayList<>();
if (StringUtils.isNotBlank(distrilbutionBillLading.getStockArticleId())) {
String[] split = distrilbutionBillLading.getStockArticleId().split(",");
@ -2019,7 +1922,19 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
strs = Arrays.stream(str.split(",")).collect(Collectors.toList());
}
}
List<String> orderCodes = null;
if (!Objects.isNull(distrilbutionBillLading.get("orderCodes"))){
String str = (String) distrilbutionBillLading.get("orderCodes");
if (Strings.isNotBlank(str)){
if (str.indexOf(",")>0){
//存在中文逗号
str = str.replaceAll(",", ",");
}
orderCodes = Arrays.stream(str.split(",")).collect(Collectors.toList());
}
}
distrilbutionBillLadingDTO.setPickupBatchs(strs);
distrilbutionBillLadingDTO.setOrderCodes(orderCodes);
//获取当前登录人仓库
List<BasicdataWarehouseEntity> warehouseList = basicdataWarehouseClient.getMyWarehouseList();
List<Long> collect = warehouseList.stream()
@ -2065,14 +1980,14 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
throw new ServiceException("没有仓库信息!");
}
// 用户勾选数据的ids
Object ids = param.get("ids");
List<String> idArr = null;
String ids = (String) param.get("ids");
List<Long> idArr = null;
if (null != ids && !ids.toString().isEmpty()) {
idArr = Arrays.asList(param.get("ids").toString().split(","));
idArr = Func.toLongList(ids);
}
param.put("warehouseId", myCurrentWarehouse.getId());
List<DistrilbutionBillLadingVO> list = baseMapper.exportDistributionBillLading(param, idArr);
List<DistrilbutionBillLadingVO> list = baseMapper.exportDistributionBillLading(param);
List<DistrilbutionBillLadingExcel> listExcel = new ArrayList<>();
list.forEach(s -> {
DistrilbutionBillLadingExcel excel = new DistrilbutionBillLadingExcel();

Loading…
Cancel
Save