|  |  |  | 
|---|
|  |  |  | import com.vincent.rsf.server.manager.service.QlyInspectService; | 
|---|
|  |  |  | import com.vincent.rsf.server.manager.service.QlyIsptItemService; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | 
|---|
|  |  |  | private QlyIsptItemService qlyIsptItemService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WarehouseAreasItemServiceImpl warehouseAreasItemService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CompanysServiceImpl companysService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @param | 
|---|
|  |  |  | 
|---|
|  |  |  | throw new CoolException("单据明细数量修改失败!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WarehouseAreasItem orderItem = warehouseAreasItemService.getById(item.getRcptId()); | 
|---|
|  |  |  | if (Objects.isNull(orderItem)) { | 
|---|
|  |  |  | throw new CoolException("收货单据不存在!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            WarehouseAreasItem orderItem = warehouseAreasItemService.getById(item.getRcptId()); | 
|---|
|  |  |  | //            if (Objects.isNull(orderItem)) { | 
|---|
|  |  |  | //                throw new CoolException("收货单据不存在!!"); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty(); | 
|---|
|  |  |  | Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Double sum = disQty + safeQty; | 
|---|
|  |  |  | orderItem.setIsptQty(sum); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (sum.compareTo(0.0) > 0) { | 
|---|
|  |  |  | if (!warehouseAreasItemService.updateById(orderItem)) { | 
|---|
|  |  |  | throw new CoolException("收货区库存信息更新失败!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (Objects.isNull(orderItem.getIsptResult())) { | 
|---|
|  |  |  | operateReceipt(item, orderItem); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty(); | 
|---|
|  |  |  | //            Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty(); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            Double sum = disQty + safeQty; | 
|---|
|  |  |  | //            orderItem.setIsptQty(sum); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            if (sum.compareTo(0.0) > 0) { | 
|---|
|  |  |  | //                if (!warehouseAreasItemService.updateById(orderItem)) { | 
|---|
|  |  |  | //                    throw new CoolException("收货区库存信息更新失败!!"); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | //                //新建质检单,不会有质检结果 | 
|---|
|  |  |  | //                confirmReceipt(item, orderItem); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | ////                if (Objects.isNull(orderItem.getIsptResult())) { | 
|---|
|  |  |  | ////                    operateReceipt(item, orderItem); | 
|---|
|  |  |  | ////                } | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Set<Long> isptIds = isptItem.stream().map(QlyIsptItem::getIspectId).collect(Collectors.toSet()); | 
|---|
|  |  |  | 
|---|
|  |  |  | .eq(QlyInspect::getId, isptItem.stream().findFirst().get().getIspectId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        qlyIsptItemService.pageByIsptResult(null, new QueryWrapper<QlyIsptItem>()) | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * @description: 质检后修改收货区存信息 | 
|---|
|  |  |  | * @version 1.0 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void operateReceipt(QlyIsptItem item, WarehouseAreasItem orderItem) { | 
|---|
|  |  |  | @Transactional(rollbackFor = Exception.class) | 
|---|
|  |  |  | public void confirmReceipt(QlyIsptItem item, WarehouseAreasItem orderItem) { | 
|---|
|  |  |  | Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty(); | 
|---|
|  |  |  | Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty(); | 
|---|
|  |  |  | Double sum = disQty + safeQty; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | AsnOrderItem asnOrderItem = asnOrderItemService.getById(item.getAsnItemId()); | 
|---|
|  |  |  | if (Objects.isNull(asnOrderItem)) { | 
|---|
|  |  |  | if (StringUtils.isNoneBlank(asnOrderItem.getSplrCode())) { | 
|---|
|  |  |  | Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, asnOrderItem.getSplrCode())); | 
|---|
|  |  |  | orderItem.setSplrId(companys.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (sum.compareTo(orderItem.getAnfme()) >= 0) { | 
|---|
|  |  |  | //完成质检,做更新操作 | 
|---|
|  |  |  | if (safeQty.compareTo(0.0) > 0) { | 
|---|
|  |  |  | orderItem.setIsptQty(safeQty); | 
|---|
|  |  |  | orderItem.setIsptQty(safeQty).setAnfme(safeQty); | 
|---|
|  |  |  | orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val); | 
|---|
|  |  |  | if (!warehouseAreasItemService.updateById(orderItem)) { | 
|---|
|  |  |  | throw new CoolException("收货区库存明细更新失败!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WarehouseAreasItem areasItem = new WarehouseAreasItem(); | 
|---|
|  |  |  | BeanUtils.copyProperties(orderItem, areasItem); | 
|---|
|  |  |  | if (disQty.compareTo(0.0) > 0) { | 
|---|
|  |  |  | orderItem.setIsptQty(disQty) | 
|---|
|  |  |  | areasItem.setIsptQty(disQty) | 
|---|
|  |  |  | .setAnfme(disQty) | 
|---|
|  |  |  | .setId(null) | 
|---|
|  |  |  | .setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val); | 
|---|
|  |  |  | if (!warehouseAreasItemService.saveOrUpdate(orderItem)) { | 
|---|
|  |  |  | if (!warehouseAreasItemService.saveOrUpdate(areasItem)) { | 
|---|
|  |  |  | throw new CoolException("收货区库存明细更新失败!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | Double anfme = Math.round((orderItem.getAnfme() - sum) * 10000) / 10000.0; | 
|---|
|  |  |  | orderItem.setAnfme(anfme); | 
|---|
|  |  |  | if (!warehouseAreasItemService.updateById(orderItem)) { | 
|---|
|  |  |  | throw new CoolException("收货区库存明细更新失败!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WarehouseAreasItem areasItem = new WarehouseAreasItem(); | 
|---|
|  |  |  | BeanUtils.copyProperties(orderItem, areasItem); | 
|---|
|  |  |  | //未完成做添加操作 | 
|---|
|  |  |  | if (safeQty.compareTo(0.0) > 0) { | 
|---|
|  |  |  | orderItem.setIsptQty(safeQty) | 
|---|
|  |  |  | areasItem.setIsptQty(safeQty) | 
|---|
|  |  |  | .setAnfme(safeQty) | 
|---|
|  |  |  | .setId(null) | 
|---|
|  |  |  | .setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val); | 
|---|
|  |  |  | if (!warehouseAreasItemService.saveOrUpdate(orderItem)) { | 
|---|
|  |  |  | if (!warehouseAreasItemService.saveOrUpdate(areasItem)) { | 
|---|
|  |  |  | throw new CoolException("收货区库存明细更新失败!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WarehouseAreasItem items = new WarehouseAreasItem(); | 
|---|
|  |  |  | BeanUtils.copyProperties(orderItem, items); | 
|---|
|  |  |  | if (disQty.compareTo(0.0) > 0) { | 
|---|
|  |  |  | orderItem.setIsptQty(disQty) | 
|---|
|  |  |  | items.setIsptQty(disQty) | 
|---|
|  |  |  | .setAnfme(disQty) | 
|---|
|  |  |  | .setId(null) | 
|---|
|  |  |  | .setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val); | 
|---|
|  |  |  | if (!warehouseAreasItemService.saveOrUpdate(orderItem)) { | 
|---|
|  |  |  | if (!warehouseAreasItemService.saveOrUpdate(items)) { | 
|---|
|  |  |  | throw new CoolException("收货区库存明细更新失败!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<QlyIsptItem> selectIsptResult(LambdaQueryWrapper<QlyIsptItem> eq) { | 
|---|
|  |  |  | return this.baseMapper.selectIsptResult(eq); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @author Ryan | 
|---|
|  |  |  | * @date 2025/5/12 | 
|---|