diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageAlarmController.java b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageAlarmController.java index 6f2c1bd7c..c6c3baf01 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageAlarmController.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageAlarmController.java @@ -102,7 +102,7 @@ public class SewageAlarmController { */ @ApiOperation(value = "编辑污水预警信息", notes = "编辑污水预警信息", httpMethod = "POST") @PostMapping(value = "/edit") - public Result edit(@RequestBody SewageAlarm sewageAlarm) { + public Result edit(@RequestBody SewageAlarm sewageAlarm) { if (Objects.equals(sewageAlarm.getHandleDone(), 1)) { UserInfo userInfo = SecurityUtils.getUser(); sewageAlarm.setOperateId(userInfo.getUserId()); diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDataController.java b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDataController.java index a6f76cfaf..27fb85836 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDataController.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.sewage.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gexin.fastjson.JSON; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.modules.sewage.entity.SewageData; import com.zhgd.xmgl.modules.sewage.service.ISewageDataService; @@ -66,7 +67,7 @@ public class SewageDataController { } - @ApiOperation(value = "查询污水设备和最新的一条数据信息", notes = "查询污水设备和最新的一条数据信息", httpMethod = "GET") + @ApiOperation(value = "列表查询污水设备和最新的一条数据信息", notes = "列表查询污水设备和最新的一条数据信息", httpMethod = "GET") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), @@ -87,7 +88,8 @@ public class SewageDataController { @ApiOperation(value = "添加污水数据信息", notes = "添加污水数据信息", httpMethod = "POST") @PostMapping(value = "/add") public Result add(@RequestBody SewageData sewageData) { - sewageDataService.save(sewageData); + log.info("添加污水数据信息:{}", JSON.toJSONString(sewageData)); + sewageDataService.add(sewageData); return Result.ok(); } @@ -155,13 +157,11 @@ public class SewageDataController { */ @ApiOperation(value = "导出excel污水数据信息", notes = "导出excel污水数据信息", httpMethod = "POST") @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), - @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), @ApiImplicitParam(name = "createDate_begin", value = "查询开始日期", paramType = "query", required = false, dataType = "String"), @ApiImplicitParam(name = "createDate_end", value = "查询结束日期", paramType = "query", required = false, dataType = "String"), }) @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(@ApiIgnore @RequestParam HashMap paramMap) { + public ModelAndView exportXls(@ApiIgnore @RequestBody HashMap paramMap) { //Step.2 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); List pageList = queryList(paramMap).getResult(); diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDevController.java b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDevController.java index a41fd478e..5c2866ab2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDevController.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDevController.java @@ -86,7 +86,7 @@ public class SewageDevController { @ApiOperation(value = "添加污水设备信息", notes = "添加污水设备信息", httpMethod = "POST") @PostMapping(value = "/add") public Result add(@RequestBody SewageDev sewageDev) { - sewageDevService.save(sewageDev); + sewageDevService.add(sewageDev); return Result.ok(); } @@ -99,7 +99,7 @@ public class SewageDevController { @ApiOperation(value = "编辑污水设备信息", notes = "编辑污水设备信息", httpMethod = "POST") @PostMapping(value = "/edit") public Result edit(@RequestBody SewageDev sewageDev) { - sewageDevService.updateById(sewageDev); + sewageDevService.edit(sewageDev); return Result.ok(); } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageWarnThresholdController.java b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageWarnThresholdController.java index 845bda90f..38fa595c3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageWarnThresholdController.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageWarnThresholdController.java @@ -1,39 +1,21 @@ package com.zhgd.xmgl.modules.sewage.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.modules.sewage.entity.SewageWarnThreshold; +import com.zhgd.xmgl.modules.sewage.service.ISewageWarnThresholdService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiImplicitParams; - -import java.util.HashMap; - -import springfox.documentation.annotations.ApiIgnore; - -import java.util.List; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.zhgd.jeecg.common.api.vo.Result; -import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.jeecg.common.util.oConvertUtils; -import org.apache.commons.collections.MapUtils; -import com.zhgd.xmgl.modules.sewage.service.ISewageWarnThresholdService; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; - -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; - +import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; -import com.alibaba.fastjson.JSON; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.HashMap; +import java.util.List; /** @@ -149,37 +131,10 @@ public class SewageWarnThresholdController { return result; } - /** - * 导出excel - * - * @param request - * @param response - */ - @ApiOperation(value = "导出excel污水预警阈值信息", notes = "导出excel污水预警阈值信息", httpMethod = "POST") - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) { - // Step.1 组装查询条件 - QueryWrapper queryWrapper = null; - try { - String paramsStr = request.getParameter("paramsStr"); - if (oConvertUtils.isNotEmpty(paramsStr)) { - String deString = URLDecoder.decode(paramsStr, "UTF-8"); - SewageWarnThreshold sewageWarnThreshold = JSON.parseObject(deString, SewageWarnThreshold.class); - queryWrapper = QueryGenerator.initQueryWrapper(sewageWarnThreshold, request.getParameterMap()); - } - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - - //Step.2 AutoPoi 导出Excel - ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); - List pageList = sewageWarnThresholdService.list(queryWrapper); - //导出文件名称 - mv.addObject(NormalExcelConstants.FILE_NAME, "污水预警阈值列表"); - mv.addObject(NormalExcelConstants.CLASS, SewageWarnThreshold.class); - mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("污水预警阈值列表数据", "导出人:Jeecg", "导出信息")); - mv.addObject(NormalExcelConstants.DATA_LIST, pageList); - return mv; + @ApiOperation(value = "通过devSn查询污水预警阈值信息", notes = "通过devSn查询污水预警阈值信息", httpMethod = "GET") + @ApiImplicitParam(name = "devSn", value = "devSn", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/queryByDevSn") + public Result queryByDevSn(@RequestParam(name = "devSn", required = true) String devSn) { + return Result.success(sewageWarnThresholdService.queryByDevSn(devSn)); } - } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/entity/SewageAlarm.java b/src/main/java/com/zhgd/xmgl/modules/sewage/entity/SewageAlarm.java index ee99364bb..7f07f20b0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/entity/SewageAlarm.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/entity/SewageAlarm.java @@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.sewage.entity; import java.io.Serializable; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -123,17 +124,21 @@ public class SewageAlarm implements Serializable { @ApiModelProperty(value = "创建时间") private java.util.Date createTime; /** - * 更新时间 - */ - @Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "更新时间") - private java.util.Date updateTime; - /** - * 报警状态 1预警 - */ - @Excel(name = "报警状态 1预警", width = 15) - @ApiModelProperty(value = "报警状态 1预警") - private java.lang.Integer alarmType; + * 更新时间 + */ + @Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private java.util.Date updateTime; + /** + * 报警状态 1预警 2告警 3正常 + */ + @Excel(name = "报警状态 1预警 2告警 3正常", width = 15) + @ApiModelProperty(value = "报警状态 1预警 2告警 3正常") + private java.lang.Integer alarmType; + + @TableField(exist = false) + @ApiModelProperty(value = "设备名称") + private java.lang.String devName; } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageAlarmMapper.xml b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageAlarmMapper.xml index 2dbf41a36..57c57745b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageAlarmMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageAlarmMapper.xml @@ -2,8 +2,9 @@ diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageDataMapper.xml index 421f86a1b..7d614c822 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageDataMapper.xml @@ -2,19 +2,10 @@ diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageAlarmService.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageAlarmService.java index 02ff92956..1cd773884 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageAlarmService.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageAlarmService.java @@ -18,4 +18,5 @@ public interface ISewageAlarmService extends IService { IPage queryPageList(HashMap paramMap); List queryList(HashMap paramMap); + } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageDataService.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageDataService.java index 3b5d51c7f..98f74848c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageDataService.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageDataService.java @@ -20,4 +20,6 @@ public interface ISewageDataService extends IService { List queryList(HashMap paramMap); IPage queryDevAndNewestData(HashMap paramMap); + + void add(SewageData sewageData); } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageDevService.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageDevService.java index 6c2e2d2aa..d3db82943 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageDevService.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageDevService.java @@ -18,4 +18,8 @@ public interface ISewageDevService extends IService { IPage queryPageList(HashMap paramMap); List queryList(HashMap paramMap); + + void add(SewageDev sewageDev); + + void edit(SewageDev sewageDev); } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageWarnThresholdService.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageWarnThresholdService.java index a2e6162f7..22f550159 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageWarnThresholdService.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/ISewageWarnThresholdService.java @@ -18,4 +18,6 @@ public interface ISewageWarnThresholdService extends IService queryPageList(HashMap paramMap); List queryList(HashMap paramMap); + + SewageWarnThreshold queryByDevSn(String devSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageAlarmServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageAlarmServiceImpl.java index 381b36e7a..9768eca07 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageAlarmServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageAlarmServiceImpl.java @@ -1,16 +1,16 @@ package com.zhgd.xmgl.modules.sewage.service.impl; -import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm; -import com.zhgd.xmgl.modules.sewage.mapper.SewageAlarmMapper; -import com.zhgd.xmgl.modules.sewage.service.ISewageAlarmService; -import com.zhgd.xmgl.util.RefUtil; -import org.springframework.stereotype.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.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.xmgl.util.PageUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm; +import com.zhgd.xmgl.modules.sewage.mapper.SewageAlarmMapper; +import com.zhgd.xmgl.modules.sewage.service.ISewageAlarmService; +import com.zhgd.xmgl.util.PageUtil; +import com.zhgd.xmgl.util.RefUtil; +import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; @@ -39,8 +39,9 @@ public class SewageAlarmServiceImpl extends ServiceImpl getQueryWrapper(HashMap paramMap) { - QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SewageAlarm.class, paramMap); - queryWrapper.orderByDesc(RefUtil.fieldNameUlc(SewageAlarm::getId)); + String alias = "sa."; + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SewageAlarm.class, paramMap, alias); + queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(SewageAlarm::getId)); return queryWrapper; } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDataServiceImpl.java index 27d097abf..416ad9f53 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDataServiceImpl.java @@ -1,15 +1,22 @@ package com.zhgd.xmgl.modules.sewage.service.impl; +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.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.xmgl.modules.sewage.entity.SewageData; +import com.zhgd.xmgl.modules.sewage.entity.SewageDev; +import com.zhgd.xmgl.modules.sewage.entity.SewageWarnThreshold; import com.zhgd.xmgl.modules.sewage.mapper.SewageDataMapper; +import com.zhgd.xmgl.modules.sewage.mapper.SewageDevMapper; +import com.zhgd.xmgl.modules.sewage.mapper.SewageWarnThresholdMapper; import com.zhgd.xmgl.modules.sewage.service.ISewageDataService; import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.RefUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -23,6 +30,11 @@ import java.util.List; */ @Service public class SewageDataServiceImpl extends ServiceImpl implements ISewageDataService { + @Autowired + SewageDevMapper sewageDevMapper; + @Autowired + SewageWarnThresholdMapper sewageWarnThresholdMapper; + @Override public IPage queryPageList(HashMap paramMap) { QueryWrapper queryWrapper = getQueryWrapper(paramMap); @@ -45,6 +57,23 @@ public class SewageDataServiceImpl extends ServiceImpl() + .eq(SewageDev::getDevSn, sd.getDevSn())); + if (dev == null) { + throw new OpenAlertException("设备编号不正确"); + } + sd.setDevName(dev.getDevName()); + sd.setProjectSn(dev.getProjectSn()); + baseMapper.insert(sd); + + //插入报警 + SewageWarnThreshold threshold = sewageWarnThresholdMapper.selectOne(new LambdaQueryWrapper() + .eq(SewageWarnThreshold::getDevSn, dev.getDevSn())); + + } + private QueryWrapper getQueryWrapperAlias(HashMap paramMap) { String alias = "sd."; QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SewageData.class, paramMap, alias); diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDevServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDevServiceImpl.java index 16af99958..af059f1f3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDevServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDevServiceImpl.java @@ -1,16 +1,21 @@ package com.zhgd.xmgl.modules.sewage.service.impl; -import com.zhgd.xmgl.modules.sewage.service.ISewageDevService; -import com.zhgd.xmgl.modules.sewage.entity.SewageDev; -import com.zhgd.xmgl.modules.sewage.mapper.SewageDevMapper; -import com.zhgd.xmgl.util.RefUtil; -import org.springframework.stereotype.Service; +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.extension.plugins.pagination.Page; -import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.xmgl.util.PageUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.modules.sewage.entity.SewageDev; +import com.zhgd.xmgl.modules.sewage.entity.SewageWarnThreshold; +import com.zhgd.xmgl.modules.sewage.mapper.SewageDevMapper; +import com.zhgd.xmgl.modules.sewage.mapper.SewageWarnThresholdMapper; +import com.zhgd.xmgl.modules.sewage.service.ISewageDevService; +import com.zhgd.xmgl.util.PageUtil; +import com.zhgd.xmgl.util.RefUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; @@ -23,6 +28,11 @@ import java.util.List; */ @Service public class SewageDevServiceImpl extends ServiceImpl implements ISewageDevService { + @Autowired + SewageDevMapper sewageDevMapper; + @Autowired + SewageWarnThresholdMapper sewageWarnThresholdMapper; + @Override public IPage queryPageList(HashMap paramMap) { QueryWrapper queryWrapper = getQueryWrapper(paramMap); @@ -38,6 +48,46 @@ public class SewageDevServiceImpl extends ServiceImpl() + .eq(SewageDev::getDevSn, sewageDev.getDevSn())); + if (dev != null) { + throw new OpenAlertException("devSn已存在"); + } + baseMapper.insert(sewageDev); + + insertThresholdIf(sewageDev); + } + + private void insertThresholdIf(SewageDev sewageDev) { + SewageWarnThreshold threshold = sewageWarnThresholdMapper.selectOne(new LambdaQueryWrapper() + .eq(SewageWarnThreshold::getDevSn, sewageDev.getDevSn())); + SewageWarnThreshold entity = new SewageWarnThreshold(); + entity.setProjectSn(sewageDev.getProjectSn()); + entity.setDevSn(sewageDev.getDevSn()); + if (threshold == null) { + sewageWarnThresholdMapper.insert(entity); + } else { + sewageWarnThresholdMapper.update(entity, new LambdaQueryWrapper() + .eq(SewageWarnThreshold::getDevSn, sewageDev.getDevSn())); + } + } + + @Override + public void edit(SewageDev sewageDev) { + SewageDev dev = sewageDevMapper.selectOne(new LambdaQueryWrapper() + .eq(SewageDev::getDevSn, sewageDev.getDevSn()) + .ne(SewageDev::getId, sewageDev.getId()) + ); + if (dev != null) { + throw new OpenAlertException("devSn已存在"); + } + baseMapper.updateById(sewageDev); + + insertThresholdIf(sewageDev); + } + private QueryWrapper getQueryWrapper(HashMap paramMap) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SewageDev.class, paramMap); queryWrapper.orderByDesc(RefUtil.fieldNameUlc(SewageDev::getId)); diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageWarnThresholdServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageWarnThresholdServiceImpl.java index c01478180..ffbe18e5a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageWarnThresholdServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageWarnThresholdServiceImpl.java @@ -1,16 +1,21 @@ package com.zhgd.xmgl.modules.sewage.service.impl; -import com.zhgd.xmgl.util.RefUtil; -import com.zhgd.xmgl.modules.sewage.entity.SewageWarnThreshold; -import com.zhgd.xmgl.modules.sewage.mapper.SewageWarnThresholdMapper; -import com.zhgd.xmgl.modules.sewage.service.ISewageWarnThresholdService; -import org.springframework.stereotype.Service; +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.extension.plugins.pagination.Page; -import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.xmgl.util.PageUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.modules.sewage.entity.SewageDev; +import com.zhgd.xmgl.modules.sewage.entity.SewageWarnThreshold; +import com.zhgd.xmgl.modules.sewage.mapper.SewageDevMapper; +import com.zhgd.xmgl.modules.sewage.mapper.SewageWarnThresholdMapper; +import com.zhgd.xmgl.modules.sewage.service.ISewageWarnThresholdService; +import com.zhgd.xmgl.util.PageUtil; +import com.zhgd.xmgl.util.RefUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; @@ -23,6 +28,11 @@ import java.util.List; */ @Service public class SewageWarnThresholdServiceImpl extends ServiceImpl implements ISewageWarnThresholdService { + @Autowired + SewageWarnThresholdMapper sewageWarnThresholdMapper; + @Autowired + SewageDevMapper sewageDevMapper; + @Override public IPage queryPageList(HashMap paramMap) { QueryWrapper queryWrapper = getQueryWrapper(paramMap); @@ -38,6 +48,25 @@ public class SewageWarnThresholdServiceImpl extends ServiceImpl() + .eq(SewageWarnThreshold::getDevSn, devSn)); + if (threshold == null) { + SewageDev dev = sewageDevMapper.selectOne(new LambdaQueryWrapper() + .eq(SewageDev::getDevSn, devSn)); + if (dev == null) { + throw new OpenAlertException("devSn不存在"); + } + SewageWarnThreshold entity = new SewageWarnThreshold(); + entity.setDevSn(devSn); + entity.setProjectSn(dev.getProjectSn()); + sewageWarnThresholdMapper.insert(entity); + threshold = entity; + } + return threshold; + } + private QueryWrapper getQueryWrapper(HashMap paramMap) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SewageWarnThreshold.class, paramMap); queryWrapper.orderByDesc(RefUtil.fieldNameUlc(SewageWarnThreshold::getId)); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/UfaceDevApiController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/UfaceDevApiController.java index 1791ed214..3dadeb407 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/UfaceDevApiController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/UfaceDevApiController.java @@ -1,8 +1,11 @@ package com.zhgd.xmgl.modules.worker.controller; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance; import com.zhgd.xmgl.modules.worker.entity.dto.GetWorkerInfoByDevDto; import com.zhgd.xmgl.modules.worker.entity.vo.GetWorkerInfoByDevVo; +import com.zhgd.xmgl.modules.worker.entity.vo.UploadAttendanceByDevDto; +import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -17,6 +20,8 @@ import org.springframework.web.bind.annotation.*; public class UfaceDevApiController { @Autowired IWorkerInfoService workerInfoService; + @Autowired + IWorkerAttendanceService workerAttendanceService; @ApiOperation(value = "下载白名单(拉取允许通行人员信息)", notes = "下载白名单(拉取允许通行人员信息)", httpMethod = "GET") @GetMapping(value = "/service-address/workers") @@ -26,8 +31,8 @@ public class UfaceDevApiController { @ApiOperation(value = "考勤照片上传", notes = "考勤照片上传", httpMethod = "POST") @PostMapping(value = "/service-address/photo") - public Result uploadAttendanceByDev(@RequestBody GetWorkerInfoByDevDto dto) { - return Result.success(workerInfoService.getWorkerInfoByDev(dto)); + public Result uploadAttendanceByDev(@RequestBody UploadAttendanceByDevDto dto) { + return Result.success(workerAttendanceService.uploadAttendanceByDev(dto)); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerAttendance.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerAttendance.java index 34e825401..514495c99 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerAttendance.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerAttendance.java @@ -54,10 +54,10 @@ public class WorkerAttendance implements Serializable { @ApiModelProperty(value = "项目sn") private java.lang.String projectSn; /** - * 卡类型 1 IC卡 2人脸识别 3 指纹识别 4补卡操作,5二维码,6蓝牙,7手机打卡,8车辆通行 + * 卡类型 1 IC卡 2人脸识别 3 指纹识别 4补卡操作,5二维码,6蓝牙,7手机打卡,8车辆通行,9身份证 */ - @Excel(name = "卡类型 1 IC卡 2人脸识别 3 指纹识别 4补卡操作,5二维码,6蓝牙,7手机打卡,8车辆通行", width = 15) - @ApiModelProperty(value = "卡类型 1 IC卡 2人脸识别 3 指纹识别 4补卡操作,5二维码,6蓝牙,7手机打卡,8车辆通行") + @Excel(name = "卡类型 1 IC卡 2人脸识别 3 指纹识别 4补卡操作,5二维码,6蓝牙,7手机打卡,8车辆通行,9身份证", width = 15) + @ApiModelProperty(value = "卡类型 1 IC卡 2人脸识别 3 指纹识别 4补卡操作,5二维码,6蓝牙,7手机打卡,8车辆通行,9身份证") private java.lang.Integer cardType; /** * 考勤图片URL @@ -83,31 +83,49 @@ public class WorkerAttendance implements Serializable { @Excel(name = "考勤状态 1、正常 2、迟到 3、早退 4、加班5、缺卡", width = 15) @ApiModelProperty(value = "考勤状态 1、正常 2、迟到 3、早退 4、加班5、缺卡") private java.lang.Integer attendanceStatus; - + /** + * 温度 + */ @ApiModelProperty(value = "温度") private java.lang.String temperature; - + /** + * 通行设备唯一标识 + */ @ApiModelProperty(value = "通行设备唯一标识") private java.lang.String devSn; - + /** + * 是否计入考勤统计 + */ @ApiModelProperty(value = "是否计入考勤统计") private java.lang.Integer isStatistics; - + /** + * 车牌号 + */ @ApiModelProperty(value = "车牌号") private java.lang.String carNumber; - + /** + * 健康码状态,0无,1红码,2黄码,3绿码 + */ @ApiModelProperty(value = "健康码状态,0无,1红码,2黄码,3绿码") private java.lang.Integer healthCode; - + /** + * 核酸时间 + */ @ApiModelProperty(value = "核酸时间") private java.lang.String nucleicAcidTime; - + /** + * 核酸结果 0 未知,1 阴性,2 阳性 + */ @ApiModelProperty(value = "核酸结果 0 未知,1 阴性,2 阳性") private java.lang.Integer nucleicAcidResult; - + /** + * 疫苗接种时间 + */ @ApiModelProperty(value = "疫苗接种时间") private java.lang.String vaccinateTime; - + /** + * 疫苗接种次数,0未接种,1接种一针,2接种两针,3接种三针 + */ @ApiModelProperty(value = "疫苗接种次数,0未接种,1接种一针,2接种两针,3接种三针") private java.lang.Integer vaccinateState; /** diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/GetWorkerInfoByDevVo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/GetWorkerInfoByDevVo.java index c0d8d21ad..f3b4bbecf 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/GetWorkerInfoByDevVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/GetWorkerInfoByDevVo.java @@ -31,7 +31,7 @@ public class GetWorkerInfoByDevVo { @ApiModelProperty("身份证号,未加密明文传输") @JsonProperty("idCardNumber") private String idCardNumber; - @ApiModelProperty("工人编号(存身份证号)") + @ApiModelProperty("工人编号") @JsonProperty("workerId") private String workerId; @ApiModelProperty("工人照片") diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/UploadAttendanceByDevDto.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/UploadAttendanceByDevDto.java index 9b5db7b51..12291a9a5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/UploadAttendanceByDevDto.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/UploadAttendanceByDevDto.java @@ -5,36 +5,70 @@ import lombok.Data; @Data public class UploadAttendanceByDevDto { - /* -base64 string 是 图片base64编码 (没有文件类型的头) -projectId string 否 项目编号 -deviceId string 是 设备编号 -fileName string 是 图片名称 -workerId string 是 1、系统中的人员编号 2、防疫设备 身份证号或身份证后4位 -time string 是 通行时间。毫秒时间戳 -temp string 否 体温 -currentChipCode string 否 帽子编号 -direction string 是 进出方向。默认 in in:进;out:出 -type string 否 通行类型。默认 face。 face 人脸, idcard 身份证, health_qr 健康码, pass_qr 通行二维码 -pos_type string 否 gps,baidugis,lbs -pos_lat sting 否 纬度 -pos_lng sting 否 经度 + /** + * 图片base64编码 (没有文件类型的头) */ - - @ApiModelProperty("") + @ApiModelProperty("图片base64编码 (没有文件类型的头)") private String base64; + /** + * 项目编号 + */ + @ApiModelProperty("项目编号") private String projectId; + /** + * 设备编号 + */ + @ApiModelProperty("设备编号") private String deviceId; + /** + * 图片名称 + */ + @ApiModelProperty("图片名称") private String fileName; + /** + * 1、系统中的人员编号 2、防疫设备 身份证号或身份证后4位 + */ + @ApiModelProperty("1、系统中的人员编号 2、防疫设备 身份证号或身份证后4位") private String workerId; + /** + * 通行时间。毫秒时间戳 + */ + @ApiModelProperty("通行时间。毫秒时间戳") private String time; + /** + * 体温 + */ + @ApiModelProperty("体温") private String temp; + /** + * 帽子编号 + */ + @ApiModelProperty("帽子编号") private String currentChipCode; + /** + * 进出方向。默认 in in:进;out:出 + */ + @ApiModelProperty("进出方向。默认 in in:进;out:出") private String direction; + /** + * 通行类型。默认 face。 face 人脸, idcard 身份证, health_qr 健康码, pass_qr 通行二维码 + */ + @ApiModelProperty("通行类型。默认 face。 face 人脸, idcard 身份证, health_qr 健康码, pass_qr 通行二维码") private String type; + /** + * gps,baidugis,lbs + */ + @ApiModelProperty("gps,baidugis,lbs") private String pos_type; + /** + * 纬度 + */ + @ApiModelProperty("纬度") private String pos_lat; + /** + * 经度 + */ + @ApiModelProperty("经度") private String pos_lng; - } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java index 5a452e47d..2067d03af 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java @@ -9,6 +9,8 @@ import com.zhgd.xmgl.entity.vo.NumberTimeTableVo; import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance; import com.baomidou.mybatisplus.extension.service.IService; import com.zhgd.xmgl.modules.worker.entity.dto.GetPassRecordDto; +import com.zhgd.xmgl.modules.worker.entity.vo.GetWorkerInfoByDevVo; +import com.zhgd.xmgl.modules.worker.entity.vo.UploadAttendanceByDevDto; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -75,4 +77,6 @@ public interface IWorkerAttendanceService extends IService { List queryAttendanceTrend(Map map); AttendanceOfEachCompanyVo queryAttendanceOfEachCompany(Map map); + + GetWorkerInfoByDevVo uploadAttendanceByDev(UploadAttendanceByDevDto dto); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java index 0a9d35901..09c9e9292 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerInfoService.java @@ -123,6 +123,5 @@ public interface IWorkerInfoService extends IService { WorkerAgeVo statisticsWorkerAge(Map map); - GetWorkerInfoByDevVo getWorkerInfoByDev(GetWorkerInfoByDevDto dto); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java index 1f35e4726..7540827b5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java @@ -29,7 +29,9 @@ import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper; import com.zhgd.xmgl.modules.worker.entity.*; import com.zhgd.xmgl.modules.worker.entity.bo.WorkerAttendanceBo; import com.zhgd.xmgl.modules.worker.entity.dto.GetPassRecordDto; +import com.zhgd.xmgl.modules.worker.entity.vo.GetWorkerInfoByDevVo; import com.zhgd.xmgl.modules.worker.entity.vo.ProjectCompanyWorkTotal; +import com.zhgd.xmgl.modules.worker.entity.vo.UploadAttendanceByDevDto; import com.zhgd.xmgl.modules.worker.mapper.*; import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; @@ -64,6 +66,8 @@ import static com.zhgd.xmgl.config.FaceRunner.faceEngine; @Slf4j @Transactional(rollbackFor = Exception.class) public class WorkerAttendanceServiceImpl extends ServiceImpl implements IWorkerAttendanceService { + @Autowired + private UploadFileService uploadFileService; @Autowired private IWorkerInfoService workerInfoService; @Autowired @@ -78,9 +82,6 @@ public class WorkerAttendanceServiceImpl extends ServiceImpl() + .eq(UfaceDev::getDevSn, dto.getDeviceId())); + if (dev == null) { + throw new OpenAlertException("deviceId不存在"); + } + WorkerAttendance attendance = new WorkerAttendance(); + attendance.setPersonSn(workerInfo.getPersonSn()); + attendance.setPassType(getPassType(dto.getDirection())); + attendance.setCreateTime(DateUtil.formatDateTime(new Date(dto.getTime()))); + attendance.setProjectSn(workerInfo.getProjectSn()); + attendance.setCardType(getCardType(dto.getType())); + FileInfo fileInfo = uploadFileService.uploadFileBase64Image(dto.getBase64()); + attendance.setImageUrl(fileInfo.getUrl()); + attendance.setAttendanceType(1); + attendance.setPassagewayName(dev.getDevName()); + attendance.setAttendanceStatus(1); + attendance.setTemperature(dto.getTemp()); + attendance.setDevSn(dev.getDevSn()); + attendance.setIsStatistics(1); + baseMapper.insert(attendance); + + HashMap rtMap = new HashMap<>(); + rtMap.put("path", serverUrl + "/image/" + fileInfo.getUrl()); + GetWorkerInfoByDevVo vo = new GetWorkerInfoByDevVo(); + vo.setSuccess(true); + vo.setCode(0); + vo.setMessage("success"); + vo.setTime(System.currentTimeMillis() / 1000); + vo.setData(rtMap); + vo.setEvent("photo"); + return vo; + } + + private Integer getCardType(String type) { + if (StringUtils.isBlank(type)) { + return null; + } + //卡类型 1 IC卡 2人脸识别 3 指纹识别 4补卡操作,5二维码,6蓝牙,7手机打卡,8车辆通行,9身份证 + //face 人脸, idcard 身份证, health_qr 健康码, pass_qr 通行二维码 + switch (type) { + case "face": + return 2; + case "idcard": + return 9; + case "health_qr": + return 5; + case "pass_qr": + return 5; + } + return null; + } + + private Integer getPassType(String direction) { + if (StringUtils.isBlank(direction)) { + return null; + } + //in:进;out:出 + switch (direction) { + case "in": + return 1; + case "out": + return 2; + } + return null; + } + public WorkerInfo getWorkerInfoByImage(String personImage, String projectSn) { WorkerInfo info = null; File file = null; diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index edc14d92c..12dfa345c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -1913,13 +1913,14 @@ public class WorkerInfoServiceImpl extends ServiceImpl infos, String del, ArrayList datas) { for (WorkerInfo workerInfo : infos) { GetWorkerInfoByDevVo.Worker worker = new GetWorkerInfoByDevVo.Worker(); worker.setUpdate(String.valueOf(workerInfo.getUpdateTime().getTime() / 1000)); worker.setName(workerInfo.getWorkerName()); worker.setIdCardNumber(workerInfo.getIdCard()); - worker.setWorkerId(String.valueOf(workerInfo.getIdCard())); + worker.setWorkerId(String.valueOf(workerInfo.getId())); if (StringUtils.isNotBlank(workerInfo.getFieldAcquisitionUrl())) { worker.setPhoto(serverUrl + "/image/" + workerInfo.getFieldAcquisitionUrl()); } diff --git a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java index f276dfe11..b8fafca13 100644 --- a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java +++ b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java @@ -271,6 +271,9 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/xmgl/smartBeamFieldMaintainData/getAvgData").permitAll() .antMatchers("/xmgl/smartBeamFieldMakeBeamPedestal/list").permitAll() .antMatchers("/xmgl/smartBeamFieldBeam/countSmartBeamFieldBeam").permitAll() + .antMatchers("/service-address/workers").permitAll() + .antMatchers("/service-address/photo").permitAll() + .antMatchers("/xmgl/sewageData/add").permitAll() .antMatchers(HttpMethod.OPTIONS, "/**").anonymous() .anyRequest().authenticated() // 剩下所有的验证都需要验证 .and()