diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/vo/DashboardRespVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/vo/DashboardRespVO.java index 17ba0f3..31d1af4 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/vo/DashboardRespVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/customer/vo/DashboardRespVO.java @@ -21,6 +21,9 @@ public class DashboardRespVO { @Schema(description = "license数量") private Long licenseCount; + @Schema(description = "永久license数量") + private Long permanentCount; + @Schema(description = "用户数量") private Long userCount; diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/customer/CustomerMapper.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/customer/CustomerMapper.java index 503369f..cccd2a4 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/customer/CustomerMapper.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/customer/CustomerMapper.java @@ -5,6 +5,7 @@ import org.agt.framework.mybatis.core.mapper.BaseMapperX; import org.agt.framework.mybatis.core.query.LambdaQueryWrapperX; import org.agt.module.license.controller.admin.customer.vo.CustomerPageReqVO; import org.agt.module.license.controller.admin.customer.vo.CustomerRespVO; +import org.agt.module.license.controller.admin.customer.vo.DashboardRespVO; import org.agt.module.license.dal.dataobject.customer.CustomerDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -51,4 +52,8 @@ public interface CustomerMapper extends BaseMapperX { Integer selectOldMaxCode(); List getLicenseCustomers(); + + DashboardRespVO getLicenseCount(); + + DashboardRespVO getProjectCount(); } diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerServiceImpl.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerServiceImpl.java index 8888f59..522f317 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerServiceImpl.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/customer/CustomerServiceImpl.java @@ -32,7 +32,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; -import java.util.stream.Collectors; import static org.agt.framework.common.exception.util.ServiceExceptionUtil.exception; import static org.agt.module.license.enums.ErrorCodeConstants.CUSTOMER_CODE_DUPLICATE; @@ -70,15 +69,12 @@ public class CustomerServiceImpl implements CustomerService { @Override public DashboardRespVO dashboard() { Long customerCount = customerMapper.selectCount(Wrappers.lambdaQuery().notIn(CustomerDO::getName, Arrays.asList("AGT", "BA", "Blue Arcus"))); - List customerDOS = customerMapper.selectList(Wrappers.lambdaQuery().in(CustomerDO::getName, Arrays.asList("AGT", "BA", "Blue Arcus"))); - List customerIds = customerDOS.stream().map(CustomerDO::getId).collect(Collectors.toList()); - Long projectCount = projectMapper.selectCount(Wrappers.lambdaQuery().notIn(CollUtil.isNotEmpty(customerIds), ProjectDO::getCustomerId, customerIds)); - Long contractCount = projectMapper.selectCount(Wrappers.lambdaQuery().ne(ProjectDO::getContractCode, "0")); - Long licenseCount = licenseMapper.selectCount(); - DashboardRespVO dashboardRespVO = new DashboardRespVO(); + DashboardRespVO projectRespVO = customerMapper.getProjectCount(); + Long projectCount = projectRespVO.getProjectCount(); + Long contractCount = projectRespVO.getContractCount(); + DashboardRespVO dashboardRespVO = customerMapper.getLicenseCount(); dashboardRespVO.setCustomerCount(customerCount); dashboardRespVO.setProjectCount(projectCount); - dashboardRespVO.setLicenseCount(licenseCount); dashboardRespVO.setContractCount(contractCount); dashboardRespVO.setUserCount(customerMapper.selectUserCount()); if (projectCount == 0) { @@ -87,10 +83,11 @@ public class CustomerServiceImpl implements CustomerService { dashboardRespVO.setSigningRate(BigDecimal.valueOf(contractCount).multiply(BigDecimal.valueOf(100)) .divide(BigDecimal.valueOf(projectCount), 0, RoundingMode.HALF_UP).longValue()); } + Long licenseCount = dashboardRespVO.getLicenseCount(); if (licenseCount == 0) { dashboardRespVO.setCompletionRate(0L); } else { - dashboardRespVO.setCompletionRate(BigDecimal.valueOf(contractCount).multiply(BigDecimal.valueOf(100)) + dashboardRespVO.setCompletionRate(BigDecimal.valueOf(dashboardRespVO.getPermanentCount()).multiply(BigDecimal.valueOf(100)) .divide(BigDecimal.valueOf(licenseCount), 0, RoundingMode.HALF_UP).longValue()); } diff --git a/agt-module-license/agt-module-license-server/src/main/resources/mapper/customer/CustomerMapper.xml b/agt-module-license/agt-module-license-server/src/main/resources/mapper/customer/CustomerMapper.xml index a272a43..2c729f2 100644 --- a/agt-module-license/agt-module-license-server/src/main/resources/mapper/customer/CustomerMapper.xml +++ b/agt-module-license/agt-module-license-server/src/main/resources/mapper/customer/CustomerMapper.xml @@ -39,4 +39,38 @@ AND l.id IS NULL AND c.id IS NOT NULL + + + + \ No newline at end of file