|
@@ -5,11 +5,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.imed.costaccount.common.exception.CostException;
|
|
import com.imed.costaccount.common.exception.CostException;
|
|
-import com.imed.costaccount.common.util.BeanUtil;
|
|
|
|
-import com.imed.costaccount.common.util.DateUtils;
|
|
|
|
-import com.imed.costaccount.common.util.PageUtils;
|
|
|
|
-import com.imed.costaccount.common.util.Result;
|
|
|
|
|
|
+import com.imed.costaccount.common.util.*;
|
|
import com.imed.costaccount.constants.NumberConstant;
|
|
import com.imed.costaccount.constants.NumberConstant;
|
|
|
|
+import com.imed.costaccount.enums.ErrorCodeEnum;
|
|
import com.imed.costaccount.mapper.CostIncomeGroupMapper;
|
|
import com.imed.costaccount.mapper.CostIncomeGroupMapper;
|
|
import com.imed.costaccount.model.*;
|
|
import com.imed.costaccount.model.*;
|
|
import com.imed.costaccount.model.vo.CostIncomeGroupAllAmountVO;
|
|
import com.imed.costaccount.model.vo.CostIncomeGroupAllAmountVO;
|
|
@@ -17,11 +15,15 @@ import com.imed.costaccount.model.vo.CostIncomeGroupBeforeVO;
|
|
import com.imed.costaccount.model.vo.IncomeErrorMessage;
|
|
import com.imed.costaccount.model.vo.IncomeErrorMessage;
|
|
import com.imed.costaccount.service.*;
|
|
import com.imed.costaccount.service.*;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.io.IOException;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -30,6 +32,12 @@ import java.util.stream.Collectors;
|
|
@Service("costIncomeGroupService")
|
|
@Service("costIncomeGroupService")
|
|
public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMapper, CostIncomeGroup> implements CostIncomeGroupService {
|
|
public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMapper, CostIncomeGroup> implements CostIncomeGroupService {
|
|
|
|
|
|
|
|
+ @Value("${file.serverPath}")
|
|
|
|
+ private String fileTempPath;
|
|
|
|
+
|
|
|
|
+ @Value("${file.serverUrl}")
|
|
|
|
+ private String FILE_PATH;
|
|
|
|
+
|
|
private final DepartmentService departmentService;
|
|
private final DepartmentService departmentService;
|
|
|
|
|
|
private final ResponsibilityService responsibilityService;
|
|
private final ResponsibilityService responsibilityService;
|
|
@@ -105,11 +113,12 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
|
|
*
|
|
*
|
|
* @param list 输入的文件
|
|
* @param list 输入的文件
|
|
* @param hospId 医院Id
|
|
* @param hospId 医院Id
|
|
|
|
+ * @param file
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
- public Result importIncomeGroup(List<List<Object>> list, Long hospId) {
|
|
|
|
|
|
+ public Result importIncomeGroup(List<List<Object>> list, Long hospId, MultipartFile file) {
|
|
// 移除前几行的抬头内容 list的大小对应的就是行数的大小
|
|
// 移除前几行的抬头内容 list的大小对应的就是行数的大小
|
|
for (int i = list.size() - 1; i >= 0; i--) {
|
|
for (int i = list.size() - 1; i >= 0; i--) {
|
|
if (i == NumberConstant.ZERO || i == NumberConstant.ONE || i == NumberConstant.TWO || i == NumberConstant.THREE) {
|
|
if (i == NumberConstant.ZERO || i == NumberConstant.ONE || i == NumberConstant.TWO || i == NumberConstant.THREE) {
|
|
@@ -140,7 +149,8 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(incomeErrorMessageList)) {
|
|
if (!CollectionUtils.isEmpty(incomeErrorMessageList)) {
|
|
// 说明存在错误数据
|
|
// 说明存在错误数据
|
|
- // TODO 不讲数据保存在收入归集表里面 直将信息保存在提交记录里面
|
|
|
|
|
|
+ // TODO 不把数据保存在收入归集表里面 直将信息保存在提交记录里面
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
// 实现数据的存储
|
|
// 实现数据的存储
|
|
for (int i = 0; i < list.size(); i++) {
|
|
for (int i = 0; i < list.size(); i++) {
|
|
@@ -152,9 +162,12 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
|
|
String openDepartmentCode = data.get(3).toString();
|
|
String openDepartmentCode = data.get(3).toString();
|
|
String startDepartmentCode = data.get(5).toString();
|
|
String startDepartmentCode = data.get(5).toString();
|
|
String beforeMoney = data.get(6).toString();
|
|
String beforeMoney = data.get(6).toString();
|
|
-// if ()
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ String uploadFile = uploadFile(file, UserContext.getCurrentUser());
|
|
|
|
+ if (StrUtil.isNotBlank(uploadFile)){
|
|
|
|
+ // 文件上传成功 将文件记录保存
|
|
|
|
+ }
|
|
return Result.ok();
|
|
return Result.ok();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -292,7 +305,24 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
|
|
});
|
|
});
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
- * 收入数据导入
|
|
|
|
|
|
+ * 文件上传
|
|
*/
|
|
*/
|
|
-
|
|
|
|
|
|
+ public String uploadFile(MultipartFile file, User user) {
|
|
|
|
+ Long hospId = user.getHospId();
|
|
|
|
+ String fileName = file.getOriginalFilename();
|
|
|
|
+ String localFilePath = fileTempPath + StrUtil.SLASH + hospId + StrUtil.SLASH;
|
|
|
|
+ File tempFile = new File(localFilePath);
|
|
|
|
+ if (!tempFile.exists()) {
|
|
|
|
+ tempFile.mkdirs();
|
|
|
|
+ }
|
|
|
|
+ localFilePath = localFilePath + fileName;
|
|
|
|
+ try {
|
|
|
|
+ file.transferTo(new File(localFilePath));
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ log.error("【文件上传至本地】失败,绝对路径:{}", e.getMessage());
|
|
|
|
+ throw new CostException(ErrorCodeEnum.FILE_UPLOAD_ERROR);
|
|
|
|
+ } finally {
|
|
|
|
+ }
|
|
|
|
+ return FILE_PATH + hospId + StrUtil.SLASH + fileName;
|
|
|
|
+ }
|
|
}
|
|
}
|