新增预约发布功能;新增开启发布功能;列表倒叙
This commit is contained in:
parent
5d9dbb126e
commit
4caccd6af8
|
@ -10,7 +10,6 @@ import org.dromara.common.core.domain.R;
|
|||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.file.FileUtils;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
|
@ -99,17 +98,6 @@ public class ScalePublishController extends BaseController {
|
|||
return toAjax(sysScalePublishService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改量表发布
|
||||
*/
|
||||
@SaCheckPermission("scale:publish:edit")
|
||||
@Log(title = "修改量表发布", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysScalePublishBo bo) {
|
||||
return toAjax(sysScalePublishService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 中止记录
|
||||
*
|
||||
|
@ -121,6 +109,17 @@ public class ScalePublishController extends BaseController {
|
|||
return toAjax(sysScalePublishService.end(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始记录
|
||||
*
|
||||
*/
|
||||
@SaCheckPermission("scale:publish:edit")
|
||||
@Log(title = "中止量表发布", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/start")
|
||||
public R<Void> start(@RequestBody SysScalePublishBo bo) {
|
||||
return toAjax(sysScalePublishService.start(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取量表发布详细信息
|
||||
*
|
||||
|
|
|
@ -68,6 +68,11 @@ public class SysScalePublish {
|
|||
*/
|
||||
private Integer completeNum;
|
||||
|
||||
/**
|
||||
* 开始日期
|
||||
*/
|
||||
private Date startTime;
|
||||
|
||||
/**
|
||||
* 截止日期
|
||||
*/
|
||||
|
|
|
@ -51,6 +51,12 @@ public class SysScalePublishBo {
|
|||
private List<String> userIds;
|
||||
private String userNames;
|
||||
|
||||
/**
|
||||
* 开始日期
|
||||
*/
|
||||
@NotNull(message = "开始日期不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Date startTime;
|
||||
|
||||
/**
|
||||
* 截止日期
|
||||
*/
|
||||
|
|
|
@ -50,12 +50,17 @@ public class SysScalePublishVo implements Serializable {
|
|||
* 测评总人数
|
||||
*/
|
||||
private Integer totalNum;
|
||||
|
||||
|
||||
/**
|
||||
* 测评完成人数
|
||||
*/
|
||||
private Integer completeNum;
|
||||
|
||||
/**
|
||||
* 开始日期
|
||||
*/
|
||||
private Date startTime;
|
||||
|
||||
/**
|
||||
* 截止日期
|
||||
*/
|
||||
|
|
|
@ -38,12 +38,8 @@ public interface ISysScalePublishService {
|
|||
*/
|
||||
Boolean insertByBo(SysScalePublishBo bo);
|
||||
|
||||
/**
|
||||
* 修改量发布
|
||||
*/
|
||||
Boolean updateByBo(SysScalePublishBo bo);
|
||||
|
||||
Boolean end(SysScalePublishBo bo);
|
||||
Boolean start(SysScalePublishBo bo);
|
||||
|
||||
/**
|
||||
* 删除量发布信息
|
||||
|
|
|
@ -121,7 +121,7 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
|
|||
wordData.setCreateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, createTime));
|
||||
wordData.setUseTime(DateUtils.getDatePoor4MinSec(createTime, updateTime));
|
||||
|
||||
SysUserVo user = userMapper.selectUserById(userId);
|
||||
SysUserVo user = userMapper.selectVoById(userId);
|
||||
wordData.setNickName(user.getNickName());
|
||||
wordData.setDeptName(user.getDept().getDeptName());
|
||||
wordData.setSex("0".equals(user.getSex()) ? "男" : "女");
|
||||
|
|
|
@ -88,7 +88,15 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
|||
@Override
|
||||
public List<SysScaleFactorVo> queryList(SysScaleFactorBo bo) {
|
||||
LambdaQueryWrapper<SysScaleFactor> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
List<SysScaleFactorVo> sysScaleFactorVos = baseMapper.selectVoList(lqw);
|
||||
for (SysScaleFactorVo record : sysScaleFactorVos) {
|
||||
SysScale sysScale = scaleMapper.selectById(record.getScaleId());
|
||||
record.setScaleTitle(sysScale.getScaleTitle());
|
||||
|
||||
//SysScaleFormula sysScaleFormula = scaleFormulaMapper.selectById(record.getFormulaId());
|
||||
//record.setFormulaName(sysScaleFormula.getFormulaName());
|
||||
}
|
||||
return sysScaleFactorVos;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SysScaleFactor> buildQueryWrapper(SysScaleFactorBo bo) {
|
||||
|
|
|
@ -130,11 +130,12 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
if (limit != -1 && i >= limit) {
|
||||
throw new ServiceException("发布数量超出系统限制");
|
||||
}
|
||||
Date date = new Date();
|
||||
LoginUser loginUser = getLoginUser();
|
||||
SysScalePublish add = MapstructUtils.convert(bo, SysScalePublish.class);
|
||||
add.setStatus(StatusEnum.IN_USE.getValue());
|
||||
//add.setStatus(StatusEnum.IN_USE.getValue());
|
||||
add.setCreateBy(loginUser.getUserId());
|
||||
add.setCreateTime(new Date());
|
||||
add.setCreateTime(date);
|
||||
validEntityBeforeSave(add);
|
||||
Integer publishType = add.getPublishType();
|
||||
String scaleIds = add.getScaleIds();
|
||||
|
@ -142,10 +143,16 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
String userIds = add.getUserIds();
|
||||
//将时间校验移出来,方便后面使用
|
||||
Date expireTime = add.getExpireTime();
|
||||
long l = DateUtils.differentMillisecond(new Date(), expireTime);
|
||||
if (l <= 1000 * 3600 * 12) {
|
||||
long end = DateUtils.differentMillisecond(date, expireTime);
|
||||
if (end <= 1000 * 3600 * 12) {
|
||||
throw new ServiceException("截止日期必须在六小时后");
|
||||
}
|
||||
Date startTime = add.getStartTime();
|
||||
long start = DateUtils.differentMillisecond(startTime, date);
|
||||
boolean startFlag = false;
|
||||
if (start > 0) {
|
||||
startFlag = true;
|
||||
}
|
||||
//发布次数
|
||||
List<SysScaleVo> list = scaleMapper.findSysScaleByIds(scaleIds);
|
||||
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||
|
@ -181,7 +188,10 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
List<String> scaleList = bo.getScaleIds();
|
||||
insertRecordBatch(add.getBatchNo(), scaleList, userList);
|
||||
//加入延迟队列
|
||||
QueueUtils.addDelayedQueueObject("scalePublish-delay-queue", add.getBatchNo(), l, TimeUnit.MILLISECONDS);
|
||||
QueueUtils.addDelayedQueueObject("endPublish-delay-queue", add.getBatchNo(), end, TimeUnit.MILLISECONDS);
|
||||
if (startFlag) {
|
||||
QueueUtils.addDelayedQueueObject("startPublish-delay-queue", add.getBatchNo(), start, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
@ -202,15 +212,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
recordMapper.insertBatch(recordList, 100);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改量发布
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SysScalePublishBo bo) {
|
||||
SysScalePublish update = MapstructUtils.convert(bo, SysScalePublish.class);
|
||||
//validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean end(SysScalePublishBo bo) {
|
||||
|
@ -220,6 +222,23 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean start(SysScalePublishBo bo) {
|
||||
SysScalePublish scalePublish = baseMapper.selectById(bo.getBatchNo());
|
||||
Date expireTime = scalePublish.getExpireTime();
|
||||
long l = DateUtils.differentMillisecond(new Date(), expireTime);
|
||||
if (l <= 0) {
|
||||
throw new ServiceException("此发布已经截止,无法再开启");
|
||||
}
|
||||
if (l <= 10 * 60 * 1000) {
|
||||
throw new ServiceException("此发布距离截至日期不足十分钟,无法再开启");
|
||||
}
|
||||
SysScalePublish update = new SysScalePublish();
|
||||
update.setBatchNo(bo.getBatchNo());
|
||||
update.setStatus(StatusEnum.IN_USE.getValue());
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
@ -321,7 +340,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
wordData.setPersonNum(String.valueOf(personTotal));
|
||||
int malePercent = processHalfUpPercent(maleNum, personTotal);
|
||||
// int femalePercent = processHalfUpPercent(femaleNum, personTotal);
|
||||
int femalePercent = 100-malePercent;
|
||||
int femalePercent = 100 - malePercent;
|
||||
wordData.setMaleNum(String.valueOf(maleNum));
|
||||
wordData.setMalePercent(malePercent + "%");
|
||||
wordData.setFemaleNum(String.valueOf(femaleNum));
|
||||
|
@ -334,7 +353,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
int recordNum = completeNum + undoneNum;
|
||||
int completePercent = processHalfUpPercent(completeNum, recordNum);
|
||||
// int undonePercent = processHalfUpPercent(undoneNum, recordNum);
|
||||
int undonePercent = 100-completePercent;
|
||||
int undonePercent = 100 - completePercent;
|
||||
|
||||
wordData.setCompleteNum(String.valueOf(completeNum));
|
||||
wordData.setCompletePercent(completePercent + "%");
|
||||
|
@ -348,7 +367,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
int warnPercent = processHalfUpPercent(warnNum, completeNum);
|
||||
int normalNum = completeNum - warnNum;
|
||||
// int normalPercent = processHalfUpPercent(normalNum, completeNum);
|
||||
int normalPercent = 100-warnPercent;
|
||||
int normalPercent = 100 - warnPercent;
|
||||
wordData.setRecordNum(String.valueOf(completeNum));
|
||||
wordData.setWarnNum(String.valueOf(warnNum));
|
||||
wordData.setWarnPercent(warnPercent + "%");
|
||||
|
|
|
@ -78,13 +78,10 @@ public class SysScaleServiceImpl implements ISysScaleService {
|
|||
private LambdaQueryWrapper<SysScale> buildQueryWrapper(SysScaleBo bo) {
|
||||
LambdaQueryWrapper<SysScale> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getScaleName()), SysScale::getScaleName, bo.getScaleName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getScaleCode()), SysScale::getScaleCode, bo.getScaleCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getScaleCode()), SysScale::getScaleCode, bo.getScaleCode());
|
||||
lqw.eq(bo.getStatus() != null, SysScale::getStatus, bo.getStatus());
|
||||
|
||||
if (CollUtil.isNotEmpty(bo.getScaleType())) {
|
||||
lqw.like(CollUtil.isNotEmpty(bo.getScaleType()), SysScale::getScaleType, bo.getScaleType().get(0));
|
||||
}
|
||||
|
||||
lqw.like(CollUtil.isNotEmpty(bo.getScaleType()), SysScale::getScaleType, bo.getScaleType().get(0));
|
||||
lqw.orderByDesc(SysScale::getCreateTime);
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,11 +30,18 @@ public class ApplicationStarter implements CommandLineRunner {
|
|||
|
||||
private void subscribeRedisDelayedQueue(){
|
||||
// 项目初始化设置一次即可
|
||||
QueueUtils.subscribeBlockingQueue("scalePublish-delay-queue", (Long batchNo) -> {
|
||||
QueueUtils.subscribeBlockingQueue("endPublish-delay-queue", (Long batchNo) -> {
|
||||
SysScalePublish publish = new SysScalePublish();
|
||||
publish.setBatchNo(batchNo);
|
||||
publish.setStatus(StatusEnum.DISABLED.getValue());
|
||||
publishMapper.updateById(publish);
|
||||
}, true);
|
||||
QueueUtils.subscribeBlockingQueue("startPublish-delay-queue", (Long batchNo) -> {
|
||||
//SysScalePublish scalePublish = publishMapper.selectById(batchNo);
|
||||
SysScalePublish publish = new SysScalePublish();
|
||||
publish.setBatchNo(batchNo);
|
||||
publish.setStatus(StatusEnum.IN_USE.getValue());
|
||||
publishMapper.updateById(publish);
|
||||
}, true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
and DATE_FORMAT(wr.warn_time, '%Y-%m-%d') <= #{et.endTime}
|
||||
</if>
|
||||
</where>
|
||||
order by wr.warn_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectEvaluationRecordListByWarnId" resultType="org.dromara.scale.domain.vo.SysEvaluationRecordVo">
|
||||
|
|
|
@ -93,10 +93,10 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
|
|||
* @param userId 用户ID
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
// @DataPermission({
|
||||
// @DataColumn(key = "deptName", value = "d.dept_id"),
|
||||
// @DataColumn(key = "userName", value = "u.user_id")
|
||||
// })
|
||||
@DataPermission({
|
||||
@DataColumn(key = "deptName", value = "d.dept_id"),
|
||||
@DataColumn(key = "userName", value = "u.user_id")
|
||||
})
|
||||
SysUserVo selectUserById(Long userId);
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue