Browse Source

修改自提签收查询数据

training
caoyizhong 1 year ago
parent
commit
ce3cc9cf1c
  1. 3
      blade-biz-common/src/main/java/org/springblade/common/constant/orderpackage/OrderPackageStatusConstant.java
  2. 3
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java
  3. 56
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java
  4. 53
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java
  5. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java
  6. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
  7. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  8. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  9. 40
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
  10. 56
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  11. 52
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
  12. 225
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

3
blade-biz-common/src/main/java/org/springblade/common/constant/orderpackage/OrderPackageStatusConstant.java

@ -14,7 +14,8 @@ public enum OrderPackageStatusConstant {
zhiliu("滞留", "40"),
// yizhuangche("已装车", "50"),
yichuku("已出库", "60"),
yiqianshou("已签收", "70");
yiqianshou("已签收", "70"),
bufenqianshou("部分签收", "80");
/**
* 状态

3
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java

@ -48,6 +48,9 @@ public class DistributionBillLadingScanEntity extends BaseEntity {
@ApiModelProperty(value = "扫码类型 1 pda扫码 2 手填")
private Integer scanType;
@ApiModelProperty(value = "数量")
private Integer quantity;
@ApiModelProperty(value = "物资类型 1库存品 2 订单")
private String materialType;

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

@ -0,0 +1,56 @@
package com.logpm.distribution.vo.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class DistrilbutionAppBillLadingZeroVO implements Serializable {
private Long id;
/**
* 订单自编号
*/
@ApiModelProperty(value = "订单自编号")
private String orderCode;
/**
* 一级品
*/
@ApiModelProperty(value = "一级品")
private String firsts;
/**
* 运单号
*/
@ApiModelProperty(value = "运单号")
private String waybillNumber;
/**
* 在库订单ID
*/
@ApiModelProperty(value = "在库订单ID")
private Long stockArticleId;
/**
* 服务号
*/
@ApiModelProperty(value = "服务号")
private String serviceNumber;
/**
* 包件状态
*/
@ApiModelProperty(value = "包件状态")
private String orderPackageStatus;
/**
* 总数量
*/
@ApiModelProperty(value = "总数量")
private Integer quantity;
/**
* 预约数量
*/
@ApiModelProperty(value = "预约数量")
private Integer reservationQuantity;
}

53
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java

@ -17,6 +17,7 @@
package com.logpm.distribution.appcontroller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.distribution.bean.Resp;
import com.logpm.distribution.dto.app.BillLadingAppDTO;
@ -122,4 +123,56 @@ public class DistributionBillLadingAppController extends BladeController {
return scan;
}
@PostMapping("/zeroBillPackData")
@ApiOperation(value = "零担自提包件签收数据查询")
public R zeroBillPackData(@RequestBody BillLadingAppDTO billLadingAppDTO) {
log.debug("=====零担签收数据:{}",billLadingAppDTO);
if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) {
return R.fail(3002, "自提id不能为空 !");
}
R b = distrilbutionBillLadingService.zeroBillPackData(billLadingAppDTO);
return b;
}
@PostMapping("/zeroBillOrderData")
@ApiOperation(value = "零担自提订单签收数据查询")
public R zeroBillOrderData(@RequestBody BillLadingAppDTO billLadingAppDTO) {
log.debug("=====零担签收数据:{}",billLadingAppDTO);
if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) {
return R.fail(3002, "自提id不能为空 !");
}
R b = distrilbutionBillLadingService.zeroBillOrderData(billLadingAppDTO);
return b;
}
@PostMapping("/zeroBillBatch")
@ApiOperation(value = "零担自提批量签收")
public R zeroBillBatch(@RequestBody BillLadingAppDTO billLadingAppDTO) {
log.debug("=====零担自提签收:{}",billLadingAppDTO);
if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) {
return R.fail(3002, "自提id不能为空 !");
}
if(billLadingAppDTO.getList().isEmpty()){
return R.fail(3002, "零担数据不能为空 !");
}
R b = distrilbutionBillLadingService.zeroBill(billLadingAppDTO);
return b;
}
@PostMapping("/zeroBillPack")
@ApiOperation(value = "零担自提单个签收")
public R zeroBillPack(@RequestBody BillLadingAppDTO billLadingAppDTO) {
log.debug("=====零担自提签收:{}",billLadingAppDTO);
if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) {
return R.fail(3002, "自提id不能为空 !");
}
if(billLadingAppDTO.getList().isEmpty()){
return R.fail(3002, "零担数据不能为空 !");
}
R b = distrilbutionBillLadingService.zeroBillPack(billLadingAppDTO);
return b;
}
}

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

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

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

