InvSourceServiceImpl.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.ydtech.modules.inv.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.modules.inv.dao.InvSourceMapper;
  8. import com.ydtech.modules.inv.model.excel.InvSourceExcel;
  9. import com.ydtech.modules.inv.model.po.InvSource;
  10. import com.ydtech.modules.inv.service.InvSourceService;
  11. import com.ydtech.modules.inv.utils.EasyExcelUtils;
  12. import org.springframework.beans.BeanUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.beans.factory.annotation.Value;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.math.BigDecimal;
  18. import java.util.ArrayList;
  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. boolean result = invSourceService.saveOrUpdateBatchWithConditions(invSources);
  37. return result ? HttpResult.ok("导入成功") : HttpResult.error("导入失败");
  38. }
  39. /**
  40. * 导入InsSource 处理重复导入
  41. * @param invSourceList
  42. * @return
  43. */
  44. @Override
  45. @Transactional
  46. public boolean saveOrUpdateBatchWithConditions(List<InvSource> invSourceList) {
  47. try {
  48. for (InvSource invSource : invSourceList) {
  49. InvSource one = baseMapper.selectOne(new LambdaQueryWrapper<InvSource>()
  50. .eq(InvSource::getLicenseno, invSource.getLicenseno())
  51. .eq(InvSource::getJqPolicyId, invSource.getJqPolicyId())
  52. .eq(InvSource::getSyPolicyId, invSource.getSyPolicyId())
  53. .eq(InvSource::getNonCarPolicyId, invSource.getNonCarPolicyId()));
  54. if (one != null) {
  55. invSource.setId(one.getId());
  56. baseMapper.updateById(invSource);
  57. } else {
  58. baseMapper.insert(invSource);
  59. }
  60. }
  61. }catch(Exception e){
  62. return false;
  63. }
  64. return true;
  65. }
  66. }