Browse Source

Merge remote-tracking branch 'origin/dev_5big_coverage' into dev_5big_coverage

feature/teamB_zz_wgh
yinzuomei 3 years ago
parent
commit
a0859df66a
  1. 6
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcDangerousChemicalsEntity.java
  2. 49
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsImportListener.java
  3. 4
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsModel.java
  4. 4
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcDangerousChemicalsServiceImpl.java

6
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcDangerousChemicalsEntity.java

@ -95,4 +95,10 @@ public class IcDangerousChemicalsEntity extends BaseEpmetEntity {
@TableField(exist = false) @TableField(exist = false)
private String categoryName; private String categoryName;
@TableField(exist = false)
private Integer rowNum;
@TableField(exist = false)
private Boolean existStatus = false;
} }

49
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsImportListener.java

@ -2,6 +2,7 @@ package com.epmet.model;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.event.AnalysisEventListener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum;
import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.enums.DictTypeEnum;
@ -12,6 +13,7 @@ import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dao.IcDangerousChemicalsDao;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO; import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.entity.IcDangerousChemicalsEntity; import com.epmet.entity.IcDangerousChemicalsEntity;
import com.epmet.excel.IcCityManagementExcel; import com.epmet.excel.IcCityManagementExcel;
@ -43,23 +45,34 @@ public class DangerousChemicalsImportListener extends AnalysisEventListener<Dang
private EpmetAdminOpenFeignClient adminOpenFeignClient; private EpmetAdminOpenFeignClient adminOpenFeignClient;
private CoverageService coverageService; private CoverageService coverageService;
private AgencyInfoCache agencyInfo; private AgencyInfoCache agencyInfo;
private IcDangerousChemicalsDao icDangerousChemicalsDao;
private List<DangerousChemicalsModel.RowRemarkMessage> errorRows = new ArrayList<>(); private List<DangerousChemicalsModel.RowRemarkMessage> errorRows = new ArrayList<>();
private List<DangerousChemicalsModel.RowRemarkMessage> otherRows = new ArrayList<>(); private List<DangerousChemicalsModel.RowRemarkMessage> otherRows = new ArrayList<>();
private List<IcDangerousChemicalsEntity> insertList = new ArrayList<>(); private List<IcDangerousChemicalsEntity> insertList = new ArrayList<>();
private Map<String,String> existMap = null;
public DangerousChemicalsImportListener(AgencyInfoCache agencyInfo, IcDangerousChemicalsService icDangerousChemicalsService, CoverageService coverageService,EpmetAdminOpenFeignClient adminOpenFeignClient){ public DangerousChemicalsImportListener(AgencyInfoCache agencyInfo, IcDangerousChemicalsService icDangerousChemicalsService, CoverageService coverageService, EpmetAdminOpenFeignClient adminOpenFeignClient, IcDangerousChemicalsDao icDangerousChemicalsDao){
this.agencyInfo = agencyInfo; this.agencyInfo = agencyInfo;
this.icDangerousChemicalsService = icDangerousChemicalsService; this.icDangerousChemicalsService = icDangerousChemicalsService;
this.coverageService = coverageService; this.coverageService = coverageService;
this.adminOpenFeignClient = adminOpenFeignClient; this.adminOpenFeignClient = adminOpenFeignClient;
this.icDangerousChemicalsDao = icDangerousChemicalsDao;
} }
@Override @Override
public void invoke(DangerousChemicalsModel data, AnalysisContext context) { public void invoke(DangerousChemicalsModel data, AnalysisContext context) {
Integer rowNum = context.readRowHolder().getRowIndex() + NumConstant.ONE; Integer rowNum = context.readRowHolder().getRowIndex() + NumConstant.ONE;
data.setRowNum(rowNum);
try { try {
existMap = null == existMap ? getExistMap(agencyInfo.getId()) : existMap;
ValidatorUtils.validateEntity(data); ValidatorUtils.validateEntity(data);
if (StringUtils.isNotBlank(existMap.get(data.getName()))){
DangerousChemicalsModel.RowRemarkMessage errorRow = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class);
errorRow.setErrorInfo("数据库存在该条数据");
errorRows.add(errorRow);
return;
}
IcDangerousChemicalsEntity e = ConvertUtils.sourceToTarget(data, IcDangerousChemicalsEntity.class); IcDangerousChemicalsEntity e = ConvertUtils.sourceToTarget(data, IcDangerousChemicalsEntity.class);
e.setSourceType("import"); e.setSourceType("import");
e.setAgencyId(agencyInfo.getId()); e.setAgencyId(agencyInfo.getId());
@ -78,7 +91,6 @@ public class DangerousChemicalsImportListener extends AnalysisEventListener<Dang
log.error("【重点危化品企业导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); log.error("【重点危化品企业导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
} }
DangerousChemicalsModel.RowRemarkMessage errorRow = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class); DangerousChemicalsModel.RowRemarkMessage errorRow = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class);
errorRow.setRowNum(rowNum);
errorRow.setErrorInfo(errorMsg); errorRow.setErrorInfo(errorMsg);
errorRows.add(errorRow); errorRows.add(errorRow);
} }
@ -89,6 +101,16 @@ public class DangerousChemicalsImportListener extends AnalysisEventListener<Dang
execPersist(); execPersist();
} }
public Map<String,String> getExistMap(String agencyId){
LambdaQueryWrapper<IcDangerousChemicalsEntity> tWrapper = new LambdaQueryWrapper<>();
tWrapper.eq(IcDangerousChemicalsEntity::getAgencyId, agencyId);
List<IcDangerousChemicalsEntity> entityList = icDangerousChemicalsDao.selectList(tWrapper);
Map<String,String> existMap = new HashMap<>(16);
if (CollectionUtils.isNotEmpty(entityList)){
existMap = entityList.stream().collect(Collectors.toMap(IcDangerousChemicalsEntity::getName,IcDangerousChemicalsEntity::getId,(v1,v2) -> v1));
}
return existMap;
}
/** /**
* Desc: 数据库插入 * Desc: 数据库插入
*/ */
@ -116,10 +138,31 @@ public class DangerousChemicalsImportListener extends AnalysisEventListener<Dang
} }
}); });
}); });
icDangerousChemicalsService.insertBatch(insertList); Map<String, Long> groupByName = insertList.stream().collect(Collectors.groupingBy(IcDangerousChemicalsEntity::getName, Collectors.counting()));
groupByName.forEach((k,v) -> {
if (v.compareTo(NumConstant.ONE_L) != NumConstant.ZERO){
insertList.forEach(i -> {
if (i.getName().equals(k)){
i.setExistStatus(true);
}
});
}
});
Map<Boolean, List<IcDangerousChemicalsEntity>> groupByStatus = insertList.stream().collect(Collectors.groupingBy(IcDangerousChemicalsEntity::getExistStatus));
if (CollectionUtils.isNotEmpty(groupByStatus.get(true))){
groupByStatus.get(true).forEach(t -> {
DangerousChemicalsModel.RowRemarkMessage errorRow = ConvertUtils.sourceToTarget(t, DangerousChemicalsModel.RowRemarkMessage.class);
errorRow.setErrorInfo("表格中存在重复数据");
errorRows.add(errorRow);
});
}
if (CollectionUtils.isNotEmpty(groupByStatus.get(false))){
icDangerousChemicalsService.insertBatch(groupByStatus.get(false));
}
} }
} finally { } finally {
insertList.clear(); insertList.clear();
existMap.clear();
} }
} }