@ -138,7 +138,7 @@
and ldbs.stock_article_id = #{param.stockArticleId}
</if>
<if test="param.stockArticleIdList != null">
and ldbs.stock_article_id in #{param.stockArticleId}
and ldbs.stock_article_id in
<foreach collection="param.stockArticleIdList" open="(" close=")" separator="," item="a">
#{a}
</foreach>

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

@ -26,6 +26,7 @@ import com.logpm.distribution.excel.DistrilbutionBillLadingExcel;
import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.tool.api.R;
import java.util.List;
import java.util.Map;

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

@ -127,7 +127,7 @@
from logpm_distribution_parcel_list ldpl
left join logpm_distribution_bill_lading_scan ldbls on ldbls.parcel_list_id = ldpl.id and ldbls.is_deleted = 0
<where>
and ldpl.is_deleted = 0
and ldpl.is_deleted = 0 and ldpl.order_package_code is not null
and ldpl.stock_article_id = #{stockArticleId}
<if test="orderCode != null and orderCode !=''">
and ldpl.order_code = ${orderCode}

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

@ -26,6 +26,7 @@ import com.logpm.distribution.excel.DistrilbutionBillLadingExcel;
import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import java.util.List;
import java.util.Map;
@ -59,11 +60,24 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
IPage<DistrilbutionBillLadingVO> pageList(IPage<Object> page, Map<String, Object> distrilbutionBillLading);
/**
* pda列表
* @param page
* @param billLadingAppDTO
* @return
*/
IPage<DistrilbutionBillLadingAppVO> pageListApp(IPage<Object> page, BillLadingAppDTO billLadingAppDTO);
DistrilbutionAppBillLadingOrderMainVO selectOrderList(Long billLadingId, Integer orderStatus,String orderSelfNumbering);
/**
* 包件列表数据
* @param billLadingId
* @param scanStatus
* @param orderSelfNumbering
* @return
*/
DistrilbutionBillLadingAppVO selectDetailList(Long billLadingId, Integer scanStatus,String orderSelfNumbering);
/**
@ -144,5 +158,31 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
*/
IPage<DistrilbutionBillLadingVO> billStockList(IPage<DistrilbutionBillLadingVO> page,Map<String, Object> distrilbutionBillLading);
/**
* 零担包件品类数据查询
* @param billLadingAppDTO
* @return
*/
R zeroBillPackData(BillLadingAppDTO billLadingAppDTO);
/**
* 零担签收
* @param billLadingAppDTO
* @return
*/
R zeroBill(BillLadingAppDTO billLadingAppDTO);
/**
* 零担查询订单信息
* @param billLadingAppDTO
* @return
*/
R zeroBillOrderData(BillLadingAppDTO billLadingAppDTO);
/**
* 零担单个签收
* @param billLadingAppDTO
* @return
*/
R zeroBillPack(BillLadingAppDTO billLadingAppDTO);
}

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

