|
|
|
@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
import java.sql.*;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
@ -122,7 +123,56 @@ public class RcvBasicServiceImpl implements IRcvBasicService {
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<RcvBasicVO> findAll() {
|
|
|
|
|
return RcvBasicConvert.INSTANCE.convertVO(iRcvBasicDao.findAll());
|
|
|
|
|
List<RcvBasic> rcvBasicVOList = new ArrayList<>();
|
|
|
|
|
//查询所有数据
|
|
|
|
|
// SQL Server连接信息
|
|
|
|
|
String url = "jdbc:sqlserver://10.1.1.21:1433;databaseName=trasen;encrypt=false;useUnicode=true;characterEncoding=utf-8";
|
|
|
|
|
String username = "SZJK";
|
|
|
|
|
String password = "SZJK";
|
|
|
|
|
// SQL语句
|
|
|
|
|
String selectQuery = "SELECT * FROM V_sz_cybrxx";
|
|
|
|
|
try {
|
|
|
|
|
// 1. 加载SQL Server JDBC驱动
|
|
|
|
|
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
|
|
|
|
|
|
|
|
|
|
// 2. 建立数据库连接
|
|
|
|
|
Connection connection = DriverManager.getConnection(url, username, password);
|
|
|
|
|
|
|
|
|
|
// 3. 创建Statement对象用于执行SQL语句
|
|
|
|
|
Statement statement = connection.createStatement();
|
|
|
|
|
|
|
|
|
|
// 4. 执行查询操作
|
|
|
|
|
ResultSet resultSet = statement.executeQuery(selectQuery);
|
|
|
|
|
|
|
|
|
|
// 5. 处理查询结果并映射到RcvBasicVO对象
|
|
|
|
|
while (resultSet.next()) {
|
|
|
|
|
RcvBasic rcvBasic = new RcvBasic();
|
|
|
|
|
rcvBasic.setPatientId(resultSet.getString("病案号"));
|
|
|
|
|
rcvBasic.setAdmissTimes(resultSet.getInt("住院次数"));
|
|
|
|
|
rcvBasic.setAdmissDate(resultSet.getDate("住院日期"));
|
|
|
|
|
rcvBasic.setName(resultSet.getString("姓名"));
|
|
|
|
|
String sex = resultSet.getString("性别");
|
|
|
|
|
if (sex.equals("1")){
|
|
|
|
|
rcvBasic.setName("男");
|
|
|
|
|
}
|
|
|
|
|
if (sex.equals("2")){
|
|
|
|
|
rcvBasic.setName("女");
|
|
|
|
|
}
|
|
|
|
|
rcvBasic.setBedNumber(resultSet.getString("床位号"));
|
|
|
|
|
rcvBasic.setRevoveryUser(resultSet.getString("责任人"));
|
|
|
|
|
rcvBasic.setOutNum(resultSet.getString("已出院天数"));
|
|
|
|
|
rcvBasicVOList.add(rcvBasic);
|
|
|
|
|
}
|
|
|
|
|
// 6. 关闭资源
|
|
|
|
|
resultSet.close();
|
|
|
|
|
statement.close();
|
|
|
|
|
connection.close();
|
|
|
|
|
} catch (ClassNotFoundException e) {
|
|
|
|
|
System.err.println("无法加载SQL Server JDBC驱动: " + e.getMessage());
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
System.err.println("数据库操作失败: " + e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
return RcvBasicConvert.INSTANCE.convertVO(rcvBasicVOList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -174,7 +224,6 @@ public class RcvBasicServiceImpl implements IRcvBasicService {
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public boolean add(AddRcvBasicDTO addRcvBasicDTO) {
|
|
|
|
|
RcvBasic rcvBasic = RcvBasicConvert.INSTANCE.convertDO(addRcvBasicDTO);
|
|
|
|
|
rcvBasic.setId(idService.getDateSeq());
|
|
|
|
|
return iRcvBasicDao.add(rcvBasic);
|
|
|
|
|
|
|
|
|
|
// String name = addRcvBasicDTO.getName();
|
|
|
|
@ -204,9 +253,7 @@ public class RcvBasicServiceImpl implements IRcvBasicService {
|
|
|
|
|
|
|
|
|
|
List<RcvBasic> rcvBasicList = RcvBasicConvert.INSTANCE.convertAddDOList(addRcvBasicDTOList);
|
|
|
|
|
|
|
|
|
|
rcvBasicList.forEach(p -> {
|
|
|
|
|
p.setId(idService.getDateSeq());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return iRcvBasicDao.saveBatch(rcvBasicList, IBaseDao.DEFAULT_BATCH_SIZE);
|
|
|
|
|
}
|
|
|
|
@ -276,7 +323,6 @@ public class RcvBasicServiceImpl implements IRcvBasicService {
|
|
|
|
|
rcvBasics.forEach(p -> {
|
|
|
|
|
p.setRecoveryState(RecoveryStateEnum.RECYCLED_ALREADY);
|
|
|
|
|
p.setRevoveryUser(ApiRequestContext.get().getUserId());
|
|
|
|
|
p.setRevoveryTime(DateUtil.now());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return iRcvBasicDao.updateBatchById(rcvBasics, IBaseDao.DEFAULT_BATCH_SIZE);
|
|
|
|
@ -360,7 +406,6 @@ public class RcvBasicServiceImpl implements IRcvBasicService {
|
|
|
|
|
|
|
|
|
|
List<RcvBasic> insert = RcvBasicConvert.INSTANCE.convertAddDOList(insertDataList);
|
|
|
|
|
insert.forEach(p -> {
|
|
|
|
|
p.setId(idService.getDateSeq());
|
|
|
|
|
p.setRecoveryState(RecoveryStateEnum.RECYCLED_WAITING);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
@ -391,18 +436,6 @@ public class RcvBasicServiceImpl implements IRcvBasicService {
|
|
|
|
|
|
|
|
|
|
List<RcvBasic> rcvBasicList = iRcvBasicDao.findBy("serialNumber", snList);
|
|
|
|
|
|
|
|
|
|
Map<String, List<RcvBasic>> stringListMap = ListUtils.groupBy(rcvBasicList, RcvBasic::getSerialNumber);
|
|
|
|
|
|
|
|
|
|
for (AddRcvBasicDTO modelDto : list) {
|
|
|
|
|
// 存在,进行更新
|
|
|
|
|
if (medicalImportExcelValidator.isDataBaseExistsAndChangePatientId(modelDto, stringListMap)) {
|
|
|
|
|
updateDataList.add(modelDto);
|
|
|
|
|
} else {
|
|
|
|
|
// 不存在,进行新增
|
|
|
|
|
insertDataList.add(modelDto);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 将新增和更新数据按照对应key返回
|
|
|
|
|
Map<String, List<AddRcvBasicDTO>> separateInsertAndUpdateMap = new HashMap<>();
|
|
|
|
|