| | |
| | | import cn.iocoder.yudao.module.aftersales.api.AfterSaleTicketApi; |
| | | import cn.iocoder.yudao.module.aftersales.api.dto.AfterSaleWarehouseReturnStageReqDTO; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.exception.ServiceException; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.returnsales.vo.line.MesWmReturnSalesLinePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.returnsales.vo.line.MesWmReturnSalesLineSaveReqVO; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void bindRqcForFinish(Long lineId, Long returnId, Long rqcId, Long itemId, BigDecimal checkQuantity) { |
| | | MesWmReturnSalesLineDO line = returnSalesLineMapper.selectOne(new LambdaQueryWrapperX<MesWmReturnSalesLineDO>() |
| | | .eq(MesWmReturnSalesLineDO::getId, lineId).last("FOR UPDATE")); |
| | | if (line == null || !Objects.equals(line.getReturnId(), returnId) |
| | | || !Objects.equals(line.getItemId(), itemId) |
| | | || !Objects.equals(line.getQualityStatus(), MesWmQualityStatusEnum.PENDING.getStatus()) |
| | | || (line.getRqcId() != null && !Objects.equals(line.getRqcId(), rqcId)) |
| | | || line.getQuantity() == null || checkQuantity == null |
| | | || line.getQuantity().compareTo(checkQuantity) != 0) { |
| | | throw new ServiceException(400, "退货检验须对应唯一待检退货行,物料和检验数量必须与退货行一致"); |
| | | } |
| | | returnSalesLineMapper.updateById(new MesWmReturnSalesLineDO().setId(lineId).setRqcId(rqcId)); |
| | | } |
| | | |
| | | @Override |
| | | public void updateReturnSalesLineWhenRqcFinish(Long sourceLineId, Long sourceDocId, Integer checkResult, |
| | | BigDecimal qualifiedQuantity, BigDecimal unqualifiedQuantity) { |
| | | MesWmReturnSalesLineDO sourceLine = validateReturnSalesLineExists(sourceLineId); |