Browse Source

修改备货扫描部分查询

training
caoyizhong 2 years ago
parent
commit
56837d8fd7
  1. 5
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionReservationStocklistEntity.java
  2. 159
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
  3. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java
  4. 12
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
  5. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/DistributionErrorQueueHandler.java
  6. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java
  7. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  8. 152
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
  9. 2
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWarehousingEntryServiceImpl.java

5
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionReservationStocklistEntity.java

@ -51,6 +51,11 @@ public class DistributionReservationStocklistEntity extends TenantEntity {
*/
@ApiModelProperty(value = "预约数量")
private Integer reservationNum;
/**
* 实际数量
*/
@ApiModelProperty(value = "实际数量")
private Integer realityNum;
/**
* 库存品单位

159
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java

@ -317,10 +317,7 @@ public class DistributionStockupAppController extends BladeController {
//包件扫描
String orderCode = stockupDTO.getOrderCode();//订单自编号
String packetBarCode = stockupDTO.getPacketBarCode();//包件码
// String stockupArea = stockupDTO.getStockupArea();//备货区
Long stockupId = stockupDTO.getStockupId();//备货任务ID
// Long stockupId = Long.parseLong("1694647730430791682");//备货任务ID
// Long reservationId = Long.parseLong("1694649954590613505");//预约单id
Long reservationId = stockupDTO.getReservationId();//预约单id
if(StringUtil.isBlank(orderCode)){
log.warn("##################stockupScan: 包件扫码,订单自编号为空");
@ -338,40 +335,55 @@ public class DistributionStockupAppController extends BladeController {
log.warn("##################stockupScan: 包件扫码,预约单id为空");
return R.fail("包件扫码:预约单id不能为空");
}
//先保存扫码包件信息,后续由队列来出来余下补充信息
DistributionStockEntity entity = new DistributionStockEntity();
entity.setOrderSelfNumbering(orderCode);
entity.setCoding(packetBarCode);
Integer integer = distributionStockupService.selectPackage(stockupDTO);
switch (integer){
case 1:
//正常
//先保存扫码包件信息,后续由队列来出来余下补充信息
DistributionStockEntity entity = new DistributionStockEntity();
entity.setOrderSelfNumbering(orderCode);
entity.setCoding(packetBarCode);
// entity.setStockupArea(stockupArea);
entity.setStockupId(stockupId);
entity.setReservationId(reservationId);
entity.setConditions("0");
entity.setType(2);
distributionStockService.save(entity);
Map<String, Object> map = new HashMap<>();
map.put("messageId", CommonUtil.getUUID());
map.put("scanType", scanType);
map.put("logId", entity.getId());
map.put("messageData", entity);
map.put("createTime", new Date().getTime());
// Integer scanType = (Integer) map.get("scanType");
DistributionStockEntity distributionStockEntity = (DistributionStockEntity) map.get("messageData");
//根据扫码类型处理不同的数据
if(scanType == 1){
distributionStockService.repairPackageScanInfo(distributionStockEntity);
}else if(scanType == 2){
distributionStockService.repairStockListScanInfo(distributionStockEntity);
}else{
log.warn("################stockupScanHandler: 未知的扫码类型 scanType={}",scanType);
entity.setStockupId(stockupId);
entity.setReservationId(reservationId);
entity.setConditions("0");
entity.setType(2);
distributionStockService.save(entity);
Map<String, Object> map = new HashMap<>();
map.put("messageId", CommonUtil.getUUID());
map.put("scanType", scanType);
map.put("logId", entity.getId());
map.put("messageData", entity);
map.put("createTime", new Date().getTime());
//将消息携带绑定键值
rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_SCAN_EXCHANGE, RabbitConstant.STOCKUP_SCAN_ROUTING, map);
String audioValue = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "1");
return Resp.scanSuccess("扫描成功!",audioValue);
case 2:
//扫码失败
String audioValue2 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "2");
return Resp.scanFail("重复扫描!",audioValue2);
case 3:
//重复扫码
String audioValue3 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "3");
return Resp.scanFail("包件不存在!",audioValue3);
case 4:
//重复扫码
String audioValue4 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "4");
return Resp.scanFail("操作失败!",audioValue4);
case 5:
//重复扫码
String audioValue5 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "5");
return Resp.scanFail("窜货!",audioValue5);
default:
log.warn("###备货扫描:未知错误");
return Resp.scanFail("未知错误!","未知错误");
}
//将消息携带绑定键值
rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_SCAN_EXCHANGE, RabbitConstant.STOCKUP_SCAN_ROUTING, map);
String audioValue = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "1");
return Resp.scanSuccess("success",audioValue);
}else if(scanType == 2){
//库存品扫描
Long reservationId = stockupDTO.getReservationId();
@ -395,40 +407,61 @@ public class DistributionStockupAppController extends BladeController {
log.warn("##################stockupScan: 库存品扫码,预约单id为空");
return R.fail("库存品扫码:预约单id不能为空");
}
//先保存扫码包件信息,后续由队列来出来余下补充信息
DistributionStockEntity entity = new DistributionStockEntity();
entity.setCoding(packetBarCode);
Integer integer = distributionStockupService.selectPackage(stockupDTO);
switch (integer){
case 1:
//先保存扫码包件信息,后续由队列来出来余下补充信息
DistributionStockEntity entity = new DistributionStockEntity();
entity.setCoding(packetBarCode);
// entity.setStockupArea(stockupArea);
entity.setStockupId(stockupId);
entity.setReservationId(reservationId);
entity.setStockListId(stockListId);
//添加物料信息
DistributionStockListEntity byId = iDistributionStockListService.getById(stockListId);
if(ObjectUtils.isNotNull(byId.getMarketId())){
entity.setMarketId(byId.getMarketId());
entity.setMaterialId(byId.getMaterialId());
entity.setStockupId(stockupId);
entity.setReservationId(reservationId);
entity.setStockListId(stockListId);
//添加物料信息
DistributionStockListEntity byId = iDistributionStockListService.getById(stockListId);
if(ObjectUtils.isNotNull(byId.getMarketId())){
entity.setMarketId(byId.getMarketId());
entity.setMaterialId(byId.getMaterialId());
}
entity.setConditions("0");
entity.setType(2);
distributionStockService.save(entity);
Map<String, Object> map = new HashMap<>();
map.put("messageId", CommonUtil.getUUID());
map.put("scanType", scanType);
map.put("logId", entity.getId());
map.put("messageData", entity);
map.put("createTime", new Date().getTime());
//将消息携带绑定键值
rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_SCAN_EXCHANGE, RabbitConstant.STOCKUP_SCAN_ROUTING, map);
String audioValue = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "1");
return Resp.scanSuccess("扫描成功!",audioValue);
case 2:
//扫码失败
String audioValue2 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "2");
return Resp.scanFail("重复扫描!",audioValue2);
case 3:
//重复扫码
String audioValue3 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "3");
return Resp.scanFail("包件不存在!",audioValue3);
case 4:
//重复扫码
String audioValue4 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "4");
return Resp.scanFail("操作失败!",audioValue4);
case 5:
//重复扫码
String audioValue5 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "5");
return Resp.scanFail("窜货!",audioValue5);
default:
log.warn("###备货扫描:未知错误");
return Resp.scanFail("未知错误!","未知错误");
}
entity.setConditions("0");
entity.setType(2);
distributionStockService.save(entity);
Map<String, Object> map = new HashMap<>();
map.put("messageId", CommonUtil.getUUID());
map.put("scanType", scanType);
map.put("logId", entity.getId());
map.put("messageData", entity);
map.put("createTime", new Date().getTime());
//将消息携带绑定键值
rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_SCAN_EXCHANGE, RabbitConstant.STOCKUP_SCAN_ROUTING, map);
return R.success("扫码成功");
}else{
}
log.warn("###################stockupScan: 未知的扫码类型 scanType={}",scanType);
return R.fail("未知的扫码类型");
}
}
}

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

@ -126,4 +126,6 @@ public interface DistributionStockupMapper extends BaseMapper<DistributionStocku
DistributionStockupListVO selectStockupPageInfo(@Param("param") StockupDTO stockupDTO);
DistributionStockupListVO selectStockupClientInfo(@Param("param") StockupDTO stockupDTO);
Integer selectPackageExist(@Param("param")StockupDTO stockupDTO);
}

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

@ -37,6 +37,18 @@
DELETE FROM logpm_distribution_stockup WHERE id = #{id}
</delete>
<select id="selectPackageExist" resultType="Integer">
select COUNT (ldpl.id)
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distribution_reservation_package ldrp on ldrp.reservation_id = ldsi.reservation_id
LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.id = ldrp.parce_list_id
<where>
ldsi.reservation_id = #{param.reservationId} and ldsi.stockup_id = #{param.stockupId}
and ldpl.order_package_code = #{param.packetBarCode} and ldpl.order_code =#{param.orderCode}
</where>
</select>
<select id="selectDistributionStockupPage" resultMap="distributionStockupResultMap">
select * from logpm_distribution_stockup where is_deleted = 0

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/DistributionErrorQueueHandler.java

@ -9,6 +9,7 @@ import org.springblade.common.constant.RabbitConstant;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
@ -25,6 +26,7 @@ import java.util.Map;
@Component
public class DistributionErrorQueueHandler {
@Autowired
private IDistributionStockService distributionStockService;
@RabbitHandler
@ -42,7 +44,7 @@ public class DistributionErrorQueueHandler {
}else{
channel.basicReject(deliveryTag,true);
}
} catch (IOException e) {
} catch (Exception e) {
try {
// 处理失败,重新压入MQ
channel.basicReject(deliveryTag,true);

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

@ -22,6 +22,7 @@ import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.entity.DistributionStockupEntity;
import com.logpm.distribution.excel.DistributionStockupExcel;
import com.logpm.distribution.vo.*;
import io.swagger.models.auth.In;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
@ -137,4 +138,10 @@ public interface IDistributionStockupService extends BaseService<DistributionSto
* @return
*/
Boolean getClientStockupTray(Long reservationId, Long allocationId);
/**
* 订单自编号包件码查询备货是否存在数据
* @return
*/
Integer selectPackage(StockupDTO stockupDTO);
}

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