@ -912,6 +912,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Transactional(rollbackFor = Exception.class)
public void getStockUPstate(Long billLadingId) {
try {
Thread.sleep(300L);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//查询订单数
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId)
@ -919,23 +924,48 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
);
AtomicReference<Integer> pack = new AtomicReference<>(0); // 包件数量
AtomicReference<Integer> packys = new AtomicReference<>(0); // 包件以扫数量
//查询零担的数据
List<DistributionReservationZeroPackageEntity> list3 = reservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingId)
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
if(!list3.isEmpty()){
//零担数据
int sum = list3.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
pack.set(pack.get()+sum);
}
boolean apj = false;
if (list.size() > 0) {
//查询包件数量
list.forEach(i -> {
List<DistributionParcelListEntity> list1 = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getStockArticleId, i.getStockArticleId())
);
//查询扫码数量
List<DistributionBillLadingScanEntity> list2 = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId)
.eq(DistributionBillLadingScanEntity::getStockArticleId, i.getStockArticleId())
);
pack.set(pack.get() + list1.size());
packys.set(packys.get() + list2.size());
// list.forEach(i -> {
// List<DistributionParcelListEntity> list1 = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
// .eq(DistributionParcelListEntity::getStockArticleId, i.getStockArticleId())
// .isNotNull(DistributionParcelListEntity::getOrderPackageCode)
// );
// //查询扫码数量
// List<DistributionBillLadingScanEntity> list2 = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
// .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId)
// .eq(DistributionBillLadingScanEntity::getStockArticleId, i.getStockArticleId())
// );
// pack.set(pack.get() + list1.size());
// packys.set(packys.get() + list2.size());
//
// });
});
if (pack.get().equals(packys.get())) {
//查询包件数量
List<DistributionStockPackageVO> distributionStockPackageVOS = distrilbutionBillStockService.listPackageSelf(billLadingId);
int size = distributionStockPackageVOS.size(); //包件数量
pack.set(pack.get()+size);
//查询签收数量
List<DistributionBillLadingScanEntity> list2 = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId)
);
int sum = list2.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();// 签收数量
packys.set(packys.get() + sum);
if (pack.get() <= (packys.get())) {
apj = true;
}
} else {

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

@ -296,35 +296,30 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
//查询有没有零担
List<DistributionReservationZeroPackageEntity> list = reservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, z.getReservationId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
if(list.isEmpty()){
//有定制品 查询数量
if(z.getStockUpType().equals("3")){
//自提
List<DistributionStockPackageVO> list2 = distrilbutionBillStockService.listPackageSelf(z.getReservationId());
nu.set(list2.size());
}else{
//商,市
List<DistributionReservationPackageEntity> list2 = distributionReservationPackageService.list(Wrappers.<DistributionReservationPackageEntity>query().lambda()
.eq(DistributionReservationPackageEntity::getReservationId, z.getReservationId())
.eq(DistributionReservationPackageEntity::getIsDeleted,0)
.in(DistributionReservationPackageEntity::getPacketBarStatus,"1","3")
);
nu.set(list2.size());
}
}else{
// 查询零担数量
List<DistributionReservationZeroPackageEntity> list2 = reservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, z.getReservationId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
int sum = list2.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
if(!list.isEmpty()){
int sum = list.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
nu.set((int) (nu.get() + sum));
b.set(true);
//自提
List<DistributionStockPackageVO> list2self = distrilbutionBillStockService.listPackageSelf(z.getReservationId());
nu.set(nu.get()+list2self.size());
// List<DistributionStockPackageVO> list2self = distrilbutionBillStockService.listPackageSelf(z.getReservationId());
// nu.set(nu.get()+list2self.size());
}
if(z.getStockUpType().equals("3")){
//自提
List<DistributionStockPackageVO> list2 = distrilbutionBillStockService.listPackageSelf(z.getReservationId());
nu.set(nu.get()+list2.size());
}else{
//商,市
List<DistributionReservationPackageEntity> list2 = distributionReservationPackageService.list(Wrappers.<DistributionReservationPackageEntity>query().lambda()
.eq(DistributionReservationPackageEntity::getReservationId, z.getReservationId())
.eq(DistributionReservationPackageEntity::getIsDeleted,0)
.in(DistributionReservationPackageEntity::getPacketBarStatus,"1","3")
);
nu.set(nu.get()+list2.size());
}
});
@ -447,8 +442,15 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
stockupDTO.setReservationId(Long.parseLong(split[i]));
DistributionStockupListVO distributionStockupListVO = baseMapper.selectStockupClientInfo(stockupDTO);
if (ObjectUtils.isNotNull(distributionStockupListVO)) {
QueryWrapper<DistributionReservationZeroPackageEntity> queryWrapper = new QueryWrapper<>();
//查询有没有零担数据
queryWrapper.eq("reservation_id",stockupDTO.getReservationId());
queryWrapper.eq("is_deleted",0);
queryWrapper.in("zero_package_status","1","3");
List<DistributionReservationZeroPackageEntity> list1 = reservationZeroPackageService.list(queryWrapper);
intToStrDistributionStockupListVO(distributionStockupListVO);
distributionStockupListVO.setReservationId(Long.parseLong(split[i]));
distributionStockupListVO.setPlanNum(distributionStockupListVO.getPlanNum()+ list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum());
list.add(distributionStockupListVO);
}
}

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

