Browse Source

Merge branch 'pre-production'

master
pref_mail@163.com 1 year ago
parent
commit
42652448ed
  1. 2
      blade-biz-common/src/main/java/org/springblade/common/constant/OldSystemDataPushConfig.java
  2. 6
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleVO.java
  3. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
  4. 61
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionBillLadingZeroPackageDTO.java
  5. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionParcelListDTO.java
  6. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java
  7. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.java
  8. 12
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.xml
  9. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml
  10. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  11. 42
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  12. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml
  13. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java
  14. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationZeroPackageService.java
  15. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
  16. 19
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  17. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  18. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  19. 15
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java
  20. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationZeroPackageServiceImpl.java
  21. 42
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java
  22. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
  23. 726
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  24. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/wrapper/DistributionStockArticleWrapper.java
  25. 8
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/BillDataMapper.xml
  26. 44
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java
  27. 75
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml
  28. 6
      blade-service/logpm-report/src/main/java/com/logpm/report/service/InLibraryDeliverService.java
  29. 9
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java
  30. 16
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/AbnormalDataVo.java
  31. 21
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/AbnormalDetailDataVo.java
  32. 16
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/DeliveryDataVo.java
  33. 21
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/DeliveryDetailDataVo.java
  34. 27
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/FreightDataVo.java
  35. 14
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/InStoreDataVO.java
  36. 33
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/MainLineDataVo.java
  37. 12
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/SignDataVo.java
  38. 33
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/SignDetailDataVo.java

2
blade-biz-common/src/main/java/org/springblade/common/constant/OldSystemDataPushConfig.java

@ -47,6 +47,8 @@ public class OldSystemDataPushConfig {
// 清远 // 清远
warehourseIds.add("68"); warehourseIds.add("68");
// 清远基地仓
warehourseIds.add("34");
} }

6
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleVO.java

@ -141,6 +141,12 @@ public class DistributionStockArticleVO extends DistributionStockArticleEntity {
@ApiModelProperty(value = "签收数量") @ApiModelProperty(value = "签收数量")
private Integer signingNumber; private Integer signingNumber;
/**
* 计划数量
*/
@ApiModelProperty(value = "计划数量")
private Integer reservationNum;
/** /**
* 备货数量 * 备货数量
*/ */

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java

@ -355,6 +355,7 @@ public class DistributionStockupAppController extends BladeController {
return R.fail("未知的查询类型"); return R.fail("未知的查询类型");
} }
} }
// return Resp.scanFail("零担备货维护中!!!","零担备货维护中!!!");
return R.data(map); return R.data(map);
} }

61
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionBillLadingZeroPackageDTO.java

@ -0,0 +1,61 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.distribution.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* 在库订单包件清单 数据传输对象实体类
*
* @author cyz
* @since 2023-06-13
*/
@Data
public class DistributionBillLadingZeroPackageDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 包件ID
*/
private Long id ;
/**
* 录入数量
*/
private Long tiQuantity ;
/**
* 订单ID
*/
private Long stockArticleId ;
/**
* 零担品类
*/
private String firsts ;
}

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionParcelListDTO.java

@ -39,6 +39,7 @@ public class DistributionParcelListDTO extends DistributionParcelListEntity {
private String materialName; private String materialName;
private String materialCode; private String materialCode;
private Integer isLoading; private Integer isLoading;
private Integer tiQuantity;
private Integer isSigning; private Integer isSigning;
private String materialUnit; private String materialUnit;
private Integer reservationNum; //预约数量 private Integer reservationNum; //预约数量

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java

@ -21,6 +21,7 @@ public class BillLadingAppDTO implements Serializable {
private Integer orderStatus;//订单状态 private Integer orderStatus;//订单状态
private Long billLadingId;//自提单id private Long billLadingId;//自提单id
private Long stockArtieleld;//自提单id
private Integer scanStatus;//扫码类型 private Integer scanStatus;//扫码类型

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.java

@ -65,4 +65,13 @@ public interface DistributionParcelNumberMapper extends BaseMapper<DistributionP
* @return * @return
*/ */
List<DistributionParcelNumberEntity> selectParcelNumber(String orderCode, Long warehouseId); List<DistributionParcelNumberEntity> selectParcelNumber(String orderCode, Long warehouseId);
/**
* 维护零担品类出库信息
* @param id
* @param stockArticleId
* @param quantity
* @return
*/
Integer augmentSignForNum(@Param("packageId") Long id,@Param("stockArticleId") Long stockArticleId,@Param("quantity") Integer quantity);
} }

12
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.xml

@ -25,6 +25,18 @@
<result column="delivery_quantity" property="deliveryQuantity"/> <result column="delivery_quantity" property="deliveryQuantity"/>
<result column="signin_quantity" property="signinQuantity"/> <result column="signin_quantity" property="signinQuantity"/>
</resultMap> </resultMap>
<update id="augmentSignForNum">
UPDATE
logpm_distribution_parcel_number
SET
delivery_quantity = delivery_quantity - #{quantity},
hand_quantity = hand_quantity - #{quantity},
outbound_quantity = outbound_quantity + #{quantity},
signin_quantity = signin_quantity + #{quantity}
WHERE
parcel_list_id = #{packageId}
AND stock_article_id = #{stockArticleId}
</update>
<select id="selectDistributionParcelNumberPage" resultMap="distributionParcelNumberResultMap"> <select id="selectDistributionParcelNumberPage" resultMap="distributionParcelNumberResultMap">

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

@ -415,7 +415,7 @@
ldsa.stockup_status, ldsa.reservation_status, ldsa.order_status, ldsa.grounding_status, ldsa.stockup_status, ldsa.reservation_status, ldsa.order_status, ldsa.grounding_status,
ldsa.order_receive_status, ldsa.order_receive_status,
ldsa.freeze_status, ldsa.notification, ldsa.fee, ldsa.rate, ldsa.advance_id, ldsa.waybill_id, ldsa.freeze_status, ldsa.notification, ldsa.fee, ldsa.rate, ldsa.advance_id, ldsa.waybill_id,
GROUP_CONCAT( DISTINCT ldpl.waybill_number ) waybillNumber, ldsa.waybill_number waybillNumber,
ldsa.consignee_unit, ldsa.collect_fee, ldsa.storage_fee, ldsa.consignee_person, ldsa.consignee_address, ldsa.consignee_unit, ldsa.collect_fee, ldsa.storage_fee, ldsa.consignee_person, ldsa.consignee_address,
ldsa.consignee_mobile, ldsa.warehouse_entry_time_end, ldsa.consignee_mobile, ldsa.warehouse_entry_time_end,
ldsa.sorting_quantity, ldsa.delivery_quantity, ldsa.transfer_quantity, ldsa.sorting_quantity, ldsa.delivery_quantity, ldsa.transfer_quantity,

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

@ -151,6 +151,13 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
Page<DistrilbutionBillLadingAppVO> getInventoryPage(IPage<Object> page,@Param("param") DistrilbutionBillLadingEntity distrilbutionBillLadingEntity); Page<DistrilbutionBillLadingAppVO> getInventoryPage(IPage<Object> page,@Param("param") DistrilbutionBillLadingEntity distrilbutionBillLadingEntity);
/**
* 查询自提单的零担包件
* @param reservationId
* @return
*/
List<DistributionStockupOrderListVO> selectBillLadingZeroPackageList(@Param("bullLadingId")Long bullLadingId);
// Page<DistrilbutionBillLadingAppVO> getInventoryPage(IPage<Object> page, DistrilbutionBillLadingEntity distrilbutionBillLadingEntity); // Page<DistrilbutionBillLadingAppVO> getInventoryPage(IPage<Object> page, DistrilbutionBillLadingEntity distrilbutionBillLadingEntity);
} }

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

@ -41,24 +41,13 @@
GROUP_CONCAT(DISTINCT dsa.customer_telephone) GROUP_CONCAT(DISTINCT dsa.customer_telephone)
customerTelephone,dsa.warehouse,dsa.warehouse_entry_time warehouseEntryTime,dsa.storage_fee customerTelephone,dsa.warehouse,dsa.warehouse_entry_time warehouseEntryTime,dsa.storage_fee
storageFee, storageFee,
count( dbp.packet_number ) + IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = dbl.id ),0)AS totalNumber, 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, dbl.certificate_type certificateType,
GROUP_CONCAT(DISTINCT dsa.brand) brand,dsa.type_service typeService, GROUP_CONCAT(DISTINCT dsa.brand) brand,dsa.type_service typeService,
dbl.pick_up_time pickUpTime,dbl.consignee,dbl.delivery_document dbl.pick_up_time pickUpTime,dbl.consignee,dbl.delivery_document
deliveryDocument,dbl.conditions, deliveryDocument,dbl.conditions,
dbl.total_cost totalCost, dbl.total_cost totalCost,
dbl.pick_up_plate pickUpPlate,dbl.pickup_batch pickupBatch, dbl.pick_up_plate pickUpPlate,dbl.pickup_batch pickupBatch,
<!-- (
select COUNT(lds.id)
from logpm_distribution_delivery_details lddd
LEFT JOIN logpm_distribution_stock lds on lds.stock_list_id = lddd.stock_list_id
where lddd.bill_lading_id = dbl.id
) + (
select COUNT(lds.id)
from logpm_distrilbution_bill_stock ldbs
LEFT JOIN logpm_distribution_stock lds on lds.stock_article = ldbs.stock_article_id
where ldbs.bill_lading_id = dbl.id
) stopNum, -->
( (
select COUNT(id) select COUNT(id)
from logpm_distribution_bill_lading_scan from logpm_distribution_bill_lading_scan
@ -81,10 +70,10 @@
GROUP BY id GROUP BY id
) AS productInformation ) AS productInformation
from logpm_distrilbution_bill_lading dbl from logpm_distrilbution_bill_lading dbl
LEFT JOIN logpm_distrilbution_bill_package dbp on dbp.bill_lading_id = dbl.id and dbp.packet_bar_status in (1,3) LEFT JOIN logpm_distrilbution_bill_stock AS lds on lds.bill_lading_id = dbl.id
LEFT JOIN logpm_distribution_stock_article dsa on dbp.stock_article_id = dsa.id LEFT JOIN logpm_distribution_stock_article dsa on lds.stock_article_id = dsa.id
<where> <where>
dbl.is_deleted = 0 dbl.is_deleted = 0 AND lds.order_status != 2
<if test="param.serviceNumber != null and param.serviceNumber != ''">and dsa.service_number like <if test="param.serviceNumber != null and param.serviceNumber != ''">and dsa.service_number like
concat('%',#{param.serviceNumber},'%') concat('%',#{param.serviceNumber},'%')
</if> </if>
@ -143,6 +132,9 @@
<if test="param.certificateType != null and param.certificateType != ''">and dbl.certificate_type = <if test="param.certificateType != null and param.certificateType != ''">and dbl.certificate_type =
#{param.certificateType} #{param.certificateType}
</if> </if>
<if test="param.warehouseId != null and param.warehouseId != ''">and dbl.warehouse_id =
#{param.warehouseId}
</if>
</where> </where>
GROUP BY dbl.id,dsa.warehouse,dsa.type_service GROUP BY dbl.id,dsa.warehouse,dsa.type_service
@ -514,9 +506,9 @@
<select id="getBillLadingOrderMainVO" <select id="getBillLadingOrderMainVO"
resultType="com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO"> resultType="com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO">
SELECT SELECT
( SELECT count( 1 ) FROM logpm_distrilbution_bill_stock WHERE bill_lading_id = ldbl.id AND order_status != 2 AND is_deleted = 0 AND order_status = 2 ) AS orderNum , ( SELECT count( 1 ) FROM logpm_distrilbution_bill_stock WHERE bill_lading_id = ldbl.id AND order_status != 2 AND is_deleted = 0 AND order_status != 2 ) AS orderNum ,
(IFNULL((SELECT SUM(quantity) FROM logpm_distribution_reservation_zero_package WHERE reservation_id = ldbl.id AND zero_package_status != 2 AND is_deleted = 0),0)) + (IFNULL((SELECT SUM(quantity) FROM logpm_distribution_reservation_zero_package WHERE reservation_id = ldbl.id AND zero_package_status != 2 AND is_deleted = 0),0)) +
(IFNULL((SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = ldbl.id AND packet_bar_status = 2 AND is_deleted = 0),0))+ (IFNULL((SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = ldbl.id AND packet_bar_status != 2 AND is_deleted = 0),0))+
(IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = ldbl.id AND inventory_status != 2 AND is_deleted = 0),0)) AS planNum, (IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = ldbl.id AND inventory_status != 2 AND is_deleted = 0),0)) AS planNum,
IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = ldbl.id AND is_deleted = 0 AND inventory_status != 2),0) AS inventoryNub, IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = ldbl.id AND is_deleted = 0 AND inventory_status != 2),0) AS inventoryNub,
IFNULL((SELECT SUM(quantity) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id = ldbl.id AND is_deleted = 0) ,0) AS signedNum IFNULL((SELECT SUM(quantity) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id = ldbl.id AND is_deleted = 0) ,0) AS signedNum
@ -550,6 +542,22 @@
ldbl.id = #{param.id} and lddd.is_deleted = '0' ldbl.id = #{param.id} and lddd.is_deleted = '0'
</where> </where>
</select> </select>
<select id="selectBillLadingZeroPackageList"
resultType="com.logpm.distribution.vo.DistributionStockupOrderListVO">
SELECT
ldrzp.parcel_list_id AS parcelListId,
lds.id AS stockId,
ldsa.order_code AS orderCode,
ldsa.description_goods AS descriptionGoods,
ldsa.id AS stockArticleId
FROM
logpm_distribution_reservation_zero_package AS ldrzp
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldrzp.parcel_list_id = ldpl.id
LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldrzp.stock_article_id = ldsa.id
LEFT JOIN logpm_distribution_stock lds ON lds.parcel_list_id = ldrzp.parcel_list_id
WHERE
ldrzp.reservation_id = #{bullLadingId} and ldrzp.zero_package_status in (1,3)
</select>
</mapper> </mapper>

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml

