| src/main/java/org/springblade/modules/log/controller/HandlerLogController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/log/entity/HandlerLog.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/log/mapper/HandlerLogMapper.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/log/mapper/HandlerLogMapper.xml | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/log/service/HandlerLogService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/log/service/impl/HandlerLogServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/log/vo/HandlerLogVo.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/quartz/task/Task.java | ●●●●● patch | view | raw | blame | history |
src/main/java/org/springblade/modules/log/controller/HandlerLogController.java
New file @@ -0,0 +1,92 @@ package org.springblade.modules.log.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.log.entity.HandlerLog; import org.springblade.modules.log.service.HandlerLogService; import org.springblade.modules.log.vo.HandlerLogVo; import org.springframework.web.bind.annotation.*; /** * * 操作日志 * @author zhongrj * @time 2022-06-09 */ @RestController @AllArgsConstructor @RequestMapping("/handlerLog") public class HandlerLogController { private final HandlerLogService handlerLogService; /** * 自定义分页 * @param query page,size * @param handlerLog 操作日志对象 * @return */ @GetMapping("/page") public R<IPage<HandlerLogVo>> page(HandlerLogVo handlerLog, Query query) { IPage<HandlerLogVo> pages = handlerLogService.selectHandlerLogPage(Condition.getPage(query), handlerLog); return R.data(pages); } /** * 新增 * @param handlerLog 操作日志对象 */ @PostMapping("/save") @ApiOperation(value = "新增", notes = "传入handlerLog") public R save(@RequestBody HandlerLog handlerLog){ return R.data(handlerLogService.save(handlerLog)); } /** * 修改 * @param handlerLog 操作日志对象 */ @PostMapping("/update") public R update(@RequestBody HandlerLog handlerLog){ return R.status(handlerLogService.updateById(handlerLog)); } /** * 新增或修改 * @param handlerLog 操作日志对象 */ @PostMapping("/submit") public R submit(@RequestBody HandlerLog handlerLog){ return R.data(handlerLogService.saveOrUpdate(handlerLog)); } /** * 删除 * @param ids 操作日志ids 数组 */ @PostMapping("/remove") public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { return R.status(handlerLogService.removeByIds(Func.toLongList(ids))); } /** * 详情 * @param handlerLog 操作日志对象 */ @GetMapping("/detail") @ApiOperation(value = "详情", notes = "传入handlerLog") public R<HandlerLog> detail(HandlerLog handlerLog) { HandlerLog detail = handlerLogService.getOne(Condition.getQueryWrapper(handlerLog)); return R.data(detail); } } src/main/java/org/springblade/modules/log/entity/HandlerLog.java
New file @@ -0,0 +1,68 @@ package org.springblade.modules.log.entity; 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 com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; /** * 操作日志实体类 * @author zhongrj * @time 2022-06-09 */ @Data @TableName("sys_handler_log") public class HandlerLog implements Serializable { private static final long serialVersionUID = 1L; /** * 操作日志主键id */ @TableId(value = "id",type = IdType.AUTO) private Long id; /** * 类型 1:用户新增 2:用户导入 3:培训报名 4:保安员证编号 */ private Integer type; /** * 操作人id */ private String userId; /** * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 操作时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date operatorTime; /** * 说明 */ private String remark; /** * 操作单位 id */ private String deptId; } src/main/java/org/springblade/modules/log/mapper/HandlerLogMapper.java
New file @@ -0,0 +1,26 @@ package org.springblade.modules.log.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import org.springblade.modules.log.entity.HandlerLog; import org.springblade.modules.log.vo.HandlerLogVo; import java.util.List; /** * 操作日志Mapper 接口 * @author zhongrj * @time 2022-06-09 */ public interface HandlerLogMapper extends BaseMapper<HandlerLog> { /** * 自定义分页 * @param page * @param handlerLog 操作日志对象 * @return */ List<HandlerLogVo> selectHandlerLogPage(IPage<HandlerLogVo> page, @Param("handlerLog") HandlerLogVo handlerLog); } src/main/java/org/springblade/modules/log/mapper/HandlerLogMapper.xml
New file @@ -0,0 +1,20 @@ <?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="org.springblade.modules.log.mapper.HandlerLogMapper"> <!--根据deptId查询 操作日志--> <select id="selectHandlerLogPage" resultType="org.springblade.modules.log.vo.HandlerLogVo"> select shl.*,bu.real_name realName,bd.dept_name deptName from sys_handler_log shl left join blade_user bu on bu.id = shl.user_id left join blade_dept bd on shl.dept_id = bd.id where 1=1 <if test="handlerLog.deptName!=null and handlerLog.deptName!''"> bd.dept_name like concat('%',#{handlerLog.deptName},'%') </if> <if test="handlerLog.deptId!=null and handlerLog.deptId!''"> shl.dept_id = #{handlerLog.deptId} </if> order by shl.id desc </select> </mapper> src/main/java/org/springblade/modules/log/service/HandlerLogService.java
New file @@ -0,0 +1,23 @@ package org.springblade.modules.log.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.modules.log.entity.HandlerLog; import org.springblade.modules.log.vo.HandlerLogVo; /** * 操作日志服务类 * @author zhongrj * @time 2022-06-09 */ public interface HandlerLogService extends IService<HandlerLog> { /** * 自定义分页 * @param page * @param handlerLog 操作日志对象 * @return */ IPage<HandlerLogVo> selectHandlerLogPage(IPage<HandlerLogVo> page, HandlerLogVo handlerLog); } src/main/java/org/springblade/modules/log/service/impl/HandlerLogServiceImpl.java
New file @@ -0,0 +1,34 @@ package org.springblade.modules.log.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springblade.modules.log.entity.HandlerLog; import org.springblade.modules.log.mapper.HandlerLogMapper; import org.springblade.modules.log.service.HandlerLogService; import org.springblade.modules.log.vo.HandlerLogVo; import org.springframework.stereotype.Service; import java.util.List; /** * 操作日志实现类 * @author zhongrj * @time 2022-06-09 */ @Service @AllArgsConstructor public class HandlerLogServiceImpl extends ServiceImpl<HandlerLogMapper, HandlerLog> implements HandlerLogService { /** * 自定义分页 * @param page * @param handlerLog 操作日志对象 * @return */ @Override public IPage<HandlerLogVo> selectHandlerLogPage(IPage<HandlerLogVo> page, HandlerLogVo handlerLog) { return page.setRecords(baseMapper.selectHandlerLogPage(page, handlerLog)); } } src/main/java/org/springblade/modules/log/vo/HandlerLogVo.java
New file @@ -0,0 +1,31 @@ package org.springblade.modules.log.vo; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springblade.modules.log.entity.HandlerLog; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; /** * 操作日志vo * @author zhongrj * @time 2022-06-09 */ @Data public class HandlerLogVo extends HandlerLog implements Serializable { /** * 操作人姓名 */ private String realName; /** * 操作人部门名称 */ private String deptName; } src/main/java/org/springblade/modules/quartz/task/Task.java
@@ -2,11 +2,15 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.commons.lang3.StringUtils; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; import org.springblade.common.utils.DesensitizedUtil; import org.springblade.modules.FTP.*; import org.springblade.modules.log.entity.HandlerLog; import org.springblade.modules.log.service.HandlerLogService; import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IUserService; import org.springblade.modules.system.service.MyAsyncService; @@ -20,6 +24,7 @@ import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Array; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -41,6 +46,9 @@ @Autowired private IUserService userService; @Autowired private HandlerLogService handlerLogService; @Autowired private RedisTemplate redisTemplate; @@ -382,10 +390,14 @@ private void userListInfoHandler(Result result) { //获取 result List<Result> data1 = result.getData(); System.out.println("批量导入数据 = " + data1); if (data1.size()>0){ for (Result result1 : data1) { // 取出 Msg ,此 msg 存的对应的 uuid String uuid = result1.getMsg(); //从redis 中获取用户数据 Object o1 = redisTemplate.opsForValue().get(uuid); User user0 = JSON.parseObject(o1.toString(), User.class); // 从redis 中获取对应的用户信息,脱敏处理过 User user = handlerUserInfo(uuid); if (result1.getCode()==200){ @@ -421,9 +433,46 @@ } if (result1.getCode()==202){ //已在其他单位存在 HandlerLog handlerLog = new HandlerLog(); handlerLog.setCreateTime(new Date()); handlerLog.setDeptId(user.getDeptId()); handlerLog.setOperatorTime(user.getCreateTime()); handlerLog.setRemark("用户["+DesensitizedUtil.desensitizedIdNumberBy4(user0.getCardid())+"]已在其他单位存在"); handlerLog.setType(2); //插入记录 handlerLogService.save(handlerLog); } if (result1.getCode()==203){ //保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请! 内网用户已存在情况 user.setId(result.getUserId()); //先查询当前库是否有改用户? User user2 = userService.getById(result.getUserId()); //判断 if (null != user2) { //修改 //数据修改 boolean b = userService.updateById(user); if (b) { //异步同步到群防群控 myAsyncService.updateUserByQfqk(user); } } else { //新增 boolean save = userService.save(user); if (save) { //异步同步到群防群控 myAsyncService.qfqkUserSave(user); } } //保安证编号不匹配 HandlerLog handlerLog = new HandlerLog(); handlerLog.setCreateTime(new Date()); handlerLog.setDeptId(user.getDeptId()); handlerLog.setOperatorTime(user.getCreateTime()); handlerLog.setRemark("用户["+DesensitizedUtil.desensitizedIdNumberBy4(user0.getCardid())+"]保安证编号不匹配,请核实!"); handlerLog.setType(2); //插入记录 handlerLogService.save(handlerLog); } } } @@ -535,7 +584,7 @@ //创建集合,存年龄符合要求 List<String> ageList = new ArrayList<>(); //创建年龄不符合集合 List<String> errorList = new ArrayList<>(); List<User> errorList = new ArrayList<>(); AtomicInteger number = new AtomicInteger(); if (null != result) { //获取 result @@ -555,7 +604,7 @@ //查询用户信息 User user = userService.getById(userId); //加入更新集合 errorList.add(user.getRealName()); errorList.add(user); } } } @@ -605,6 +654,26 @@ } }); } //如果存在年龄不符的,则抛出异常 if (number.get()>0){ String deptId = errorList.get(0).getDeptId(); List<String> arrayList = new ArrayList<>(); errorList.forEach(user -> { arrayList.add(user.getAccount()); }); //已在其他单位存在 HandlerLog handlerLog = new HandlerLog(); handlerLog.setCreateTime(new Date()); handlerLog.setDeptId(deptId); handlerLog.setOperatorTime(new Date()); handlerLog.setType(3); String errorAccount = StringUtils.join(arrayList, "\\\n"); handlerLog.setRemark("保安员:[" + errorAccount + "]报名失败!年龄不符,报名年龄为[18-60]周岁!"); //插入记录 handlerLogService.save(handlerLog); } } } @@ -626,28 +695,7 @@ myAsyncService.FTP(sql); } /** * 用户审查 * @return */ public void userExamine() { System.out.println("用户审查任务发起"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); //查询审查状态为未审查的保安员 User user = new User(); user.setStatus(1); user.setIsDeleted(0); user.setRoleId("1412226235153731586"); //未审查 user.setExaminationType("2"); //查询 List<User> users = userService.list(new QueryWrapper<>(user)); //遍历 if (users.size()>0){ users.forEach(user1 -> { myAsyncService.userExamineFTP(user1); }); } } @@ -658,6 +706,9 @@ */ @Async public void userInfoHandler(String uuid, Result result){ //从redis 中获取用户数据 Object o1 = redisTemplate.opsForValue().get(uuid); User user0 = JSON.parseObject(o1.toString(), User.class); //用户数处理 User users = handlerUserInfo(uuid); if (null!=users) { @@ -703,6 +754,15 @@ //异步同步到群防群控 myAsyncService.qfqkUserSave(users); } //保安证编号不匹配 HandlerLog handlerLog = new HandlerLog(); handlerLog.setCreateTime(new Date()); handlerLog.setDeptId(user0.getDeptId()); handlerLog.setOperatorTime(user0.getCreateTime()); handlerLog.setRemark("用户["+DesensitizedUtil.desensitizedIdNumberBy4(user0.getCardid())+"]保安证编号不匹配,请核实!"); handlerLog.setType(1); //插入记录 handlerLogService.save(handlerLog); } else if (result.getCode() == 204) { //保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请! 内网用户已存在情况 users.setId(result.getUserId()); @@ -725,9 +785,52 @@ myAsyncService.qfqkUserSave(users); } } //保安证编号不匹配 HandlerLog handlerLog = new HandlerLog(); handlerLog.setCreateTime(new Date()); handlerLog.setDeptId(user0.getDeptId()); handlerLog.setOperatorTime(user0.getCreateTime()); handlerLog.setRemark("用户["+DesensitizedUtil.desensitizedIdNumberBy4(user0.getCardid())+"]保安证编号不匹配,请核实!"); handlerLog.setType(1); //插入记录 handlerLogService.save(handlerLog); }else { //已在其他单位存在 HandlerLog handlerLog = new HandlerLog(); handlerLog.setCreateTime(new Date()); handlerLog.setDeptId(user0.getDeptId()); handlerLog.setOperatorTime(user0.getCreateTime()); handlerLog.setRemark("用户["+DesensitizedUtil.desensitizedIdNumberBy4(user0.getCardid())+"]已在其他单位存在"); handlerLog.setType(1); //插入记录 handlerLogService.save(handlerLog); } } } /** * 用户审查 * @return */ public void userExamine() { System.out.println("用户审查任务发起"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); //查询审查状态为未审查的保安员 User user = new User(); user.setStatus(1); user.setIsDeleted(0); user.setRoleId("1412226235153731586"); //未审查 user.setExaminationType("2"); //查询 List<User> users = userService.list(new QueryWrapper<>(user)); //遍历 if (users.size()>0){ users.forEach(user1 -> { myAsyncService.userExamineFTP(user1); }); } } }