feat: bug-755 生成送货单时选了所有托盘仍然提示数据未齐套

This commit is contained in:
曹鹏飞 2025-09-26 09:56:21 +08:00
parent 30c726d080
commit a363a5b610
6 changed files with 20 additions and 19 deletions

View File

@ -612,14 +612,11 @@ public class StructuralPackageOrderController extends BaseController {
@PostMapping("createDeliverOrder")
public ApiResult<Void> createDeliverOrder(@Valid @RequestBody @NotEmpty List<Long> ids) {
List<DeliverStructuralPackageOrderExtendVO> trays = deliverStructuralPackageOrderTrayService.getListByIds(ids);
VUtil.trueThrowBusinessError(trays.stream().map(DeliverStructuralPackageOrderExtendVO::getPackageNo).collect(Collectors.toSet()).size() > 1)
.throwMessage("钢构包必须一致");
VUtil.trueThrowBusinessError(trays.stream().map(DeliverStructuralPackageOrderExtendVO::getExternalOrderNo).collect(Collectors.toSet()).size() > 1)
.throwMessage("采购单号必须一致");
Long packageId = trays.get(0).getPackageId();
String externalOrderNo = trays.get(0).getExternalOrderNo();
VUtil.trueThrowBusinessError(trays.stream().map(DeliverStructuralPackageOrderExtendVO::getOrderId).collect(Collectors.toSet()).size() > 1)
.throwMessage("订单号必须一致");
Long orderId = trays.get(0).getOrderId();
Long supplierId = trays.get(0).getSupplierId();
List<Long> tids = deliverStructuralPackageOrderTrayService.getIdsByMaterialAndExternalOrderNo(packageId, externalOrderNo);
List<Long> tids = deliverStructuralPackageOrderTrayService.getIdsByOrderId(orderId);
VUtil.trueThrowBusinessError(tids.size() != ids.size()).throwMessage("数据未齐套");
String deliverOrderNo = serialNumberControllerService.generateSerialNumber(7);
WmsStructuralPackageDeliverOrder deliverOrder = new WmsStructuralPackageDeliverOrder()

View File

@ -17,6 +17,11 @@ public class DeliverStructuralPackageOrderExtendVO extends DeliverStructuralPack
@ExcelColumn(value = "序号",colIndex = 0)
private Integer index;
/**
* 订单id
*/
private Long orderId;
/**
* 托盘id
*/

View File

@ -33,5 +33,5 @@ public interface WmsStructuralPackageOrderTrayMapper extends BaseMapper<WmsStruc
DeliverStructuralPackageOrderTrayVO getInfoByNo(String no);
List<Long> getIdsByMaterialAndExternalOrderNo(Long packageId, String externalOrderNo);
List<Long> getIdsByOrderId(Long orderId);
}

View File

@ -42,7 +42,7 @@ public interface IWmsStructuralPackageOrderTrayService extends IService<WmsStruc
DeliverStructuralPackageOrderTrayVO getInfoByNo(@Valid @NotBlank String trayNo);
List<Long> getIdsByMaterialAndExternalOrderNo(Long packageId, String externalOrderNo);
List<Long> getIdsByOrderId(Long orderId);
void setStateByIds(@Valid @NotEmpty List<Long> ids, OrderState state);
}

View File

@ -74,8 +74,8 @@ public class WmsStructuralPackageOrderTrayServiceImpl extends ServiceImpl<WmsStr
}
@Override
public List<Long> getIdsByMaterialAndExternalOrderNo(Long packageId, String externalOrderNo) {
return baseMapper.getIdsByMaterialAndExternalOrderNo(packageId, externalOrderNo);
public List<Long> getIdsByOrderId(Long orderId) {
return baseMapper.getIdsByOrderId(orderId);
}
@Override

View File

@ -42,9 +42,9 @@
</select>
<select id="getListByIds" resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderExtendVO">
SELECT ROW_NUMBER() OVER (ORDER BY o.id desc) AS "index",o.*,m.no||wb."no" AS "workbench_code",us.supplier_code,us.supplier_name,sp.order_no AS "package_order_no"
,sp."no" AS "package_no",sp."name" AS "package_desc",m."no" AS "model_no",ot.no as "tray_no",ot.tray,ot.station,ot.state
,ot.id as "tray_id"
SELECT ROW_NUMBER() OVER (ORDER BY o.id desc) AS "index",ot.order_id,o.*,m.no||wb."no" AS "workbench_code"
,us.supplier_code,us.supplier_name,sp.order_no AS "package_order_no",sp."no" AS "package_no"
,sp."name" AS "package_desc",m."no" AS "model_no",ot.no as "tray_no",ot.tray,ot.station,ot.state,ot.id as "tray_id"
FROM wms_structural_package_order o
LEFT JOIN wms_workbench wb ON o.workbench_id=wb."id"
LEFT JOIN user_supplier us ON o.supplier_id=us.id
@ -90,10 +90,9 @@
where ot.no=#{no}
</select>
<select id="getIdsByMaterialAndExternalOrderNo" resultType="java.lang.Long">
select ot.id
from wms_structural_package_order o
inner join wms_structural_package_order_tray ot on o.id=ot.order_id
where o.external_order_no=#{externalOrderNo} and o.package_id=#{packageId}
<select id="getIdsByOrderId" resultType="java.lang.Long">
select id
from wms_structural_package_order_tray
where order_id=#{orderId}
</select>
</mapper>