@ -115,10 +115,11 @@
</select> </select>
<select id="getBillOrderDetail" resultType="com.logpm.distribution.vo.DistributionBillOrderVO"> <select id="getBillOrderDetail" resultType="com.logpm.distribution.vo.DistributionBillOrderVO">
select DISTINCT ldsa.order_code orderCode,ldsa.total_number,ldsa.description_goods descriptionGoods,ldsa.stockup_status stockupStatus, select DISTINCT ldsa.order_code orderCode,ldsa.total_number,
ldsa.description_goods descriptionGoods,ldsa.stockup_status stockupStatus,
(select COUNT(id) from logpm_distrilbution_bill_package (select COUNT(id) from logpm_distrilbution_bill_package
where stock_article_id = ldsa.id and packet_bar_status in (1,3) and bill_lading_id = #{param.billLadingId} ) handQuantity, where stock_article_id = ldsa.id and packet_bar_status in (1,3) and bill_lading_id = #{param.billLadingId} ) + (SELECT IFNULL(SUM(quantity),0) FROM logpm_distribution_reservation_zero_package WHERE stock_article_id = ldsa.id AND zero_package_status IN ( 1, 3 ) AND reservation_id = #{param.billLadingId}) handQuantity,
(select COUNT(id) from logpm_distribution_bill_lading_scan (select IFNULL(SUM(quantity),0) from logpm_distribution_bill_lading_scan
where stock_article_id = ldsa.id ) pick_up_quantity, where stock_article_id = ldsa.id ) pick_up_quantity,
CASE CASE
WHEN ( SELECT count( id ) FROM logpm_distribution_bill_lading_scan WHERE stock_article_id = ldsa.id ) = 0 THEN 10 WHEN ( SELECT count( id ) FROM logpm_distribution_bill_lading_scan WHERE stock_article_id = ldsa.id ) = 0 THEN 10

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java

@ -71,4 +71,11 @@ public interface IDistributionParcelNumberService extends BaseService<Distributi
*/ */
R updateEntryNum(List<DistributionParcelNumberDTO> distributionParcelNumberDTO); R updateEntryNum(List<DistributionParcelNumberDTO> distributionParcelNumberDTO);
/**
* 扣减零担在库数量增加签收出库数量
* @param id
* @param stockArticleId
* @param quantity
*/
Integer augmentSignForNum(Long id, Long stockArticleId, Integer quantity);
} }

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

@ -71,4 +71,6 @@ public interface IDistributionReservationZeroPackageService extends BaseService<
* @param collect * @param collect
*/ */
void recoverZeroPackage(Long reservationId, List<Long> collect); void recoverZeroPackage(Long reservationId, List<Long> collect);
} }

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java

@ -120,7 +120,6 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
/** /**
* 查询自提订单列表库存品 * 查询自提订单列表库存品
* @param page
* @param distrilbutionBillLading * @param distrilbutionBillLading
* @return * @return
*/ */
@ -242,4 +241,11 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
* @return * @return
*/ */
Integer checkBillLadingIsRelease(Long billLadingId); Integer checkBillLadingIsRelease(Long billLadingId);
/**
* 查询自提的零担包件
* @param reservationId
* @return
*/
List<DistributionStockupOrderListVO> selectBillLadingZeroPackageList(Long reservationId);
} }

19
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -328,10 +328,21 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
log.debug("####修改包件预约状态"); log.debug("####修改包件预约状态");
ids.forEach(i -> { ids.forEach(i -> {
DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity(); DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity();
distributionParcelListEntity.setId(i); if ("1".equals(distributionParcelListEntity.getConditions())){
distributionParcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); distributionParcelListEntity.setId(i);
int i1 = distributionParcelListMapper.updateById(distributionParcelListEntity); distributionParcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
log.debug("####修改包件预约数量===={}", i1); int i1 = distributionParcelListMapper.updateById(distributionParcelListEntity);
log.debug("####修改包件预约数量===={}", i1);
}else if ("3".equals(distributionParcelListEntity.getConditions())){
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getParcelListId, i)
);
if (distributionParcelNumberEntity.getQuantity() == (distributionParcelNumberEntity.getDeliveryQuantity() + distributionParcelNumberEntity.getOutboundQuantity())){
log.debug("####修改包件预约数量===={}", i);
distributionParcelListEntity.setId(i);
int i1 = distributionParcelListMapper.updateById(distributionParcelListEntity);
}
}
}); });
} }

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

@ -4643,13 +4643,18 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
String deliveryListId = (String) distributionDeliveryListDTO.get("deliveryListId"); String deliveryListId = (String) distributionDeliveryListDTO.get("deliveryListId");
DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryListId); DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryListId);
List<DistributionSignforEntity> distributionSignforEntities = distributionSignforServicer.getBaseMapper().selectList(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, deliveryListEntity.getId())); List<DistributionSignforEntity> distributionSignforEntities = distributionSignforServicer.getBaseMapper().selectList(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, deliveryListEntity.getId()));
BladeUser user = AuthUtil.getUser();
distributionSignforEntities.forEach(s -> { distributionSignforEntities.forEach(s -> {
//2、将预约计划进行确认状态的回滚 //2、将预约计划进行确认状态的回滚
// DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(s.getReservationId()); // DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(s.getReservationId());
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectOne(Wrappers.<DistributionReservationEntity>query().lambda().eq(DistributionReservationEntity::getId, s.getReservationId()).ne(DistributionReservationEntity::getReservationStatus, ReservationStatusConstant.yiquexiao.getValue())); DistributionReservationEntity reservationEntity = distributionReservationMapper.selectOne(Wrappers.<DistributionReservationEntity>query().lambda()
.eq(DistributionReservationEntity::getId, s.getReservationId())
.ne(DistributionReservationEntity::getReservationStatus, ReservationStatusConstant.yiquexiao.getValue())
);
reservationEntity.setReservationStatus(ReservationStatusConstant.yiqueren.getValue()); reservationEntity.setReservationStatus(ReservationStatusConstant.yiqueren.getValue());
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue()); reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
distributionReservationMapper.updateById(reservationEntity); distributionReservationMapper.updateById(reservationEntity);
bladeRedis.del(user.getTenantId()+":"+ ModuleNameConstant.APPLICATION_DISTRIBUTION_NAME+":reservationLock"+reservationEntity.getReservationCode());
//将该预约下的所有包件信息进行修改为初始预约状态 //将该预约下的所有包件信息进行修改为初始预约状态
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleMapper.selectList(Wrappers.<DistributionReservationStockarticleEntity>query().lambda().eq(DistributionReservationStockarticleEntity::getReservationId, reservationEntity.getId()).ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())); List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleMapper.selectList(Wrappers.<DistributionReservationStockarticleEntity>query().lambda().eq(DistributionReservationStockarticleEntity::getReservationId, reservationEntity.getId()).ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()));
reservationStockarticleEntityList.forEach(o -> { reservationStockarticleEntityList.forEach(o -> {

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java

@ -376,7 +376,14 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
BeanUtils.copyProperties(i, parcelListVO); BeanUtils.copyProperties(i, parcelListVO);
parcelListVO.setLibraryQuantity(parcelNumber.getHandQuantity()); parcelListVO.setLibraryQuantity(parcelNumber.getHandQuantity());
parcelListVO.setDeliveryQuantity(parcelNumber.getDeliveryQuantity()); parcelListVO.setDeliveryQuantity(parcelNumber.getDeliveryQuantity());
parcelListVO.setTiQuantity(parcelNumber.getHandQuantity()); parcelListVO.setTiQuantity((parcelNumber.getHandQuantity() - parcelNumber.getDeliveryQuantity()));
if (Func.isNotEmpty(reservationId)){
if (Func.isNotEmpty(one)){
parcelListVO.setDeliveryQuantity(parcelNumber.getDeliveryQuantity() - one.getQuantity());
parcelListVO.setTiQuantity(one.getQuantity());
}
}
if (ObjectUtils.isNotNull(one)) { if (ObjectUtils.isNotNull(one)) {
parcelListVO.setReservationQuantity(one.getQuantity()); parcelListVO.setReservationQuantity(one.getQuantity());
} else { } else {

15
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java

@ -86,6 +86,7 @@ public class DistributionParcelNumberServiceImpl extends BaseServiceImpl<Distrib
@Async @Async
@Override @Override
public void updateBillNum(Long parcelListId, int i1, int i) { public void updateBillNum(Long parcelListId, int i1, int i) {
log.info("updateBillNum>>>>>>>>>>>>>>>>>>>>>>判定零担修改参数parcelListId:{},i1:{},i:{}",parcelListId,i1,i);
DistributionParcelNumberEntity parcelNumberEntity = baseMapper.selectOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelListId)); DistributionParcelNumberEntity parcelNumberEntity = baseMapper.selectOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelListId));
DistributionParcelNumberEntity parcelEntity = new DistributionParcelNumberEntity(); DistributionParcelNumberEntity parcelEntity = new DistributionParcelNumberEntity();
switch (i){ switch (i){
@ -97,6 +98,9 @@ public class DistributionParcelNumberServiceImpl extends BaseServiceImpl<Distrib
//减 //减
parcelEntity.setId(parcelNumberEntity.getId()); parcelEntity.setId(parcelNumberEntity.getId());
parcelEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() - i1); parcelEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() - i1);
default:
log.info(">>>>>>>>>>>>>>>>>>>>>>判定零担修改未知类型:{}",i);
break;
} }
baseMapper.updateById(parcelEntity); baseMapper.updateById(parcelEntity);
} }
@ -159,4 +163,15 @@ public class DistributionParcelNumberServiceImpl extends BaseServiceImpl<Distrib
return R.status(true); return R.status(true);
} }
/**
* @param id
* @param stockArticleId
* @param quantity
* @return
*/
@Override
public Integer augmentSignForNum(Long id, Long stockArticleId, Integer quantity) {
return baseMapper.augmentSignForNum(id,stockArticleId,quantity);
}
} }

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationZeroPackageServiceImpl.java

