ftp派发

// 派发
    @RequestMapping(value = "/groupRuleUpload")
    public void GroupRuleUpload(@RequestParam("file") CommonsMultipartFile file,
            HttpServletRequest request, HttpServletResponse response) {
        try {
            if (file == null) {
                Helper.StatusResponse(response, "failure", "-1", "派发规则文件不存在");
                return;
            }
            String provinces = request.getParameter("province");
            List<String> listProvinces = new ArrayList<String>();
            Helper.Spliter(provinces, ",", listProvinces);
            if (listProvinces.size() == 0) {
                logger.error("RulesUpload 文件上传失败:province地市参数为空");
                Helper.StatusResponse(response, "failure", "-1", "province地市参数为空");
                return;
            }
            logger.info("upload fileName:" + file.getOriginalFilename());
            // 获取输入流 CommonsMultipartFile 中可以直接得到文件的流
            HashMap<String, List<String>> DeployHistory = new HashMap<String, List<String>>();
            JSONObject obj = new JSONObject();
            Map<String, DeployManagerInfo> results = sysService.QueryDeployManager(listProvinces);
            for (String a : listProvinces) {
                DeployManagerInfo dmi = results.get(a);
                if (dmi == null) {
                    obj.put(a, "规则派发失败,传入省份名称不匹配");
                    //logger.error("RulesUpload " + a + "派发失败,传入省份名称不匹配");
                    continue;
                }
                if (!dmi.getStatus().equals("1")) {
                    obj.put(a, "规则派发失败,该省份未部署");
                    //logger.error("RulesUpload " + a + "派发失败,该省份未部署");
                    continue;
                }
                FtpUtil ftp = new FtpUtil(dmi.getFtp_ip(), Helper.StringToInt(dmi.getFtp_port()), dmi.getFtp_user(),
                        dmi.getFtp_password(), dmi.getFtp_direct());
                if (ftp.CreateFTPConnect() != 0) {
                    //logger.error("RulesUpload " + a + "派发失败,该地区ftp配置不可达:\n" + dmi.toString());
                    obj.put(a, "规则派发失败,该地区ftp配置不可达");
                    continue;
                }
                String res = "";
                InputStream is = file.getInputStream();
                boolean b = ftp.FtpUpload(/*a + "_" + */file.getOriginalFilename(), is);
                if (b == false) {
                    res += file.getOriginalFilename() + "派发失败;";
                } else {
                    res += file.getOriginalFilename() + "派发成功;";
                    List<String> filelist = DeployHistory.get(a);
                    if (filelist == null) {
                        filelist = new ArrayList<String>();
                        DeployHistory.put(a, filelist);
                    }
                    filelist.add(file.getOriginalFilename());
                }

                obj.put(a, res);
                ftp.CloseFtp();
            }
            Helper.JsonResponser(response, obj);
            logger.info("RulesUpload 规则派发结果:\n" + obj.toString());
            for (Entry<String, List<String>> entry : DeployHistory.entrySet()) {
                for (String filename : entry.getValue()) {
                    HistoryRuleDeployInfo hdInfo = new HistoryRuleDeployInfo();
                    hdInfo.setProvince(entry.getKey());
                    hdInfo.setCreate_time(Helper.getDateByFormat(new Date(), "yyyy-MM-dd HH:mm:ss"));
                    hdInfo.setRule_name(filename.replace(".csv", "").replace(".dat", ""));
                    hdInfo.setFile_name(filename);
                    int ret = sysService.InsertHistoryDeployInfo(hdInfo);
                    if (ret != 1) {
                        logger.error("规则派发结果历史入库失败,province=" + entry.getKey() + " filename=" + filename);
                    }
                }
            }
            logger.info("GroupRuleUpload 规则派发结果历史入库完成");
        }catch (Exception e) {
            logger.error("GroupRuleUpload:" + e.getMessage());
        }
    }

 

posted on 2019-08-21 09:27  tanada  阅读(150)  评论(0编辑  收藏  举报