| | |
| | | import com.ruoyi.framework.security.LoginUser; |
| | | import com.ruoyi.other.mapper.TempFileMapper; |
| | | import com.ruoyi.other.pojo.TempFile; |
| | | import com.ruoyi.procurementrecord.dto.SimplePP; |
| | | import com.ruoyi.procurementrecord.service.ProcurementPriceManagementService; |
| | | import com.ruoyi.project.system.domain.SysUser; |
| | | import com.ruoyi.project.system.mapper.SysUserMapper; |
| | | import com.ruoyi.purchase.dto.PurchaseLedgerDto; |
| | |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | |
| | | private final StringRedisTemplate redisTemplate; |
| | | |
| | | private final IApproveProcessService approveProcessService; |
| | | |
| | | private final ProcurementPriceManagementService procurementPriceManagementService; |
| | | |
| | | @Value("${file.upload-dir}") |
| | | private String uploadDir; |
| | |
| | | if (products == null || products.isEmpty()) { |
| | | throw new BaseException("产品信息不存在"); |
| | | } |
| | | |
| | | PurchaseLedger ledger = purchaseLedgerMapper.selectById(salesLedgerId); |
| | | // 提前收集所有需要查询的ID |
| | | Set<Long> productIds = products.stream() |
| | | .map(SalesLedgerProduct::getProductId) |
| | |
| | | } |
| | | } |
| | | |
| | | updateList.addAll(insertList); |
| | | updateList.forEach(it->{ |
| | | SimplePP simplePP = new SimplePP(); |
| | | simplePP.setProductId(it.getProductId()); |
| | | simplePP.setSupplierName(ledger.getSupplierName()); |
| | | simplePP.setSupplierId(ledger.getSupplierId()); |
| | | simplePP.setUnit(it.getUnit()); |
| | | simplePP.setProductName(it.getProductCategory()); |
| | | simplePP.setSpecification(it.getSpecificationModel()); |
| | | simplePP.setFinalPrice(it.getTaxInclusiveUnitPrice().divide( |
| | | BigDecimal.ONE.add(it.getTaxRate().divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)), |
| | | 2, // 保留4位(可根据业务调整) |
| | | RoundingMode.HALF_UP |
| | | )); |
| | | simplePP.setRemark( |
| | | "系统根据采购提交自动生成。采购合同号为:" + purchaseLedger.getPurchaseContractNumber() + "。" |
| | | ); |
| | | procurementPriceManagementService.autoCreateRecord(simplePP); |
| | | }); |
| | | |
| | | |
| | | |
| | | // 计算总含税金额 |
| | | BigDecimal totalTaxInclusiveAmount = products.stream() |
| | | .map(SalesLedgerProduct::getTaxInclusiveTotalPrice) |