@ -105,7 +105,7 @@ public class DistributionReservationZeroPackageServiceImpl extends BaseServiceIm
String method = "###################DistributionReservationZeroPackageServiceImpl.recoverZeroPackage"; String method = "###################DistributionReservationZeroPackageServiceImpl.recoverZeroPackage";
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntities = this.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda() List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntities = this.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, reservationId) .eq(DistributionReservationZeroPackageEntity::getReservationId, reservationId)
.in(DistributionReservationZeroPackageEntity::getReservationId, collect) .in(DistributionReservationZeroPackageEntity::getParcelListId, collect)
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue()) .ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
); );
for (DistributionReservationZeroPackageEntity reservationZeroPackageEntity : reservationZeroPackageEntities) { for (DistributionReservationZeroPackageEntity reservationZeroPackageEntity : reservationZeroPackageEntities) {
@ -113,7 +113,7 @@ public class DistributionReservationZeroPackageServiceImpl extends BaseServiceIm
DistributionParcelListEntity parcelListEntity = distributionParcelListMapper.selectById(reservationZeroPackageEntity.getParcelListId()); DistributionParcelListEntity parcelListEntity = distributionParcelListMapper.selectById(reservationZeroPackageEntity.getParcelListId());
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelListEntity.getId())); DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelListEntity.getId()));
//进行预约数量的扣减 //进行预约数量的扣减
int i = distributionParcelNumberEntity.getDeliveryQuantity() + distributionParcelNumberEntity.getQuantity(); int i = distributionParcelNumberEntity.getDeliveryQuantity() - distributionParcelNumberEntity.getQuantity();
distributionParcelNumberEntity.setDeliveryQuantity(i); distributionParcelNumberEntity.setDeliveryQuantity(i);
distributionParcelNumberService.updateById(distributionParcelNumberEntity); distributionParcelNumberService.updateById(distributionParcelNumberEntity);
reservationZeroPackageEntity.setQuantity(0); reservationZeroPackageEntity.setQuantity(0);

42
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java

@ -1609,12 +1609,14 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
if (Func.isNotEmpty(parcelNumberEntities)) { if (Func.isNotEmpty(parcelNumberEntities)) {
//在库数量 //在库数量
inWarehouseQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getHandQuantity).sum(); inWarehouseQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getHandQuantity).sum();
deliveryQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getDeliveryQuantity).sum();
if ((loadingQuantity + deliveryQuantity) == stockArticleEntity.getTotalNumber()) {
//无在库数量则无法进行预约
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}
loadingQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getOutboundQuantity).sum(); loadingQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getOutboundQuantity).sum();
signingQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getSigninQuantity).sum();
log.info("############维护零担数量deliveryQuantity:{}",deliveryQuantity);
log.info("############维护零担数量loadingQuantity:{}",loadingQuantity);
log.info("############维护零担数量inWarehouseQuantity:{}",inWarehouseQuantity);
log.info("############维护零担数量signingQuantity:{}",signingQuantity);
log.info("############维护零担数量TotalNumber:{}",stockArticleEntity.getTotalNumber());
if (stockArticleEntity.getTotalNumber() == loadingQuantity) { if (stockArticleEntity.getTotalNumber() == loadingQuantity) {
//此时的出库和总数一致,该零担此时全部进行出库 //此时的出库和总数一致,该零担此时全部进行出库
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue()); stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
@ -1623,16 +1625,34 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
} else { } else {
stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue()); stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue());
} }
signingQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getSigninQuantity).sum(); if ((loadingQuantity + deliveryQuantity) == 0){
if (stockArticleEntity.getTotalNumber() == signingQuantity) { if (stockArticleEntity.getTotalNumber() == inWarehouseQuantity){
stockArticleEntity.setOrderStatus(OrderStatusConstant.qianshou.getValue()); stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue());
} else if (stockArticleEntity.getTotalNumber() > signingQuantity) { }else if (inWarehouseQuantity > 0){
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenqianshou.getValue()); stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenruku.getValue());
}
}else {
if ((loadingQuantity + deliveryQuantity) == stockArticleEntity.getTotalNumber()) {
//无在库数量则无法进行预约
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}else if ((loadingQuantity + deliveryQuantity) > 0){
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
}
} }
if (signingQuantity == 0){
stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue());
}else {
if (stockArticleEntity.getTotalNumber() == signingQuantity) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.qianshou.getValue());
} else if (stockArticleEntity.getTotalNumber() > signingQuantity) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenqianshou.getValue());
}
}
//维护订单的在库件数 //维护订单的在库件数
stockArticleEntity.setHandQuantity(inWarehouseQuantity); stockArticleEntity.setHandQuantity(inWarehouseQuantity);
//维护订单的配送件数 //维护订单的配送件数
deliveryQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getDeliveryQuantity).sum() + parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getSigninQuantity).sum() + parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getOutboundQuantity).sum(); // deliveryQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getDeliveryQuantity).sum() + parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getSigninQuantity).sum() + parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getOutboundQuantity).sum();
stockArticleEntity.setDeliveryQuantity(deliveryQuantity); stockArticleEntity.setDeliveryQuantity(deliveryQuantity);
stockArticleEntity.setSigninQuantity(signingQuantity); stockArticleEntity.setSigninQuantity(signingQuantity);
stockArticleEntity.setDeliveryQuantity(deliveryQuantity); stockArticleEntity.setDeliveryQuantity(deliveryQuantity);

14
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java

@ -205,6 +205,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Autowired @Autowired
private DistributionStockListInfoMapper distributionStockListInfoMapper; private DistributionStockListInfoMapper distributionStockListInfoMapper;
@Autowired
@Lazy
private IDistrilbutionBillLadingService distrilbutionBillLadingService;
@Autowired @Autowired
private IBasicdataClientClient basicdataClientClient; private IBasicdataClientClient basicdataClientClient;
@ -714,10 +718,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
} }
//零担查询货位,托盘信息 //零担查询货位,托盘信息
if (stockupDTO.getIsZero().equals("1")) { if (stockupDTO.getIsZero().equals("1")) {
List<DistributionStockupOrderListVO> zeroTrayInfo = getZeroTrayInfo(list); List<DistributionStockupOrderListVO> zeroOrderList = distrilbutionBillLadingService.selectBillLadingZeroPackageList(reservationId);
if (!zeroTrayInfo.isEmpty()) { if (Func.isNotEmpty(zeroOrderList)){
list = zeroTrayInfo; List<DistributionStockupOrderListVO> zeroTrayInfo = getZeroTrayInfo(zeroOrderList);
if (!zeroTrayInfo.isEmpty()) {
list = zeroTrayInfo;
}
} }
} }
//获取有货位的数据 //获取有货位的数据
List<DistributionStockupOrderListVO> collect11 = list.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList()); List<DistributionStockupOrderListVO> collect11 = list.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList());

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

