mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-01 02:38:43 +08:00 
			
		
		
		
	✨ ERP:基本完成销售入库模块
This commit is contained in:
		| @@ -131,7 +131,7 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService { | ||||
|         if (saleOrder.getDiscountPercent() == null) { | ||||
|             saleOrder.setDiscountPercent(BigDecimal.ZERO); | ||||
|         } | ||||
|         saleOrder.setDiscountPrice(MoneyUtils.priceMultiply(saleOrder.getTotalPrice(), saleOrder.getDiscountPercent())); | ||||
|         saleOrder.setDiscountPrice(MoneyUtils.priceMultiplyPercent(saleOrder.getTotalPrice(), saleOrder.getDiscountPercent())); | ||||
|         saleOrder.setTotalPrice(saleOrder.getTotalPrice().subtract(saleOrder.getDiscountPrice())); | ||||
|     } | ||||
|  | ||||
| @@ -191,8 +191,11 @@ public class ErpSaleOrderServiceImpl implements ErpSaleOrderService { | ||||
|             if (item.getTotalPrice() == null) { | ||||
|                 return; | ||||
|             } | ||||
|             item.setTaxPrice(MoneyUtils.priceMultiply(item.getTotalPrice(), item.getTaxPercent())); | ||||
|             item.setTotalPrice(item.getTotalPrice().add(item.getTaxPrice())); | ||||
|             if (item.getTaxPercent() == null) { | ||||
|                 item.setTaxPercent(BigDecimal.ZERO); | ||||
|             } else { | ||||
|                 item.setTaxPrice(MoneyUtils.priceMultiplyPercent(item.getTotalPrice(), item.getTaxPercent())); | ||||
|             } | ||||
|         })); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,11 @@ import cn.iocoder.yudao.module.erp.dal.mysql.sale.ErpSaleOutItemMapper; | ||||
| import cn.iocoder.yudao.module.erp.dal.mysql.sale.ErpSaleOutMapper; | ||||
| import cn.iocoder.yudao.module.erp.dal.redis.no.ErpNoRedisDAO; | ||||
| import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus; | ||||
| import cn.iocoder.yudao.module.erp.enums.stock.ErpStockRecordBizTypeEnum; | ||||
| import cn.iocoder.yudao.module.erp.service.finance.ErpAccountService; | ||||
| import cn.iocoder.yudao.module.erp.service.product.ErpProductService; | ||||
| import cn.iocoder.yudao.module.erp.service.stock.ErpStockRecordService; | ||||
| import cn.iocoder.yudao.module.erp.service.stock.bo.ErpStockRecordCreateReqBO; | ||||
| import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | ||||
| import jakarta.annotation.Resource; | ||||
| import org.springframework.context.annotation.Lazy; | ||||
| @@ -60,6 +63,8 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService { | ||||
|     private ErpSaleOrderService saleOrderService; | ||||
|     @Resource | ||||
|     private ErpAccountService accountService; | ||||
|     @Resource | ||||
|     private ErpStockRecordService stockRecordService; | ||||
|  | ||||
|     @Resource | ||||
|     private AdminUserApi adminUserApi; | ||||
| @@ -142,8 +147,11 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService { | ||||
|         if (saleOut.getDiscountPercent() == null) { | ||||
|             saleOut.setDiscountPercent(BigDecimal.ZERO); | ||||
|         } | ||||
|         saleOut.setDiscountPrice(MoneyUtils.priceMultiply(saleOut.getTotalPrice(), saleOut.getDiscountPercent())); | ||||
|         saleOut.setDiscountPrice(MoneyUtils.priceMultiplyPercent(saleOut.getTotalPrice(), saleOut.getDiscountPercent())); | ||||
|         saleOut.setTotalPrice(saleOut.getTotalPrice().subtract(saleOut.getDiscountPrice())); | ||||
|         // 计算应收金额 | ||||
|         BigDecimal allPrice = saleOut.getTotalPrice().add(saleOut.getOtherPrice()); | ||||
|         saleOut.setDebtPrice(allPrice.subtract(saleOut.getPayPrice())); | ||||
|     } | ||||
|  | ||||
|     private void updateSaleOrderOutCount(Long orderId) { | ||||
| @@ -173,6 +181,17 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService { | ||||
|         if (updateCount == 0) { | ||||
|             throw exception(approve ? SALE_OUT_APPROVE_FAIL : SALE_OUT_PROCESS_FAIL); | ||||
|         } | ||||
|  | ||||
|         // 3. 变更库存 | ||||
|         List<ErpSaleOutItemDO> saleOutItems = saleOutItemMapper.selectListByOutId(id); | ||||
|         Integer bizType = approve ? ErpStockRecordBizTypeEnum.SALE_OUT.getType() | ||||
|                 : ErpStockRecordBizTypeEnum.SALE_OUT_CANCEL.getType(); | ||||
|         saleOutItems.forEach(saleOutItem -> { | ||||
|             BigDecimal count = approve ? saleOutItem.getCount().negate() : saleOutItem.getCount(); | ||||
|             stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO( | ||||
|                     saleOutItem.getProductId(), saleOutItem.getWarehouseId(), count, | ||||
|                     bizType, saleOutItem.getOutId(), saleOutItem.getId(), saleOut.getNo())); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     private List<ErpSaleOutItemDO> validateSaleOutItems(List<ErpSaleOutSaveReqVO.Item> list) { | ||||
| @@ -187,8 +206,11 @@ public class ErpSaleOutServiceImpl implements ErpSaleOutService { | ||||
|             if (item.getTotalPrice() == null) { | ||||
|                 return; | ||||
|             } | ||||
|             item.setTaxPrice(MoneyUtils.priceMultiply(item.getTotalPrice(), item.getTaxPercent())); | ||||
|             item.setTotalPrice(item.getTotalPrice().add(item.getTaxPrice())); | ||||
|             if (item.getTaxPercent() == null) { | ||||
|                 item.setTaxPercent(BigDecimal.ZERO); | ||||
|             } else { | ||||
|                 item.setTaxPrice(MoneyUtils.priceMultiplyPercent(item.getTotalPrice(), item.getTaxPercent())); | ||||
|             } | ||||
|         })); | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV