feat(deliverOrder): 新增缺货零件收货状态及线下收货更新功能
- 在交付订单实体和VO中新增缺货零件是否收货字段quehuoReceived - 在Mapper中添加quehuoReceived查询接口,判断缺货零件是否全部收货 - 实现服务层方法updateQuehuoReceived,用于更新缺货收货状态 - 结构包订单线下收货接口新增调用updateQuehuoReceived逻辑,确保状态同步更新 - 创建订单时默认quehuoReceived设为false - 订单确认收货后更新对应deliverId的quehuoReceived状态
This commit is contained in:
parent
871aba36e5
commit
78f5224f67
|
|
@ -645,6 +645,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.setNo(deliverOrderNo)
|
||||
.setSupplierId(supplierId)
|
||||
.setQuehuo(trays.stream().anyMatch(DeliverStructuralPackageOrderVO::getQuehuo))
|
||||
.setQuehuoReceived(false)
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(LocalDateTime.now());
|
||||
structuralPackageDeliverOrderService.save(deliverOrder);
|
||||
|
|
@ -768,6 +769,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
* 线下收货
|
||||
* @param itemIds 零件项id列表
|
||||
*/
|
||||
@Transactional
|
||||
@PostMapping("offlineReceive")
|
||||
public ApiResult<Void> offlineReceive(@Valid @RequestBody @NotEmpty List<Long> itemIds) {
|
||||
List<WmsStructuralPackageOrderTrayItem> items = deliverStructuralPackageOrderTrayItemService.listByIds(itemIds);
|
||||
|
|
@ -780,6 +782,14 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
if (CollectionUtil.isNotEmpty(items)) {
|
||||
deliverStructuralPackageOrderTrayItemService.updateBatchById(items);
|
||||
}
|
||||
items.stream().map(WmsStructuralPackageOrderTrayItem::getOrderId).forEach(id -> {
|
||||
WmsStructuralPackageDeliverOrderMap om = structuralPackageDeliverOrderMapService.lambdaQuery()
|
||||
.eq(WmsStructuralPackageDeliverOrderMap::getOrderId, id)
|
||||
.one();
|
||||
if (Objects.nonNull(om)) {
|
||||
structuralPackageDeliverOrderService.updateQuehuoReceived(om.getDeliverId());
|
||||
}
|
||||
});
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
@ -817,6 +827,10 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
items.forEach(it -> it.setStoreNum(it.getShipmentNum()));
|
||||
deliverStructuralPackageOrderTrayItemService.updateBatchById(items);
|
||||
structuralPackageDeliverOrderService.updateStateByOrderId(request.getId());
|
||||
WmsStructuralPackageDeliverOrderMap om = structuralPackageDeliverOrderMapService.lambdaQuery()
|
||||
.eq(WmsStructuralPackageDeliverOrderMap::getOrderId, request.getId())
|
||||
.one();
|
||||
structuralPackageDeliverOrderService.updateQuehuoReceived(om.getDeliverId());
|
||||
SAPMaterialInfoInOrderDTO dto = CollectionUtil.get(sapService.zim004(order.getExternalOrderNo(), order.getSupplierCode(), order.getPackageNo()), 0);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(dto)).throwMessage("ZIM_004未查询到数据");
|
||||
VUtil.trueThrowBusinessError(StrUtil.isBlank(dto.getWarehouseNo())).throwMessage("ZIM_004接口查询到仓库为空");
|
||||
|
|
|
|||
|
|
@ -65,4 +65,9 @@ public class StructuralPackageDeliverOrderVO {
|
|||
* 是否存在缺货零件
|
||||
*/
|
||||
private Boolean quehuo;
|
||||
|
||||
/**
|
||||
* 缺货零件是否都已收货
|
||||
*/
|
||||
private Boolean quehuoReceived;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,4 +70,9 @@ public class WmsStructuralPackageDeliverOrder implements Serializable {
|
|||
* 是否存在缺货零件
|
||||
*/
|
||||
private Boolean quehuo;
|
||||
|
||||
/**
|
||||
* 缺货零件是否都已收货
|
||||
*/
|
||||
private Boolean quehuoReceived;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,4 +32,6 @@ public interface WmsStructuralPackageDeliverOrderMapper extends BaseMapper<WmsSt
|
|||
List<DeliverStructuralPackageOrderVO> getInfo(Long id);
|
||||
|
||||
List<TrayScanInfoDTO> getTrayNos(String orderNo, String materialNo);
|
||||
|
||||
boolean quehuoReceived(Long deliverId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,4 +31,6 @@ public interface IWmsStructuralPackageDeliverOrderService extends IService<WmsSt
|
|||
List<DeliverStructuralPackageOrderVO> getInfo(@Valid @NotNull Long id);
|
||||
|
||||
List<TrayScanInfoDTO> getTrayNos(String orderNo, String materialNo);
|
||||
|
||||
void updateQuehuoReceived(Long deliverId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,4 +69,12 @@ public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl<Wms
|
|||
public List<TrayScanInfoDTO> getTrayNos(String orderNo, String materialNo) {
|
||||
return baseMapper.getTrayNos(orderNo, materialNo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateQuehuoReceived(Long deliverId) {
|
||||
lambdaUpdate()
|
||||
.set(WmsStructuralPackageDeliverOrder::getQuehuoReceived, !baseMapper.quehuoReceived(deliverId))
|
||||
.eq(WmsStructuralPackageDeliverOrder::getId, deliverId)
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,4 +93,13 @@
|
|||
INNER JOIN wms_structural_package sp ON spo.package_id=sp."id"
|
||||
WHERE spdo."no"=#{orderNo} AND sp."no"=#{materialNo}
|
||||
</select>
|
||||
|
||||
<select id="quehuoReceived" resultType="boolean">
|
||||
SELECT EXISTS(
|
||||
SELECT 1
|
||||
FROM wms_structural_package_deliver_order_map spdom
|
||||
INNER JOIN wms_structural_package_order_tray_item spoti ON spdom.order_id=spoti.order_id
|
||||
WHERE spoti.offline_received=false AND spdom.deliver_id = #{deliverId}
|
||||
)
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue