diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index 8070fef5e..8de3faf5c 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -350,10 +350,23 @@ public class IoCollectOrderService extends ServiceImpl() .eq(IoCollectOrderBiz::getId, bizIdFk)); if (bizServiceOne == null) throw new JsonException("扫码详情未查找到"); + //反差单据类型 查看是否来源业务单 + String orderIdFk = bizServiceOne.getOrderIdFk(); + IoCollectOrder ioCollectOrder = collectOrderMapper.selectOne(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, orderIdFk)); + if (ioCollectOrder == null) throw new JsonException("反差单据失败"); + String busType = ioCollectOrder.getBusType(); + Long workPlaceCode = ioCollectOrder.getWorkPlaceCode(); + SysWorkplaceDocumentEntity byWorkplaceCode = sysWorkplaceDocumentService.findByWorkplaceCode(workPlaceCode, busType); + if (byWorkplaceCode == null) throw new JsonException("反差工位单据类型失败"); + Integer scanType = byWorkplaceCode.getScanType(); Integer oneScanCount = bizServiceOne.getScanCount(); Integer newCount = oneScanCount - delCount; - bizServiceOne.setScanCount(newCount); - collectOrderBizService.updateById(bizServiceOne); + if (scanType == 1 && newCount <= 0){ + collectOrderBizService.removeById(bizServiceOne); + }else { + bizServiceOne.setScanCount(newCount); + collectOrderBizService.updateById(bizServiceOne); + } } }