Files
dzpt/src/main/java/com/saye/hospitalgd/controller/ReceiveDataController.java
2025-07-23 09:55:50 +08:00

181 lines
6.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}