InvSourceServiceImpl.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.ydtech.modules.inv.service.impl;
  2. import cn.hutool.core.date.DateTime;
  3. import com.alibaba.fastjson.JSON;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import com.ydtech.core.page.HttpResult;
  8. import com.ydtech.modules.admin.model.SysUser;
  9. import com.ydtech.modules.base.controller.BaseController;
  10. import com.ydtech.modules.inv.dao.InvSourceMapper;
  11. import com.ydtech.modules.inv.model.excel.InvSourceExcel;
  12. import com.ydtech.modules.inv.model.po.InvSource;
  13. import com.ydtech.modules.inv.service.InvSourceService;
  14. import com.ydtech.modules.inv.utils.EasyExcelUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.beans.factory.annotation.Value;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import java.util.List;
  20. /**
  21. * @author Administrator
  22. * @description 针对表【inv_source(来源表)】的数据库操作Service实现
  23. * @createDate 2024-01-20 10:28:34
  24. */
  25. @Service
  26. public class InvSourceServiceImpl extends ServiceImpl<InvSourceMapper, InvSource>
  27. implements InvSourceService {
  28. @Value("${upload.file.path}")
  29. String uploadFilePath;
  30. @Autowired
  31. InvSourceService invSourceService;
  32. @Override
  33. public HttpResult readExcel(String file) {
  34. List<InvSourceExcel> invSourceExcels = EasyExcelUtils.readInvSourceExcel(uploadFilePath + file, InvSourceExcel.class);
  35. List<InvSource> invSources = JSON.parseArray(JSONArray.toJSONString(invSourceExcels), InvSource.class);
  36. SysUser user = BaseController.getUser();
  37. InvSource invSource = new InvSource();
  38. invSource.setRevenueName(String.valueOf(user));
  39. DateTime dateTime = new DateTime();
  40. invSource.setRevenueTime(String.valueOf(dateTime));
  41. boolean result = invSourceService.saveOrUpdateBatchWithConditions(invSources);
  42. return result ? HttpResult.ok("导入成功") : HttpResult.error("导入失败");
  43. }
  44. @Override
  45. public boolean save(InvSource invSource) {
  46. return invSourceService.save(invSource);
  47. }
  48. /**
  49. * 导入InsSource 处理重复导入
  50. * @param invSourceList
  51. * @return
  52. */
  53. @Override
  54. @Transactional
  55. public boolean saveOrUpdateBatchWithConditions(List<InvSource> invSourceList) {
  56. for (InvSource invSource : invSourceList) {
  57. InvSource one = baseMapper.selectOne(new LambdaQueryWrapper<InvSource>()
  58. .eq(InvSource::getLicenseno, invSource.getLicenseno())
  59. .eq(InvSource::getJqPolicyId, invSource.getJqPolicyId())
  60. .eq(InvSource::getSyPolicyId, invSource.getSyPolicyId())
  61. .eq(InvSource::getNonCarPolicyId, invSource.getNonCarPolicyId())
  62. .eq(InvSource::getRevenueTime,invSource.getRevenueTime()));
  63. if (one != null) {
  64. invSource.setId(one.getId());
  65. baseMapper.updateById(invSource);
  66. } else {
  67. baseMapper.insert(invSource);
  68. }
  69. }
  70. return true;
  71. }
  72. }