@ -362,6 +362,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationStocklistEntity.setIsUnpackProduct(ServiceConstant.ORDER_HAVE_DATA);
}
distributionReservationStocklistEntity.setReservationNum(i.getReservationNum());
distributionReservationStocklistEntity.setRealityNum(0);
distributionReservationStocklistService.save(distributionReservationStocklistEntity);
stockListCount.getAndAdd(distributionReservationStocklistEntity.getReservationNum());
});
@ -990,6 +991,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationStocklistEntity.setUnit(distributionStockListDTO.getCargoUnit());
// reservationStocklistEntity.setIsUnpackProduct(distributionStockListDTO.getUnpack());
reservationStocklistEntity.setStockListStatus(ReservationInventoryStatusConstant.zengjia.getValue());
reservationStocklistEntity.setRealityNum(0);
distributionReservationStocklistService.save(reservationStocklistEntity);
//TODO 这里新增还需要对库存品的数量进行修改
DistributionStockListEntity stockListEntity = Func.copy(distributionStockListDTO, DistributionStockListEntity.class);
@ -1590,6 +1592,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationStocklistEntity.setIsUnpackProduct(ServiceConstant.ORDER_HAVE_DATA);
}
distributionReservationStocklistEntity.setReservationNum(i.getReservationNum());
distributionReservationStocklistEntity.setRealityNum(0);
distributionReservationStocklistService.save(distributionReservationStocklistEntity);
stockListCount.getAndAdd(distributionReservationStocklistEntity.getReservationNum());
});

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

