From b04f9270168b9a78d5d0cfc14a7e0ee0168ed15f Mon Sep 17 00:00:00 2001 From: guo Date: Wed, 6 Sep 2023 16:30:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/CityAndDistrictDeviceCountVo.java | 12 + .../zhgd/xmgl/base/entity/vo/SectorVo.java | 20 ++ .../com/zhgd/xmgl/base/entity/vo/TrendVo.java | 3 + .../DeepExcavationEngineeringController.java | 31 +++ .../DeepExcavationCurrentDataMapper.java | 1 - .../DeepExcavationEngineeringMapper.java | 8 + .../xml/DeepExcavationCurrentDataMapper.xml | 43 ---- .../xml/DeepExcavationEngineeringMapper.xml | 19 ++ .../IDeepExcavationCurrentDataService.java | 1 - .../IDeepExcavationEngineeringService.java | 8 + .../DeepExcavationCurrentDataServiceImpl.java | 8 - .../DeepExcavationEngineeringServiceImpl.java | 68 ++++++ .../controller/EngineeringController.java | 109 +++++++++- .../entity/vo/CountEngineeringVo.java | 22 ++ .../entity/vo/EngineeringTrendProgressVo.java | 15 ++ .../entity/vo/EngineeringTrendVo.java | 12 + .../engineering/mapper/EngineeringMapper.java | 33 +++ .../mapper/xml/EngineeringMapper.xml | 205 ++++++++++++++++-- .../service/IEngineeringService.java | 22 ++ .../service/impl/EngineeringServiceImpl.java | 162 +++++++++++++- .../java/com/zhgd/xmgl/util/DateUtils.java | 6 +- .../java/com/zhgd/xmgl/util/ParamEnum.java | 80 ++++++- 22 files changed, 803 insertions(+), 85 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/base/entity/vo/SectorVo.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/CountEngineeringVo.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/EngineeringTrendProgressVo.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/EngineeringTrendVo.java diff --git a/src/main/java/com/zhgd/xmgl/base/entity/vo/CityAndDistrictDeviceCountVo.java b/src/main/java/com/zhgd/xmgl/base/entity/vo/CityAndDistrictDeviceCountVo.java index 3d3f457..19cce1e 100644 --- a/src/main/java/com/zhgd/xmgl/base/entity/vo/CityAndDistrictDeviceCountVo.java +++ b/src/main/java/com/zhgd/xmgl/base/entity/vo/CityAndDistrictDeviceCountVo.java @@ -37,4 +37,16 @@ public class CityAndDistrictDeviceCountVo extends Engineering { @JsonInclude(JsonInclude.Include.NON_NULL) private Integer completedCount; + @ApiModelProperty("正常") + @JsonInclude(JsonInclude.Include.NON_NULL) + private Integer normalCount; + @ApiModelProperty("超预警") + @JsonInclude(JsonInclude.Include.NON_NULL) + private Integer superWarningCount; + @ApiModelProperty("超报警") + @JsonInclude(JsonInclude.Include.NON_NULL) + private Integer superAlarmCount; + @ApiModelProperty("超控制") + @JsonInclude(JsonInclude.Include.NON_NULL) + private Integer overControlCount; } diff --git a/src/main/java/com/zhgd/xmgl/base/entity/vo/SectorVo.java b/src/main/java/com/zhgd/xmgl/base/entity/vo/SectorVo.java new file mode 100644 index 0000000..9a62a2f --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/base/entity/vo/SectorVo.java @@ -0,0 +1,20 @@ +package com.zhgd.xmgl.base.entity.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 扇形图表 + */ +@Data +public class SectorVo { + @ApiModelProperty("名称") + private String name; + @ApiModelProperty("数量") + private String count; + @ApiModelProperty("百分比") + private String percent; + @JsonInclude(JsonInclude.Include.NON_NULL) + private Integer state; +} diff --git a/src/main/java/com/zhgd/xmgl/base/entity/vo/TrendVo.java b/src/main/java/com/zhgd/xmgl/base/entity/vo/TrendVo.java index ec88d10..e9afb58 100644 --- a/src/main/java/com/zhgd/xmgl/base/entity/vo/TrendVo.java +++ b/src/main/java/com/zhgd/xmgl/base/entity/vo/TrendVo.java @@ -2,6 +2,9 @@ package com.zhgd.xmgl.base.entity.vo; import lombok.Data; +/** + * 折线和柱形图表 + */ @Data public class TrendVo { private String x; diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/controller/DeepExcavationEngineeringController.java b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/controller/DeepExcavationEngineeringController.java index c1c3547..6e8b26a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/controller/DeepExcavationEngineeringController.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/controller/DeepExcavationEngineeringController.java @@ -1,9 +1,16 @@ package com.zhgd.xmgl.modules.city.deepexcavation.controller; +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.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.jeecg.common.util.PageUtil; +import com.zhgd.xmgl.base.entity.vo.CityAndDistrictDeviceCountVo; import com.zhgd.xmgl.modules.city.deepexcavation.entity.DeepExcavationEngineering; import com.zhgd.xmgl.modules.city.deepexcavation.service.IDeepExcavationEngineeringService; +import com.zhgd.xmgl.modules.city.engineering.entity.Engineering; import com.zhgd.xmgl.util.MessageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -16,6 +23,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; import java.util.List; import java.util.Map; @@ -120,5 +128,28 @@ public class DeepExcavationEngineeringController { return result; } + @OperLog(operModul = "深基坑管理", operType = "统计", operDesc = "统计市级和区级的深基坑") + @ApiOperation(value = "统计市级和区级的深基坑", notes = "统计市级和区级的深基坑", httpMethod = "POST") + @PostMapping(value = "/countCityAndDistrictDeepExcavationEngineering") + public Result> countCityAndDistrictDeepExcavationEngineering() { + List countCityAndDistrictDeepExcavationEngineerings = deepExcavationEngineeringService.countCityAndDistrictDeepExcavationEngineering(); + return Result.success(countCityAndDistrictDeepExcavationEngineerings); + } + + @OperLog(operModul = "深基坑管理", operType = "分页查询", operDesc = "分页查询工程信息和深基坑状态列表") + @ApiOperation(value = "分页查询工程信息和深基坑状态列表", notes = "分页查询工程信息和深基坑状态列表", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "页数", paramType = "body", required = true, defaultValue = "1", dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页条数", paramType = "body", required = true, defaultValue = "10", dataType = "Integer") + }) + @PostMapping(value = "/queryEngineeringAndStatusPage") + public Result> queryEngineeringAndStatusPage(@ApiIgnore @RequestBody Map map) { + QueryWrapper wrapper = QueryGenerator.initPageQueryWrapper(Engineering.class, map); + Page page = PageUtil.getPage(map); + wrapper.lambda().orderByDesc(Engineering::getCreateTime); + IPage pageList = deepExcavationEngineeringService.queryEngineeringAndStatusPage(page, wrapper); + return Result.success(pageList); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/DeepExcavationCurrentDataMapper.java b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/DeepExcavationCurrentDataMapper.java index 896434c..0d28948 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/DeepExcavationCurrentDataMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/DeepExcavationCurrentDataMapper.java @@ -40,5 +40,4 @@ public interface DeepExcavationCurrentDataMapper extends BaseMapper getAlarmCycleTrendGraph(Map map); - List getNumberDifferentTypesAlarmsRadarChartOneMonth(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/DeepExcavationEngineeringMapper.java b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/DeepExcavationEngineeringMapper.java index 30b379b..914d1d8 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/DeepExcavationEngineeringMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/DeepExcavationEngineeringMapper.java @@ -2,7 +2,10 @@ package com.zhgd.xmgl.modules.city.deepexcavation.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.annotation.DataScope; +import com.zhgd.xmgl.base.entity.vo.CityAndDistrictDeviceCountVo; import com.zhgd.xmgl.modules.city.deepexcavation.entity.DeepExcavationEngineering; +import com.zhgd.xmgl.modules.city.monitor.entity.bo.OnlineGroupByProjectBo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -16,9 +19,14 @@ import java.util.Map; * @version: V1.0 */ @Mapper +@DataScope public interface DeepExcavationEngineeringMapper extends BaseMapper { List selectDeepExcavationEngineeringPage(Page page, @Param("param")Map map); List selectDeepExcavationList(Map map); + + List countCityAndDistrictDeepExcavationEngineering(); + + List countCompleteGroupByProject(); } diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/xml/DeepExcavationCurrentDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/xml/DeepExcavationCurrentDataMapper.xml index d6b2ff8..7678942 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/xml/DeepExcavationCurrentDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/xml/DeepExcavationCurrentDataMapper.xml @@ -194,47 +194,4 @@ GROUP BY time - - diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/xml/DeepExcavationEngineeringMapper.xml b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/xml/DeepExcavationEngineeringMapper.xml index 2221b33..c529e91 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/xml/DeepExcavationEngineeringMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/mapper/xml/DeepExcavationEngineeringMapper.xml @@ -18,4 +18,23 @@ order by start_time + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/IDeepExcavationCurrentDataService.java b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/IDeepExcavationCurrentDataService.java index 6930ae0..2f6639b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/IDeepExcavationCurrentDataService.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/IDeepExcavationCurrentDataService.java @@ -43,6 +43,5 @@ public interface IDeepExcavationCurrentDataService extends IService getNumberDifferentTypesAlarmsRadarChartOneMonth(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/IDeepExcavationEngineeringService.java b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/IDeepExcavationEngineeringService.java index 915c344..1c34263 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/IDeepExcavationEngineeringService.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/IDeepExcavationEngineeringService.java @@ -1,8 +1,12 @@ package com.zhgd.xmgl.modules.city.deepexcavation.service; +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.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.xmgl.base.entity.vo.CityAndDistrictDeviceCountVo; import com.zhgd.xmgl.modules.city.deepexcavation.entity.DeepExcavationEngineering; +import com.zhgd.xmgl.modules.city.engineering.entity.Engineering; import java.util.List; import java.util.Map; @@ -24,4 +28,8 @@ public interface IDeepExcavationEngineeringService extends IService selectDeepExcavationList(Map map); DeepExcavationEngineering edit(DeepExcavationEngineering deepExcavationEngineering); + + List countCityAndDistrictDeepExcavationEngineering(); + + IPage queryEngineeringAndStatusPage(Page page, QueryWrapper wrapper); } diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/impl/DeepExcavationCurrentDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/impl/DeepExcavationCurrentDataServiceImpl.java index f582e8a..e8671af 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/impl/DeepExcavationCurrentDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/impl/DeepExcavationCurrentDataServiceImpl.java @@ -131,14 +131,6 @@ public class DeepExcavationCurrentDataServiceImpl extends ServiceImpl getNumberDifferentTypesAlarmsRadarChartOneMonth(Map map) { - List list = deepExcavationCurrentDataMapper.getNumberDifferentTypesAlarmsRadarChartOneMonth(map); - fillData(list); - return list; - } - private void fillData(List list) { Map nameDataMap = list.stream().collect(Collectors.toMap(NumberDifferentTypesAlarmsRadarChartOneMonthVo::getName, o -> o)); //类型 ,1电量(%),2 X轴(°),3 Y轴(°),4压力(kN),5沉降(mm) diff --git a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/impl/DeepExcavationEngineeringServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/impl/DeepExcavationEngineeringServiceImpl.java index 62e6994..ef6afde 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/impl/DeepExcavationEngineeringServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/deepexcavation/service/impl/DeepExcavationEngineeringServiceImpl.java @@ -1,20 +1,36 @@ package com.zhgd.xmgl.modules.city.deepexcavation.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.xmgl.base.entity.bo.CountExt; +import com.zhgd.xmgl.base.entity.vo.CityAndDistrictDeviceCountVo; import com.zhgd.xmgl.modules.city.deepexcavation.entity.DeepExcavationEngineering; import com.zhgd.xmgl.modules.city.deepexcavation.entity.DeepExcavationMonitorTypeRela; import com.zhgd.xmgl.modules.city.deepexcavation.mapper.DeepExcavationEngineeringMapper; import com.zhgd.xmgl.modules.city.deepexcavation.mapper.DeepExcavationMeasurePointMapper; import com.zhgd.xmgl.modules.city.deepexcavation.mapper.DeepExcavationMonitorTypeMapper; import com.zhgd.xmgl.modules.city.deepexcavation.service.*; +import com.zhgd.xmgl.modules.city.engineering.entity.Engineering; +import com.zhgd.xmgl.modules.city.engineering.service.IEngineeringService; +import com.zhgd.xmgl.modules.city.government.entity.Government; +import com.zhgd.xmgl.modules.city.government.mapper.GovernmentMapper; +import com.zhgd.xmgl.modules.city.highformwork.mapper.HighFormworkMeasureCurrentAndAlarmDataMapper; +import com.zhgd.xmgl.modules.city.highformwork.mapper.HighFormworkMeasurePointMapper; +import com.zhgd.xmgl.modules.city.highformwork.mapper.HighFormworkMeasurePointThresholdMapper; +import com.zhgd.xmgl.modules.city.highformwork.service.IHighFormworkMeasureCurrentAndAlarmDataService; +import com.zhgd.xmgl.modules.city.monitor.entity.bo.OnlineGroupByProjectBo; +import com.zhgd.xmgl.security.SecurityUser; +import com.zhgd.xmgl.security.SecurityUtil; import com.zhgd.xmgl.util.MessageUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -25,6 +41,7 @@ import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.function.Function; import java.util.stream.Collectors; @@ -57,6 +74,18 @@ public class DeepExcavationEngineeringServiceImpl extends ServiceImpl countCityAndDistrictDeepExcavationEngineering() { + SecurityUser user = SecurityUtil.getUser(); + List list = baseMapper.countCityAndDistrictDeepExcavationEngineering(); + Government government = governmentMapper.selectOne(new LambdaQueryWrapper().eq(Government::getGovernmentSn, user.getSn())); + CityAndDistrictDeviceCountVo vo = new CityAndDistrictDeviceCountVo(); + vo.setGovernmentName(government.getGovernmentName()); + vo.setCount(list.stream().mapToInt(e -> e.getCount()).sum()); + vo.setNotStartedCount(list.stream().mapToInt(e -> e.getNotStartedCount()).sum()); + vo.setInProgressCount(list.stream().mapToInt(e -> e.getInProgressCount()).sum()); + vo.setCompletedCount(list.stream().mapToInt(e -> e.getCompletedCount()).sum()); + list.add(0, vo); + return list; + } + + @Override + public IPage queryEngineeringAndStatusPage(Page page, QueryWrapper wrapper) { + Page pageList = engineeringService.page(page, wrapper); + Page rtPage = BeanUtil.toBean(pageList, Page.class); + rtPage.setRecords(BeanUtil.copyToList(pageList.getRecords(), CityAndDistrictDeviceCountVo.class)); + List alarms = highFormworkMeasureCurrentAndAlarmDataMapper.countAlarmGroupByEngineeringSn(); + Map snMap = alarms.stream().collect(Collectors.toMap(CountExt::getEngineeringSn, Function.identity())); + List onlineGroupByProjectBos = baseMapper.countCompleteGroupByProject(); + Map engineeringMap = onlineGroupByProjectBos.stream().collect(Collectors.toMap(OnlineGroupByProjectBo::getEngineeringSn, onlineGroupByProjectBo -> onlineGroupByProjectBo)); + rtPage.getRecords().stream().forEach(s -> { + s.setNotStartedCount(engineeringMap.get(s.getEngineeringSn()) != null ? engineeringMap.get(s.getEngineeringSn()).getNotStartedCount() : 0); + s.setInProgressCount(engineeringMap.get(s.getEngineeringSn()) != null ? engineeringMap.get(s.getEngineeringSn()).getInProgressCount() : 0); + s.setCompletedCount(engineeringMap.get(s.getEngineeringSn()) != null ? engineeringMap.get(s.getEngineeringSn()).getCompletedCount() : 0); + CountExt countExt = snMap.get(s.getEngineeringSn()); + if (countExt != null) { + s.setAlarmCount(countExt.getCount()); + } else { + s.setAlarmCount(0); + } + }); + return rtPage; + + } + private void checkParams(DeepExcavationEngineering deepExcavationEngineering) { if (DateUtil.parse(deepExcavationEngineering.getStartTime()).compareTo(DateUtil.parse(deepExcavationEngineering.getEndTime())) > 0) { throw new OpenAlertException("开工时间不能大于完工时间"); diff --git a/src/main/java/com/zhgd/xmgl/modules/city/engineering/controller/EngineeringController.java b/src/main/java/com/zhgd/xmgl/modules/city/engineering/controller/EngineeringController.java index 6d2dae6..8615b90 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/engineering/controller/EngineeringController.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/engineering/controller/EngineeringController.java @@ -8,11 +8,17 @@ import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.util.PageUtil; -import com.zhgd.xmgl.modules.city.engineering.entity.Engineering; -import com.zhgd.xmgl.modules.city.engineering.service.IEngineeringService; +import com.zhgd.xmgl.base.entity.vo.SectorVo; +import com.zhgd.xmgl.base.entity.vo.TrendVo; import com.zhgd.xmgl.modules.basicdata.entity.EngineeringSingle; import com.zhgd.xmgl.modules.basicdata.statistics.EngineeringStat; import com.zhgd.xmgl.modules.basicdata.vo.EngineeringVo; +import com.zhgd.xmgl.modules.city.engineering.entity.Engineering; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.CountEngineeringVo; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.EngineeringTrendProgressVo; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.EngineeringTrendVo; +import com.zhgd.xmgl.modules.city.engineering.service.IEngineeringService; +import com.zhgd.xmgl.util.ParamEnum; import com.zhgd.xmgl.valid.AddGroup; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -27,8 +33,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -48,6 +57,7 @@ public class EngineeringController { /** * 分页列表查询 + * * @return */ @OperLog(operModul = "工程管理", operType = "分页查询", operDesc = "分页列表查询报监记录") @@ -98,9 +108,9 @@ public class EngineeringController { public Result edit(@RequestBody EngineeringVo engineeringVo) { Result result = new Result(); Engineering engineering = engineeringService.getById(engineeringVo.getId()); - if(engineering==null) { + if (engineering == null) { result.error500("未找到对应实体"); - }else { + } else { engineeringVo.setExamineState(engineering.getExamineState()); engineeringService.updateInfo(engineeringVo); result.success("操作成功!"); @@ -179,4 +189,95 @@ public class EngineeringController { public Result> querySingle(@ApiIgnore @RequestBody Engineering engineeringEntity) { return Result.success(engineeringService.querySingle(engineeringEntity)); } + + @OperLog(operModul = "工程管理", operType = "统计", operDesc = "统计工程") + @ApiOperation(value = "统计工程", notes = "统计工程", httpMethod = "POST") + + @PostMapping(value = "/countEngineering") + public Result countEngineering() { + return Result.success(engineeringService.countEngineering()); + } + + @OperLog(operModul = "工程管理", operType = "统计", operDesc = "统计工程进度") + @ApiOperation(value = "统计工程进度", notes = "统计工程进度", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "engineeringType", value = "工程类别", paramType = "body", required = false, dataType = "Integer") + }) + @PostMapping(value = "/countEngineeringState") + public Result> countEngineeringState(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(engineeringService.countEngineeringState(paramMap)); + } + + @OperLog(operModul = "工程管理", operType = "统计", operDesc = "统计工程分布区域") + @ApiOperation(value = "统计工程分布区域", notes = "统计工程分布区域", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "engineeringType", value = "工程类别", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "progressType", value = "工程进度:1新建2竣工", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "newYear", value = "新建年份:如2020", paramType = "body", required = false, dataType = "String"), + }) + @PostMapping(value = "/countEngineeringDistrict") + public Result> countEngineeringDistrict(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(engineeringService.countEngineeringDistrict(paramMap)); + } + + @OperLog(operModul = "工程管理", operType = "查询", operDesc = "查询工程类别列表") + @ApiOperation(value = "查询工程类别列表", notes = "查询工程类别列表", httpMethod = "POST") + @PostMapping(value = "/getEngineeringTypeList") + public Result> getEngineeringTypeList() { + return Result.success(Arrays.stream(ParamEnum.EngineeringType.values()).collect(Collectors.toList())); + } + + @OperLog(operModul = "工程管理", operType = "查询", operDesc = "查询工程造价趋势") + @ApiOperation(value = "查询工程造价趋势", notes = "查询工程造价趋势", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "engineeringType", value = "工程类别", paramType = "body", required = false, dataType = "Integer") + }) + @PostMapping(value = "/getEngineeringCostTrendMonth") + public Result getEngineeringCostTrendMonth(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(engineeringService.getEngineeringCostTrendMonth(paramMap)); + } + + @OperLog(operModul = "工程管理", operType = "查询", operDesc = "统计工程造价占比") + @ApiOperation(value = "统计工程造价占比", notes = "统计工程造价占比", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "engineeringType", value = "工程类别", paramType = "body", required = false, dataType = "Integer") + }) + @PostMapping(value = "/countEngineeringCostProportion") + public Result> countEngineeringCostProportion(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(engineeringService.countEngineeringCostProportion(paramMap)); + } + + @OperLog(operModul = "工程管理", operType = "查询", operDesc = "查询工程趋势(今年和去年)") + @ApiOperation(value = "查询工程趋势(今年和去年)", notes = "查询工程趋势(今年和去年)", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "engineeringType", value = "工程类别", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "progressType", value = "工程进度:1新建2竣工", paramType = "body", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "isImportant", value = "是否重点工程(0:不是;1:是;)", paramType = "body", required = false, dataType = "Integer"), + }) + @PostMapping(value = "/getEngineeringTrendMonth") + public Result getEngineeringTrendMonth(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(engineeringService.getEngineeringTrendMonth(paramMap)); + } + + @OperLog(operModul = "工程管理", operType = "查询", operDesc = "查询工程趋势(新建和在建)") + @ApiOperation(value = "查询工程趋势(新建和在建)", notes = "查询工程趋势(新建和在建)", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "engineeringType", value = "工程类别", paramType = "body", required = false, dataType = "Integer"), + @ApiImplicitParam(name = "isImportant", value = "是否重点工程(0:不是;1:是;)", paramType = "body", required = false, dataType = "Integer"), + }) + @PostMapping(value = "/getEngineeringTrendProgressMonth") + public Result getEngineeringTrendProgressMonth(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(engineeringService.getEngineeringTrendProgressMonth(paramMap)); + } + + @OperLog(operModul = "工程管理", operType = "统计", operDesc = "统计工程区域造价") + @ApiOperation(value = "统计工程区域造价", notes = "统计工程区域造价", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "newYear", value = "新建年份:如2020", paramType = "body", required = false, dataType = "String"), + }) + @PostMapping(value = "/countEngineeringDistrictCost") + public Result> countEngineeringDistrictCost(@ApiIgnore @RequestBody HashMap paramMap) { + return Result.success(engineeringService.countEngineeringDistrictCost(paramMap)); + } + } diff --git a/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/CountEngineeringVo.java b/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/CountEngineeringVo.java new file mode 100644 index 0000000..06be5f6 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/CountEngineeringVo.java @@ -0,0 +1,22 @@ +package com.zhgd.xmgl.modules.city.engineering.entity.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class CountEngineeringVo { + @ApiModelProperty("在监工程数量") + private Integer projectUnderSupervisionCount; + @ApiModelProperty("工程总造价") + private Double totalProjectCost; + @ApiModelProperty("今年新建数量") + private Integer newThisYearCount; + @ApiModelProperty("今年竣工数量") + private Integer completedThisYearCount; + @ApiModelProperty("重点工程数量") + private Integer keyProjectCount; + @ApiModelProperty(value = "工程总长度(m)") + private Double totalEngineeringLength; + @ApiModelProperty(value = "工程总面积(㎡)") + private Double totalEngineeringArea; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/EngineeringTrendProgressVo.java b/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/EngineeringTrendProgressVo.java new file mode 100644 index 0000000..b9b2f9f --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/EngineeringTrendProgressVo.java @@ -0,0 +1,15 @@ +package com.zhgd.xmgl.modules.city.engineering.entity.vo; + +import com.zhgd.xmgl.base.entity.vo.TrendVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EngineeringTrendProgressVo { + @ApiModelProperty("新建") + private List newBuilds; + @ApiModelProperty("在建") + private List underConstructions; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/EngineeringTrendVo.java b/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/EngineeringTrendVo.java new file mode 100644 index 0000000..475a88c --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/city/engineering/entity/vo/EngineeringTrendVo.java @@ -0,0 +1,12 @@ +package com.zhgd.xmgl.modules.city.engineering.entity.vo; + +import com.zhgd.xmgl.base.entity.vo.TrendVo; +import lombok.Data; + +import java.util.List; + +@Data +public class EngineeringTrendVo { + private List thisYears; + private List lastYears; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/city/engineering/mapper/EngineeringMapper.java b/src/main/java/com/zhgd/xmgl/modules/city/engineering/mapper/EngineeringMapper.java index d80f9e5..667093c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/engineering/mapper/EngineeringMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/engineering/mapper/EngineeringMapper.java @@ -5,13 +5,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.annotation.DataScope; +import com.zhgd.xmgl.base.entity.vo.SectorVo; +import com.zhgd.xmgl.base.entity.vo.TrendVo; import com.zhgd.xmgl.modules.basicdata.dto.EngineeringPageDto; import com.zhgd.xmgl.modules.city.engineering.entity.Engineering; import com.zhgd.xmgl.modules.basicdata.statistics.EngineeringStat; import com.zhgd.xmgl.modules.basicdata.vo.EngineeringVo; +import io.swagger.models.auth.In; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -38,4 +42,33 @@ public interface EngineeringMapper extends BaseMapper { Map appIndexStat(); List> queryDistrict(); + + Integer getProjectUnderSupervisionCount(); + + Double getTotalProjectCost(); + + Integer getNewThisYearCount(); + + Integer getCompletedThisYearCount(); + + Integer getKeyProjectCount(); + + Double getTotalEngineeringArea(); + + Double getTotalEngineeringLength(); + + List countEngineeringState(HashMap paramMap); + + List countEngineeringDistrict(HashMap paramMap); + + List getEngineeringCostTrendMonth(HashMap paramMap); + + Integer countEngineeringCost(HashMap paramMap); + + List getEngineeringTrendMonth(HashMap paramMap); + + List getList(HashMap paramMap); + + List countEngineeringDistrictCost(HashMap paramMap); + } diff --git a/src/main/java/com/zhgd/xmgl/modules/city/engineering/mapper/xml/EngineeringMapper.xml b/src/main/java/com/zhgd/xmgl/modules/city/engineering/mapper/xml/EngineeringMapper.xml index 9e9a8af..e525a8c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/engineering/mapper/xml/EngineeringMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/city/engineering/mapper/xml/EngineeringMapper.xml @@ -1,42 +1,217 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/city/engineering/service/IEngineeringService.java b/src/main/java/com/zhgd/xmgl/modules/city/engineering/service/IEngineeringService.java index 9a74f76..1935f52 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/engineering/service/IEngineeringService.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/engineering/service/IEngineeringService.java @@ -3,13 +3,19 @@ package com.zhgd.xmgl.modules.city.engineering.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.xmgl.base.entity.vo.SectorVo; +import com.zhgd.xmgl.base.entity.vo.TrendVo; import com.zhgd.xmgl.modules.basicdata.dto.AppIndexTopStatDto; import com.zhgd.xmgl.modules.basicdata.dto.EngineeringPageDto; import com.zhgd.xmgl.modules.city.engineering.entity.Engineering; import com.zhgd.xmgl.modules.basicdata.entity.EngineeringSingle; import com.zhgd.xmgl.modules.basicdata.statistics.EngineeringStat; import com.zhgd.xmgl.modules.basicdata.vo.EngineeringVo; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.CountEngineeringVo; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.EngineeringTrendProgressVo; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.EngineeringTrendVo; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -54,4 +60,20 @@ public interface IEngineeringService extends IService { List getList(Engineering engineering); List querySingle(Engineering engineering); + + CountEngineeringVo countEngineering(); + + List countEngineeringState(HashMap paramMap); + + List countEngineeringDistrict(HashMap paramMap); + + EngineeringTrendVo getEngineeringCostTrendMonth(HashMap paramMap); + + List countEngineeringCostProportion(HashMap paramMap); + + EngineeringTrendVo getEngineeringTrendMonth(HashMap paramMap); + + EngineeringTrendProgressVo getEngineeringTrendProgressMonth(HashMap paramMap); + + List countEngineeringDistrictCost(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/city/engineering/service/impl/EngineeringServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/city/engineering/service/impl/EngineeringServiceImpl.java index da80501..3b4ff0e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/city/engineering/service/impl/EngineeringServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/city/engineering/service/impl/EngineeringServiceImpl.java @@ -1,5 +1,8 @@ package com.zhgd.xmgl.modules.city.engineering.service.impl; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -10,22 +13,28 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.util.PageUtil; +import com.zhgd.xmgl.base.entity.vo.SectorVo; +import com.zhgd.xmgl.base.entity.vo.TrendVo; +import com.zhgd.xmgl.handler.exception.CustomException; import com.zhgd.xmgl.modules.basicdata.dto.AppIndexTopStatDto; import com.zhgd.xmgl.modules.basicdata.dto.EngineeringPageDto; import com.zhgd.xmgl.modules.basicdata.entity.*; import com.zhgd.xmgl.modules.basicdata.service.*; import com.zhgd.xmgl.modules.basicdata.statistics.EngineeringStat; import com.zhgd.xmgl.modules.basicdata.vo.EngineeringVo; +import com.zhgd.xmgl.modules.city.dust.service.IEnvironmentAlarmService; import com.zhgd.xmgl.modules.city.engineering.entity.Engineering; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.CountEngineeringVo; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.EngineeringTrendProgressVo; +import com.zhgd.xmgl.modules.city.engineering.entity.vo.EngineeringTrendVo; import com.zhgd.xmgl.modules.city.engineering.mapper.EngineeringMapper; import com.zhgd.xmgl.modules.city.engineering.service.IEngineeringService; -import com.zhgd.xmgl.modules.city.monitor.entity.bo.OnlineGroupByProjectBo; import com.zhgd.xmgl.modules.city.monitor.mapper.MonitorDevMapper; import com.zhgd.xmgl.modules.wisdom.service.IAiMonitorAlarmService; -import com.zhgd.xmgl.modules.city.dust.service.IEnvironmentAlarmService; import com.zhgd.xmgl.security.SecurityUser; import com.zhgd.xmgl.security.SecurityUtil; import com.zhgd.xmgl.util.CommonUtil; +import com.zhgd.xmgl.util.DateUtils; import com.zhgd.xmgl.util.ParamEnum; import org.apache.commons.collections.MapUtils; import org.springframework.beans.BeanUtils; @@ -33,9 +42,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -261,6 +269,150 @@ public class EngineeringServiceImpl extends ServiceImpllambdaQuery().eq(EngineeringSingle::getEngineeringSn, engineering.getEngineeringSn())); } + @Override + public CountEngineeringVo countEngineering() { + CountEngineeringVo vo = new CountEngineeringVo(); + vo.setProjectUnderSupervisionCount(baseMapper.getProjectUnderSupervisionCount()); + vo.setTotalProjectCost(baseMapper.getTotalProjectCost()); + vo.setNewThisYearCount(baseMapper.getNewThisYearCount()); + vo.setCompletedThisYearCount(baseMapper.getCompletedThisYearCount()); + vo.setKeyProjectCount(baseMapper.getKeyProjectCount()); + vo.setTotalEngineeringArea(baseMapper.getTotalEngineeringArea()); + vo.setTotalEngineeringLength(baseMapper.getTotalEngineeringLength()); + return vo; + } + + @Override + public List countEngineeringState(HashMap paramMap) { + List queryList = baseMapper.countEngineeringState(paramMap); + Map map = queryList.stream().collect(Collectors.toMap(SectorVo::getState, Function.identity())); + ArrayList list = new ArrayList<>(); + for (ParamEnum.EngineeringState es : ParamEnum.EngineeringState.values()) { + SectorVo vo = map.get(es.getValue()); + if (vo == null) { + vo = new SectorVo(); + vo.setName(es.getDesc()); + vo.setCount("0"); + } + list.add(vo); + } + return list; + } + + @Override + public List countEngineeringDistrict(HashMap paramMap) { + List list = baseMapper.countEngineeringDistrict(paramMap); + return list; + } + + @Override + public EngineeringTrendVo getEngineeringCostTrendMonth(HashMap paramMap) { + List list = baseMapper.getEngineeringCostTrendMonth(paramMap); + Map map = list.stream().collect(Collectors.toMap(TrendVo::getX, Function.identity())); + int year = DateUtil.year(new Date()); + EngineeringTrendVo vo = new EngineeringTrendVo(); + vo.setThisYears(getYearTrend(map, year)); + vo.setLastYears(getYearTrend(map, year - 1)); + return vo; + } + + @Override + public List countEngineeringCostProportion(HashMap paramMap) { + ArrayList sectorVos = new ArrayList<>(); + sectorVos.add(getEngineeringCost(paramMap, null, 1000, "1千万以下")); + sectorVos.add(getEngineeringCost(paramMap, 1000, 3000, "1-3千万")); + sectorVos.add(getEngineeringCost(paramMap, 3000, 5000, "3-5千万")); + sectorVos.add(getEngineeringCost(paramMap, 5000, 10000, "5千万-1亿")); + sectorVos.add(getEngineeringCost(paramMap, 10000, 30000, "1亿-3亿")); + sectorVos.add(getEngineeringCost(paramMap, 30000, null, "3亿以上")); + int sum = sectorVos.stream().mapToInt(s -> Integer.parseInt(s.getCount())).sum(); + for (SectorVo sectorVo : sectorVos) { + sectorVo.setPercent((NumberUtil.formatPercent(Double.parseDouble(sectorVo.getCount()) / sum, 2) + "")); + } + return sectorVos; + } + + @Override + public EngineeringTrendVo getEngineeringTrendMonth(HashMap paramMap) { + if (MapUtils.getInteger(paramMap, "progressType") == null) { + throw new CustomException("progressType不能为空"); + } + List list = baseMapper.getEngineeringTrendMonth(paramMap); + Map map = list.stream().collect(Collectors.toMap(TrendVo::getX, Function.identity())); + int year = DateUtil.year(new Date()); + EngineeringTrendVo vo = new EngineeringTrendVo(); + vo.setThisYears(getYearTrend(map, year)); + vo.setLastYears(getYearTrend(map, year - 1)); + return vo; + } + + @Override + public EngineeringTrendProgressVo getEngineeringTrendProgressMonth(HashMap paramMap) { + paramMap.put("progressType", 1); + Map map = baseMapper.getEngineeringTrendMonth(paramMap).stream().collect(Collectors.toMap(TrendVo::getX, Function.identity())); + int year = DateUtil.year(new Date()); + EngineeringTrendProgressVo vo = new EngineeringTrendProgressVo(); + vo.setNewBuilds(getYearTrend(map, year)); + vo.setUnderConstructions(getUnderConstructions(baseMapper.getList(paramMap))); + return vo; + } + + @Override + public List countEngineeringDistrictCost(HashMap paramMap) { + List list = baseMapper.countEngineeringDistrictCost(paramMap); + return list; + } + + private List getUnderConstructions(List list) { + List trendVos = new ArrayList<>(); + int year = DateUtil.year(new Date()); + List monthList = DateUtils.getAllYearMonthList(year + ""); + for (String month : monthList) { + int num = 0; + for (Engineering engineering : list) { + DateTime monthDate = DateUtil.parse(month, "yyyyMM"); + if (DateUtil.compare(DateUtil.beginOfMonth(engineering.getStartTime()), monthDate) <= 0 && + DateUtil.compare(engineering.getEndTime(), monthDate) >= 0 + ) { + num++; + } + } + TrendVo vo = new TrendVo(); + String format = DateUtil.format(DateUtil.parse(month, "yyyyMM"), "M月"); + vo.setX(format); + vo.setY(num + ""); + trendVos.add(vo); + } + return trendVos; + } + + private SectorVo getEngineeringCost(HashMap paramMap, Integer begin, Integer end, String name) { + paramMap.put("engineeringCostBegin", begin); + paramMap.put("engineeringCostEnd", end); + Integer cost = baseMapper.countEngineeringCost(paramMap); + SectorVo vo = new SectorVo(); + vo.setName(name); + vo.setCount(String.valueOf(cost)); + return vo; + } + + private List getYearTrend(Map map, int year) { + List monthList = DateUtils.getAllYearMonthList(year + ""); + ArrayList trendVos = new ArrayList(); + for (String month : monthList) { + TrendVo vo = map.get(month); + if (vo == null) { + vo = new TrendVo(); + vo.setY("0"); + vo.setX(month); + } + String format = DateUtil.format(DateUtil.parse(month, "yyyyMM"), "M月"); + vo.setX(format); + trendVos.add(vo); + } + return trendVos; + } + private String getEntName(List engineeringMains, Integer type) { List main = engineeringMains.stream().filter(m -> m.getType() == type).collect(Collectors.toList()); diff --git a/src/main/java/com/zhgd/xmgl/util/DateUtils.java b/src/main/java/com/zhgd/xmgl/util/DateUtils.java index 65ad92e..e60adc6 100644 --- a/src/main/java/com/zhgd/xmgl/util/DateUtils.java +++ b/src/main/java/com/zhgd/xmgl/util/DateUtils.java @@ -175,12 +175,12 @@ public class DateUtils { } /** - * 获取指定年份所有天数 + * 获取指定年份所有天数,eg:202201-202212 * * @param yearMonth * @return */ - public static List getYearAllMonthList(String yearMonth) { + public static List getAllYearMonthList(String yearMonth) { String year = yearMonth.substring(0, 4); List list = new ArrayList<>(); for (int i = 1; i <= 12; i++) { @@ -560,6 +560,6 @@ public class DateUtils { } public static void main(String[] args) { - System.out.println(getMonthsBetweenLastYear()); + System.out.println(getAllYearMonthList("2022")); } } diff --git a/src/main/java/com/zhgd/xmgl/util/ParamEnum.java b/src/main/java/com/zhgd/xmgl/util/ParamEnum.java index 89f628d..fc88d8d 100644 --- a/src/main/java/com/zhgd/xmgl/util/ParamEnum.java +++ b/src/main/java/com/zhgd/xmgl/util/ParamEnum.java @@ -1,12 +1,13 @@ package com.zhgd.xmgl.util; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.experimental.UtilityClass; @UtilityClass public class ParamEnum { /** - * 附件类型枚举 + * 附件类型枚举 */ public enum AnnexFileType { ENGINEERING(1, "工程附件"), @@ -32,7 +33,7 @@ public class ParamEnum { /** - * 字典类型 + * 字典类型 */ public enum SysDictType { MODULE_TYPE("module_type", "模块类型"), @@ -69,7 +70,7 @@ public class ParamEnum { } /** - * 扬尘信息枚举 + * 扬尘信息枚举 */ public enum EnvironmentAlarmTypeThreshold { PM10(1, "PM10"), @@ -103,7 +104,7 @@ public class ParamEnum { } /** - * 工程主体枚举 + * 工程主体枚举 */ public enum EngineeringMain { BUILD(1, "建设单位"), @@ -131,7 +132,7 @@ public class ParamEnum { } /** - * 政务配置键名 + * 政务配置键名 */ public enum GovernmentConfig { EMAIL("email", "邮件配置"); @@ -174,4 +175,73 @@ public class ParamEnum { this.desc = desc; } } + + public enum EngineeringState { + NOT_STARTED_YET(1, "未开工"), + UNDER_CONSTRUCTION(2, "在建"), + UNDER_CONSTRUCTION_ORDINARY_SHUTDOWN(3, "在建.普通停工"), + UNDER_CONSTRUCTION_PUNISHMENT_SHUTDOWN(4, "在建.处罚停工"), + UNDER_CONSTRUCTION_COMPLETED(5, "在建.完工"), + TO_BE_COMPLETED(6, "待竣工"), + COMPLETED(7, "竣工"), + OTHER(8, "其他"); + + EngineeringState(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + private Integer value; + private String desc; + + public Integer getValue() { + return value; + } + + public void setValue(Integer value) { + this.value = value; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + } + + + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum EngineeringType { + CONSTRUCTION(1, "房屋建筑"), + MUNICIPAL_PUBLIC_WORK(2, "市政公用工程"), + RAIL_TRANSIT_ENGINEERING(3, "轨道交通工程"), + PUBLIC_CONSTRUCTION_PROJECT(4, "公共建设项目"), + OTHER(5, "其他"); + + EngineeringType(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + private Integer value; + private String desc; + + public Integer getValue() { + return value; + } + + public void setValue(Integer value) { + this.value = value; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + } }