| | |
| | | import com.ruoyi.sales.dto.*; |
| | | import com.ruoyi.sales.mapper.*; |
| | | import com.ruoyi.sales.pojo.*; |
| | | import com.ruoyi.sales.service.ISalesLedgerProductProcessBindService; |
| | | import com.ruoyi.sales.service.ISalesLedgerProductProcessService; |
| | | import com.ruoyi.sales.service.ISalesLedgerService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | private final ProductionProductInputMapper productionProductInputMapper; |
| | | private final QualityInspectMapper qualityInspectMapper; |
| | | private final RedisTemplate<String, String> redisTemplate; |
| | | |
| | | private final ISalesLedgerProductProcessService salesLedgerProductProcessService; |
| | | |
| | | private final ISalesLedgerProductProcessBindService salesLedgerProductProcessBindService; |
| | | |
| | | @Autowired |
| | | private SysDeptMapper sysDeptMapper; |
| | | @Value("${file.upload-dir}") |
| | |
| | | // 查询退货信息 |
| | | List<Long> productIds = salesLedgerProducts.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList()); |
| | | List<SimpleReturnOrderGroupDto> groupListByProductIds = new ArrayList<>(); |
| | | if(CollectionUtils.isNotEmpty(productIds)){ |
| | | if (CollectionUtils.isNotEmpty(productIds)) { |
| | | groupListByProductIds = purchaseReturnOrderProductsMapper.getReturnOrderGroupListByProductIds(productIds); |
| | | } |
| | | Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getSalesLedgerProductId, SimpleReturnOrderGroupDto::getSumReturnQuantity)); |
| | |
| | | .last("limit 1")); |
| | | if (shippingInfo != null) { |
| | | product.setShippingStatus(shippingInfo.getStatus()); |
| | | } |
| | | // 加工明细,先查bind表获取该产品关联的工序及数量 |
| | | List<SalesLedgerProductProcessBind> bindList = salesLedgerProductProcessBindService.list( |
| | | new LambdaQueryWrapper<SalesLedgerProductProcessBind>() |
| | | .eq(SalesLedgerProductProcessBind::getSalesLedgerProductId, product.getId())); |
| | | if (!bindList.isEmpty()) { |
| | | List<Integer> processIds = bindList.stream() |
| | | .map(SalesLedgerProductProcessBind::getSalesLedgerProductProcessId) |
| | | .collect(Collectors.toList()); |
| | | Map<Integer, Integer> processQuantityMap = bindList.stream() |
| | | .collect(Collectors.toMap( |
| | | SalesLedgerProductProcessBind::getSalesLedgerProductProcessId, |
| | | SalesLedgerProductProcessBind::getQuantity, |
| | | (a, b) -> a)); |
| | | List<SalesLedgerProductProcess> processList = salesLedgerProductProcessService.listByIds(processIds); |
| | | processList.forEach(p -> p.setQuantity(processQuantityMap.get(p.getId()))); |
| | | product.setSalesProductProcessList(processList); |
| | | } |
| | | } |
| | | |
| | |
| | | salesLedgerProductMapper.deleteBatchIds(productIds); |
| | | } |
| | | |
| | | // 清除产品的加工 |
| | | salesLedgerProductProcessBindService.remove(new LambdaQueryWrapper<SalesLedgerProductProcessBind>().in(SalesLedgerProductProcessBind::getSalesLedgerProductId, productIds)); |
| | | |
| | | LambdaQueryWrapper<InvoiceRegistrationProduct> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.in(InvoiceRegistrationProduct::getSalesLedgerId, idList); |
| | | List<InvoiceRegistrationProduct> invoiceRegistrationProducts = invoiceRegistrationProductMapper.selectList(wrapper); |
| | |
| | | for (SalesLedgerProduct product : updateList) { |
| | | product.setType(type.getCode()); |
| | | salesLedgerProductMapper.updateById(product); |
| | | // 实现删除绑定的全部加工 |
| | | salesLedgerProductProcessBindService.remove(new LambdaQueryWrapper<SalesLedgerProductProcessBind>().eq(SalesLedgerProductProcessBind::getSalesLedgerProductId, product.getId())); |
| | | // 绑定产品额外加工 |
| | | List<SalesLedgerProductProcess> salesProductProcessList = product.getSalesProductProcessList(); |
| | | salesProductProcessList.forEach(s -> { |
| | | SalesLedgerProductProcessBind processBind = new SalesLedgerProductProcessBind(); |
| | | processBind.setSalesLedgerProductId(Math.toIntExact(product.getId())); |
| | | processBind.setSalesLedgerProductProcessId(s.getId()); |
| | | processBind.setQuantity(s.getQuantity()); |
| | | salesLedgerProductProcessBindService.save(processBind); |
| | | }); |
| | | } |
| | | } |
| | | // 执行插入操作 |
| | |
| | | salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice()); |
| | | salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice()); |
| | | salesLedgerProductMapper.insert(salesLedgerProduct); |
| | | // 绑定产品额外加工 |
| | | List<SalesLedgerProductProcess> salesProductProcessList = salesLedgerProduct.getSalesProductProcessList(); |
| | | salesProductProcessList.forEach(s -> { |
| | | SalesLedgerProductProcessBind processBind = new SalesLedgerProductProcessBind(); |
| | | processBind.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId())); |
| | | processBind.setSalesLedgerProductProcessId(s.getId()); |
| | | processBind.setQuantity(s.getQuantity()); |
| | | salesLedgerProductProcessBindService.save(processBind); |
| | | }); |
| | | // 添加生产数据 |
| | | salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct); |
| | | } |