diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 05e6c7668e..d2b0ffa647 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -163,6 +163,7 @@ public enum EpmetErrorCode { EXISTS_SAME_PHONE_ERROR(8529, "%s存在重复"), COMMUNITY_SELF_ORGANIZATION_LIST_REPART_ERROR(8530, "%s社区自组织名称已存在"), + MATTER_NAME_EXISTS_APPOINTMENT_ERROR(8531, "存在重复预约事项"), // 该错误不会提示给前端,只是后端传输错误信息用。 ACCESS_SQL_FILTER_MISSION_ARGS(8701, "缺少生成权限过滤SQL所需参数"), diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterMatterDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterMatterDao.java index 42b765e40c..18bf0f63f0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterMatterDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterMatterDao.java @@ -22,6 +22,8 @@ import com.epmet.entity.IcPartyServiceCenterMatterEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 党群服务中心可预约事项表 * @@ -38,5 +40,13 @@ public interface IcPartyServiceCenterMatterDao extends BaseDao selectMatterNameByCenterId(@Param("centerId") String centerId); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPartyServiceCenterMatterService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPartyServiceCenterMatterService.java index cc977a17c5..23ac454d97 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPartyServiceCenterMatterService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPartyServiceCenterMatterService.java @@ -100,4 +100,12 @@ public interface IcPartyServiceCenterMatterService extends BaseService selectMatterNameByCenterId(String centerId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterMatterServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterMatterServiceImpl.java index b264c2159b..e6e85dc9ff 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterMatterServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterMatterServiceImpl.java @@ -109,4 +109,15 @@ public class IcPartyServiceCenterMatterServiceImpl extends BaseServiceImpl selectMatterNameByCenterId(String centerId) { + return baseDao.selectMatterNameByCenterId(centerId); + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java index 3a027a9b8a..25d7c9fffa 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; @@ -164,6 +165,12 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl matters = ConvertUtils.sourceToTarget(formDTO.getMatterList(), IcPartyServiceCenterMatterEntity.class); + Map> groupByMatterName = matters.stream().collect(Collectors.groupingBy(IcPartyServiceCenterMatterEntity::getMatterName)); + groupByMatterName.forEach((k,v) -> { + if (v.size() > NumConstant.ONE){ + throw new EpmetException(EpmetErrorCode.MATTER_NAME_EXISTS_APPOINTMENT_ERROR.getCode()); + } + }); matters.forEach(m -> { m.setCustomerId(customerId); m.setPartyServiceCenterId(centerEntity.getId()); @@ -194,14 +201,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl matters = ConvertUtils.sourceToTarget(formDTO.getMatterList(), IcPartyServiceCenterMatterEntity.class); - matters.forEach(m -> { - m.setCustomerId(tokenDto.getCustomerId()); - m.setPartyServiceCenterId(formDTO.getPartyServiceCenterId()); - }); - matterService.insertBatch(matters); - } + // del matter if (CollectionUtils.isNotEmpty(formDTO.getDelMatterList())){ List delMatterList = formDTO.getDelMatterList(); @@ -218,6 +218,25 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl existsMatterNames = matterService.selectMatterNameByCenterId(formDTO.getPartyServiceCenterId()); + List matters = ConvertUtils.sourceToTarget(formDTO.getMatterList(), IcPartyServiceCenterMatterEntity.class); + List paramMatterNames = matters.stream().map(m -> m.getMatterName()).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(existsMatterNames)){ + paramMatterNames.addAll(existsMatterNames); + } + Integer allSize = paramMatterNames.size(); + Integer distinctSize = paramMatterNames.stream().distinct().collect(Collectors.toList()).size(); + if (distinctSize < allSize){ + throw new EpmetException(EpmetErrorCode.MATTER_NAME_EXISTS_APPOINTMENT_ERROR.getCode()); + } + matters.forEach(m -> { + m.setCustomerId(tokenDto.getCustomerId()); + m.setPartyServiceCenterId(formDTO.getPartyServiceCenterId()); + }); + matterService.insertBatch(matters); + } } /** diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterMatterDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterMatterDao.xml index f765126687..d8bbd1ba95 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterMatterDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterMatterDao.xml @@ -10,4 +10,13 @@ AND PARTY_SERVICE_CENTER_ID = #{partyServiceCenterId} + + + \ No newline at end of file