feat: bug-776 所有的出库操作扫码后流程需要调整
This commit is contained in:
parent
924bf4c5ff
commit
19674ba135
|
|
@ -231,7 +231,8 @@ public class InCostCenterBackController extends BaseController {
|
||||||
ti.setNum(ti.getNum().add(qrCodeContent.getNum()));
|
ti.setNum(ti.getNum().add(qrCodeContent.getNum()));
|
||||||
records.add(new InMaterialScanRecord()
|
records.add(new InMaterialScanRecord()
|
||||||
.setSource(2)
|
.setSource(2)
|
||||||
.setSourceId(item.getId())
|
.setSourceId(order.getId())
|
||||||
|
.setSourceItemId(item.getId())
|
||||||
.setTicketItemId(ti.getId())
|
.setTicketItemId(ti.getId())
|
||||||
.setMaterialNo(materialNo)
|
.setMaterialNo(materialNo)
|
||||||
.setContent(qrCode)
|
.setContent(qrCode)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.nflg.wms.admin.controller;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.google.common.collect.ArrayListMultimap;
|
import com.google.common.collect.ArrayListMultimap;
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
|
|
@ -231,7 +232,7 @@ public class InProduceBackController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
@PostMapping("pda/submit")
|
@PostMapping("pda/submit")
|
||||||
public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) {
|
public ApiResult<Void> submit(@Valid @RequestBody InProduceBackSubmitQO request) {
|
||||||
WmsInProduceBack order = inProduceBackService.lambdaQuery().eq(WmsInProduceBack::getNo, request.getNo()).one();
|
WmsInProduceBack order = inProduceBackService.lambdaQuery().eq(WmsInProduceBack::getNo, request.getNo()).one();
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
|
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
|
||||||
WmsInProduceBackTicket ticket = new WmsInProduceBackTicket()
|
WmsInProduceBackTicket ticket = new WmsInProduceBackTicket()
|
||||||
|
|
@ -262,6 +263,7 @@ public class InProduceBackController extends BaseController {
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElseGet(() -> {
|
.orElseGet(() -> {
|
||||||
WmsInProduceBackTicketItem ti = new WmsInProduceBackTicketItem()
|
WmsInProduceBackTicketItem ti = new WmsInProduceBackTicketItem()
|
||||||
|
.setId(IdUtil.getSnowflakeNextId())
|
||||||
.setTicketId(ticket.getId())
|
.setTicketId(ticket.getId())
|
||||||
.setProduceBackItemId(item.getId())
|
.setProduceBackItemId(item.getId())
|
||||||
.setNum(BigDecimal.ZERO);
|
.setNum(BigDecimal.ZERO);
|
||||||
|
|
@ -275,7 +277,9 @@ public class InProduceBackController extends BaseController {
|
||||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
||||||
records.add(new InMaterialScanRecord()
|
records.add(new InMaterialScanRecord()
|
||||||
.setSource(1)
|
.setSource(1)
|
||||||
.setSourceId(item.getId())
|
.setSourceId(order.getId())
|
||||||
|
.setSourceItemId(item.getId())
|
||||||
|
.setTicketItemId(pti.getId())
|
||||||
.setMaterialNo(materialNo)
|
.setMaterialNo(materialNo)
|
||||||
.setContent(qrCode)
|
.setContent(qrCode)
|
||||||
.setBatchNo(qrCodeContent.getBatchNo())
|
.setBatchNo(qrCodeContent.getBatchNo())
|
||||||
|
|
|
||||||
|
|
@ -406,6 +406,7 @@ public class InProduceOrderController extends BaseController {
|
||||||
records.add(new InMaterialScanRecord()
|
records.add(new InMaterialScanRecord()
|
||||||
.setSource(4)
|
.setSource(4)
|
||||||
.setSourceId(order.getId())
|
.setSourceId(order.getId())
|
||||||
|
.setSourceItemId(it.getId())
|
||||||
.setTicketItemId(it.getId())
|
.setTicketItemId(it.getId())
|
||||||
.setMaterialNo(it.getMaterialNo())
|
.setMaterialNo(it.getMaterialNo())
|
||||||
.setContent(qrCode)
|
.setContent(qrCode)
|
||||||
|
|
|
||||||
|
|
@ -202,10 +202,13 @@ public class OutAssistanceController extends BaseController {
|
||||||
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
||||||
List<WmsOutAssistanceTicketItem> ticketItems = new ArrayList<>();
|
List<WmsOutAssistanceTicketItem> ticketItems = new ArrayList<>();
|
||||||
request.getQrCodes().forEach(qrCode -> {
|
request.getQrCodes().forEach(qrCode -> {
|
||||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||||
dtos.add(qrCodeContent);
|
BigDecimal qrNum = qrCode.getNum();
|
||||||
String materialNo = qrCodeContent.getMaterialNo();
|
String materialNo = qrCodeContent.getMaterialNo();
|
||||||
WmsOutAssistanceItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr1(), materialNo)).findFirst().orElse(null);
|
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||||
|
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||||
|
dtos.add(qrCodeContent);
|
||||||
|
WmsOutAssistanceItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
||||||
WmsOutAssistanceTicketItem pti = ticketItems.stream()
|
WmsOutAssistanceTicketItem pti = ticketItems.stream()
|
||||||
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId())
|
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId())
|
||||||
|
|
@ -222,25 +225,26 @@ public class OutAssistanceController extends BaseController {
|
||||||
return ti;
|
return ti;
|
||||||
});
|
});
|
||||||
BigDecimal num = item.getLeft();
|
BigDecimal num = item.getLeft();
|
||||||
VUtil.trueThrowBusinessError(num.compareTo(qrCodeContent.getNum()) < 0)
|
VUtil.trueThrowBusinessError(num.compareTo(qrNum) < 0)
|
||||||
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
||||||
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
|
item.setLeft(item.getLeft().subtract(qrNum));
|
||||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
pti.setNum(pti.getNum().add(qrNum));
|
||||||
records.add(new OutMaterialScanRecord()
|
records.add(new OutMaterialScanRecord()
|
||||||
.setSource(3)
|
.setSource(3)
|
||||||
// .setSourceId(item.getId())
|
.setSourceId(order.getId())
|
||||||
.setTicketId(ticket.getId())
|
.setSourceItemId(item.getId())
|
||||||
.setTicketItemId(pti.getId())
|
.setTicketId(ticket.getId())
|
||||||
.setMaterialNo(materialNo)
|
.setTicketItemId(pti.getId())
|
||||||
.setContent(qrCode)
|
.setMaterialNo(materialNo)
|
||||||
.setBatchNo(qrCodeContent.getBatchNo())
|
.setContent(qrCode.getContent())
|
||||||
.setSerialNo(qrCodeContent.getSerialNo())
|
.setBatchNo(qrCodeContent.getBatchNo())
|
||||||
.setUniqNo(qrCodeContent.getUniqNo())
|
.setSerialNo(qrCodeContent.getSerialNo())
|
||||||
.setFactoryNo(order.getWerks())
|
.setUniqNo(qrCodeContent.getUniqNo())
|
||||||
.setWarehouseNo(order.getLgort1())
|
.setFactoryNo(order.getWerks())
|
||||||
.setNum(qrCodeContent.getNum())
|
.setWarehouseNo(order.getLgort1())
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setNum(qrNum)
|
||||||
.setCreateTime(Instant.now())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
|
.setCreateTime(Instant.now())
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
outAssistanceItemService.updateBatchById(datas);
|
outAssistanceItemService.updateBatchById(datas);
|
||||||
|
|
|
||||||
|
|
@ -195,10 +195,13 @@ public class OutCostCenterController extends BaseController {
|
||||||
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
||||||
List<WmsOutCostcenterTicketItem> ticketItems = new ArrayList<>();
|
List<WmsOutCostcenterTicketItem> ticketItems = new ArrayList<>();
|
||||||
request.getQrCodes().forEach(qrCode -> {
|
request.getQrCodes().forEach(qrCode -> {
|
||||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||||
dtos.add(qrCodeContent);
|
BigDecimal qrNum = qrCode.getNum();
|
||||||
String materialNo = qrCodeContent.getMaterialNo();
|
String materialNo = qrCodeContent.getMaterialNo();
|
||||||
WmsOutCostcenterItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
|
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||||
|
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||||
|
dtos.add(qrCodeContent);
|
||||||
|
WmsOutCostcenterItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
||||||
WmsOutCostcenterTicketItem pti = ticketItems.stream()
|
WmsOutCostcenterTicketItem pti = ticketItems.stream()
|
||||||
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId()))
|
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId()))
|
||||||
|
|
@ -213,25 +216,26 @@ public class OutCostCenterController extends BaseController {
|
||||||
return ti;
|
return ti;
|
||||||
});
|
});
|
||||||
BigDecimal num = item.getLeft();
|
BigDecimal num = item.getLeft();
|
||||||
VUtil.trueThrowBusinessError(num.compareTo(qrCodeContent.getNum()) < 0)
|
VUtil.trueThrowBusinessError(num.compareTo(qrNum) < 0)
|
||||||
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
||||||
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
|
item.setLeft(item.getLeft().subtract(qrNum));
|
||||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
pti.setNum(pti.getNum().add(qrNum));
|
||||||
records.add(new OutMaterialScanRecord()
|
records.add(new OutMaterialScanRecord()
|
||||||
.setSource(2)
|
.setSource(2)
|
||||||
// .setSourceId(item.getId())
|
.setSourceId(order.getId())
|
||||||
.setTicketId(ticket.getId())
|
.setSourceItemId(item.getId())
|
||||||
.setTicketItemId(pti.getId())
|
.setTicketId(ticket.getId())
|
||||||
.setMaterialNo(materialNo)
|
.setTicketItemId(pti.getId())
|
||||||
.setContent(qrCode)
|
.setMaterialNo(materialNo)
|
||||||
.setBatchNo(qrCodeContent.getBatchNo())
|
.setContent(qrCode.getContent())
|
||||||
.setSerialNo(qrCodeContent.getSerialNo())
|
.setBatchNo(qrCodeContent.getBatchNo())
|
||||||
.setUniqNo(qrCodeContent.getUniqNo())
|
.setSerialNo(qrCodeContent.getSerialNo())
|
||||||
.setFactoryNo(order.getWerks())
|
.setUniqNo(qrCodeContent.getUniqNo())
|
||||||
.setWarehouseNo(item.getLgort())
|
.setFactoryNo(order.getWerks())
|
||||||
.setNum(qrCodeContent.getNum())
|
.setWarehouseNo(item.getLgort())
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setNum(qrNum)
|
||||||
.setCreateTime(Instant.now())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
|
.setCreateTime(Instant.now())
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
outCostcenterItemService.updateBatchById(datas);
|
outCostcenterItemService.updateBatchById(datas);
|
||||||
|
|
|
||||||
|
|
@ -383,10 +383,13 @@ public class OutProduceController extends BaseController {
|
||||||
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
List<MaterialQRCodeContentDTO> dtos = new ArrayList<>();
|
||||||
List<WmsOutProduceTicketItem> ticketItems = new ArrayList<>();
|
List<WmsOutProduceTicketItem> ticketItems = new ArrayList<>();
|
||||||
request.getQrCodes().forEach(qrCode -> {
|
request.getQrCodes().forEach(qrCode -> {
|
||||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||||
dtos.add(qrCodeContent);
|
|
||||||
String materialNo = qrCodeContent.getMaterialNo();
|
String materialNo = qrCodeContent.getMaterialNo();
|
||||||
WmsOutProduceItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
|
BigDecimal qrNum = qrCode.getNum();
|
||||||
|
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||||
|
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||||
|
dtos.add(qrCodeContent);
|
||||||
|
WmsOutProduceItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");
|
||||||
WmsOutProduceTicketItem pti = ticketItems.stream()
|
WmsOutProduceTicketItem pti = ticketItems.stream()
|
||||||
.filter(ti -> Objects.equals(ti.getProduceItemId(), item.getId()))
|
.filter(ti -> Objects.equals(ti.getProduceItemId(), item.getId()))
|
||||||
|
|
@ -401,28 +404,29 @@ public class OutProduceController extends BaseController {
|
||||||
return ti;
|
return ti;
|
||||||
});
|
});
|
||||||
BigDecimal num = Objects.equals(order.getType(), 0) ? item.getLockNum() : item.getSqsl().subtract(item.getNum());
|
BigDecimal num = Objects.equals(order.getType(), 0) ? item.getLockNum() : item.getSqsl().subtract(item.getNum());
|
||||||
VUtil.trueThrowBusinessError(num.compareTo(qrCodeContent.getNum()) < 0)
|
VUtil.trueThrowBusinessError(num.compareTo(qrNum) < 0)
|
||||||
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
||||||
if (Objects.equals(order.getType(), 0)) {
|
if (Objects.equals(order.getType(), 0)) {
|
||||||
item.setLockNum(item.getLockNum().subtract(qrCodeContent.getNum()));
|
item.setLockNum(item.getLockNum().subtract(qrNum));
|
||||||
}
|
}
|
||||||
item.setNum(item.getNum().add(qrCodeContent.getNum()));
|
item.setNum(item.getNum().add(qrNum));
|
||||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
pti.setNum(pti.getNum().add(qrNum));
|
||||||
records.add(new OutMaterialScanRecord()
|
records.add(new OutMaterialScanRecord()
|
||||||
.setSource(1)
|
.setSource(1)
|
||||||
// .setSourceId(item.getId())
|
.setSourceId(order.getId())
|
||||||
.setTicketId(ticket.getProduceId())
|
.setSourceItemId(item.getId())
|
||||||
.setTicketItemId(pti.getId())
|
.setTicketId(ticket.getProduceId())
|
||||||
.setMaterialNo(materialNo)
|
.setTicketItemId(pti.getId())
|
||||||
.setContent(qrCode)
|
.setMaterialNo(materialNo)
|
||||||
.setBatchNo(qrCodeContent.getBatchNo())
|
.setContent(qrCode.getContent())
|
||||||
.setSerialNo(qrCodeContent.getSerialNo())
|
.setBatchNo(qrCodeContent.getBatchNo())
|
||||||
.setUniqNo(qrCodeContent.getUniqNo())
|
.setSerialNo(qrCodeContent.getSerialNo())
|
||||||
.setFactoryNo(order.getDwerk())
|
.setUniqNo(qrCodeContent.getUniqNo())
|
||||||
.setWarehouseNo(request.getLgort())
|
.setFactoryNo(order.getDwerk())
|
||||||
.setNum(qrCodeContent.getNum())
|
.setWarehouseNo(request.getLgort())
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setNum(qrNum)
|
||||||
.setCreateTime(Instant.now())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
|
.setCreateTime(Instant.now())
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
outProduceItemService.updateBatchById(datas);
|
outProduceItemService.updateBatchById(datas);
|
||||||
|
|
|
||||||
|
|
@ -216,9 +216,12 @@ public class TransferCompanyController extends BaseController {
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
.setCreateTime(LocalDateTime.now());
|
.setCreateTime(LocalDateTime.now());
|
||||||
request.getQrCodes().forEach(qrCode -> {
|
request.getQrCodes().forEach(qrCode -> {
|
||||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||||
|
BigDecimal qrNum = qrCode.getNum();
|
||||||
String materialNo = qrCodeContent.getMaterialNo();
|
String materialNo = qrCodeContent.getMaterialNo();
|
||||||
WmsTransferCompanyItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
|
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||||
|
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||||
|
WmsTransferCompanyItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
|
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
|
||||||
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
||||||
.throwMessage("物料" + materialNo + "的出库数量超出申请限制");
|
.throwMessage("物料" + materialNo + "的出库数量超出申请限制");
|
||||||
|
|
@ -234,7 +237,7 @@ public class TransferCompanyController extends BaseController {
|
||||||
ticketItems.add(ti);
|
ticketItems.add(ti);
|
||||||
return ti;
|
return ti;
|
||||||
});
|
});
|
||||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
pti.setNum(pti.getNum().add(qrNum));
|
||||||
records.add(new OutMaterialScanRecord()
|
records.add(new OutMaterialScanRecord()
|
||||||
.setSource(5)
|
.setSource(5)
|
||||||
.setSourceId(order.getId())
|
.setSourceId(order.getId())
|
||||||
|
|
@ -243,20 +246,20 @@ public class TransferCompanyController extends BaseController {
|
||||||
.setTicketItemId(pti.getId())
|
.setTicketItemId(pti.getId())
|
||||||
.setMaterialNo(materialNo)
|
.setMaterialNo(materialNo)
|
||||||
.setUnit(item.getMeins())
|
.setUnit(item.getMeins())
|
||||||
.setContent(qrCode)
|
.setContent(qrCode.getContent())
|
||||||
.setBatchNo(qrCodeContent.getBatchNo())
|
.setBatchNo(qrCodeContent.getBatchNo())
|
||||||
.setSerialNo(qrCodeContent.getSerialNo())
|
.setSerialNo(qrCodeContent.getSerialNo())
|
||||||
.setUniqNo(qrCodeContent.getUniqNo())
|
.setUniqNo(qrCodeContent.getUniqNo())
|
||||||
.setFactoryNo(order.getReswk())
|
.setFactoryNo(order.getReswk())
|
||||||
.setWarehouseNo(request.getLgort())
|
.setWarehouseNo(request.getLgort())
|
||||||
.setNum(qrCodeContent.getNum())
|
.setNum(qrNum)
|
||||||
.setEbelp(item.getEbelp())
|
.setEbelp(item.getEbelp())
|
||||||
.setEbeln(order.getEbeln())
|
.setEbeln(order.getEbeln())
|
||||||
.setExt(item.getEbelp())
|
.setExt(item.getEbelp())
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
.setCreateTime(Instant.now())
|
.setCreateTime(Instant.now())
|
||||||
);
|
);
|
||||||
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
|
item.setLeft(item.getLeft().subtract(qrNum));
|
||||||
});
|
});
|
||||||
transferCompanyItemService.updateBatchById(datas);
|
transferCompanyItemService.updateBatchById(datas);
|
||||||
transferCompanyService.lambdaUpdate()
|
transferCompanyService.lambdaUpdate()
|
||||||
|
|
|
||||||
|
|
@ -226,9 +226,12 @@ public class TransferFactoryController extends BaseController {
|
||||||
transferFactoryTicketService.save(ticket);
|
transferFactoryTicketService.save(ticket);
|
||||||
List<WmsTransferFactoryTicketItem> ticketItems = new ArrayList<>();
|
List<WmsTransferFactoryTicketItem> ticketItems = new ArrayList<>();
|
||||||
request.getQrCodes().forEach(qrCode -> {
|
request.getQrCodes().forEach(qrCode -> {
|
||||||
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
|
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
|
||||||
|
BigDecimal qrNum = qrCode.getNum();
|
||||||
String materialNo = qrCodeContent.getMaterialNo();
|
String materialNo = qrCodeContent.getMaterialNo();
|
||||||
WmsTransferFactoryItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
|
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
|
||||||
|
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
|
||||||
|
WmsTransferFactoryItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
|
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
|
||||||
WmsTransferFactoryTicketItem pti = ticketItems.stream()
|
WmsTransferFactoryTicketItem pti = ticketItems.stream()
|
||||||
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId()))
|
.filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId()))
|
||||||
|
|
@ -242,8 +245,8 @@ public class TransferFactoryController extends BaseController {
|
||||||
ticketItems.add(ti);
|
ticketItems.add(ti);
|
||||||
return ti;
|
return ti;
|
||||||
});
|
});
|
||||||
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
|
pti.setNum(pti.getNum().add(qrNum));
|
||||||
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
|
item.setLeft(item.getLeft().subtract(qrNum));
|
||||||
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
||||||
.throwMessage("物料" + materialNo + "的出库数量超出申请限制");
|
.throwMessage("物料" + materialNo + "的出库数量超出申请限制");
|
||||||
records.add(new OutMaterialScanRecord()
|
records.add(new OutMaterialScanRecord()
|
||||||
|
|
@ -255,13 +258,13 @@ public class TransferFactoryController extends BaseController {
|
||||||
.setMaterialNo(materialNo)
|
.setMaterialNo(materialNo)
|
||||||
.setUnit(item.getMeins())
|
.setUnit(item.getMeins())
|
||||||
.setRspos(item.getRspos())
|
.setRspos(item.getRspos())
|
||||||
.setContent(qrCode)
|
.setContent(qrCode.getContent())
|
||||||
.setBatchNo(qrCodeContent.getBatchNo())
|
.setBatchNo(qrCodeContent.getBatchNo())
|
||||||
.setSerialNo(qrCodeContent.getSerialNo())
|
.setSerialNo(qrCodeContent.getSerialNo())
|
||||||
.setUniqNo(qrCodeContent.getUniqNo())
|
.setUniqNo(qrCodeContent.getUniqNo())
|
||||||
.setFactoryNo(order.getWerks())
|
.setFactoryNo(order.getWerks())
|
||||||
.setWarehouseNo(request.getLgort())
|
.setWarehouseNo(request.getLgort())
|
||||||
.setNum(qrCodeContent.getNum())
|
.setNum(qrNum)
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
.setCreateTime(Instant.now())
|
.setCreateTime(Instant.now())
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class InProduceBackSubmitQO {
|
||||||
|
|
||||||
|
@NotBlank
|
||||||
|
private String no;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库编号
|
||||||
|
*/
|
||||||
|
@NotBlank
|
||||||
|
private String lgort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 二维码列表
|
||||||
|
*/
|
||||||
|
@NotEmpty
|
||||||
|
private List<String> qrCodes;
|
||||||
|
}
|
||||||
|
|
@ -22,5 +22,5 @@ public class OutProduceSubmitQO {
|
||||||
* 二维码列表
|
* 二维码列表
|
||||||
*/
|
*/
|
||||||
@NotEmpty
|
@NotEmpty
|
||||||
private List<String> qrCodes;
|
private List<QRCodeQO> qrCodes;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class QRCodeQO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项id
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 二维码内容
|
||||||
|
*/
|
||||||
|
@NotBlank
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private BigDecimal num;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue