Merge remote-tracking branch '惠信/develop' into develop

This commit is contained in:
曹鹏飞 2026-03-27 14:09:47 +08:00
commit 752f9d6c66
4 changed files with 80 additions and 1 deletions

View File

@ -25,6 +25,11 @@ public class MaterialCodeSearchQO extends SearchBaseQO {
*/ */
private String customerName; private String customerName;
/**
* 装箱状态
*/
private Integer packingStatus;
/** /**
* 下单开始日期 * 下单开始日期
*/ */

View File

@ -0,0 +1,22 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class ShipmentPCPackingQO {
/**
* 包装箱ID
*/
@NotNull
private Long packagingCodeId;
/**
* 物料条码号
*/
@NotEmpty
private List<String> codes;
}

View File

@ -162,7 +162,7 @@ public class MaterialCodeController extends BaseController {
.like(StrUtil.isNotBlank(request.getSoNo()), WmsShipmentMaterialCode::getSoNo, request.getSoNo()) .like(StrUtil.isNotBlank(request.getSoNo()), WmsShipmentMaterialCode::getSoNo, request.getSoNo())
.like(StrUtil.isNotBlank(request.getMaterialNo()), WmsShipmentMaterialCode::getMaterialNo, request.getMaterialNo()) .like(StrUtil.isNotBlank(request.getMaterialNo()), WmsShipmentMaterialCode::getMaterialNo, request.getMaterialNo())
.like(StrUtil.isNotBlank(request.getCustomerName()), WmsShipmentMaterialCode::getCustomerName, request.getCustomerName()) .like(StrUtil.isNotBlank(request.getCustomerName()), WmsShipmentMaterialCode::getCustomerName, request.getCustomerName())
.orderByAsc(WmsShipmentMaterialCode::getStatus) .eq(Objects.nonNull(request.getPackingStatus()), WmsShipmentMaterialCode::getStatus, request.getPackingStatus()) .orderByAsc(WmsShipmentMaterialCode::getStatus)
.orderByDesc(WmsShipmentMaterialCode::getId) .orderByDesc(WmsShipmentMaterialCode::getId)
.page(new Page<>(request.getPage(), request.getPageSize())) .page(new Page<>(request.getPage(), request.getPageSize()))
); );

View File

@ -211,6 +211,58 @@ public class PackagingCodeController extends BaseController {
return ApiResult.success(); return ApiResult.success();
} }
/**
* 装箱打包PC使用
*/
@Transactional
@PostMapping("pcPack")
public ApiResult<Void> pcPack(@Valid @RequestBody ShipmentPCPackingQO shipmentPCPackingQO){
List<Long> ids = shipmentPCPackingQO.getCodes().stream()
.map(code -> materialCodeItemQrService.getInfoByQRCode(code))
.filter(Objects::nonNull)
.map(ShipmentMaterialCodeQRVO::getId)
.toList();
List<WmsShipmentMaterialCodeItemQr> items = materialCodeItemQrService.lambdaQuery()
.in(WmsShipmentMaterialCodeItemQr::getId, ids)
.list();
VUtil.trueThrowBusinessError(items.size() != ids.size()).throwMessage("数据有变动,请重新扫码");
items.removeIf(item -> item.getStatus() == 1);
if (CollectionUtil.isEmpty(items)) {
return ApiResult.success();
}
WmsShipmentPackagingCode info = packagingCodeService.getById(shipmentPCPackingQO.getPackagingCodeId());
VUtil.trueThrowBusinessError(Objects.isNull(info)).throwMessage("包装箱不存在");
VUtil.trueThrowBusinessError(info.getStatus() == 2).throwMessage("该箱已发车");
if (info.getStatus() == 0) {
packagingCodeService.lambdaUpdate()
.set(WmsShipmentPackagingCode::getStatus, 1)
.set(WmsShipmentPackagingCode::getUpdateBy, UserUtil.getUserName())
.set(WmsShipmentPackagingCode::getUpdateTime, LocalDateTime.now())
.eq(WmsShipmentPackagingCode::getId, shipmentPCPackingQO.getPackagingCodeId())
.eq(WmsShipmentPackagingCode::getStatus, 0)
.update();
}
items.forEach(item -> {
item.setStatus(1);
item.setUpdateBy(UserUtil.getUserName());
item.setUpdateTime(LocalDateTime.now());
});
packagingCodeItemService.saveBatch(
items.stream().map(it -> new WmsShipmentPackagingCodeItem()
.setPackagingCodeId(shipmentPCPackingQO.getPackagingCodeId())
.setMaterialCodeItemQrId(it.getId())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(LocalDateTime.now())
).toList()
);
materialCodeItemQrService.updateBatchById(items);
materialCodeItemService.updatePackingNum(items.stream()
.map(WmsShipmentMaterialCodeItemQr::getItemId)
.collect(Collectors.toSet())
);
return ApiResult.success();
}
/** /**
* 获取包装已打包的物料列表PDA使用 * 获取包装已打包的物料列表PDA使用
* @param packagingCodeId 包装箱ID * @param packagingCodeId 包装箱ID