|
@@ -1,23 +1,29 @@
|
|
|
package com.ruoyi.zhdd.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
-import com.ruoyi.common.utils.StringUtils;
|
|
|
-import com.ruoyi.common.utils.PageUtils;
|
|
|
-import com.ruoyi.common.core.page.PagePlus;
|
|
|
-import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
|
|
+import com.ruoyi.common.core.page.PagePlus;
|
|
|
+import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
+import com.ruoyi.common.exception.ServiceException;
|
|
|
+import com.ruoyi.common.utils.PageUtils;
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
+import com.ruoyi.zhdd.domain.DutyEmp;
|
|
|
import com.ruoyi.zhdd.domain.bo.DutyEmpBo;
|
|
|
import com.ruoyi.zhdd.domain.vo.DutyEmpVo;
|
|
|
-import com.ruoyi.zhdd.domain.DutyEmp;
|
|
|
import com.ruoyi.zhdd.mapper.DutyEmpMapper;
|
|
|
import com.ruoyi.zhdd.service.IDutyEmpService;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Collection;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 值班排班信息Service业务层处理
|
|
@@ -29,7 +35,7 @@ import java.util.Collection;
|
|
|
public class DutyEmpServiceImpl extends ServicePlusImpl<DutyEmpMapper, DutyEmp, DutyEmpVo> implements IDutyEmpService {
|
|
|
|
|
|
@Override
|
|
|
- public DutyEmpVo queryById(String id){
|
|
|
+ public DutyEmpVo queryById(String id) {
|
|
|
return getVoById(id);
|
|
|
}
|
|
|
|
|
@@ -55,31 +61,61 @@ public class DutyEmpServiceImpl extends ServicePlusImpl<DutyEmpMapper, DutyEmp,
|
|
|
@Override
|
|
|
public Boolean insertByBo(DutyEmpBo bo) {
|
|
|
DutyEmp add = BeanUtil.toBean(bo, DutyEmp.class);
|
|
|
- validEntityBeforeSave(add);
|
|
|
+ // 校验是否存在重叠时间段
|
|
|
+ // 先获取当前星期下所有的数据
|
|
|
+ List<DutyEmpVo> dutyEmpVos = this.listVo(Wrappers.<DutyEmp>lambdaQuery().eq(DutyEmp::getPeriod, add.getPeriod()));
|
|
|
+ for (DutyEmpVo dutyEmpVo : dutyEmpVos) {
|
|
|
+ int startTime = DateUtil.timeToSecond(dutyEmpVo.getPeriodTime().split("~")[0]);
|
|
|
+ int endTime = DateUtil.timeToSecond(dutyEmpVo.getPeriodTime().split("~")[1]);
|
|
|
+ int requestStartTime = DateUtil.timeToSecond(bo.getPeriodTime().split("~")[0]);
|
|
|
+ int requestendTime = DateUtil.timeToSecond(bo.getPeriodTime().split("~")[1]);
|
|
|
+ if ((requestStartTime > startTime && requestStartTime < endTime) ||
|
|
|
+ (requestendTime > startTime && requestendTime < endTime) ||
|
|
|
+ (requestStartTime <= startTime && requestendTime >= endTime)) {
|
|
|
+ throw new ServiceException(bo.getPeriodTime() + "存在重叠时间段,请检查!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 处理人名
|
|
|
+ if (StrUtil.isNotBlank(bo.getEmpJson())) {
|
|
|
+ List<SysUser> users = JSONUtil.toList(StrUtil.blankToDefault(bo.getEmpJson(), "[]"), SysUser.class);
|
|
|
+ String userNames = users.stream().map(SysUser::getNickName).collect(Collectors.joining(","));
|
|
|
+ add.setEmpName(userNames);
|
|
|
+ }
|
|
|
return save(add);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Boolean updateByBo(DutyEmpBo bo) {
|
|
|
DutyEmp update = BeanUtil.toBean(bo, DutyEmp.class);
|
|
|
- validEntityBeforeSave(update);
|
|
|
+ List<DutyEmpVo> dutyEmpVos = this.listVo(Wrappers.<DutyEmp>lambdaQuery().eq(DutyEmp::getPeriod, update.getPeriod()));
|
|
|
+ for (DutyEmpVo dutyEmpVo : dutyEmpVos) {
|
|
|
+ if (dutyEmpVo.getId().equals(bo.getId())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int startTime = DateUtil.timeToSecond(dutyEmpVo.getPeriodTime().split("~")[0]);
|
|
|
+ int endTime = DateUtil.timeToSecond(dutyEmpVo.getPeriodTime().split("~")[1]);
|
|
|
+ int requestStartTime = DateUtil.timeToSecond(bo.getPeriodTime().split("~")[0]);
|
|
|
+ int requestendTime = DateUtil.timeToSecond(bo.getPeriodTime().split("~")[1]);
|
|
|
+ if ((requestStartTime > startTime && requestStartTime < endTime) ||
|
|
|
+ (requestendTime > startTime && requestendTime < endTime) ||
|
|
|
+ (requestStartTime <= startTime && requestendTime >= endTime)) {
|
|
|
+ throw new ServiceException(bo.getPeriodTime() + "存在重叠时间段,请检查!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotBlank(bo.getEmpJson())) {
|
|
|
+ List<SysUser> users = JSONUtil.toList(StrUtil.blankToDefault(bo.getEmpJson(), "[]"), SysUser.class);
|
|
|
+ String userNames = users.stream().map(SysUser::getNickName).collect(Collectors.joining(","));
|
|
|
+ update.setEmpName(userNames);
|
|
|
+ }
|
|
|
return updateById(update);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 保存前的数据校验
|
|
|
- *
|
|
|
- * @param entity 实体类数据
|
|
|
- */
|
|
|
- private void validEntityBeforeSave(DutyEmp entity){
|
|
|
- //TODO 做一些数据校验,如唯一约束
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
|
|
|
- if(isValid){
|
|
|
+ if (isValid) {
|
|
|
//TODO 做一些业务上的校验,判断是否需要校验
|
|
|
}
|
|
|
return removeByIds(ids);
|
|
|
}
|
|
|
+
|
|
|
}
|