@ -48,11 +48,14 @@ import lombok.extern.log4j.Log4j2;
import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant; import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant;
import org.springblade.common.constant.billLading.BillLadingStatusConstant; import org.springblade.common.constant.billLading.BillLadingStatusConstant;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.constant.order.OrderReservationStatusConstant; import org.springblade.common.constant.order.OrderReservationStatusConstant;
import org.springblade.common.constant.order.OrderStatusConstant; import org.springblade.common.constant.order.OrderStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant; import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant; import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.pda.PdaAudioLingoStatus; import org.springblade.common.constant.pda.PdaAudioLingoStatus;
import org.springblade.common.constant.reservation.ReservationOrderStatusConstant;
import org.springblade.common.constant.reservation.ReservationPackageStatusConstant; import org.springblade.common.constant.reservation.ReservationPackageStatusConstant;
import org.springblade.common.constant.stockup.StockAssignStatusConstant; import org.springblade.common.constant.stockup.StockAssignStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant; import org.springblade.common.constant.stockup.StockupStatusConstant;
@ -68,6 +71,8 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil; import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictBizCache; import org.springblade.system.cache.DictBizCache;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -87,46 +92,58 @@ import java.util.stream.Collectors;
* @since 2023-06-14 * @since 2023-06-14
*/ */
@Service @Service
@AllArgsConstructor
@Log4j2 @Log4j2
public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<DistrilbutionBillLadingMapper, DistrilbutionBillLadingEntity> implements IDistrilbutionBillLadingService { public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<DistrilbutionBillLadingMapper, DistrilbutionBillLadingEntity> implements IDistrilbutionBillLadingService {
private final IDistributionDeliveryChargeService distributionDeliveryChargeService; @Autowired
private IDistributionDeliveryChargeService distributionDeliveryChargeService;
private final IDistributionDeliveryDetailsService distributionDeliveryDetailsService; @Autowired
private IDistributionDeliveryDetailsService distributionDeliveryDetailsService;
private final IDistributionReservationService distributionReservationService; @Autowired
private IDistributionReservationService distributionReservationService;
private final IDistributionPrintService distributionPrintService; @Autowired
private IDistributionPrintService distributionPrintService;
private final IDistributionStockArticleService distributionStockArticleService; @Autowired
private IDistributionStockArticleService distributionStockArticleService;
private final IDistributionParcelListService distributionParcelListService; @Autowired
private IDistributionParcelListService distributionParcelListService;
private final IDistributionBillLadingScanService distributionBillLadingScanService; @Autowired
private IDistributionBillLadingScanService distributionBillLadingScanService;
private final IDistrilbutionBillStockService distrilbutionBillStockService; @Autowired
private IDistrilbutionBillStockService distrilbutionBillStockService;
private final IDistributionStockupScanService distributionStockupScanService; @Autowired
private IDistributionStockupScanService distributionStockupScanService;
private final IDistributionStockListService distributionStockListService; @Autowired
private final DistributionStockListMapper distributionStockListMapper; private IDistributionStockListService distributionStockListService;
private final IDistributionAsyncService distributionAsyncService; @Autowired
private final IDistributionStockService distributionStockService; private DistributionStockListMapper distributionStockListMapper;
private final IDistributionStockupService distributionStockupService; @Autowired
private final IDistributionStockupInfoService distributionStockupInfoService; private IDistributionAsyncService distributionAsyncService;
@Autowired
private final IBasicdataWarehouseClient basicdataWarehouseClient; private IDistributionStockService distributionStockService;
@Autowired
private final IDistributionReservationZeroPackageService distributionZeroPackageService; //零担配送记录 @Lazy
private final IDistributionParcelNumberService distributionParcelNumberService; //零担配送数量记录 private IDistributionStockupService distributionStockupService;
private final IDistrilbutionBillPackageService distrilbutionBillPackageService; @Autowired
private final IBasicdataWarehouseClient warehouseClient; private IDistributionStockupInfoService distributionStockupInfoService;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
private final IDisStockListDetailService disStockListDetailService; @Autowired
private IBasicdataWarehouseClient basicdataWarehouseClient;
private final BladeRedis redis; @Autowired
private IDistributionReservationZeroPackageService distributionZeroPackageService; //零担配送记录
@Autowired
private IDistributionParcelNumberService distributionParcelNumberService; //零担配送数量记录
@Autowired
private IDistrilbutionBillPackageService distrilbutionBillPackageService;
@Autowired
private IBasicdataWarehouseClient warehouseClient;
@Autowired
private IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
@Autowired
private IDisStockListDetailService disStockListDetailService;
@Autowired
private BladeRedis redis;
@Override @Override
@ -208,13 +225,13 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
private void updateStockBill(DistrilbutionBillLadingDTO distrilbutionBillLading) { private void updateStockBill(DistrilbutionBillLadingDTO distrilbutionBillLading) {
List<DistributionDeliveryDetailsEntity> list = distributionDeliveryDetailsService.list(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda() List<DistributionDeliveryDetailsEntity> list = distributionDeliveryDetailsService.list(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda()
.eq(DistributionDeliveryDetailsEntity::getBillLadingId, distrilbutionBillLading.getId()) .eq(DistributionDeliveryDetailsEntity::getBillLadingId, distrilbutionBillLading.getId())
.apply("inventory_status in ( 1 , 2)") .apply("inventory_status in ( 1 , 3)")
); );
List<DistributionStockListEntity> stockEntityList = new ArrayList<>(); List<DistributionStockListEntity> stockEntityList = new ArrayList<>();
List<Long> dd = new ArrayList<>(); List<Long> dd = new ArrayList<>();
if (!list.isEmpty()) { if (!list.isEmpty()) {
list.forEach(i -> { list.forEach(i -> {
if ("2".equals(i.getConditions())) { if ("20".equals(i.getConditions())) {
throw new ServiceException("包含已提货的库存品,无法取消!!!"); throw new ServiceException("包含已提货的库存品,无法取消!!!");
} }
if ("1".equals(i.getStockStatus())) { if ("1".equals(i.getStockStatus())) {
@ -232,7 +249,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//取消预约记录 //取消预约记录
LambdaUpdateWrapper<DistributionDeliveryDetailsEntity> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<DistributionDeliveryDetailsEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(DistributionDeliveryDetailsEntity::getId, dd); updateWrapper.in(DistributionDeliveryDetailsEntity::getId, dd);
updateWrapper.set(DistributionDeliveryDetailsEntity::getInventoryStatus, "3"); updateWrapper.set(DistributionDeliveryDetailsEntity::getInventoryStatus, "2");
distributionDeliveryDetailsService.update(updateWrapper); distributionDeliveryDetailsService.update(updateWrapper);
} }
//修改库存品数据 //修改库存品数据
@ -319,11 +336,25 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
} }
//修改订单数据 //修改订单数据
if (!distrilbutionBillLading.getStockArticleList().isEmpty()) { if (!distrilbutionBillLading.getStockArticleList().isEmpty()) {
boolean order = getOrder(distrilbutionBillLading.getStockArticleList(), distrilbutionBillLading.getId()); // boolean order = getOrder(distrilbutionBillLading.getStockArticleList(), distrilbutionBillLading.getId());
if (!order) { // if (!order) {
throw new ServiceException("修改失败!!"); // throw new ServiceException("修改失败!!");
// }
List<DistributionStockArticleEntity> stockArticleList = distrilbutionBillLading.getStockArticleList();
if (Func.isNotEmpty(stockArticleList)){
String orderCodes = stockArticleList.stream().map(DistributionStockArticleEntity::getOrderCode).collect(Collectors.joining(","));
List<Long> collect = stockArticleList.stream().map(DistributionStockArticleEntity::getWarehouseId).distinct().collect(Collectors.toList());
if (!collect.isEmpty() && collect.size() == 1){
distributionStockArticleService.maintenanceOrderInfo(orderCodes,collect.get(0));
}else {
throw new ServiceException("修改失败!!");
}
} }
} }
/* else{ /* else{
updateOrder(distrilbutionBillLading); updateOrder(distrilbutionBillLading);
} }
@ -346,6 +377,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//修改 //修改
listDetails.forEach(i -> { listDetails.forEach(i -> {
boolean b = distrilbutionBillLading.getStockDTOList().stream().anyMatch(a -> i.getStockListId().equals(a.getId())); boolean b = distrilbutionBillLading.getStockDTOList().stream().anyMatch(a -> i.getStockListId().equals(a.getId()));
//查询是否存签收扫描数量
List<DistributionStockEntity> list1 = distributionStockService.list(Wrappers.<DistributionStockEntity>query().lambda() List<DistributionStockEntity> list1 = distributionStockService.list(Wrappers.<DistributionStockEntity>query().lambda()
.eq(DistributionStockEntity::getBillLadingId, distrilbutionBillLading.getId()) .eq(DistributionStockEntity::getBillLadingId, distrilbutionBillLading.getId())
.eq(DistributionStockEntity::getStockListId, i.getStockListId()) .eq(DistributionStockEntity::getStockListId, i.getStockListId())
@ -353,6 +385,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
); );
if (b) { if (b) {
//有 //有
Iterator<DistributionStockListDTO> iterator = distrilbutionBillLading.getStockDTOList().iterator(); Iterator<DistributionStockListDTO> iterator = distrilbutionBillLading.getStockDTOList().iterator();
@ -372,7 +405,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//修改库存占用数量 //修改库存占用数量
distributionAsyncService.getInventoryNumUpdate(i.getStockListId(), num, 1); distributionAsyncService.getInventoryNumUpdate(i.getStockListId(), num, 1);
//kk备货 //kk备货
if (i.getConditions().equals("2")) { if (i.getConditions().equals("20")) {
//xiugai //xiugai
DistributionDeliveryDetailsEntity d = new DistributionDeliveryDetailsEntity(); DistributionDeliveryDetailsEntity d = new DistributionDeliveryDetailsEntity();
d.setId(i.getId()); d.setId(i.getId());
@ -387,7 +420,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//有备货 //有备货
}*/ }*/
if (i.getConditions().equals("2")) { if (i.getConditions().equals("20")) {
//todo 已完成 //todo 已完成
} else { } else {
@ -426,7 +459,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
ids.forEach(a -> { ids.forEach(a -> {
DistributionDeliveryDetailsEntity deliveryDetails = new DistributionDeliveryDetailsEntity(); DistributionDeliveryDetailsEntity deliveryDetails = new DistributionDeliveryDetailsEntity();
deliveryDetails.setId(a); deliveryDetails.setId(a);
deliveryDetails.setInventoryStatus("3"); deliveryDetails.setInventoryStatus("2");
distributionDeliveryDetailsService.updateById(deliveryDetails); distributionDeliveryDetailsService.updateById(deliveryDetails);
}); });
} }
@ -434,6 +467,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
} else { } else {
updateStockBill(distrilbutionBillLading); updateStockBill(distrilbutionBillLading);
} }
} else { } else {
//设置lockey //设置lockey
String lockKey = "lock:" + distrilbutionBillLading.getStockArticleId(); String lockKey = "lock:" + distrilbutionBillLading.getStockArticleId();
@ -479,105 +513,312 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
throw new ServiceException("请选择仓库在操作!!!"); throw new ServiceException("请选择仓库在操作!!!");
} }
distrilbutionBillLading.setWarehouseId(myCurrentWarehouse.getId()); distrilbutionBillLading.setWarehouseId(myCurrentWarehouse.getId());
List<DistributionParcelListDTO> parcelLisList = distrilbutionBillLading.getParcelLisList(); // List<DistributionParcelListDTO> parcelLisList = distrilbutionBillLading.getParcelLisList();
Map<Long, List<DistributionParcelListEntity>> packageMap =null;
if (Func.isNotEmpty( distrilbutionBillLading.getBillPackageEntityList())){
List<DistrilbutionBillPackageEntity> packageEntityList= distrilbutionBillLading.getBillPackageEntityList();
List<Long> packageisd = packageEntityList.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList());
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(packageisd);
if (Func.isNotEmpty(distributionParcelListEntities)){
packageMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getStockArticleId));
}
}
Map<Long, List<DistributionParcelListDTO>> zeroPackageMap = null;
if (Func.isNotEmpty( distrilbutionBillLading.getParcelLisList())){
List<DistributionParcelListDTO> zeroPackageList = distrilbutionBillLading.getParcelLisList();
zeroPackageMap = zeroPackageList.stream().collect(Collectors.groupingBy(DistributionParcelListDTO::getStockArticleId));
}
this.saveDistrilbutionBillLading(distrilbutionBillLading); 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())) { if (StringUtils.isNotBlank(distrilbutionBillLading.getStockArticleId())) {
String[] split = distrilbutionBillLading.getStockArticleId().split(","); String[] split = distrilbutionBillLading.getStockArticleId().split(",");
for (String s : split) { for (String s : split) {
//查询订单信息 //构建订单
DistributionStockArticleEntity byId = distributionStockArticleService.getById(s); List<Long> packageIds = new ArrayList<>();
//查询是否创建过 List<Long> zeroPackageIds = new ArrayList<>();
DistributionStockArticleEntity distributionStockArticle = new DistributionStockArticleEntity(); DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(s);
//添加订单和提货单关联 DistrilbutionBillStockEntity distrilbutionBillStock = new DistrilbutionBillStockEntity();
DistrilbutionBillStockEntity distrilbutionBillStock = new DistrilbutionBillStockVO();
distrilbutionBillStock.setBillLadingId(distrilbutionBillLading.getId()); distrilbutionBillStock.setBillLadingId(distrilbutionBillLading.getId());
distrilbutionBillStock.setStockArticleId(Long.parseLong(s)); if (Func.isNotEmpty(stockArticleEntity)){
distrilbutionBillStock.setConditions(BillLadingStatusConstant.daitihuo.getValue()); if (IsOrNoConstant.no.getValue().equals(stockArticleEntity.getIsZero())){
distrilbutionBillStock.setOrderStatus("1"); //查询此订单是否能够从包件列表获取到信息
distrilbutionBillStockService.save(distrilbutionBillStock); if (Func.isNotEmpty(packageMap)){
List<DistrilbutionBillPackageEntity> packageEntityList = new ArrayList<>(); if (Func.isNotEmpty(packageMap.get(Long.parseLong(s)))){
if (ObjectUtils.isNotNull(distrilbutionBillLading.getBillPackageEntityList())) { //存在勾选包件信息
//添加自提包件信息 for (DistributionParcelListEntity distrilbutionBillPackageEntity : packageMap.get(Long.parseLong(s))) {
// List<DistrilbutionBillPackageEntity> collect = new ArrayList<>(); DistrilbutionBillPackageEntity aaa = new DistrilbutionBillPackageEntity();
List<DistrilbutionBillPackageEntity> collect = distrilbutionBillLading.getBillPackageEntityList().stream().filter(qqq -> qqq.getStockArticleId().toString().equals(s)).collect(Collectors.toList()); aaa.setBillLadingId(distrilbutionBillLading.getId());
if (!collect.isEmpty()) { aaa.setPacketBarStatus(1);
//有包件 aaa.setBillType("1");
collect.stream().forEach(ss -> { aaa.setPacketNumber(distrilbutionBillPackageEntity.getQuantity());
DistrilbutionBillPackageEntity billPackageEntity = new DistrilbutionBillPackageEntity(); //进行包件的预约状态修改
billPackageEntity.setBillLadingId(distrilbutionBillLading.getId()); packageEntityList.add(aaa);
billPackageEntity.setPacketBarCode(ss.getPacketBarCode()); packageIds.add(aaa.getParceListId());
billPackageEntity.setPacketBarStatus(1); }
billPackageEntity.setParceListId(ss.getParceListId()); }else {
billPackageEntity.setStockArticleId(ss.getStockArticleId()); //没有进行包件的勾选,默认添加所有可用包件至计划下
billPackageEntity.setPacketNumber(1); List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
billPackageEntity.setBillType(byId.getIsZero().equals("1") ? "2" : "1"); .eq(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.daiyuyue.getValue())
packageEntityList.add(billPackageEntity); .eq(DistributionParcelListEntity::getOrderPackageLoadingStatus, OrderPackageLoadingStatusConstant.weizhuancghe.getValue())
}); .eq(DistributionParcelListEntity::getConditions, 1)
.eq(DistributionParcelListEntity::getStockArticleId, Long.parseLong(s))
List<Long> collect1 = collect.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList()); .eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
distributionAsyncService.updateParcelListReservation(collect1); .ne(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yiqianshou.getValue())
.ne(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yichuku.getValue())
//判断是否全部修改 );
int i = byId.getHandQuantity() - collect.size(); if (!Func.isEmpty(parcelListEntities)){
if (i > 0) { for (DistributionParcelListEntity parcelListEntity : parcelListEntities) {
//部分 DistrilbutionBillPackageEntity billPackageEntity = new DistrilbutionBillPackageEntity();
distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue()); billPackageEntity.setBillLadingId(distrilbutionBillLading.getId());
billPackageEntity.setPacketBarStatus(1);
billPackageEntity.setBillType("1");
billPackageEntity.setPacketNumber(parcelListEntity.getQuantity());
billPackageEntity.setParceListId(parcelListEntity.getId());
billPackageEntity.setStockArticleId(parcelListEntity.getStockArticleId());
billPackageEntity.setPacketBarCode(parcelListEntity.getOrderPackageCode());
packageEntityList.add(billPackageEntity);
packageIds.add(parcelListEntity.getId());
}
}else {
log.error("#####################自提计划订单无可用包件:{}",s);
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单无可用包件!!!");
}
}
}else {
//没有进行包件的勾选,默认添加所有可用包件至计划下
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.daiyuyue.getValue())
.eq(DistributionParcelListEntity::getOrderPackageLoadingStatus, OrderPackageLoadingStatusConstant.weizhuancghe.getValue())
.eq(DistributionParcelListEntity::getConditions, 1)
.eq(DistributionParcelListEntity::getStockArticleId, Long.parseLong(s))
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
.ne(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yiqianshou.getValue())
.ne(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yichuku.getValue())
);
if (!Func.isEmpty(parcelListEntities)){
for (DistributionParcelListEntity parcelListEntity : parcelListEntities) {
DistrilbutionBillPackageEntity billPackageEntity = new DistrilbutionBillPackageEntity();
billPackageEntity.setBillLadingId(distrilbutionBillLading.getId());
billPackageEntity.setPacketBarStatus(1);
billPackageEntity.setBillType("1");
billPackageEntity.setPacketNumber(parcelListEntity.getQuantity());
billPackageEntity.setParceListId(parcelListEntity.getId());
billPackageEntity.setStockArticleId(parcelListEntity.getStockArticleId());
billPackageEntity.setPacketBarCode(parcelListEntity.getOrderPackageCode());
packageEntityList.add(billPackageEntity);
packageIds.add(parcelListEntity.getId());
}
}else {
log.error("#####################自提计划订单无可用包件:{}",s);
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单无可用包件!!!");
}
} }
} else { }else if (IsOrNoConstant.yes.getValue().equals(stockArticleEntity.getIsZero())){
//没有包件 查询包件信息 boolean a = false;
List<DistrilbutionBillPackageEntity> packageEntityList1 = billPackInfo(s, distrilbutionBillLading.getId(), parcelLisList, byId); if (Func.isNotEmpty(zeroPackageMap)){
if (packageEntityList1.isEmpty()) { if (Func.isNotEmpty(zeroPackageMap.get(Long.parseLong(s)))){
throw new ServiceException(byId.getOrderCode() + "没有可用包件信息!"); a = true;
}
}
if (a){
//存在数量填写
for (DistributionParcelListDTO distributionParcelListDTO : zeroPackageMap.get(Long.parseLong(s))) {
if (distributionParcelListDTO.getQuantity() > 0 || Func.isEmpty(distributionParcelListDTO.getQuantity()) ){
DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity();
distributionReservationZeroPackageEntity.setParcelListId(distributionParcelListDTO.getId());
distributionReservationZeroPackageEntity.setCategoryName(distributionParcelListDTO.getFirsts());
distributionReservationZeroPackageEntity.setQuantity(distributionParcelListDTO.getTiQuantity());
distributionReservationZeroPackageEntity.setType("3");
distributionReservationZeroPackageEntity.setReservationId(distrilbutionBillLading.getId());
distributionReservationZeroPackageEntity.setStockArticleId(distributionParcelListDTO.getStockArticleId());
distributionReservationZeroPackageEntity.setRealityQuantity(0);
distributionReservationZeroPackageEntity.setZeroPackageStatus("1");
distributionZeroPackageService.save(distributionReservationZeroPackageEntity);
zeroPackageIds.add(distributionReservationZeroPackageEntity.getParcelListId());
//维护对应零担包件的配送数量
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getStockArticleId, distributionParcelListDTO.getStockArticleId())
.eq(DistributionParcelNumberEntity::getParcelListId, distributionParcelListDTO.getId())
);
int num = distributionParcelNumberEntity.getDeliveryQuantity() + distributionParcelListDTO.getTiQuantity();
distributionParcelNumberEntity.setDeliveryQuantity(num);
if ( (distributionParcelNumberEntity.getHandQuantity() - num) < 0){
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单在库数量不足!!!");
}
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
}
}
}else {
//查询此订单下可用零担数量
List<DistributionParcelNumberVO> zeroOrderDetail = distributionStockArticleService.getZeroOrderDetail(Long.parseLong(s));
if (Func.isNotEmpty(zeroOrderDetail)){
for (DistributionParcelNumberVO distributionParcelNumberVO : zeroOrderDetail) {
DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity();
distributionReservationZeroPackageEntity.setRealityQuantity(0);
distributionReservationZeroPackageEntity.setReservationId(distrilbutionBillLading.getId());
distributionReservationZeroPackageEntity.setType("3");
distributionReservationZeroPackageEntity.setStockArticleId(Long.parseLong(s));
int num = distributionParcelNumberVO.getHandQuantity() - distributionParcelNumberVO.getDeliveryQuantity();
distributionReservationZeroPackageEntity.setQuantity(num);
distributionReservationZeroPackageEntity.setParcelListId(distributionParcelNumberVO.getParcelListId());
distributionReservationZeroPackageEntity.setZeroPackageStatus("1");
distributionReservationZeroPackageEntity.setCategoryName(distributionParcelNumberVO.getFirsts());
distributionZeroPackageService.save(distributionReservationZeroPackageEntity);
//维护零担品类配送数量
DistributionParcelNumberEntity distributionParcelNumberEntity = new DistributionParcelNumberEntity();
distributionParcelNumberEntity.setId(distributionParcelNumberVO.getId());
distributionParcelNumberEntity.setDeliveryQuantity(distributionParcelNumberVO.getDeliveryQuantity() + num);
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
zeroPackageIds.add(distributionReservationZeroPackageEntity.getParcelListId());
}
}else {
log.error("#####################订单无可用零担:{}",s);
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单无在库零担!!!");
}
} }
packageEntityList.addAll(packageEntityList1);
// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); }else {
} log.error("#####################订单isZero字段错误orderId:{}",s);
} else { throw new ServiceException(stockArticleEntity.getOrderCode()+"订单数据错误!!!");
//没有包件 查询包件信息
List<DistrilbutionBillPackageEntity> packageEntityList1 = billPackInfo(s, distrilbutionBillLading.getId(), parcelLisList, byId);
if (packageEntityList1.isEmpty()) {
throw new ServiceException(byId.getOrderCode() + "没有可用包件信息!");
} }
packageEntityList.addAll(packageEntityList1); }else {
log.error("#####################自提添加错误订单orderId:{}",s);
// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); throw new ServiceException("订单数据错误!!!");
} }
//构建自提订单中间表信息
distrilbutionBillStock.setBillLadingId(distrilbutionBillLading.getId());
distrilbutionBillStock.setStockArticleId(Long.parseLong(s));
distrilbutionBillStock.setConditions("10");
distrilbutionBillStock.setOrderStatus(ReservationOrderStatusConstant.zhengchang.getValue());
distrilbutionBillStockService.save(distrilbutionBillStock);
//对计划包件进行批量预约状态修改
// int i1 = byId.getHandQuantity() + byId.getSigninQuantity(); //总数 if (Func.isNotEmpty(zeroPackageIds)){
if (byId.getCompleteSet() == 2) { List<DistributionParcelNumberEntity> parcelNumberEntityList = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda()
//全部 .in(DistributionParcelNumberEntity::getParcelListId, zeroPackageIds)
distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); );
List<Long> ids = parcelNumberEntityList.stream().filter(f -> f.getQuantity() == (f.getOutboundQuantity() + f.getDeliveryQuantity())).map(DistributionParcelNumberEntity::getParcelListId).collect(Collectors.toList());
} else { packageIds.addAll(ids);
//部分
distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
} }
if (!Func.isEmpty(packageIds)){
//判断是否改为已预约 distributionParcelListService.update(new UpdateWrapper<DistributionParcelListEntity>().lambda()
List<DistributionParcelNumberEntity> parcelNumberList = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda() .in(DistributionParcelListEntity::getId,packageIds)
.eq(DistributionParcelNumberEntity::getStockArticleId, s) .set(DistributionParcelListEntity::getOrderPackageReservationStatus,OrderPackageReservationStatusConstant.yiyueyue.getValue())
); );
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());
}
} }
distributionStockArticleService.maintenanceOrderInfo(stockArticleEntity.getOrderCode(),stockArticleEntity.getWarehouseId());
}
if (Func.isNotEmpty(packageEntityList)){
distrilbutionBillPackageService.saveBatch(packageEntityList); distrilbutionBillPackageService.saveBatch(packageEntityList);
distributionStockArticle.setId(Long.parseLong(s));
distributionStockArticleService.updateById(distributionStockArticle);
} }
} }
//操作图片 //操作图片
if (!distrilbutionBillLading.getPrintList().isEmpty()) { if (!distrilbutionBillLading.getPrintList().isEmpty()) {
addPrint(distrilbutionBillLading); addPrint(distrilbutionBillLading);
@ -759,6 +1000,15 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
} }
} }
/**
* @param reservationId
* @return
*/
@Override
public List<DistributionStockupOrderListVO> selectBillLadingZeroPackageList(Long reservationId) {
return baseMapper.selectBillLadingZeroPackageList(reservationId);
}
@Transactional @Transactional
private Integer cancelBillLodingPackage(List<Long> ids) { private Integer cancelBillLodingPackage(List<Long> ids) {
String method = "##########类DistrilbutionBillLadingServiceImpl执行方法cancelBillLoding,"; String method = "##########类DistrilbutionBillLadingServiceImpl执行方法cancelBillLoding,";
@ -884,6 +1134,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
* @return * @return
*/ */
public Boolean updateBillPackeg(DistrilbutionBillLadingDTO distrilbutionBillLading) { public Boolean updateBillPackeg(DistrilbutionBillLadingDTO distrilbutionBillLading) {
List<Long> packageIds = new ArrayList<>();
List<Long> finalPackageIds = packageIds;
distrilbutionBillLading.getBillPackageEntityList().stream().collect(Collectors.groupingBy(DistrilbutionBillPackageEntity::getStockArticleId)) distrilbutionBillLading.getBillPackageEntityList().stream().collect(Collectors.groupingBy(DistrilbutionBillPackageEntity::getStockArticleId))
.forEach((k, v) -> { .forEach((k, v) -> {
List<DistrilbutionBillPackageEntity> list = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda() List<DistrilbutionBillPackageEntity> list = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
@ -918,7 +1170,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
billPackageEntity.setPacketNumber(1); billPackageEntity.setPacketNumber(1);
billPackageEntity.setPacketBarStatus(1); billPackageEntity.setPacketBarStatus(1);
packageEntityList.add(billPackageEntity); packageEntityList.add(billPackageEntity);
finalPackageIds.add(i.getParceListId());
}); });
distrilbutionBillPackageService.saveBatch(packageEntityList); distrilbutionBillPackageService.saveBatch(packageEntityList);
List<Long> collect = packageEntityList.stream().map(i -> i.getParceListId()).collect(Collectors.toList()); List<Long> collect = packageEntityList.stream().map(i -> i.getParceListId()).collect(Collectors.toList());
@ -941,10 +1193,30 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
.in("id", collect) .in("id", collect)
.set("order_package_reservation_status", OrderPackageReservationStatusConstant.daiyuyue.getValue()) .set("order_package_reservation_status", OrderPackageReservationStatusConstant.daiyuyue.getValue())
); );
packageIds.addAll(collect);
if (!update) { if (!update) {
throw new ServiceException("修改失败!!!"); throw new ServiceException("修改失败!!!");
} }
} }
//维护订单状态
if (!packageIds.isEmpty()){
//查询所有的包件
packageIds = packageIds.stream().distinct().collect(Collectors.toList());
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(packageIds);
String orderCodes = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getOrderCode).collect(Collectors.joining(","));
List<Long> warehouseIds = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getWarehouseId).distinct().collect(Collectors.toList());
if (!warehouseIds.isEmpty()){
if (warehouseIds.size() == 1){
distributionStockArticleService.maintenanceOrderInfo(orderCodes,warehouseIds.get(0));
}else {
log.error("#################自提订制品包件缺失warehouseId错误warehouseIds:{}",warehouseIds);
throw new ServiceException("修改失败!!!");
}
}else {
log.error("#################自提订制品包件缺失warehouseId信息packageIds:{}",packageIds);
throw new ServiceException("修改失败!!!");
}
}
return true; return true;
} }
@ -958,7 +1230,13 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
public int updetaParcelNum(DistrilbutionBillLadingDTO distrilbutionBillLadingDTO) { public int updetaParcelNum(DistrilbutionBillLadingDTO distrilbutionBillLadingDTO) {
List<DistributionReservationZeroPackageEntity> list = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda() List<DistributionReservationZeroPackageEntity> list = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, distrilbutionBillLadingDTO.getId()) .eq(DistributionReservationZeroPackageEntity::getReservationId, distrilbutionBillLadingDTO.getId())
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "2")
.eq(DistributionReservationZeroPackageEntity::getType, "3")
); //数据库的品分类数据 ); //数据库的品分类数据
// List<Long> ids = null;
List<DistributionStockArticleEntity> stockArticleList = distrilbutionBillLadingDTO.getStockArticleList();
Map<Long, List<DistributionStockArticleEntity>> collect = stockArticleList.stream().collect(Collectors.groupingBy(DistributionStockArticleEntity::getId));
List<DistributionParcelListDTO> parcelLisList = distrilbutionBillLadingDTO.getParcelLisList();//品类信息 List<DistributionParcelListDTO> parcelLisList = distrilbutionBillLadingDTO.getParcelLisList();//品类信息
if (!list.isEmpty()) { if (!list.isEmpty()) {
List<Long> longs = new ArrayList<>(); List<Long> longs = new ArrayList<>();
@ -972,11 +1250,15 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
DistributionParcelListDTO next = iterator.next(); DistributionParcelListDTO next = iterator.next();
if (next.getId().equals(i.getParcelListId())) { if (next.getId().equals(i.getParcelListId())) {
if (i.getRealityQuantity() > 0) { if (i.getRealityQuantity() > 0) {
throw new ServiceException("已备货无法修改备货数量!"); throw new ServiceException("已备货无法修改数量!");
} }
//获取修改的数量 //获取修改的数量
Integer quantity = i.getQuantity();//原预约数量 Integer quantity = i.getQuantity();//原预约数量
Integer quantity1 = next.getQuantity();//改变的数量 Integer quantity1 = next.getTiQuantity();//改变的数量
if (quantity1 == 0){
throw new ServiceException("输入错误的数量,请移除订单!");
}
int i1 = quantity - quantity1; int i1 = quantity - quantity1;
if (i1 > 0) { if (i1 > 0) {
//减少了 //减少了
@ -986,24 +1268,33 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionParcelNumberService.updateBillNum(i.getParcelListId(), i1, 2); distributionParcelNumberService.updateBillNum(i.getParcelListId(), i1, 2);
} else { } else {
//不做操作! //不做操作!
iterator.remove();
continue; continue;
} }
//修改预约数量 //修改预约数量
DistributionReservationZeroPackageEntity zeroPackage = new DistributionReservationZeroPackageEntity(); DistributionReservationZeroPackageEntity zeroPackage = new DistributionReservationZeroPackageEntity();
zeroPackage.setId(i.getId()); zeroPackage.setId(i.getId());
zeroPackage.setQuantity(next.getQuantity()); zeroPackage.setQuantity(next.getTiQuantity());
distributionZeroPackageService.updateById(zeroPackage); distributionZeroPackageService.updateById(zeroPackage);
iterator.remove(); iterator.remove();
} }
} }
} else { } else {
//不存在 //不存在
longs.add(i.getId()); //此种物料不存在 判断是否还带有该订单 如果依然带有则无变化
if (!collect.isEmpty()){
List<DistributionStockArticleEntity> distributionStockArticleEntities = collect.get(i.getStockArticleId());
if (distributionStockArticleEntities.isEmpty()){
longs.add(i.getParcelListId());
}
}
} }
}); });
if (!longs.isEmpty()) { if (!longs.isEmpty()) {
distributionZeroPackageService.deleteLogic(longs); // distributionZeroPackageService.deleteLogic(longs);
//进行零担在库数量恢复
distributionZeroPackageService.recoverZeroPackage(distrilbutionBillLadingDTO.getId(),longs);
// distributionZeroPackageService.cancelZeroPackage(longs);
} }
// TODo 添加新的品类 // TODo 添加新的品类
List<DistributionReservationZeroPackageEntity> packageEntityList = new ArrayList<>(); List<DistributionReservationZeroPackageEntity> packageEntityList = new ArrayList<>();
@ -1173,7 +1464,12 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<Long> collect = myWatchWarehouse.stream() List<Long> collect = myWatchWarehouse.stream()
.map(BasicdataWarehouseEntity::getId) .map(BasicdataWarehouseEntity::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
distrilbutionBillLadingDTO.setWarehouseIdList(collect); distrilbutionBillLadingDTO.setWarehouseIdList(collect);
if (Func.isNotEmpty(myWatchWarehouse)){
distrilbutionBillLadingDTO.setWarehouseIdList(null);
distrilbutionBillLadingDTO.setWarehouseId(myCurrentWarehouse.getId());
}
IPage<DistrilbutionBillLadingVO> distrilbutionBillLadingVOIPage = baseMapper.pageList(page, distrilbutionBillLadingDTO); IPage<DistrilbutionBillLadingVO> distrilbutionBillLadingVOIPage = baseMapper.pageList(page, distrilbutionBillLadingDTO);
List<DistrilbutionBillLadingVO> records = distrilbutionBillLadingVOIPage.getRecords(); List<DistrilbutionBillLadingVO> records = distrilbutionBillLadingVOIPage.getRecords();
records.forEach(i -> { records.forEach(i -> {
@ -1721,12 +2017,43 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda() List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()) .eq(DistrilbutionBillStockEntity::getBillLadingId, distrilbutionBillLadingEntity.getId())
.eq(DistrilbutionBillStockEntity::getOrderStatus, "1") .eq(DistrilbutionBillStockEntity::getOrderStatus, "1")
.or(eq -> eq.eq(DistrilbutionBillStockEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()).eq(DistrilbutionBillStockEntity::getOrderStatus, "2")) .or(eq -> eq.eq(DistrilbutionBillStockEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()).eq(DistrilbutionBillStockEntity::getOrderStatus, "3"))
); );
list.forEach(i -> { list.forEach(i -> {
List<DistributionStockArticleEntity> list2 = distributionStockArticleService.list(Wrappers.<DistributionStockArticleEntity>query().lambda().eq(DistributionStockArticleEntity::getId, i.getStockArticleId())); List<DistributionStockArticleEntity> list2 = distributionStockArticleService.list(Wrappers.<DistributionStockArticleEntity>query().lambda().eq(DistributionStockArticleEntity::getId, i.getStockArticleId()));
if (!list2.isEmpty()) { if (!list2.isEmpty()) {
list1.addAll(DistributionStockArticleWrapper.build().listVO(list2)); List<DistributionStockArticleVO> distributionStockArticleVOS = DistributionStockArticleWrapper.build().listVO(list2);
for (DistributionStockArticleVO distributionStockArticleVO : distributionStockArticleVOS) {
//查询自身订单的计划数量是多少
if (IsOrNoConstant.no.getValue().equals(distributionStockArticleVO.getIsZero())){
//查询订制品数量
List<DistrilbutionBillPackageEntity> list3 = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId, distrilbutionBillLadingEntity.getId())
.ne(DistrilbutionBillPackageEntity::getPacketBarStatus, "2")
.ne(DistrilbutionBillPackageEntity::getStockArticleId, distributionStockArticleVO.getId())
);
if (!list3.isEmpty()){
distributionStockArticleVO.setReservationNum(list3.size());
}else {
distributionStockArticleVO.setReservationNum(0);
}
}else {
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntities = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, distrilbutionBillLadingEntity.getId())
.eq(DistributionReservationZeroPackageEntity::getStockArticleId, distributionStockArticleVO.getId())
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "2")
.eq(DistributionReservationZeroPackageEntity::getType, "3")
);
if (!reservationZeroPackageEntities.isEmpty()){
distributionStockArticleVO.setReservationNum(reservationZeroPackageEntities.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum());
}else {
distributionStockArticleVO.setReservationNum(0);
}
}
}
list1.addAll(distributionStockArticleVOS);
} }
}); });
@ -1739,6 +2066,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//查询库存品 //查询库存品
List<DistributionDeliveryDetailsEntity> list3 = distributionDeliveryDetailsService.list(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda() List<DistributionDeliveryDetailsEntity> list3 = distributionDeliveryDetailsService.list(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda()
.eq(DistributionDeliveryDetailsEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()) .eq(DistributionDeliveryDetailsEntity::getBillLadingId, distrilbutionBillLadingEntity.getId())
.ne(DistributionDeliveryDetailsEntity::getInventoryStatus, "2")
); );
if (!list3.isEmpty()) { if (!list3.isEmpty()) {
list3.forEach(i -> { list3.forEach(i -> {
@ -2344,60 +2672,60 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
isZeroType = true; isZeroType = true;
} }
this.save(distrilbutionBillLading); this.save(distrilbutionBillLading);
if (isZeroType) { // if (isZeroType) {
if (list.isEmpty()) { // if (list.isEmpty()) {
throw new ServiceException("类型数据未填写!!!"); // throw new ServiceException("类型数据未填写!!!");
} // }
List<DistributionReservationZeroPackageEntity> zeroPackageEntityList = new ArrayList<>(); // List<DistributionReservationZeroPackageEntity> zeroPackageEntityList = new ArrayList<>();
List<DistributionParcelNumberEntity> parcelNumberEntityList = new ArrayList<>(); // List<DistributionParcelNumberEntity> parcelNumberEntityList = new ArrayList<>();
AtomicInteger nu = new AtomicInteger(); // AtomicInteger nu = new AtomicInteger();
//是 添加物料信息 // //是 添加物料信息
list.forEach(i -> { // list.forEach(i -> {
if (i.getQuantity() != 0) { // if (i.getQuantity() != 0) {
DistributionReservationZeroPackageEntity zeroPackageEntity = new DistributionReservationZeroPackageEntity(); // DistributionReservationZeroPackageEntity zeroPackageEntity = new DistributionReservationZeroPackageEntity();
zeroPackageEntity.setQuantity(i.getQuantity()); // zeroPackageEntity.setQuantity(i.getQuantity());
zeroPackageEntity.setReservationId(distrilbutionBillLading.getId()); // zeroPackageEntity.setReservationId(distrilbutionBillLading.getId());
zeroPackageEntity.setType("3"); // zeroPackageEntity.setType("3");
zeroPackageEntity.setCategoryName(i.getFirsts()); // zeroPackageEntity.setCategoryName(i.getFirsts());
zeroPackageEntity.setZeroPackageStatus("1"); // zeroPackageEntity.setZeroPackageStatus("1");
zeroPackageEntity.setStockArticleId(i.getStockArticleId()); // zeroPackageEntity.setStockArticleId(i.getStockArticleId());
zeroPackageEntity.setRealityQuantity(0); // zeroPackageEntity.setRealityQuantity(0);
//修改包件配送数量 // //修改包件配送数量
//查询 // //查询
DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId()); // DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId());
DistributionParcelNumberEntity one = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, i.getId())); // DistributionParcelNumberEntity one = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, i.getId()));
//
int i1 = one.getDeliveryQuantity() + i.getQuantity(); // int i1 = one.getDeliveryQuantity() + i.getQuantity();
//全部数据不能大于预约数 // //全部数据不能大于预约数
if (ObjectUtils.isNotNull(one) && i1 <= one.getHandQuantity()) { // if (ObjectUtils.isNotNull(one) && i1 <= one.getHandQuantity()) {
nu.addAndGet(i.getQuantity()); // nu.addAndGet(i.getQuantity());
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity(); // DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setId(one.getId()); // parcelNumberEntity.setId(one.getId());
parcelNumberEntity.setDeliveryQuantity(one.getDeliveryQuantity() + i.getQuantity()); // parcelNumberEntity.setDeliveryQuantity(one.getDeliveryQuantity() + i.getQuantity());
parcelNumberEntity.setHandQuantity(byId.getHandQuantity()); // parcelNumberEntity.setHandQuantity(byId.getHandQuantity());
parcelNumberEntityList.add(parcelNumberEntity); // parcelNumberEntityList.add(parcelNumberEntity);
zeroPackageEntity.setParcelListId(one.getParcelListId()); // zeroPackageEntity.setParcelListId(one.getParcelListId());
zeroPackageEntityList.add(zeroPackageEntity); // zeroPackageEntityList.add(zeroPackageEntity);
} else { // } else {
throw new ServiceException("配送数量大于在库数量!!"); // throw new ServiceException("配送数量大于在库数量!!");
} // }
//
} // }
}); // });
if (!parcelNumberEntityList.isEmpty()) { // if (!parcelNumberEntityList.isEmpty()) {
parcelNumberEntityList.forEach(p -> { // parcelNumberEntityList.forEach(p -> {
if (nu.get() <= p.getHandQuantity()) { // if (nu.get() <= p.getHandQuantity()) {
p.setHandQuantity(null); // p.setHandQuantity(null);
distributionParcelNumberService.updateById(p); // distributionParcelNumberService.updateById(p);
} else { // } else {
throw new ServiceException("预约数量大于在库数量!!"); // throw new ServiceException("预约数量大于在库数量!!");
} // }
}); // });
} else { // } else {
throw new ServiceException("数据异常,请联系管理员!!"); // throw new ServiceException("数据异常,请联系管理员!!");
} // }
distributionZeroPackageService.saveBatch(zeroPackageEntityList); // distributionZeroPackageService.saveBatch(zeroPackageEntityList);
} // }
// 创建备货任务 // 创建备货任务
DistributionStockupEntity distributionStockupEntity = buildDistributionStockupEntityBydistrilbutionBillLading(distrilbutionBillLading); DistributionStockupEntity distributionStockupEntity = buildDistributionStockupEntityBydistrilbutionBillLading(distrilbutionBillLading);
@ -2475,6 +2803,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<DistributionReservationZeroPackageEntity> list = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda() List<DistributionReservationZeroPackageEntity> list = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingAppDTO.getBillLadingId()) .eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingAppDTO.getBillLadingId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.eq(DistributionReservationZeroPackageEntity::getStockArticleId, billLadingAppDTO.getStockArtieleld())
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
); );
List<DistrilbutionAppBillLadingZeroVO> parcelListEntityList = new ArrayList<>(); List<DistrilbutionAppBillLadingZeroVO> parcelListEntityList = new ArrayList<>();
@ -2573,10 +2902,18 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
billLadingScan.setMaterialType("3"); billLadingScan.setMaterialType("3");
billLadingScan.setQuantity(i.getQuantity()); billLadingScan.setQuantity(i.getQuantity());
billLadingScanList.add(billLadingScan); billLadingScanList.add(billLadingScan);
//维护零担品类的出库数量
Integer integer = distributionParcelNumberService.augmentSignForNum(i.getId(), i.getStockArticleId(), i.getQuantity());
log.info("###############维护零担品类出库数量packageId:{},stockArticleId:{},",i.getId(),i.getStockArticleId());
log.info("###############维护零担品类出库数量维护品类行数:{}",integer);
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(k);
//扣减订单在库数量
distributionStockArticleService.maintenanceOrderInfo(stockArticleEntity.getOrderCode(),stockArticleEntity.getWarehouseId());
}); });
int sum = v.stream().mapToInt(DistrilbutionAppBillLadingZeroVO::getQuantity).sum(); //填写的签收数量 int sum = v.stream().mapToInt(DistrilbutionAppBillLadingZeroVO::getQuantity).sum(); //填写的签收数量
//修改订单签收钻状态 //修改订单签收钻状态
updateStockArticle(sum, k); // updateStockArticle(sum, k);
//修改提货订单状态 //修改提货订单状态
updateBillStock(sum, list, k, billLadingAppDTO.getBillLadingId()); updateBillStock(sum, list, k, billLadingAppDTO.getBillLadingId());
}); });
@ -2623,14 +2960,17 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
BeanUtils.copyProperties(byId, zeroOrderVO); BeanUtils.copyProperties(byId, zeroOrderVO);
zeroOrderVO.setReservationQuantity(sum); zeroOrderVO.setReservationQuantity(sum);
zeroOrderVO.setRealityQuantity(sum1); zeroOrderVO.setRealityQuantity(sum1);
zeroOrderVO.setId(k);
//查询签收订单数量 //查询签收订单数量
List<DistributionBillLadingScanEntity> list1 = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda() List<DistributionBillLadingScanEntity> list1 = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingAppDTO.getBillLadingId()) .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingAppDTO.getBillLadingId())
.eq(DistributionBillLadingScanEntity::getStockArticleId, k) .eq(DistributionBillLadingScanEntity::getStockArticleId, k)
.eq(DistributionBillLadingScanEntity::getParcelListId, k) // .eq(DistributionBillLadingScanEntity::getParcelListId, k)
); );
if (!list1.isEmpty()) { if (!list1.isEmpty()) {
zeroOrderVO.setSignforQuantity(list1.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum()); zeroOrderVO.setSignforQuantity(list1.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum());
}else {
zeroOrderVO.setSignforQuantity(0);
} }
billLadingZeroOrderVOS.add(zeroOrderVO); billLadingZeroOrderVOS.add(zeroOrderVO);
@ -2848,7 +3188,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
return distrilbutionBillStockService.update(Wrappers.<DistrilbutionBillStockEntity>update() return distrilbutionBillStockService.update(Wrappers.<DistrilbutionBillStockEntity>update()
.eq("bill_lading_id", billLadingId) .eq("bill_lading_id", billLadingId)
.eq("stock_article_id", stockArticleId) .eq("stock_article_id", stockArticleId)
.set("conditions", 2) .set("conditions", 20)
); );
} }
return false; return false;

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/wrapper/DistributionStockArticleWrapper.java

