【2018/3/21】获取上传json文件
这个聪明的家伙吧
全部回复
仅看楼主
level 11
/**
* 转扣结果导入 上传解析
*
* @return
*/
@RequestMapping("resultPost")
@ResponseBody
public String resultPost(HttpServletRequest request, @RequestParam("file") CommonsMultipartFile[] files) {
String error = "调用了PaymentFileController.resultPost【转扣结果导入】方法";
UUserMas uUserMas = (UUserMas) request.getSession().getAttribute(UserConstant.SESSION_LOGIN_UUSERMAS);
logger.info(error+"操作人:"+uUserMas.getWorkCode());
String result = "";
List<Map<String, Object>> list = null;
FileOutputStream os = null;
InputStream in = null;
InputStream ins = null;
for (int i = 0; i < files.length; i++) {
if (!files[i].isEmpty()) {
try {
String fileName = files[i].getOriginalFilename();
String type = fileName.substring(fileName.lastIndexOf("."));
String docPath = FilePathConstant.getFilePathGroupByMonth(FilePathConstant.PAY_FILE_UP_DOC_PATH);
// 拿到输出流,同时重命名上传的文件
os = new FileOutputStream(docPath + System.currentTimeMillis() + type);
// 拿到上传文件的输入流
in = files[i].getInputStream();
// 拿到上传文件的输入流
ins = files[i].getInputStream();
// 以写字节的方式写文件
int b = 0;
while ((b = in.read()) != -1) {
os.write(b);
}
os.flush();
//从inputstream中获取上传内容信息
StringWriter writer = new StringWriter();
IOUtils.copy(ins, writer, "UTF-8");
String uploadContent = writer.toString();
if(StringUtils.isEmpty(uploadContent)){
throw new Exception("上传文件为空!");
}
//替换全部的换行为逗号
uploadContent = uploadContent.replaceAll("\r\n", ",");
//将字符串变成json格式
uploadContent = "[" + uploadContent + "]";
list = JsonUtil.toObject(uploadContent, new ObjectTypeToken<List<Map<String, Object>>>(){});
if(list != null && !list.isEmpty()){
result = iPayService.upOLPayFileResultPost(list,uUserMas.getWorkCode());
}
} catch (Exception e) {
logger.error(error + "异常!参数{}", e);
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
logger.error("error",e);
}
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
logger.error("error",e);
}
}
if (ins != null) {
try {
ins.close();
} catch (IOException e) {
logger.error("error",e);
}
}
}
}
}
return result;
}
2018年03月21日 07点03分 1
level 11
//上传解析文档
function docPost() {
var applCode = $.trim($("#applCode").val());
var certNo = $.trim($("#certNo").val());
var custName = $.trim($("#custName").val());
var fileType = $.trim($("#fileType").val());
if(applCode == '' || fileType == ''){
alert("申请编号及文档类型不可为空!");
return false;
}
var video_src_file = $("#file").val();
if (video_src_file == "") {
alert("请选择文件!");
return false;
}
// var fileTypes = new Array("xls", "xlsx"); //定义可支持的文件类型数组
// var fileTypeFlag = "0";
// var newFileName = video_src_file.split('.');
// newFileName = newFileName[newFileName.length - 1];
// for (var i = 0; i < fileTypes.length; i++) {
// if (fileTypes[i] == newFileName) {
// fileTypeFlag = "1";
// }
// }
// if (fileTypeFlag == "0") {
// alert("文档类型不支持,只允许xls,xlsx文档格式!");
// return false;
// }
//提到后台
$.ajaxFileUpload({
url : 'docPost.do?applCode='+applCode+'&certNo='+certNo+'&custName='+custName+'&fileType='+fileType,
type : 'post',
secureuri : false, //一般设置为false
fileElementId : 'file', // 上传文件的id、name属性名
dataType : 'json', //返回值类型,一般设置为json、application/json
success : function(data, status) {
if(data != null){
if ("SUCC" == data.RESULT) {
alert("提交操作成功");
} else {
alert("提交操作失败!"+data.MSG);
}
}else{
alert("提交操作失败!");
}
},
error : function(data, status, e) {
alert(e);
}
});
}
2018年03月21日 08点03分 2
level 11
/**
* 文档上传
*
* @return
*/
@RequestMapping("docPost")
@ResponseBody
public String docPost(HttpServletRequest request, @RequestParam("file") CommonsMultipartFile[] files,String applCode,
String certNo,String custName,String fileType) {
String error = "调用了DocumentController.docPost【文档上传】方法";
UUserMas uUserMas = (UUserMas) request.getSession().getAttribute(UserConstant.SESSION_LOGIN_UUSERMAS);
logger.info(error+"操作人:"+uUserMas.getWorkCode());
String result = "";
InputStream ins = null;
for (int i = 0; i < files.length; i++) {
if (!files[i].isEmpty()) {
try {
String fileName = files[i].getOriginalFilename();
// 拿到上传文件的输入流
ins = files[i].getInputStream();
//放入文档bean中
FileTransfer fileTransfer = new FileTransfer();
fileTransfer.setFileName(fileName); //文件名称
fileTransfer.setDocType(fileType);//文档类型
fileTransfer.setRefId1(applCode);//申请编号
fileTransfer.setRefId2(certNo);//证件号
fileTransfer.setRefId3(custName);//姓名
fileTransfer.setUploadUser(uUserMas.getWorkCode());//上传人
//读写文档内容
StringWriter writer = new StringWriter();
IOUtils.copy(ins, writer, "ISO-8859-1");
String uploadContent = writer.toString();
fileTransfer.setFileContext(uploadContent);// 文档内容
if(fileTransfer != null){
result = DocUtil.tansferFile(fileTransfer); // 文档上传测试
}
} catch (Exception e) {
logger.error(error + "异常!参数{}", e);
} finally {
if (ins != null) {
try {
ins.close();
} catch (IOException e) {
logger.error("error",e);
}
}
}
}
}
return result;
}
2018年03月21日 08点03分 3
level 11
String transferUrl = http://xxx.xxx.xxx/transfer.do;
public static String tansferFile(FileTransfer fileTransfer) {
try {
return HttpUtil.post(transferUrl, JsonUtil.toJson(fileTransfer));
} catch (Exception e) {
}
return null;
}
@RequestMapping(value = "/transfer", method = RequestMethod.POST)
@ResponseBody
public String fileTransfer(HttpServletRequest request) {
Map<String, String> map = new HashMap<>();
InputStreamReader reader;
try {
reader = new InputStreamReader(request.getInputStream(), "utf-8");
Writer writer = new StringWriter();
char[] chars = new char[1024];
int len = 0;
while ((len = reader.read(chars)) != -1) {
writer.write(chars, 0, len);
}
JsonObject jsonObject = JsonUtil.toJsonObject(writer.toString());
String fileName = jsonObject.get("fileName").getAsString();
String docType = jsonObject.get("docType").getAsString();
String refId1 = jsonObject.get("refId1").getAsString();
String refId2 = jsonObject.get("refId2").getAsString();
String refId3 = jsonObject.get("refId3").getAsString();
String uploadUser = jsonObject.get("uploadUser").getAsString();
String fileContext = jsonObject.get("fileContext").getAsString();
String charset = jsonObject.get("charset") == null ? "" : jsonObject.get("charset").getAsString();
if (fileName == null || "".equals(fileName) || docType == null || "".equals(docType) || fileContext == null
|| "".equals(fileContext) || refId1 == null || "".equals(refId1)) {
map.put("RESULT", "FAIL");
map.put("MSG", "必须参数不足");
return JsonUtil.toJson(map);
}
if (!SysParameters.DOC_TYPE.containsKey(docType)) {
map.put("RESULT", "FAIL");
map.put("MSG", "文档类型不支持");
return JsonUtil.toJson(map);
}
Document document = new Document();
document.setDocCode(UUID.randomUUID().toString().replaceAll("-", ""));
document.setOrgName(fileName.substring(0, fileName.lastIndexOf(".")));
document.setDocType(docType);
document.setRefId1(refId1);
document.setRefId2(refId2);
document.setRefId3(refId3);
document.setUploadUser(uploadUser);
document.setUploadTime(new Date());
document.setStatus("Y");
document.setDocSuffix(fileName.substring(fileName.lastIndexOf(".") + 1));
document.setStoreNode(DocUtils.getRandomStoreNodeForWrite());
document.setFileName(DocUtils.genFileName(document));
int saveLog = iDocumentSrv.addDocument(document);
if (saveLog == 1) {
if (charset != null && !"".equals(charset)) {
try {
fileContext = new String(fileContext.getBytes(charset), SysParameters.ENCODING);
} catch (UnsupportedEncodingException e) {
logger.error("字符编码转换失败[{}]..", document.getDocCode(), e);
}
}
DocUtils.saveToNode(document, fileContext, null);
map.put("RESULT", "SUCC");
map.put("MSG", "上传成功");
map.put("DOCCODE", document.getDocCode());
return JsonUtil.toJson(map);
} else {
map.put("RESULT", "FAIL");
map.put("MSG", "上传失败");
return JsonUtil.toJson(map);
}
} catch (IOException e1) {
map.put("RESULT", "FAIL");
map.put("MSG", "参数读取失败");
return JsonUtil.toJson(map);
}
}
2018年03月21日 08点03分 4
level 11
//正常提交
/**
* 批量导入AP自动扣款 提交
*
* @return
*/
@Auth("ACCOUNT:BATCHIMPORTAP")
@RequestMapping("batchAddPlanPost")
@ResponseBody
public String batchAddPlanPost(HttpServletRequest request, HttpServletResponse response, String planList) {
String error = "调用了ApAccountController.batchAddPlanPost【批量导入AP自动扣款 提交】方法";
logger.info(error);
Map<String,String> resMap = new HashMap<>();
try {
// List<AApPlanMas> list = JSON.parseArray(planList, AApPlanMas.class);
List<AApPlanMas> list = JsonUtil.toObject(planList, new ObjectTypeToken<List<AApPlanMas>>() {
});
UUserMas uUserMas = (UUserMas) request.getSession().getAttribute(UserConstant.SESSION_LOGIN_UUSERMAS);
Date sysDate = new Date();
// 插入到数据库
if (list != null && list.size() > 0) {
int successful = 0;
int unsuccessful = 0;
StringBuilder sb = new StringBuilder();
Iterator<AApPlanMas> iterator = list.iterator();
while (iterator.hasNext()) {
AApPlanMas next = iterator.next();
if("合计".equals(next.getAcctNo())){
continue;
}
//查询扣款日期是否为工作日
if(null != next.getCutoffDate()){
Req01_030 req01_030 = new Req01_030();
req01_030.setHolidayArea("PUB");
req01_030.setHolidayDate(next.getCutoffDate());
req01_030.setI(0);
Map<String, String> map = iPubHolidayService.getWorkDay(uUserMas.getWorkCode(), req01_030);
if (map.get("RESULT").equals("SUCC")) {
if(DateUtils.parseDate(map.get("DATA").substring(1,11)).compareTo(DateUtils.parseDateToDate(next.getCutoffDate()))!=0){
iterator.remove();
unsuccessful++;
sb.append(next.getAcctNo());
sb.append(", ");
continue;
}
}else{
iterator.remove();
unsuccessful++;
sb.append(next.getAcctNo());
sb.append(", ");
continue;
}
}
ALoanMas aLoanMas = iApAccountService.queryALoanMasById(next.getAcctNo(),uUserMas.getWorkCode());
if (null == aLoanMas) {
iterator.remove();
unsuccessful++;
sb.append(next.getAcctNo());
sb.append(", ");
continue;
}
if ("ES".equals(aLoanMas.getAcctStatus()) || "SL".equals(aLoanMas.getAcctStatus())
|| "WO".equals(aLoanMas.getAcctStatus()) || "RS".equals(aLoanMas.getAcctStatus()) ) {
iterator.remove();
unsuccessful++;
sb.append(next.getAcctNo());
sb.append(", ");
continue;
}
if (-1 == org.apache.commons.lang.time.DateUtils.truncatedCompareTo(next.getCutoffDate(), sysDate,
Calendar.DAY_OF_MONTH) || StringUtils.isEmpty(next.getCityCode())) {
iterator.remove();
unsuccessful++;
sb.append(next.getAcctNo());
sb.append(", ");
continue;
}
int rs = iApAccountService.queryApPlanByStatus(next.getAcctNo(),uUserMas.getWorkCode());
if (rs > 0) {
iterator.remove();
unsuccessful++;
sb.append(next.getAcctNo());
sb.append(", ");
continue;
}
next.setCreator(uUserMas.getWorkCode());
next.setStatus("0");
next.setPayCate("NL");
successful++;
}
resMap.put("fail", Integer.toString(unsuccessful));
if (sb.length() > 0)
resMap.put("failAcctNo", sb.substring(0, sb.lastIndexOf(",")));
else
resMap.put("failAcctNo", "");
resMap.put("succ", Integer.toString(successful));
boolean flg = iApAccountService.addBatchApImport(list,uUserMas.getWorkCode());
if(flg){
resMap.put("code", "1");
}else{
resMap.put("code", "-1");
}
}
} catch (Exception e) {
logger.error(error + "异常!参数{}", e);
}
return JsonUtil.toJson(resMap);
}
2018年04月20日 01点04分 7
level 1
请问您会json文件导入R语言吗
2019年04月09日 23点04分 8
1