4
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsModel.java

@ -1,5 +1,6 @@
package com.epmet.model; package com.epmet.model;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
@ -46,6 +47,9 @@ public class DangerousChemicalsModel {
@ExcelProperty(value = "备注") @ExcelProperty(value = "备注")
private String remark; private String remark;
@ExcelIgnore
private Integer rowNum;
@Data @Data
public static class RowRemarkMessage { public static class RowRemarkMessage {

4
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcDangerousChemicalsServiceImpl.java

@ -82,6 +82,8 @@ public class IcDangerousChemicalsServiceImpl extends BaseServiceImpl<IcDangerous
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient; private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Autowired @Autowired
private OssFeignClient ossFeignClient; private OssFeignClient ossFeignClient;
@Autowired
private IcDangerousChemicalsDao icDangerousChemicalsDao;
@Override @Override
public PageData<IcDangerousChemicalsListResultDTO> list(IcDangerousChemicalsListFormDTO formDTO) { public PageData<IcDangerousChemicalsListResultDTO> list(IcDangerousChemicalsListFormDTO formDTO) {
@ -233,7 +235,7 @@ public class IcDangerousChemicalsServiceImpl extends BaseServiceImpl<IcDangerous
if (null == agencyInfo){ if (null == agencyInfo){
throw new EpmetException("查询所属组织失败:"+staffInfo.getAgencyId()); throw new EpmetException("查询所属组织失败:"+staffInfo.getAgencyId());
} }
DangerousChemicalsImportListener listener = new DangerousChemicalsImportListener(agencyInfo,this,coverageService,adminOpenFeignClient); DangerousChemicalsImportListener listener = new DangerousChemicalsImportListener(agencyInfo,this,coverageService,adminOpenFeignClient,icDangerousChemicalsDao);
EasyExcel.read(filePath.toFile(), DangerousChemicalsModel.class, listener).headRowNumber(1).sheet(0).doRead(); EasyExcel.read(filePath.toFile(), DangerousChemicalsModel.class, listener).headRowNumber(1).sheet(0).doRead();
String errorDesFileUrl = null; String errorDesFileUrl = null;
List<DangerousChemicalsModel.RowRemarkMessage> errorRows = listener.getErrorRows(); List<DangerousChemicalsModel.RowRemarkMessage> errorRows = listener.getErrorRows();

Loading…
Cancel
Save