64150db2 康伟

kangwei: 领导带班统计,解决:MyBatis-Plus 进行查询并返回空 List 集合

1 个父辈 a15a008f
......@@ -110,7 +110,9 @@ public class LeaderInspectionRecordController {
@GetMapping(value = "/statistics")
public Result<LeaderInspectionRecordVO> statistics(LeaderInspectionRecordSearchVO leaderInspectionRecord, HttpServletRequest req) {
Result<LeaderInspectionRecordVO> result = new Result<>();
String departIds = null;
if (StringUtils.isEmpty(leaderInspectionRecord.getDepartId())) {
departIds = BaseContextHandler.getDeparts();
}else{
......@@ -118,33 +120,41 @@ public class LeaderInspectionRecordController {
}
leaderInspectionRecord.setDepartIds(JSUtils.quoteEach(departIds,",")) ;
LeaderInspectionRecordVO leaderInspectionRecordVO = leaderInspectionRecordService.statisticsNum(leaderInspectionRecord);
if(leaderInspectionRecordVO == null){
leaderInspectionRecordVO = new LeaderInspectionRecordVO("0","0",new ArrayList<>(),new ArrayList<>());
}
List<LeaderInspectionRecordStatisticsVO> timeDataList = leaderInspectionRecordService.statisticsByTime(leaderInspectionRecord);
List<LeaderInspectionRecordStatisticsVO> leaderDataList = leaderInspectionRecordService.statisticsByLeader(leaderInspectionRecord);
List<LeaderInspectionRecordStatisticsVO> monthDataList = null;
LeaderInspectionRecordStatisticsVO statisticsVO = null;
List<String> monthsDateList = DateUtil.getMonthsBetween(leaderInspectionRecord.getStartDate(), leaderInspectionRecord.getEndDate(),null);
if(monthsDateList != null ){
monthDataList = new ArrayList<>(monthsDateList.size());
for(String time : monthsDateList){
statisticsVO = null;
if(timeDataList != null){
for(LeaderInspectionRecordStatisticsVO timeDate : timeDataList){
if( time.equals( timeDate.getTime() ) ){
statisticsVO = timeDate;
break;
if( StringUtils.isEmpty(leaderInspectionRecord.getStartDate()) || StringUtils.isEmpty(leaderInspectionRecord.getEndDate())){
List<String> monthsDateList = DateUtil.getMonthsBetween(leaderInspectionRecord.getStartDate(), leaderInspectionRecord.getEndDate(),null);
if(monthsDateList != null ){
monthDataList = new ArrayList<>(monthsDateList.size());
for(String time : monthsDateList){
statisticsVO = null;
if(timeDataList != null){
for(LeaderInspectionRecordStatisticsVO timeDate : timeDataList){
if( time.equals( timeDate.getTime() ) ){
statisticsVO = timeDate;
break;
}
}
}
}
if(statisticsVO != null){
monthDataList.add( statisticsVO ) ;
}else{
monthDataList.add( new LeaderInspectionRecordStatisticsVO(time,"0","0") );
}
if(statisticsVO != null){
monthDataList.add( statisticsVO ) ;
}else{
monthDataList.add( new LeaderInspectionRecordStatisticsVO(time,"0","0") );
}
}
}
}else{
monthDataList = new ArrayList<>();
}
leaderInspectionRecordVO.setLeaderDataList( leaderDataList);
leaderInspectionRecordVO.setTimeDataList(monthDataList );
result.setSuccess(true);
......
......@@ -4,16 +4,13 @@ import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.skua.core.aspect.annotation.Dict;
import com.skua.modules.guest.util.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
......
......@@ -33,7 +33,7 @@ public class AjhWasteMonthReportServiceImpl extends ServiceImpl<AjhWasteMonthRep
List<AjhWasteMonthReport> list = new ArrayList<>();
String departId = null;
if (StringUtils.isBlank(ajhWasteMonthReport.getDepartId())&&StringUtils.isNotBlank(BaseContextHandler.getDeparts())) {
departId = departService.getChildDepartId(BaseContextHandler.getDeparts());
departId = BaseContextHandler.getDeparts();
}else{
departId = departService.getChildDepartId(ajhWasteMonthReport.getDepartId());
}
......
......@@ -32,7 +32,7 @@ public class AjhWasteYearReportServiceImpl extends ServiceImpl<AjhWasteYearRepor
List<AjhWasteYearReport> list = new ArrayList<>();
String departId = null;
if (StringUtils.isBlank(ajhWasteYearReport.getDepartId())&&StringUtils.isNotBlank(BaseContextHandler.getDeparts())) {
departId = departService.getChildDepartId(BaseContextHandler.getDeparts());
departId = BaseContextHandler.getDeparts();
}else{
departId = departService.getChildDepartId(ajhWasteYearReport.getDepartId());
}
......
......@@ -24,10 +24,10 @@ public class LeaderInspectionRecordServiceImpl extends ServiceImpl<LeaderInspect
*/
public LeaderInspectionRecordVO statisticsNum(LeaderInspectionRecordSearchVO leaderInspectionRecord){
List<LeaderInspectionRecordVO> dataList = this.baseMapper.statisticsNum( leaderInspectionRecord) ;
if(dataList != null ){
if(dataList != null && !dataList.isEmpty()){
return dataList.get(0);
}
return new LeaderInspectionRecordVO("0","0",new ArrayList<>(),new ArrayList<>());
return null;
}
/**
* 根据时间统计
......
......@@ -83,7 +83,7 @@ public class MaterialInfoController {
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
*//* String departIds = null;
if (StringUtils.isBlank(materialInfo.getDepartId())&&StringUtils.isNotBlank(BaseContextHandler.getDeparts())) {
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts());
departIds =BaseContextHandler.getDeparts()
}else{
departIds = departService.getChildDepartId(materialInfo.getDepartId());
}
......@@ -160,7 +160,7 @@ public class MaterialInfoController {
QueryWrapper<MaterialInfo> queryWrapper = new QueryWrapper();
String departIds = null;
if (StringUtils.isNotEmpty(materialInfo.getDepartId())) {
departIds = departService.getChildDepartId(BaseContextHandler.getDeparts());
departIds = departService.getChildDepartId(materialInfo.getDepartId());
//departIds = BaseContextHandler.getDeparts();
queryWrapper.in("depart_id", JSUtils.quoteEach(departIds,","));
}
......@@ -501,8 +501,8 @@ public class MaterialInfoController {
@GetMapping(value = "/flowStatistics")
public Result<List<Map<String, Object>>> flowStatistics(String departId,String startTime,String endTime,String facInformationtype,String status) {
Result<List<Map<String, Object>>> result = new Result<>();
if (StringUtils.isBlank(departId)&&StringUtils.isNotBlank(BaseContextHandler.getDeparts())) {
departId = departService.getChildDepartId(BaseContextHandler.getDeparts());
if (StringUtils.isBlank(departId)) {
departId = BaseContextHandler.getDeparts();
}else{
departId = departService.getChildDepartId(departId);
}
......
package com.skua.modules.safe.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
......@@ -12,16 +10,18 @@ import com.skua.core.api.vo.Result;
import com.skua.core.aspect.annotation.AutoLog;
import com.skua.core.context.BaseContextHandler;
import com.skua.core.query.QueryGenerator;
import com.skua.core.service.ISequenceService;
import com.skua.core.util.ConvertUtils;
import com.skua.modules.safe.entity.SafetyStandardOptimize;
import com.skua.modules.safe.service.ISafetyStandardOptimizeService;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.skua.modules.safe.vo.StatisticsSearchVO;
import com.skua.modules.system.service.ISysDepartService;
import com.skua.tool.util.JSUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
......@@ -52,6 +52,9 @@ public class SafetyStandardOptimizeController {
@Autowired
private ISafetyStandardOptimizeService safetyStandardOptimizeService;
@Autowired
private ISysDepartService departService;
/**
* <pre>
* 分页列表查询
......@@ -64,9 +67,8 @@ public class SafetyStandardOptimizeController {
* @author 开发者姓名, 开发时间
* @Description: TODO(这里描述这个方法的需求变更情况)
*/
@AutoLog(value = "安全标准化优化-分页列表查询")
@ApiOperation(value="安全标准化优化-分页列表查询", notes="安全标准化优化-分页列表查询")
@ApiOperation(value="安全标准化优化-分页列表查询", notes="安全标准化优化-分页列表查询(时间参数:startDate,endDate)")
@GetMapping(value = "/list")
public Result<IPage<SafetyStandardOptimize>> queryPageList(SafetyStandardOptimize safetyStandardOptimize,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
......@@ -75,12 +77,75 @@ public class SafetyStandardOptimizeController {
Result<IPage<SafetyStandardOptimize>> result = new Result<IPage<SafetyStandardOptimize>>();
QueryWrapper<SafetyStandardOptimize> queryWrapper = QueryGenerator.initQueryWrapper(safetyStandardOptimize, req.getParameterMap());
Page<SafetyStandardOptimize> page = new Page<SafetyStandardOptimize>(pageNo, pageSize);
String startDate = req.getParameter("startDate");
if(StringUtils.isNotEmpty(startDate)){
queryWrapper.ge("create_time",startDate+" 00:00:00");
}
String endDate = req.getParameter("endDate");
if(StringUtils.isNotEmpty(startDate)){
queryWrapper.le("create_time",endDate+" 23:59:59");
}
queryWrapper.orderByDesc("create_time");
IPage<SafetyStandardOptimize> pageList = safetyStandardOptimizeService.page(page, queryWrapper);
result.setSuccess(true);
result.setResult(pageList);
return result;
}
// 统计、统计详情 statistics
@AutoLog(value = "安全标准化优化-统计数量")
@ApiOperation(value="安全标准化优化-统计数量", notes="安全标准化优化-统计数量")
@GetMapping(value = "/statisticsCount")
public Result<Map<String,String>> statisticsCount( StatisticsSearchVO statisticsSearchVO) {
Result<Map<String,String>> result = new Result<>();
Map<String,String> dataMap = new HashMap<>();
String departIds = null;
if(StringUtils.isNotEmpty(statisticsSearchVO.getDepartId())){
departIds = departService.getChildDepartId(statisticsSearchVO.getDepartId());
}else{
departIds = BaseContextHandler.getDeparts();
}
statisticsSearchVO.setDepartIds( JSUtils.quoteEach(departIds,","));
List<StatisticsSearchVO> dataList = safetyStandardOptimizeService.statistics(statisticsSearchVO);
Integer wantNum = 0 ;
String finishNum = "0";
String finishNumExpression = "0";
if(dataList != null && !dataList.isEmpty()) {
wantNum = dataList.size() * 4;
for(StatisticsSearchVO searchVO : dataList) {
finishNumExpression += "+" + searchVO.getFinishNum();
}
finishNum = JSUtils.executeExpression(finishNumExpression,"0");
}
dataMap.put("wantNum",wantNum+"");
dataMap.put("finishNum",finishNum);
result.setSuccess(true);
result.setResult(dataMap);
return result;
}
@AutoLog(value = "安全标准化优化-统计列表")
@ApiOperation(value="安全标准化优化-统计列表", notes="安全标准化优化-统计列表")
@GetMapping(value = "/statisticsList")
public Result<List<StatisticsSearchVO>> statisticsList( StatisticsSearchVO statisticsSearchVO) {
Result<List<StatisticsSearchVO>> result = new Result<>();
String departIds = null;
if(StringUtils.isNotEmpty(statisticsSearchVO.getDepartId())){
departIds = departService.getChildDepartId(statisticsSearchVO.getDepartId());
}else{
departIds = BaseContextHandler.getDeparts();
}
statisticsSearchVO.setDepartIds( JSUtils.quoteEach(departIds,","));
List<StatisticsSearchVO> dataList = safetyStandardOptimizeService.statistics(statisticsSearchVO);
result.setSuccess(true);
result.setResult(dataList);
return result;
}
/**
* <pre>
* 添加
......
......@@ -59,6 +59,12 @@ public class SafetyStandardOptimize {
@Excel(name = "文件路径", width = 15)
@ApiModelProperty(value = "文件路径")
private String filePath;
@Excel(name = "自评分数", width = 15)
@ApiModelProperty(value = "自评分数")
private String selfScore;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
......
package com.skua.modules.safe.mapper;
import java.util.List;
import java.util.Map;
import com.skua.modules.safe.vo.StatisticsSearchVO;
import org.apache.ibatis.annotations.Param;
import com.skua.modules.safe.entity.SafetyStandardOptimize;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
......@@ -11,4 +13,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface SafetyStandardOptimizeMapper extends BaseMapper<SafetyStandardOptimize> {
/***
* 统计
* @return
*/
List<StatisticsSearchVO> statistics(StatisticsSearchVO statisticsSearchVO);
}
......
......@@ -2,4 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.skua.modules.safe.mapper.SafetyStandardOptimizeMapper">
</mapper>
\ No newline at end of file
<select id="statistics" resultType="com.skua.modules.safe.vo.StatisticsSearchVO" >
select d.id depart_id, d.depart_name,#{wantNum} 'wantNum', ifnull(aaa.report_num , 0 )finishNum
from sys_depart d
left join (select so.depart_id , count(so.id) report_num from safety_standard_optimize so
where DATE_FORMAT( so.create_time, '%Y-%m-%d' ) &gt;= #{startDate} AND DATE_FORMAT( so.create_time, '%Y-%m-%d' ) &lt;= #{endDate}
GROUP BY so.depart_id ) aaa on aaa.depart_id = d.id
where d.id in(${departIds})
<if test="departName != null ">
and d.depart_name like CONCAT('%',#{departName},'%')
</if>
and d.depart_type = 1
</select>
</mapper>
......
......@@ -2,10 +2,19 @@ package com.skua.modules.safe.service;
import com.skua.modules.safe.entity.SafetyStandardOptimize;
import com.baomidou.mybatisplus.extension.service.IService;
import com.skua.modules.safe.vo.StatisticsSearchVO;
import java.util.List;
import java.util.Map;
/**
* 安全标准化优化
*/
public interface ISafetyStandardOptimizeService extends IService<SafetyStandardOptimize> {
/***
* 统计
* @return
*/
List<StatisticsSearchVO > statistics(StatisticsSearchVO statisticsSearchVO);
}
......
......@@ -3,14 +3,36 @@ package com.skua.modules.safe.service.impl;
import com.skua.modules.safe.entity.SafetyStandardOptimize;
import com.skua.modules.safe.mapper.SafetyStandardOptimizeMapper;
import com.skua.modules.safe.service.ISafetyStandardOptimizeService;
import com.skua.modules.safe.vo.StatisticsSearchVO;
import com.skua.tool.util.DateUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import java.util.Map;
/**
* 安全标准优化
*/
@Service
public class SafetyStandardOptimizeServiceImpl extends ServiceImpl<SafetyStandardOptimizeMapper, SafetyStandardOptimize> implements ISafetyStandardOptimizeService {
/***
* 统计
* @return
*/
public List<StatisticsSearchVO> statistics(StatisticsSearchVO statisticsSearchVO){
//计算两个时间相间的季度 = 应填写数量
List<String> monthList = DateUtils.getMonthsBetween(statisticsSearchVO.getStartDate(), statisticsSearchVO.getEndDate());
double d = monthList.size() / 3d;
Integer wantNum = null;
if(d == (int)d){
wantNum = (int)d;
}else{
wantNum = (int)d +1;
}
statisticsSearchVO.setWantNum(wantNum );
return this.baseMapper.statistics(statisticsSearchVO);
}
}
......
package com.skua.modules.safe.vo;
/**
* @auther kangwei
* @create 2024-12-26-12:05
*/
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 统计查询对象对象
*/
@Data
@ApiModel(value="StatisticsSearchVO 统计查询对象对象", description="统计查询对象对象")
public class StatisticsSearchVO {
@ApiModelProperty(value = "部门编号")
private String departId;
@ApiModelProperty(value = "部门编号集合")
private String departIds;
@ApiModelProperty(value = "部门名称")
private String departName;
@ApiModelProperty(value = "开始时间")
private String startDate;
@ApiModelProperty(value = "结束时间")
private String endDate;
@ApiModelProperty(value = "应填写数量")
private Integer wantNum;
@ApiModelProperty(value = "实际填写数量")
private Integer finishNum;
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!