新增:续费统计功能

This commit is contained in:
2025-03-01 09:30:41 +08:00
parent 69375f21b9
commit b73b45169b
10 changed files with 147 additions and 32 deletions

View File

@@ -1,7 +1,9 @@
package com.gxwebsoft.oa.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.entity.OaApp;
import com.gxwebsoft.oa.service.OaAppRenewService;
import com.gxwebsoft.oa.entity.OaAppRenew;
import com.gxwebsoft.oa.param.OaAppRenewParam;
@@ -10,13 +12,18 @@ import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.oa.service.OaAppService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 续费管理控制器
@@ -30,6 +37,8 @@ import java.util.List;
public class OaAppRenewController extends BaseController {
@Resource
private OaAppRenewService oaAppRenewService;
@Resource
private OaAppService oaAppService;
@ApiOperation("分页查询续费管理")
@GetMapping("/page")
@@ -117,4 +126,36 @@ public class OaAppRenewController extends BaseController {
return fail("删除失败");
}
@ApiOperation("统计信息")
@GetMapping("/data")
public ApiResult<Map<String, java.math.BigDecimal>> data() {
Map<String, java.math.BigDecimal> data = new HashMap<>();
final User loginUser = getLoginUser();
if(loginUser == null){
return fail("请先登录",null);
}
// 获取当前年份的起止时间
LocalDateTime startOfYear = LocalDateTime.now().withMonth(1).withDayOfMonth(1)
.withHour(0).withMinute(0).withSecond(0);
LocalDateTime endOfYear = startOfYear.plusYears(1).minusNanos(1);
// 今年应收续费总金额(到期时间在今年的记录)
java.math.BigDecimal totalNum1 = oaAppService.sumMoney(new LambdaQueryWrapper<OaApp>()
.between(OaApp::getExpirationTime, startOfYear, endOfYear));
// 今年已收续费总金额(到期时间在今年的记录)
java.math.BigDecimal totalNum2 = oaAppRenewService.sumMoney(new LambdaQueryWrapper<OaAppRenew>()
.between(OaAppRenew::getEndTime, startOfYear, endOfYear));
// 今年已收续费总金额(创建时间在今年且已支付的记录)
java.math.BigDecimal totalNum3 = oaAppRenewService.sumMoney(new LambdaQueryWrapper<OaAppRenew>()
.between(OaAppRenew::getCreateTime, startOfYear, endOfYear)
.isNotNull(OaAppRenew::getMoney));
data.put("totalNum1", totalNum1 != null ? totalNum1 : java.math.BigDecimal.ZERO);
data.put("totalNum2", totalNum2 != null ? totalNum2 : BigDecimal.ZERO);
return success(data);
}
}

View File

@@ -1,11 +1,13 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAppField;
import com.gxwebsoft.oa.param.OaAppFieldParam;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -16,22 +18,22 @@ import java.util.List;
*/
public interface OaAppFieldMapper extends BaseMapper<OaAppField> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAppField>
*/
List<OaAppField> selectPageRel(@Param("page") IPage<OaAppField> page,
@Param("param") OaAppFieldParam param);
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaAppField>
*/
List<OaAppField> selectPageRel(@Param("page") IPage<OaAppField> page,
@Param("param") OaAppFieldParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAppField> selectListRel(@Param("param") OaAppFieldParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaAppField> selectListRel(@Param("param") OaAppFieldParam param);
}

View File

@@ -1,11 +1,13 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaApp;
import com.gxwebsoft.oa.param.OaAppParam;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -16,22 +18,30 @@ import java.util.List;
*/
public interface OaAppMapper extends BaseMapper<OaApp> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaApp>
*/
List<OaApp> selectPageRel(@Param("page") IPage<OaApp> page,
@Param("param") OaAppParam param);
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<OaApp>
*/
List<OaApp> selectPageRel(@Param("page") IPage<OaApp> page,
@Param("param") OaAppParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaApp> selectListRel(@Param("param") OaAppParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<OaApp> selectListRel(@Param("param") OaAppParam param);
/**
* 统计金额总和
*
* @param wrapper 查询条件
* @return 金额总和
*/
BigDecimal selectSumMoney(@Param("ew") Wrapper<?> wrapper);
}

View File

@@ -1,11 +1,14 @@
package com.gxwebsoft.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.oa.entity.OaAppRenew;
import com.gxwebsoft.oa.param.OaAppRenewParam;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -34,4 +37,11 @@ public interface OaAppRenewMapper extends BaseMapper<OaAppRenew> {
*/
List<OaAppRenew> selectListRel(@Param("param") OaAppRenewParam param);
/**
* 统计金额总和
*
* @param wrapper 查询条件
* @return 金额总和
*/
BigDecimal selectSumMoney(@Param("ew") Wrapper<?> wrapper);
}

View File

@@ -226,4 +226,13 @@
<include refid="selectSql"></include>
</select>
<!-- 统计金额总和 -->
<select id="selectSumMoney" resultType="java.math.BigDecimal">
SELECT COALESCE(SUM(renew_money), 0) as total_money
FROM oa_app
<if test="ew != null">
${ew.customSqlSegment}
</if>
</select>
</mapper>

View File

@@ -58,4 +58,13 @@
<include refid="selectSql"></include>
</select>
<!-- 统计金额总和 -->
<select id="selectSumMoney" resultType="java.math.BigDecimal">
SELECT COALESCE(SUM(money), 0) as total_money
FROM oa_app_renew
<if test="ew != null">
${ew.customSqlSegment}
</if>
</select>
</mapper>

View File

@@ -1,10 +1,14 @@
package com.gxwebsoft.oa.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.oa.entity.OaAppRenew;
import com.gxwebsoft.oa.param.OaAppRenewParam;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -39,4 +43,11 @@ public interface OaAppRenewService extends IService<OaAppRenew> {
*/
OaAppRenew getByIdRel(Integer appRenewId);
/**
* 统计金额总和
* @param wrapper 查询条件
* @return 金额总和
*/
BigDecimal sumMoney(LambdaQueryWrapper<OaAppRenew> wrapper);
}

View File

@@ -1,10 +1,12 @@
package com.gxwebsoft.oa.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.oa.entity.OaApp;
import com.gxwebsoft.oa.param.OaAppParam;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -39,4 +41,11 @@ public interface OaAppService extends IService<OaApp> {
*/
OaApp getByIdRel(Integer appId);
/**
* 统计金额总和
*
* @param wrapper 查询条件
* @return 金额总和
*/
BigDecimal sumMoney(LambdaQueryWrapper<OaApp> wrapper);
}

View File

@@ -1,5 +1,6 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.OaAppRenewMapper;
import com.gxwebsoft.oa.service.OaAppRenewService;
@@ -9,6 +10,7 @@ import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -44,4 +46,9 @@ public class OaAppRenewServiceImpl extends ServiceImpl<OaAppRenewMapper, OaAppRe
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public BigDecimal sumMoney(LambdaQueryWrapper<OaAppRenew> wrapper) {
return baseMapper.selectSumMoney(wrapper);
}
}

View File

@@ -1,5 +1,6 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.OaAppMapper;
import com.gxwebsoft.oa.service.OaAppService;
@@ -9,6 +10,7 @@ import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -44,4 +46,9 @@ public class OaAppServiceImpl extends ServiceImpl<OaAppMapper, OaApp> implements
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public BigDecimal sumMoney(LambdaQueryWrapper<OaApp> wrapper) {
return baseMapper.selectSumMoney(wrapper);
}
}