|
|
|
@ -16,6 +16,7 @@
|
|
|
|
|
*/ |
|
|
|
|
package com.logpm.distribution.service.impl; |
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
|
|
@ -157,7 +158,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
public List<DistributionSignforExcel> exportDistributionSignfor(Map<String, Object> distributionSignfor) { |
|
|
|
|
|
|
|
|
|
Object o = distributionSignfor.get("ids"); |
|
|
|
|
if(ObjectUtils.isNotNull(o)){ |
|
|
|
|
if (ObjectUtils.isNotNull(o)) { |
|
|
|
|
distributionSignfor.remove("ids"); |
|
|
|
|
} |
|
|
|
|
// BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
|
|
|
|
@ -468,21 +469,21 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
DistributionSignforVO distributionSignforVO = baseMapper.selectOneCustom(id); |
|
|
|
|
//查询客户下的订单列表信息
|
|
|
|
|
DistributionSignforEntity signforEntity = this.getById(id); |
|
|
|
|
if (Func.isEmpty(signforEntity)){ |
|
|
|
|
log.error("###########查询签收信息异常,id:{}",id); |
|
|
|
|
if (Func.isEmpty(signforEntity)) { |
|
|
|
|
log.error("###########查询签收信息异常,id:{}", id); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleService.list(Wrappers.<DistributionReservationStockarticleEntity>query().lambda().eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId()).ne( |
|
|
|
|
DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())); |
|
|
|
|
if (Func.isEmpty(reservationStockarticleEntityList)){ |
|
|
|
|
log.error("#####################预约查询无订单信息,reservationId:{}",signforEntity.getReservationId()); |
|
|
|
|
if (Func.isEmpty(reservationStockarticleEntityList)) { |
|
|
|
|
log.error("#####################预约查询无订单信息,reservationId:{}", signforEntity.getReservationId()); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
List<Long> orderIds = reservationStockarticleEntityList.stream().map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList()); |
|
|
|
|
List<DistributionStockArticleEntity> stockArticleEntities = distributionStockArticleService.listByIds(orderIds); |
|
|
|
|
List<DistributionSignPrintVO> printEntities = baseMapper.selectSignImgsUrl(distributionSignforVO.getReservationId()); |
|
|
|
|
List<DistributionSignPrintVO> printEntities = baseMapper.selectSignImgsUrl(distributionSignforVO.getReservationId()); |
|
|
|
|
distributionSignforVO.setPrintVOList(printEntities); |
|
|
|
|
if (Func.isNotEmpty(stockArticleEntities)){ |
|
|
|
|
if (Func.isNotEmpty(stockArticleEntities)) { |
|
|
|
|
distributionSignforVO.setOrderInfo(DistributionStockArticleWrapper.build().listVO(stockArticleEntities)); |
|
|
|
|
} |
|
|
|
|
// List<DistributionStockArticleVO> stockArticleEntityList = baseMapper.selectOrderList(id);
|
|
|
|
@ -564,7 +565,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
.eq(DistributionLoadscanEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) |
|
|
|
|
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
if (Func.isNotEmpty(loadscanEntity)){ |
|
|
|
|
if (Func.isNotEmpty(loadscanEntity)) { |
|
|
|
|
if (loadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) { |
|
|
|
|
return Resp.scanFail("重复操作!!", "重复操作"); |
|
|
|
|
} |
|
|
|
@ -854,10 +855,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
List<DistributionLoadscaninvnEntity> inventoryScanList = distributionLoadscaninvnService.list(Wrappers.<DistributionLoadscaninvnEntity>query().lambda() |
|
|
|
|
.eq(DistributionLoadscaninvnEntity::getReservationId, distributionAppReservationVO.getId()) |
|
|
|
|
.ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
if (Func.isNotEmpty(packageScanList)){ |
|
|
|
|
if (Func.isNotEmpty(packageScanList)) { |
|
|
|
|
loadingNum.getAndAdd(packageScanList.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum()); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(inventoryScanList)){ |
|
|
|
|
if (Func.isNotEmpty(inventoryScanList)) { |
|
|
|
|
loadingNum.getAndAdd(inventoryScanList.stream().mapToInt(DistributionLoadscaninvnEntity::getLoadedNub).sum()); |
|
|
|
|
} |
|
|
|
|
distributionAppReservationVO.setLoadedNumber(loadingNum.get()); |
|
|
|
@ -1179,7 +1180,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
); |
|
|
|
|
AtomicInteger signNum = new AtomicInteger(); |
|
|
|
|
AtomicInteger loadNum = new AtomicInteger(); |
|
|
|
|
if (Func.isNotEmpty(loadscanEntities)){ |
|
|
|
|
if (Func.isNotEmpty(loadscanEntities)) { |
|
|
|
|
//统计库存品配送数和签收数
|
|
|
|
|
loadNum.getAndAdd(loadscanEntities.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum()); |
|
|
|
|
signNum.getAndAdd(loadscanEntities.stream().mapToInt(DistributionLoadscanEntity::getReceivedQuantity).sum()); |
|
|
|
@ -1190,12 +1191,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
distributionAppDeliveryListVO.setInventoryNub(0); |
|
|
|
|
distributionAppDeliveryListVO.setDeliveryNumber(0); |
|
|
|
|
AtomicInteger deliveryNub = new AtomicInteger(); |
|
|
|
|
if (Func.isNotEmpty(inventory)){ |
|
|
|
|
if (Func.isNotEmpty(inventory)) { |
|
|
|
|
int inventoryNub = inventory.stream().mapToInt(DisStockListDetailEntity::getNum).sum(); |
|
|
|
|
distributionAppDeliveryListVO.setInventoryNub(inventoryNub); |
|
|
|
|
deliveryNub.getAndAdd(inventoryNub); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(parcelListEntities)){ |
|
|
|
|
if (Func.isNotEmpty(parcelListEntities)) { |
|
|
|
|
deliveryNub.getAndAdd(parcelListEntities.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum()); |
|
|
|
|
distributionAppDeliveryListVO.setDeliveryNumber(deliveryNub.get()); |
|
|
|
|
} |
|
|
|
@ -1210,7 +1211,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
.eq(DistributionLoadscaninvnEntity::getDeliveryId, distributionAppDeliveryListVO.getId()) |
|
|
|
|
.eq(DistributionLoadscaninvnEntity::getSignforState, 2) |
|
|
|
|
); |
|
|
|
|
if (Func.isNotEmpty(distributionLoadscaninvnEntities)){ |
|
|
|
|
if (Func.isNotEmpty(distributionLoadscaninvnEntities)) { |
|
|
|
|
//统计库存品配送数和签收数
|
|
|
|
|
loadNum.getAndAdd(distributionLoadscaninvnEntities.stream().mapToInt(DistributionLoadscaninvnEntity::getLoadedNub).sum()); |
|
|
|
|
signNum.getAndAdd(distributionLoadscaninvnEntities.stream().mapToInt(DistributionLoadscaninvnEntity::getReceivedQuantity).sum()); |
|
|
|
@ -1475,7 +1476,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
loadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date())); |
|
|
|
|
distributionLoadscaninvnService.updateById(loadscaninvnEntity); |
|
|
|
|
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distributionDeliveryListEntity.getId()); |
|
|
|
|
Integer j = distributionSignforMapper.updateSignforNum(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), loadscaninvnEntity.getPackageNub()); |
|
|
|
|
Integer j = distributionSignforMapper.updatesignforByinvn(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), loadscaninvnEntity.getPackageNub()); |
|
|
|
|
} else { |
|
|
|
|
log.error("################库存品未进行备货操作+{}" + list); |
|
|
|
|
//此时说明在同一配送任务下,同一客户出现了相同的库存品包件码
|
|
|
|
@ -1935,9 +1936,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
.eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId()) |
|
|
|
|
.ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())); |
|
|
|
|
List<DistributionParcelListVO> parcelListVOS = new ArrayList<>(); |
|
|
|
|
if (Func.isNotEmpty(reservationStockarticleEntityList)){ |
|
|
|
|
reservationStockarticleEntityList.forEach(rs->{ |
|
|
|
|
if (rs.getIsZero().equals(IsOrNoConstant.no.getValue())){ |
|
|
|
|
if (Func.isNotEmpty(reservationStockarticleEntityList)) { |
|
|
|
|
reservationStockarticleEntityList.forEach(rs -> { |
|
|
|
|
if (rs.getIsZero().equals(IsOrNoConstant.no.getValue())) { |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageByReservationAndStockArticle(rs.getReservationId(), rs.getStockArticleId()); |
|
|
|
|
List<DistributionParcelListVO> parcelListVOList = DistributionParcelListWrapper.build().listVO(parcelListEntityList); |
|
|
|
|
parcelListVOList.forEach(p -> { |
|
|
|
@ -1976,9 +1977,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
parcelListVOS.addAll(parcelListVOList); |
|
|
|
|
}else if (rs.getIsZero().equals(IsOrNoConstant.yes.getValue())){ |
|
|
|
|
} else if (rs.getIsZero().equals(IsOrNoConstant.yes.getValue())) { |
|
|
|
|
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(rs.getReservationId()); |
|
|
|
|
distributionParcelNumberDTOS.forEach(zp->{ |
|
|
|
|
distributionParcelNumberDTOS.forEach(zp -> { |
|
|
|
|
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(zp.getParcelListId()); |
|
|
|
|
DistributionParcelListVO parcelListVO = DistributionParcelListWrapper.build().entityVO(parcelListEntity); |
|
|
|
|
// DistributionParcelListVO parcelListVO = Func.copy(parcelListEntity, DistributionParcelListVO.class);
|
|
|
|
@ -1988,7 +1989,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
parcelListVO.setSigningNub(0); |
|
|
|
|
DistributionLoadscanEntity distributionLoadscanEntity = distributionLoadscanMapper.selectOne(Wrappers.<DistributionLoadscanEntity>query().lambda() |
|
|
|
|
.eq(DistributionLoadscanEntity::getPackageId, zp.getParcelListId()) |
|
|
|
|
.eq(DistributionLoadscanEntity::getReservationId,rs.getReservationId())); |
|
|
|
|
.eq(DistributionLoadscanEntity::getReservationId, rs.getReservationId())); |
|
|
|
|
if (Func.isNotEmpty(distributionLoadscanEntity)) { |
|
|
|
|
//该包件存在扫描记录
|
|
|
|
|
String scanStatus = distributionLoadscanEntity.getScanStatus(); |
|
|
|
@ -2078,7 +2079,34 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
.in(DistributionAddvaluePackageEntity::getPackageId, longs) |
|
|
|
|
.eq(DistributionAddvaluePackageEntity::getAddvalueDetailId, addvalueBySignfor.getAddvalueDetailId())); |
|
|
|
|
List<DistributionAddvaluePackageVO> addvaluePackageVOS = new ArrayList<>(); |
|
|
|
|
distributionAddvaluePackageEntities.forEach(p->{addvaluePackageVOS.add(Func.copy(p,DistributionAddvaluePackageVO.class));}); |
|
|
|
|
distributionAddvaluePackageEntities.forEach(p -> { |
|
|
|
|
Integer conditions = p.getConditions(); |
|
|
|
|
// DistributionAddvaluePackageVO addvaluePackageVO = Func.copy(p, DistributionAddvaluePackageVO.class);
|
|
|
|
|
switch (conditions) { |
|
|
|
|
case 1: |
|
|
|
|
//订制品
|
|
|
|
|
DistributionAddvaluePackageVO addvaluePackageVO = distributionAddvalueMapper.selectAddvaluePackageDetail(p.getPackageId(),distributionAddvalueDTO.getAddvalueId(),distributionAddvalueDTO.getReservationId()); |
|
|
|
|
if (Func.isNotEmpty(addvaluePackageVO)){ |
|
|
|
|
addvaluePackageVOS.add(addvaluePackageVO); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
DistributionAddvaluePackageVO addvalueinventoryPackageVO = distributionAddvalueMapper.selectAddvalueInventoryPackageDetail(p.getPackageId(),distributionAddvalueDTO.getAddvalueId(),distributionAddvalueDTO.getReservationId()); |
|
|
|
|
//库存品
|
|
|
|
|
if (Func.isNotEmpty(addvalueinventoryPackageVO)){ |
|
|
|
|
addvaluePackageVOS.add(addvalueinventoryPackageVO); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 3: |
|
|
|
|
DistributionAddvaluePackageVO addvalueZeroPackageVO = distributionAddvalueMapper.selectAddvalueZeroPackageDetail(p.getPackageId(),distributionAddvalueDTO.getAddvalueId(),distributionAddvalueDTO.getReservationId()); |
|
|
|
|
//库存品
|
|
|
|
|
if (Func.isNotEmpty(addvalueZeroPackageVO)){ |
|
|
|
|
addvaluePackageVOS.add(addvalueZeroPackageVO); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
addvalueBySignfor.setPackageEntityList(addvaluePackageVOS); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -2367,7 +2395,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
if (signingTotalNum.get() > 0) { |
|
|
|
|
str.append("已签收" + signingTotalNum.get() + "件"); |
|
|
|
|
} |
|
|
|
|
return Resp.scanSuccess("", str.toString()); |
|
|
|
|
return Resp.scanSuccess(str.toString(), str.toString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -2576,4 +2604,57 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
this.updateById(distributionSignfor); |
|
|
|
|
return R.status(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<DistributionAddvaluePackageVO> checkAddValuePackageList(IPage<DistributionAddvaluePackageVO> page,Map<String, Object> addValueDTO) { |
|
|
|
|
String reservationId = (String) addValueDTO.get("reservationId"); |
|
|
|
|
if (Func.isEmpty(reservationId)){ |
|
|
|
|
log.error("##################无reservationId"); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationMapper.selectStockArticleByReservationId(Long.parseLong(reservationId)); |
|
|
|
|
List<DistributionAddvaluePackageVO> addvaluePackageVOS = new ArrayList<>(); |
|
|
|
|
if (Func.isNotEmpty(reservationStockarticleEntityList)){ |
|
|
|
|
List<Long> orderIds = reservationStockarticleEntityList.stream().map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList()); |
|
|
|
|
LambdaQueryWrapper<DistributionStockArticleEntity> orderQW = Wrappers.<DistributionStockArticleEntity>query().lambda().in(DistributionStockArticleEntity::getId, orderIds); |
|
|
|
|
if (Func.isNotEmpty(addValueDTO.get("orderCode"))){ |
|
|
|
|
orderQW.like(DistributionStockArticleEntity::getOrderCode, addValueDTO.get("orderCode")); |
|
|
|
|
} |
|
|
|
|
List<DistributionStockArticleEntity> orderList = distributionStockArticleService.list(orderQW); |
|
|
|
|
orderList.forEach(rs->{ |
|
|
|
|
if (rs.getIsZero().equals(IsOrNoConstant.no.getValue())){ |
|
|
|
|
List<DistributionAddvaluePackageVO> addvaluepackageVO = distributionAddvalueMapper.selectAddvaluePackageVO(Long.parseLong(reservationId),rs.getId(),addValueDTO); |
|
|
|
|
if (Func.isNotEmpty(addvaluepackageVO)){ |
|
|
|
|
addvaluePackageVOS.addAll(addvaluepackageVO); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
List<DistributionAddvaluePackageVO> addvalueZeroPackageVO = distributionAddvalueMapper.selectAddvalueZeroPackageVO(Long.parseLong(reservationId),rs.getId(),addValueDTO); |
|
|
|
|
if (Func.isNotEmpty(addvalueZeroPackageVO)){ |
|
|
|
|
addvaluePackageVOS.addAll(addvalueZeroPackageVO); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(Long.parseLong(reservationId)); |
|
|
|
|
|
|
|
|
|
if (Func.isNotEmpty(distributionReservationStocklistEntities)){ |
|
|
|
|
List<Long> inventoryIds = distributionReservationStocklistEntities.stream().map(DistributionReservationStocklistEntity::getStocklistId).collect(Collectors.toList()); |
|
|
|
|
LambdaQueryWrapper<DistributionStockListEntity> inventoryQW = Wrappers.<DistributionStockListEntity>query().lambda().in(DistributionStockListEntity::getId, inventoryIds); |
|
|
|
|
if (Func.isNotEmpty(addValueDTO.get("materialName"))){ |
|
|
|
|
inventoryQW.like(DistributionStockListEntity::getDescriptionGoods,(String)addValueDTO.get("materialName")); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(addValueDTO.get("materialCode"))){ |
|
|
|
|
inventoryQW.like(DistributionStockListEntity::getCargoNumber,(String)addValueDTO.get("materialCode")); |
|
|
|
|
} |
|
|
|
|
List<DistributionStockListEntity> stockListEntityList = distributionStockListService.list(inventoryQW); |
|
|
|
|
stockListEntityList.forEach(inven->{ |
|
|
|
|
List<DistributionAddvaluePackageVO> addvalueinventoryPackageVO = distributionAddvalueMapper.selectAddvalueInventoryPackageVO(Long.parseLong(reservationId),inven.getId(),addValueDTO); |
|
|
|
|
if (Func.isNotEmpty(addvalueinventoryPackageVO)){ |
|
|
|
|
addvaluePackageVOS.addAll(addvalueinventoryPackageVO); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return page.setRecords(addvaluePackageVOS); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|