Merge branch 'dev' of http://47.97.8.94:19527/yj/zn-cloud into dev
This commit is contained in:
commit
5812c374e2
@ -188,7 +188,7 @@ public interface ErrorCodeConstants {
|
|||||||
|
|
||||||
ErrorCode LOG_USE_NOT_EXISTS = new ErrorCode(1_009_010_005, "模板不存在");
|
ErrorCode LOG_USE_NOT_EXISTS = new ErrorCode(1_009_010_005, "模板不存在");
|
||||||
|
|
||||||
ErrorCode LOG_TYPE_EXISTS = new ErrorCode(1_009_010_006, "已提交过({}),请勿重复提交");
|
ErrorCode LOG_TYPE_EXISTS = new ErrorCode(1_009_010_006, "当前日期的日志已提交过,请勿重复提交");
|
||||||
|
|
||||||
ErrorCode LOG_NOT_DATE = new ErrorCode(1_009_010_007, "只能修改当天提交的日志");
|
ErrorCode LOG_NOT_DATE = new ErrorCode(1_009_010_007, "只能修改当天提交的日志");
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ public class LogInstanceController {
|
|||||||
@PreAuthorize("@ss.hasPermission('system:view-log:query')")
|
@PreAuthorize("@ss.hasPermission('system:view-log:query')")
|
||||||
public CommonResult<LogInstanceRespVO> getUpLog(@RequestParam("formId") Long formId) {
|
public CommonResult<LogInstanceRespVO> getUpLog(@RequestParam("formId") Long formId) {
|
||||||
|
|
||||||
LogInstanceRespVO logInstanceRespVO = LogInstanceConvert.INSTANCE.convert(logInstanceService.getUpLog(formId, null));
|
LogInstanceRespVO logInstanceRespVO = LogInstanceConvert.INSTANCE.convert(logInstanceService.getUpLog(formId));
|
||||||
logInstanceRespVO = logInstanceService.setContentFun(logInstanceRespVO);
|
logInstanceRespVO = logInstanceService.setContentFun(logInstanceRespVO);
|
||||||
|
|
||||||
return success(logInstanceRespVO);
|
return success(logInstanceRespVO);
|
||||||
|
@ -23,15 +23,22 @@ import java.util.List;
|
|||||||
public interface LogInstanceMapper extends BaseMapperX<LogInstanceDO> {
|
public interface LogInstanceMapper extends BaseMapperX<LogInstanceDO> {
|
||||||
|
|
||||||
|
|
||||||
default List<LogInstanceDO> getUpLog(Long userId, Long formId, Integer type){
|
default List<LogInstanceDO> getUpLog(Long userId, Long formId) {
|
||||||
|
|
||||||
return selectList(new LambdaQueryWrapperX<LogInstanceDO>()
|
return selectList(new LambdaQueryWrapperX<LogInstanceDO>()
|
||||||
.eq(LogInstanceDO::getStartUserId, userId)
|
.eq(LogInstanceDO::getStartUserId, userId)
|
||||||
.eqIfPresent(LogInstanceDO::getFormId, formId)
|
.eqIfPresent(LogInstanceDO::getFormId, formId)
|
||||||
.eqIfPresent(LogInstanceDO::getType, type)
|
|
||||||
.orderByDesc(LogInstanceDO::getCreateTime));
|
.orderByDesc(LogInstanceDO::getCreateTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default Long getLogByType(Integer type, Long userId, List<String> dateList) {
|
||||||
|
|
||||||
|
return selectCount(new LambdaQueryWrapperX<LogInstanceDO>()
|
||||||
|
.eq(LogInstanceDO::getType, type)
|
||||||
|
.eq(LogInstanceDO::getStartUserId, userId)
|
||||||
|
.in(LogInstanceDO::getTime, dateList));
|
||||||
|
}
|
||||||
|
|
||||||
IPage<LogInstanceRespVO> selectPageResult(@Param("page")Page<LogInstanceRespVO> page, @Param("reqVO")LogInstancePageReqVO reqVO,
|
IPage<LogInstanceRespVO> selectPageResult(@Param("page")Page<LogInstanceRespVO> page, @Param("reqVO")LogInstancePageReqVO reqVO,
|
||||||
@Param("userId")Long userId, @Param("pagingType") Integer pagingType, @Param("logId")Long logId);
|
@Param("userId")Long userId, @Param("pagingType") Integer pagingType, @Param("logId")Long logId);
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package cn.iocoder.yudao.module.system.service.worklog;
|
package cn.iocoder.yudao.module.system.service.worklog;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptRespVO;
|
import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptRespVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.loginstance.LogInstancePageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.loginstance.LogInstancePageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.loginstance.LogInstanceRespVO;
|
import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.loginstance.LogInstanceRespVO;
|
||||||
@ -9,8 +8,8 @@ import cn.iocoder.yudao.module.system.dal.dataobject.worklog.LogInstanceDO;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 日志实例的拓展 Service 接口
|
* 日志实例的拓展 Service 接口
|
||||||
@ -89,7 +88,16 @@ public interface LogInstanceService {
|
|||||||
// * @return
|
// * @return
|
||||||
// */
|
// */
|
||||||
// List<LogInstanceDO> getNeedWriteLogInstanceByTimeRange(Long fromId, List<String> time, Long userId);
|
// List<LogInstanceDO> getNeedWriteLogInstanceByTimeRange(Long fromId, List<String> time, Long userId);
|
||||||
LogInstanceDO getUpLog(Long formId, Integer type);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户发送的上一篇日志详情
|
||||||
|
* @param formId 日志模板编号
|
||||||
|
* @return 日志详情
|
||||||
|
*/
|
||||||
|
LogInstanceDO getUpLog(Long formId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置日志详情 模板内容和时间
|
||||||
|
*/
|
||||||
LogInstanceRespVO setContentFun(LogInstanceRespVO logInstanceRespVO);
|
LogInstanceRespVO setContentFun(LogInstanceRespVO logInstanceRespVO);
|
||||||
}
|
}
|
@ -31,7 +31,6 @@ import java.time.LocalDate;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.WeekFields;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -95,6 +94,7 @@ public class LogInstanceServiceImpl implements LogInstanceService {
|
|||||||
AdminUserDO adminUserDO = adminUserService.getUser(userId);
|
AdminUserDO adminUserDO = adminUserService.getUser(userId);
|
||||||
//获取规则信息
|
//获取规则信息
|
||||||
LogRuleDO logRuleDO = logRuleService.getLogRule(logFormDo.getRuleId());
|
LogRuleDO logRuleDO = logRuleService.getLogRule(logFormDo.getRuleId());
|
||||||
|
|
||||||
//设置发起人用户编号
|
//设置发起人用户编号
|
||||||
logInstance.setStartUserId(userId);
|
logInstance.setStartUserId(userId);
|
||||||
//设置发起人部门编号
|
//设置发起人部门编号
|
||||||
@ -107,8 +107,6 @@ public class LogInstanceServiceImpl implements LogInstanceService {
|
|||||||
logInstance.setType(logRuleDO.getType());
|
logInstance.setType(logRuleDO.getType());
|
||||||
//设置日志名称
|
//设置日志名称
|
||||||
logInstance.setName(adminUserDO.getNickname() + "的" + logFormDo.getName());
|
logInstance.setName(adminUserDO.getNickname() + "的" + logFormDo.getName());
|
||||||
//设置日志日期
|
|
||||||
logInstance.setTime(createReqVO.getTime());
|
|
||||||
|
|
||||||
// 插入提交状态
|
// 插入提交状态
|
||||||
Date endTime = null;
|
Date endTime = null;
|
||||||
@ -134,6 +132,7 @@ public class LogInstanceServiceImpl implements LogInstanceService {
|
|||||||
);
|
);
|
||||||
//创建日志时,查询可以查看发起人日志的用户组 用线程控制
|
//创建日志时,查询可以查看发起人日志的用户组 用线程控制
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
|
|
||||||
List<LogReadUserRespDTO> respDTOS = logInstanceMapper.selectRaedUser(adminUserDO.getDeptId());
|
List<LogReadUserRespDTO> respDTOS = logInstanceMapper.selectRaedUser(adminUserDO.getDeptId());
|
||||||
logReadService.createLogRule(respDTOS, logInstance.getId(), logInstance.getStartUserId());
|
logReadService.createLogRule(respDTOS, logInstance.getId(), logInstance.getStartUserId());
|
||||||
}).start();
|
}).start();
|
||||||
@ -147,50 +146,22 @@ public class LogInstanceServiceImpl implements LogInstanceService {
|
|||||||
*/
|
*/
|
||||||
private void validateLogInstanceByType(LogInstanceSaveReqVO createReqVO) {
|
private void validateLogInstanceByType(LogInstanceSaveReqVO createReqVO) {
|
||||||
|
|
||||||
LogInstanceDO logInstanceDO = getUpLog(null, createReqVO.getType());
|
List<String> dateList = new ArrayList<>();
|
||||||
if (logInstanceDO == null) {
|
if (createReqVO.getType() == 1) {
|
||||||
return;
|
|
||||||
|
dateList.add(createReqVO.getTime());
|
||||||
|
}else {
|
||||||
|
|
||||||
|
String[] times = createReqVO.getTime().split(",");
|
||||||
|
dateList = DateUtils.betweenDayStrList(times[0], times[1]);
|
||||||
|
|
||||||
|
createReqVO.setTime(times[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
LocalDate oldTime = LocalDate.parse(logInstanceDO.getTime());
|
Long count = logInstanceMapper.getLogByType(createReqVO.getType(), getLoginUserId(), dateList);
|
||||||
LocalDate nowTime = LocalDate.now();
|
if (count > 0L) {
|
||||||
|
|
||||||
//根据日志类型判断
|
throw exception(ErrorCodeConstants.LOG_TYPE_EXISTS);
|
||||||
switch (createReqVO.getType()) {
|
|
||||||
|
|
||||||
//日志类型为日报
|
|
||||||
case 1:
|
|
||||||
if (oldTime.equals(nowTime)) {
|
|
||||||
|
|
||||||
throw exception(ErrorCodeConstants.LOG_TYPE_EXISTS, "日报");
|
|
||||||
}
|
|
||||||
//日志类型为周报
|
|
||||||
case 2:
|
|
||||||
WeekFields weekFields = WeekFields.of(Locale.getDefault());
|
|
||||||
|
|
||||||
// 获取两个日期所属的周数和年份
|
|
||||||
int oldWeek = oldTime.get(weekFields.weekOfWeekBasedYear());
|
|
||||||
int oldYear = oldTime.get(weekFields.weekBasedYear());
|
|
||||||
|
|
||||||
int nowWeek = nowTime.get(weekFields.weekOfWeekBasedYear());
|
|
||||||
int nowYear = nowTime.get(weekFields.weekBasedYear());
|
|
||||||
|
|
||||||
if (oldWeek == nowWeek && oldYear == nowYear) {
|
|
||||||
|
|
||||||
throw exception(ErrorCodeConstants.LOG_TYPE_EXISTS, "周报");
|
|
||||||
}
|
|
||||||
//日志类型为月报
|
|
||||||
case 3:
|
|
||||||
if (oldTime.getYear() == nowTime.getYear() && oldTime.getMonth() == nowTime.getMonth()) {
|
|
||||||
|
|
||||||
throw exception(ErrorCodeConstants.LOG_TYPE_EXISTS, "月报");
|
|
||||||
}
|
|
||||||
//日志类型为年报
|
|
||||||
case 4:
|
|
||||||
if (oldTime.getYear() == nowTime.getYear()) {
|
|
||||||
|
|
||||||
throw exception(ErrorCodeConstants.LOG_TYPE_EXISTS, "年报");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,9 +282,9 @@ public class LogInstanceServiceImpl implements LogInstanceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LogInstanceDO getUpLog(Long formId, Integer type) {
|
public LogInstanceDO getUpLog(Long formId) {
|
||||||
|
|
||||||
List<LogInstanceDO> logInstanceDOS = logInstanceMapper.getUpLog(getLoginUserId(), formId, type);
|
List<LogInstanceDO> logInstanceDOS = logInstanceMapper.getUpLog(getLoginUserId(), formId);
|
||||||
if (!logInstanceDOS.isEmpty()) {
|
if (!logInstanceDOS.isEmpty()) {
|
||||||
|
|
||||||
return logInstanceDOS.get(0);
|
return logInstanceDOS.get(0);
|
||||||
|
Loading…
Reference in New Issue
Block a user