Browse Source

提交自提签收接口

training
caoyizhong 1 year ago
parent
commit
3069fd2bd2
  1. 63
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroOrderVO.java
  2. 7
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java
  3. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java
  4. 197
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

63
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroOrderVO.java

@ -0,0 +1,63 @@
package com.logpm.distribution.vo.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class DistrilbutionAppBillLadingZeroOrderVO implements Serializable {
private Long id;
/**
* 服务号
*/
@ApiModelProperty(value = "服务号")
private String serviceNumber;
/**
* 订单自编号
*/
@ApiModelProperty(value = "订单自编号")
private String orderCode;
/**
* 货物名称
*/
@ApiModelProperty(value = "货物名称")
private String descriptionGoods;
/**
* 订单总件数
*/
@ApiModelProperty(value = "订单总件数")
private Integer totalNumber;
/**
* 在库件数
*/
@ApiModelProperty(value = "在库件数")
private Integer handQuantity;
/**
* 运单号
*/
@ApiModelProperty(value = "运单号")
private String waybillNumber;
@ApiModelProperty(value = "订单状态")
private String orderStatus;
/**
* 预约数量
*/
@ApiModelProperty(value = "预约数量")
private Integer reservationQuantity;
/**
* 备货数量
*/
@ApiModelProperty(value = "备货数量")
private Integer realityQuantity;
}

7
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java

@ -8,7 +8,7 @@ import java.io.Serializable;
@Data
public class DistrilbutionAppBillLadingZeroVO implements Serializable {
private Long id;
private Long id; // 包件ID
/**
* 订单自编号
*/
@ -50,6 +50,11 @@ public class DistrilbutionAppBillLadingZeroVO implements Serializable {
*/
@ApiModelProperty(value = "预约数量")
private Integer reservationQuantity;
/**
* 备货数量
*/
@ApiModelProperty(value = "备货数量")
private Integer realityQuantity;

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

@ -1,6 +1,7 @@
package com.logpm.distribution.dto.app;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingZeroVO;
import lombok.Data;
import java.io.Serializable;
@ -24,6 +25,7 @@ public class BillLadingAppDTO implements Serializable {
private String orderSelfNumbering;//订单自编码
private Long warehouseId;//仓库ID
private List<DistributionParcelListEntity> list; //零担数据集合
private List<DistrilbutionAppBillLadingZeroVO> list; //零担数据集合
private DistrilbutionAppBillLadingZeroVO billLadingZeroVO; //单个数据
}

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

@ -257,7 +257,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
} else {
if (list1.size() < 1) {
if (list1.isEmpty()) {
//取消库存占用数量
distributionAsyncService.getInventoryNumUpdate(i.getStockListId(), i.getQuantity(), 2);
}
@ -267,7 +267,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
});
//删除没有的库存品
if (ids.size() > 0) {
if (!ids.isEmpty()) {
ids.forEach(a -> {
DistributionDeliveryDetailsEntity deliveryDetails = new DistributionDeliveryDetailsEntity();
deliveryDetails.setId(a);
@ -326,7 +326,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
}
//操作图片
if (distrilbutionBillLading.getPrintList().size() > 0) {
if (!distrilbutionBillLading.getPrintList().isEmpty()) {
addPrint(distrilbutionBillLading);
}
@ -334,7 +334,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
//添加库存品信息
if (distrilbutionBillLading.getStockDTOList().size() > 0) {
if (!distrilbutionBillLading.getStockDTOList().isEmpty()) {
//没有
List<DistributionDeliveryDetailsEntity> detailsEntities = new ArrayList<>();
Boolean finalLas = las;
@ -358,7 +358,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
//添加费用
if (distrilbutionBillLading.getFei().size() > 0) {
if (!distrilbutionBillLading.getFei().isEmpty()) {
List<DistributionDeliveryChargeEntity> listEntity = new ArrayList<>();
distrilbutionBillLading.getFei().forEach((k, v) -> {
DistributionDeliveryChargeEntity distributionDeliveryCharge = new DistributionDeliveryChargeEntity();
@ -497,7 +497,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (i.getConditions().equals("10") ) {
//未
List<DistributionStockEntity> list1 = distributionStockService.list(Wrappers.<DistributionStockEntity>query().lambda().eq(DistributionStockEntity::getStockArticle, i.getStockArticleId()));
if (list1.size() == 0) {
if (list1.isEmpty()) {
//取消
DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity();
stockArticleEntity.setId(i.getStockArticleId());
@ -757,7 +757,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<DistributionDeliveryDetailsEntity> list1 = distributionDeliveryDetailsService.list(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda()
.eq(DistributionDeliveryDetailsEntity::getBillLadingId, billLadingId)
);
if (list1.size() > 0) {
if (!list1.isEmpty()) {
long count = list1.stream().filter(i -> i.getConditions().equals("2")).count();
signedNum += (int) count;
}
@ -766,14 +766,14 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId)
.eq(DistributionBillLadingScanEntity::getMaterialType, "1")
);
if (list2.size() > 0) {
if (!list2.isEmpty()) {
signedNum += list2.size();
}
// planNum += list.stream().mapToInt(DistributionDeliveryDetailsEntity::getQuantity).sum();
DistrilbutionAppBillLadingOrderMainVO mainVO = new DistrilbutionAppBillLadingOrderMainVO();
mainVO.setOrderNum(orderNum);
if(list.size() > 0){
if(!list.isEmpty()){
mainVO.setInventoryNub(list.stream().mapToInt(DistributionDeliveryDetailsEntity::getQuantity).sum());
}else{
mainVO.setInventoryNub(0);
@ -919,7 +919,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
.eq(DistributionStockupScanEntity::getPackageType, '1')
.eq(DistributionStockupScanEntity::getParcelListId, i.getId())
);
i.setStockUp(list.size() > 0 ? "已备货" : "未备货");
i.setStockUp(!list.isEmpty() ? "已备货" : "未备货");
});
return distrilbutionBillLadingOwnVOIPage;
}
@ -1014,7 +1014,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<DistributionDeliveryDetailsEntity> list3 = distributionDeliveryDetailsService.list(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda()
.eq(DistributionDeliveryDetailsEntity::getBillLadingId, distrilbutionBillLadingEntity.getId())
);
if (list3.size() > 0) {
if (!list3.isEmpty()) {
list3.forEach(i -> {
DistributionStockListEntity one = distributionStockListService.getOne(Wrappers.<DistributionStockListEntity>query().lambda()
.eq(DistributionStockListEntity::getId, i.getStockListId())
@ -1086,7 +1086,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
.eq(DistributionBillLadingScanEntity::getMaterialType, type)
.eq(DistributionBillLadingScanEntity::getPacketBarCode, coding)
);
if (list3.size() > 0) {
if (!list3.isEmpty()) {
return Resp.scanFail("已签收!", "已签收!");
}
@ -1125,7 +1125,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId)
);
if (list.size() < 1) {
if (list.isEmpty()) {
return Resp.scanFail("当前提货任务,订单不存在!", "当前提货任务,订单不存在!");
} else {
AtomicBoolean n = new AtomicBoolean(false);
@ -1135,7 +1135,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
.eq(DistributionParcelListEntity::getStockArticleId, so.getStockArticleId())
.eq(DistributionParcelListEntity::getOrderPackageCode, coding)
);
if (list1.size() > 0) {
if (!list1.isEmpty()) {
n.set(true);
//查询订单包件数量签收的信息
DistributionStockArticleEntity one = distributionStockArticleService.getOne(Wrappers.<DistributionStockArticleEntity>query().lambda()
@ -1267,7 +1267,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
.eq(DistrilbutionBillStockEntity::getOrderStatus, "1")
.or(ew -> ew.eq(DistrilbutionBillStockEntity::getBillLadingId, s).eq(DistrilbutionBillStockEntity::getOrderStatus, "2"))
);
if (list.size() > 0) {
if (!list.isEmpty()) {
list.forEach(li -> {
DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity();
stockArticleEntity.setOrderStatus(OrderStatusConstant.qianshou.getValue());
@ -1428,7 +1428,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
/**
* 零担的物料数据查询
* 零担的包件物料数据查询
* @param billLadingAppDTO
* @return
*/
@ -1446,12 +1446,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
DistributionParcelListEntity byId = distributionParcelListService.getById(i.getParcelListId());
DistrilbutionAppBillLadingZeroVO billLadingZeroVO = new DistrilbutionAppBillLadingZeroVO();
BeanUtils.copyProperties(byId,billLadingZeroVO);
DistributionReservationZeroPackageEntity one = distributionZeroPackageService.getOne(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getParcelListId, byId.getId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
billLadingZeroVO.setReservationQuantity(one.getQuantity());
billLadingZeroVO.setReservationQuantity(i.getQuantity());
billLadingZeroVO.setRealityQuantity(i.getRealityQuantity());
parcelListEntityList.add(billLadingZeroVO);
});
}
@ -1495,9 +1491,9 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
// billLadingScan.setQuantity(i.getQuantity());
// billLadingScanList.add(billLadingScan);
// });
//查询
//修改签收状态
billLadingAppDTO.getList().stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getStockArticleId))
billLadingAppDTO.getList().stream().collect(Collectors.groupingBy(DistrilbutionAppBillLadingZeroVO::getStockArticleId))
.forEach((k,v) ->{
v.forEach(i ->{
//修改包件签收状态
@ -1524,34 +1520,18 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
billLadingScan.setQuantity(i.getQuantity());
billLadingScanList.add(billLadingScan);
});
int sum = v.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); //填写的签收数量
//查询 订单数量
DistributionStockArticleEntity byId = distributionStockArticleService.getById(k);
DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity();
if(sum == byId.getTotalNumber()){
stockArticleEntity.setOrderReceiveStatus(OrderStatusConstant.qianshou.getValue());
}else{
stockArticleEntity.setOrderReceiveStatus(OrderStatusConstant.bufenqianshou.getValue());
}
//修改订单状态
stockArticleEntity.setId(k);
distributionStockArticleService.updateById(stockArticleEntity);
//预约的数量
int sum1 = list.stream().collect(Collectors.groupingBy(DistributionReservationZeroPackageEntity::getStockArticleId)).get(k).stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
if(sum >= sum1){
//修改提货提货状态
distrilbutionBillStockService.update(Wrappers.<DistrilbutionBillStockEntity>update()
.eq("bill_lading_id",billLadingAppDTO.getBillLadingId())
.eq("stock_article_id",k)
.set("conditions",2)
);
}
int sum = v.stream().mapToInt(DistrilbutionAppBillLadingZeroVO::getQuantity).sum(); //填写的签收数量
//修改订单签收钻状态
updateStockArticle(sum,k);
//修改提货订单状态
updateBillStock(sum,list,k,billLadingAppDTO.getBillLadingId());
});
if(!billLadingScanList.isEmpty()){
distributionBillLadingScanService.saveBatch(billLadingScanList);
distributionAsyncService.getStockUPstate(billLadingAppDTO.getBillLadingId());
return Resp.scanSuccess("签收成功!","签收成功!");
}
distributionAsyncService.getStockUPstate(billLadingAppDTO.getBillLadingId());
return Resp.scanSuccess("签收失败!","签收失败!");
}
@ -1562,7 +1542,26 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
*/
@Override
public R zeroBillOrderData(BillLadingAppDTO billLadingAppDTO) {
return null;
//查询订单
List<DistributionReservationZeroPackageEntity> list = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingAppDTO.getBillLadingId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
List<DistrilbutionAppBillLadingZeroOrderVO> billLadingZeroOrderVOS = new ArrayList<>();
if(!list.isEmpty()){
//查询订单信息
list.forEach( i ->{
DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId());
DistrilbutionAppBillLadingZeroOrderVO zeroOrderVO = new DistrilbutionAppBillLadingZeroOrderVO();
BeanUtils.copyProperties(byId,zeroOrderVO);
zeroOrderVO.setReservationQuantity(i.getQuantity());
zeroOrderVO.setRealityQuantity(i.getRealityQuantity());
billLadingZeroOrderVOS.add(zeroOrderVO);
});
}
return R.data(billLadingZeroOrderVOS);
}
/**
@ -1572,6 +1571,106 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
*/
@Override
public R zeroBillPack(BillLadingAppDTO billLadingAppDTO) {
return null;
DistrilbutionAppBillLadingZeroVO i = billLadingAppDTO.getBillLadingZeroVO();
String lockKey ="lock:" + i.getStockArticleId() +i.getId();
RLock lock = new RedissonConfig().redisson().getLock(lockKey);
if(lock.isLocked()){
throw new ServiceException("请勿重复提交!!!");
}
lock.lock(5, TimeUnit.SECONDS);
List<DistributionReservationZeroPackageEntity> list = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingAppDTO.getBillLadingId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.eq(DistributionReservationZeroPackageEntity::getStockArticleId, i.getStockArticleId())
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
//查询是否签收
DistrilbutionBillStockEntity one = distrilbutionBillStockService.getOne(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingAppDTO.getBillLadingId())
.eq(DistrilbutionBillStockEntity::getStockArticleId, i.getStockArticleId())
.eq(DistrilbutionBillStockEntity::getConditions, "2")
);
if(!ObjectUtils.isNotNull(one)){
return Resp.scanFail("已签收!","已签收!");
}
//修改包件签收状态
DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity();
//判断是否大于总件数的数量
DistributionParcelListEntity byId = distributionParcelListService.getById(i.getId());
if(i.getQuantity() > byId.getQuantity()){
throw new ServiceException("签收数量大于订单数量!!");
}else if(i.getQuantity().equals(byId.getQuantity())){
parcelListEntity.setId(byId.getId());
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue());
}else{
parcelListEntity.setId(byId.getId());
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.bufenqianshou.getValue());
}
distributionParcelListService.updateById(parcelListEntity);
DistributionBillLadingScanEntity billLadingScan = new DistributionBillLadingScanEntity();
billLadingScan.setScanType(2);
billLadingScan.setParcelListId(i.getId());
billLadingScan.setOrderSelfNumbering(i.getOrderCode());
billLadingScan.setStockArticleId(i.getStockArticleId());
billLadingScan.setBillLadingId(billLadingAppDTO.getBillLadingId());
billLadingScan.setMaterialType("3");
billLadingScan.setQuantity(i.getQuantity());
//获取全部订单的全部预约数量
// int sum = list.stream().filter(z -> z.getStockArticleId().equals(i.getStockArticleId())).collect(Collectors.toList()).stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
//获取已签收数量
List<DistributionBillLadingScanEntity> list1 = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingAppDTO.getBillLadingId())
.eq(DistributionBillLadingScanEntity::getStockArticleId, i.getStockArticleId())
.eq(DistributionBillLadingScanEntity::getScanType, "2")
);
if(!list1.isEmpty()){
int sum1 = list1.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
//修改提货订单状态
updateBillStock(sum1+i.getQuantity(),list,i.getStockArticleId(),billLadingAppDTO.getBillLadingId());
}
//添加签收记录
distributionBillLadingScanService.save(billLadingScan);
//修改提货状态
distributionAsyncService.getStockUPstate(billLadingAppDTO.getBillLadingId());
return Resp.scanSuccess("签收成功!","签收成功!");
}
/**
* 修改订单状态
* @return
*/
public Boolean updateStockArticle(Integer sum ,Long stockArticleId){
DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity();
//查询 订单数量
DistributionStockArticleEntity byId = distributionStockArticleService.getById(stockArticleId);
if(sum.equals(byId.getTotalNumber())){
stockArticleEntity.setOrderReceiveStatus(OrderStatusConstant.bufenqianshou.getValue());
}else{
stockArticleEntity.setOrderReceiveStatus(OrderStatusConstant.qianshou.getValue());
}
//修改订单状态
stockArticleEntity.setId(stockArticleId);
return distributionStockArticleService.updateById(stockArticleEntity);
}
/**
* 修改提货订单状态
*/
public Boolean updateBillStock(Integer sum,List<DistributionReservationZeroPackageEntity> list,Long stockArticleId,Long billLadingId){
int sum1 = list.stream().collect(Collectors.groupingBy(DistributionReservationZeroPackageEntity::getStockArticleId)).get(stockArticleId).stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
if(sum >= sum1){
//修改提货提货状态
return distrilbutionBillStockService.update(Wrappers.<DistrilbutionBillStockEntity>update()
.eq("bill_lading_id",billLadingId)
.eq("stock_article_id",stockArticleId)
.set("conditions",2)
);
}
return false;
}
}

Loading…
Cancel
Save