Browse Source

异常装车

training
kilo 2 years ago
parent
commit
d543279ecf
  1. 46
      blade-biz-common/src/main/java/org/springblade/common/constant/loading/LoadingAbnormalAuditingStatusConstant.java
  2. 22
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionLoadscanAbnormalEntity.java
  3. 4
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionLoadscanEntity.java
  4. 2
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionAddvalueVO.java
  5. 11
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppReservationVO.java
  6. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionAddvalueAppController.java
  7. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionDeliveryAppController.java
  8. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionAddvalueMapper.xml
  9. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java
  10. 66
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  11. 19
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
  12. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  13. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java
  14. 153
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  15. 317
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  16. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

46
blade-biz-common/src/main/java/org/springblade/common/constant/loading/LoadingAbnormalAuditingStatusConstant.java

@ -0,0 +1,46 @@
package org.springblade.common.constant.loading;
/**
* 异常装车审核枚举
* 对应码表 freeze_status
* @author TJJ
*/
public enum LoadingAbnormalAuditingStatusConstant {
daishenhe("待审核",1),
yishenhe("已审核",2),
yichang("异常",3);
/**
* 状态
*/
private String name;
/**
*
*/
private Integer value;
private LoadingAbnormalAuditingStatusConstant(String name, Integer value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
}

22
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionLoadscanAbnormalEntity.java

@ -40,32 +40,32 @@ public class DistributionLoadscanAbnormalEntity extends TenantEntity {
* 预约ID
*/
@ApiModelProperty(value = "预约ID")
private String reservationId;
private Long reservationId;
/**
* 配送管理ID
*/
@ApiModelProperty(value = "配送管理ID")
private String deliveryListId;
private Long deliveryListId;
/**
* 包件ID
*/
@ApiModelProperty(value = "包件ID")
private String packageId;
private Long packageId;
/**
* 订单ID
*/
@ApiModelProperty(value = "订单ID")
private String stockArticleId;
private Long stockArticleId;
/**
* 扫描操作人
*/
@ApiModelProperty(value = "扫描操作人")
private String sacnUser;
private String scanUser;
/**
* 扫描操作时间
*/
@ApiModelProperty(value = "扫描操作时间")
private String scanTime;
private Date scanTime;
/**
* 包条码
*/
@ -80,7 +80,7 @@ public class DistributionLoadscanAbnormalEntity extends TenantEntity {
* 司机ID
*/
@ApiModelProperty(value = "司机ID")
private String driverId;
private Long driverId;
/**
* 司机名称
*/
@ -90,7 +90,7 @@ public class DistributionLoadscanAbnormalEntity extends TenantEntity {
* 车辆ID
*/
@ApiModelProperty(value = "车辆ID")
private String vehicleId;
private Long vehicleId;
/**
* 车牌号
*/
@ -120,7 +120,7 @@ public class DistributionLoadscanAbnormalEntity extends TenantEntity {
* 审核时间
*/
@ApiModelProperty(value = "审核时间")
private String auditingTime;
private Date auditingTime;
/**
* 包件配送类型 1 - 商配 2-市配
*/
@ -135,12 +135,12 @@ public class DistributionLoadscanAbnormalEntity extends TenantEntity {
* 审核状态 1-未审核 2- 已审核 3 - 异常
*/
@ApiModelProperty(value = "审核状态 1-未审核 2- 已审核 3 - 异常")
private String auditingStatus;
private Integer auditingStatus;
/**
* 装车数量
*/
@ApiModelProperty(value = "装车数量")
private String loadingQuantity;
private Integer loadingQuantity;
/**
* 预留1
*/

4
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionLoadscanEntity.java

@ -340,11 +340,11 @@ public class DistributionLoadscanEntity extends TenantEntity {
* 是否异常签收 1- 2-
*/
@ApiModelProperty(value = "是否异常签收 1-否 2-是")
private Long isAbnormalSigning;
private String isAbnormalSigning;
/**
* 是否异常装车 1- 2-
*/
@ApiModelProperty(value = "是否异常装车 1-否 2-是")
private Long isAbnormalLoading;
private String isAbnormalLoading;
}

2
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionAddvalueVO.java

@ -53,5 +53,7 @@ public class DistributionAddvalueVO extends DistributionAddvalueEntity {
private Long addvalueDetailId;
private Integer isAll;
}

11
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppReservationVO.java

@ -16,11 +16,15 @@
*/
package com.logpm.distribution.vo.app;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.vo.DistributionParcelListVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 预约列表 App视图实体类
*
@ -98,6 +102,13 @@ public class DistributionAppReservationVO extends DistributionReservationEntity
private String goodsNames;
/**
* 包件信息
*/
@ApiModelProperty(value = "包件信息")
private List<DistributionParcelListVO> packageList;
}

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

@ -122,7 +122,7 @@ public class DistributionAddvalueAppController {
/**
* 查询编辑增值服务数据
* 查询增值服务数据
*/
@PostMapping("/addvalueInfo")
@ApiOperationSupport(order = 1)

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionDeliveryAppController.java

@ -13,6 +13,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
@ -36,6 +37,7 @@ public class DistributionDeliveryAppController {
/**
* 配送管理 列表
*/
@ -80,6 +82,8 @@ public class DistributionDeliveryAppController {
return R.data(pages);
}
/**
* 配送 查看订单
*/
@ -136,6 +140,18 @@ public class DistributionDeliveryAppController {
return msg;
}
/**
* 异常装车
*/
@PostMapping("/abnormalLoading")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "详情", notes = "传入DistributionDeliveryListDTO")
public R abnormalLoading(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R r= distributionDeliveryListService.abnormalLoading(distrilbutionloadingscanDTO);
return r;
}
/**
* 配送管理 库存品装车
*/

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionAddvalueMapper.xml

@ -62,7 +62,8 @@
ldad.flool_num AS floolNum,
ldad.distance AS distance,
ldad.id AS addvalueDetailId,
GROUP_CONCAT(ldap.package_id) AS packageListIds
GROUP_CONCAT(ldap.package_id) AS packageListIds,
ldad.record_type AS isAll
FROM
logpm_distribution_addvalue AS lda
INNER JOIN logpm_distribution_addvalue_detail AS ldad ON lda.id = ldad.addvalue_id

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

@ -377,4 +377,12 @@ public interface DistributionDeliveryListMapper extends BaseMapper<DistributionD
* @return
*/
DistributionReservationEntity selectReservationByDeliveryListIdAndCustomerUnit(@Param("deliveryListId")Long deliveryListEntityId,@Param("receivingUnit") String k);
/**
* 查找包件属于哪个预约任务
* @param orderPackageCode
* @param deliveryId
* @return
*/
DistributionReservationEntity selectReservationByPackageAndDeliveryId(@Param("orderPackageCode") String orderPackageCode,@Param("deliveryListId") Long deliveryId);
}

66
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml

@ -1130,6 +1130,7 @@
ldr.loading_status,
ldr.signing_status,
ldr.stockup_status,
ldr.receiving_unit,
ldr.is_urgent,
ldr.collection_fee
FROM
@ -1407,5 +1408,70 @@
</if>
</where>
</select>
<select id="selectReservationByPackageAndDeliveryId"
resultType="com.logpm.distribution.entity.DistributionReservationEntity">
SELECT
ldr.id,
ldr.tenant_id,
ldr.create_user,
ldr.create_time,
ldr.update_user,
ldr.update_time,
ldr.status,
ldr.is_deleted,
ldr.create_dept,
ldr.stock_article_id,
ldr.mall_id,
ldr.mail_phone,
ldr.mall_name,
ldr.store_id,
ldr.store_name,
ldr.consignee,
ldr.delivery_address,
ldr.reservation_date,
ldr.serve_type,
ldr.delivery_way,
ldr.delivery_type,
ldr.collect_fee,
ldr.other_fee,
ldr.replace_fee,
ldr.delivery_phone,
ldr.reservation_status,
ldr.order_source,
ldr.stockup_status,
ldr.signing_status,
ldr.loading_status,
ldr.goods_area_name,
ldr.goods_area_id,
ldr.reserve1,
ldr.reserve2,
ldr.reserve3,
ldr.reserve4,
ldr.reserve5,
ldr.remarks,
ldr.shopping_id,
ldr.period_of_time,
ldr.fee,
ldr.reservation_num,
ldr.reservation_stock_list_num,
ldr.reservation_code,
ldr.service_number,
ldr.cancel_reason,
ldr.is_urgent,
ldr.collection_fee,
ldr.warehouse_name,
ldr.warehouse_id,
ldr.receiving_unit,
ldr.waybill_id,
ldr.waybill_no
FROM
logpm_distribution_delivery_list AS lddl
LEFT JOIN logpm_distribution_signfor AS lds ON lds.delivery_id = lddl.id
LEFT JOIN logpm_distribution_reservation AS ldr ON lds.reservation_id = ldr.id
LEFT JOIN logpm_distribution_reservation_package AS ldrp ON ldrp.reservation_id = ldr.id
INNER JOIN logpm_distribution_parcel_list AS ldpl ON ldrp.parce_list_id = ldpl.id
WHERE
lddl.id = #{deliveryListId} AND ldrp.packet_bar_status IN ('1','3') AND ldrp.packet_bar_code = #{orderPackageCode}
</select>
</mapper>

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

@ -167,4 +167,23 @@ public interface IDistributionAsyncService {
* @param stockupDTO
*/
void stockupSelfOffShelf(StockupDTO stockupDTO) throws InterruptedException;
/**
* 检查维护装车状态
* @param parcelListEntity
* @param deliveryId
*/
void checkLoadingByPackage(DistributionParcelListEntity parcelListEntity, Long deliveryId);
/**
* 托盘装车 维护装车状态
* @param deliveryId
*/
void checkLoadingByDelivery(Long deliveryId);
/**
* 维护包件订单装车和出库状态
* @param parcelListEntity
*/
void checkOrderLoadingStatus(DistributionParcelListEntity parcelListEntity);
}

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

@ -257,4 +257,11 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
* @return
*/
IPage<DistributionAppReservationVO> getAppDeliveryreservationTraysPage(IPage<DistributionAppReservationVO> page, DistributionAppDeliveryListDTO distributionDeliveryList);
/**
* 异常装车
* @param distrilbutionloadingscanDTO
* @return
*/
R abnormalLoading(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
}

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java

@ -249,6 +249,11 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
distributionAddvalueEntity.setDeliveryListId(distributionAppAddvalueDTO.getDeliveryId());
this.save(distributionAddvalueEntity);
distributionAddvalueDetailEntity.setAddvalueId(distributionAddvalueEntity.getId());
distributionAddvalueDetailEntity.setRecordType(2);
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionAppAddvalueDTO.getReservationId());
if (parcelListEntities.size() == packageEntityList.size()){
distributionAddvalueDetailEntity.setRecordType(1);
}
distributionAddvalueDetailService.save(distributionAddvalueDetailEntity);
packageEntityList.stream().forEach(p->p.setAddvalueDetailId(distributionAddvalueDetailEntity.getId()));
distributionAddvaluePackageService.saveBatch(packageEntityList);

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

@ -38,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@ -660,6 +661,152 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}*/
}
@Override
public void checkLoadingByPackage(DistributionParcelListEntity parcelListEntity, Long deliveryId) {
//首先能够进入这个检测方法那么此包件就是进行装车了,这里对包件装车状态再次进行维护
if (parcelListEntity.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())){
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yichuku.getValue());
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
distributionParcelListService.updateById(parcelListEntity);
}
//维护此包件对应的订单装车状态
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
if (Func.isNotEmpty(stockArticleEntity)){
//查询订单的所有包件
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, stockArticleEntity.getId()));
boolean orderLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (orderLoadingFlag){
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
}else {
orderLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (!orderLoadingFlag){
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
}
}
distributionStockArticleService.updateById(stockArticleEntity);
}
//维护预约计划
List<DistributionReservationEntity> reservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(deliveryId);
if (Func.isNotEmpty(reservationEntityList) && reservationEntityList.size()>0){
for (DistributionReservationEntity reservationEntity : reservationEntityList) {
List<DistributionParcelListEntity> reservationParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationEntity.getId());
if (Func.isNotEmpty(reservationParcelListEntities)&& reservationParcelListEntities.size()>0){
boolean reservationLoadingFlag = reservationParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (reservationLoadingFlag){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
reservationLoadingFlag = reservationParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (reservationLoadingFlag){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
}else {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}
}
distributionReservationMapper.updateById(reservationEntity);
}
}
}
//维护配送计划
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
if (Func.isNotEmpty(deliveryListEntity)){
List<DistributionParcelListEntity> deliveryParcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(deliveryId);
if (Func.isNotEmpty(deliveryParcelListEntities) && deliveryParcelListEntities.size()>0){
boolean deliveryLoadingFlag = deliveryParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (deliveryLoadingFlag){
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.yizhuangche.getValue());
}else {
deliveryLoadingFlag = deliveryParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (deliveryLoadingFlag){
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.weizhuangche.getValue());
}else {
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.bunfenzhuangche.getValue());
}
}
distributionDeliveryListMapper.updateById(deliveryListEntity);
}
}
}
@Override
public void checkLoadingByDelivery(Long deliveryId) {
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
if (Func.isNotEmpty(deliveryListEntity)){
List<DistributionParcelListEntity> deliveryParcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(deliveryId);
boolean deliveryLoadingFlag = deliveryParcelListEntities.stream().allMatch(p->p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (deliveryLoadingFlag){
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.yizhuangche.getValue());
}else {
deliveryLoadingFlag = deliveryParcelListEntities.stream().allMatch(p->p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (deliveryLoadingFlag){
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.weizhuangche.getValue());
}else {
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.bunfenzhuangche.getValue());
}
}
distributionDeliveryListMapper.updateById(deliveryListEntity);
}
List<DistributionReservationEntity> reservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(deliveryId);
if (Func.isNotEmpty(reservationEntityList) && reservationEntityList.size()>0){
for (DistributionReservationEntity reservationEntity : reservationEntityList) {
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationEntity.getId());
Map<Long, List<DistributionParcelListEntity>> order = parcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getStockArticleId));
order.forEach((k,v)->{
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(k);
List<DistributionParcelListEntity> stockArticlePackageList = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, k));
if (stockArticlePackageList.size() == v.size()){
boolean orderLoadingFlag = v.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (orderLoadingFlag){
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
}else {
orderLoadingFlag = v.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (!orderLoadingFlag){
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
}
}
}else {
boolean orderbufenLoadingFlag = v.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (orderbufenLoadingFlag){
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
}
}
distributionStockArticleService.updateById(stockArticleEntity);
});
boolean reservationLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (reservationLoadingFlag){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
reservationLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (reservationLoadingFlag){
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
}else {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}
}
distributionReservationMapper.updateById(reservationEntity);
}
}
}
@Override
public void checkOrderLoadingStatus(DistributionParcelListEntity parcelListEntity) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getStockArticleId, parcelListEntity.getStockArticleId()));
boolean flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (flag){
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
}else {
flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (!flag){
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
}
}
distributionStockArticleService.updateById(stockArticleEntity);
}
/**
* 自提签收片段是否签收完全
@ -927,10 +1074,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//这里表示所有的包件都是已装车,进行订单状态修改已出库
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
} else {
flag = parcelListEntityList.stream().allMatch(pack -> pack.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.daiyuyue.getValue()));
if (flag) {
flag = parcelListEntityList.stream().allMatch(pack -> pack.getOrderPackageReservationStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (!flag) {
//全部未装车
stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue());
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
} else {
//部分预约
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());

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

@ -58,6 +58,7 @@ import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.Inventory.InventoryLoadingStatusConstant;
import org.springblade.common.constant.delivery.DeliveryLoadingStatusConstant;
import org.springblade.common.constant.delivery.DeliveryStatusConstant;
import org.springblade.common.constant.loading.LoadingAbnormalAuditingStatusConstant;
import org.springblade.common.constant.loading.LoadingIsInsertConstant;
import org.springblade.common.constant.loading.LoadingStatusConstant;
import org.springblade.common.constant.order.OrderStatusConstant;
@ -78,6 +79,7 @@ import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
@ -144,6 +146,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
private final IBasicPrintTemplateClient basicPrintTemplateClient;
private final IWarehouseTrayTypeClient warehouseTrayTypeClient;
private final IDistributionLoadscanAbnormalService distributionLoadscanAbnormalService;
// private final BladeRedis redis;
@Override
public IPage<DistributionDeliveryListEntity> selectDistributionDeliveryListPage(IPage<DistributionDeliveryListEntity> page, DistributionDeliveryListDTO distributionDeliveryList) {
@ -422,33 +427,32 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
if (distrilbutionloadingscanDTO.getType() == 1){
if (distrilbutionloadingscanDTO.getType() == 1) {
List<DistributionParcelListEntity> distributionParcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListEntities.stream().filter(p -> Func.equals(p.getOrderPackageCode(), distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList());
if (parcelListEntityList.size() == 1){
if (parcelListEntityList.size() == 1) {
//在配送任务中存在该包件的计划
List<DistributionLoadscanEntity> distributionLoadscanEntitiesflag = distributionLoadscanMapper.selectList(new QueryWrapper<DistributionLoadscanEntity>().lambda()
.eq(DistributionLoadscanEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
.eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
if (Func.isNotEmpty(distributionLoadscanEntitiesflag) && distributionLoadscanEntitiesflag.size() == 1){
if (Func.isNotEmpty(distributionLoadscanEntitiesflag) && distributionLoadscanEntitiesflag.size() == 1) {
return Resp.scanSuccess("重复扫码", "重复扫码");
}
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity();
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDeliveryId())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDeliveryId())) {
loadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) {
loadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) {
loadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) {
loadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) {
loadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
}
DistributionParcelListEntity parcelListEntity = parcelListEntityList.get(0);
@ -460,15 +464,20 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
loadscanEntity.setPackageId(parcelListEntity.getId());
loadscanEntity.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
loadscanEntity.setPackageNub(parcelListEntity.getQuantity());
loadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
DistributionReservationEntity reservationEntity = distributionDeliveryListMapper.selectReservationByPackageAndDeliveryId(parcelListEntity.getOrderPackageCode(), distrilbutionloadingscanDTO.getDeliveryId());
loadscanEntity.setReservationId(reservationEntity.getId());
loadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
loadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
loadscanEntity.setScanTime(new Date());
BladeUser user = AuthUtil.getUser();
loadscanEntity.setScanUser(user.getUserName());
loadscanEntity.setLoadingId(distrilbutionloadingscanDTO.getLoadingId());
loadscanEntity.setIsAbnormalLoading("1");
//出库
warehouseUpdownTypeClient.downPackage(distrilbutionloadingscanDTO.getBarcode());
distributionLoadscanService.save(loadscanEntity);
//查询本车次是否第一次扫码,没有则更新上车时间
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
@ -476,83 +485,92 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//这里还需要一个维护状态的方法
//异步维护状态
distributionAsyncService.checkLoadingByPackage(parcelListEntity, distrilbutionloadingscanDTO.getDeliveryId());
}else if (parcelListEntityList.size() == 0){
} else if (parcelListEntityList.size() == 0) {
//查找出该包件信息
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getOne(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()));
List<DistributionReservationEntity> reservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
boolean shangpeiFlag = reservationEntityList.stream().allMatch(r -> r.getDeliveryType().equals(DistributionTypeConstant.shipie.getValue()));
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleMapper.selectById(parcelListEntity.getStockArticleId());
if (shangpeiFlag){
if (shangpeiFlag) {
List<DistributionReservationEntity> reservationEntities = reservationEntityList.stream().filter(r -> Func.isNotEmpty(r.getConsignee())
&& r.getConsignee().equals(stockArticleEntity.getCustomerName())
&& r.getDeliveryAddress().equals(stockArticleEntity.getCustomerAddress())
&& r.getDeliveryPhone().equals(stockArticleEntity.getCustomerTelephone())
&& r.getMallName().equals(stockArticleEntity.getMallName())).collect(Collectors.toList());
//查看是否存在满足条件的预约单
if (reservationEntities.size() == 1){
return R.fail(5000,"异常装车");
if (reservationEntities.size() == 1) {
return R.fail(5000, "异常装车");
// return Resp.scanFail("装车失败","程序出错,请联系张思雨");
}else {
return Resp.scanFail("装车失败","窜货");
} else {
return Resp.scanFail("装车失败", "窜货");
}
}else {
} else {
shangpeiFlag = reservationEntityList.stream().allMatch(r -> r.getDeliveryType().equals(DistributionTypeConstant.shangpei.getValue()));
if (shangpeiFlag){
if (shangpeiFlag) {
List<DistributionReservationEntity> reservationEntities = reservationEntityList.stream().filter(r -> Func.isNotEmpty(r) && r.getConsignee().equals(stockArticleEntity.getConsigneeUnit()) && r.getMallName().equals(stockArticleEntity.getMallName())).collect(Collectors.toList());
if (reservationEntities.size() == 1){
return R.fail(5000,"异常装车");
}else {
return Resp.scanFail("装车失败","窜货");
if (reservationEntities.size() == 1) {
return R.fail(5000, "异常装车");
} else {
return Resp.scanFail("装车失败", "窜货");
}
}else {
log.error("配送计划预约类型错误:{}",reservationEntityList);
} else {
log.error("配送计划预约类型错误:{}", reservationEntityList);
}
}
//不存在配送计划中,这里进行客户的判断
}
}else if (distrilbutionloadingscanDTO.getType() ==2){
} else if (distrilbutionloadingscanDTO.getType() == 2) {
TrayTypeDataVO trayTypeDataVO = warehouseTrayTypeClient.selectListByTrayCode(distrilbutionloadingscanDTO.getBarcode());
if (Func.isNotEmpty(trayTypeDataVO)){
if (Func.isNotEmpty(trayTypeDataVO)) {
List<WarehouseTrayGoodsEntity> voGoodsLsit = trayTypeDataVO.getGoodsLsit();
List<Long> trayGoodIds = voGoodsLsit.stream().filter(v -> v.getAssociationType().equals("3")).map(WarehouseTrayGoodsEntity::getAssociationId).collect(Collectors.toList());
//此时经过过滤后的包件ID和托盘上的所有包件ID数量一致,视为该托盘上的均为包件
if (voGoodsLsit.size() == trayGoodIds.size()){
if (voGoodsLsit.size() == trayGoodIds.size()) {
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.listByIds(trayGoodIds);
boolean trayLoadingStatus = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (trayLoadingStatus){
return Resp.scanFail("托盘装车完毕","托盘装车完毕");
// if (trayLoadingStatus){
// return Resp.scanFail("托盘装车完毕","托盘货物已装车完毕");
// }
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
.ne(DistributionLoadscanEntity::getScanStatus, 1)
.eq(DistributionLoadscanEntity::getTrayNo, distrilbutionloadingscanDTO.getBarcode()));
if (Func.isNotEmpty(loadscanEntityList) && loadscanEntityList.size() > 0 && trayLoadingStatus) {
return Resp.scanFail("重复扫描", "重复扫描");
}
if (Func.isEmpty(parcelListEntities) || parcelListEntities.size() <= 0){
return Resp.scanFail("操作失败","该托盘上无货物信息");
if (Func.isEmpty(parcelListEntities) || parcelListEntities.size() <= 0) {
return Resp.scanFail("操作失败", "该托盘上无货物信息");
}
if (Func.isNotEmpty(distrilbutionloadingscanDTO.getReservationId())){
if (Func.isNotEmpty(distrilbutionloadingscanDTO.getReservationId())) {
//存在客户 这里就是针对客户进行的整托装车
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId());
Map<Long, DistributionParcelListEntity> parcelListEntityMap = parcelListEntityList.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, Function.identity(), (k1, k2) -> k2));
boolean reservationFlag = parcelListEntities.stream().allMatch(p -> Func.isNotEmpty(parcelListEntityMap.get(p.getId())));
if (reservationFlag){
if (reservationFlag) {
List<DistributionLoadscanEntity> reservationLoadscanEntities = new ArrayList<>();
for (DistributionParcelListEntity parcelListEntity : parcelListEntities) {
if (parcelListEntity.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())){
if (parcelListEntity.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())) {
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yichuku.getValue());
distributionParcelListService.updateById(parcelListEntity);
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity();
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDeliveryId())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDeliveryId())) {
loadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) {
loadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) {
loadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) {
loadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) {
loadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
}
loadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
@ -572,51 +590,57 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
loadscanEntity.setMsg("司机按照预约整托装车");
loadscanEntity.setTrayNo(trayTypeDataVO.getTrayCode());
reservationLoadscanEntities.add(loadscanEntity);
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新签收表的装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
}
//TODO 需要一个维护状态的异步方法
}
distributionLoadscanService.saveBatch(reservationLoadscanEntities);
//这里则进行整托装车的数据构建
}else {
return Resp.scanFail("整托装车失败","存在其他客户货物");
} else {
return Resp.scanFail("整托装车失败", "存在其他客户货物");
}
}else {
} else {
//不存在客户 这里就是针对配送任务进行的整托装车
List<DistributionParcelListEntity> deliveryPackageList = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
Map<Long, DistributionParcelListEntity> deliveryPackageMap = deliveryPackageList.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, Function.identity(), (k1, k2) -> k2));
boolean delivaryFlag = parcelListEntities.stream().allMatch(p -> Func.isNotEmpty(deliveryPackageMap.get(p.getId())));
if (delivaryFlag){
if (delivaryFlag) {
List<DistributionLoadscanEntity> deliveryLoadscanEntities = new ArrayList<>();
for (DistributionParcelListEntity parcelListEntity : parcelListEntities) {
if (parcelListEntity.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())){
if (parcelListEntity.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())) {
//查询出这个包件属于哪个客户
DistributionReservationEntity reservationEntity = distributionDeliveryListMapper.selectReservationByPackageAndDeliveryId(parcelListEntity.getOrderPackageCode(), distrilbutionloadingscanDTO.getDeliveryId());
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yichuku.getValue());
distributionParcelListService.updateById(parcelListEntity);
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity();
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDeliveryId())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDeliveryId())) {
loadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) {
loadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) {
loadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) {
loadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())){
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) {
loadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
}
loadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
loadscanEntity.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
//查询出这个包件属于哪个客户
loadscanEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId());
loadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
loadscanEntity.setTrainNumber(distributionDeliveryListEntity.getTrainNumber());
loadscanEntity.setPackageNub(parcelListEntity.getQuantity());
loadscanEntity.setPackageId(parcelListEntity.getId());
loadscanEntity.setReservationId(reservationEntity.getId());
loadscanEntity.setScanTime(new Date());
BladeUser user = AuthUtil.getUser();
loadscanEntity.setScanUser(user.getUserName());
@ -633,16 +657,18 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//更新签收表的装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
}
//TODO 需要一个维护状态的异步方法
}
distributionLoadscanService.saveBatch(deliveryLoadscanEntities);
//这里则进行整托装车的数据构建
}else {
return Resp.scanFail("整托装车失败","存在其他客户货物");
} else {
return Resp.scanFail("整托装车失败", "存在其他客户货物");
}
}
}else {
log.error("托盘存放货物类型不单一:{}",trayTypeDataVO);
//进行装车状态维护
//TODO 需要一个维护状态的异步方法
distributionAsyncService.checkLoadingByDelivery(distrilbutionloadingscanDTO.getDeliveryId());
} else {
log.error("托盘存放货物类型不单一:{}", trayTypeDataVO);
}
}
}
@ -3465,40 +3491,41 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
String barcode = distrilbutionloadingscanDTO.getBarcode();
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distrilbutionloadingscanDTO.getReservationId());
List<DistributionParcelListEntity> collect = null;
if (Func.isEmpty(barcode)){
if (Func.isEmpty(barcode)) {
//没有包件码 这里进行的是检测为装车操作
collect = parcelListEntities.stream().filter(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).collect(Collectors.toList());
collect = parcelListEntities.stream().filter(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).collect(Collectors.toList());
}else {
} else {
//查询该客户下的相关保健信息
List<DistributionReservationPackageEntity> reservationPackageEntityList = distributionReservationPackageMapper.selectList(Wrappers.<DistributionReservationPackageEntity>query().lambda()
.eq(DistributionReservationPackageEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())
.like(DistributionReservationPackageEntity::getPacketBarCode, distrilbutionloadingscanDTO.getBarcode()));
if (Func.isNotEmpty(reservationPackageEntityList) && reservationPackageEntityList.size()>0){
if (Func.isNotEmpty(reservationPackageEntityList) && reservationPackageEntityList.size() > 0) {
List<Long> longs = reservationPackageEntityList.stream().map(DistributionReservationPackageEntity::getParceListId).collect(Collectors.toList());
collect = distributionParcelListService.listByIds(longs);
collect = distributionParcelListService.listByIds(longs);
}
}
return R.data(200,collect,"");
return R.data(200, collect, "");
}
@Override
public R patchworkInventoryCode(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
List<DisStockListDetailEntity> detailEntities = distributionReservationMapper.selectInventoryListByReservation(distrilbutionloadingscanDTO.getReservationId());
List<DisStockListDetailEntity> collect = null;
if (Func.isEmpty(distrilbutionloadingscanDTO.getBarcode())){
if (Func.isEmpty(distrilbutionloadingscanDTO.getBarcode())) {
//检测未装车的库存品信息
collect = detailEntities.stream().filter(i -> Func.isNotEmpty(i.getStockPackageCode()) && i.getStockLockingStatus().equals(InventoryLoadingStatusConstant.weizhuangche.getValue())).collect(Collectors.toList());
}else {
collect = detailEntities.stream().filter(i -> Func.isNotEmpty(i.getStockPackageCode()) && i.getStockLockingStatus().equals(InventoryLoadingStatusConstant.weizhuangche.getValue())).collect(Collectors.toList());
} else {
collect = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda().like(DisStockListDetailEntity::getStockPackageCode, distrilbutionloadingscanDTO.getBarcode()).eq(DisStockListDetailEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()));
}
return R.data(200,collect,"");
return R.data(200, collect, "");
}
/**
* 批量打印预约单
*
* @param ids
* @return
*/
@ -3517,11 +3544,11 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
for (String s : idArray) {
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(Long.valueOf(s));
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> printBatchByReservation:distributionReservationEntity {}",distributionReservationEntity);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> printBatchByReservation:distributionReservationEntity {}", distributionReservationEntity);
Map<String, Object> map = new HashMap<>();
buildMapData(map, distributionReservationEntity);
map.put("承运商", "");
map.put("配送仓库","");
map.put("配送仓库", "");
// TODO 查询配送单的时间
map.put("出库时间", "");
@ -3547,9 +3574,158 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
public IPage<DistributionAppReservationVO> getAppDeliveryreservationTraysPage(IPage<DistributionAppReservationVO> page, DistributionAppDeliveryListDTO distributionDeliveryList) {
// ---------------------------------2023-09-25 新增托盘详情---------------------------------------------------------------------------------------
List<DistributionAppReservationVO> customList = distributionDeliveryInfoMapper.selectAppTarysListPage(page, Long.parseLong(distributionDeliveryList.getReservationId()));
customList.forEach(c -> {
TrayTypeDataVO trayTypeDataVO = warehouseTrayTypeClient.selectListByTrayCode(c.getTrayCode());
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.listByIds(trayTypeDataVO.getGoodsLsit());
c.setPackageList(DistributionParcelListWrapper.build().listVO(parcelListEntities));
});
return page.setRecords(customList);
}
@Override
public R abnormalLoading(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isEmpty(deliveryListEntity)) {
log.error("配送计划null:{}", deliveryListEntity);
return Resp.scanFail("操作失败", "服务器正忙...");
}
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()));
if (Func.isNotEmpty(parcelListEntities) && parcelListEntities.size() == 1){
DistributionParcelListEntity parcelListEntity = parcelListEntities.get(0);
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
if (Func.isEmpty(stockArticleEntity)){
log.error("###############订单异常:{}",stockArticleEntity);
return Resp.scanFail("操作失败", "服务器正忙...");
}
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO();
if (StringUtils.isBlank(distrilbutionloadingscanDTO.getLoadingId())) {
if (deliveryListEntity.getKind().equals("1")) {
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper<DistributionDeliverySelfEntity>().lambda()
.eq(DistributionDeliverySelfEntity::getIsMaster, ServiceConstant.IS_MASTER_YES)
.eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
);
} else {
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper<DistributionDeliveryTripartiteEntity>().lambda()
.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())
);
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
} else {
if (deliveryListEntity.getKind().equals("1")) {
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectById(distrilbutionloadingscanDTO.getLoadingId());
} else {
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectById(distrilbutionloadingscanDTO.getLoadingId());
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
}
List<DistributionLoadscanAbnormalEntity> loadscanAbnormalEntityList = distributionLoadscanAbnormalService.list(Wrappers.<DistributionLoadscanAbnormalEntity>query().lambda()
.eq(DistributionLoadscanAbnormalEntity::getDeliveryListId, distrilbutionloadingscanDTO.getDeliveryId())
.eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode())
.ne(DistributionLoadscanAbnormalEntity::getAuditingStatus, "1"));
if (Func.isNotEmpty(loadscanAbnormalEntityList) && loadscanAbnormalEntityList.size() == 1){
return Resp.scanFail("操作失败", "重复添加");
}
DistributionLoadscanAbnormalEntity distributionLoadscanAbnormalEntity = new DistributionLoadscanAbnormalEntity();
BladeUser user = AuthUtil.getUser();
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity();
DistributionReservationEntity reservationEntity = null;
switch (deliveryListEntity.getType()) {
case "1":
//商配 需要满足订单的收货单位和当前配送计划中的预约客户名称一样
List<DistributionReservationEntity> shangpeiReservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
Map<String, DistributionReservationEntity> reservationEntityMap = shangpeiReservationEntityList.stream().filter(r -> Func.isNotEmpty(r.getConsignee())).collect(Collectors.toMap(DistributionReservationEntity::getReceivingUnit, Function.identity(), (k1, k2) -> k2));
if (Func.isEmpty(reservationEntityMap.get(stockArticleEntity.getConsigneeUnit()))){
return Resp.scanFail("操作失败", "配送任务无该客户");
}
reservationEntity = reservationEntityMap.get(stockArticleEntity.getConsigneeUnit());
//查询是否已经异常装车了
//构建异常装车数据
//完成对该客户的异常装车数据和数量维护
break;
case "2":
List<DistributionReservationEntity> shipeiReservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
Map<String, DistributionReservationEntity> shipeiReservationEntityMap = shipeiReservationEntityList.stream().collect(Collectors.toMap(DistributionReservationEntity::getConsignee, Function.identity(), (k1, k2) -> k2));
DistributionReservationEntity distributionReservationEntity = shipeiReservationEntityMap.get(stockArticleEntity.getCustomerName());
if (Func.isEmpty(distributionReservationEntity)){
return Resp.scanFail("操作失败","配送任务无该客户");
}
if (distributionReservationEntity.getDeliveryAddress().equals(stockArticleEntity.getCustomerAddress())
|| stockArticleEntity.getCustomerTelephone().equals(distributionReservationEntity.getDeliveryPhone())
|| distributionReservationEntity.getMallName().equals(stockArticleEntity.getMallName())){
return Resp.scanFail("操作失败","配送任务无该客户");
}
reservationEntity = distributionReservationEntity;
//市配
break;
}
distributionLoadscanAbnormalEntity.setAuditingStatus(LoadingAbnormalAuditingStatusConstant.daishenhe.getValue());
distributionLoadscanAbnormalEntity.setTrainNumber(deliveryListEntity.getTrainNumber());
distributionLoadscanAbnormalEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
distributionLoadscanAbnormalEntity.setDriverId(Long.parseLong(distributionDeliverySelfEntity.getDriverId()));
distributionLoadscanAbnormalEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
distributionLoadscanAbnormalEntity.setDeliveryListId(deliveryListEntity.getId());
distributionLoadscanAbnormalEntity.setReservationId(reservationEntity.getId());
distributionLoadscanAbnormalEntity.setDeliveryType(deliveryListEntity.getType());
distributionLoadscanAbnormalEntity.setScanUser(user.getUserName());
distributionLoadscanAbnormalEntity.setScanTime(new Date());
distributionLoadscanAbnormalEntity.setLoadingQuantity(parcelListEntity.getQuantity());
distributionLoadscanAbnormalEntity.setPackageCode(parcelListEntity.getOrderPackageCode());
distributionLoadscanAbnormalEntity.setPackageId(parcelListEntity.getId());
distributionLoadscanAbnormalService.save(distributionLoadscanAbnormalEntity);
//修改包件状态 维护订单状态
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yichuku.getValue());
distributionParcelListService.updateById(parcelListEntity);
//添加包件数据至扫描表中
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDeliveryId())) {
loadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) {
loadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) {
loadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) {
loadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId());
}
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) {
loadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
}
loadscanEntity.setTrainNumber(deliveryListEntity.getTrainNumber());
loadscanEntity.setScanStatus(LoadingStatusConstant.saomiao.getValue());
loadscanEntity.setScanType("1");
loadscanEntity.setOneClick(1);
loadscanEntity.setPackageId(parcelListEntity.getId());
loadscanEntity.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
loadscanEntity.setPackageNub(parcelListEntity.getQuantity());
// DistributionReservationEntity reservationEntity = distributionDeliveryListMapper.selectReservationByPackageAndDeliveryId(parcelListEntity.getOrderPackageCode(), distrilbutionloadingscanDTO.getDeliveryId());
loadscanEntity.setReservationId(reservationEntity.getId());
loadscanEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
loadscanEntity.setOrderId(parcelListEntity.getStockArticleId());
loadscanEntity.setScanTime(new Date());
loadscanEntity.setScanUser(user.getUserName());
loadscanEntity.setLoadingId(distrilbutionloadingscanDTO.getLoadingId());
loadscanEntity.setIsAbnormalLoading("1");
//出库
warehouseUpdownTypeClient.downPackage(distrilbutionloadingscanDTO.getBarcode());
//查询本车次是否第一次扫码,没有则更新上车时间
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新签收表的装车数量
Integer j = distributionSignforMapper.updateloadByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//异步维护此异常装车包件的订单状态
distributionAsyncService.checkOrderLoadingStatus(parcelListEntity);
}else {
log.error("#################出现相同的包件信息:{}",parcelListEntities);
return Resp.scanFail("操作失败", "服务器正忙...");
}
return Resp.scanSuccess("操作成功","操作成功");
}
public Map<String, String> getDriverCar(String kind, Long deliveryListEntityId) {
Map<String, String> map = new HashMap<>();
String dirverName = null;
@ -3767,7 +3943,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
map.put("备注", distributionReservationEntity.getRemarks());
log.debug(">>>> distributionReservationEntity {}",distributionReservationEntity);
log.debug(">>>> distributionReservationEntity {}", distributionReservationEntity);
buildMapData(map, distributionReservationEntity);
map.put("承运商", byId.getDistributionCompany());
map.put("配送仓库", byId.getWarehouseName());
@ -3797,13 +3973,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
/**
* 构建预约数据
*
* @param map
* @param distributionReservationEntity
*/
private void buildMapData(Map<String, Object> map,DistributionReservationEntity distributionReservationEntity ){
private void buildMapData(Map<String, Object> map, DistributionReservationEntity distributionReservationEntity) {
map.put("配送单号", distributionReservationEntity.getReservationCode());
String fileTypeName = QRCodeUtil.createCodeToFile(distributionReservationEntity.getReservationCode());
map.put("配送单二维码",QRCodeUtil.getEmpAutograph(fileTypeName));
map.put("配送单二维码", QRCodeUtil.getEmpAutograph(fileTypeName));
// todo 查询运单的收货人电话
map.put("商场名称", distributionReservationEntity.getMallName());

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

@ -816,7 +816,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//设置车次号
// String today = DateUtil.today();
// String random = Func.random(7, RandomType.ALL);
distributionDeliveryListEntity.setTrainNumber(trainNumberMa());
String numberMa = trainNumberMa();
distributionDeliveryListEntity.setTrainNumber(numberMa);
distributionDeliveryListEntity.setFee(BigDecimal.ZERO);
distributionDeliveryListEntity.setPrice(BigDecimal.ZERO);
distributionDeliveryListService.save(distributionDeliveryListEntity);
@ -887,7 +888,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setStockupStatus(ReservationStockupStatusConstant.daibeihuo.getValue());
}
DistributionSignforEntity distributionSignforEntity = new DistributionSignforEntity();
distributionSignforEntity.setTrainNumber(trainNumberMa());
// String trainNumberMa = trainNumberMa();
distributionSignforEntity.setTrainNumber(numberMa);
distributionSignforEntity.setReservationId(reservationEntity.getId());
distributionSignforEntity.setDeliveryId(distributionDeliveryListEntity.getId());
distributionSignforEntity.setSigningStatus(SignforStatusConstant.daiqianshou.getValue());
@ -1605,6 +1607,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setStockupStatus(ReservationStockupStatusConstant.daibeihuo.getValue());
reservationEntity.setPeriodOfTime(ServiceConstant.RESERVATION_PERIOED_TIME_DAY);
reservationEntity.setStockArticleId(String.join(",", orderNumber));
reservationEntity.setReceivingUnit(k);
reservationEntity.setServiceNumber(String.join(",", serviceNumber));
reservationEntity.setWarehouseName(String.join(",", warehouseName));
reservationEntity.setWaybillNo(String.join(",", waybillNo));

Loading…
Cancel
Save