diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoDetailServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoDetailServiceImpl.java index 0210512f..ff2013f7 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoDetailServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoDetailServiceImpl.java @@ -7,6 +7,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; +import com.klp.domain.WmsProduct; +import com.klp.domain.WmsRawMaterial; +import com.klp.mapper.WmsProductMapper; +import com.klp.mapper.WmsRawMaterialMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +41,8 @@ public class WmsStockIoDetailServiceImpl implements IWmsStockIoDetailService { private final WmsStockIoDetailMapper baseMapper; private final WmsStockIoMapper stockIoMapper; + private final WmsProductMapper productMapper; + private final WmsRawMaterialMapper rawMaterialMapper; /** * 查询出入库单明细 @@ -102,7 +108,19 @@ public class WmsStockIoDetailServiceImpl implements IWmsStockIoDetailService { if (stockIo != null && stockIo.getStatus() >= 2) { throw new ServiceException("已审核的单据不能修改明细"); } - + // 如果unit为空,自动查item表补全(新增逻辑) + String unit = bo.getUnit(); + if (unit == null || unit.trim().isEmpty()) { + if ("product".equals(bo.getItemType())) { + WmsProduct p = productMapper.selectById(bo.getItemId()); + unit = p != null ? p.getUnit() : null; + } else if ("raw_material".equals(bo.getItemType())) { + WmsRawMaterial r = rawMaterialMapper.selectById(bo.getItemId()); + unit = r != null ? r.getUnit() : null; + } + } + // 将获取到的unit设置回bo对象 + bo.setUnit(unit); WmsStockIoDetail add = BeanUtil.toBean(bo, WmsStockIoDetail.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0;