181 lines
6.4 KiB
Java
181 lines
6.4 KiB
Java
|
|
package com.saye.hospitalgd.controller;
|
|||
|
|
|
|||
|
|
|
|||
|
|
import com.saye.hospitalgd.commons.date.DateDUtil;
|
|||
|
|
import com.saye.hospitalgd.service.BankbillsHistoryService;
|
|||
|
|
import com.saye.hospitalgd.service.HisbillsHistoryService;
|
|||
|
|
import com.saye.hospitalgd.service.HisbillsOriginalService;
|
|||
|
|
import com.saye.hospitalgd.util.CSVUtils;
|
|||
|
|
import lombok.extern.slf4j.Slf4j;
|
|||
|
|
import org.apache.commons.lang3.StringUtils;
|
|||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
|
import org.springframework.stereotype.Controller;
|
|||
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|||
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|||
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|||
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|||
|
|
import org.springframework.web.multipart.MultipartFile;
|
|||
|
|
|
|||
|
|
import java.io.IOException;
|
|||
|
|
import java.io.InputStream;
|
|||
|
|
import java.text.ParseException;
|
|||
|
|
import java.text.SimpleDateFormat;
|
|||
|
|
import java.util.*;
|
|||
|
|
import java.util.regex.Pattern;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Created with IntelliJ IDEA.
|
|||
|
|
*
|
|||
|
|
* @author: Mr.zs
|
|||
|
|
* @date: 2022/12/2
|
|||
|
|
* @description:
|
|||
|
|
* @modifiedBy:
|
|||
|
|
* @version: 1.0
|
|||
|
|
*/
|
|||
|
|
@Slf4j
|
|||
|
|
@Controller
|
|||
|
|
@RequestMapping("/receiveData")
|
|||
|
|
public class ReceiveDataController {
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private BankbillsHistoryService bankbillsHistoryService;
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private HisbillsHistoryService hisbillsHistoryService;
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private HisbillsOriginalService hisbillsOriginalService;
|
|||
|
|
|
|||
|
|
// @Autowired
|
|||
|
|
// private HisInterfaceCountService hisInterfaceCountService;
|
|||
|
|
|
|||
|
|
@PostMapping("/receiveHisData")
|
|||
|
|
@ResponseBody
|
|||
|
|
public Map<Object, Object> receiveHisData(@RequestBody HashMap<Object, Object> hisbillsOriginal) {
|
|||
|
|
|
|||
|
|
log.info("接收到数据:" + hisbillsOriginal);
|
|||
|
|
|
|||
|
|
Map<Object, Object> responseMap = new HashMap<>();
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
//保存一份最初的
|
|||
|
|
hisbillsOriginalService.saveHisOriginalData(hisbillsOriginal);
|
|||
|
|
|
|||
|
|
//保存一份历史的
|
|||
|
|
hisbillsHistoryService.saveHisHistoryData(hisbillsOriginal);
|
|||
|
|
|
|||
|
|
log.info("his数据保存完毕");
|
|||
|
|
|
|||
|
|
|
|||
|
|
// //查看数据库今日接口统计是否记录
|
|||
|
|
// int i = hisInterfaceCountService.searchToday();
|
|||
|
|
// if (i > 0) {
|
|||
|
|
// hisInterfaceCountService.updateConut();
|
|||
|
|
// } else {
|
|||
|
|
// hisInterfaceCountService.insertCount();
|
|||
|
|
// }
|
|||
|
|
responseMap.put("code", 0);
|
|||
|
|
responseMap.put("msg", "OK");
|
|||
|
|
//记录接口调用情况
|
|||
|
|
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
log.error("his数据保存失败,原因:" + e.getMessage());
|
|||
|
|
responseMap.put("code", 999);
|
|||
|
|
responseMap.put("msg", e.getMessage());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return responseMap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@PostMapping("/receiveBankData")
|
|||
|
|
@ResponseBody
|
|||
|
|
public Map<Object, Object> receiveHisData(@RequestBody MultipartFile spareFile) {
|
|||
|
|
String errCode = "0";
|
|||
|
|
String errMsg = "";
|
|||
|
|
List<HashMap<Object, Object>> savList = new ArrayList<>();
|
|||
|
|
//校验文件名是否正确
|
|||
|
|
String fileName = spareFile.getOriginalFilename();
|
|||
|
|
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
|
|||
|
|
|
|||
|
|
String substring = fileName.substring(0, 8);
|
|||
|
|
boolean matches = pattern.matcher(substring).matches();
|
|||
|
|
log.info("match is :" + matches);
|
|||
|
|
if (matches) {
|
|||
|
|
log.info("切割出来的字符串是" + substring);
|
|||
|
|
String year = substring.substring(0, 4);
|
|||
|
|
String month = substring.substring(4, 6);
|
|||
|
|
String day = substring.substring(6, 8);
|
|||
|
|
String rq = year + "-" + month + "-" + day;
|
|||
|
|
log.info("日期是: " + rq);
|
|||
|
|
} else {
|
|||
|
|
errCode = "999";
|
|||
|
|
errMsg = "文件名不合法";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (!spareFile.isEmpty()) {
|
|||
|
|
|
|||
|
|
List<String[]> list = null;
|
|||
|
|
try {
|
|||
|
|
InputStream inputStream = spareFile.getInputStream();
|
|||
|
|
list = CSVUtils.getCsvData(inputStream);
|
|||
|
|
} catch (IOException e) {
|
|||
|
|
errCode = "999";
|
|||
|
|
errMsg = "获取文件失败";
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (list.size() != 0) {
|
|||
|
|
|
|||
|
|
for (int i = 5; i < list.size() - 2; i++) {
|
|||
|
|
String[] s = list.get(i);
|
|||
|
|
//遍历去除读取文件时字段前面读取的等号
|
|||
|
|
for (int i1 = 0; i1 < s.length; i1++) {
|
|||
|
|
if (s[i1].contains("=")) {
|
|||
|
|
s[i1] = StringUtils.substringAfter(s[i1], "=");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (s[i1].contains("\"")) {
|
|||
|
|
s[i1] = s[i1].replace("\"", "");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
HashMap<Object, Object> resultMap = new HashMap<>();
|
|||
|
|
resultMap.put("I_ZDBH", s[1]);
|
|||
|
|
resultMap.put("I_DSFZFMC", s[2]);
|
|||
|
|
resultMap.put("I_JYLX", s[3]);
|
|||
|
|
resultMap.put("I_DSFDDH", s[4]);
|
|||
|
|
resultMap.put("I_ZFFS", s[5]);
|
|||
|
|
resultMap.put("I_SPMC", s[6]);
|
|||
|
|
resultMap.put("I_DDJE", s[7]);
|
|||
|
|
resultMap.put("I_JYSJ", s[8]);
|
|||
|
|
String[] s1 = s[8].split(" ");
|
|||
|
|
resultMap.put("I_JYRQ", s1[0]);
|
|||
|
|
resultMap.put("I_HBZL", s[9]);
|
|||
|
|
resultMap.put("I_XFJE", s[10]);
|
|||
|
|
resultMap.put("I_THJE", s[11]);
|
|||
|
|
resultMap.put("I_GHDDH", s[12]);
|
|||
|
|
resultMap.put("I_WBDDH", s[13]);
|
|||
|
|
resultMap.put("I_XFSXFJE", s[14]);
|
|||
|
|
resultMap.put("I_THSXFJE", s[15]);
|
|||
|
|
resultMap.put("I_RZJE", s[16]);
|
|||
|
|
resultMap.put("I_FKYH", s[18]);
|
|||
|
|
resultMap.put("I_YHBS", s[19]);
|
|||
|
|
savList.add(resultMap);
|
|||
|
|
// log.info("接收到的数据是: " + resultMap);
|
|||
|
|
}
|
|||
|
|
// int i = bankbillsHistoryService.saveOriginalData(savList);
|
|||
|
|
// int o = bankbillsHistoryService.saveHistoryData(savList);
|
|||
|
|
} else {
|
|||
|
|
errCode = "999";
|
|||
|
|
errMsg = "读取失败";
|
|||
|
|
}
|
|||
|
|
// log.info("接收到数据:" + spareFile.getOriginalFilename());
|
|||
|
|
}
|
|||
|
|
Map<Object, Object> responseMap = new HashMap<>();
|
|||
|
|
responseMap.put("errCode", errCode);
|
|||
|
|
responseMap.put("errMsg", errMsg);
|
|||
|
|
return responseMap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|