From 87dc04e8ef1580218961acbda378f0fd0e5bec89 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 09 十月 2025 16:48:31 +0800
Subject: [PATCH] update

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 109 insertions(+), 4 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java
index 2599113..1028728 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java
@@ -27,6 +27,7 @@
 
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
@@ -56,12 +57,19 @@
     private final TErpClinicWarehousingBatchService erpClinicWarehousingBatchService;
     private final TCrmSupplierService crmSupplierService;
     private final TErpMaintenanceReminderService erpMaintenanceReminderService;
+    private final TSysOtherConfigService sysOtherConfigService;
+    private final TCrmClinicPointsService crmClinicPointsService;
+    private final TCrmChangePointsService crmChangePointsService;
+    private final TCrmBranchService crmBranchService;
+    private final TCrmSalespersonService crmSalespersonService;
+    private final TErpProcurementCommissionService erpProcurementCommissionService;
+
 
 
     @Autowired
-    public TErpProcurementController(TErpProcurementService erpProcurementService, TokenService tokenService,TCrmClinicService crmClinicService,TErpProcurementGoodsService erpProcurementGoodsService
-    , TErpGoodsService erpGoodsService,TErpClinicWarehousingService erpClinicWarehousingService,TErpClinicWarehousingBatchService erpClinicWarehousingBatchService,
-                                     TCrmSupplierService crmSupplierService,TErpMaintenanceReminderService erpMaintenanceReminderService) {
+    public TErpProcurementController(TErpProcurementService erpProcurementService, TokenService tokenService, TCrmClinicService crmClinicService, TErpProcurementGoodsService erpProcurementGoodsService
+    , TErpGoodsService erpGoodsService, TErpClinicWarehousingService erpClinicWarehousingService, TErpClinicWarehousingBatchService erpClinicWarehousingBatchService,
+                                     TCrmSupplierService crmSupplierService, TErpMaintenanceReminderService erpMaintenanceReminderService, TSysOtherConfigService sysOtherConfigService, TCrmClinicPointsService crmClinicPointsService, TCrmChangePointsService crmChangePointsService, TCrmBranchService crmBranchService, TCrmSalespersonService crmSalespersonService, TErpProcurementCommissionService erpProcurementCommissionService) {
         this.erpProcurementService = erpProcurementService;
         this.tokenService = tokenService;
         this.crmClinicService = crmClinicService;
@@ -71,6 +79,13 @@
         this.erpClinicWarehousingBatchService = erpClinicWarehousingBatchService;
         this.crmSupplierService = crmSupplierService;
         this.erpMaintenanceReminderService = erpMaintenanceReminderService;
+        this.sysOtherConfigService = sysOtherConfigService;
+        this.crmClinicPointsService = crmClinicPointsService;
+        this.crmChangePointsService = crmChangePointsService;
+        this.crmBranchService = crmBranchService;
+        this.crmSalespersonService = crmSalespersonService;
+        this.erpProcurementCommissionService = erpProcurementCommissionService;
+
     }
 
 
@@ -198,9 +213,10 @@
         SysUser user = tokenService.getLoginUser().getUser();
         Integer roleType = user.getRoleType();
         String clinicSupplierId=null;
+        TCrmClinic crmClinic = null;
         if(roleType == 5){
             // 诊所
-            TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+            crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
                     .eq(TCrmClinic::getUserId, user.getUserId())
                     .last("LIMIT 1"));
             clinicSupplierId = crmClinic.getId();
@@ -266,6 +282,94 @@
 
 
         }
