|
@@ -1,6 +1,8 @@
|
|
|
package com.jzg.organization.service.impl;
|
|
package com.jzg.organization.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.ListUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateTime;
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.alibaba.nacos.common.utils.CollectionUtils;
|
|
import com.alibaba.nacos.common.utils.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -26,6 +28,7 @@ import com.jzg.commons.util.idgen.IdGenerate;
|
|
|
import com.jzg.organization.client.EsmInsCompanyClient;
|
|
import com.jzg.organization.client.EsmInsCompanyClient;
|
|
|
import com.jzg.organization.excel.listener.JyExcelListener;
|
|
import com.jzg.organization.excel.listener.JyExcelListener;
|
|
|
import com.jzg.organization.excel.listener.OtherExcelListener;
|
|
import com.jzg.organization.excel.listener.OtherExcelListener;
|
|
|
|
|
+import com.jzg.organization.excel.listener.ReceivbleExcelListener;
|
|
|
import com.jzg.organization.excel.listener.SuperviseExcelListener;
|
|
import com.jzg.organization.excel.listener.SuperviseExcelListener;
|
|
|
import com.jzg.organization.mapper.*;
|
|
import com.jzg.organization.mapper.*;
|
|
|
import com.jzg.organization.service.ReceivableService;
|
|
import com.jzg.organization.service.ReceivableService;
|
|
@@ -47,6 +50,7 @@ import java.math.BigInteger;
|
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Files;
|
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
import java.nio.file.Paths;
|
|
|
|
|
+import java.time.Instant;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.time.format.DateTimeParseException;
|
|
import java.time.format.DateTimeParseException;
|
|
@@ -90,6 +94,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private SysUploadFilesMapper sysUploadFilesMapper;
|
|
private SysUploadFilesMapper sysUploadFilesMapper;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ExportBaseServiceImpl exportBaseService;
|
|
|
|
|
+
|
|
|
@Value("${upload.file.path}")
|
|
@Value("${upload.file.path}")
|
|
|
private String uploadPath;
|
|
private String uploadPath;
|
|
|
|
|
|
|
@@ -404,6 +411,21 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<ReceivableExportExcelVo> importReceivableExcel(MultipartFile file) {
|
|
|
|
|
+ ReceivbleExcelListener listener = new ReceivbleExcelListener();
|
|
|
|
|
+ try (InputStream inputStream = file.getInputStream()) {
|
|
|
|
|
+ EasyExcel.read(inputStream, ReceivableExportExcelVo.class, listener)
|
|
|
|
|
+ .sheet()
|
|
|
|
|
+ .doRead();
|
|
|
|
|
+ List<ReceivableExportExcelVo> dataList = listener.getDataList();
|
|
|
|
|
+ return dataList;
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public List<JyExcelVo> importJyExcel(MultipartFile file) {
|
|
public List<JyExcelVo> importJyExcel(MultipartFile file) {
|
|
|
JyExcelListener listener = new JyExcelListener();
|
|
JyExcelListener listener = new JyExcelListener();
|
|
@@ -607,6 +629,84 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
return importExcelResultVo;
|
|
return importExcelResultVo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ImportExcelResultVo importPlatFormReceivable(MultipartFile file) {
|
|
|
|
|
+ ImportExcelResultVo importExcelResultVo = new ImportExcelResultVo();
|
|
|
|
|
+
|
|
|
|
|
+ List<ReceivableExportExcelVo> receivableExportExcelVos = importReceivableExcel(file);
|
|
|
|
|
+ AssertionUtils.isEmpty(receivableExportExcelVos, "数据处理失败,导入失败");
|
|
|
|
|
+
|
|
|
|
|
+ // 获取保司名称
|
|
|
|
|
+ HttpResult<List<EsmInsCompany>> listHttpResult = esmInsCompanyClient.liveCompanyList();
|
|
|
|
|
+ AssertionUtils.isFail(listHttpResult.getCode() != 200, listHttpResult.getMsg());
|
|
|
|
|
+
|
|
|
|
|
+ int failedNumber = 0;
|
|
|
|
|
+ List<Object> failedExcel = new ArrayList<>();
|
|
|
|
|
+ List<InsPlyIncome> successExcel = new ArrayList<>();
|
|
|
|
|
+ // 处理数据
|
|
|
|
|
+ for (ReceivableExportExcelVo vo : receivableExportExcelVos) {
|
|
|
|
|
+ // 出现空数据则失败
|
|
|
|
|
+ ImportResultVo resultVo = vo.checkEmpty();
|
|
|
|
|
+ if (!resultVo.isSuccess()) {
|
|
|
|
|
+ failedNumber++;
|
|
|
|
|
+ vo.setErrorMessage(resultVo.getMessage());
|
|
|
|
|
+ failedExcel.add(vo);
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 检测是否有重复的保单号
|
|
|
|
|
+ InsPlyIncome checkInsPlyIncome = baseMapper.selectOne(new LambdaQueryWrapper<InsPlyIncome>()
|
|
|
|
|
+ .eq(InsPlyIncome::getJqPolicyNo, vo.getJqPolicyNo()));
|
|
|
|
|
+ if (!Objects.isNull(checkInsPlyIncome)) {
|
|
|
|
|
+ failedNumber++;
|
|
|
|
|
+ vo.setErrorMessage("车险保单号重复");
|
|
|
|
|
+ failedExcel.add(vo);
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 判断应收数据是否已开票 / 已结算
|
|
|
|
|
+ InsPlyIncome checkInsPlyIncomeByOrderNo = baseMapper.selectOne(new LambdaQueryWrapper<InsPlyIncome>()
|
|
|
|
|
+ .eq(InsPlyIncome::getOrderNo, vo.getOrderNo()));
|
|
|
|
|
+ if (ObjectUtil.isNotNull(checkInsPlyIncomeByOrderNo)){
|
|
|
|
|
+ if ("1".equals(checkInsPlyIncomeByOrderNo.getSuperviseSettlement()) || "1".equals(checkInsPlyIncomeByOrderNo.getOtherSettlement())
|
|
|
|
|
+ || "1".equals(checkInsPlyIncomeByOrderNo.getJySuperviseSettlement()) || "1".equals(checkInsPlyIncomeByOrderNo.getJyOtherSettlement())){
|
|
|
|
|
+ failedNumber++;
|
|
|
|
|
+ vo.setErrorMessage("应收数据已结算");
|
|
|
|
|
+ failedExcel.add(vo);
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 判断应收数据是否已锁定,暂无逻辑
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 处理数据
|
|
|
|
|
+ InsPlyIncome insPlyIncome = new InsPlyIncome();
|
|
|
|
|
+ insPlyIncome.setId(IdGenerate.nextId());
|
|
|
|
|
+ insPlyIncome.setLicenseNo(vo.getLicenseNo());
|
|
|
|
|
+ insPlyIncome.setJqPolicyNo(vo.getJqPolicyNo());
|
|
|
|
|
+ insPlyIncome.setJqSuperviseCostsProportion(vo.getJqSuperviseCostsProportion());
|
|
|
|
|
+ insPlyIncome.setJqOtherCostsProportion(vo.getJqOtherCostsProportion());
|
|
|
|
|
+ insPlyIncome.setSyPolicyNo(vo.getSyPolicyNo());
|
|
|
|
|
+ insPlyIncome.setSySuperviseCostsProportion(vo.getSySuperviseCostsProportion());
|
|
|
|
|
+ insPlyIncome.setSyOtherCostsProportion(vo.getSyOtherCostsProportion());
|
|
|
|
|
+ insPlyIncome.setJyPolicyNo(vo.getJyPolicyNo());
|
|
|
|
|
+ insPlyIncome.setJySuperviseCostsProportion(vo.getJySuperviseCostsProportion());
|
|
|
|
|
+ insPlyIncome.setJyOtherCostsProportion(vo.getJyOtherCostsProportion());
|
|
|
|
|
+ insPlyIncome.setContactPerson(vo.getDockingPerson());
|
|
|
|
|
+ successExcel.add(insPlyIncome);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ importExcelResultVo.setFailedData(failedExcel);
|
|
|
|
|
+ importExcelResultVo.setSuccessNumber(successExcel.size());
|
|
|
|
|
+ importExcelResultVo.setFailedNumber(failedNumber);
|
|
|
|
|
+
|
|
|
|
|
+ // 批量插入数据
|
|
|
|
|
+ baseMapper.insert(successExcel);
|
|
|
|
|
+
|
|
|
|
|
+ return importExcelResultVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public ImportExcelResultVo importJyData(MultipartFile file) {
|
|
public ImportExcelResultVo importJyData(MultipartFile file) {
|
|
|
ImportExcelResultVo importExcelResultVo = new ImportExcelResultVo();
|
|
ImportExcelResultVo importExcelResultVo = new ImportExcelResultVo();
|
|
@@ -905,6 +1005,40 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
EasyExcelUtils.exportForWeb(ServletUtils.getResponse(), ExportSuperviseSettlementExcelDto.class, list, "车险手续费结算明细");
|
|
EasyExcelUtils.exportForWeb(ServletUtils.getResponse(), ExportSuperviseSettlementExcelDto.class, list, "车险手续费结算明细");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 导出平台协议Excel
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String exportTemplatePlatFormReceivable() {
|
|
|
|
|
+ List<ReceivableExportExcelDto> emptyList = ListUtil.empty();
|
|
|
|
|
+
|
|
|
|
|
+ // 调用动态导出
|
|
|
|
|
+ return exportBaseService.upLoadFile(
|
|
|
|
|
+ ReceivableExportExcelDto.class,
|
|
|
|
|
+ emptyList,
|
|
|
|
|
+ "平台协议应收-批量导入-导出模板-" + Instant.now()
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 导出平台协议Excel
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String exportPlatFormReceivable(ReceivableQueryVo receivableQueryVo) {
|
|
|
|
|
+ List<InsPlyIncome> receivableList = baseMapper.getReceivableList(receivableQueryVo);
|
|
|
|
|
+
|
|
|
|
|
+ // 调用动态导出
|
|
|
|
|
+ return exportBaseService.upLoadFile(
|
|
|
|
|
+ InsPlyIncome.class,
|
|
|
|
|
+ receivableList,
|
|
|
|
|
+ "平台协议应收-批量导入-导出-" + Instant.now()
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public Page<ExportSuperviseSettlementDetailExcelDto> superviseSettlementDetailExcel(Page page, SettlementQueryVo settlementQueryVo) {
|
|
public Page<ExportSuperviseSettlementDetailExcelDto> superviseSettlementDetailExcel(Page page, SettlementQueryVo settlementQueryVo) {
|
|
|
Page<ExportSuperviseSettlementDetailExcelDto> exportSuperviseSettlementDetailExcelDtos = baseMapper.getSuperviseSettlementDetailExcelDtos(page, settlementQueryVo);
|
|
Page<ExportSuperviseSettlementDetailExcelDto> exportSuperviseSettlementDetailExcelDtos = baseMapper.getSuperviseSettlementDetailExcelDtos(page, settlementQueryVo);
|