Browse Source

网格内名称唯一

feature/teamB_zz_wgh
yinzuomei 3 years ago
parent
commit
7d55f1aab4
  1. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseDao.java
  2. 34
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcEnterpriseExcelImportListener.java
  3. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java
  4. 12
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseDao.xml

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseDao.java

@ -30,4 +30,6 @@ public interface IcEnterpriseDao extends BaseDao<IcEnterpriseEntity> {
* @return * @return
*/ */
List<EnterpriseDetailDTO> selectList(EnterprisePageFormDTO formDTO); List<EnterpriseDetailDTO> selectList(EnterprisePageFormDTO formDTO);
List<IcEnterpriseEntity> selectForUniqueName(@Param("gridId") String gridId, @Param("placeOrgName") String placeOrgName, @Param("enterpriseId") String enterpriseId);
} }

34
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcEnterpriseExcelImportListener.java

@ -2,6 +2,7 @@ package com.epmet.excel.handler;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener; import com.alibaba.excel.read.listener.ReadListener;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.ExceptionUtils;
@ -13,6 +14,7 @@ import com.epmet.entity.IcEnterpriseEntity;
import com.epmet.excel.EnterpriseImportExcelDTO; import com.epmet.excel.EnterpriseImportExcelDTO;
import com.epmet.service.impl.IcEnterpriseServiceImpl; import com.epmet.service.impl.IcEnterpriseServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -31,9 +33,9 @@ public class IcEnterpriseExcelImportListener implements ReadListener<EnterpriseI
private Map<String, String> placeTypeMap; private Map<String, String> placeTypeMap;
private Map<String, String> scaleMap; private Map<String, String> scaleMap;
private Map<String,String> gridMap; private Map<String,String> gridMap;
//数据 //要插入的数据
private List<IcEnterpriseEntity> datas = new ArrayList<>(); private List<IcEnterpriseEntity> insertDatas = new ArrayList<>();
private List<IcEnterpriseEntity> updateDatas = new ArrayList<>();
//错误项列表 //错误项列表
private List<EnterpriseImportExcelDTO.ErrorRow> errorRows = new ArrayList<>(); private List<EnterpriseImportExcelDTO.ErrorRow> errorRows = new ArrayList<>();
@ -84,10 +86,25 @@ public class IcEnterpriseExcelImportListener implements ReadListener<EnterpriseI
enterpriseEntity.setLatitude(StrConstant.EPMETY_STR); enterpriseEntity.setLatitude(StrConstant.EPMETY_STR);
//规模 //规模
enterpriseEntity.setScale(scaleMap.get(data.getScaleName())); enterpriseEntity.setScale(scaleMap.get(data.getScaleName()));
enterpriseEntity.setSourceType("import");
datas.add(enterpriseEntity);
if (datas.size() == MAX_THRESHOLD) {
//网格id+场所名称
List<IcEnterpriseEntity> originList=icEnterpriseServiceImpl.selectForUniqueName(enterpriseEntity.getGridId(),enterpriseEntity.getPlaceOrgName(),null);
if(CollectionUtils.isEmpty(originList)){
enterpriseEntity.setSourceType("import");
insertDatas.add(enterpriseEntity);
}else{
IcEnterpriseEntity origin=originList.get(NumConstant.ZERO);
enterpriseEntity.setId(origin.getId());
enterpriseEntity.setSourceType(origin.getSourceType());
updateDatas.add(enterpriseEntity);
}
if (insertDatas.size() == MAX_THRESHOLD) {
execPersist();
}
if (updateDatas.size() == MAX_THRESHOLD) {
execPersist(); execPersist();
} }
} catch (Exception e) { } catch (Exception e) {
@ -122,9 +139,10 @@ public class IcEnterpriseExcelImportListener implements ReadListener<EnterpriseI
*/ */
private void execPersist() { private void execPersist() {
try { try {
icEnterpriseServiceImpl.insertBatch(datas); icEnterpriseServiceImpl.insertBatch(insertDatas);
icEnterpriseServiceImpl.updateBatchById(updateDatas);
} finally { } finally {
datas.clear(); insertDatas.clear();
} }
} }

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java

@ -100,6 +100,10 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public String addOrUpdate(EnterpriseFormDTO formDTO) { public String addOrUpdate(EnterpriseFormDTO formDTO) {
//同一网格内,名称唯一
if (CollectionUtils.isNotEmpty(selectForUniqueName(formDTO.getGridId(), formDTO.getPlaceOrgName(), formDTO.getEnterpriseId()))) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "同一网格内存在相同名称的场所", "场所已存在");
}
AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId()); AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId());
if (null == agencyInfoCache) { if (null == agencyInfoCache) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"组织信息查询异常","组织信息查询异常"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"组织信息查询异常","组织信息查询异常");
@ -404,5 +408,7 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
return staffInfo; return staffInfo;
} }
public List<IcEnterpriseEntity> selectForUniqueName(String gridId, String placeOrgName, String enterpriseId) {
return baseDao.selectForUniqueName(gridId, placeOrgName, enterpriseId);
}
} }

12
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseDao.xml

@ -91,4 +91,16 @@
</if> </if>
order by ie.CREATED_TIME desc order by ie.CREATED_TIME desc
</select> </select>
<select id="selectForUniqueName" parameterType="map" resultType="com.epmet.entity.IcEnterpriseEntity">
select
ie.*
from ic_enterprise ie
where ie.DEL_FLAG = '0'
and ie.GRID_ID = #{gridId}
and ie.PLACE_ORG_NAME = #{placeOrgName}
<if test='null != enterpriseId and "" != enterpriseId'>
and ie.id != #{enterpriseId}
</if>
</select>
</mapper> </mapper>
Loading…
Cancel
Save