智慧保安后台管理-外网
Administrator
2022-06-08 68656aa409a46995c9949c580cc3ed150755b2bc
ftp 个人保安新增修改
3 files modified
276 ■■■■■ changed files
src/main/java/org/springblade/modules/FTP/DataHandler.java 114 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/Monitor.java 40 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/UserController.java 122 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/DataHandler.java
@@ -90,119 +90,23 @@
    }
    /**
     * 数据处理(用户单个新增)
     * 数据处理
     * @param json json 字符串
     * @param uuid 随机字符串
     * @return
     */
    public static Result handler(String json, String uuid){
        //读取数据
        List<String> list = Arrays.asList(json.split(";"));
        for (String s : list) {
            Map map = JSON.parseObject(s, Map.class);
            //获取结果
            Object o = map.get(uuid);
            if (null== o || o.equals("")){
                return new Result(400,null,"uuid 不匹配",null);
            }
        Map map = JSON.parseObject(json, Map.class);
        //获取结果
        Object o = map.get(uuid);
        if (null== o || o.equals("")){
            return new Result(400,null,"uuid 不匹配",null);
        }else {
            //转换
            Result result = JSON.parseObject(o.toString(), Result.class);
            System.out.println("解析结果result = " + result);
            //判断结果
            if (result.getCode()==200){
                //新增
                //用户数处理
                User user = handlerUserInfo(uuid);
                user.setId(result.getUserId());
                user.setStatus(1);
                //插入数据库
//                boolean save = handler.userService.insert(user);
                boolean save = handler.userService.save(user);
                if (save){
                    //异步同步到群防群控
                    handler.myAsyncService.qfqkUserSave(user);
                    //返回
                    return new Result(200,null,"新增成功",null);
                }else {
                    return new Result(205,null,"新增失败",null);
                }
            }else if (result.getCode()==201) {
                //修改
                //用户数处理
                User user = handlerUserInfo(uuid);
                user.setId(result.getUserId());
                //先查询当前库是否有改用户?
                User user1 = handler.userService.getById(result.getUserId());
                if (null!=user1) {
                    //数据修改
                    boolean b = handler.userService.updateById(user);
                    if (b) {
                        //异步同步到群防群控
                        handler.myAsyncService.updateUserByQfqk(user);
                        //返回
                        return new Result(200, null, "修改成功", null);
                    } else {
                        return new Result(205, null, "修改失败", null);
                    }
                }else {
                    //新增
                    boolean save = handler.userService.save(user);
                    if (save){
                        //异步同步到群防群控
                        handler.myAsyncService.qfqkUserSave(user);
                        //返回
                        return new Result(200,null,"新增成功",null);
                    }else {
                        return new Result(205,null,"新增失败",null);
                    }
                }
            }else if (result.getCode()==203){
                //新增
                //用户数处理
                User user = handlerUserInfo(uuid);
                user.setId(result.getUserId());
                //插入数据库
                boolean save = handler.userService.save(user);
                if (save) {
                    //异步同步到群防群控
                    handler.myAsyncService.qfqkUserSave(user);
                }
                //失败,返回保安员证编号校验失败消息
                return new Result(203,null,result.getMsg(),null);
            }else if (result.getCode()==204){
                //先查询当前库是否有改用户?
                User user1 = handler.userService.getById(result.getUserId());
                //用户数处理
                User user = handlerUserInfo(uuid);
                user.setId(result.getUserId());
                if (null!=user1) {
                    //修改
                    //数据修改
                    boolean b = handler.userService.updateById(user);
                    if (b){
                        //异步同步到群防群控
                        handler.myAsyncService.updateUserByQfqk(user);
                    }
                }else {
                    //新增
                    boolean save = handler.userService.save(user);
                    if (save){
                        //异步同步到群防群控
                        handler.myAsyncService.qfqkUserSave(user);
                        //返回
                        return new Result(200,null,"新增成功",null);
                    }else {
                        return new Result(205,null,"新增失败",null);
                    }
                }
                //失败,返回保安员证编号校验失败消息
                return new Result(202,null,result.getMsg(),null);
            }else {
                //失败,返回失败消息
                return new Result(202,null,result.getMsg(),null);
            }
            //返回
            return result;
        }
        return new Result(400,null,"未能找到对应数据",null);
    }
    /**
src/main/java/org/springblade/modules/FTP/Monitor.java
@@ -68,51 +68,35 @@
            if (files.length==0){
                return new Result(400,null,"未读取到文件",null);
            } else {
                boolean flag = false;
                for (FTPFile file : files){
                    String fileName = file.getName();
                    if (fileName.contains("ni")){
                        System.out.println("-------接收到内网回传的文件: " + fileName);
                        //把文件下载到本地
                        //把文件下载到本地
                        FtpUtil.downloadFtpFile(ftpHost, ftpUserNameIn, ftpPasswordIn, ftpPort, ftpPath, localPath, fileName);
                        // 解析数据
                        String s = OutJson.TestJson(fileName);
                        //数据处理
                        Result result = DataHandler.handler(s,uuid);
                        if (result.getCode()==400){
                            System.out.println("uuid 不匹配");
//                            return new Result(400,null,"uuid 不匹配",null);
                            break;
                        }else {
                        //匹配上了删除文件
                        if (result.getCode()==200) {
                            flag = true;
                            //删除本地文件
                            MysqlCenlint.deletess(fileName);
//                        ftp.dele(fileName);
                            //删除 ftp 文件
                            FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserNameIn, ftpPasswordIn, ftpPath, fileName);
//                            ftp.dele(fileName);
                            ftp.completePendingCommand();
                            ftp.logout();
                            if (result.getCode() == 200) {
                                //返回
                                return new Result(200, null, "新增成功", null);
                            }
                            if (result.getCode() == 201) {
                                //返回
                                return new Result(201, null, "修改成功", null);
                            }
                            if (result.getCode() == 202) {
                                //返回
                                return new Result(202, null, result.getMsg(), null);
                            }
                            if (result.getCode() == 203) {
                                //返回
                                return new Result(203, null, result.getMsg(), null);
                            }
                            if (result.getCode() == 205) {
                                //返回
                                return new Result(202, null, "新增失败,找不到该用户", null);
                            }
                            //返回
                            return result;
                        }
                    }
                }
                System.out.println("未读取到对应的文件");
                if (!flag){
                    ftp.logout();
                }
                return new Result(400,null,"未读取到对应的文件",null);
            }
        } catch (Exception e) {
src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -33,6 +33,7 @@
import lombok.AllArgsConstructor;
import net.sf.json.JSONObject;
import org.apache.commons.codec.Charsets;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.cache.DictCache;
import org.springblade.common.config.FtpConfig;
import org.springblade.common.enums.DictEnum;
@@ -107,11 +108,13 @@
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import static org.springblade.common.config.FtpConfig.*;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
import static org.springblade.modules.FTP.DataHandler.handlerUserInfo;
/**
 * 控制器
@@ -1629,16 +1632,6 @@
            result = Monitor.isFTPFileExist(uuid);
            //如果返回true,就退处
            if (result.getCode()==200){
                flag = 1;
                break;
            }else if (result.getCode()==201){
                flag = 2;
                break;
            }else if (result.getCode()==202){
                flag = 3;
                break;
            }else if (result.getCode()==203){
                flag = 4;
                break;
            }else{
                //计数
@@ -1649,18 +1642,109 @@
                }
            }
        }
        if (flag==1 || flag==2) {
            //返回
            return R.data(200, null, "新增成功!");
        }else if (flag==3){
            throw new ServiceException(result.getMsg());
        }else if (flag==4){
        //将不能导入的保安员账号存起来
        List<String> errorList = new ArrayList<>();
        //保安员证编号不符的保安员信息存入集合
        List<String> securityInvalidList = new ArrayList<>();
        //导入状态,默认为true ,如果有一个出现问题则为 false
        AtomicBoolean status = new AtomicBoolean(true);
        AtomicBoolean securityInvalidStatus = new AtomicBoolean(true);
        if (null!=result){
            //用户数处理
            User users = handlerUserInfo(uuid);
            //判断结果
            if (result.getCode()==200){
                //新增
                users.setId(result.getUserId());
                users.setStatus(1);
                //插入数据库
                boolean save = userService.save(users);
                if (save){
                    //异步同步到群防群控
                    myAsyncService.qfqkUserSave(users);
                }
            }else if (result.getCode()==201) {
                //修改
                users.setId(result.getUserId());
                //先查询当前库是否有改用户?
                User user2 = userService.getById(result.getUserId());
                if (null!=user2) {
                    //数据修改
                    boolean b = userService.updateById(users);
                    if (b) {
                        //异步同步到群防群控
                        myAsyncService.updateUserByQfqk(user);
                    }
                }else {
                    //新增
                    boolean save = userService.save(users);
                    if (save){
                        //异步同步到群防群控
                        myAsyncService.qfqkUserSave(users);
                    }
                }
            }else if (result.getCode()==203){
                //保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请! 用户为新增
                //新增
                users.setId(result.getUserId());
                //插入数据库
                boolean save = userService.save(users);
                if (save) {
                    //异步同步到群防群控
                    myAsyncService.qfqkUserSave(users);
                }
                securityInvalidStatus.set(false);
                //保安证编号不匹配
                securityInvalidList.add(user.getCardid());
            }else if (result.getCode()==204){
                //保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请! 内网用户已存在情况
                users.setId(result.getUserId());
                //先查询当前库是否有改用户?
                User user2 = userService.getById(result.getUserId());
                //判断
                if (null!=user2) {
                    //修改
                    //数据修改
                    boolean b = userService.updateById(users);
                    if (b){
                        //异步同步到群防群控
                        myAsyncService.updateUserByQfqk(users);
                    }
                }else {
                    //新增
                    boolean save = userService.save(users);
                    if (save){
                        //异步同步到群防群控
                        myAsyncService.qfqkUserSave(users);
                    }
                }
                securityInvalidStatus.set(false);
                //保安证编号不匹配
                securityInvalidList.add(user.getCardid());
            }else {
                status.set(false);
                //已在其他单位存在
                errorList.add(user.getCardid());
            }
        }
        //如果所有数据导入有一个异常
        StringBuilder errorBuilder = new StringBuilder();
        if (!status.get()){
            String errorAccount = StringUtils.join(errorList, "\\\n");
            errorBuilder.append("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
        }
        //抛出异常
        if (errorBuilder.length()>0){
            throw new org.springblade.core.log.exception.ServiceException(errorBuilder.toString());
        }
        if (!securityInvalidStatus.get()){
//            return R.data(201, null, "保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!");
            return R.data(201, null, "保安证编号不匹配,请核实!");
        }else{
            //返回
            return R.data(400, null, "新增失败!");
        }
        return R.data(200, null, "新增成功!");
    }
    /**