From f6f57ba70679a0b050031f3cdf81b5bf5d4cbd60 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期五, 11 七月 2025 15:28:37 +0800 Subject: [PATCH] 1.生产加工优化 2.销售,库存查询优化 --- main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 deletions(-) diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java index 4157611..6a2d46c 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java @@ -19,7 +19,9 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -282,13 +284,44 @@ * 灏嗗姞宸ヤ骇鐢熺殑浜у搧璁板綍鍒板緟鍏ュ簱琛� */ private void insertPendingInventory(List<Production> list) { + LocalDate currentDate = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = currentDate.format(formatter); + // 甯搁噺瀹氫箟锛氫繚鐣�2浣嶅皬鏁帮紝鍥涜垗浜斿叆妯″紡 + final int SCALE = 2; + final RoundingMode ROUNDING_MODE = RoundingMode.HALF_UP; + // 绋庣巼13%锛岀敤瀛楃涓叉瀯閫燘igDecimal閬垮厤绮惧害璇樊 + final BigDecimal TAX_RATE = new BigDecimal("1.13"); + for (Production p : list) { PendingInventory pending = new PendingInventory(); pending.setCoalId(p.getCoalId()); pending.setInventoryQuantity(p.getProductionQuantity()); - pending.setSupplierName("鐢熶骇鍔犲伐鍏ュ簱"); - pending.setTotalPriceIncludingTax(p.getTotalCost()); - pending.setPriceIncludingTax(p.getPurchasePrice()); + pending.setUnit("t"); + pending.setSupplierName(formattedDate + " - " + "鐢熶骇鍔犲伐鍏ュ簱"); + + // 1. 闈炵┖澶勭悊锛氶伩鍏峮ull瀵艰嚧鐨勮繍绠楀紓甯� + BigDecimal totalCost = p.getTotalCost() == null ? BigDecimal.ZERO : p.getTotalCost(); + BigDecimal productionQuantity = p.getProductionQuantity() == null ? BigDecimal.ZERO : p.getProductionQuantity(); + + // 2. 鍚◣鎬讳环 = 鍚◣鍗曚环 * 浜ч噺 鈫� 淇濈暀2浣嶅皬鏁� + BigDecimal totalPriceIncludingTax = totalCost.multiply(productionQuantity) + .setScale(SCALE, ROUNDING_MODE); + pending.setTotalPriceIncludingTax(totalPriceIncludingTax); + + // 3. 鍚◣鍗曚环 鈫� 鐩存帴淇濈暀2浣嶅皬鏁� + pending.setPriceIncludingTax(totalCost.setScale(SCALE, ROUNDING_MODE)); + + // 4. 涓嶅惈绋庡崟浠� = 鍚◣鍗曚环 / 1.13 鈫� 鍏堥珮绮惧害璁$畻锛屽啀淇濈暀2浣� + BigDecimal priceExcludingTax = totalCost.divide(TAX_RATE, 10, ROUNDING_MODE) // 涓棿淇濈暀10浣嶉槻璇樊 + .setScale(SCALE, ROUNDING_MODE); // 鏈�缁堜繚鐣�2浣� + pending.setPriceExcludingTax(priceExcludingTax); + + // 5. 涓嶅惈绋庢�讳环 = 涓嶅惈绋庡崟浠� * 浜ч噺 鈫� 淇濈暀2浣嶅皬鏁� + BigDecimal totalPriceExcludingTax = priceExcludingTax.multiply(productionQuantity) + .setScale(SCALE, ROUNDING_MODE); + pending.setTotalPriceExcludingTax(totalPriceExcludingTax); + pending.setRegistrantId(p.getProducerId()); pending.setRegistrationDate(LocalDate.now()); pendingInventoryMapper.insert(pending); -- Gitblit v1.9.3