liujie
2 天以前 87dc04e8ef1580218961acbda378f0fd0e5bec89
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) {
                                     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 @@
}