@ -69,6 +69,7 @@ public class DistributionStockArticleWrapper extends BaseEntityWrapper<Distribut
break; break;
} }
} }
distributionStockupVO.setReservationNum(entity.getHandQuantity()-entity.getDeliveryQuantity());
buildVoInfor(distributionStockupVO); buildVoInfor(distributionStockupVO);
return distributionStockupVO; return distributionStockupVO;
} }

8
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/BillDataMapper.xml

@ -9,12 +9,12 @@
logpm_platform.logpm_warehouse_waybill logpm_platform.logpm_warehouse_waybill
where freeze_status = 0 where freeze_status = 0
<where> <where>
<if test="item != null">
and destination_warehouse_id in
<foreach collection="warehouseId" index="index" item="item"> <foreach collection="warehouseId" index="index" item="item">
<if test="item != null"> #{item}
and destination_warehouse_id = #{item}
</if>
</foreach> </foreach>
</if>
<if test="timeType !=null "> <if test="timeType !=null ">
<choose> <choose>
<when test="timeType == 2"> <when test="timeType == 2">

44
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java

@ -1,7 +1,6 @@
package com.logpm.report.mapper; package com.logpm.report.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -10,11 +9,52 @@ import java.util.List;
@Mapper @Mapper
public interface InLibraryDeliverMapper extends BaseMapper { public interface InLibraryDeliverMapper extends BaseMapper {
/**
* 根据仓库ID获取在库总量数据
* @param warehouseId
* @return
*/
Integer obtainTheNumberOfInventoryListings (Long warehouseId); Integer obtainTheNumberOfInventoryListings (Long warehouseId);
/**
* 根据仓库ID\1已上架 2未上架获取在库数
* @param warehouseId
* @param order_package_grounding_status
* @return
*/
Integer theNumberOfShelvesInTheLibrary(Long warehouseId , Integer order_package_grounding_status); Integer theNumberOfShelvesInTheLibrary(Long warehouseId , Integer order_package_grounding_status);
// Integer quantityInTransit(@Param("id") Long id,)
/**
* 获取零担件数
* @param warehouse
* @return
*/
Integer getScatterCount(@Param("warehouse") List<Long> warehouse);
/**
* 获取中转仓数据
* @param warehouse
* @return
*/
Integer getThirdParty(@Param("warehouse") List<Long> warehouse);
/**
* 获取商配数据
* @param warehouse
* @return
*/
Integer getShoppData(@Param("warehouse") List<Long> warehouse);
/**
* 获取市配数据
* @param warehouse
* @return
*/
Integer getCityData(@Param("warehouse") List<Long> warehouse);
Integer getSelfHelp(@Param("warehouse") List<Long> warehouse);
} }

