Browse Source

签收调整、滞留扫描接口

training
kilo 1 year ago
parent
commit
e71ec1b5b2
  1. 2
      blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java
  2. 47
      blade-biz-common/src/main/java/org/springblade/common/constant/retention/RetentionTypeConstant.java
  3. 16
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionDeliveryListClient.java
  4. 84
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionRetentionScanVo.java
  5. 12
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseRetentionRecordEntity.java
  6. 12
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseRetentionScanEntity.java
  7. 11
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseRetentionScanClient.java
  8. 7
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseRetentionRecordVO.java
  9. 35
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionDeliveryAppController.java
  10. 26
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java
  11. 71
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionRetentionScanDTO.java
  12. 13
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/DistrilbutionloadingscanDTO.java
  13. 11
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionDeliveryListClient.java
  14. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml
  15. 18
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java
  16. 71
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  17. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryTripartiteMapper.java
  18. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryTripartiteMapper.xml
  19. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  20. 27
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  21. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java
  22. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java
  23. 144
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  24. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  25. 93
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseRetentionApiController.java
  26. 23
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/RetentionDTO.java
  27. 14
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/RetentionDistributionListDetailDTO.java
  28. 11
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/RetentionParcelListDTO.java
  29. 10
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/RetentionZeroParcelDTO.java
  30. 6
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseRetentionScanClient.java
  31. 1
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseRetentionRecordMapper.java
  32. 1
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseRetentionRecordMapper.xml
  33. 14
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseRetentionRecordService.java
  34. 125
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java
  35. 4
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/wrapper/WarehouseRetentionRecordWrapper.java
  36. 55
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/wrapper/WarehouseRetentionScanWrapper.java

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

@ -104,4 +104,6 @@ public class DictBizConstant {
public static final String ORDER_PACKAGE_LOADING_STATUS = "order_package_loading_status";//预约签收状态
// --------------2023-10-12 ---------------------
public static final String WAREHOUSE_QUEST_STATUS = "warehouse_quest_status"; //盘点任务
// --------------2023-11-04 ---------------------
public static final String WAREHOUSE_RETENTION_TYPE = "warehouse_retention_type"; //滞留类型
}

47
blade-biz-common/src/main/java/org/springblade/common/constant/retention/RetentionTypeConstant.java

@ -0,0 +1,47 @@
package org.springblade.common.constant.retention;
/**
* 订单冻结状态枚举
* 对应码表 freeze_status
* @author pref
*/
public enum RetentionTypeConstant {
zhuangchezhiliu("装车滞留",1),
peisongzhiliu("配送滞留",2),
chukuzhiliu("出库滞留",3),
quxiaozhiliu("取消滞留",4);
/**
* 状态
*/
private String name;
/**
*
*/
private Integer value;
private RetentionTypeConstant(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;
}
}

16
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionDeliveryListClient.java

