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
*/
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.read.listener.ReadListener;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.ExceptionUtils;
@ -13,6 +14,7 @@ import com.epmet.entity.IcEnterpriseEntity;
import com.epmet.excel.EnterpriseImportExcelDTO;
import com.epmet.service.impl.IcEnterpriseServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
@ -31,9 +33,9 @@ public class IcEnterpriseExcelImportListener implements ReadListener<EnterpriseI
private Map<String, String> placeTypeMap;
private Map<String, String> scaleMap;
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<>();
@ -84,10 +86,25 @@ public class IcEnterpriseExcelImportListener implements ReadListener<EnterpriseI
enterpriseEntity.setLatitude(StrConstant.EPMETY_STR);
//规模
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();
}
} catch (Exception e) {
@ -122,9 +139,10 @@ public class IcEnterpriseExcelImportListener implements ReadListener<EnterpriseI
*/
private void execPersist() {
try {
icEnterpriseServiceImpl.insertBatch(datas);
icEnterpriseServiceImpl.insertBatch(insertDatas);
icEnterpriseServiceImpl.updateBatchById(updateDatas);
} 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)
@Override
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());
if (null == agencyInfoCache) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"组织信息查询异常","组织信息查询异常");
@ -404,5 +408,7 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
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>
order by ie.CREATED_TIME desc
</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>
Loading…
Cancel
Save