75
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml

@ -24,4 +24,79 @@
and warehouse_id = #{warehouseId} and warehouse_id = #{warehouseId}
</if> </if>
</select> </select>
<!--获取在库零担数据-->
<select id="getScatterCount" resultType="java.lang.Integer">
select sum(hand_quantity) as con
from logpm_distribution_stock_article
where
is_zero = 1
and
order_status = 20
<where>
<if test="item != null">
and warehouse_id in
<foreach collection="warehouse" index="index" item="item">
#{item}
</foreach>
</if>
</where>
</select>
<select id="getThirdParty" resultType="java.lang.Integer"></select>
<select id="getShoppData" resultType="java.lang.Integer">
select sum(hand_quantity) as con
from logpm_distribution_stock_article
where
is_zero = 1
and
type_service = 1
and
order_status = 20
<where>
<if test="item != null">
and warehouse_id in
<foreach collection="warehouse" index="index" item="item">
#{item}
</foreach>
</if>
</where>
</select>
<select id="getCityData" resultType="java.lang.Integer">
select sum(hand_quantity) as con
from logpm_distribution_stock_article
where
is_zero = 1
and
type_service = 2
and
order_status = 20
<where>
<if test="item != null">
and warehouse_id in
<foreach collection="warehouse" index="index" item="item">
#{item}
</foreach>
</if>
</where>
</select>
<select id="getSelfHelp" resultType="java.lang.Integer">
select sum(hand_quantity) as con
from logpm_distribution_stock_article
where
is_zero = 1
and
type_service = 3
and
order_status = 20
<where>
<if test="item != null">
and warehouse_id in
<foreach collection="warehouse" index="index" item="item">
#{item}
</foreach>
</if>
</where>
</select>
</mapper> </mapper>