@ -16,13 +16,18 @@
*/
package com.logpm.distribution.feign;
import com.logpm.distribution.entity.DistributionDeliveryDetailsEntity;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.vo.DistributionDeliveryListVO;
import com.logpm.distribution.vo.DistributionDeliverySelfVO;
import org.springblade.common.constant.ModuleNameConstant;
import org.springblade.core.mp.support.BladePage;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 配送管理 Feign接口类
*
@ -45,6 +50,15 @@ public interface IDistributionDeliveryListClient {
* @return BladePage
*/
@GetMapping(TOP)
BladePage<DistributionDeliveryListEntity> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
BladePage<DistributionDeliveryListEntity> deliveryListTop(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
/**
* 根据配送任务ID查询配送司机信息
* @param deliveryId
* @return
*/
@GetMapping(TOP+"/getDeliveryDriverInfo")
DistributionDeliveryListVO getDeliveryDriverInfo(@RequestParam("current") Long deliveryId);
}

84
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionRetentionScanVo.java

@ -0,0 +1,84 @@
package com.logpm.distribution.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 滞留扫描对象
*/
@Data
//@EqualsAndHashCode(callSuper = true)
public class DistributionRetentionScanVo {
/**
* 预约Id
*/
private Long reservationId;
/**
* 预约Id
*/
private String reservationCode;
/**
* 订单Id
*/
private Long orderId;
/**
* 订单自编码
*/
private String orderCode;
/**
* 订单Id
*/
private Long inventoryId;
/**
* 物料编码
*/
private String materialNumber;
/**
* 物料名称
*/
private String materialName;
/**
* 包件ID
*/
private Long orderPackageId;
/**
* 包条码
*/
private String orderPackageCode;
/**
* 滞留数量
*/
private Integer retentionQuantity;
/**
* 类型
*/
private Integer conditions;
/**
* 配送ID
*/
private Long deliveryId;
/**
* 配送车次
*/
private String trainNumber;
}

12
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseRetentionRecordEntity.java

@ -138,4 +138,16 @@ public class WarehouseRetentionRecordEntity extends TenantEntity {
@ApiModelProperty(value = "取消滞留备注")
private String cancelRemark;
/**
* 任务Id
*/
@ApiModelProperty(value = "任务Id")
private Long taskId;
/**
* 滞留数量
*/
@ApiModelProperty(value = "滞留数量")
private Integer retentionQuantity;
}

12
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseRetentionScanEntity.java

@ -38,7 +38,7 @@ import java.io.Serializable;
@Data
@TableName("logpm_warehouse_retention_scan")
@ApiModel(value = "WarehouseRetentionRecord对象", description = "滞留扫描记录")
public class WarehouseRetentionScanEntity extends TenantEntity implements Serializable {
public class WarehouseRetentionScanEntity extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
@ -158,7 +158,7 @@ public class WarehouseRetentionScanEntity extends TenantEntity implements Serial
* 滞留扫描操作人Id
*/
@ApiModelProperty(value = "滞留扫描操作人Id")
private String retentionScanUserId;
private Long retentionScanUserId;
/**
* 滞留操作备注
*/
@ -178,6 +178,12 @@ public class WarehouseRetentionScanEntity extends TenantEntity implements Serial
* 配送任务ID
*/
@ApiModelProperty(value = "配送任务ID")
private Long deliveryListId;
private Long deliveryId;
/**
* 配送任务ID
*/
@ApiModelProperty(value = "配送任务ID")
private Long refId;
}

11
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseRetentionScanClient.java

@ -19,8 +19,11 @@ package com.logpm.warehouse.feign;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity;
import org.springblade.core.mp.support.BladePage;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
@ -47,4 +50,12 @@ public interface IWarehouseRetentionScanClient {
@GetMapping(TOP)
BladePage<WarehouseRetentionScanEntity> retentionScanTop(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
/**
* 保存扫描记录
* @return BladePage
*/
@PostMapping(TOP+"/saveRetentionScan")
R saveRetentionScan(@RequestBody WarehouseRetentionScanEntity warehouseRetentionScanEntity);
}

7
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseRetentionRecordVO.java

@ -20,6 +20,8 @@ import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 滞留记录 视图实体类
*
@ -31,4 +33,9 @@ import lombok.EqualsAndHashCode;
public class WarehouseRetentionRecordVO extends WarehouseRetentionRecordEntity {
private static final long serialVersionUID = 1L;
private List<WarehouseRetentionScanVO> retentionScanVOList;
private String retentionTypeName;
}

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

@ -5,9 +5,11 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.distribution.bean.Resp;
import com.logpm.distribution.dto.app.DistributionAppDeliveryListDTO;
import com.logpm.distribution.dto.app.DistrilbutionloadingscanDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.service.IDistributionDeliveryInfoService;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.vo.DisStockListDetailVO;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.app.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -267,4 +269,37 @@ public class DistributionDeliveryAppController {
}
/**
* 扫描查询配送任务下的包件信息
*/
@PostMapping("/retentionScan")
@ApiOperationSupport(order = 11)
public R retentionScan(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R r = distributionDeliveryListService.retentionScan(distrilbutionloadingscanDTO);
return r;
}
/**
* 扫描查询配送任务下的包件信息
*/
@PostMapping("/getZeroPackageInfo")
@ApiOperationSupport(order = 11)
public R getZeroPackageInfo(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R distributionParcelListVOS = distributionDeliveryListService.getZeroPackageInfo(distrilbutionloadingscanDTO);
return R.data(distributionParcelListVOS);
}
/**
* 扫描查询配送任务下的包件信息
*/
@PostMapping("/getInventoryInfo")
@ApiOperationSupport(order = 11)
public R getInventoryInfo(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R r = distributionDeliveryListService.getInventoryInfo(distrilbutionloadingscanDTO);
return R.data(r);
}
}

26
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java

@ -255,13 +255,10 @@ public class DistributionSignforController extends BladeController {
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入distributionSignfor")
public R update(@Valid @RequestBody DistributionSignforEntity distributionSignfor) {
distributionSignfor.setSigneeId(AuthUtil.getUser().getUserId());
distributionSignfor.setSigneeName(AuthUtil.getUser().getUserName());
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
distributionSignfor.setSigningTime(sdf.format(date));
return R.status(distributionSignforService.updateById(distributionSignfor));
public R update(@Valid @RequestBody DistributionSignforDTO distributionSignfor) {
R r = distributionSignforService.updateSign(distributionSignfor);
// return R.status(distributionSignforService.updateById(distributionSignfor));
return r;
}
/**
@ -314,4 +311,19 @@ public class DistributionSignforController extends BladeController {
}
// /**
// * 签收管理 修改签收照片信息
// */
// @PutMapping("/updatePCPicture")
// @ApiOperationSupport(order = 4)
// @ApiOperation(value = "修改签收照片信息", notes = "修改签收照片信息")
// public R updatePCPicture(@Valid @RequestBody DistributionSignforDTO distributionSignfor) {
// if(ObjectUtil.isNotEmpty(distributionSignfor.getReservationId())){
// return R.data(distributionSignforService.updatePicture(distributionSignfor));
// }else {
// return R.fail(3002,"参数不能为空不对!!");
// }
// }
}

71
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionRetentionScanDTO.java

@ -0,0 +1,71 @@
package com.logpm.distribution.dto;
import lombok.Data;
/**
* 滞留扫描对象
*/
@Data
//@EqualsAndHashCode(callSuper = true)
public class DistributionRetentionScanDTO {
/**
* 预约Id
*/
private Long reservationId;
/**
* 预约Id
*/
private String reservationCode;
/**
* 订单Id
*/
private Long orderId;
/**
* 订单自编码
*/
private Long orderCode;
/**
* 订单Id
*/
private Long inventoryId;
/**
* 物料编码
*/
private String materialNumber;
/**
* 物料名称
*/
private String materialName;
/**
* 包件ID
*/
private Long orderPackageId;
/**
* 包条码
*/
private Long orderPackageCode;
/**
* 滞留数量
*/
private Long retentionQuantity;
/**
* 类型
*/
private Integer conditions;
}

13
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/DistrilbutionloadingscanDTO.java

@ -45,6 +45,12 @@ public class DistrilbutionloadingscanDTO {
@ApiModelProperty(value = "预约Id")
private Long orderId;
/**
* 订单自编码
*/
@ApiModelProperty(value = "预约Id")
private String orderCode;
// /**
// * 扫描类型
@ -88,6 +94,13 @@ public class DistrilbutionloadingscanDTO {
// @NotEmpty(message = "扫描物品不能为空")
private Integer type;
/**
* 滞留扫描类型
*/
@ApiModelProperty(value = "扫描物品(1-包条,2-订单,3-托盘)")
// @NotEmpty(message = "扫描物品不能为空")
private Integer retentionType;
/**
* 是否库存品
*/

11
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionDeliveryListClient.java

@ -19,6 +19,8 @@ package com.logpm.distribution.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.vo.DistributionDeliveryListVO;
import com.logpm.distribution.vo.DistributionDeliverySelfVO;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
@ -27,6 +29,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
* 配送管理 Feign实现类
*
@ -42,7 +46,7 @@ public class DistributionDeliveryListClient implements IDistributionDeliveryList
@Override
@GetMapping(TOP)
public BladePage<DistributionDeliveryListEntity> top(Integer current, Integer size) {
public BladePage<DistributionDeliveryListEntity> deliveryListTop(Integer current, Integer size) {
Query query = new Query();
query.setCurrent(current);
query.setSize(size);
@ -50,4 +54,9 @@ public class DistributionDeliveryListClient implements IDistributionDeliveryList
return BladePage.of(page);
}
@Override
public DistributionDeliveryListVO getDeliveryDriverInfo(Long deliveryId) {
return distributionDeliveryListService.getDeliveryList(deliveryId);
}
}

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml

@ -235,6 +235,8 @@
ldsa.customer_name,
ldsa.customer_telephone,
ldsa.customer_address,
ldsa.total_number,
ldsa.hand_quantity,
ldrs.reservation_num AS deliveryNumber,
ldsa.description_goods descriptionGoods,
(
@ -278,7 +280,7 @@
( select sum(loaded_nub) FROM
logpm_distribution_loadscan AS ldl
WHERE ldl.order_id=ldrs.stock_article_id and ldl.scan_status != 1 and ldl.reservation_id = lds.reservation_id
) AS loadingNumber ,
) AS loadingNumber,
( select count(*) FROM
logpm_distribution_stock AS lstock
WHERE lstock.stock_article=ldrs.stock_article_id

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

@ -410,4 +410,22 @@ public interface DistributionDeliveryListMapper extends BaseMapper<DistributionD
* @return
*/
List<DistributionParcelNumberVO> selectDeliveryZeroOrderDetail(@Param("orderId") Long orderId,@Param("deliveryListId") Long deliveryId);
/**
* 查询滞留库存品包件
* @param stockPackageCode
* @param deliveryId
* @return
*/
DistributionRetentionScanVo selectRetentionInventoryPackage(@Param("stockPackageCode") String stockPackageCode,@Param("deliveryId") Long deliveryId);
/**
* 查询滞留包件细腻系
* @param orderPackageCode
* @param deliveryId
* @return
*/
DistributionRetentionScanVo selectRetentionPackage(@Param("orderPackageCode")String orderPackageCode,@Param("deliveryId") Long deliveryId);
List<DistributionRetentionScanVo> selectRetentionZeroPackage(@Param("deliveryId")Long deliveryId, @Param("orderCode")String barcode);
}

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

@ -1590,5 +1590,76 @@
WHERE
ldrs.stock_article_id = #{orderId} AND lddl.id=#{deliveryListId} and ldrs.stock_article_status in ('1','3') AND ldrzp.zero_package_status IN ( '1', '3' )
</select>
<select id="selectRetentionInventoryPackage"
resultType="com.logpm.distribution.vo.DistributionRetentionScanVo">
SELECT
lddl.id,
ldr.id AS reservationId,
lddl.train_number AS trainNumber,
ldr.reservation_code AS reservationCode,
ldsld.id AS orderPackageId,
ldsld.stock_package_code AS orderPackageCode,
ldsld.stock_list_id AS inventoryId,
ldsld.num AS reservationQuantity,
ldsl.cargo_number AS materialNumber,
ldsl.description_goods AS materialName,
ldsl.incoming_batch AS 入库批次
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_stocklist AS ldrs ON ldrs.reservation_id = ldr.id
LEFT JOIN logpm_distribution_stock_list AS ldsl ON ldsl.id = ldrs.stocklist_id
INNER JOIN logpm_dis_stock_list_detail AS ldsld ON ldsld.stock_list_id = ldrs.stocklist_id and ldsld.reservation_id = ldr.id
WHERE lddl.id=#{deliveryId} and ldrs.stock_list_status in ('1','2') and ldsld.stock_package_code =#{stockPackageCode}
</select>
<select id="selectRetentionPackage" resultType="com.logpm.distribution.vo.DistributionRetentionScanVo">
SELECT
lddl.id AS deliveryId,
lddl.train_number AS trainNumber,
ldr.id AS reservationId,
ldr.reservation_code AS reservationCode,
ldsa.id AS orderId,
ldsa.order_code AS orderCode,
ldpl.id AS orderPackageId,
ldpl.order_package_code AS orderPackageCode,
ldpl.quantity AS retentionQuantity,
1 AS conditions
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_stockarticle AS ldrs ON ldrs.reservation_id = ldr.id
LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldsa.id = ldrs.stock_article_id
LEFT JOIN logpm_distribution_reservation_package AS ldrp ON ldrp.stock_article_id = ldrs.stock_article_id and ldrp.reservation_id = ldr.id
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldpl.id = ldrp.parce_list_id and ldpl.stock_article_id = ldsa.id
WHERE
lddl.id=#{deliveryId} AND ldrp.packet_bar_status in ('1','3') AND ldrs.is_zero = 0 AND ldpl.order_package_code = #{barCode}
</select>
<select id="selectRetentionZeroPackage" resultType="com.logpm.distribution.vo.DistributionRetentionScanVo">
SELECT
lddl.id AS deliveryId,
lddl.train_number AS trainNumber,
ldr.id AS reservationId,
ldr.reservation_code AS reservationCode,
ldsa.id AS orderId,
ldsa.order_code AS orderCode,
ldrs.reservation_num AS maxRetention,
ldrzp.parcel_list_id AS orderPackageId,
ldpl.firsts AS materialName
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_stockarticle AS ldrs ON ldrs.reservation_id = ldr.id
LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldsa.id = ldrs.stock_article_id
LEFT JOIN logpm_distribution_reservation_zero_package AS ldrzp ON ldrzp.stock_article_id = ldrs.stock_article_id and ldrzp.reservation_id = ldr.id
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldrzp.parcel_list_id = ldpl.id
WHERE ldrs.is_zero = '1' AND lddl.id=#{deliveryId}
AND ldsa.order_code = #{orderCode}
AND ldrs.stock_article_status in ('1','3')
AND ldrzp.zero_package_status IN ('1','3')
</select>
</mapper>

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

@ -67,4 +67,11 @@ public interface DistributionDeliveryTripartiteMapper extends BaseMapper<Distrib
* @param id
*/
void deleteDeliveryTripartite(@Param("id")Long id);
/**
* 查询外协司机信息
* @param deliveryId
* @return
*/
DistributionDeliveryTripartiteEntity selectTripartiteInfo(@Param("deliveryId")Long deliveryId);
}

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryTripartiteMapper.xml

@ -53,5 +53,9 @@
<select id="selectListcustom" resultType="com.logpm.distribution.vo.app.DistributionAppDeliverySelfVO">
select id id,driver_name driverName,vehicle_num vehicleNub FROM logpm_distribution_delivery_tripartite where delivery_id = #{deliveryId}
</select>
<select id="selectTripartiteInfo"
resultType="com.logpm.distribution.entity.DistributionDeliveryTripartiteEntity">
SELECT * logpm_distribution_delivery_tripartite WHERE delivery_id = #{deliveryId}
</select>
</mapper>

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

@ -931,6 +931,6 @@
ldla.reservation_id = #{reservationId} and ldla.delivery_list_id = #{deliveryListId}
</select>
<select id="selectSignImgsUrl" resultType="com.logpm.distribution.entity.DistributionSignPrintEntity">
SELECT * FROM logpm_distribution_sign_print
SELECT * FROM logpm_distribution_sign_print WHERE reservation_id = #{reservationId} and is_deleted = 0
</select>
</mapper>

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

@ -289,4 +289,31 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
*/
R zeroLoading(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/**
* 扫描查询配送任务下的包件信息
* @param distrilbutionloadingscanDTO
* @return
*/
R retentionScan(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/**
* 通过订单自编号进行配送任务零担订单信息查询
* @param distrilbutionloadingscanDTO
* @return
*/
R getZeroPackageInfo(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/**
* 库存品扫描
* @param distrilbutionloadingscanDTO
* @return
*/
R getInventoryInfo(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/**
* 查询配送任务司机信息
* @param deliveryId
* @return
*/
List<DistributionDeliverySelfVO> getDriverInfo(Long deliveryId);
}

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

@ -195,4 +195,6 @@ public interface IDistributionSignforService extends BaseService<DistributionSig
* @return
*/
R zeroSignfor(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO);
R updateSign(DistributionSignforDTO distributionSignfor);
}

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java

@ -146,14 +146,14 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
public IPage<DistributionStockArticleVO> selectDistributionDeliveryorder(IPage<DistributionStockArticleVO> page, DistributionDeliveryInfoDTO distributionDeliveryInfoDTO) {
List<DistributionStockArticleVO> distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryOrderPage(page, distributionDeliveryInfoDTO);
for (DistributionStockArticleVO distributionDeliveryInfoVO : distributionDeliveryInfoVOS) {
//查询签收数量
//查询装车数量
// distributionDeliveryInfoVO.get
// distributionDeliveryInfoVO.setLoadingNumber();
// distributionLoadscanService.list(Wrappers.query().lambda().eq())
// DistributionStockArticleWrapper.build().buildVoInfor(distributionDeliveryInfoVO);
}
// for (DistributionStockArticleVO distributionDeliveryInfoVO : distributionDeliveryInfoVOS) {
// //查询签收数量
// //查询装车数量
//// distributionDeliveryInfoVO.get
//// distributionDeliveryInfoVO.setLoadingNumber();
//// distributionLoadscanService.list(Wrappers.query().lambda().eq())
//// DistributionStockArticleWrapper.build().buildVoInfor(distributionDeliveryInfoVO);
// }
return page.setRecords(distributionDeliveryInfoVOS);
}

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

@ -42,7 +42,9 @@ import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.app.*;
import com.logpm.distribution.vo.print.PrintPreviewVO;
import com.logpm.distribution.wrapper.*;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity;
import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity;
import com.logpm.warehouse.feign.IWarehouseRetentionScanClient;
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient;
import com.logpm.warehouse.feign.IWarehouseTrayTypeClient;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
@ -151,6 +153,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
private final IDistributionReservationZeroPackageService distributionReservationZeroPackageService;
private final IDistributionParcelNumberService distributionParcelNumberService;
private final IWarehouseTrayGoodsClient warehouseTrayGoodsClient;
private final IWarehouseRetentionScanClient warehouseRetentionScanClient;
// private final DistributionStockMapper distributionStockMapper;
// private final BladeRedis redis;
@ -1290,7 +1293,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
}
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(distrilbutionloadingscanDTO.getReservationId());
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
distributionReservationMapper.updateById(reservationEntity);
//查询预约下所有的订单信息
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleService.list(Wrappers.<DistributionReservationStockarticleEntity>query().lambda()
.eq(DistributionReservationStockarticleEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()));
@ -1314,7 +1319,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
case "0":
//订制品
v.forEach(ord -> {
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(distrilbutionloadingscanDTO.getReservationId(), ord.getStockArticleId());
for (DistributionParcelListEntity parcelListEntity : parcelListEntities) {
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity();
@ -5153,6 +5157,142 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
return Resp.scanSuccess("装车成功", str.toString());
}
@Override
public R retentionScan(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
Integer retentionType = distrilbutionloadingscanDTO.getRetentionType();
List<DistributionRetentionScanVo> retentionScanVos = new ArrayList<>();
switch (retentionType){
case 1:
//包件--库存品 和包件
List<DistributionParcelListEntity> parcelListEntities = baseMapper.selectPackageListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
// List<DisStockListDetailEntity> detailEntities = baseMapper.selectInventoryListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isNotEmpty(parcelListEntities)){
List<DistributionParcelListEntity> packageInfo = parcelListEntities.stream().filter(p -> Func.isNotEmpty(p.getOrderPackageCode()) && p.getOrderPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList());
if (packageInfo.size()>1){
log.error("################包条码重复:{}",distrilbutionloadingscanDTO.getBarcode());
return Resp.scanFail("操作失败","操作失败");
}
if (packageInfo.size() == 1){
// DistributionRetentionScanVo distributionRetentionScanVo = new DistributionRetentionScanVo();
//此时才是满足条件的包件,能够进行滞留
//通过配送任务和包件确定预约信息
DistributionParcelListEntity parcelListEntity = packageInfo.get(0);
DistributionRetentionScanVo retentionPackage = baseMapper.selectRetentionPackage(parcelListEntity.getOrderPackageCode(), distrilbutionloadingscanDTO.getDeliveryId());
// distributionRetentionScanVo.setConditions(1);
// distributionRetentionScanVo.setOrderCode(parcelListEntity.getOrderPackageCode());
// distributionRetentionScanVo.setOrderId(parcelListEntity.getStockArticleId());
// distributionRetentionScanVo.setOrderPackageId(parcelListEntity.getId());
// distributionRetentionScanVo.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
// distributionRetentionScanVo.setReservationCode(reservationEntity.getReservationCode());
// distributionRetentionScanVo.setReservationId(reservationEntity.getId());
// distributionRetentionScanVo.setRetentionQuantity(parcelListEntity.getQuantity());
// retentionScanVos.add(distributionRetentionScanVo);
}
//
} else {
List<DisStockListDetailEntity> detailEntities = baseMapper.selectInventoryListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isNotEmpty(detailEntities)){
List<DisStockListDetailEntity> stockListDetailEntities = detailEntities.stream().filter(i -> Func.isNotEmpty(i.getStockPackageCode()) && Func.equals(i.getStockPackageCode(), distrilbutionloadingscanDTO.getDeliveryId())).collect(Collectors.toList());
if (stockListDetailEntities.size()> 1){
log.error("################库存品条码重复:{}",distrilbutionloadingscanDTO.getBarcode());
return Resp.scanFail("操作失败","操作失败");
}
if (stockListDetailEntities.size() == 1){
// DistributionRetentionScanVo distributionRetentionScanVo = new DistributionRetentionScanVo();
//此时才是满足条件的包件,能够进行滞留
//通过配送任务和包件确定预约信息
DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities.get(0);
DistributionRetentionScanVo inventoryPackage = baseMapper.selectRetentionInventoryPackage(disStockListDetailEntity.getStockPackageCode(), distrilbutionloadingscanDTO.getDeliveryId());
retentionScanVos.add(inventoryPackage);
}
}else {
log.error("################查询包件和库存品为空:{}",distrilbutionloadingscanDTO.getDeliveryId());
return Resp.scanFail("操作失败","不属于该配送任务!!!");
}
}
List<DistributionRetentionScanVo> distributionRetentionScanVos = baseMapper.selectRetentionZeroPackage(distrilbutionloadingscanDTO.getDeliveryId(),distrilbutionloadingscanDTO.getBarcode());
if (Func.isNotEmpty(distributionRetentionScanVos)){
retentionScanVos.addAll(distributionRetentionScanVos);
}
break;
case 2:
//托盘
break;
default:
log.info("################无满足滞留扫描类型");
break;
}
// warehouseRetentionScanClient.saveRetentionScan();
if (Func.isEmpty(retentionScanVos)){
return Resp.scanFail("操作失败","无该信息!!!");
}
return R.data(retentionScanVos);
}
@Override
public R getZeroPackageInfo(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = baseMapper.selectReservationStockByDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isEmpty(reservationStockarticleEntityList)){
log.error("#############配送任务查询订单错误,deliveryId:{}",distrilbutionloadingscanDTO.getDeliveryId());
return null;
}
List<Long> orderIds = reservationStockarticleEntityList.stream().filter(rs -> Func.isNotEmpty(rs.getIsZero()) && rs.getIsZero().equals(IsOrNoConstant.yes.getValue())).map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList());
if (Func.isEmpty(orderIds)){
log.error("####################配送任务下无零担信息:{}");
return Resp.scanFail("查询错误","该任务无零担订单");
}
List<DistributionParcelNumberVO> parcelNumberVOS = new ArrayList<>();
orderIds.forEach(o->{
List<DistributionParcelNumberVO> parcelNumberVOList = baseMapper.selectDeliveryZeroOrderDetail(o, distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isNotEmpty(parcelNumberVOList)){
parcelNumberVOS.addAll(parcelNumberVOList);
}
});
if (Func.isEmpty(parcelNumberVOS)){
return Resp.scanFail("查询失败","该配送任务无该零担订单");
}
return R.data(parcelNumberVOS);
}
@Override
public R getInventoryInfo(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
List<DisStockListDetailEntity> detailEntities = baseMapper.selectInventoryListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isEmpty(detailEntities)){
log.error("######################查询配送任务零担信息错误,deliveryId:{},",distrilbutionloadingscanDTO.getDeliveryId());
return null;
}
List<DisStockListDetailEntity> stockListDetailEntities = detailEntities.stream().filter(d -> Func.isNotEmpty(d.getStockPackageCode())).filter(d -> d.getStockPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList());
List<DisStockListDetailVO> disStockListDetailVOS = DistributionDisStockListWrapper.build().listVO(stockListDetailEntities);
List<Long> inventoryIds = disStockListDetailVOS.stream().map(DisStockListDetailVO::getStockListId).distinct().collect(Collectors.toList());
DistributionStockListEntity distributionStockListEntity = distributionStockListService.listByIds(inventoryIds).get(0);
disStockListDetailVOS.stream().forEach(d->{d.setMarketName(distributionStockListEntity.getMarketName());d.setCargoNumber(distributionStockListEntity.getCargoNumber());});
if (Func.isEmpty(stockListDetailEntities)){
return Resp.scanFail("查询失败","不属于该配送任务");
}
return R.data(stockListDetailEntities);
}
@Override
public List<DistributionDeliverySelfVO> getDriverInfo(Long deliveryId) {
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
if (Func.isEmpty(distributionDeliveryListEntity)) {
log.error("############################# 配送任务查询为空,deliveryId为:{}", distributionDeliveryListEntity);
}
//零担订单进行装车
//这里需要进行判定是进行编辑还是进行的装车
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfEntity();
if (distributionDeliveryListEntity.getKind().equals("1")) {
distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectById(deliveryId);
} else {
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectTripartiteInfo(deliveryId);
BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity);
}
return null;
}
public Map<String, String> getDriverCar(String kind, Long deliveryListEntityId) {
Map<String, String> map = new HashMap<>();

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

@ -2216,7 +2216,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
if (ObjectUtils.isNotNull(distributionSignfor.getMap())) {
List<DistributionSignPrintEntity> distributionSignPrintList = new ArrayList<>();
distributionSignfor.getMap().forEach((k, v) -> {
List<DistributionSignPrintEntity> list = iDistributionSignPrintService.list(Wrappers.<DistributionSignPrintEntity>query().lambda()
.eq(DistributionSignPrintEntity::getReservationId, distributionSignfor.getReservationId())
.eq(DistributionSignPrintEntity::getType, k)
@ -2486,5 +2485,16 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
return Resp.scanSuccess("签收成功", str);
}
@Override
@Transactional
public R updateSign(DistributionSignforDTO distributionSignfor) {
distributionSignfor.setSigneeId(AuthUtil.getUser().getUserId());
distributionSignfor.setSigneeName(AuthUtil.getUser().getUserName());
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
distributionSignfor.setSigningTime(sdf.format(date));
this.updatePicture(distributionSignfor);
this.updateById(distributionSignfor);
return R.status(true);
}
}

93
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseRetentionApiController.java

@ -1,8 +1,10 @@
package com.logpm.warehouse.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.warehouse.dto.RetentionDTO;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import com.logpm.warehouse.service.IWarehouseRetentionRecordService;
import com.logpm.warehouse.vo.WarehouseRetentionRecordVO;
import io.swagger.annotations.Api;
@ -11,6 +13,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.web.bind.annotation.*;
@ -26,37 +29,65 @@ public class WarehouseRetentionApiController {
private final IWarehouseRetentionRecordService warehouseRetentionRecordService;
// @ResponseBody
// @PostMapping("/retentionPackageList")
@ResponseBody
@PostMapping("/retentionPackageList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "滞留包件列表", notes = "传入trayTypeDTO")
public R<IPage<WarehouseRetentionRecordVO>> retentionPackageList(@RequestBody RetentionDTO retentionDTO) {
String method = "###########retentionPackageList: ";
log.info(method + "滞留包件列表 retentionDTO={}", retentionDTO);
Integer pageNum = retentionDTO.getPageNum();
Integer pageSize = retentionDTO.getPageSize();
if (Objects.isNull(pageNum)) {
retentionDTO.setPageNum(1);
}
if (Objects.isNull(pageSize)) {
retentionDTO.setPageSize(10);
}
try {
//查询订制品打托列表
IPage<WarehouseRetentionRecordVO> pages = warehouseRetentionRecordService.retentionPackageList(retentionDTO);
return R.data(pages);
} catch (CustomerException e) {
log.warn(e.message);
return R.fail(e.code, e.message);
} catch (Exception e) {
log.error(method + "系统异常,联系管理员", e);
return R.fail(500, "系统异常,联系管理员");
}
}
// @GetMapping
@GetMapping("/initRetentionList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "初始化滞留车次信息", notes = "传入trayTypeDTO")
public R<WarehouseRetentionRecordVO> initRetentionList(@RequestParam Long deliveryId) {
WarehouseRetentionRecordVO warehouseRetentionRecordVO = warehouseRetentionRecordService.initRetentionList(deliveryId);
return R.data(warehouseRetentionRecordVO);
}
@PostMapping("/saveRetentionList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "保存滞留扫描列表", notes = "传入trayTypeDTO")
public R saveRetentionList(@RequestBody RetentionDTO retentionDTO) {
R r = warehouseRetentionRecordService.saveRetentionList(retentionDTO);
return r;
}
// @GetMapping("/initRetentionList")
// @ApiOperationSupport(order = 1)
// @ApiOperation(value = "滞留包件列表", notes = "传入trayTypeDTO")
// public R<IPage<WarehouseRetentionRecordVO>> retentionPackageList(@RequestBody RetentionDTO retentionDTO) {
// String method = "###########retentionPackageList: ";
// log.info(method+"滞留包件列表 retentionDTO={}",retentionDTO);
// Integer pageNum = retentionDTO.getPageNum();
// Integer pageSize = retentionDTO.getPageSize();
//
// if(Objects.isNull(pageNum)){
// retentionDTO.setPageNum(1);
// }
// if(Objects.isNull(pageSize)){
// retentionDTO.setPageSize(10);
// }
//
// try{
// //查询订制品打托列表
// IPage<WarehouseRetentionRecordVO> pages = warehouseRetentionRecordService.retentionPackageList(retentionDTO);
// return R.data(pages);
// }catch (CustomerException e){
// log.warn(e.message);
// return R.fail(e.code,e.message);
// }catch (Exception e){
// log.error(method+"系统异常,联系管理员",e);
// return R.fail(500,"系统异常,联系管理员");
// }
// @ApiOperation(value = "初始化滞留车次信息", notes = "传入trayTypeDTO")
// public R<WarehouseRetentionRecordVO> initRetentionList(@RequestParam Long deliveryId) {
// WarehouseRetentionRecordVO warehouseRetentionRecordVO = warehouseRetentionRecordService.initRetentionList(deliveryId);
// return R.data(warehouseRetentionRecordVO);
// }
//
//
// @ResponseBody
@ -85,8 +116,6 @@ public class WarehouseRetentionApiController {
// }
// @ResponseBody
// @PostMapping("/retentionScanPackage")
// @ApiOperationSupport(order = 1)
@ -113,6 +142,4 @@ public class WarehouseRetentionApiController {
// }
}

23
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/RetentionDTO.java

@ -1,8 +1,13 @@
package com.logpm.warehouse.dto;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.vo.DistributionParcelListVO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class RetentionDTO implements Serializable {
@ -14,4 +19,22 @@ public class RetentionDTO implements Serializable {
private String endDate;
private String orderPackageCode;
/**
* 配送任务ID
*/
private Long deliveryId;
/**
* 配送任务ID
*/
private String remarks;
private List<RetentionParcelListDTO> parcelListEntityList;
private List<RetentionZeroParcelDTO> parcelNumberEntityList;
private List<RetentionDistributionListDetailDTO> detailEntityList;
}

14
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/RetentionDistributionListDetailDTO.java

@ -0,0 +1,14 @@
package com.logpm.warehouse.dto;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class RetentionDistributionListDetailDTO extends DisStockListDetailEntity {
private String MaterialName;
private String materialNumber;
}

11
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/RetentionParcelListDTO.java

@ -0,0 +1,11 @@
package com.logpm.warehouse.dto;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class RetentionParcelListDTO extends DistributionParcelListEntity {
}

10
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/RetentionZeroParcelDTO.java

@ -0,0 +1,10 @@
package com.logpm.warehouse.dto;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class RetentionZeroParcelDTO extends DistributionParcelNumberEntity {
}

6
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseRetentionScanClient.java

@ -25,6 +25,7 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import com.logpm.warehouse.service.IWarehouseRetentionRecordService;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@ -52,4 +53,9 @@ public class WarehouseRetentionScanClient implements IWarehouseRetentionScanClie
return BladePage.of(page);
}
@Override
public R saveRetentionScan(WarehouseRetentionScanEntity warehouseRetentionScanEntity) {
return R.status(warehouseRetentionScanService.save(warehouseRetentionScanEntity));
}
}

1
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseRetentionRecordMapper.java

@ -62,4 +62,5 @@ public interface WarehouseRetentionRecordMapper extends BaseMapper<WarehouseRete
IPage<WarehouseRetentionRecordEntity> retentionPackageList(IPage<Object> page, @Param("param") RetentionDTO retentionDTO);
}

1
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseRetentionRecordMapper.xml

@ -61,4 +61,5 @@
order by update_time desc
</select>
</mapper>

14
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseRetentionRecordService.java

@ -62,4 +62,18 @@ public interface IWarehouseRetentionRecordService extends BaseService<WarehouseR
IPage<WarehouseRetentionRecordVO> retentionPackageList(RetentionDTO retentionDTO);
R retentionScanPackage(String orderPackageCode);
/**
* PDA查询初始化滞留扫描页
* @param deliveryId
* @return
*/
WarehouseRetentionRecordVO initRetentionList(Long deliveryId);
/**
* 保存扫描记录
* @param retentionDTO
* @return
*/
R saveRetentionList(RetentionDTO retentionDTO);
}

125
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

@ -18,26 +18,48 @@ package com.logpm.warehouse.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import com.logpm.distribution.entity.DistributionLoadscanEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.feign.IDistributionDeliveryListClient;
import com.logpm.distribution.feign.IDistributionLoadscanClient;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.vo.DistributionDeliveryListVO;
import com.logpm.distribution.vo.DistributionDeliverySelfVO;
import com.logpm.oldproject.feign.IWarehouseClient;
import com.logpm.warehouse.bean.Resp;
import com.logpm.warehouse.dto.RetentionDTO;
import com.logpm.warehouse.dto.RetentionDistributionListDetailDTO;
import com.logpm.warehouse.dto.RetentionParcelListDTO;
import com.logpm.warehouse.dto.RetentionZeroParcelDTO;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity;
import com.logpm.warehouse.excel.WarehouseRetentionRecordExcel;
import com.logpm.warehouse.mapper.WarehouseRetentionRecordMapper;
import com.logpm.warehouse.service.IWarehouseRetentionRecordService;
import com.logpm.warehouse.service.IWarehouseRetentionScanService;
import com.logpm.warehouse.vo.WarehouseRetentionRecordVO;
import com.logpm.warehouse.vo.WarehouseWaybillDetentionVO;
import com.logpm.warehouse.wrapper.WarehouseRetentionRecordWrapper;
import com.logpm.warehouse.wrapper.WarehouseRetentionScanWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.retention.RetentionTypeConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
* 滞留记录 服务实现类
@ -47,10 +69,14 @@ import java.util.Objects;
*/
@AllArgsConstructor
@Service
@Slf4j
public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<WarehouseRetentionRecordMapper, WarehouseRetentionRecordEntity> implements IWarehouseRetentionRecordService {
private final IDistributionLoadscanClient distributionLoadscanClient;
private final IDistributionParcelListClient distributionParcelListClient;
private final IWarehouseRetentionScanService warehouseRetentionScanService;
private final IDistributionDeliveryListClient deliveryListClient;
private final IBasicdataWarehouseClient warehouseClient;
@Override
public IPage<WarehouseRetentionRecordVO> selectWarehouseRetentionRecordPage(IPage<WarehouseRetentionRecordVO> page, WarehouseRetentionRecordVO warehouseRetentionRecord) {
@ -117,4 +143,103 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
return R.success("success");
}
@Override
public WarehouseRetentionRecordVO initRetentionList(Long deliveryId) {
WarehouseRetentionRecordEntity retentionRecordEntity = this.getOne(Wrappers.<WarehouseRetentionRecordEntity>query().lambda()
.eq(WarehouseRetentionRecordEntity::getRetentionType, RetentionTypeConstant.peisongzhiliu.getValue())
.eq(WarehouseRetentionRecordEntity::getTaskId, deliveryId));
if (Func.isEmpty(retentionRecordEntity)){
return null;
}
WarehouseRetentionRecordVO warehouseRetentionRecordVO = WarehouseRetentionRecordWrapper.build().entityVO(retentionRecordEntity);
//查询是否存在有对应的扫描列表
List<WarehouseRetentionScanEntity> retentionScanEntityList = warehouseRetentionScanService.list(Wrappers.<WarehouseRetentionScanEntity>query().lambda()
.eq(WarehouseRetentionScanEntity::getDeliveryId, retentionRecordEntity.getTaskId())
.eq(WarehouseRetentionScanEntity::getRefId, retentionRecordEntity.getId()));
if (Func.isNotEmpty(retentionScanEntityList)){
warehouseRetentionRecordVO.setRetentionScanVOList(WarehouseRetentionScanWrapper.build().listVO(retentionScanEntityList));
}
return warehouseRetentionRecordVO;
}
@Override
public R saveRetentionList(RetentionDTO retentionDTO) {
DistributionDeliveryListVO deliveryDriverInfo = deliveryListClient.getDeliveryDriverInfo(retentionDTO.getDeliveryId());
if (Func.isEmpty(deliveryDriverInfo)){
//查询配送任务
log.error("##############查询配送任务失败,deliveryId:{}",retentionDTO.getDeliveryId());
}
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (Objects.isNull(myCurrentWarehouse)) {
throw new CustomerException(403, "仓库信息不能为空");
}
if (Func.isEmpty(deliveryDriverInfo.getDeliverySelfVO())){
log.error("##############查询配送任务司机失败");
}
List<DistributionDeliverySelfVO> deliverySelfVO = deliveryDriverInfo.getDeliverySelfVO();
DistributionDeliverySelfVO distributionDeliverySelfVO = null;
if (deliveryDriverInfo.getKind().equals("1")){
distributionDeliverySelfVO = deliverySelfVO.stream().filter(d -> d.getIsMaster() == 2).collect(Collectors.toList()).get(0);
}else if (deliveryDriverInfo.getKind().equals("2")){
distributionDeliverySelfVO = deliverySelfVO.get(0);
}
WarehouseRetentionRecordEntity warehouseRetentionRecordEntity = new WarehouseRetentionRecordEntity();
warehouseRetentionRecordEntity.setRetentionType(RetentionTypeConstant.peisongzhiliu.getValue());
warehouseRetentionRecordEntity.setRetentionWarehouseId(myCurrentWarehouse.getId());
warehouseRetentionRecordEntity.setRetentionWarehouseName(myCurrentWarehouse.getName());
warehouseRetentionRecordEntity.setRemark(retentionDTO.getRemarks());
warehouseRetentionRecordEntity.setTaskId(retentionDTO.getDeliveryId());
warehouseRetentionRecordEntity.setRetentionCarId(distributionDeliverySelfVO.getId());
warehouseRetentionRecordEntity.setRetentionCarNo(deliveryDriverInfo.getTrainNumber());
warehouseRetentionRecordEntity.setAssembleCarPersonId(distributionDeliverySelfVO.getDeliveryId());
warehouseRetentionRecordEntity.setAssembleCarPersonName(distributionDeliverySelfVO.getDriverName());
//统计数量
AtomicInteger retentionQuantity = new AtomicInteger();
List<RetentionParcelListDTO> parcelListEntityList = retentionDTO.getParcelListEntityList();
if (Func.isNotEmpty(parcelListEntityList)){
parcelListEntityList.forEach(p->{
WarehouseRetentionScanEntity warehouseRetentionScanEntity = new WarehouseRetentionScanEntity();
warehouseRetentionScanEntity.setConditions(1);
warehouseRetentionScanEntity.setDeliveryId(deliveryDriverInfo.getId());
warehouseRetentionScanEntity.setOrderCode(p.getOrderCode());
warehouseRetentionScanEntity.setOrderPackageCode(p.getOrderPackageCode());
warehouseRetentionScanEntity.setOrderId(p.getStockArticleId());
warehouseRetentionScanEntity.setOrderPackageId(p.getId());
warehouseRetentionScanService.save(warehouseRetentionScanEntity);
retentionQuantity.getAndAdd(p.getQuantity());
//缺少一个进行解绑的远程
});
}
List<RetentionZeroParcelDTO> parcelNumberEntityList = retentionDTO.getParcelNumberEntityList();
if (Func.isNotEmpty(parcelNumberEntityList)){
parcelNumberEntityList.forEach(pn->{
WarehouseRetentionScanEntity warehouseRetentionScanEntity = new WarehouseRetentionScanEntity();
warehouseRetentionScanEntity.setConditions(2);
warehouseRetentionScanEntity.setDeliveryId(deliveryDriverInfo.getId());
warehouseRetentionScanEntity.setOrderId(pn.getStockArticleId());
warehouseRetentionScanEntity.setOrderPackageId(pn.getParcelListId());
warehouseRetentionScanService.save(warehouseRetentionScanEntity);
retentionQuantity.getAndAdd(pn.getQuantity());
});
}
List<RetentionDistributionListDetailDTO> detailEntityList = retentionDTO.getDetailEntityList();
if (Func.isNotEmpty(detailEntityList)){
detailEntityList.forEach(d->{
WarehouseRetentionScanEntity warehouseRetentionScanEntity = new WarehouseRetentionScanEntity();
warehouseRetentionScanEntity.setConditions(3);
warehouseRetentionScanEntity.setDeliveryId(deliveryDriverInfo.getId());
warehouseRetentionScanEntity.setInventoryId(d.getStockListId());
warehouseRetentionScanEntity.setMaterialName(d.getMaterialName());
warehouseRetentionScanEntity.setMaterialNumber(d.getMaterialNumber());
warehouseRetentionScanEntity.setOrderPackageCode(d.getStockPackageCode());
warehouseRetentionScanEntity.setOrderPackageId(d.getId());
warehouseRetentionScanService.save(warehouseRetentionScanEntity);
retentionQuantity.getAndAdd(d.getNum());
});
}
this.save(warehouseRetentionRecordEntity);
return Resp.scanSuccess("操作成功","操作成功");
}
}

4
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/wrapper/WarehouseRetentionRecordWrapper.java

@ -18,8 +18,10 @@ package com.logpm.warehouse.wrapper;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import com.logpm.warehouse.vo.WarehouseRetentionRecordVO;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.system.cache.DictBizCache;
import java.util.Objects;
@ -38,7 +40,7 @@ public class WarehouseRetentionRecordWrapper extends BaseEntityWrapper<Warehouse
@Override
public WarehouseRetentionRecordVO entityVO(WarehouseRetentionRecordEntity warehouseRetentionRecord) {
WarehouseRetentionRecordVO warehouseRetentionRecordVO = Objects.requireNonNull(BeanUtil.copy(warehouseRetentionRecord, WarehouseRetentionRecordVO.class));
warehouseRetentionRecordVO.setRetentionTypeName(DictBizCache.getValue(DictBizConstant.WAREHOUSE_TRAY_BINDING_TYPE, warehouseRetentionRecord.getRetentionType()));
//User createUser = UserCache.getUser(warehouseRetentionRecord.getCreateUser());
//User updateUser = UserCache.getUser(warehouseRetentionRecord.getUpdateUser());
//warehouseRetentionRecordVO.setCreateUserName(createUser.getName());

55
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/wrapper/WarehouseRetentionScanWrapper.java

@ -0,0 +1,55 @@
/*
* 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.warehouse.wrapper;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity;
import com.logpm.warehouse.vo.WarehouseRetentionRecordVO;
import com.logpm.warehouse.vo.WarehouseRetentionScanVO;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.system.cache.DictBizCache;
import java.util.Objects;
/**
* 滞留记录 包装类,返回视图层所需的字段
*
* @author BladeX
* @since 2023-08-09
*/
public class WarehouseRetentionScanWrapper extends BaseEntityWrapper<WarehouseRetentionScanEntity, WarehouseRetentionScanVO> {
public static WarehouseRetentionScanWrapper build() {
return new WarehouseRetentionScanWrapper();
}
@Override
public WarehouseRetentionScanVO entityVO(WarehouseRetentionScanEntity warehouseRetentionScanEntity) {
WarehouseRetentionScanVO warehouseRetentionScanVO = Objects.requireNonNull(BeanUtil.copy(warehouseRetentionScanEntity, WarehouseRetentionScanVO.class));
// warehouseRetentionRecordVO.setRetentionTypeName(DictBizCache.getValue(DictBizConstant.WAREHOUSE_TRAY_BINDING_TYPE, warehouseRetentionRecord.getRetentionType()));
//User createUser = UserCache.getUser(warehouseRetentionRecord.getCreateUser());
//User updateUser = UserCache.getUser(warehouseRetentionRecord.getUpdateUser());
//warehouseRetentionRecordVO.setCreateUserName(createUser.getName());
//warehouseRetentionRecordVO.setUpdateUserName(updateUser.getName());
return warehouseRetentionScanVO;
}
}
Loading…
Cancel
Save