CostIncomeFileServiceImpl.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.imed.costaccount.service.impl;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.alibaba.fastjson.JSON;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  8. import com.imed.costaccount.common.util.BeanUtil;
  9. import com.imed.costaccount.common.util.PageUtils;
  10. import com.imed.costaccount.constants.NumberConstant;
  11. import com.imed.costaccount.mapper.CostIncomeFileMapper;
  12. import com.imed.costaccount.model.CostIncomeFile;
  13. import com.imed.costaccount.model.User;
  14. import com.imed.costaccount.model.vo.CostIncomeFileVO;
  15. import com.imed.costaccount.model.vo.IncomeErrorMessage;
  16. import com.imed.costaccount.service.CostIncomeFileService;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.util.CollectionUtils;
  19. import org.springframework.web.multipart.MultipartFile;
  20. import java.util.List;
  21. @Service("costIncomeFileService")
  22. public class CostIncomeFileServiceImpl extends ServiceImpl<CostIncomeFileMapper, CostIncomeFile> implements CostIncomeFileService {
  23. /**
  24. * 保存文件上传记录
  25. * @param list 文件数据
  26. * @param user 当前用户
  27. * @param file 上传文件
  28. * @param hospId 医院Id
  29. * @param incomeErrorMessageList 错误信息
  30. * @param uploadFile 文件路径
  31. * @return
  32. */
  33. @Override
  34. public CostIncomeFile saveCostIncomeFile(List<List<Object>> list, User user, MultipartFile file, Long hospId, List<IncomeErrorMessage> incomeErrorMessageList, String uploadFile,Integer fileType) {
  35. CostIncomeFile costIncomeFile = new CostIncomeFile();
  36. String substring = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."))+System.currentTimeMillis()+".xsl";
  37. costIncomeFile.setFileName(substring);
  38. costIncomeFile.setFileUrl(uploadFile);
  39. costIncomeFile.setTotalAmount(list.size());
  40. if (!CollectionUtils.isEmpty(incomeErrorMessageList)) {
  41. costIncomeFile.setSuccessAmount(NumberConstant.ZERO);
  42. costIncomeFile.setErrorList(JSON.toJSONString(incomeErrorMessageList));
  43. }else {
  44. costIncomeFile.setSuccessAmount(list.size());
  45. }
  46. if (NumberConstant.ONE.equals(fileType)){
  47. costIncomeFile.setFileType("成本分摊参数值");
  48. }else if (NumberConstant.TWO.equals(fileType)){
  49. costIncomeFile.setFileType("收入数据");
  50. }else if (NumberConstant.THREE.equals(fileType)){
  51. costIncomeFile.setFileType("成本数据");
  52. }else {
  53. costIncomeFile.setFileType(file.getContentType());
  54. }
  55. costIncomeFile.setHospId(hospId);
  56. costIncomeFile.setUserName(user.getName());
  57. costIncomeFile.setUserId(user.getId());
  58. costIncomeFile.setCreateTime(System.currentTimeMillis());
  59. this.save(costIncomeFile);
  60. return costIncomeFile;
  61. }
  62. /**
  63. * 分页查询查询记录数据
  64. *
  65. * @param current
  66. * @param pageSize
  67. * @param name
  68. * @param hospId
  69. * @return
  70. */
  71. @Override
  72. public PageUtils queryList(Integer current, Integer pageSize, String name, Long hospId) {
  73. Page<CostIncomeFile> costIncomeFilePage = new Page<>(current, pageSize);
  74. Page<CostIncomeFile> page = this.page(costIncomeFilePage, new QueryWrapper<CostIncomeFile>().lambda()
  75. .eq(CostIncomeFile::getHospId, hospId).like(StrUtil.isNotBlank(name), CostIncomeFile::getFileName, name));
  76. List<CostIncomeFile> records = page.getRecords();
  77. List<CostIncomeFileVO> costIncomeFileVOList = BeanUtil.convertList(records, CostIncomeFileVO.class);
  78. costIncomeFileVOList.forEach(i->{
  79. String errorList = i.getErrorList();
  80. if (StrUtil.isNotBlank(errorList)){
  81. i.setErrStatus(NumberConstant.ONE);
  82. }
  83. i.setDateTime(DateUtil.format(DateUtil.date(i.getCreateTime()),"yyyy-MM-dd"));
  84. });
  85. PageUtils pageUtils = new PageUtils(page);
  86. pageUtils.setList(costIncomeFileVOList);
  87. return pageUtils;
  88. }
  89. }