@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
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.IBasicdataCodeClient;
@ -69,6 +70,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Lazy
@Autowired
private IDistributionReservationService distributionReservationService;
@Autowired
private IDistributionReservationStocklistService distributionReservationStocklistService;
@Autowired
private IWarehouseTrayGoodsClient warehouseTrayGoodsClient;
@Autowired
@ -150,8 +155,8 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
page.setCurrent(stockupDTO.getCurrent());
page.setSize(stockupDTO.getSize());
stockupDTO.setUserId(AuthUtil.getUserId());
stockupDTO.setStockupDateStart(stockupDTO.getStockupDateStart()+" 00:00:00");
stockupDTO.setStockupDateEnd(stockupDTO.getStockupDateEnd()+" 23:59:59");
stockupDTO.setStockupDateStart(stockupDTO.getStockupDateStart() + " 00:00:00");
stockupDTO.setStockupDateEnd(stockupDTO.getStockupDateEnd() + " 23:59:59");
IPage<DistributionStockupListVO> distributionStockupEntityIPage = baseMapper.selectHomeStockupPage(page, stockupDTO);
// IPage<DistributionStockupListVO> distributionStockupEntityIPage = baseMapper.selectStockupPage(page, stockupDTO);
List<DistributionStockupListVO> records = distributionStockupEntityIPage.getRecords();
@ -225,26 +230,26 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
// page.setSize(stockupDTO.getSize());
//查询备货信息
DistributionStockupListVO vo = baseMapper.selectStockupPageInfo(stockupDTO);
if(ObjectUtils.isNotNull(vo)){
if (ObjectUtils.isNotNull(vo)) {
intToStrDistributionStockupListVO(vo);
map.put("stockupCode",vo.getStockupCode());
map.put("typeServiceStr",vo.getTypeServiceStr());
map.put("stockupArea",vo.getStockupArea());
map.put("stockupStatusStr",vo.getStockupStatusStr());
map.put("stockupCode", vo.getStockupCode());
map.put("typeServiceStr", vo.getTypeServiceStr());
map.put("stockupArea", vo.getStockupArea());
map.put("stockupStatusStr", vo.getStockupStatusStr());
String[] split = vo.getReservation().split(",");
List<DistributionStockupListVO> list = new ArrayList<>();
for (int i = 0; i < split.length; i++) {
stockupDTO.setReservationId(Long.parseLong(split[i]));
//查询客户数据
DistributionStockupListVO distributionStockupListVO = baseMapper.selectStockupClientInfo(stockupDTO);
if(ObjectUtils.isNotNull(distributionStockupListVO)){
if (ObjectUtils.isNotNull(distributionStockupListVO)) {
intToStrDistributionStockupListVO(distributionStockupListVO);
distributionStockupListVO.setReservationId(Long.parseLong(split[i]));
list.add(distributionStockupListVO);
}
}
map.put("orderList",list);
map.put("orderList", list);
}
return map;
}
@ -358,11 +363,11 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
private void intToStrDistributionStockupListVO(DistributionStockupListVO vo) {
if(ObjectUtils.isNotNull(vo.getTypeService())){
if (ObjectUtils.isNotNull(vo.getTypeService())) {
String typeServiceStr = DictBizCache.getValue(DictBizConstant.DISTRIBUTION_TYPE, vo.getTypeService());
vo.setTypeServiceStr(typeServiceStr);
}
if(ObjectUtils.isNotNull(vo.getStockupStatus())){
if (ObjectUtils.isNotNull(vo.getStockupStatus())) {
String typeServiceStr = DictBizCache.getValue(DictBizConstant.STOCKUP_STATUS, vo.getStockupStatus());
vo.setStockupStatusStr(typeServiceStr);
}
@ -391,8 +396,8 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
public DistributionStockupOrderInfoVO selectOrderInfo(Long reservationId, Long stockArticleId, Long stockupId, Long trayId) {
//查询客户信息
DistributionReservationEntity reservationEntity = distributionReservationService.getById(reservationId); //预约信息
//通过订单id和预约id,托盘信息查询对应的包件列表
List<PackageStockupVO> list = distributionParcelListService.selectOrderInfoList(reservationId, stockArticleId, stockupId,trayId);
//通过订单id和预约id,托盘信息查询对应的包件列表
List<PackageStockupVO> list = distributionParcelListService.selectOrderInfoList(reservationId, stockArticleId, stockupId, trayId);
int size = list.size(); //数量
Integer scanNum = 0;
for (PackageStockupVO vo : list) {
@ -435,7 +440,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Override
public IPage<DistributionStockupVO> detailOrderOwn(IPage<Object> page, Long id) {
IPage<DistributionStockupVO> distributionStockupVOIPage = baseMapper.detailOrderOwn(page, id);
distributionStockupVOIPage.getRecords().forEach( o ->{
distributionStockupVOIPage.getRecords().forEach(o -> {
Integer integer = distributionStockService.selectCount(Long.parseLong(o.getStockArticleId()));
o.setNumber(integer);
});
@ -539,15 +544,15 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Override
public DistributionStockupVO detailOwnSelf(Long id) {
DistributionStockupEntity distributionStockupEntity = baseMapper.selectById(id);
DistributionStockupVO distributionStockupVO =DistributionStockupWrapper.build().entityVO(distributionStockupEntity);
DistributionStockupVO distributionStockupVO = DistributionStockupWrapper.build().entityVO(distributionStockupEntity);
return distributionStockupVO;
}
@Override
public IPage<DistributionStockupVO> detailOrderOwnSelf(IPage<Object> page, long parseLong) {
IPage<DistributionStockupVO> distributionStockupVOIPage = baseMapper.detailOrderOwnSelf(page, parseLong);
distributionStockupVOIPage.getRecords().forEach( o ->{
if(ObjectUtils.isNotNull(o.getStockArticleId())){
distributionStockupVOIPage.getRecords().forEach(o -> {
if (ObjectUtils.isNotNull(o.getStockArticleId())) {
Integer integer = distributionStockService.selectCount(Long.parseLong(o.getStockArticleId()));
o.setNumber(integer);
}
@ -558,6 +563,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
/**
* 整托备货
*
* @param stockupDTO
* @return
*/
@ -570,22 +576,22 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
//查询托盘上面的包件
List<WarehouseTrayGoodsEntity> trayIdList = warehouseTrayGoodsClient.getTrayIdList(stockupDTO.getTrayId());
List<DistributionStockPackageVO> voList = new ArrayList<>();
trayIdList.forEach( t ->{
trayIdList.forEach(t -> {
Optional<DistributionStockPackageVO> first = list.stream().filter(l -> l.getParcelListId().equals(t.getAssociationId())).findFirst();
if (first.isPresent()) {
DistributionStockPackageVO distributionStockPackageVO = first.get();
log.warn("找到了匹配的对象:" + distributionStockPackageVO);
voList.add(distributionStockPackageVO);
} else{
} else {
log.warn("没有找到了匹配的对象;");
stock.set(true);
}
});
if(stock.get()){
return R.fail(3001,"备货失败!");
}else{
if (stock.get()) {
return R.fail(3001, "备货失败!");
} else {
List<DistributionStockEntity> list1 = new ArrayList<>();
voList.forEach(i ->{
voList.forEach(i -> {
DistributionStockEntity distributionStock = new DistributionStockEntity();
distributionStock.setStockupId(stockupDTO.getStockupId());
distributionStock.setStockArticle(i.getStockArticleId());
@ -604,13 +610,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
//TODO 其他操作
//添加扫描记录
distributionStockService.saveBatch(list1);
return R.fail(200,"备货成功");
return R.fail(200, "备货成功");
}
}
/**
* 查询这个货位是否有整托
*
* @param reservationId
* @param allocationId
* @return
@ -621,16 +628,16 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
List<DistributionParcelTrayVO> list = distributionReservationPackageService.selectClientStockupPackTray(reservationId);//查询在那些托盘
List<WarehouseTaryAllocationEntity> allocationId1 = warehouseTaryAllocationClient.getAllocationId(allocationId);//查询托盘
AtomicReference<Boolean> trays = new AtomicReference<>(false);
allocationId1.forEach( i ->{
allocationId1.forEach(i -> {
boolean b = list.stream().anyMatch(a -> a.getTrayId().equals(i.getTrayId()));
if(b){
if (b) {
//有
Iterator<DistributionParcelTrayVO> iterator = list.iterator();
while (iterator.hasNext()){
if(i.getTrayId().equals(iterator.next().getTrayId())){
while (iterator.hasNext()) {
if (i.getTrayId().equals(iterator.next().getTrayId())) {
String trayPackNum = iterator.next().getTrayPackNum(); //在这个托盘的数量
List<WarehouseTrayGoodsEntity> trayIdList = warehouseTrayGoodsClient.getTrayIdList(i.getTrayId());
if(trayPackNum.equals(trayIdList.size())){
if (trayPackNum.equals(trayIdList.size())) {
trays.set(true);
}
@ -641,5 +648,92 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
return trays.get();
}
/**
* 订单自编号包件码查询备货是否存在数据 1 订单 2库存品
*
* @param
* @return
*/
@Override
public Integer selectPackage(StockupDTO stockupDTO) {
Long reservationId = stockupDTO.getReservationId();
Long stockupId = stockupDTO.getStockupId();
switch (stockupDTO.getScanType()) {
case 1:
//订单
String orderCode = stockupDTO.getOrderCode();
String packetBarCode = stockupDTO.getPacketBarCode();
Integer integer = baseMapper.selectPackageExist(stockupDTO);
if (ObjectUtils.isNotNull(integer) && integer > 0) {
//存在
List<DistributionStockEntity> list = distributionStockService.list(Wrappers.<DistributionStockEntity>query().lambda()
.eq(DistributionStockEntity::getCoding, packetBarCode)
.eq(DistributionStockEntity::getOrderSelfNumbering, orderCode)
.eq(DistributionStockEntity::getStockupId, stockupId)
.eq(DistributionStockEntity::getReservationId, reservationId)
);
if (list.size() > 0) {
//重复扫码
return 2;
} else {
return 1;
}
} else {
//不存在
return 3;
}
case 2:
//库存品
//输入的数量
Long stockListId = stockupDTO.getStockListId();
DistributionReservationStocklistEntity one = distributionReservationStocklistService.getOne(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
.eq(DistributionReservationStocklistEntity::getReservationId, reservationId)
.eq(DistributionReservationStocklistEntity::getStocklistId, stockListId)
.apply("stock_list_status in (1,3)")
);
if (ObjectUtils.isNotNull(one)) {
int sum = one.getReservationNum();
int sum1 = one.getRealityNum();
if (sum == sum1) {
log.warn("####备货:库存品数量已完成");
//已完成!
return 1;
} else {
DistributionReservationStocklistEntity distributionReservationStocklistEntity = new DistributionReservationStocklistEntity();
distributionReservationStocklistEntity.setId(one.getId());
if (ObjectUtils.isNotNull(stockupDTO.getPacketBarCode())) {
//扫描包件
distributionReservationStocklistEntity.setRealityNum(sum1 + 1);
} else if (ObjectUtils.isNotNull(stockupDTO.getPackageNum())) {
int n = stockupDTO.getPackageNum();
int a = sum - sum1;//待入库数
if (a == n) {
// 相等
distributionReservationStocklistEntity.setRealityNum(one.getRealityNum() + n);
} else {
if (n < a) {
distributionReservationStocklistEntity.setRealityNum(one.getRealityNum() + n);
} else {
//库存品失败
return 4;
}
}
}
//扫码成功
distributionReservationStocklistService.updateById(distributionReservationStocklistEntity);
return 1;
}
} else {
//扫码失败
return 4;
}
}
//扫码失败
return 4;
}
}

2
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWarehousingEntryServiceImpl.java

@ -171,7 +171,7 @@ public class WarehouseWarehousingEntryServiceImpl extends BaseServiceImpl<Wareho
//添加入库明细
Iterator<WarehouseWarehousingDetailEntity> iterator = list.iterator();
while (iterator.hasNext()){
if(iterator.next().getConditions().equals("3")){
if(ObjectUtils.isNotNull(iterator.next().getConditions() ) && iterator.next().getConditions().equals("3")){
iterator.remove();
}
}

Loading…
Cancel
Save