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)
|
.setNo(deliverOrderNo)
|
||||||
.setSupplierId(supplierId)
|
.setSupplierId(supplierId)
|
||||||
.setQuehuo(trays.stream().anyMatch(DeliverStructuralPackageOrderVO::getQuehuo))
|
.setQuehuo(trays.stream().anyMatch(DeliverStructuralPackageOrderVO::getQuehuo))
|
||||||
|
.setQuehuoReceived(false)
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
.setCreateTime(LocalDateTime.now());
|
.setCreateTime(LocalDateTime.now());
|
||||||
structuralPackageDeliverOrderService.save(deliverOrder);
|
structuralPackageDeliverOrderService.save(deliverOrder);
|
||||||
|
|
@ -768,6 +769,7 @@ public class StructuralPackageOrderController extends BaseController {
|
||||||
* 线下收货
|
* 线下收货
|
||||||
* @param itemIds 零件项id列表
|
* @param itemIds 零件项id列表
|
||||||
*/
|
*/
|
||||||
|
@Transactional
|
||||||
@PostMapping("offlineReceive")
|
@PostMapping("offlineReceive")
|
||||||
public ApiResult<Void> offlineReceive(@Valid @RequestBody @NotEmpty List<Long> itemIds) {
|
public ApiResult<Void> offlineReceive(@Valid @RequestBody @NotEmpty List<Long> itemIds) {
|
||||||
List<WmsStructuralPackageOrderTrayItem> items = deliverStructuralPackageOrderTrayItemService.listByIds(itemIds);
|
List<WmsStructuralPackageOrderTrayItem> items = deliverStructuralPackageOrderTrayItemService.listByIds(itemIds);
|
||||||
|
|
@ -780,6 +782,14 @@ public class StructuralPackageOrderController extends BaseController {
|
||||||
if (CollectionUtil.isNotEmpty(items)) {
|
if (CollectionUtil.isNotEmpty(items)) {
|
||||||
deliverStructuralPackageOrderTrayItemService.updateBatchById(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();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -817,6 +827,10 @@ public class StructuralPackageOrderController extends BaseController {
|
||||||
items.forEach(it -> it.setStoreNum(it.getShipmentNum()));
|
items.forEach(it -> it.setStoreNum(it.getShipmentNum()));
|
||||||
deliverStructuralPackageOrderTrayItemService.updateBatchById(items);
|
deliverStructuralPackageOrderTrayItemService.updateBatchById(items);
|
||||||
structuralPackageDeliverOrderService.updateStateByOrderId(request.getId());
|
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);
|
SAPMaterialInfoInOrderDTO dto = CollectionUtil.get(sapService.zim004(order.getExternalOrderNo(), order.getSupplierCode(), order.getPackageNo()), 0);
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(dto)).throwMessage("ZIM_004未查询到数据");
|
VUtil.trueThrowBusinessError(Objects.isNull(dto)).throwMessage("ZIM_004未查询到数据");
|
||||||
VUtil.trueThrowBusinessError(StrUtil.isBlank(dto.getWarehouseNo())).throwMessage("ZIM_004接口查询到仓库为空");
|
VUtil.trueThrowBusinessError(StrUtil.isBlank(dto.getWarehouseNo())).throwMessage("ZIM_004接口查询到仓库为空");
|
||||||
|
|
|
||||||
|
|
@ -65,4 +65,9 @@ public class StructuralPackageDeliverOrderVO {
|
||||||
* 是否存在缺货零件
|
* 是否存在缺货零件
|
||||||
*/
|
*/
|
||||||
private Boolean quehuo;
|
private Boolean quehuo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缺货零件是否都已收货
|
||||||
|
*/
|
||||||
|
private Boolean quehuoReceived;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,4 +70,9 @@ public class WmsStructuralPackageDeliverOrder implements Serializable {
|
||||||
* 是否存在缺货零件
|
* 是否存在缺货零件
|
||||||
*/
|
*/
|
||||||
private Boolean quehuo;
|
private Boolean quehuo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缺货零件是否都已收货
|
||||||
|
*/
|
||||||
|
private Boolean quehuoReceived;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,4 +32,6 @@ public interface WmsStructuralPackageDeliverOrderMapper extends BaseMapper<WmsSt
|
||||||
List<DeliverStructuralPackageOrderVO> getInfo(Long id);
|
List<DeliverStructuralPackageOrderVO> getInfo(Long id);
|
||||||
|
|
||||||
List<TrayScanInfoDTO> getTrayNos(String orderNo, String materialNo);
|
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<DeliverStructuralPackageOrderVO> getInfo(@Valid @NotNull Long id);
|
||||||
|
|
||||||
List<TrayScanInfoDTO> getTrayNos(String orderNo, String materialNo);
|
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) {
|
public List<TrayScanInfoDTO> getTrayNos(String orderNo, String materialNo) {
|
||||||
return baseMapper.getTrayNos(orderNo, 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"
|
INNER JOIN wms_structural_package sp ON spo.package_id=sp."id"
|
||||||
WHERE spdo."no"=#{orderNo} AND sp."no"=#{materialNo}
|
WHERE spdo."no"=#{orderNo} AND sp."no"=#{materialNo}
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue