InvSettlementSourceServiceImpl.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.ydtech.modules.inv.service.impl;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  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.InvSettlementSourceMapper;
  8. import com.ydtech.modules.inv.model.excel.InvSettlementSourceExcel;
  9. import com.ydtech.modules.inv.model.po.InvSettlementSource;
  10. import com.ydtech.modules.inv.model.po.InvSource;
  11. import com.ydtech.modules.inv.service.InvSettlementSourceService;
  12. import com.ydtech.modules.inv.utils.EasyExcelUtils;
  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.time.LocalDate;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. /**
  22. * @author Administrator
  23. * @description 针对表【inv_settlement_source(结算来源表)】的数据库操作Service实现
  24. * @createDate 2024-01-20 10:28:34
  25. */
  26. @Service
  27. public class InvSettlementSourceServiceImpl extends ServiceImpl<InvSettlementSourceMapper, InvSettlementSource>
  28. implements InvSettlementSourceService {
  29. @Autowired
  30. private InvSettlementSourceService invSettlementSourceService;
  31. @Value("${upload.file.path}")
  32. String uploadFilePath;
  33. @Override
  34. public HttpResult readInvSettlementSourceExcel(String file) {
  35. List<InvSettlementSourceExcel> invSettlementSourceExcels = EasyExcelUtils.readInvSettlementSourceExcelExcel(uploadFilePath + file, InvSettlementSourceExcel.class);
  36. List<InvSettlementSource> invSettlementSources = JSONArray.parseArray(JSONArray.toJSONString(invSettlementSourceExcels),InvSettlementSource.class);
  37. boolean result = invSettlementSourceService.saveOrUpdateBatchWithConditions(invSettlementSources);
  38. return result ? HttpResult.ok("导入成功") : HttpResult.error("导入失败");
  39. }
  40. /**
  41. * 导入InvSettlementSource 处理重复导入
  42. * @param invSettlementSources
  43. * @return
  44. */
  45. @Override
  46. @Transactional
  47. public boolean saveOrUpdateBatchWithConditions(List<InvSettlementSource> invSettlementSources) {
  48. try {
  49. for (InvSettlementSource invSettlementSource : invSettlementSources) {
  50. InvSettlementSource one = baseMapper.selectOne(new LambdaQueryWrapper<InvSettlementSource>()
  51. .eq(InvSettlementSource::getLicenseno, invSettlementSource.getLicenseno())
  52. .eq(InvSettlementSource::getJqPolicyId, invSettlementSource.getJqPolicyId())
  53. .eq(InvSettlementSource::getSyPolicyId, invSettlementSource.getSyPolicyId())
  54. .eq(InvSettlementSource::getNonCarPolicyId, invSettlementSource.getNonCarPolicyId()));
  55. if (one != null) {
  56. invSettlementSource.setId(one.getId());
  57. baseMapper.updateById(invSettlementSource);
  58. } else {
  59. baseMapper.insert(invSettlementSource);
  60. }
  61. }
  62. }catch(Exception e){
  63. return false;
  64. }
  65. return true;
  66. }
  67. }