From 10814fd0e36bc8f83cf1d43a122ff0cf581c6731 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 29 Nov 2022 09:14:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=85=E9=81=934689=EF=BC=9A=20=E5=85=9A?= =?UTF-8?q?=E7=BE=A4=E6=9C=8D=E5=8A=A1=E4=B8=AD=E5=BF=83=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BA=8B=E9=A1=B9=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E9=80=89=E9=A1=B9=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/utils/DateUtils.java | 35 +++++++++++++++++++ .../dto/IcPartyServiceCenterMatterDTO.java | 7 +++- .../java/com/epmet/dto/MatterListDTO.java | 2 ++ .../constant/PartyServiceCenterConstant.java | 1 + .../IcPartyServiceCenterMatterEntity.java | 7 +++- .../impl/IcPartyServiceCenterServiceImpl.java | 12 ++++--- ...__alter_ic_party_service_center_matter.sql | 7 ++++ .../mapper/IcPartyServiceCenterDao.xml | 4 ++- 8 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.47__alter_ic_party_service_center_matter.sql diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java index 2c0fc380e6..8ddbea5066 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java @@ -1077,4 +1077,39 @@ public class DateUtils { calendar.add(Calendar.DAY_OF_MONTH, day); return calendar.getTime(); } + + + /** + * @Description 获取自定义周几对应的日期 + * 例:num=7,str="1,2" 表示获取未来周天周一出现的日期,两个总共出现七次, + * 比如今天1号是周一则得到的值是1号7号8号14号15号21号22号7次的日期 + */ + public static List getCustomDay(Date startDate, int num, String str) { + List result = new ArrayList<>(); + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(startDate); + rightNow.add(Calendar.DATE,-1); + startDate = rightNow.getTime(); + Date tomorrow; + Integer tag = 1; + while (tag <= num){ + tomorrow = getTomorrow(startDate); + // 返回周末 + if (isContain(tomorrow, str)) { + result.add(new SimpleDateFormat(DATE_PATTERN).format(tomorrow)); + tag++; + } + startDate = tomorrow; + } + return result; + } + /** + * @Description 判断日期对应的周几在字符串是否包含 + * 例:当前时间为22.11.28为周一对应是一周的第二天,判断2在str字符串是否包含 + */ + private static boolean isContain(Date date, String str) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + return str.contains(String.valueOf(cal.get(Calendar.DAY_OF_WEEK))); + } } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPartyServiceCenterMatterDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPartyServiceCenterMatterDTO.java index dcb9febc59..351b92e707 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPartyServiceCenterMatterDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPartyServiceCenterMatterDTO.java @@ -50,10 +50,15 @@ public class IcPartyServiceCenterMatterDTO implements Serializable { private String matterName; /** - * 预约类型,每天:everyDay,工作日:workDay,周末:weekend + * 预约类型,每天:everyDay,工作日:workDay,周末:weekend 自定义:custom */ private String appointmentType; + /** + * 类型为自定义时选择的周一~周末的时间(1-7逗号分割) + */ + private String customDay; + /** * 可预约开始时间 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/MatterListDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/MatterListDTO.java index d3497bacd1..d7c397c374 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/MatterListDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/MatterListDTO.java @@ -40,6 +40,8 @@ public class MatterListDTO implements Serializable { private String matterImg; + private String customDay; + public MatterListDTO() { this.sort = NumConstant.ZERO; this.matterName = ""; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/PartyServiceCenterConstant.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/PartyServiceCenterConstant.java index 50f6baed7e..67e25ee3f9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/PartyServiceCenterConstant.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/PartyServiceCenterConstant.java @@ -16,5 +16,6 @@ public interface PartyServiceCenterConstant { String APPOINTMENT_TYPE_EVERY_DAY = "everyDay"; String APPOINTMENT_TYPE_WORK_DAY = "workDay"; String APPOINTMENT_TYPE_WEEKEND = "weekend"; + String APPOINTMENT_TYPE_CUSTOM = "custom"; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPartyServiceCenterMatterEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPartyServiceCenterMatterEntity.java index 9248d827f2..07360e4bca 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPartyServiceCenterMatterEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPartyServiceCenterMatterEntity.java @@ -46,10 +46,15 @@ public class IcPartyServiceCenterMatterEntity extends BaseEpmetEntity { private String matterName; /** - * 预约类型,每天:everyDay,工作日:workDay,周末:weekend + * 预约类型,每天:everyDay,工作日:workDay,周末:weekend 自定义:custom */ private String appointmentType; + /** + * 类型为自定义时选择的周一~周末的时间(1-7逗号分割) + */ + private String customDay; + /** * 可预约开始时间 */ 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 14dac11c00..d07ece36b9 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 @@ -327,7 +327,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl dateList = getDateList(entity.getAppointmentType()); + List dateList = getDateList(entity.getAppointmentType(), entity.getCustomDay()); Boolean s = false; for (String d : dateList) { if (d.equals(formDTO.getAppointmentDate())){ @@ -388,7 +388,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl dateList = getDateList(entity.getAppointmentType()); + List dateList = getDateList(entity.getAppointmentType(), entity.getCustomDay()); Boolean s = false; for (String d : dateList) { if (d.equals(formDTO.getAppointmentDate())){ @@ -499,7 +499,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl l = new LambdaQueryWrapper<>(); l.eq(IcMatterAppointmentRecordEntity::getMatterId,formDTO.getMatterId()) .eq(IcMatterAppointmentRecordEntity::getAppointmentDate,formDTO.getDate()) @@ -564,14 +564,16 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl getDateList(String type) { + public List getDateList(String type, String customDay) { List result = new ArrayList<>(); if (type.equals(PartyServiceCenterConstant.APPOINTMENT_TYPE_EVERY_DAY)){ result = DateUtils.getEveryDayList(new Date(),NumConstant.SEVEN); }else if (type.equals(PartyServiceCenterConstant.APPOINTMENT_TYPE_WORK_DAY)){ result = DateUtils.getWorkDayList(new Date(),NumConstant.SEVEN); - }else { + }else if (type.equals(PartyServiceCenterConstant.APPOINTMENT_TYPE_WEEKEND)){ result = DateUtils.getWeekendDayList(new Date(),NumConstant.SEVEN); + }else if (type.equals(PartyServiceCenterConstant.APPOINTMENT_TYPE_CUSTOM)){ + result = DateUtils.getCustomDay(new Date(),NumConstant.SEVEN, customDay); } return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.47__alter_ic_party_service_center_matter.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.47__alter_ic_party_service_center_matter.sql new file mode 100644 index 0000000000..c68c1a47ad --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.47__alter_ic_party_service_center_matter.sql @@ -0,0 +1,7 @@ + +ALTER TABLE `ic_party_service_center_matter` +MODIFY COLUMN `APPOINTMENT_TYPE` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '预约类型,每天:everyDay,工作日:workDay,周末:weekend , 自定义:custom' AFTER `MATTER_NAME`, +ADD COLUMN `CUSTOM_DAY` varchar(32) NULL COMMENT '类型为自定义时选择的周一~周末的时间(1-7逗号分割)' AFTER `APPOINTMENT_TYPE`; + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml index 51fa3a720c..18983d6244 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml @@ -27,8 +27,10 @@ case when cm.APPOINTMENT_TYPE = 'everyDay' THEN CONCAT('每天',' ', cm.START_TIME,'-',cm.END_TIME) when cm.APPOINTMENT_TYPE = 'workDay' THEN CONCAT('工作日',' ', cm.START_TIME,'-',cm.END_TIME) when cm.APPOINTMENT_TYPE = 'weekend' THEN CONCAT('周末',' ', cm.START_TIME,'-',cm.END_TIME) + when cm.APPOINTMENT_TYPE = 'custom' THEN CONCAT('自定义',' ', cm.START_TIME,'-',cm.END_TIME) ELSE CONCAT(cm.START_TIME,'-',cm.END_TIME) END AS allowTime, - IFNULL(cm.MATTER_IMG,'') AS matterImg + IFNULL(cm.MATTER_IMG,'') AS matterImg, + cm.custom_day AS customDay from ic_party_service_center_matter cm where del_flag = 0 and PARTY_SERVICE_CENTER_ID = #{partyServiceCenterId}