From b1fa6060c4923ef92acae72befd4e36a42c4a2d8 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Wed, 22 May 2024 01:36:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=85=A8=E5=B1=A5=E8=81=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xmgl/modules/project/entity/Project.java | 4 + .../worker/mapper/xml/WorkerInfoMapper.xml | 6 + .../XzWorkerSafeWatchAlarmController.java | 228 ++++++++++++++++++ .../XzWorkerSafeWatchConfigController.java | 181 ++++++++++++++ .../XzWorkerSafeWatchManagerController.java | 163 +++++++++++++ .../xz/entity/XzWorkerSafeWatchAlarm.java | 82 +++++++ .../xz/entity/XzWorkerSafeWatchConfig.java | 52 ++++ .../xz/entity/XzWorkerSafeWatchManager.java | 61 +++++ .../mapper/XzWorkerSafeWatchAlarmMapper.java | 19 ++ .../mapper/XzWorkerSafeWatchConfigMapper.java | 19 ++ .../XzWorkerSafeWatchManagerMapper.java | 23 ++ .../xml/XzWorkerSafeWatchAlarmMapper.xml | 5 + .../xml/XzWorkerSafeWatchConfigMapper.xml | 5 + .../xml/XzWorkerSafeWatchManagerMapper.xml | 10 + .../IXzWorkerSafeWatchAlarmService.java | 14 ++ .../IXzWorkerSafeWatchConfigService.java | 14 ++ .../IXzWorkerSafeWatchManagerService.java | 20 ++ .../XzWorkerSafeWatchAlarmServiceImpl.java | 19 ++ .../XzWorkerSafeWatchConfigServiceImpl.java | 19 ++ .../XzWorkerSafeWatchManagerServiceImpl.java | 51 ++++ .../java/com/zhgd/xmgl/task/WorkerTask.java | 134 +++++++++- 21 files changed, 1125 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchAlarmController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchConfigController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchManagerController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchAlarm.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchConfig.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchManager.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchAlarmMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchConfigMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchManagerMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchAlarmMapper.xml create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchConfigMapper.xml create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchManagerMapper.xml create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchAlarmService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchConfigService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchManagerService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchAlarmServiceImpl.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchConfigServiceImpl.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchManagerServiceImpl.java diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java index b7b1493c9..ea879027e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java @@ -321,6 +321,10 @@ public class Project implements Serializable { private String artemisConfigAppSecret; @ApiModelProperty(value = "是否开启劳务在场零点清空功能") private Integer enableWorkerAttendanceZero; + @ApiModelProperty(value = "是否开启安全履职监测") + private Integer enableWorkerSafeWatch; + @ApiModelProperty(value = "安全履职报警推送时间") + private String workerSafeWatchTime; /** diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml index 94ac0b0d2..8ee0dbea7 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml @@ -69,6 +69,12 @@ #{item} + + and a.person_sn in + + #{item} + + and wap.id is not null diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchAlarmController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchAlarmController.java new file mode 100644 index 000000000..e337ccc94 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchAlarmController.java @@ -0,0 +1,228 @@ +package com.zhgd.xmgl.modules.xz.controller; + +import com.zhgd.annotation.OperLog; +import com.zhgd.xmgl.modules.exam.entity.ExamCourse; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchAlarm; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchAlarmService; +import com.zhgd.xmgl.security.util.SecurityUtils; +import com.zhgd.xmgl.util.PageUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.io.IOException; +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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.apache.commons.collections.MapUtils; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import springfox.documentation.annotations.ApiIgnore; + + +/** + * @Title: Controller + * @Description: 安全履职报警信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/xzWorkerSafeWatchAlarm") +@Slf4j +@Api(tags = "安全履职报警信息管理") +public class XzWorkerSafeWatchAlarmController { + @Autowired + private IXzWorkerSafeWatchAlarmService xzWorkerSafeWatchAlarmService; + + /** + * 分页列表查询 + * + * @return + */ + @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 = "/page") + public Result> queryPageList(@ApiIgnore @RequestBody Map map) { + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchAlarm.class, map); + Page page = PageUtil.getPage(map); + IPage pageList = xzWorkerSafeWatchAlarmService.page(page, queryWrapper); + return Result.success(pageList); + } + + /** + * 列表查询 + * + * @param xzWorkerSafeWatchAlarm + * @return + */ + @OperLog(operModul = "安全履职报警信息管理", operType = "列表查询", operDesc = "列表查询安全履职报警信息信息") + @ApiOperation(value = " 列表查询安全履职报警信息信息", notes = "列表查询安全履职报警信息信息", httpMethod = "POST") + @PostMapping(value = "/list") + public Result> queryList(@RequestBody XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(xzWorkerSafeWatchAlarm); + List list = xzWorkerSafeWatchAlarmService.list(queryWrapper); + return Result.success(list); + } + + + /** + * 添加 + * + * @param xzWorkerSafeWatchAlarm + * @return + */ + @OperLog(operModul = "安全履职报警信息管理", operType = "新增", operDesc = "添加安全履职报警信息信息") + @ApiOperation(value = " 添加安全履职报警信息信息", notes = "添加安全履职报警信息信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm) { + Result result = new Result(); + xzWorkerSafeWatchAlarmService.save(xzWorkerSafeWatchAlarm); + return Result.success("添加成功!"); + } + + /** + * 编辑 + * + * @param xzWorkerSafeWatchAlarm + * @return + */ + @OperLog(operModul = "安全履职报警信息管理", operType = "修改", operDesc = "编辑安全履职报警信息信息") + @ApiOperation(value = "编辑安全履职报警信息信息", notes = "编辑安全履职报警信息信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm) { + Result result = new Result(); + XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarmEntity = xzWorkerSafeWatchAlarmService.getById(xzWorkerSafeWatchAlarm.getId()); + if (xzWorkerSafeWatchAlarmEntity == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = xzWorkerSafeWatchAlarmService.updateById(xzWorkerSafeWatchAlarm); + if (ok) { + result.success("修改成功!"); + } else { + result.success("操作失败!"); + } + } + + return result; + } + + /** + * 通过id删除 + * + * @return + */ + @OperLog(operModul = "安全履职报警信息管理", operType = "删除", operDesc = "删除安全履职报警信息信息") + @ApiOperation(value = "删除安全履职报警信息信息", notes = "删除安全履职报警信息信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "安全履职报警信息ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/delete") + public Result delete(@RequestBody XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm) { + Result result = new Result(); + XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarmEntity = xzWorkerSafeWatchAlarmService.getById(xzWorkerSafeWatchAlarm.getId()); + if (xzWorkerSafeWatchAlarmEntity == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = xzWorkerSafeWatchAlarmService.removeById(xzWorkerSafeWatchAlarm.getId()); + if (ok) { + result.success("删除成功!"); + } else { + result.success("操作失败!"); + } + } + return result; + } + + /** + * 批量删除 + * + * @return + */ + @OperLog(operModul = "安全履职报警信息管理", operType = "批量删除", operDesc = "批量删除安全履职报警信息信息") + @ApiOperation(value = "批量删除安全履职报警信息信息", notes = "批量删除安全履职报警信息信息", httpMethod = "POST") + @ApiImplicitParam(name = "ids", value = "安全履职报警信息ID字符串", paramType = "body", required = true, dataType = "String") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@ApiIgnore @RequestBody Map map) { + Result result = new Result(); + String ids = MapUtils.getString(map, "ids"); + if (ids == null || "".equals(ids.trim())) { + result.error500("参数不识别!"); + } else { + this.xzWorkerSafeWatchAlarmService.removeByIds(Arrays.asList(ids.split(","))); + result.success("删除成功!"); + } + return result; + } + + /** + * 通过id查询 + * + * @return + */ + @OperLog(operModul = "安全履职报警信息管理", operType = "查询", operDesc = "通过id查询安全履职报警信息信息") + @ApiOperation(value = "通过id查询安全履职报警信息信息", notes = "通过id查询安全履职报警信息信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "安全履职报警信息ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/queryById") + public Result queryById(@ApiIgnore @RequestBody Map map) { + Result result = new Result(); + XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm = xzWorkerSafeWatchAlarmService.getById(MapUtils.getString(map, "id")); + if (xzWorkerSafeWatchAlarm == null) { + result.error500("未找到对应实体"); + } else { + result.setResult(xzWorkerSafeWatchAlarm); + result.setSuccess(true); + } + return result; + } + + /** + * 导出履职预警信息 + * + * @param request + * @param response + */ + @ApiOperation(value = "导出履职预警信息", notes = "导出履职预警信息", httpMethod = "POST") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response, Map map) { + // Step.1 组装查询条件 + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchAlarm.class, map); + IPage pageList = xzWorkerSafeWatchAlarmService.page(new Page<>(-1, -1), queryWrapper); + + //Step.2 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //导出文件名称 + mv.addObject(NormalExcelConstants.FILE_NAME, "履职预警列表"); + mv.addObject(NormalExcelConstants.CLASS, XzWorkerSafeWatchAlarm.class); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("履职预警列表数据", "导出人:" + SecurityUtils.getUser().getRealName(), "导出信息")); + mv.addObject(NormalExcelConstants.DATA_LIST, pageList.getRecords()); + return mv; + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchConfigController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchConfigController.java new file mode 100644 index 000000000..2dbd8214e --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchConfigController.java @@ -0,0 +1,181 @@ +package com.zhgd.xmgl.modules.xz.controller; + +import com.zhgd.annotation.OperLog; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchConfig; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchConfigService; +import com.zhgd.xmgl.util.PageUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.io.IOException; +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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.apache.commons.collections.MapUtils; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import springfox.documentation.annotations.ApiIgnore; + + +/** + * @Title: Controller + * @Description: 安全履职配置信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/xzWorkerSafeWatchConfig") +@Slf4j +@Api(tags = "安全履职配置信息管理") +public class XzWorkerSafeWatchConfigController { + @Autowired + private IXzWorkerSafeWatchConfigService xzWorkerSafeWatchConfigService; + + /** + * 分页列表查询 + * + * @return + */ + @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 = "/page") + public Result> queryPageList(@ApiIgnore @RequestBody Map map) { + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchConfig.class, map); + Page page = PageUtil.getPage(map); + IPage pageList = xzWorkerSafeWatchConfigService.page(page, queryWrapper); + return Result.success(pageList); + } + + /** + * 列表查询 + * + * @param xzWorkerSafeWatchConfig + * @return + */ + @OperLog(operModul = "安全履职配置信息管理", operType = "列表查询", operDesc = "列表查询安全履职配置信息信息") + @ApiOperation(value = " 列表查询安全履职配置信息信息", notes = "列表查询安全履职配置信息信息", httpMethod = "POST") + @PostMapping(value = "/list") + public Result> queryList(@RequestBody XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(xzWorkerSafeWatchConfig); + List list = xzWorkerSafeWatchConfigService.list(queryWrapper); + return Result.success(list); + } + + + /** + * 添加 + * + * @param xzWorkerSafeWatchConfig + * @return + */ + @OperLog(operModul = "安全履职配置信息管理", operType = "新增", operDesc = "添加安全履职配置信息信息") + @ApiOperation(value = " 添加安全履职配置信息信息", notes = "添加安全履职配置信息信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig) { + Result result = new Result(); + xzWorkerSafeWatchConfigService.save(xzWorkerSafeWatchConfig); + return Result.success("添加成功!"); + } + + /** + * 编辑 + * + * @param xzWorkerSafeWatchConfig + * @return + */ + @OperLog(operModul = "安全履职配置信息管理", operType = "修改", operDesc = "编辑安全履职配置信息信息") + @ApiOperation(value = "编辑安全履职配置信息信息", notes = "编辑安全履职配置信息信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig) { + Result result = new Result(); + XzWorkerSafeWatchConfig xzWorkerSafeWatchConfigEntity = xzWorkerSafeWatchConfigService.getById(xzWorkerSafeWatchConfig.getId()); + if (xzWorkerSafeWatchConfigEntity == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = xzWorkerSafeWatchConfigService.updateById(xzWorkerSafeWatchConfig); + if (ok) { + result.success("修改成功!"); + } else { + result.success("操作失败!"); + } + } + + return result; + } + + /** + * 通过id删除 + * + * @return + */ + @OperLog(operModul = "安全履职配置信息管理", operType = "删除", operDesc = "删除安全履职配置信息信息") + @ApiOperation(value = "删除安全履职配置信息信息", notes = "删除安全履职配置信息信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "安全履职配置信息ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/delete") + public Result delete(@RequestBody XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig) { + Result result = new Result(); + XzWorkerSafeWatchConfig xzWorkerSafeWatchConfigEntity = xzWorkerSafeWatchConfigService.getById(xzWorkerSafeWatchConfig.getId()); + if (xzWorkerSafeWatchConfigEntity == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = xzWorkerSafeWatchConfigService.removeById(xzWorkerSafeWatchConfig.getId()); + if (ok) { + result.success("删除成功!"); + } else { + result.success("操作失败!"); + } + } + return result; + } + + /** + * 通过id查询 + * + * @return + */ + @OperLog(operModul = "安全履职配置信息管理", operType = "查询", operDesc = "通过id查询安全履职配置信息信息") + @ApiOperation(value = "通过id查询安全履职配置信息信息", notes = "通过id查询安全履职配置信息信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "安全履职配置信息ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/queryById") + public Result queryById(@ApiIgnore @RequestBody Map map) { + Result result = new Result(); + XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig = xzWorkerSafeWatchConfigService.getById(MapUtils.getString(map, "id")); + if (xzWorkerSafeWatchConfig == null) { + result.error500("未找到对应实体"); + } else { + result.setResult(xzWorkerSafeWatchConfig); + result.setSuccess(true); + } + return result; + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchManagerController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchManagerController.java new file mode 100644 index 000000000..999e63ca7 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzWorkerSafeWatchManagerController.java @@ -0,0 +1,163 @@ +package com.zhgd.xmgl.modules.xz.controller; + +import com.zhgd.annotation.OperLog; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchManager; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchManagerService; +import com.zhgd.xmgl.util.PageUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.io.IOException; +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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.apache.commons.collections.MapUtils; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import springfox.documentation.annotations.ApiIgnore; + + +/** + * @Title: Controller + * @Description: 安全履职报警推送人信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/xzWorkerSafeWatchManager") +@Slf4j +@Api(tags = "安全履职报警推送人信息管理") +public class XzWorkerSafeWatchManagerController { + @Autowired + private IXzWorkerSafeWatchManagerService xzWorkerSafeWatchManagerService; + + /** + * 列表查询 + * + * @param xzWorkerSafeWatchManager + * @return + */ + @OperLog(operModul = "安全履职报警推送人信息管理", operType = "列表查询", operDesc = "列表查询安全履职报警推送人信息信息") + @ApiOperation(value = " 列表查询安全履职报警推送人信息信息", notes = "列表查询安全履职报警推送人信息信息", httpMethod = "POST") + @PostMapping(value = "/list") + public Result> queryList(@RequestBody XzWorkerSafeWatchManager xzWorkerSafeWatchManager) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(xzWorkerSafeWatchManager); + List list = xzWorkerSafeWatchManagerService.getList(queryWrapper); + return Result.success(list); + } + + + /** + * 添加 + * + * @param xzWorkerSafeWatchManager + * @return + */ + @OperLog(operModul = "安全履职报警推送人信息管理", operType = "新增", operDesc = "添加安全履职报警推送人信息信息") + @ApiOperation(value = " 添加安全履职报警推送人信息信息", notes = "添加安全履职报警推送人信息信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody XzWorkerSafeWatchManager xzWorkerSafeWatchManager) { + Result result = new Result(); + xzWorkerSafeWatchManagerService.save(xzWorkerSafeWatchManager); + return Result.success("添加成功!"); + } + + /** + * 编辑 + * + * @param xzWorkerSafeWatchManager + * @return + */ + @OperLog(operModul = "安全履职报警推送人信息管理", operType = "修改", operDesc = "编辑安全履职报警推送人信息信息") + @ApiOperation(value = "编辑安全履职报警推送人信息信息", notes = "编辑安全履职报警推送人信息信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody XzWorkerSafeWatchManager xzWorkerSafeWatchManager) { + Result result = new Result(); + XzWorkerSafeWatchManager xzWorkerSafeWatchManagerEntity = xzWorkerSafeWatchManagerService.getById(xzWorkerSafeWatchManager.getId()); + if (xzWorkerSafeWatchManagerEntity == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = xzWorkerSafeWatchManagerService.updateById(xzWorkerSafeWatchManager); + if (ok) { + result.success("修改成功!"); + } else { + result.success("操作失败!"); + } + } + + return result; + } + + /** + * 通过id删除 + * + * @return + */ + @OperLog(operModul = "安全履职报警推送人信息管理", operType = "删除", operDesc = "删除安全履职报警推送人信息信息") + @ApiOperation(value = "删除安全履职报警推送人信息信息", notes = "删除安全履职报警推送人信息信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "安全履职报警推送人信息ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/delete") + public Result delete(@RequestBody XzWorkerSafeWatchManager xzWorkerSafeWatchManager) { + Result result = new Result(); + XzWorkerSafeWatchManager xzWorkerSafeWatchManagerEntity = xzWorkerSafeWatchManagerService.getById(xzWorkerSafeWatchManager.getId()); + if (xzWorkerSafeWatchManagerEntity == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = xzWorkerSafeWatchManagerService.removeById(xzWorkerSafeWatchManager.getId()); + if (ok) { + result.success("删除成功!"); + } else { + result.success("操作失败!"); + } + } + return result; + } + + /** + * 通过id查询 + * + * @return + */ + @OperLog(operModul = "安全履职报警推送人信息管理", operType = "查询", operDesc = "通过id查询安全履职报警推送人信息信息") + @ApiOperation(value = "通过id查询安全履职报警推送人信息信息", notes = "通过id查询安全履职报警推送人信息信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "安全履职报警推送人信息ID", paramType = "body", required = true, dataType = "Integer") + @PostMapping(value = "/queryById") + public Result queryById(@ApiIgnore @RequestBody Map map) { + Result result = new Result(); + XzWorkerSafeWatchManager xzWorkerSafeWatchManager = xzWorkerSafeWatchManagerService.getById(MapUtils.getString(map, "id")); + if (xzWorkerSafeWatchManager == null) { + result.error500("未找到对应实体"); + } else { + result.setResult(xzWorkerSafeWatchManager); + result.setSuccess(true); + } + return result; + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchAlarm.java b/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchAlarm.java new file mode 100644 index 000000000..c6e3ac108 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchAlarm.java @@ -0,0 +1,82 @@ +package com.zhgd.xmgl.modules.xz.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 安全履职报警信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Data +@TableName("xz_worker_safe_watch_alarm") +@ApiModel(value = "XzWorkerSafeWatchAlarm实体类", description = "XzWorkerSafeWatchAlarm") +public class XzWorkerSafeWatchAlarm implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 履职异常报警ID + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "履职异常报警ID") + private Long id; + /** + * 安全履职规则类型 + */ + @Excel(name = "安全履职规则类型", width = 15) + @ApiModelProperty(value = "安全履职规则类型") + private String type; + /** + * 连续未履职天数 + */ + @Excel(name = "连续未履职天数", width = 15) + @ApiModelProperty(value = "连续未履职天数") + private Integer dayNum; + /** + * 预警提示时间 + */ + @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 Date alarmTime; + /** + * 劳务ID + */ + @ApiModelProperty(value = "劳务ID") + private Long workerId; + /** + * 姓名 + */ + @Excel(name = "姓名", width = 15) + @ApiModelProperty(value = "姓名") + private String workerName; + /** + * 企业名称 + */ + @Excel(name = "企业名称", width = 15) + @ApiModelProperty(value = "企业名称") + private String enterpriseName; + /** + * 班组/部门 + */ + @Excel(name = "班组/部门", width = 15) + @ApiModelProperty(value = "班组/部门") + private String deptName; + /** + * 项目sn + */ + @ApiModelProperty(value = "项目sn") + private String projectSn; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchConfig.java b/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchConfig.java new file mode 100644 index 000000000..4818ccb8a --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchConfig.java @@ -0,0 +1,52 @@ +package com.zhgd.xmgl.modules.xz.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 安全履职配置信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Data +@TableName("xz_worker_safe_watch_config") +@ApiModel(value = "XzWorkerSafeWatchConfig实体类", description = "XzWorkerSafeWatchConfig") +public class XzWorkerSafeWatchConfig implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 安全履职配置id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "安全履职配置id") + private Long id; + /** + * 安全履职规则类型 + */ + @Excel(name = "安全履职规则类型", width = 15) + @ApiModelProperty(value = "安全履职规则类型") + private String type; + /** + * 连续未履职(天数) + */ + @Excel(name = "连续未履职(天数)", width = 15) + @ApiModelProperty(value = "连续未履职(天数)") + private Integer dayNum; + /** + * 项目sn + */ + @Excel(name = "项目sn", width = 15) + @ApiModelProperty(value = "项目sn") + private String projectSn; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchManager.java b/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchManager.java new file mode 100644 index 000000000..b3a7192a1 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/entity/XzWorkerSafeWatchManager.java @@ -0,0 +1,61 @@ +package com.zhgd.xmgl.modules.xz.entity; + +import java.io.Serializable; +import java.util.Date; + +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; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 安全履职报警推送人信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Data +@TableName("xz_worker_safe_watch_manager") +@ApiModel(value = "XzWorkerSafeWatchManager实体类", description = "XzWorkerSafeWatchManager") +public class XzWorkerSafeWatchManager implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 推送人配置ID + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "推送人配置ID") + private Long id; + /** + * 企业ID + */ + @Excel(name = "企业ID", width = 15) + @ApiModelProperty(value = "企业ID") + private Long enterpriseId; + /** + * 人员ID(多个用逗号隔开) + */ + @Excel(name = "人员ID(多个用逗号隔开)", width = 15) + @ApiModelProperty(value = "人员ID(多个用逗号隔开)") + private String userId; + /** + * 监测配置ID + */ + @Excel(name = "监测配置ID", width = 15) + @ApiModelProperty(value = "监测配置ID") + private Long watchConfigId; + + @TableField(exist = false) + @ApiModelProperty(value = "企业名称") + private String enterpriseName; + + @TableField(exist = false) + @ApiModelProperty(value = "人员名称") + private String userName; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchAlarmMapper.java b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchAlarmMapper.java new file mode 100644 index 000000000..d00a96a28 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchAlarmMapper.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.xz.mapper; + +import java.util.List; + +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchAlarm; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 安全履职报警信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Mapper +public interface XzWorkerSafeWatchAlarmMapper extends BaseMapper { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchConfigMapper.java b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchConfigMapper.java new file mode 100644 index 000000000..221946113 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchConfigMapper.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.xz.mapper; + +import java.util.List; + +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 安全履职配置信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Mapper +public interface XzWorkerSafeWatchConfigMapper extends BaseMapper { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchManagerMapper.java b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchManagerMapper.java new file mode 100644 index 000000000..91fd115f3 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/XzWorkerSafeWatchManagerMapper.java @@ -0,0 +1,23 @@ +package com.zhgd.xmgl.modules.xz.mapper; + +import java.util.List; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchManager; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.checkerframework.checker.signedness.qual.Constant; + +/** + * @Description: 安全履职报警推送人信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Mapper +public interface XzWorkerSafeWatchManagerMapper extends BaseMapper { + + List getList(@Param(Constants.WRAPPER) Wrapper wrapper); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchAlarmMapper.xml b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchAlarmMapper.xml new file mode 100644 index 000000000..6aa425372 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchAlarmMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchConfigMapper.xml b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchConfigMapper.xml new file mode 100644 index 000000000..afa0e71df --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchConfigMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchManagerMapper.xml b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchManagerMapper.xml new file mode 100644 index 000000000..d3b7896cd --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/mapper/xml/XzWorkerSafeWatchManagerMapper.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchAlarmService.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchAlarmService.java new file mode 100644 index 000000000..bf7f16e56 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchAlarmService.java @@ -0,0 +1,14 @@ +package com.zhgd.xmgl.modules.xz.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchAlarm; + +/** + * @Description: 安全履职报警信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +public interface IXzWorkerSafeWatchAlarmService extends IService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchConfigService.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchConfigService.java new file mode 100644 index 000000000..0991f0e17 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchConfigService.java @@ -0,0 +1,14 @@ +package com.zhgd.xmgl.modules.xz.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchConfig; + +/** + * @Description: 安全履职配置信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +public interface IXzWorkerSafeWatchConfigService extends IService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchManagerService.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchManagerService.java new file mode 100644 index 000000000..243bb795e --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/IXzWorkerSafeWatchManagerService.java @@ -0,0 +1,20 @@ +package com.zhgd.xmgl.modules.xz.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchConfig; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchManager; + +import java.util.List; + +/** + * @Description: 安全履职报警推送人信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +public interface IXzWorkerSafeWatchManagerService extends IService { + + List getList(Wrapper wrapper); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchAlarmServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchAlarmServiceImpl.java new file mode 100644 index 000000000..8267ccaac --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchAlarmServiceImpl.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.xz.service.impl; + +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchAlarm; +import com.zhgd.xmgl.modules.xz.mapper.XzWorkerSafeWatchAlarmMapper; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchAlarmService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 安全履职报警信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Service +public class XzWorkerSafeWatchAlarmServiceImpl extends ServiceImpl implements IXzWorkerSafeWatchAlarmService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchConfigServiceImpl.java new file mode 100644 index 000000000..3d3d7610a --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchConfigServiceImpl.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.xz.service.impl; + +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchConfig; +import com.zhgd.xmgl.modules.xz.mapper.XzWorkerSafeWatchConfigMapper; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchConfigService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 安全履职配置信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Service +public class XzWorkerSafeWatchConfigServiceImpl extends ServiceImpl implements IXzWorkerSafeWatchConfigService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchManagerServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchManagerServiceImpl.java new file mode 100644 index 000000000..70cee4d4d --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzWorkerSafeWatchManagerServiceImpl.java @@ -0,0 +1,51 @@ +package com.zhgd.xmgl.modules.xz.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; +import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; +import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchManager; +import com.zhgd.xmgl.modules.xz.mapper.XzWorkerSafeWatchManagerMapper; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchManagerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description: 安全履职报警推送人信息 + * @author: pengj + * @date: 2024-05-21 + * @version: V1.0 + */ +@Service +public class XzWorkerSafeWatchManagerServiceImpl extends ServiceImpl implements IXzWorkerSafeWatchManagerService { + + @Autowired + private ISystemUserService systemUserService; + + @Override + public List getList(Wrapper wrapper) { + List list = baseMapper.getList(wrapper); + if (list.size() > 0) { + List userIds = Arrays.asList(list.stream().map(l -> l.getUserId()).collect(Collectors.joining(",")).split(",")); + List systemUserList = systemUserService.listByIds(userIds); + for (XzWorkerSafeWatchManager xzWorkerSafeWatchManager : list) { + List userNames = new ArrayList<>(); + List ids = Arrays.asList(xzWorkerSafeWatchManager.getUserId().split(",")); + for (SystemUser systemUser : systemUserList) { + if (ids.contains(systemUser.getUserId().toString())) { + userNames.add(systemUser.getRealName()); + } + } + xzWorkerSafeWatchManager.setUserName(userNames.stream().collect(Collectors.joining(","))); + } + } + return list; + } +} diff --git a/src/main/java/com/zhgd/xmgl/task/WorkerTask.java b/src/main/java/com/zhgd/xmgl/task/WorkerTask.java index e7518e645..15a4c9ef7 100644 --- a/src/main/java/com/zhgd/xmgl/task/WorkerTask.java +++ b/src/main/java/com/zhgd/xmgl/task/WorkerTask.java @@ -1,8 +1,14 @@ package com.zhgd.xmgl.task; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.xmgl.modules.basicdata.entity.Notice; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.mapper.SystemLogoConfigMapper; import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper; @@ -12,14 +18,22 @@ import com.zhgd.xmgl.modules.project.entity.ProjectExternalSystemService; import com.zhgd.xmgl.modules.project.mapper.ProjectExternalSystemServiceMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService; +import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance; import com.zhgd.xmgl.modules.worker.entity.WorkerBlacklist; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; +import com.zhgd.xmgl.modules.worker.entity.WorkerMonthAttendanceStatistics; import com.zhgd.xmgl.modules.worker.mapper.WorkerBlacklistMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerCertificateMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService; +import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService; import com.zhgd.xmgl.modules.worker.service.IWorkerCertificateService; +import com.zhgd.xmgl.modules.worker.service.IWorkerMonthAttendanceStatisticsService; import com.zhgd.xmgl.modules.xz.entity.XzCertificateExpireAlarmRecord; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchAlarm; +import com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchConfig; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchAlarmService; +import com.zhgd.xmgl.modules.xz.service.IXzWorkerSafeWatchConfigService; import com.zhgd.xmgl.modules.xz.service.impl.XzCertificateExpireAlarmRecordServiceImpl; import com.zhgd.xmgl.util.ElecardUtil; import lombok.extern.slf4j.Slf4j; @@ -31,10 +45,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -76,6 +87,18 @@ public class WorkerTask { @Autowired private XzCertificateExpireAlarmRecordServiceImpl xzCertificateExpireAlarmRecordService; + @Autowired + private IXzWorkerSafeWatchConfigService xzWorkerSafeWatchConfigService; + + @Autowired + private IWorkerMonthAttendanceStatisticsService workerMonthAttendanceStatisticsService; + + @Autowired + private IWorkerAttendanceService workerAttendanceService; + + @Autowired + private IXzWorkerSafeWatchAlarmService xzWorkerSafeWatchAlarmService; + /** * 定时修改用户码状态 */ @@ -232,6 +255,109 @@ public class WorkerTask { addNotice(CollUtil.addAll(list5, list6), "人员的保险信息即将到期", "22"); } + /** + * 对人员未履职情况进行监测,及时反馈预警 + */ +// @SchedulerLock(name = "alarmWorkerBlack", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5) +// @Scheduled(cron = "0 0/1 * * * ?") + @RequestMapping("/workerSafeWatchAlarm") + public void workerSafeWatchAlarm() { + log.info("开始执行对人员未履职情况进行监测"); + List projects = projectMapper.selectList(Wrappers.lambdaQuery().eq(Project::getStatus, 2)); + int day = DateUtil.dayOfMonth(new Date()); + for (Project project : projects) { + if (project.getEnableWorkerSafeWatch() != null && project.getEnableWorkerSafeWatch() == 1) { + if (StringUtils.isNotBlank(project.getWorkerSafeWatchTime()) && + DateUtil.format(new Date(), "HH:ss").equals(project.getWorkerSafeWatchTime())) { + List list = xzWorkerSafeWatchConfigService.list(Wrappers.lambdaQuery() + .eq(XzWorkerSafeWatchConfig::getProjectSn, project.getProjectSn())); + List alarmList = new ArrayList<>(); + List noticeList = new ArrayList<>(); + for (XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig : list) { + String type = xzWorkerSafeWatchConfig.getType(); + Set personSn = new HashSet<>(); + //计算日常考勤规则 + if (xzWorkerSafeWatchConfig.getType().equals("1")) { + DateTime dateTime = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -3)); + Set personSet = workerAttendanceService.list(Wrappers.lambdaQuery().between(WorkerAttendance::getCreateTime + , dateTime, new Date())).stream().map(w -> w.getPersonSn()).collect(Collectors.toSet()); + Set workerSet = workerInfoMapper.selectList(Wrappers.lambdaQuery().eq(WorkerInfo::getPresence, 1)).stream().map(w -> w.getPersonSn()).collect(Collectors.toSet()); + workerSet.removeAll(personSet); + personSn = workerSet; + } + if (xzWorkerSafeWatchConfig.getType().equals("2")) { + + } + if (xzWorkerSafeWatchConfig.getType().equals("3")) { + Integer dayNum = xzWorkerSafeWatchConfig.getDayNum(); + List list1 = workerMonthAttendanceStatisticsService.list(Wrappers. + lambdaQuery().eq(WorkerMonthAttendanceStatistics::getProjectSn, project.getProjectSn()) + .eq(WorkerMonthAttendanceStatistics::getQueryTime, DateUtil.format(new Date(), "yyyy-MM"))); + Integer number = 0; + for (WorkerMonthAttendanceStatistics workerMonthAttendanceStatistics : list1) { + JSONObject obj = JSONObject.parseObject(JSON.toJSONString(workerMonthAttendanceStatistics)); + Iterator iterator = obj.keySet().iterator(); + while (iterator.hasNext()) { + String value = obj.getString(iterator.next()); + if (value.equals("0")) { + number ++ ; + } + if (number >= dayNum) { + personSn.add(workerMonthAttendanceStatistics.getPersonSn()); + break; + } + } + } + } + if (xzWorkerSafeWatchConfig.getType().equals("4")) { + Integer dayNum = xzWorkerSafeWatchConfig.getDayNum(); + List list1 = workerMonthAttendanceStatisticsService.list(Wrappers. + lambdaQuery().eq(WorkerMonthAttendanceStatistics::getProjectSn, project.getProjectSn()) + .eq(WorkerMonthAttendanceStatistics::getQueryTime, DateUtil.format(new Date(), "yyyy-MM"))); + Integer number = 0; + for (WorkerMonthAttendanceStatistics workerMonthAttendanceStatistics : list1) { + JSONObject obj = JSONObject.parseObject(JSON.toJSONString(workerMonthAttendanceStatistics)); + Iterator iterator = obj.keySet().iterator(); + while (iterator.hasNext()) { + String value = obj.getString(iterator.next()); + if (value.equals("2")) { + number ++ ; + } + if (number >= dayNum) { + personSn.add(workerMonthAttendanceStatistics.getPersonSn()); + break; + } + } + } + } + Map requestParam = new HashMap<>(); + requestParam.put("personSns", personSn); + List workerInfoList = workerInfoMapper.selectWorkerInfoList(new Page<>(-1, -1), requestParam); + for (WorkerInfo workerInfo : workerInfoList) { + XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm = new XzWorkerSafeWatchAlarm(); + xzWorkerSafeWatchAlarm.setWorkerId(workerInfo.getId()); + xzWorkerSafeWatchAlarm.setWorkerName(workerInfo.getWorkerName()); + xzWorkerSafeWatchAlarm.setDeptName(workerInfo.getDepartmentName() + workerInfo.getTeamName()); + xzWorkerSafeWatchAlarm.setEnterpriseName(workerInfo.getEnterpriseName()); + xzWorkerSafeWatchAlarm.setAlarmTime(new Date()); + xzWorkerSafeWatchAlarm.setType(type); + alarmList.add(xzWorkerSafeWatchAlarm); + + Notice notice = new Notice(); + notice.setType("35"); + notice.setMsg(""); + notice.setTitle(""); + notice.setIsRead(0); + noticeList.add(notice); + } + } + xzWorkerSafeWatchAlarmService.saveBatch(alarmList); + noticeService.saveBatch(noticeList); + } + } + } + + } /** * 添加通知 *