+
+        BigDecimal payMoney = erpProcurement.getPayMoney();
+        // 诊所添加积分  分公司添加积分 业务员添加积分    分公司添加分佣记录  业务员添加分佣记录
+        TSysOtherConfig sysOtherConfig= sysOtherConfigService.getById(1);
+        if(sysOtherConfig!=null && sysOtherConfig.getPointsExpiration()!=null){
+            Integer pointsExpiration = sysOtherConfig.getPointsExpiration();
+            if(sysOtherConfig.getExpireUnit().equals(2)){
+                pointsExpiration = pointsExpiration * 31;
+            }
+            if(sysOtherConfig.getExpireUnit().equals(3)){
+                pointsExpiration = pointsExpiration * 365;
+            }
+            Double procurementConditions = sysOtherConfig.getProcurementConditions();
+
+            // 积分数
+            int points = payMoney.divide(BigDecimal.valueOf(procurementConditions), 2, RoundingMode.HALF_DOWN).intValue();
+            TCrmClinicPoints tCrmClinicPoints = new TCrmClinicPoints();
+            tCrmClinicPoints.setClinicId(erpProcurement.getClinicId());
+            tCrmClinicPoints.setPoints(points);
+            tCrmClinicPoints.setExpireTime(LocalDateTime.now().plusDays(pointsExpiration));
+            crmClinicPointsService.save(tCrmClinicPoints);
+
+            TCrmChangePoints tCrmChangePoints = new TCrmChangePoints();
+            tCrmChangePoints.setProcurementId(erpProcurement.getId());
+            tCrmChangePoints.setBranchSalespersonId(erpProcurement.getClinicId());
+            tCrmChangePoints.setUserType(3);
+            tCrmChangePoints.setChangeType(1);
+            tCrmChangePoints.setChangeReason(1);
+            tCrmChangePoints.setChangeValue(points);
+            crmChangePointsService.save(tCrmChangePoints);
+
+        }
+
+        String branchId = crmClinic.getBranchId();
+        TCrmBranch branch = crmBranchService.getById(branchId);
+        if(branch!=null){
+
+            // 积分数
+            int points = payMoney.divide(branch.getPointsCommission(), 2, RoundingMode.HALF_DOWN).intValue();
+
+            TCrmChangePoints tCrmChangePoints = new TCrmChangePoints();
+            tCrmChangePoints.setProcurementId(erpProcurement.getId());
+            tCrmChangePoints.setBranchSalespersonId(branchId);
+            tCrmChangePoints.setUserType(1);
+            tCrmChangePoints.setChangeType(1);
+            tCrmChangePoints.setChangeReason(1);
+            tCrmChangePoints.setChangeValue(points);
+            crmChangePointsService.save(tCrmChangePoints);
+
+
+            // 分佣
+            BigDecimal commission = branch.getMoneyCommission().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_DOWN).multiply(payMoney).setScale(2, RoundingMode.HALF_UP);
+            TErpProcurementCommission tErpProcurementCommission = new TErpProcurementCommission();
+            tErpProcurementCommission.setProcurementId(erpProcurement.getId());
+            tErpProcurementCommission.setCommissionType(1);
+            tErpProcurementCommission.setBranchSalespersonId(branchId);
+            tErpProcurementCommission.setMoney(commission.doubleValue());
+            erpProcurementCommissionService.save(tErpProcurementCommission);
+
+        }
+
+        String salespersonId = crmClinic.getSalespersonId();
+        TCrmSalesperson salesperson = crmSalespersonService.getById(salespersonId);
+        if(salesperson!=null){
+            // 积分数
+            int points = payMoney.divide(salesperson.getPointsCommission(), 2, RoundingMode.HALF_DOWN).intValue();
+            TCrmChangePoints tCrmChangePoints = new TCrmChangePoints();
+            tCrmChangePoints.setProcurementId(erpProcurement.getId());
+            tCrmChangePoints.setBranchSalespersonId(salespersonId);
+            tCrmChangePoints.setUserType(2);
+            tCrmChangePoints.setChangeType(1);
+            tCrmChangePoints.setChangeReason(1);
+            tCrmChangePoints.setChangeValue(points);
+            crmChangePointsService.save(tCrmChangePoints);
+
+
+
+            // 分佣
+            BigDecimal commission = salesperson.getMoneyCommission().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_DOWN).multiply(payMoney).setScale(2, RoundingMode.HALF_UP);
+            TErpProcurementCommission tErpProcurementCommission = new TErpProcurementCommission();
+            tErpProcurementCommission.setProcurementId(erpProcurement.getId());
+            tErpProcurementCommission.setCommissionType(2);
+            tErpProcurementCommission.setBranchSalespersonId(salespersonId);
+            tErpProcurementCommission.setMoney(commission.doubleValue());
+            erpProcurementCommissionService.save(tErpProcurementCommission);
+        }
+
+
         return R.ok();
     }
 
@@ -276,5 +380,6 @@
 
 
 
+
 }
 

--
Gitblit v1.7.1