From 9b8b635a6a2b978853be0b9ac9eaf77e26090b53 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Thu, 2 Mar 2023 16:52:40 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=E9=A2=84=E7=BA=A6=E6=97=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=B2=E9=A2=84=E7=BA=A6=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E4=B8=8E=E6=94=BE=E5=8F=B7=E6=95=B0=E9=87=8F=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ApmRecordController.java | 5 ++- .../service/impl/ApmRecordServiceImpl.java | 33 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) 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 1e779fd..a0a68a1 100644 --- a/src/main/java/org/springblade/modules/business/controller/ApmRecordController.java +++ b/src/main/java/org/springblade/modules/business/controller/ApmRecordController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.*; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.common.cache.DeptCache; import org.springblade.common.constant.BusinessConstant; import org.springblade.common.constant.CommonConstant; @@ -34,12 +35,14 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.logging.Logger; /** * 控制器 * * @author Chill */ +@Slf4j @TenantDS @RestController @RequestMapping(CommonConstant.APPLICATION_BUSINESS_NAME + "/apm-record") @@ -171,7 +174,7 @@ public class ApmRecordController extends BladeController { @PostMapping("/save") @ApiOperationSupport(order = 5) @ApiOperation(value = "新增", notes = "传入apmConfig") - public R save(@RequestBody Map apmRecordListStr) { + synchronized public R save(@RequestBody Map apmRecordListStr) { List> apmRecordMapList = (List>) apmRecordListStr.get("data"); List apmRecordList = new ArrayList<>(); diff --git a/src/main/java/org/springblade/modules/business/service/impl/ApmRecordServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/ApmRecordServiceImpl.java index cc59394..2ab04ea 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/ApmRecordServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/ApmRecordServiceImpl.java @@ -14,9 +14,12 @@ 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.dto.ApmRecordCountDTO; +import org.springblade.modules.business.entity.ApmConfig; import org.springblade.modules.business.entity.ApmRecord; import org.springblade.modules.business.entity.Blacklist; +import org.springblade.modules.business.mapper.ApmConfigMapper; import org.springblade.modules.business.mapper.ApmRecordMapper; +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.ApmRecordDetailVO; @@ -37,6 +40,7 @@ import java.util.*; @RequiredArgsConstructor public class ApmRecordServiceImpl extends BaseServiceImpl implements IApmRecordService { private final IBlacklistService blacklistService; + private final ApmConfigMapper configMapper; @Override public IPage selectDistinctRecordPage(IPage page, Long createDept, String startTime, String endTime, String cupCardNo, String project, String status) { @@ -154,6 +158,35 @@ public class ApmRecordServiceImpl extends BaseServiceImpllambdaQuery() + .eq(ApmConfig::getCreateDept, record.getCreateDept()) + .eq(ApmConfig::getApmDay, record.getApmDay()) + .eq(ApmConfig::getProject, record.getProject()) + .eq(ApmConfig::getPeriod, record.getPeriod()) + .eq(ApmConfig::getTimeFrame, record.getTimeFrame()) + ); + // 2. 获取该放号的预约总数 + List records = list(Wrappers.lambdaQuery() + .eq(ApmRecord::getCreateDept, record.getCreateDept()) + .eq(ApmRecord::getApmDay, record.getApmDay()) + .eq(ApmRecord::getProject, record.getProject()) + .eq(ApmRecord::getPeriod, record.getPeriod()) + .eq(ApmRecord::getTimeFrame, record.getTimeFrame()) + .eq(ApmRecord::getApmStatus, BusinessConstant.RECORD_STATUS_UNREGISTER) + ); + // 3 判断已预约总数是否 < 放号数, 若是, 可预约, 否则不可预约 + if (Func.isEmpty(config)) { + return "预约失败, 未找到对应放号记录"; + } + + if (!Func.isEmpty(records) && records.size() >= config.getNumberNum()) { + return "预约失败, 该项目已无余号"; + } + } + return ""; }