From 770d88924836832d91821a477102553bd401fc46 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Mon, 13 Feb 2023 18:17:57 +0800 Subject: [PATCH] code commit --- .../controller/ApmConfigController.java | 7 +- .../controller/ApmRecordController.java | 17 +--- .../controller/ArticleController.java | 34 ++++++-- .../controller/BlacklistController.java | 12 +-- .../modules/business/entity/ApmConfig.java | 2 + .../modules/business/entity/ApmRecord.java | 7 ++ .../modules/business/entity/Blacklist.java | 7 -- .../business/mapper/ApmConfigMapper.java | 5 +- .../business/mapper/ApmConfigMapper.xml | 16 +++- .../business/mapper/ApmRecordMapper.java | 2 + .../business/mapper/ApmRecordMapper.xml | 21 ++++- .../modules/business/mapper/ArticleMapper.xml | 2 +- .../business/mapper/BlackListMapper.xml | 5 +- .../business/service/IApmRecordService.java | 2 + .../business/service/IArticleService.java | 2 + .../service/impl/ApmConfigServiceImpl.java | 80 ++++++++++++------- .../service/impl/ApmRecordServiceImpl.java | 20 ++--- .../service/impl/ArticleServiceImpl.java | 12 +++ 18 files changed, 169 insertions(+), 84 deletions(-) diff --git a/src/main/java/org/springblade/modules/business/controller/ApmConfigController.java b/src/main/java/org/springblade/modules/business/controller/ApmConfigController.java index 11a31e4..8a3c093 100644 --- a/src/main/java/org/springblade/modules/business/controller/ApmConfigController.java +++ b/src/main/java/org/springblade/modules/business/controller/ApmConfigController.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiSort; import io.swagger.annotations.*; import lombok.AllArgsConstructor; -import org.springblade.common.constant.BusinessConstant; import org.springblade.common.constant.CommonConstant; import org.springblade.common.enums.ErrorMsgEnum; import org.springblade.common.utils.CommonDateUtil; @@ -14,7 +13,6 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tenant.annotation.TenantDS; import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.business.entity.ApmConfig; @@ -24,7 +22,6 @@ import org.springblade.modules.business.vo.ApmConfigVO; import org.springblade.modules.business.wrapper.ApmConfigWrapper; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -124,8 +121,8 @@ public class ApmConfigController extends BladeController { /** * @param query 分页参数 * @param createDept 医院ID - * @param startTime 查询开始时间, 格式yyyy-MM-dd HH:mm:ss - * @param endTime 查询结束时间, 格式yyyy-MM-dd HH:mm:ss + * @param startTime 查询开始时间, 格式yyyy-MM-dd + * @param endTime 查询结束时间, 格式yyyy-MM-dd * @param project 体检项目名 * @return */ diff --git a/src/main/java/org/springblade/modules/business/controller/ApmRecordController.java b/src/main/java/org/springblade/modules/business/controller/ApmRecordController.java index 45f8e88..97da61a 100644 --- a/src/main/java/org/springblade/modules/business/controller/ApmRecordController.java +++ b/src/main/java/org/springblade/modules/business/controller/ApmRecordController.java @@ -1,7 +1,6 @@ package org.springblade.modules.business.controller; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSort; import io.swagger.annotations.Api; @@ -12,31 +11,21 @@ import lombok.AllArgsConstructor; import org.springblade.common.constant.BusinessConstant; import org.springblade.common.constant.CommonConstant; import org.springblade.common.enums.ErrorMsgEnum; -import org.springblade.common.utils.CommonDateUtil; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tenant.annotation.TenantDS; import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.business.entity.ApmRecord; -import org.springblade.modules.business.entity.Blacklist; import org.springblade.modules.business.service.IApmRecordService; -import org.springblade.modules.business.service.IBlacklistService; import org.springblade.modules.business.vo.ApmRecordVO; -import org.springblade.modules.business.vo.DeptCmpVO; import org.springblade.modules.business.wrapper.ApmRecordWrapper; -import org.springblade.modules.system.entity.Dept; -import org.springblade.modules.system.service.IDeptService; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; -import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.Map; /** * 控制器 @@ -125,7 +114,7 @@ public class ApmRecordController extends BladeController { }) @ApiOperationSupport(order = 4) @ApiOperation(value = "分页", notes = "传入notice") - public R> selectPage(Query query, @RequestParam Long createDept, @RequestParam String startTime, @RequestParam String endTime, @RequestParam String cupCardNo) { + public R> selectPage(Query query, Long createDept, String startTime, String endTime, String cupCardNo) { IPage page = recordService.selectPage(Condition.getPage(query), createDept, startTime, endTime, cupCardNo); return R.data(page); } @@ -151,11 +140,11 @@ public class ApmRecordController extends BladeController { cardNo = record.getCupCardNo(); } - if (apmDay != record.getApmDay()) { + if (!DateUtil.format(apmDay, DateUtil.PATTERN_DATE).equals(DateUtil.format(record.getApmDay(), DateUtil.PATTERN_DATE))) { return R.fail("预约失败, 一次只能预约同一天的体检项目"); } - if (cardNo != record.getCupCardNo()) { + if (!cardNo.equals(record.getCupCardNo())) { return R.fail("预约失败, 一次只能预约同一个人"); } diff --git a/src/main/java/org/springblade/modules/business/controller/ArticleController.java b/src/main/java/org/springblade/modules/business/controller/ArticleController.java index 68aed66..3e772a9 100644 --- a/src/main/java/org/springblade/modules/business/controller/ArticleController.java +++ b/src/main/java/org/springblade/modules/business/controller/ArticleController.java @@ -40,7 +40,7 @@ public class ArticleController extends BladeController { @GetMapping("/detail-by-id") @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入id") - public R detailById(Long id) { + public R detailById(@RequestParam Long id) { Article article = articleService.getById(id); return R.data(ArticleWrapper.build().entityVO(article)); } @@ -51,7 +51,7 @@ public class ArticleController extends BladeController { @GetMapping("/detail-publish") @ApiOperationSupport(order = 2) @ApiOperation(value = "详情-已发布", notes = "传入医院id") - public R detailPublish(Long createDept) { + public R detailPublish(@RequestParam Long createDept) { Article article = articleService.getPublishArticle(createDept); return R.data(ArticleWrapper.build().entityVO(article)); } @@ -68,7 +68,7 @@ public class ArticleController extends BladeController { }) @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入notice") - public R> selectPage(Query query, @RequestParam Long createDept, @RequestParam String startTime, @RequestParam String endTime, @RequestParam String title) { + public R> selectPage(Query query, @RequestParam Long createDept, String startTime, String endTime, String title) { IPage
pages = articleService.selectPage(Condition.getPage(query), createDept, startTime, endTime, title); return R.data(ArticleWrapper.build().pageVO(pages)); } @@ -102,7 +102,7 @@ public class ArticleController extends BladeController { @PostMapping("/publish") @ApiOperationSupport(order = 5) @ApiOperation(value = "更新发布状态", notes = "更新发布状态") - public R publish(Long id, String publishFlag) { + public R publish(@RequestParam Long id, @RequestParam String publishFlag) { if (Func.isEmpty(id)) { return R.fail("更新失败, 更新对象ID为空"); } @@ -110,14 +110,38 @@ public class ArticleController extends BladeController { return R.fail("更新失败, 发布状态标记为空为空"); } + return R.status(articleService.publish(id, publishFlag)); } + /** + * 新增 + */ + @PostMapping("/save-publish") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增", notes = "article") + public R saveAndPublish(@RequestBody Article article) { + if (Func.isEmpty(article)) { + return R.fail("保存失败, 保存对象为空"); + } + + if (Func.isBlank(article.getTitle())) { + return R.fail("保存失败, 文章标题为空"); + } + + if (Func.isBlank(article.getContent())) { + return R.fail("保存失败, 文章内容为空"); + } + + article.setStatus(BusinessConstant.ARTICLE_STATUS_SAVE); + return R.status(articleService.saveAndPublish(article)); + } + /** * 删除 */ @PostMapping("/remove") - @ApiOperationSupport(order = 6) + @ApiOperationSupport(order = 7) @ApiOperation(value = "逻辑删除", notes = "传入id") public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) { boolean temp = articleService.deleteLogic(Func.toLongList(ids)); diff --git a/src/main/java/org/springblade/modules/business/controller/BlacklistController.java b/src/main/java/org/springblade/modules/business/controller/BlacklistController.java index 4ec30dd..1bab03e 100644 --- a/src/main/java/org/springblade/modules/business/controller/BlacklistController.java +++ b/src/main/java/org/springblade/modules/business/controller/BlacklistController.java @@ -89,19 +89,21 @@ public class BlacklistController extends BladeController { @GetMapping("/user-blacklist") @ApiOperationSupport(order = 4) @ApiOperation(value = "获取正在生效的黑名单", notes = "传入用户证件号") - public R userBlacklist(String cupCardNo) { + public R userBlacklist(String cupCardNo) { if (Func.isEmpty(cupCardNo)) { return R.fail(ErrorMsgEnum.PARAMS_NULL_CUP_CARD_NO.getValue()); } Blacklist blacklist = blacklistService.getLatelyRecord(cupCardNo); - String currentDayStr = DateUtil.format(DateUtil.now(), CommonDateUtil.PATTERN_DATETIME_MINI); - if ((Integer.parseInt(currentDayStr) - Integer.parseInt(blacklist.getBlacklistTime())) < BusinessConstant.BLACKLIST_RANGE) { - return R.data(blacklist); + if (Func.isNotEmpty(blacklist) && CommonDateUtil.daysBetween(DateUtil.now(), blacklist.getCreateTime()) < BusinessConstant.BLACKLIST_RANGE) { + int days = CommonDateUtil.daysBetween(blacklist.getCreateTime(), DateUtil.now()); + + + return R.data("由于您未及时进行报到,已被拉黑请于" + (BusinessConstant.BLACKLIST_RANGE - days) + "日后再次进行预约"); } - return R.data(null); + return R.data(""); } } diff --git a/src/main/java/org/springblade/modules/business/entity/ApmConfig.java b/src/main/java/org/springblade/modules/business/entity/ApmConfig.java index 7ab7a86..2307c70 100644 --- a/src/main/java/org/springblade/modules/business/entity/ApmConfig.java +++ b/src/main/java/org/springblade/modules/business/entity/ApmConfig.java @@ -1,6 +1,8 @@ package org.springblade.modules.business.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/org/springblade/modules/business/entity/ApmRecord.java b/src/main/java/org/springblade/modules/business/entity/ApmRecord.java index e19cee4..83bc209 100644 --- a/src/main/java/org/springblade/modules/business/entity/ApmRecord.java +++ b/src/main/java/org/springblade/modules/business/entity/ApmRecord.java @@ -1,10 +1,13 @@ package org.springblade.modules.business.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.tool.utils.DateUtil; +import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -41,6 +44,8 @@ public class ApmRecord extends BaseEntity { /** * 放号天 */ + @DateTimeFormat(pattern = DateUtil.PATTERN_DATE) + @JsonFormat(pattern = DateUtil.PATTERN_DATE) @ApiModelProperty(value = "放号天") private Date apmDay; @@ -71,6 +76,8 @@ public class ApmRecord extends BaseEntity { /** * 预约时间 */ + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) @ApiModelProperty(value = "预约时间") private Date apmTime; diff --git a/src/main/java/org/springblade/modules/business/entity/Blacklist.java b/src/main/java/org/springblade/modules/business/entity/Blacklist.java index adf89d5..0f643a7 100644 --- a/src/main/java/org/springblade/modules/business/entity/Blacklist.java +++ b/src/main/java/org/springblade/modules/business/entity/Blacklist.java @@ -44,11 +44,4 @@ public class Blacklist extends BaseEntity { @ApiModelProperty(value = "预约时间") private Date apmTime; - /** - * 拉黑时间, 格式yyyyMMdd - */ - @ApiModelProperty(value = "拉黑时间, 格式yyyyMMdd") - private String blacklistTime; - - } diff --git a/src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.java b/src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.java index 3b82b9f..5b9381d 100644 --- a/src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.java +++ b/src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.java @@ -35,9 +35,10 @@ public interface ApmConfigMapper extends BaseMapper { * @param project * @return */ - List selectPage(IPage page, @Param("createDept") Long createDept, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("project") String project); + List selectConfigPage(IPage page, @Param("createDept") Long createDept, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("project") String project); - List selectList(@Param("createDept") Long createDept, @Param("apmDay") String apmDay, @Param("project") String project); + List selectConfigList(@Param("createDept") Long createDept, @Param("apmDay") String apmDay, @Param("project") String project); + void deleteConfig(@Param("createDept") Long createDept, @Param("apmDayList") List apmDayList, @Param("projectList") List projectList); } diff --git a/src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.xml b/src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.xml index dae0c65..59f6d33 100644 --- a/src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.xml @@ -19,7 +19,7 @@ - SELECT distinct ac.create_dept, ac.project, ac.apm_day FROM ca_apm_config ac WHERE ac.is_deleted = 0 and ac.create_dept = #{createDept} @@ -34,7 +34,7 @@ - SELECT * FROM ca_apm_config ac WHERE ac.is_deleted = 0 @@ -55,4 +55,16 @@ group by DATE_FORMAT(ac.apm_day, '%Y-%m-%d') + + + delete from ca_apm_config ac where ac.create_dept = #{createDept} + and ac.project in + + #{projectList} + + and ac.apm_day in + + #{apmDayList} + + diff --git a/src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.java b/src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.java index 108ee79..29b25a4 100644 --- a/src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.java +++ b/src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.java @@ -31,4 +31,6 @@ public interface ApmRecordMapper extends BaseMapper { List countAmpNum(@Param("createDept") Long createDept, @Param("apmDay") String apmDay); + List countAmpNumWithDays(@Param("createDept") Long createDept, @Param("apmDay") List apmDayList); + } diff --git a/src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.xml b/src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.xml index 0a53ba6..2180f32 100644 --- a/src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.xml @@ -35,7 +35,10 @@ + + diff --git a/src/main/java/org/springblade/modules/business/mapper/ArticleMapper.xml b/src/main/java/org/springblade/modules/business/mapper/ArticleMapper.xml index 44533d8..2759d2e 100644 --- a/src/main/java/org/springblade/modules/business/mapper/ArticleMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/ArticleMapper.xml @@ -35,7 +35,7 @@ update ca_article set publish_sta = #{publishVal} - , publish_time = now() + , publish_time = now() where id = #{id} diff --git a/src/main/java/org/springblade/modules/business/mapper/BlackListMapper.xml b/src/main/java/org/springblade/modules/business/mapper/BlackListMapper.xml index 35dcbdf..5af70cf 100644 --- a/src/main/java/org/springblade/modules/business/mapper/BlackListMapper.xml +++ b/src/main/java/org/springblade/modules/business/mapper/BlackListMapper.xml @@ -15,7 +15,6 @@ - @@ -37,7 +36,7 @@ select * from ca_blacklist where is_deleted = 0 and cup_card_no = #{cupCardNo} - order by blacklistTime desc + order by create_time desc limit 1 diff --git a/src/main/java/org/springblade/modules/business/service/IApmRecordService.java b/src/main/java/org/springblade/modules/business/service/IApmRecordService.java index 508ef5b..99839d5 100644 --- a/src/main/java/org/springblade/modules/business/service/IApmRecordService.java +++ b/src/main/java/org/springblade/modules/business/service/IApmRecordService.java @@ -35,4 +35,6 @@ public interface IApmRecordService extends BaseService { String checkApmRecordSave(List apmRecordList); List countAmpNum(Long createDept, String apmDay); + + List countAmpNum(Long createDept, List apmDayList); } diff --git a/src/main/java/org/springblade/modules/business/service/IArticleService.java b/src/main/java/org/springblade/modules/business/service/IArticleService.java index 4ab9c75..6efb2d5 100644 --- a/src/main/java/org/springblade/modules/business/service/IArticleService.java +++ b/src/main/java/org/springblade/modules/business/service/IArticleService.java @@ -25,4 +25,6 @@ public interface IArticleService extends BaseService
{ Article getPublishArticle(Long creteDept); boolean publish(Long id, String publishFlag); + + boolean saveAndPublish(Article article); } diff --git a/src/main/java/org/springblade/modules/business/service/impl/ApmConfigServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/ApmConfigServiceImpl.java index de09b1e..1f1c7f3 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/ApmConfigServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/ApmConfigServiceImpl.java @@ -2,7 +2,7 @@ package org.springblade.modules.business.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; import org.springblade.common.constant.BusinessConstant; import org.springblade.common.utils.CommonDateUtil; import org.springblade.core.mp.base.BaseServiceImpl; @@ -11,22 +11,17 @@ import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; -import org.springblade.core.tool.utils.SpringUtil; import org.springblade.modules.business.dto.ApmRecordCountDTO; import org.springblade.modules.business.entity.ApmConfig; import org.springblade.modules.business.entity.ApmRecord; import org.springblade.modules.business.mapper.ApmConfigMapper; import org.springblade.modules.business.service.IApmConfigService; import org.springblade.modules.business.service.IApmRecordService; -import org.springblade.modules.business.service.IBlacklistService; import org.springblade.modules.business.vo.ApmConfigListVO; import org.springblade.modules.business.wrapper.ApmConfigListWrapper; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -36,13 +31,10 @@ import java.util.stream.Collectors; * @author Chill */ @Service +@RequiredArgsConstructor public class ApmConfigServiceImpl extends BaseServiceImpl implements IApmConfigService { - private static final IApmRecordService recordService; - - static { - recordService = SpringUtil.getBean(IApmRecordService.class); - } + private final IApmRecordService recordService; @Override public Map> alreadyConfigDay(Long createDept, String startTime, String endTime) { @@ -63,13 +55,13 @@ public class ApmConfigServiceImpl extends BaseServiceImpl selectPage(IPage page, Long createDept, String startTime, String endTime, String project) { // 由于每个时段保存了一条记录, 故分页时, 先使用distinct查询(医院, 项目 配置天)进行分页 - List pageRecord = baseMapper.selectPage(page, createDept, startTime, endTime, project); + List pageRecord = baseMapper.selectConfigPage(page, createDept, startTime, endTime, project); page.setRecords(pageRecord); IPage result = ApmConfigListWrapper.build().pageVO(page); result.getRecords().forEach(vo -> { // 根据(医院, 项目 配置天)获取配置详细 - List configList = baseMapper.selectList(vo.getCreateDept(), DateUtil.format(vo.getApmDay(), DateUtil.PATTERN_DATETIME), vo.getProject()); + List configList = baseMapper.selectConfigList(vo.getCreateDept(), DateUtil.format(vo.getApmDay(), DateUtil.PATTERN_DATETIME), vo.getProject()); // 获取该天的所有预约统计 List apmCountList = recordService.countAmpNum(createDept, DateUtil.format(vo.getApmDay(), DateUtil.PATTERN_DATETIME)); @@ -169,23 +161,15 @@ public class ApmConfigServiceImpl extends BaseServiceImpl dayList, List configListVOS) { String msg = ""; + List daySearchList = new ArrayList<>(); - List alreadyConfList = baseMapper.selectList(Wrappers.lambdaQuery() - .eq(ApmConfig::getCreateDept, createDept) - .in(ApmConfig::getApmDay, dayList)); - Map alreadyConfMap = new HashMap<>(); - if (Func.isNotEmpty(alreadyConfList)) { - alreadyConfMap = alreadyConfList.stream().collect(Collectors.toMap( - config -> config.getProject() + config.getApmDay() + config.getProject() + config.getTimeFrame(), Function.identity() - )); - } - + // 1. 先根据用户角色判断放号的天是否短于提前几天放号的配置 BladeUser user = AuthUtil.getUser(); int configSubDays = BusinessConstant.ROLE_NAME_HOSPITAL.equals(user.getRoleName()) ? BusinessConstant.HOSPITAL_APM_CONFIG_RANGE : 1; - List configList = new ArrayList<>(); for (String day : dayList) { - int subDays = CommonDateUtil.daysBetween(DateUtil.now(), DateUtil.parse(day, DateUtil.PATTERN_DATETIME)); + Date configApmDay = DateUtil.parse(day + BusinessConstant.DATE_STR_HMS, DateUtil.PATTERN_DATETIME); + int subDays = CommonDateUtil.daysBetween(DateUtil.now(), configApmDay); if (subDays < configSubDays) { return "保存失败, 只能保存" + configSubDays + "天之后的放号配置"; } @@ -197,15 +181,48 @@ public class ApmConfigServiceImpl extends BaseServiceImpl alreadyConfList = baseMapper.selectList(Wrappers.lambdaQuery() + .eq(ApmConfig::getCreateDept, createDept) + .in(ApmConfig::getApmDay, daySearchList)); + Map alreadyConfMap = new HashMap<>(); + if (Func.isNotEmpty(alreadyConfList)) { + alreadyConfMap = alreadyConfList.stream().collect(Collectors.toMap( + config -> config.getProject() + config.getApmDay() + config.getProject() + config.getTimeFrame(), Function.identity() + )); + + List records = recordService.countAmpNum(createDept, daySearchList); + if (Func.isEmpty(records)) { + records = new ArrayList<>(); + } + Map alreadyConfCountMap = records.stream().collect(Collectors.toMap( + dto -> dto.getProject() + dto.getApmDay() + dto.getProject() + dto.getTimeFrame(), dto -> dto.getApmNum() + )); + + for (ApmConfig config : configList) { + String key = config.getProject() + config.getApmDay() + config.getProject() + config.getTimeFrame(); + + // 若此次修改的放号没有对应的放号配置或已预约统计为0, 验证通过 + if (alreadyConfCountMap.containsKey(key) || alreadyConfCountMap.containsKey(key)) { + continue; + } + + if (config.getNumberNum() < alreadyConfCountMap.get(key)) { + return "保存失败, 放号数量不能低于已预约的数量"; + } + } + } return msg; } @@ -217,9 +234,12 @@ public class ApmConfigServiceImpl extends BaseServiceImpl configList = new ArrayList<>(); + List daySearchList = new ArrayList<>(); + List projectList = new ArrayList<>(); for (String day : dayList) { for (ApmConfigListVO vo : configListVOS) { + projectList.add(vo.getProject()); for (Map detail : vo.getDetailList()) { String period = detail.containsKey(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_PERIOD) ? (String) detail.get(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_PERIOD) : ""; String timeFrame = detail.containsKey(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_TIME_FRAME) ? (String) detail.get(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_TIME_FRAME) : ""; @@ -233,8 +253,14 @@ public class ApmConfigServiceImpl extends BaseServiceImpl implements IApmRecordService { - private static final IBlacklistService blacklistService; - - static { - blacklistService = SpringUtil.getBean(IBlacklistService.class); - } + private final IBlacklistService blacklistService; @Override public IPage selectPage(IPage page, Long createDept, String startTime, String endTime, String cupCardNo) { @@ -53,8 +51,7 @@ public class ApmRecordServiceImpl extends BaseServiceImpl countAmpNum(Long createDept, List apmDayList) { + return baseMapper.countAmpNumWithDays(createDept, apmDayList); + } + } diff --git a/src/main/java/org/springblade/modules/business/service/impl/ArticleServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/ArticleServiceImpl.java index 321f105..886c005 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/ArticleServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/ArticleServiceImpl.java @@ -49,4 +49,16 @@ public class ArticleServiceImpl extends BaseServiceImpl return true; } + @Override + public boolean saveAndPublish(Article article) { + Article articleCheck = getPublishArticle(article.getCreateDept()); + if (Func.isNotEmpty(articleCheck)) { + baseMapper.updatePublishSta(articleCheck.getId(), BusinessConstant.ARTICLE_STATUS_CANCEL); + } + + article.setPublishSta(BusinessConstant.ARTICLE_STATUS_CANCEL + ""); + saveOrUpdate(article); + return true; + } + }