master
liuqingkun 3 years ago
parent 448167dbcf
commit f645195dab
  1. 8
      src/main/java/org/springblade/modules/business/controller/ApmRecordController.java
  2. 2
      src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.java
  3. 3
      src/main/java/org/springblade/modules/business/mapper/ApmConfigMapper.xml
  4. 4
      src/main/java/org/springblade/modules/business/mapper/ApmRecordMapper.xml
  5. 3
      src/main/java/org/springblade/modules/business/service/IApmConfigService.java
  6. 31
      src/main/java/org/springblade/modules/business/service/impl/ApmConfigServiceImpl.java
  7. 8
      src/main/java/org/springblade/modules/business/service/impl/ApmRecordServiceImpl.java
  8. 6
      src/main/java/org/springblade/modules/business/vo/ApmConfigListVO.java
  9. 19
      src/main/resources/application-dev.yml
  10. 12
      src/main/resources/application.yml

@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.common.cache.DictBizCache;
import org.springblade.common.constant.BusinessConstant; import org.springblade.common.constant.BusinessConstant;
import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.CommonConstant;
import org.springblade.common.enums.ErrorMsgEnum; import org.springblade.common.enums.ErrorMsgEnum;
import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tenant.annotation.TenantDS; import org.springblade.core.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.BeanUtil;
@ -146,6 +149,11 @@ public class ApmRecordController extends BladeController {
@ApiOperationSupport(order = 4) @ApiOperationSupport(order = 4)
@ApiOperation(value = "分页", notes = "分页") @ApiOperation(value = "分页", notes = "分页")
public R<IPage<ApmRecordListVO>> selectPage(Query query, Long createDept, String startTime, String endTime, String cupCardNo, String project) { public R<IPage<ApmRecordListVO>> selectPage(Query query, Long createDept, String startTime, String endTime, String cupCardNo, String project) {
BladeUser user = AuthUtil.getUser();
if (!BusinessConstant.ROLE_NAME_HOSPITAL.equals(user.getRoleName())) {
createDept = null;
}
IPage<ApmRecordListVO> page = recordService.selectRecordPage(Condition.getPage(query), createDept, startTime, endTime, cupCardNo, project); IPage<ApmRecordListVO> page = recordService.selectRecordPage(Condition.getPage(query), createDept, startTime, endTime, cupCardNo, project);
return R.data(page); return R.data(page);
} }

@ -35,7 +35,7 @@ public interface ApmConfigMapper extends BaseMapper<ApmConfig> {
* @param project * @param project
* @return * @return
*/ */
List<ApmConfig> selectConfigPage(IPage page, @Param("createDept") Long createDept, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("project") String project); IPage<ApmConfig> selectConfigPage(IPage page, @Param("createDept") Long createDept, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("project") String project);
List<ApmConfig> selectConfigList(@Param("createDept") Long createDept, @Param("apmDay") String apmDay, @Param("project") String project); List<ApmConfig> selectConfigList(@Param("createDept") Long createDept, @Param("apmDay") String apmDay, @Param("project") String project);

@ -42,7 +42,7 @@
FROM ca_apm_config ac FROM ca_apm_config ac
WHERE ac.is_deleted = 0 WHERE ac.is_deleted = 0
and ac.create_dept = #{createDept} and ac.create_dept = #{createDept}
and ac.apm_day &gt;= #{apmDay} and ac.apm_day = #{apmDay}
and ac.project = #{project} and ac.project = #{project}
</select> </select>
@ -70,6 +70,7 @@
#{dayStr} #{dayStr}
</foreach> </foreach>
</delete> </delete>
<delete id="deleteConfigA"> <delete id="deleteConfigA">
delete from ca_apm_config where create_dept = #{createDept} delete from ca_apm_config where create_dept = #{createDept}
and project in ${projectListStr} and project in ${projectListStr}

@ -94,10 +94,12 @@
<if test="createDept != '' and createDept != null"> <if test="createDept != '' and createDept != null">
and create_dept = #{createDept} and create_dept = #{createDept}
</if> </if>
<if test="apmDayList != null">
and apm_day in and apm_day in
<foreach collection="apmDayList" item="dayStr" index="index" open="(" close=")" separator=", "> <foreach collection="apmDayList" item="dayStr" index="index" open="(" close=")" separator=", ">
#{apmDayList} #{dayStr}
</foreach> </foreach>
</if>
group by DATE_FORMAT(apm_day, '%Y-%m-%d'), project, period, time_frame group by DATE_FORMAT(apm_day, '%Y-%m-%d'), project, period, time_frame
</select> </select>

@ -1,6 +1,7 @@
package org.springblade.modules.business.service; package org.springblade.modules.business.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.entity.ApmConfig; import org.springblade.modules.business.entity.ApmConfig;
import org.springblade.modules.business.vo.ApmConfigListVO; import org.springblade.modules.business.vo.ApmConfigListVO;
@ -13,7 +14,7 @@ import java.util.Map;
* *
* @author Chill * @author Chill
*/ */
public interface IApmConfigService extends BaseService<ApmConfig> { public interface IApmConfigService extends IService<ApmConfig> {
/** /**
* 获取时间范围内, 已配置放号的天列表 * 获取时间范围内, 已配置放号的天列表

@ -2,11 +2,14 @@ package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.beetl.core.util.ArrayMap; import org.beetl.core.util.ArrayMap;
import org.springblade.common.cache.DeptCache;
import org.springblade.common.cache.DictBizCache; import org.springblade.common.cache.DictBizCache;
import org.springblade.common.constant.BusinessConstant; import org.springblade.common.constant.BusinessConstant;
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.utils.CommonDateUtil; import org.springblade.common.utils.CommonDateUtil;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
@ -23,6 +26,7 @@ import org.springblade.modules.business.service.IApmConfigService;
import org.springblade.modules.business.service.IApmRecordService; import org.springblade.modules.business.service.IApmRecordService;
import org.springblade.modules.business.vo.ApmConfigListVO; import org.springblade.modules.business.vo.ApmConfigListVO;
import org.springblade.modules.business.wrapper.ApmConfigListWrapper; import org.springblade.modules.business.wrapper.ApmConfigListWrapper;
import org.springblade.modules.system.entity.Dept;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@ -31,12 +35,14 @@ import java.util.stream.Collectors;
/** /**
* 服务实现类 * 服务实现类
* <p>
* BaseServiceImpl中的存储对象方法会自动更新bean中的公共字段, 如create_time, update_time等
* *
* @author Chill * @author Chill
*/ */
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ApmConfigServiceImpl extends BaseServiceImpl<ApmConfigMapper, ApmConfig> implements IApmConfigService { public class ApmConfigServiceImpl extends ServiceImpl<ApmConfigMapper, ApmConfig> implements IApmConfigService {
private final IApmRecordService recordService; private final IApmRecordService recordService;
@ -73,11 +79,13 @@ public class ApmConfigServiceImpl extends BaseServiceImpl<ApmConfigMapper, ApmCo
@Override @Override
public IPage<ApmConfigListVO> selectPage(IPage<ApmConfig> page, Long createDept, String startTime, String endTime, String project) { public IPage<ApmConfigListVO> selectPage(IPage<ApmConfig> page, Long createDept, String startTime, String endTime, String project) {
// 由于每个时段保存了一条记录, 故分页时, 先使用distinct查询(医院, 项目 配置天)进行分页 // 由于每个时段保存了一条记录, 故分页时, 先使用distinct查询(医院, 项目 配置天)进行分页
List<ApmConfig> pageRecord = baseMapper.selectConfigPage(page, createDept, startTime, endTime, project); IPage<ApmConfig> pageRecord = baseMapper.selectConfigPage(page, createDept, startTime, endTime, project);
page.setRecords(pageRecord);
IPage<ApmConfigListVO> result = ApmConfigListWrapper.build().pageVO(page); IPage<ApmConfigListVO> result = ApmConfigListWrapper.build().pageVO(pageRecord);
result.getRecords().forEach(vo -> { result.getRecords().forEach(vo -> {
Dept hospital = DeptCache.getDept(vo.getCreateDept());
vo.setCreateDeptName(Func.isNotEmpty(hospital) ? hospital.getDeptName() : "");
// 根据(医院, 项目 配置天)获取配置详细 // 根据(医院, 项目 配置天)获取配置详细
List<ApmConfig> configList = baseMapper.selectConfigList(vo.getCreateDept(), DateUtil.format(vo.getApmDay(), DateUtil.PATTERN_DATETIME), vo.getProject()); List<ApmConfig> configList = baseMapper.selectConfigList(vo.getCreateDept(), DateUtil.format(vo.getApmDay(), DateUtil.PATTERN_DATETIME), vo.getProject());
@ -201,6 +209,7 @@ public class ApmConfigServiceImpl extends BaseServiceImpl<ApmConfigMapper, ApmCo
Integer numberNum = detail.containsKey(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_NUMBER_NUM) ? (Integer) detail.get(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_NUMBER_NUM) : 0; Integer numberNum = detail.containsKey(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_NUMBER_NUM) ? (Integer) detail.get(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_NUMBER_NUM) : 0;
ApmConfig config = BeanUtil.copy(vo, ApmConfig.class); ApmConfig config = BeanUtil.copy(vo, ApmConfig.class);
config.setCreateDept(createDept);
config.setApmDay(configApmDay); config.setApmDay(configApmDay);
config.setPeriod(period); config.setPeriod(period);
config.setTimeFrame(timeFrame); config.setTimeFrame(timeFrame);
@ -235,14 +244,18 @@ public class ApmConfigServiceImpl extends BaseServiceImpl<ApmConfigMapper, ApmCo
)); ));
for (ApmConfig config : configList) { for (ApmConfig config : configList) {
String key = config.getProject() + config.getApmDay() + config.getProject() + config.getTimeFrame(); String key = config.getProject() + DateUtil.format(config.getApmDay(), DateUtil.PATTERN_DATE) + config.getProject() + config.getTimeFrame();
if (Func.isEmpty(config.getNumberNum()) || config.getNumberNum() <= 0) {
return "保存失败, 放号数量必须大于0";
}
// 若此次修改的放号没有对应的放号配置或已预约统计为0, 验证通过 // 若此次修改的放号没有对应的放号配置或已预约统计为0, 验证通过
if (alreadyConfMap.containsKey(key) || alreadyConfCountMap.containsKey(key)) { if (alreadyConfMap.containsKey(key) || alreadyConfCountMap.containsKey(key)) {
continue; continue;
} }
if (config.getNumberNum() < alreadyConfCountMap.get(key)) { if (alreadyConfCountMap.containsKey(key) && config.getNumberNum() < alreadyConfCountMap.get(key)) {
return "保存失败, 放号数量不能低于已预约的数量"; return "保存失败, 放号数量不能低于已预约的数量";
} }
} }
@ -266,6 +279,12 @@ public class ApmConfigServiceImpl extends BaseServiceImpl<ApmConfigMapper, ApmCo
Integer numberNum = detail.containsKey(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_NUMBER_NUM) ? (Integer) detail.get(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_NUMBER_NUM) : 0; Integer numberNum = detail.containsKey(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_NUMBER_NUM) ? (Integer) detail.get(BusinessConstant.MAP_KEY_APM_CONFIG_LIST_NUMBER_NUM) : 0;
ApmConfig config = BeanUtil.copy(vo, ApmConfig.class); ApmConfig config = BeanUtil.copy(vo, ApmConfig.class);
config.setCreateDept(createDept);
config.setCreateUser(AuthUtil.getUserId());
config.setCreateTime(DateUtil.now());
config.setUpdateUser(AuthUtil.getUserId());
config.setUpdateTime(DateUtil.now());
config.setStatus(BusinessConstant.BOOLEAN_INT_TRUE);
config.setApmDay(DateUtil.parse(day, DateUtil.PATTERN_DATE)); config.setApmDay(DateUtil.parse(day, DateUtil.PATTERN_DATE));
config.setPeriod(period); config.setPeriod(period);
config.setTimeFrame(timeFrame); config.setTimeFrame(timeFrame);

@ -92,11 +92,11 @@ public class ApmRecordServiceImpl extends BaseServiceImpl<ApmRecordMapper, ApmRe
// 若用户在该天有预约, 1. 判断预约医院是否相同, 2. 判断预约项目是否重复 // 若用户在该天有预约, 1. 判断预约医院是否相同, 2. 判断预约项目是否重复
for (ApmRecord record : currentApmList) { for (ApmRecord record : currentApmList) {
for (ApmRecord apmRecord : apmRecordList) { for (ApmRecord apmRecord : apmRecordList) {
if (record.getCreateDept() != apmRecord.getCreateDept()) { if (!record.getCreateDept().equals(apmRecord.getCreateDept())) {
return "预约失败, 本日已有其他医院的预约"; return "预约失败, 本日已有其他医院的预约";
} }
if (record.getProject() == apmRecord.getProject()) { if (record.getProject().equals(apmRecord.getProject())) {
return "预约失败, 本日已有此项目的预约"; return "预约失败, 本日已有此项目的预约";
} }
} }
@ -107,7 +107,9 @@ public class ApmRecordServiceImpl extends BaseServiceImpl<ApmRecordMapper, ApmRe
@Override @Override
public List<ApmRecordCountDTO> countAmpNum(Long createDept, String apmDay) { public List<ApmRecordCountDTO> countAmpNum(Long createDept, String apmDay) {
return baseMapper.countAmpNumWithDays(createDept, Arrays.asList(apmDay)); List<String> apmDayList = new ArrayList<>();
apmDayList.add(apmDay);
return baseMapper.countAmpNumWithDays(createDept, apmDayList);
} }
@Override @Override

@ -24,6 +24,12 @@ public class ApmConfigListVO implements Serializable {
@ApiModelProperty(value = "创建部门") @ApiModelProperty(value = "创建部门")
private Long createDept; private Long createDept;
/**
* 创建部门名称
*/
@ApiModelProperty(value = "创建部门名称")
private String createDeptName;
/** /**
* 体检项目 * 体检项目
*/ */

@ -26,7 +26,20 @@ blade:
address: redis://127.0.0.1:6379 address: redis://127.0.0.1:6379
#本地文件上传 #本地文件上传
file: file:
remote-mode: false remote-mode: true
upload-domain: http://localhost:8999 upload-domain: http://127.0.0.1:8999
remote-path: /usr/share/nginx/html remote-path: D:\WorkSoft\minio\data
#oss默认配置
oss:
enabled: false
name: minio
tenant-mode: false
endpoint: http://127.0.0.1:9000
access-key: admin
secret-key: 12345678
# access-key: minioadmin
# secret-key: minioadmin
# access-key: Ycu4QN8np3TrTJDd
# secret-key: WGwePhEBJE6ekD8Etv7tJh8GCDwZd7zp
bucket-name: hcu-cgs

@ -1,6 +1,6 @@
#服务器配置 #服务器配置
server: server:
port: 8088 port: 80
undertow: undertow:
threads: threads:
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
@ -112,16 +112,6 @@ report:
provider: provider:
prefix: blade- prefix: blade-
#oss默认配置
oss:
enabled: true
name: qiniu
tenant-mode: true
endpoint: http://prt1thnw3.bkt.clouddn.com
access-key: N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h
secret-key: AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS
bucket-name: bladex
#blade配置 #blade配置
blade: blade:
#token配置 #token配置

Loading…
Cancel
Save