打包收货部分功能完成

This commit is contained in:
zhangke 2026-03-05 10:57:47 +08:00
parent 517bbe1a33
commit edb067dc79
4 changed files with 47 additions and 29 deletions

View File

@ -1304,7 +1304,7 @@ public class NormalPGIController extends BaseController {
*/ */
@PostMapping("getPackageOrderItems") @PostMapping("getPackageOrderItems")
@ApiMark(moduleName = "根据送货单单号和大码的ID获取到具体的物料信息", apiName = "根据送货单单号和大码的ID获取到具体的物料信息") @ApiMark(moduleName = "根据送货单单号和大码的ID获取到具体的物料信息", apiName = "根据送货单单号和大码的ID获取到具体的物料信息")
public ApiResult<List<PacagePoItemVO>> scanPackage(@Valid @RequestBody PackagePoSearchQO request) { public ApiResult<List<PacagePoItemVO>> getPackageOrderItems(@Valid @RequestBody PackagePoSearchQO request) {
return ApiResult.success(wmsPackageService.getPackageOrderItems(request.getPackageId(), request.getDeliveryNo())); return ApiResult.success(wmsPackageService.getPackageOrderItems(request.getPackageId(), request.getDeliveryNo()));
} }
@ -1313,9 +1313,9 @@ public class NormalPGIController extends BaseController {
* @param request id= 大码的ID * @param request id= 大码的ID
* @return * @return
*/ */
@PostMapping("getPackageOrderItems") @PostMapping("getPendingScanningItems")
@ApiMark(moduleName = "根据送货单单号和大码的ID获取到具体的物料信息", apiName = "根据送货单单号和大码的ID获取到具体的物料信息") @ApiMark(moduleName = "根据送货单单号和大码的ID获取到具体的物料信息", apiName = "根据送货单单号和大码的ID获取到具体的物料信息")
public ApiResult<List<PendingScanningVO>> scanPackage(@Valid @RequestBody FilterIdQO request) { public ApiResult<List<PendingScanningVO>> getPendingScanningItems(@Valid @RequestBody FilterIdQO request) {
List<PendingScanningVO> list = wmsPackageService.getPendingScannings(request.getId()); List<PendingScanningVO> list = wmsPackageService.getPendingScannings(request.getId());
if (CollectionUtil.isNotEmpty(list)) { if (CollectionUtil.isNotEmpty(list)) {
list.forEach(vo -> { list.forEach(vo -> {
@ -1350,14 +1350,25 @@ public class NormalPGIController extends BaseController {
VUtil.trueThrowBusinessError(count2 >= 0).throwMessage("存在必须扫码的包装"); VUtil.trueThrowBusinessError(count2 >= 0).throwMessage("存在必须扫码的包装");
List<PendingScanningItemDTO> items = wmsPackageService.getScanningItems(request.getBarcodeIds()); List<PendingScanningItemDTO> items = wmsPackageService.getScanningItems(request.getBarcodeIds());
//对箱码要做出来将箱码换成对应的物料码 //对箱码要做出来将箱码换成对应的物料码
List<> List<Long> materialCodes = items.stream().filter(item -> Objects.equals(item.getPackagingType(), 1))
.map(item -> item.getBarcodeId())
.distinct()
.collect(Collectors.toList());
// List<WmsQrCodeMaster> qrCodeMasters = wmsQrCodeMasterService.getByMaterialCodes(materialCodes);
// if(CollectionUtil.isEmpty(materialCodes))
// {
// //计算箱内物料的数量并判断是否是打包状态
//
//
//
// }
//根据包装信息获取对应的物料收货信息 //根据包装信息获取对应的物料收货信息
List<SrmMaterialReceiptQO> receiptQOS = new ArrayList<>(); List<SrmMaterialReceiptQO> receiptQOS = new ArrayList<>();
//首先要对上面的信息 按照 srmId进行分组汇总quantity //首先要对上面的信息 按照 srmId进行分组汇总quantity
for (PendingScanningItemDTO item : items) for (PendingScanningItemDTO item : items) {
{
SrmMaterialReceiptQO qo = new SrmMaterialReceiptQO() SrmMaterialReceiptQO qo = new SrmMaterialReceiptQO()
.setNoteNum(item.getDeliveryNo()) .setNoteNum(item.getDeliveryNo())
.setLineNumber(item.getDeliveryLineNo()) .setLineNumber(item.getDeliveryLineNo())
@ -1367,14 +1378,15 @@ public class NormalPGIController extends BaseController {
.setId(item.getSrmId()) .setId(item.getSrmId())
.setReceiptNum(item.getQuantity()); .setReceiptNum(item.getQuantity());
// .setScanCodes(item.getScanCodes()); // .setScanCodes(item.getScanCodes());
} }
return ApiResult.success();
} }
@PostMapping("takeDeliveryConfirmByScan") @PostMapping("takeDeliveryConfirmByScan")
@ApiMark(moduleName = "需扫码收货", apiName = "需扫码收货") @ApiMark(moduleName = "需扫码收货", apiName = "需扫码收货")
public ApiResult<Void> takeDeliveryConfirmByScan(@Valid @RequestBody List<PendingScanningQO> request) { public ApiResult<Void> takeDeliveryConfirmByScan(@Valid @RequestBody List<PendingScanningQO> request) {
return ApiResult.success();
} }
} }

View File

@ -96,7 +96,7 @@ public class PackingController extends BaseController {
.eq(WmsPackage::getId, request.getId()) .eq(WmsPackage::getId, request.getId())
.one(); .one();
VUtil.trueThrowBusinessError(ObjectUtil.isNull(wmsPackage)).throwMessage("打包码不存在"); VUtil.trueThrowBusinessError(ObjectUtil.isNull(wmsPackage)).throwMessage("打包码不存在");
VUtil.trueThrowBusinessError(wmsPackage.getSupplierId() != UserUtil.getUserId()).throwMessage("非登录供应商,不可编辑"); // VUtil.trueThrowBusinessError(wmsPackage.getSupplierId() != UserUtil.getUserId()).throwMessage("非登录供应商,不可编辑");
VUtil.trueThrowBusinessError(wmsPackage.getPackageStatus() == 2).throwMessage("已收货,不可以编辑"); VUtil.trueThrowBusinessError(wmsPackage.getPackageStatus() == 2).throwMessage("已收货,不可以编辑");
packageService.lambdaUpdate().eq(WmsPackage::getId, request.getId()) packageService.lambdaUpdate().eq(WmsPackage::getId, request.getId())
.set(WmsPackage::getPackageName, request.getPackingName()) .set(WmsPackage::getPackageName, request.getPackingName())
@ -117,10 +117,10 @@ public class PackingController extends BaseController {
.in(WmsPackage::getId, request.getId()) .in(WmsPackage::getId, request.getId())
.list(); .list();
List<WmsPackage> suppers = wmsPackage.stream().filter(wmsPackage1 -> // List<WmsPackage> suppers = wmsPackage.stream().filter(wmsPackage1 ->
wmsPackage1.getSupplierId().equals(UserUtil.getUserId())) // wmsPackage1.getSupplierId().equals(UserUtil.getUserId()))
.collect(Collectors.toList()); // .collect(Collectors.toList());
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(suppers)).throwMessage("存在非当前供应商的包装码"); // VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(suppers)).throwMessage("存在非当前供应商的包装码");
List<WmsPackage> unPackings = List<WmsPackage> unPackings =
wmsPackage.stream().filter(wmsPackage1 -> wmsPackage.stream().filter(wmsPackage1 ->
@ -179,7 +179,7 @@ public class PackingController extends BaseController {
// 首先判断当前包是否已经收货了 // 首先判断当前包是否已经收货了
WmsPackage wmsPackage = packageService.lambdaQuery() WmsPackage wmsPackage = packageService.lambdaQuery()
.eq(WmsPackage::getPackageCode, request.getPackageCode()) .eq(WmsPackage::getPackageCode, request.getPackageCode())
.eq(WmsPackage::getSupplierId, UserUtil.getUserId()) // .eq(WmsPackage::getSupplierId, UserUtil.getUserId())
.one(); .one();
VUtil.trueThrowBusinessError(ObjectUtil.isNull(wmsPackage)).throwMessage("打包码不存在"); VUtil.trueThrowBusinessError(ObjectUtil.isNull(wmsPackage)).throwMessage("打包码不存在");
VUtil.trueThrowBusinessError(wmsPackage.getPackageStatus() == 2).throwMessage("此打包码已收货"); VUtil.trueThrowBusinessError(wmsPackage.getPackageStatus() == 2).throwMessage("此打包码已收货");

View File

@ -65,4 +65,9 @@ public class PendingScanningItemDTO {
* srm传入的送货单项ID * srm传入的送货单项ID
*/ */
private Long srmId; private Long srmId;
/**
* 物料码的二维码ID
*/
private Long barcodeId;
} }

View File

@ -154,22 +154,23 @@
<select id="getScanningItems" resultType="com.nflg.wms.common.pojo.dto.PendingScanningItemDTO"> <select id="getScanningItems" resultType="com.nflg.wms.common.pojo.dto.PendingScanningItemDTO">
select a.id, select a.id,
a.barcode_code, a.barcode_code,
b.quantity, b.quantity,
b.material_code, b.material_code,
b.packaging_type, b.packaging_type,
b.po_number, b.po_number,
b.po_line_number, b.po_line_number,
b.delivery_no, b.delivery_no,
b.delivery_line_no, b.delivery_line_no,
b.unit, b.unit,
b.serial_no, b.serial_no,
b.batch_no, b.batch_no,
b.material_description, b.material_description,
c.id as srm_id c.id as srm_id,
b.id as barcode_id
from wms_package_item a from wms_package_item a
left join wms_qr_code_master b on a.barcode_code = b.barcode_code left join wms_qr_code_master b on a.barcode_code = b.barcode_code
left join wms_srm_order_item c on b.delivery_no=c.note_num and b.delivery_line_no=c.line_number left join wms_srm_order_item c on b.delivery_no=c.note_num and b.delivery_line_no=c.line_number
where a.package_id in where a.package_id in
<foreach item="id" collection="barcodeIds" open="(" separator="," close=")"> <foreach item="id" collection="barcodeIds" open="(" separator="," close=")">
#{id} #{id}