@ -38,10 +38,7 @@ import com.logpm.distribution.excel.DistrilbutionBillLadingExcel;
import com.logpm.distribution.mapper.DistrilbutionBillLadingMapper;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO;
import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO;
import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderVO;
import com.logpm.distribution.vo.app.DistrilbutionBillLadingInventoryAppVO;
import com.logpm.distribution.vo.app.*;
import com.logpm.distribution.wrapper.DistributionStockArticleWrapper;
import lombok.AllArgsConstructor;
import org.redisson.api.RLock;
@ -49,6 +46,7 @@ import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.billLading.BillLadingStatusConstant;
import org.springblade.common.constant.order.OrderReservationStatusConstant;
import org.springblade.common.constant.order.OrderStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.stockup.StockAssignStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
import org.springblade.common.constant.stockup.StockupTypeConstant;
@ -56,6 +54,7 @@ import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictBizCache;
@ -594,7 +593,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
@Override
public IPage<DistrilbutionBillLadingAppVO> pageListApp(IPage<Object> page, BillLadingAppDTO billLadingAppDTO) {
//查询仓库信息
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if(ObjectUtils.isNotNull(myCurrentWarehouse)){
billLadingAppDTO.setWarehouseId(myCurrentWarehouse.getId()); //仓库ID
@ -602,17 +601,31 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
billLadingAppDTO.setPickUpTimeStart(billLadingAppDTO.getPickUpTimeStart()+" 00:00:00");
billLadingAppDTO.setPickUpTimeEnd(billLadingAppDTO.getPickUpTimeEnd()+" 23:59:59");
}
//查询自提数据
IPage<DistrilbutionBillLadingAppVO> pageList = baseMapper.pageListApp(page, billLadingAppDTO);
List<DistrilbutionBillLadingAppVO> records = pageList.getRecords();
for (DistrilbutionBillLadingAppVO vo : records) {
//有可能存在多个订单所以需要拆分
String stockArticleId = vo.getStockArticleId();
Integer orderNum = 0;
Integer planNum = 0;
Integer signedNum = 0;
Integer orderNum = 0; //订单总数
Integer planNum = 0; //预约数量
Integer signedNum = 0; //签收数量
Integer inventoryNub = 0; //库存品
String[] split = stockArticleId.split(",");
List<DistributionReservationZeroPackageEntity> list1 = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, vo.getBillLadingId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "2")
);
if(!list1.isEmpty()){
//有零担
int sum = list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
planNum = planNum + sum;
}
for (String s : split) {
if (StringUtil.isBlank(s)) {
continue;
@ -621,16 +634,20 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("stock_article_id", Long.parseLong(s))
.eq("is_deleted", 0);
queryWrapper.isNotNull("order_package_code");
List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
int pn = list.size();
int pn = list.size(); //包件数量
planNum = planNum + pn;
//通过订单id查询扫描表中有多少数据
QueryWrapper<DistributionBillLadingScanEntity> qw = new QueryWrapper<>();
qw.eq("stock_article_id", Long.parseLong(s))
.eq("is_deleted", 0);
List<DistributionBillLadingScanEntity> ls = distributionBillLadingScanService.list(qw);
int sn = ls.size();
signedNum = signedNum + sn;
if(!ls.isEmpty()){
int sum = ls.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
signedNum = signedNum + sum;
}
}
//查询库存品的件数量
DistributionDeliveryDetailsVO list = distributionDeliveryDetailsService.oneListNum(vo.getBillLadingId());
@ -775,7 +792,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (Objects.isNull(main)) {
return null;
}
//有可能存在多个订单所以需要拆分
String stockArticleId = main.getStockArticleId();
List<DistrilbutionAppBillLadingDetailVO> dls = main.getList();
@ -783,6 +799,17 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
Integer planNum = 0;
Integer conpleteNum = 0;
Integer signedNum = 0;
List<DistributionReservationZeroPackageEntity> list1 = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, main.getBillLadingId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
if(!list1.isEmpty()){
int sum = list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
planNum += sum;
}
String[] split = stockArticleId.split(",");
for (String s : split) {
@ -812,6 +839,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("stock_article_id", Long.parseLong(s))
.eq("is_deleted", 0);
queryWrapper.isNotNull("order_package_code");
List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper);
int pn = list.size();
planNum = planNum + pn;
@ -820,14 +848,15 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
qw.eq("stock_article_id", Long.parseLong(s))
.eq("is_deleted", 0);
List<DistributionBillLadingScanEntity> ls = distributionBillLadingScanService.list(qw);
int sn = ls.size();
signedNum = signedNum + sn;
if (pn == sn) {
conpleteNum++;
if(!ls.isEmpty()){
int sum = ls.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
signedNum = signedNum + sum;
if (pn == sum) {
conpleteNum++;
}
}
}
main.setCompleteNum(conpleteNum);
main.setCompleteNum(conpleteNum); //齐套总数
main.setOrderNum(orderNum);
main.setSignedNum(signedNum);
main.setPlanNum(planNum);
@ -1086,6 +1115,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionAsyncService.getInventorySelfPickup(inventoryAppVO.getStockArticleId());
distributionBillLadingScan.setPacketBarCode((String) coding);
distributionBillLadingScan.setStockListId(inventoryAppVO.getStockListId());
distributionBillLadingScan.setQuantity(1);
distributionBillLadingScanService.save(distributionBillLadingScan);
} else {
return Resp.scanFail("包件信息不存在", "包件信息不存在");
@ -1135,6 +1165,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionBillLadingScan.setPacketBarCode(String.valueOf(coding));
//订单
distributionBillLadingScan.setStockArticleId(one.getId());
distributionBillLadingScan.setQuantity(1);
distributionBillLadingScan.setBillLadingId(Long.parseLong((String) billLadingId));
}
});
@ -1364,9 +1395,13 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionStockupEntity.setAssignStatus(StockAssignStatusConstant.weizhipai.getValue());
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getWarehouseByDepartment(AuthUtil.getDeptId());
if (ObjectUtils.isNotNull(basicdataWarehouseEntity)){
distributionStockupEntity.setWarehouseId(basicdataWarehouseEntity.getId());
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
// BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getWarehouseByDepartment(AuthUtil.getDeptId());
if (ObjectUtils.isNotNull(myCurrentWarehouse)){
distributionStockupEntity.setWarehouseId(myCurrentWarehouse.getId());
}else{
throw new ServiceException("仓库信息未读取到,请选择仓库后在操作!");
}
//todo 库位 获取自提任务的ID 查询下面的订单 包件 库存品信息 的货位信息
// distributionStockupEntity.setStockipAllocation();
@ -1391,4 +1426,152 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
page.setRecords(result);
return page;
}
/**
* 零担的物料数据查询
* @param billLadingAppDTO
* @return
*/
@Override
public R zeroBillPackData(BillLadingAppDTO billLadingAppDTO) {
List<DistributionReservationZeroPackageEntity> list = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingAppDTO.getBillLadingId())
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
List<DistrilbutionAppBillLadingZeroVO> parcelListEntityList = new ArrayList<>();
if(!list.isEmpty()){
list.forEach( i -> {
//查询品类信息
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());
parcelListEntityList.add(billLadingZeroVO);
});
}
return R.data(parcelListEntityList);
}
/**
* 零担批量签收
* @param billLadingAppDTO
* @return
*/
@Override
public R zeroBill(BillLadingAppDTO billLadingAppDTO) {
//设置lockey
String lockKey ="lock:" + billLadingAppDTO.getBillLadingId();
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)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
//添加自提签收数据
List<DistributionBillLadingScanEntity> billLadingScanList = new ArrayList<>();
// billLadingAppDTO.getList().forEach(i ->{
// //判断是否大于总件数的数量
// DistributionParcelListEntity byId = distributionParcelListService.getById(i.getId());
// if(i.getQuantity() > byId.getQuantity()){
// throw new ServiceException("签收数量大于订单数量!!");
// }
// 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());
// billLadingScanList.add(billLadingScan);
// });
//修改签收状态
billLadingAppDTO.getList().stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getStockArticleId))
.forEach((k,v) ->{
v.forEach(i ->{
//修改包件签收状态
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());
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)
);
}
});
if(!billLadingScanList.isEmpty()){
distributionBillLadingScanService.saveBatch(billLadingScanList);
return Resp.scanSuccess("签收成功!","签收成功!");
}
distributionAsyncService.getStockUPstate(billLadingAppDTO.getBillLadingId());
return Resp.scanSuccess("签收失败!","签收失败!");
}
/**
* 查询订单信息
* @param billLadingAppDTO
* @return
*/
@Override
public R zeroBillOrderData(BillLadingAppDTO billLadingAppDTO) {
return null;
}
/**
* 零担单个签收
* @param billLadingAppDTO
* @return
*/
@Override
public R zeroBillPack(BillLadingAppDTO billLadingAppDTO) {
return null;
}
}

Loading…
Cancel
Save