package com.ydtech.modules.inv.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.inv.dao.InvSettlementSourceMapper; import com.ydtech.modules.inv.model.excel.InvSettlementSourceExcel; import com.ydtech.modules.inv.model.po.InvSettlementSource; import com.ydtech.modules.inv.model.po.InvSource; import com.ydtech.modules.inv.service.InvSettlementSourceService; import com.ydtech.modules.inv.utils.EasyExcelUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; /** * @author Administrator * @description 针对表【inv_settlement_source(结算来源表)】的数据库操作Service实现 * @createDate 2024-01-20 10:28:34 */ @Service public class InvSettlementSourceServiceImpl extends ServiceImpl implements InvSettlementSourceService { @Autowired private InvSettlementSourceService invSettlementSourceService; @Value("${upload.file.path}") String uploadFilePath; @Override public HttpResult readInvSettlementSourceExcel(String file) { List invSettlementSourceExcels = EasyExcelUtils.readInvSettlementSourceExcelExcel(uploadFilePath + file, InvSettlementSourceExcel.class); List invSettlementSources = JSONArray.parseArray(JSONArray.toJSONString(invSettlementSourceExcels),InvSettlementSource.class); boolean result = invSettlementSourceService.saveOrUpdateBatchWithConditions(invSettlementSources); return result ? HttpResult.ok("导入成功") : HttpResult.error("导入失败"); } /** * 导入InvSettlementSource 处理重复导入 * @param invSettlementSources * @return */ @Override @Transactional public boolean saveOrUpdateBatchWithConditions(List invSettlementSources) { try { for (InvSettlementSource invSettlementSource : invSettlementSources) { InvSettlementSource one = baseMapper.selectOne(new LambdaQueryWrapper() .eq(InvSettlementSource::getLicenseno, invSettlementSource.getLicenseno()) .eq(InvSettlementSource::getJqPolicyId, invSettlementSource.getJqPolicyId()) .eq(InvSettlementSource::getSyPolicyId, invSettlementSource.getSyPolicyId()) .eq(InvSettlementSource::getNonCarPolicyId, invSettlementSource.getNonCarPolicyId())); if (one != null) { invSettlementSource.setId(one.getId()); baseMapper.updateById(invSettlementSource); } else { baseMapper.insert(invSettlementSource); } } }catch(Exception e){ return false; } return true; } }