// 派发
@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());
}
}