package com.imed.costaccount.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.imed.costaccount.common.util.BeanUtil; import com.imed.costaccount.common.util.PageUtils; import com.imed.costaccount.constants.NumberConstant; import com.imed.costaccount.mapper.CostIncomeFileMapper; import com.imed.costaccount.model.CostIncomeFile; import com.imed.costaccount.model.User; import com.imed.costaccount.model.vo.CostIncomeFileVO; import com.imed.costaccount.model.vo.IncomeErrorMessage; import com.imed.costaccount.service.CostIncomeFileService; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import java.util.List; @Service("costIncomeFileService") public class CostIncomeFileServiceImpl extends ServiceImpl implements CostIncomeFileService { /** * 保存文件上传记录 * @param list 文件数据 * @param user 当前用户 * @param file 上传文件 * @param hospId 医院Id * @param incomeErrorMessageList 错误信息 * @param uploadFile 文件路径 * @return */ @Override public CostIncomeFile saveCostIncomeFile(List> list, User user, MultipartFile file, Long hospId, List incomeErrorMessageList, String uploadFile,Integer fileType) { CostIncomeFile costIncomeFile = new CostIncomeFile(); String substring = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."))+System.currentTimeMillis()+".xsl"; costIncomeFile.setFileName(substring); costIncomeFile.setFileUrl(uploadFile); costIncomeFile.setTotalAmount(list.size()); if (!CollectionUtils.isEmpty(incomeErrorMessageList)) { costIncomeFile.setSuccessAmount(NumberConstant.ZERO); costIncomeFile.setErrorList(JSON.toJSONString(incomeErrorMessageList)); }else { costIncomeFile.setSuccessAmount(list.size()); } if (NumberConstant.ONE.equals(fileType)){ costIncomeFile.setFileType("成本分摊参数值"); }else if (NumberConstant.TWO.equals(fileType)){ costIncomeFile.setFileType("收入数据"); }else if (NumberConstant.THREE.equals(fileType)){ costIncomeFile.setFileType("成本数据"); }else { costIncomeFile.setFileType(file.getContentType()); } costIncomeFile.setHospId(hospId); costIncomeFile.setUserName(user.getName()); costIncomeFile.setUserId(user.getId()); costIncomeFile.setCreateTime(System.currentTimeMillis()); this.save(costIncomeFile); return costIncomeFile; } /** * 分页查询查询记录数据 * * @param current * @param pageSize * @param name * @param hospId * @return */ @Override public PageUtils queryList(Integer current, Integer pageSize, String name, Long hospId) { Page costIncomeFilePage = new Page<>(current, pageSize); Page page = this.page(costIncomeFilePage, new QueryWrapper().lambda() .eq(CostIncomeFile::getHospId, hospId).like(StrUtil.isNotBlank(name), CostIncomeFile::getFileName, name)); List records = page.getRecords(); List costIncomeFileVOList = BeanUtil.convertList(records, CostIncomeFileVO.class); costIncomeFileVOList.forEach(i->{ String errorList = i.getErrorList(); if (StrUtil.isNotBlank(errorList)){ i.setErrStatus(NumberConstant.ONE); } i.setDateTime(DateUtil.format(DateUtil.date(i.getCreateTime()),"yyyy-MM-dd")); }); PageUtils pageUtils = new PageUtils(page); pageUtils.setList(costIncomeFileVOList); return pageUtils; } }