From 48de12e1635b99d593048398af45d186c8f39234 Mon Sep 17 00:00:00 2001 From: “djh” <“3298565835@qq.com”> Date: 星期二, 29 七月 2025 11:10:42 +0800 Subject: [PATCH] 危化品简化版修改 --- hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java | 36 +++++++++++------- hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml | 25 ++++++++++-- hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java | 7 +-- hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java | 3 + hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java | 10 ++--- hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/dto/HazmatUseStatisticDTO.java | 14 +++++++ 6 files changed, 65 insertions(+), 30 deletions(-) diff --git a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java index 7ab32e6..17a7d87 100644 --- a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java +++ b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java @@ -3,6 +3,7 @@ import com.gkhy.hazmat.common.annotation.Anonymous; import com.gkhy.hazmat.common.api.CommonResult; +import com.gkhy.hazmat.system.domain.dto.HazmatUseStatisticDTO; import com.gkhy.hazmat.system.service.HzStatisticService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -94,14 +95,11 @@ @ApiOperation(value = "危化品使用统计") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), - @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"), - @ApiImplicitParam(paramType = "query", name = "startTime", dataType = "string", required = false, value = "开始时间,格式xxxx-xx-xx 00:00:00"), - @ApiImplicitParam(paramType = "query", name = "endTime", dataType = "string", required = false, value = "结束时间,格式xxxx-xx-xx 23:59:59"), - @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "long", required = false, value = "企业id") + @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10") }) @GetMapping("/hazmatUseStatistic") - public CommonResult hazmatUseStatistic(String startTime,String endTime,Long companyId) { - return CommonResult.success(statisticService.useStatic(startTime,endTime,companyId)); + public CommonResult hazmatUseStatistic(HazmatUseStatisticDTO useStatisticDTO) { + return CommonResult.success(statisticService.useStatic(useStatisticDTO)); } @ApiOperation(value = "危化品使用记录导出") diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/dto/HazmatUseStatisticDTO.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/dto/HazmatUseStatisticDTO.java new file mode 100644 index 0000000..76a25da --- /dev/null +++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/dto/HazmatUseStatisticDTO.java @@ -0,0 +1,14 @@ +package com.gkhy.hazmat.system.domain.dto; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class HazmatUseStatisticDTO implements Serializable { + private String startTime; + private String endTime; + private Long companyId; + private Long userId; + private Long departId; +} diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java index 4e7d5d9..df27091 100644 --- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java +++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.hazmat.system.domain.HzHazmat; +import com.gkhy.hazmat.system.domain.dto.HazmatUseStatisticDTO; import com.gkhy.hazmat.system.domain.vo.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -96,12 +97,10 @@ /** * 危化品完全用完数量 - * @param startTime - * @param endTime - * @param companyId + * @param useStatisticDTO * @return */ - List<HzHazmatUseVO> useCountStatic(@Param("startTime")String startTime,@Param("endTime") String endTime,@Param("companyId") Long companyId); + List<HzHazmatUseVO> useCountStatic(HazmatUseStatisticDTO useStatisticDTO); List<HzEntryRecordVO> useCountHourlyStatic(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("companyId") Long companyId); diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java index 731a08e..c047a3c 100644 --- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java +++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java @@ -2,6 +2,7 @@ import com.gkhy.hazmat.common.api.CommonPage; +import com.gkhy.hazmat.system.domain.dto.HazmatUseStatisticDTO; import com.gkhy.hazmat.system.domain.vo.HzCompanyMessage; import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO; import com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO; @@ -45,7 +46,7 @@ * @param endTime * @return */ - CommonPage useStatic(String startTime, String endTime,Long companyId); + CommonPage useStatic(HazmatUseStatisticDTO useStatisticDTO); void importBaiscUse(HttpServletResponse response, String startTime, String endTime) throws IOException; diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java index 7353f7b..790e53d 100644 --- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java +++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java @@ -19,6 +19,7 @@ import com.gkhy.hazmat.common.utils.SecurityUtils; import com.gkhy.hazmat.common.utils.StringUtils; import com.gkhy.hazmat.system.domain.*; +import com.gkhy.hazmat.system.domain.dto.HazmatUseStatisticDTO; import com.gkhy.hazmat.system.domain.vo.HzCompanyMessage; import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO; import com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO; @@ -196,31 +197,31 @@ @Override - public CommonPage useStatic(String startTime, String endTime,Long companyId) { + public CommonPage useStatic(HazmatUseStatisticDTO useStatisticDTO) { SysUser currentUser= SecurityUtils.getLoginUser().getUser(); checkUserAllowed(currentUser); String startDate=""; String endDate=""; - if(StringUtils.isBlank(startTime)&&StringUtils.isBlank(endTime)){ + if(StringUtils.isBlank(useStatisticDTO.getStartTime())&&StringUtils.isBlank(useStatisticDTO.getEndTime())){ Date currentDate=new Date(); startDate= DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(currentDate), -6)), DatePattern.NORM_DATETIME_FORMAT); endDate=DateUtil.format(DateUtil.endOfDay(currentDate),DatePattern.NORM_DATETIME_FORMAT); - } else if (StringUtils.isBlank(startTime)&&StringUtils.isNotBlank(endTime)) { - startDate= DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(new Date(endTime)), -6)), DatePattern.NORM_DATETIME_FORMAT); - endDate=endTime; - }else if (StringUtils.isNotBlank(startTime)&&StringUtils.isBlank(endTime)){ - startDate=startTime; - endDate=DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(new Date(endTime)), 6)), DatePattern.NORM_DATETIME_FORMAT); + } else if (StringUtils.isBlank(useStatisticDTO.getStartTime())&&StringUtils.isNotBlank(useStatisticDTO.getEndTime())) { + startDate= DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(new Date(useStatisticDTO.getEndTime())), -6)), DatePattern.NORM_DATETIME_FORMAT); + endDate=useStatisticDTO.getEndTime(); + }else if (StringUtils.isNotBlank(useStatisticDTO.getStartTime())&&StringUtils.isBlank(useStatisticDTO.getEndTime())){ + startDate=useStatisticDTO.getStartTime(); + endDate=DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(new Date(useStatisticDTO.getEndTime())), 6)), DatePattern.NORM_DATETIME_FORMAT); }else{ - startDate=startTime; - endDate=endTime; - if(DateUtil.between(DateUtil.parse(startDate),DateUtil.parse(startTime), DateUnit.DAY)>90){ + startDate=useStatisticDTO.getStartTime(); + endDate=useStatisticDTO.getEndTime(); + if(DateUtil.between(DateUtil.parse(startDate),DateUtil.parse(useStatisticDTO.getStartTime()), DateUnit.DAY)>90){ throw new ApiException("只能查询90天以内数据"); } } if (currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){ - IdTableNameHandler.setCurrentId(companyId); + IdTableNameHandler.setCurrentId(useStatisticDTO.getCompanyId()); }else { //设置分表id @@ -228,7 +229,10 @@ IdTableNameHandler.setCurrentId(currentUser.getCompanyId()); } PageUtils.startPage(); - List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(startDate, endDate,currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode()) ? companyId:currentUser.getCompanyId()); + if (!currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){ + useStatisticDTO.setCompanyId(currentUser.getCompanyId()); + } + List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(useStatisticDTO); IdTableNameHandler.removeCurrentId(); if(!hazmatUseVOList.isEmpty()) { List<Long> basicIds = hazmatUseVOList.stream().map(HzHazmatUseVO::getBasicId).collect(Collectors.toList()); @@ -273,7 +277,11 @@ //设置分表id IdTableNameHandler.setCurrentId(currentUser.getCompanyId()); // PageUtils.startPage(); - List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(startDate, endDate,currentUser.getCompanyId()); + HazmatUseStatisticDTO hazmatUseStatisticDTO = new HazmatUseStatisticDTO(); + hazmatUseStatisticDTO.setStartTime(startDate); + hazmatUseStatisticDTO.setEndTime(endDate); + hazmatUseStatisticDTO.setCompanyId(currentUser.getCompanyId()); + List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(hazmatUseStatisticDTO); IdTableNameHandler.removeCurrentId(); List<HazmatBasicUseExcelData> hazmatBasicUseExcelDatas = new ArrayList<>(); if(!hazmatUseVOList.isEmpty()) { diff --git a/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml index 1ba56ea..eb1576e 100644 --- a/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml +++ b/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml @@ -149,13 +149,28 @@ </select> <select id="useCountStatic" resultType="com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO"> - select count(*) as count,basic_id from hz_hazmat - where create_time >= #{startTime} and create_time <= #{endTime} and state =3 + SELECT + count(*) AS count, + hh2.basic_id + FROM + hz_hazmat hh2 + LEFT JOIN hz_hazmat_flow hhf2 on hh2.id = hhf2.hazmat_id + LEFT JOIN sys_user sy on hhf2.create_id = sy.id + LEFT JOIN sys_dept sd on sy.depart_id = sd.id + where hh2.create_time >= #{startTime} and hh2.create_time <= #{endTime} and hh2.state =3 and hhf2.state = 4 <if test="companyId!=null"> - and company_id=#{companyId} + and hh2.company_id=#{companyId} </if> - group by basic_id - order by count desc + <if test="userId!=null"> + and hh2f.create_id = #{userId} + </if> + <if test="departId!=null"> + and sd.id = #{departId} + </if> + GROUP BY + hh2.basic_id + ORDER BY + count DESC </select> -- Gitblit v1.9.2