package com.ruoyi.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.domain.*; import com.ruoyi.domain.ZTravelBase; import com.ruoyi.domain.ZTravelBase; import com.ruoyi.domain.ZTravelBase; import com.ruoyi.mapper.ZTravelBaseMapper; import com.ruoyi.service.ZTravelBaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; /** *

* 旅行记录基本信息表 服务实现类 *

* * @author ojq * @since 2023-03-14 */ @Service public class ZTravelBaseServiceImpl extends ServiceImpl implements ZTravelBaseService { @Autowired ZTravelBaseService zTravelBaseService; @Override public AjaxResult selectDataList(String fid, ZTravelBase zTravelBase, Integer pageNum, Integer pageSize) { LambdaQueryWrapper lqw = buildCondition(zTravelBase, fid); Page pageBean = new Page<>(pageNum, pageSize); Page pageResult = page(pageBean, lqw); List beanRecords = pageResult.getRecords();//得到查询出来的数据 HashMap data = MapUtils.getResult(pageResult, beanRecords); return AjaxResult.success(data); } @Override public List selectByIds(Long[] ids) { List list = new ArrayList<>(); if(ids.length!=0) list = listByIds(Arrays.asList(ids)); else list = list(); return list; } @Override public AjaxResult mySave(ZTravelBase zTravelBase) { //检查是否有重复数据插入 LambdaQueryWrapper lqw = uniqueCondition(zTravelBase); List list = list(lqw); if(list.size()>0){ throw new RuntimeException("请勿新增重复数据"); } if (save(zTravelBase)) { return AjaxResult.success(); }else { return AjaxResult.error(); } } @Override public AjaxResult importExcel(MultipartFile file) { ExcelUtil util = new ExcelUtil<>(ZTravelBase.class); List dataList = null; try { dataList = util.importExcel(file.getInputStream()); } catch (Exception e) { throw new RuntimeException("没有按照规则导入数据"); } assert dataList != null; for (ZTravelBase zTravelBase : dataList) { zTravelBaseService.mySave(zTravelBase); } return AjaxResult.success(); } private LambdaQueryWrapper uniqueCondition(ZTravelBase zTravelBase) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(zTravelBase.getFeeId()!=null,ZTravelBase::getFeeId,zTravelBase.getFeeId()) .eq(StringUtils.isNotEmpty(zTravelBase.getAddress()),ZTravelBase::getAddress,zTravelBase.getAddress()) .eq(StringUtils.isNotEmpty(zTravelBase.getPeople()),ZTravelBase::getPeople,zTravelBase.getPeople()) .eq(StringUtils.isNotEmpty(zTravelBase.getTitle()),ZTravelBase::getTitle,zTravelBase.getTitle()) .eq(StringUtils.isNotEmpty(zTravelBase.getTravelPeriod()),ZTravelBase::getTravelPeriod,zTravelBase.getTravelPeriod()) .eq(StringUtils.isNotEmpty(zTravelBase.getCertificate()),ZTravelBase::getCertificate,zTravelBase.getCertificate()) .eq(StringUtils.isNotEmpty(zTravelBase.getRemark()),ZTravelBase::getRemark,zTravelBase.getRemark()) .eq(zTravelBase.getTotalPrice()!=null,ZTravelBase::getTotalPrice,zTravelBase.getTotalPrice()) .eq(zTravelBase.getSelf()!=null,ZTravelBase::getSelf,zTravelBase.getSelf()); return lqw; } private LambdaQueryWrapper buildCondition(ZTravelBase zTravelBase, String fid) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(ZTravelBase::getFeeId,fid) .between(zTravelBase.getHappenStartTime()!=null && zTravelBase.getHappenEndTime()!=null,ZTravelBase::getHappenTime,zTravelBase.getHappenStartTime(),zTravelBase.getHappenEndTime()) .like(StringUtils.isNotEmpty(zTravelBase.getAddress()),ZTravelBase::getAddress,zTravelBase.getAddress()) .like(StringUtils.isNotEmpty(zTravelBase.getPeople()),ZTravelBase::getPeople,zTravelBase.getPeople()) .eq(zTravelBase.getTotalPrice()!=null,ZTravelBase::getTotalPrice,zTravelBase.getTotalPrice()) .like(StringUtils.isNotEmpty(zTravelBase.getTravelPeriod()),ZTravelBase::getTravelPeriod,zTravelBase.getTravelPeriod()) .like(StringUtils.isNotEmpty(zTravelBase.getCertificate()),ZTravelBase::getCertificate,zTravelBase.getCertificate()) .eq(zTravelBase.getSelf()!=null,ZTravelBase::getSelf,zTravelBase.getSelf()) .like(StringUtils.isNotEmpty(zTravelBase.getRemark()),ZTravelBase::getRemark,zTravelBase.getRemark()) .like(StringUtils.isNotEmpty(zTravelBase.getTitle()),ZTravelBase::getTitle,zTravelBase.getTitle()); lqw.orderByDesc(ZTravelBase::getCreateTime); return lqw; } }