6
blade-service/logpm-report/src/main/java/com/logpm/report/service/InLibraryDeliverService.java

@ -13,6 +13,12 @@ public interface InLibraryDeliverService {
Integer theNumberOfShelvesInTheLibrary(Long id,Integer order_package_grounding_statu); Integer theNumberOfShelvesInTheLibrary(Long id,Integer order_package_grounding_statu);
/**
* 获取在库零担件数
* @return
*/
Integer getScatterCount();
} }

9
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java

@ -33,4 +33,13 @@ public class InLibraryDeliverServiceImpl implements InLibraryDeliverService {
public Integer theNumberOfShelvesInTheLibrary(Long id, Integer order_package_grounding_status){ public Integer theNumberOfShelvesInTheLibrary(Long id, Integer order_package_grounding_status){
return inLibraryDeliverMapper.theNumberOfShelvesInTheLibrary(id, order_package_grounding_status); return inLibraryDeliverMapper.theNumberOfShelvesInTheLibrary(id, order_package_grounding_status);
} }
/**
* 获取在库零担数据
* @return
*/
@Override
public Integer getScatterCount() {
return null;
}
} }

16
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/AbnormalDataVo.java

@ -0,0 +1,16 @@
package com.logpm.report.vo.indexCount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
@ApiModel("异常数据")
public class AbnormalDataVo {
@ApiModelProperty("当月")
private AbnormalDetailDataVo moon;
@ApiModelProperty("当日")
private AbnormalDetailDataVo day;
}

