From e75c12e0dff5b6f362a184c23d39d84d8ecb1ad7 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Sun, 23 Apr 2023 17:38:48 +0800 Subject: [PATCH] try --- .../IcDangerousChemicalsAddEditFormDTO.java | 1 + .../form/IcDangerousChemicalsListFormDTO.java | 2 +- .../DangerousChemicalsImportListener.java | 124 +++++++++------ .../epmet/model/DangerousChemicalsModel.java | 142 ++++++++++++++---- .../epmet/service/CustomerAgencyService.java | 3 +- .../epmet/service/CustomerGridService.java | 2 + .../service/IcDangerousChemicalsService.java | 2 +- .../impl/CustomerAgencyServiceImpl.java | 10 ++ .../service/impl/CustomerGridServiceImpl.java | 10 ++ .../impl/IcDangerousChemicalsServiceImpl.java | 11 +- 10 files changed, 227 insertions(+), 80 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcDangerousChemicalsAddEditFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcDangerousChemicalsAddEditFormDTO.java index 46c901a770..dee46040f9 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcDangerousChemicalsAddEditFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcDangerousChemicalsAddEditFormDTO.java @@ -126,6 +126,7 @@ public class IcDangerousChemicalsAddEditFormDTO implements Serializable { /** * 灵山:企业介绍 */ + @Length(max = 1000,groups = {LingShanAddGroup.class, LingShanEditGroup.class},message = "企业介绍最多输入1000字") private String companyProfile; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcDangerousChemicalsListFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcDangerousChemicalsListFormDTO.java index 3c03625cd8..39362d70b8 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcDangerousChemicalsListFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcDangerousChemicalsListFormDTO.java @@ -25,7 +25,7 @@ public class IcDangerousChemicalsListFormDTO extends PageFormDTO implements Seri /** * 灵山:GRID_ID的全路径;包含grid_id - * 接口内部赋值,用于sql + * 接口内部赋值,用于sql,只有orgType=agency时,使用此列查询 */ private String orgIdPath; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsImportListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsImportListener.java index 015f932c46..2666b7a478 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsImportListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsImportListener.java @@ -3,22 +3,29 @@ package com.epmet.model; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.enums.OrgTypeEnum; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.ValidateException; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.PidUtils; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.CustomerAgencyDTO; +import com.epmet.dto.CustomerGridDTO; import com.epmet.entity.IcDangerousChemicalsEntity; import com.epmet.service.CoverageService; +import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerGridService; import com.epmet.service.IcDangerousChemicalsService; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * @Author zxc @@ -31,6 +38,7 @@ public class DangerousChemicalsImportListener extends AnalysisEventListener errorRows = new ArrayList<>(); private List otherRows = new ArrayList<>(); private List insertList = new ArrayList<>(); - private Map existMap = null; - /** - * 危化品种类 - */ - private Map dangerTypeMap; + private List updateList = new ArrayList<>(); + // /** + // * 危化品种类 + // */ + // private Map dangerTypeMap; /** * 企业类别 */ @@ -60,6 +68,7 @@ public class DangerousChemicalsImportListener extends AnalysisEventListener dangerTypeMap, Map categoryDictMap){ @@ -69,8 +78,9 @@ public class DangerousChemicalsImportListener extends AnalysisEventListener entry : categoryDictMap.entrySet()) { + if (data.getCategoryName().equals(entry.getValue())) { + categoryKey = entry.getKey(); + break; + } + } + if (StringUtils.isBlank(categoryKey)) { + throw new ValidateException("【" + data.getCategoryName() + "】此企业类别不存在"); + } + e.setCategory(categoryKey); e.setSourceType("import"); - e.setAgencyId(staffAgencyId); e.setCustomerId(customerId); + e.setAgencyId(staffAgencyId); e.setAgencyIdPath(staffAgencyPath); e.setCreatedBy(currentUserId); e.setUpdatedBy(currentUserId); - insertList.add(e); - if (insertList.size() == NumConstant.ONE_HUNDRED){ + e.setSecurityFlag("是".equals(data.getSecurityFlagName()) ? true : false); + // 判断是否存在 + IcDangerousChemicalsEntity origin=icDangerousChemicalsService.get(e.getOrgId(),e.getName()); + if (null != origin) { + e.setId(origin.getId()); + updateList.add(origin); + } else { + insertList.add(e); + } + if (insertList.size() == NumConstant.ONE_HUNDRED) { + execPersist(); + } + if (updateList.size() == NumConstant.ONE_HUNDRED) { execPersist(); } }catch (Exception e){ String errorMsg = null; if (e instanceof ValidateException) { errorMsg = ((ValidateException) e).getMsg(); - } else { + }else if(e instanceof EpmetException){ + errorMsg=((EpmetException) e).getMsg(); + }else { errorMsg = "未知错误"; log.error("【重点危化品企业导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); } @@ -118,43 +176,15 @@ public class DangerousChemicalsImportListener extends AnalysisEventListener { - dangerTypeMap.forEach((k,v) -> { - if (i.getDangerTypeName().equals(v)){ - i.setDangerType(k); - } - }); - categoryDictMap.forEach((k,v) -> { - if (i.getCategoryName().equals(v)){ - i.setCategory(k); - } - }); - }); - Map 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> 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.importInsert(groupByStatus.get(false)); - } + icDangerousChemicalsService.insertBatch(insertList); + } + + if (CollectionUtils.isNotEmpty(updateList)) { + icDangerousChemicalsService.updateBatchById(updateList); } } finally { insertList.clear(); - existMap = null; + updateList.clear(); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsModel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsModel.java index 199ab033cd..07b3813ed4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsModel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsModel.java @@ -3,7 +3,6 @@ package com.epmet.model; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -17,8 +16,15 @@ import javax.validation.constraints.NotBlank; @Data public class DangerousChemicalsModel { + @NotBlank(message = "所属组织不能为空") + @ExcelProperty(value = "所属组织") + private String agencyName; + + @ExcelProperty(value = "所属网格") + private String gridName; + @NotBlank(message = "企业名称不能为空") - @Length(max = 50,message = "企业名称长度超出50字限制") + @Length(max = 35, message = "企业名称最多输入35字") @ExcelProperty(value = "企业名称") private String name; @@ -26,37 +32,82 @@ public class DangerousChemicalsModel { @ExcelProperty(value = "企业类型") private String categoryName; - @ExcelProperty(value = "周边安全间距(公里)") - private String safeDistance = NumConstant.ZERO_STR; - - @ExcelProperty(value = "危化品种类") - private String dangerTypeName; + /** + * 灵山:是否重点安全企业;1是;0不是;必填 + */ + @NotBlank(message = "是否重点安全企业不能为空") + @ExcelProperty(value = "是否重点安全企业") + private String securityFlagName; + + // @ExcelProperty(value = "周边安全间距(公里)") + // private String safeDistance = NumConstant.ZERO_STR; + // + // @ExcelProperty(value = "危化品种类") + // private String dangerTypeName; + + @NotBlank(message = "企业地址不能为空") + @Length(max = 200, message = "企业地址最多输入200字") + @ExcelProperty(value = "企业地址") + private String address; - @ExcelProperty(value = "负责人") + @ExcelProperty(value = "联系人") private String principalName; - @Length(max = 50,message = "联系电话长度超出50字限制") + @Length(max = 50, message = "联系电话长度超出50字限制") @ExcelProperty(value = "联系电话") private String principalMobile; - @NotBlank(message = "经营地址不能为空") - @Length(max = 50,message = "经营地址长度超出50字限制") - @ExcelProperty(value = "经营地址") - private String address; - - @ExcelProperty(value = "备注") - private String remark; + // @ExcelProperty(value = "备注") + // private String remark; + + /** + * 灵山:安全负责人姓名 + */ + @ExcelProperty(value = "安全负责人姓名") + private String securityPrincipalName; + + /** + * 灵山:手机号 + */ + @ExcelProperty(value = "手机号") + private String securityPrincipalMobile; + + /** + * 灵山:包企领导 + */ + @ExcelProperty(value = "包企领导") + private String bqLd; + + /** + * 灵山:包企干部 + */ + @ExcelProperty(value = "包企干部") + private String bqGb; + + /** + * 灵山:企业介绍 + */ + @Length(max = 1000, message = "企业介绍最多输入1000字") + @ExcelProperty(value = "企业介绍") + private String companyProfile; @ExcelIgnore private Integer rowNum; @Data public static class RowRemarkMessage { - @ExcelProperty(value = "行号") private Integer rowNum; @ColumnWidth(20) + @ExcelProperty(value = "所属组织") + private String agencyName; + + @ColumnWidth(20) + @ExcelProperty(value = "所属网格") + private String gridName; + + @ColumnWidth(40) @ExcelProperty(value = "企业名称") private String name; @@ -64,29 +115,62 @@ public class DangerousChemicalsModel { @ExcelProperty(value = "企业类型") private String categoryName; + /** + * 灵山:是否重点安全企业;1是;0不是;必填 + */ @ColumnWidth(20) - @ExcelProperty(value = "周边安全间距(公里)") - private String safeDistance = NumConstant.ZERO_STR; + @ExcelProperty(value = "是否重点安全企业") + private String securityFlag; - @ColumnWidth(20) - @ExcelProperty(value = "危化品种类") - private String dangerTypeName; + @ColumnWidth(50) + @ExcelProperty(value = "企业地址") + private String address; @ColumnWidth(20) - @ExcelProperty(value = "负责人") + @ExcelProperty(value = "联系人") private String principalName; @ColumnWidth(20) @ExcelProperty(value = "联系电话") private String principalMobile; - @ColumnWidth(40) - @ExcelProperty(value = "经营地址") - private String address; + // @ExcelProperty(value = "备注") + // private String remark; - @ColumnWidth(60) - @ExcelProperty(value = "备注") - private String remark; + /** + * 灵山:安全负责人姓名 + */ + @ColumnWidth(20) + @ExcelProperty(value = "安全负责人姓名") + private String securityPrincipalName; + + /** + * 灵山:手机号 + */ + @ColumnWidth(20) + @ExcelProperty(value = "手机号") + private String securityPrincipalMobile; + + /** + * 灵山:包企领导 + */ + @ColumnWidth(30) + @ExcelProperty(value = "包企领导") + private String bqLd; + + /** + * 灵山:包企干部 + */ + @ColumnWidth(30) + @ExcelProperty(value = "包企干部") + private String bqGb; + + /** + * 灵山:企业介绍 + */ + @ColumnWidth(5) + @ExcelProperty(value = "企业介绍") + private String companyProfile; @ColumnWidth(60) @ExcelProperty("错误信息") diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java index f9ac7182e7..5ef18bf8e3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java @@ -18,7 +18,6 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; @@ -355,4 +354,6 @@ public interface CustomerAgencyService extends BaseService * @Date 2022/11/30 22:41 **/ Result> getCurrentUserCommunityInfo(TokenDto tokenDTO); + + CustomerAgencyDTO getByAgencyName(String customerId,String agencyName); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java index c3ba7c1286..213e000ba6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java @@ -387,4 +387,6 @@ public interface CustomerGridService extends BaseService { * @param formDTO */ void abandonGridForDealBizData(AbandonGridFormDTO formDTO); + + CustomerGridDTO get(CustomerGridDTO forDto); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcDangerousChemicalsService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcDangerousChemicalsService.java index 89b3c667ca..be86798fd5 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcDangerousChemicalsService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcDangerousChemicalsService.java @@ -81,5 +81,5 @@ public interface IcDangerousChemicalsService extends BaseService entityList); - + IcDangerousChemicalsEntity get(String orgId, String name); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index a6702963c4..48683fbf77 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -1607,4 +1608,13 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl>().ok(list); } + @Override + public CustomerAgencyDTO getByAgencyName(String customerId,String agencyName) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(CustomerAgencyEntity::getOrganizationName,agencyName) + .eq(CustomerAgencyEntity::getCustomerId,customerId) + .last("limit 1"); + CustomerAgencyEntity customerAgencyEntity=baseDao.selectOne(queryWrapper); + return ConvertUtils.sourceToTarget(customerAgencyEntity,CustomerAgencyDTO.class); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index cbcce699ac..e165811212 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -1095,4 +1095,14 @@ public class CustomerGridServiceImpl extends BaseServiceImpl queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(StringUtils.isNotBlank(formDto.getCustomerId()),CustomerGridEntity::getCustomerId,formDto.getCustomerId()) + .eq(StringUtils.isNotBlank(formDto.getPid()),CustomerGridEntity::getPid,formDto.getPid()) + .eq(StringUtils.isNotBlank(formDto.getGridName()),CustomerGridEntity::getGridName,formDto.getGridName()) + .last("limit 1"); + CustomerGridEntity customerGridEntity=baseDao.selectOne(queryWrapper); + return ConvertUtils.sourceToTarget(customerGridEntity,CustomerGridDTO.class); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcDangerousChemicalsServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcDangerousChemicalsServiceImpl.java index c8475b9735..7f9a88eecb 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcDangerousChemicalsServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcDangerousChemicalsServiceImpl.java @@ -84,6 +84,8 @@ public class IcDangerousChemicalsServiceImpl extends BaseServiceImpl list(IcDangerousChemicalsListFormDTO formDTO) { @@ -162,7 +164,7 @@ public class IcDangerousChemicalsServiceImpl extends BaseServiceImpl tWrapper = new LambdaQueryWrapper<>(); tWrapper.eq(IcDangerousChemicalsEntity::getOrgId, orgId); tWrapper.eq(IcDangerousChemicalsEntity::getName, name) @@ -259,6 +261,7 @@ public class IcDangerousChemicalsServiceImpl extends BaseServiceImpl queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(IcDangerousChemicalsEntity::getOrgId,orgId).eq(IcDangerousChemicalsEntity::getName,name); + return baseDao.selectOne(queryWrapper); + } } \ No newline at end of file