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 |  175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 167 insertions(+), 8 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 cc43677..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
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.lkl.laop.sdk.request.V3LabsTransPreorderRequest;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.BaseModel;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
@@ -16,18 +17,19 @@
 import com.ruoyi.system.query.TErpGoodsQuery;
 import com.ruoyi.system.query.TErpProcurementQuery;
 import com.ruoyi.system.service.*;
-import com.ruoyi.system.vo.DetailProcurementVO;
-import com.ruoyi.system.vo.TErpGoodsVO;
-import com.ruoyi.system.vo.TErpProcurementDetailVo;
-import com.ruoyi.system.vo.TErpProcurementVo;
+import com.ruoyi.system.vo.*;
 import com.ruoyi.web.core.config.LakalaConfig;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -54,12 +56,20 @@
     private final TErpClinicWarehousingService erpClinicWarehousingService;
     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) {
+    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;
@@ -68,6 +78,14 @@
         this.erpClinicWarehousingService = erpClinicWarehousingService;
         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;
+
     }
 
 
@@ -151,6 +169,43 @@
 
         return R.ok( erpProcurementService.detailProcurement(clinicSupplierId, user, id));
     }
+    @ApiOperation(value = "采购草稿")
+    @GetMapping(value = "/getProcurementDraft")
+    public R<ArrayList<DetailProcurementNextVO>> getProcurementDraft() {
+        SysUser user = tokenService.getLoginUser().getUser();
+        Integer roleType = user.getRoleType();
+        String clinicSupplierId=null;
+        if(roleType == 5){
+            // 诊所
+            TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+                    .eq(TCrmClinic::getUserId, user.getUserId())
+                    .last("LIMIT 1"));
+            clinicSupplierId = crmClinic.getId();
+        }
+        ArrayList<DetailProcurementNextVO> detailProcurementNextVOS = new ArrayList<>();
+        List<TErpProcurement> list1 = erpProcurementService.list(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getStatus, 1).orderByDesc(TErpProcurement::getCreateTime));
+        if(list1.isEmpty()){
+            return R.ok(detailProcurementNextVOS);
+        }
+        String id = list1.get(0).getId();
+        List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, id));
+
+        for (TErpProcurementGoods tErpProcurementGoods : list) {
+            DetailProcurementNextVO detailProcurementNextVO = new DetailProcurementNextVO();
+            detailProcurementNextVO.setId(tErpProcurementGoods.getId());
+            detailProcurementNextVO.setGoodsName(tErpProcurementGoods.getGoodsName());
+            detailProcurementNextVO.setQuasiNumber(tErpProcurementGoods.getQuasiNumber());
+            detailProcurementNextVO.setPackingUnitName(tErpProcurementGoods.getUnitName());
+            detailProcurementNextVO.setSalesAmount(tErpProcurementGoods.getSalesAmount());
+            detailProcurementNextVO.setNum(tErpProcurementGoods.getPurchaseCount());
+            detailProcurementNextVO.setTotalPrice(tErpProcurementGoods.getTotalPrice());
+            detailProcurementNextVO.setSupplierName(tErpProcurementGoods.getSupplierName());
+            detailProcurementNextVO.setUnitName(tErpProcurementGoods.getUnitName());
+            detailProcurementNextVO.setPurchasePrice(tErpProcurementGoods.getPurchasePrice());
+            detailProcurementNextVOS.add(detailProcurementNextVO);
+        }
+        return R.ok(detailProcurementNextVOS);
+    }
 
     @ApiOperation(value = "采购详情入库")
     @PostMapping(value = "/updateStatusProcurement")
@@ -158,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();
@@ -211,7 +267,109 @@
             tErpClinicWarehousingGoods.setSalesAmount(tErpProcurementGoods.getSalesAmount());
             erpClinicWarehousingBatchService.save(tErpClinicWarehousingGoods);
 
+
+            if(erpGoods.getMaintenanceInterval()!=null){
+                TErpMaintenanceReminder tErpMaintenanceReminder = new TErpMaintenanceReminder();
+                tErpMaintenanceReminder.setClinicSupplierId(clinicSupplierId);
+                tErpMaintenanceReminder.setMaintenanceType(2);
+                tErpMaintenanceReminder.setWarehousingBatchId(tErpClinicWarehousingGoods.getId());
+                Integer day = Integer.valueOf(erpGoods.getMaintenanceInterval());
+                // 当前时间+day天
+                LocalDateTime time1 = LocalDateTime.now().plusDays(day);
+                tErpMaintenanceReminder.setMaintenanceTime(time1);
+                erpMaintenanceReminderService.save(tErpMaintenanceReminder);
+            }
+
+
         }
+
+        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();
     }
 
@@ -222,5 +380,6 @@
 
 
 
+
 }
 

--
Gitblit v1.7.1