21
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/AbnormalDetailDataVo.java

@ -0,0 +1,21 @@
package com.logpm.report.vo.indexCount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.List;
@ApiModel("异常数据明细")
public class AbnormalDetailDataVo {
@ApiModelProperty("发起数")
private Integer all;
@ApiModelProperty("待处理数")
private Integer notProcessed;
@ApiModelProperty("异常率")
private BigDecimal approximateRate;
}

16
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/DeliveryDataVo.java

@ -0,0 +1,16 @@
package com.logpm.report.vo.indexCount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel("当前配送数据")
public class DeliveryDataVo {
@ApiModelProperty("商配")
private DeliveryDetailDataVo shopp;
@ApiModelProperty("市配")
private DeliveryDetailDataVo city;
}

21
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/DeliveryDetailDataVo.java

@ -0,0 +1,21 @@
package com.logpm.report.vo.indexCount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel("异常数据")
public class DeliveryDetailDataVo {
@ApiModelProperty("配送计划总数")
private Integer all;
@ApiModelProperty("总件数")
private Integer allCount;
@ApiModelProperty("总重量")
private Integer allWeight;
@ApiModelProperty("总方数")
private Integer allArea;
@ApiModelProperty("在途件数")
private Integer onTheWay;
}

27
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/FreightDataVo.java

@ -0,0 +1,27 @@
package com.logpm.report.vo.indexCount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* 库位数据
*/
@ApiModel("库位数据")
public class FreightDataVo {
@ApiModelProperty("总数")
private Integer all;
@ApiModelProperty("已上架库位数")
private Integer shelves;
@ApiModelProperty("闲置库位数")
private Integer idle;
@ApiModelProperty("已上架件数")
private Integer shelvesCount;
@ApiModelProperty("未上架件数")
private Integer idleCount;
}

14
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/InStoreDataVO.java

@ -16,4 +16,18 @@ public class InStoreDataVO {
@ApiModelProperty("未上架数量") @ApiModelProperty("未上架数量")
private Integer notOnTheShelves; private Integer notOnTheShelves;
@ApiModelProperty("零担")
private Integer scatter;
@ApiModelProperty("三方中转")
private Integer thirdParty;
@ApiModelProperty("商配")
private Integer shopp;
@ApiModelProperty("市配")
private Integer city;
@ApiModelProperty("自提")
private Integer selfHelp;
} }

33
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/MainLineDataVo.java

@ -0,0 +1,33 @@
package com.logpm.report.vo.indexCount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel("干线数据")
public class MainLineDataVo {
@ApiModelProperty("运单总数")
private Integer billAll;
@ApiModelProperty("在库总件数")
private Integer inWareCount;
@ApiModelProperty("在库总重量")
private Integer inWareWeight;
@ApiModelProperty("在库总方数")
private Integer inWareArea;
/**
* 干线车次统计
*/
@ApiModelProperty("总车次")
private Integer allCar;
@ApiModelProperty("在途")
private Integer street;
@ApiModelProperty("作业")
private Integer job;
@ApiModelProperty("卸车完成数")
private Integer endCount;
}

12
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/SignDataVo.java

@ -0,0 +1,12 @@
package com.logpm.report.vo.indexCount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel("签收数据")
public class SignDataVo {
@ApiModelProperty("当月")
private SignDetailDataVo moon;
@ApiModelProperty("当日")
private SignDetailDataVo day;
}

33
blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/SignDetailDataVo.java

@ -0,0 +1,33 @@
package com.logpm.report.vo.indexCount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
@ApiModel("已签收数据")
public class SignDetailDataVo {
@ApiModelProperty("已签收")
private Integer endSign;
@ApiModelProperty("未签收")
private Integer noSign;
@ApiModelProperty("签收率")
private BigDecimal approximateRate;
@ApiModelProperty("文员签收数")
private Integer jobApproximateRate;
@ApiModelProperty("文员签收率")
private Integer jobNoSign;
@ApiModelProperty("超时签收")
private Integer timeEndSign;
@ApiModelProperty("超时签收率")
private Integer timeApproximateRate;
}
Loading…
Cancel
Save