安全履职

This commit is contained in:
pengjie 2024-05-22 01:36:11 +08:00
parent adfc45d882
commit b1fa6060c4
21 changed files with 1125 additions and 4 deletions

View File

@ -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;
/**

View File

@ -69,6 +69,12 @@
#{item}
</foreach>
</if>
<if test="param.personSns != null and param.personSns.size() != 0">
and a.person_sn in
<foreach collection="param.personSns" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.presence == '1'.toString()">
and wap.id is not null
</if>

View File

@ -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<IPage<XzWorkerSafeWatchAlarm>> queryPageList(@ApiIgnore @RequestBody Map<String, Object> map) {
QueryWrapper<XzWorkerSafeWatchAlarm> queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchAlarm.class, map);
Page<XzWorkerSafeWatchAlarm> page = PageUtil.getPage(map);
IPage<XzWorkerSafeWatchAlarm> 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<List<XzWorkerSafeWatchAlarm>> queryList(@RequestBody XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm) {
QueryWrapper<XzWorkerSafeWatchAlarm> queryWrapper = QueryGenerator.initQueryWrapper(xzWorkerSafeWatchAlarm);
List<XzWorkerSafeWatchAlarm> 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<Object> add(@RequestBody XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm) {
Result<XzWorkerSafeWatchAlarm> result = new Result<XzWorkerSafeWatchAlarm>();
xzWorkerSafeWatchAlarmService.save(xzWorkerSafeWatchAlarm);
return Result.success("添加成功!");
}
/**
* 编辑
*
* @param xzWorkerSafeWatchAlarm
* @return
*/
@OperLog(operModul = "安全履职报警信息管理", operType = "修改", operDesc = "编辑安全履职报警信息信息")
@ApiOperation(value = "编辑安全履职报警信息信息", notes = "编辑安全履职报警信息信息", httpMethod = "POST")
@PostMapping(value = "/edit")
public Result<XzWorkerSafeWatchAlarm> edit(@RequestBody XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm) {
Result<XzWorkerSafeWatchAlarm> result = new Result<XzWorkerSafeWatchAlarm>();
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<XzWorkerSafeWatchAlarm> delete(@RequestBody XzWorkerSafeWatchAlarm xzWorkerSafeWatchAlarm) {
Result<XzWorkerSafeWatchAlarm> result = new Result<XzWorkerSafeWatchAlarm>();
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<XzWorkerSafeWatchAlarm> deleteBatch(@ApiIgnore @RequestBody Map<String, Object> map) {
Result<XzWorkerSafeWatchAlarm> result = new Result<XzWorkerSafeWatchAlarm>();
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<XzWorkerSafeWatchAlarm> queryById(@ApiIgnore @RequestBody Map<String, Object> map) {
Result<XzWorkerSafeWatchAlarm> result = new Result<XzWorkerSafeWatchAlarm>();
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<String, Object> map) {
// Step.1 组装查询条件
QueryWrapper<XzWorkerSafeWatchAlarm> queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchAlarm.class, map);
IPage<XzWorkerSafeWatchAlarm> 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;
}
}

View File

@ -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<IPage<XzWorkerSafeWatchConfig>> queryPageList(@ApiIgnore @RequestBody Map<String, Object> map) {
QueryWrapper<XzWorkerSafeWatchConfig> queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchConfig.class, map);
Page<XzWorkerSafeWatchConfig> page = PageUtil.getPage(map);
IPage<XzWorkerSafeWatchConfig> 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<List<XzWorkerSafeWatchConfig>> queryList(@RequestBody XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig) {
QueryWrapper<XzWorkerSafeWatchConfig> queryWrapper = QueryGenerator.initQueryWrapper(xzWorkerSafeWatchConfig);
List<XzWorkerSafeWatchConfig> 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<Object> add(@RequestBody XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig) {
Result<XzWorkerSafeWatchConfig> result = new Result<XzWorkerSafeWatchConfig>();
xzWorkerSafeWatchConfigService.save(xzWorkerSafeWatchConfig);
return Result.success("添加成功!");
}
/**
* 编辑
*
* @param xzWorkerSafeWatchConfig
* @return
*/
@OperLog(operModul = "安全履职配置信息管理", operType = "修改", operDesc = "编辑安全履职配置信息信息")
@ApiOperation(value = "编辑安全履职配置信息信息", notes = "编辑安全履职配置信息信息", httpMethod = "POST")
@PostMapping(value = "/edit")
public Result<XzWorkerSafeWatchConfig> edit(@RequestBody XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig) {
Result<XzWorkerSafeWatchConfig> result = new Result<XzWorkerSafeWatchConfig>();
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<XzWorkerSafeWatchConfig> delete(@RequestBody XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig) {
Result<XzWorkerSafeWatchConfig> result = new Result<XzWorkerSafeWatchConfig>();
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<XzWorkerSafeWatchConfig> queryById(@ApiIgnore @RequestBody Map<String, Object> map) {
Result<XzWorkerSafeWatchConfig> result = new Result<XzWorkerSafeWatchConfig>();
XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig = xzWorkerSafeWatchConfigService.getById(MapUtils.getString(map, "id"));
if (xzWorkerSafeWatchConfig == null) {
result.error500("未找到对应实体");
} else {
result.setResult(xzWorkerSafeWatchConfig);
result.setSuccess(true);
}
return result;
}
}

View File

@ -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<List<XzWorkerSafeWatchManager>> queryList(@RequestBody XzWorkerSafeWatchManager xzWorkerSafeWatchManager) {
QueryWrapper<XzWorkerSafeWatchManager> queryWrapper = QueryGenerator.initQueryWrapper(xzWorkerSafeWatchManager);
List<XzWorkerSafeWatchManager> 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<Object> add(@RequestBody XzWorkerSafeWatchManager xzWorkerSafeWatchManager) {
Result<XzWorkerSafeWatchManager> result = new Result<XzWorkerSafeWatchManager>();
xzWorkerSafeWatchManagerService.save(xzWorkerSafeWatchManager);
return Result.success("添加成功!");
}
/**
* 编辑
*
* @param xzWorkerSafeWatchManager
* @return
*/
@OperLog(operModul = "安全履职报警推送人信息管理", operType = "修改", operDesc = "编辑安全履职报警推送人信息信息")
@ApiOperation(value = "编辑安全履职报警推送人信息信息", notes = "编辑安全履职报警推送人信息信息", httpMethod = "POST")
@PostMapping(value = "/edit")
public Result<XzWorkerSafeWatchManager> edit(@RequestBody XzWorkerSafeWatchManager xzWorkerSafeWatchManager) {
Result<XzWorkerSafeWatchManager> result = new Result<XzWorkerSafeWatchManager>();
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<XzWorkerSafeWatchManager> delete(@RequestBody XzWorkerSafeWatchManager xzWorkerSafeWatchManager) {
Result<XzWorkerSafeWatchManager> result = new Result<XzWorkerSafeWatchManager>();
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<XzWorkerSafeWatchManager> queryById(@ApiIgnore @RequestBody Map<String, Object> map) {
Result<XzWorkerSafeWatchManager> result = new Result<XzWorkerSafeWatchManager>();
XzWorkerSafeWatchManager xzWorkerSafeWatchManager = xzWorkerSafeWatchManagerService.getById(MapUtils.getString(map, "id"));
if (xzWorkerSafeWatchManager == null) {
result.error500("未找到对应实体");
} else {
result.setResult(xzWorkerSafeWatchManager);
result.setSuccess(true);
}
return result;
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<XzWorkerSafeWatchAlarm> {
}

View File

@ -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<XzWorkerSafeWatchConfig> {
}

View File

@ -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<XzWorkerSafeWatchManager> {
List<XzWorkerSafeWatchManager> getList(@Param(Constants.WRAPPER) Wrapper<XzWorkerSafeWatchManager> wrapper);
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.xz.mapper.XzWorkerSafeWatchAlarmMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.xz.mapper.XzWorkerSafeWatchConfigMapper">
</mapper>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.xz.mapper.XzWorkerSafeWatchManagerMapper">
<select id="getList" resultType="com.zhgd.xmgl.modules.xz.entity.XzWorkerSafeWatchManager">
select x.*, e.enterprise_name from xz_worker_safe_watch_manager x left join enterprise_info e on x.enterprise_id = e.id
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -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<XzWorkerSafeWatchAlarm> {
}

View File

@ -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<XzWorkerSafeWatchConfig> {
}

View File

@ -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<XzWorkerSafeWatchManager> {
List<XzWorkerSafeWatchManager> getList(Wrapper<XzWorkerSafeWatchManager> wrapper);
}

View File

@ -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<XzWorkerSafeWatchAlarmMapper, XzWorkerSafeWatchAlarm> implements IXzWorkerSafeWatchAlarmService {
}

View File

@ -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<XzWorkerSafeWatchConfigMapper, XzWorkerSafeWatchConfig> implements IXzWorkerSafeWatchConfigService {
}

View File

@ -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<XzWorkerSafeWatchManagerMapper, XzWorkerSafeWatchManager> implements IXzWorkerSafeWatchManagerService {
@Autowired
private ISystemUserService systemUserService;
@Override
public List<XzWorkerSafeWatchManager> getList(Wrapper<XzWorkerSafeWatchManager> wrapper) {
List<XzWorkerSafeWatchManager> list = baseMapper.getList(wrapper);
if (list.size() > 0) {
List<String> userIds = Arrays.asList(list.stream().map(l -> l.getUserId()).collect(Collectors.joining(",")).split(","));
List<SystemUser> systemUserList = systemUserService.listByIds(userIds);
for (XzWorkerSafeWatchManager xzWorkerSafeWatchManager : list) {
List<String> userNames = new ArrayList<>();
List<String> 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;
}
}

View File

@ -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<Project> projects = projectMapper.selectList(Wrappers.<Project>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<XzWorkerSafeWatchConfig> list = xzWorkerSafeWatchConfigService.list(Wrappers.<XzWorkerSafeWatchConfig>lambdaQuery()
.eq(XzWorkerSafeWatchConfig::getProjectSn, project.getProjectSn()));
List<XzWorkerSafeWatchAlarm> alarmList = new ArrayList<>();
List<Notice> noticeList = new ArrayList<>();
for (XzWorkerSafeWatchConfig xzWorkerSafeWatchConfig : list) {
String type = xzWorkerSafeWatchConfig.getType();
Set<String> personSn = new HashSet<>();
//计算日常考勤规则
if (xzWorkerSafeWatchConfig.getType().equals("1")) {
DateTime dateTime = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -3));
Set<String> personSet = workerAttendanceService.list(Wrappers.<WorkerAttendance>lambdaQuery().between(WorkerAttendance::getCreateTime
, dateTime, new Date())).stream().map(w -> w.getPersonSn()).collect(Collectors.toSet());
Set<String> workerSet = workerInfoMapper.selectList(Wrappers.<WorkerInfo>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<WorkerMonthAttendanceStatistics> list1 = workerMonthAttendanceStatisticsService.list(Wrappers.<WorkerMonthAttendanceStatistics>
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<String> 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<WorkerMonthAttendanceStatistics> list1 = workerMonthAttendanceStatisticsService.list(Wrappers.<WorkerMonthAttendanceStatistics>
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<String> 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<String, Object> requestParam = new HashMap<>();
requestParam.put("personSns", personSn);
List<WorkerInfo> 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);
}
}
}
}
/**
* 添加通知
*