Browse Source

feat: [工作台] 数量统计

master
memorylkf 3 months ago
parent
commit
3a46e18ee7
6 changed files with 174 additions and 0 deletions
  1. +39
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/HomeController.java
  2. +67
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/dto/home/HomeCountDto.java
  3. +15
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/mapper/StudyMapper.java
  4. +7
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/IStudyService.java
  5. +11
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudyServiceImpl.java
  6. +35
    -0
      hxhq-modules/hxhq-system/src/main/resources/mapper/business/StudyMapper.xml

+ 39
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/HomeController.java View File

@ -0,0 +1,39 @@
package com.hxhq.business.controller;
import com.hxhq.business.dto.study.StudyListDto;
import com.hxhq.business.enums.study.StudyTypeEnum;
import com.hxhq.business.form.study.StudySearchForm;
import com.hxhq.business.service.IStudyService;
import com.hxhq.common.core.web.controller.BaseController;
import com.hxhq.common.core.web.domain.AjaxResult;
import com.hxhq.common.core.web.page.TableDataInfo;
import com.hxhq.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 首页Controller
*
* @author hxhq
* @date 2025-12-24
*/
@RestController
@RequestMapping("/business/home")
public class HomeController extends BaseController
{
@Autowired
private IStudyService studyService;
/**
* 查询首页数量
*/
@GetMapping("/count")
@RequiresPermissions("business:user:work")
public AjaxResult list()
{
return AjaxResult.success(studyService.queryHomeCount());
}
}

+ 67
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/dto/home/HomeCountDto.java View File

@ -0,0 +1,67 @@
package com.hxhq.business.dto.home;
/**
* @author memory
*/
public class HomeCountDto {
/**
* 今日新增表单
*/
private Integer formTodayCount;
/**
* 已提交表单
*/
private Integer formYtjCount;
/**
* 待提交表单
*/
private Integer formTbzCount;
/**
* 本周新增试验
*/
private Integer studyFinishCount;
/**
* 已完成试验
*/
private Integer studyWeekCount;
public Integer getFormTodayCount() {
return formTodayCount;
}
public void setFormTodayCount(Integer formTodayCount) {
this.formTodayCount = formTodayCount;
}
public Integer getFormYtjCount() {
return formYtjCount;
}
public void setFormYtjCount(Integer formYtjCount) {
this.formYtjCount = formYtjCount;
}
public Integer getFormTbzCount() {
return formTbzCount;
}
public void setFormTbzCount(Integer formTbzCount) {
this.formTbzCount = formTbzCount;
}
public Integer getStudyFinishCount() {
return studyFinishCount;
}
public void setStudyFinishCount(Integer studyFinishCount) {
this.studyFinishCount = studyFinishCount;
}
public Integer getStudyWeekCount() {
return studyWeekCount;
}
public void setStudyWeekCount(Integer studyWeekCount) {
this.studyWeekCount = studyWeekCount;
}
}

+ 15
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/mapper/StudyMapper.java View File

@ -3,6 +3,7 @@ package com.hxhq.business.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.hxhq.business.domain.Study;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxhq.business.dto.home.HomeCountDto;
import com.hxhq.business.dto.study.StudyListDto;
import org.apache.ibatis.annotations.Param;
@ -36,4 +37,18 @@ public interface StudyMapper extends BaseMapper
* @return
*/
String queryNotFinishFormName(@Param("studyId") Long studyId);
/**
* 获取首页统计的表单数量
* @param userId
* @return
*/
HomeCountDto queryHomeFormCount(@Param("userId") Long userId);
/**
* 获取首页的试验数量
* @param userId
* @return
*/
HomeCountDto queryHomeStudyCount(@Param("userId") Long userId);
}

+ 7
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/IStudyService.java View File

@ -3,6 +3,7 @@ package com.hxhq.business.service;
import java.util.List;
import com.hxhq.business.domain.Study;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxhq.business.dto.home.HomeCountDto;
import com.hxhq.business.dto.study.StudyListDto;
import com.hxhq.business.form.common.SignForm;
import com.hxhq.business.form.study.StudySaveForm;
@ -108,4 +109,10 @@ public interface IStudyService extends IService
*/
void checkPassword(SignForm sign);
/**
* 获取首页统计数量
* @return
*/
HomeCountDto queryHomeCount();
}

+ 11
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudyServiceImpl.java View File

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hxhq.business.domain.MjyJcgj;
import com.hxhq.business.domain.StudyJcgj;
import com.hxhq.business.dto.home.HomeCountDto;
import com.hxhq.business.dto.study.StudyListDto;
import com.hxhq.business.enums.study.StudyBorrowStatusEnum;
import com.hxhq.business.enums.study.StudyStatusEnum;
@ -464,4 +465,14 @@ public class StudyServiceImpl extends ServiceImpl implements
}
}
}
@Override
public HomeCountDto queryHomeCount() {
HomeCountDto formCount = baseMapper.queryHomeFormCount(SecurityUtils.getUserId());
HomeCountDto studyCount = baseMapper.queryHomeStudyCount(SecurityUtils.getUserId());
formCount.setStudyWeekCount(studyCount.getStudyWeekCount());
formCount.setStudyFinishCount(studyCount.getStudyFinishCount());
return formCount;
}
}

+ 35
- 0
hxhq-modules/hxhq-system/src/main/resources/mapper/business/StudyMapper.xml View File

@ -28,4 +28,39 @@
del_flag='0' AND study_id=#{studyId}
AND bdzt NOT IN (5,7,11)
</select>
<select id="queryHomeFormCount" resultType="com.hxhq.business.dto.home.HomeCountDto">
SELECT SUM(formTodayCount) AS formTodayCount,SUM(formYtjCount) AS formYtjCount,SUM(formTbzCount) AS formTbzCount
FROM (
SELECT
COUNT(IF(DATE(create_time)=DATE(NOW()),id,NULL)) AS formTodayCount,
COUNT(IF(bdzt>1,id,NULL)) AS formYtjCount,
COUNT(IF(bdzt=1,id,NULL)) AS formTbzCount
FROM `t_study_form_fill` WHERE del_flag='0'
AND user_id=#{userId}
UNION ALL
SELECT
COUNT(IF(DATE(create_time)=DATE(NOW()),id,NULL)) AS formTodayCount,
COUNT(IF(bdzt>1,id,NULL)) AS formYtjCount,
COUNT(IF(bdzt=1,id,NULL)) AS formTbzCount
FROM `t_study_form_pre` WHERE del_flag='0'
AND user_id=#{userId}
)a
</select>
<select id="queryHomeStudyCount" resultType="com.hxhq.business.dto.home.HomeCountDto">
SELECT COUNT(IF(s.`status` IN (5,7,9),s.`id`,NULL)) AS studyFinishCount,
COUNT(IF(s.create_time>=DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AND s.create_time&lt;DATE_ADD(DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY), INTERVAL 7 DAY),s.id,NULL))
AS studyWeekCount
FROM `t_study` s
WHERE s.del_flag=0 AND s.`type`=1
AND
(s.leader=#{userId}
OR EXISTS (SELECT ss.id FROM `t_study_subject` ss WHERE ss.`del_flag`='0' AND ss.`study_id`=s.`id` AND ss.leader=#{userId})
OR EXISTS (SELECT ssu.id FROM `t_study_subject_user` ssu WHERE ssu.`del_flag`='0' AND ssu.`study_id`=s.`id` AND ssu.user_id=#{userId})
)
</select>
</mapper>

Loading…
Cancel
Save