| | |
| | | |
| | | import javax.validation.Valid; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | 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(); |
| | |
| | | |
| | | |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |