1. 修改后台任务相关

This commit is contained in:
ant 2024-07-29 16:42:05 +08:00
parent a8e997e260
commit e320ce60b3
14 changed files with 259 additions and 132 deletions

View File

@ -45,31 +45,31 @@ spring:
- DELETE - DELETE
- OPTIONS - OPTIONS
add-to-simple-url-handler-mapping: true add-to-simple-url-handler-mapping: true
routes: # routes:
# 认证中心 # # 认证中心
- id: auth-service # - id: auth-service
uri: lb://auth-service # uri: lb://auth-service
predicates: # predicates:
- Path=/api/auth/** # - Path=/api/auth/**
filters: # filters:
- StripPrefix=1 # - StripPrefix=1
# 验证码处理 # # 验证码处理
- CacheRequestFilter # - CacheRequestFilter
- ValidateCodeFilter # - ValidateCodeFilter
# 系统模块 # # 系统模块
- id: system-service # - id: system-service
uri: lb://system-service # uri: lb://system-service
predicates: # predicates:
- Path=/api/system/** # - Path=/api/system/**
filters: # filters:
- StripPrefix=1 # - StripPrefix=1
# 定时任务 # # 定时任务
- id: job-service # - id: job-service
uri: lb://job-service # uri: lb://job-service
predicates: # predicates:
- Path=/api/job/** # - Path=/api/job/**
filters: # filters:
- StripPrefix=1 # - StripPrefix=1
# default-filters: # default-filters:
# - name: BlackListUrlFilter # - name: BlackListUrlFilter
# args: # args:
@ -89,27 +89,6 @@ spring:
# # 一个请求需要多少令牌 这是为每个请求从桶中获取的令牌数量默认为1。 # # 一个请求需要多少令牌 这是为每个请求从桶中获取的令牌数量默认为1。
# redis-rate-limiter.requestedTokens: 1 # redis-rate-limiter.requestedTokens: 1
# key-resolver: "#{@remoteAddrKeyResolver}" # key-resolver: "#{@remoteAddrKeyResolver}"
# 安全配置
security:
# 验证码
captcha:
enabled: true
type: char
# 防止XSS攻击
xss:
enabled: true
#excludeUrls:
# - /api/auth/login
# 不校验白名单
ignore:
whites:
- /auth/logout
- /auth/login
- /auth/register
- /feign/**
- /demo/**
logging: logging:
config: classpath:logback-nacos.xml config: classpath:logback-nacos.xml

View File

@ -1,5 +1,6 @@
package com.chushang.inspection.work.vo; package com.chushang.inspection.work.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
@ -7,42 +8,52 @@ public class WrkDataVO {
/** /**
* 项目id * 项目id
*/ */
@ExcelProperty("项目id")
private Long projectId; private Long projectId;
/** /**
* 项目名称 * 项目名称
*/ */
@ExcelProperty("项目名称")
private String projectName; private String projectName;
/** /**
* 部门id * 部门id
*/ */
@ExcelProperty("部门id")
private Long deptId; private Long deptId;
/** /**
* 部门名称 * 部门名称
*/ */
@ExcelProperty("部门名称")
private String deptName; private String deptName;
/** /**
* 任务id * 任务id
*/ */
@ExcelProperty("任务id")
private Long taskId; private Long taskId;
/** /**
* 任务名称 * 任务名称
*/ */
@ExcelProperty("任务名称")
private String taskName; private String taskName;
/** /**
* 终端数 * 终端数
*/ */
@ExcelProperty("终端总数")
private Integer totalTer; private Integer totalTer;
/** /**
* 工单数 * 工单数
*/ */
@ExcelProperty("工单总数")
private Integer totalWrk; private Integer totalWrk;
/** /**
* 完成数 * 完成数
*/ */
@ExcelProperty("完成总数")
private Integer totalSuc; private Integer totalSuc;
/** /**
* 超时 * 超时
*/ */
@ExcelProperty("超时总数")
private Integer totalTimeOut; private Integer totalTimeOut;
} }

View File

@ -10,6 +10,7 @@ import com.chushang.common.core.constant.SecurityConstants;
import com.chushang.common.core.exception.utils.AssertUtil; import com.chushang.common.core.exception.utils.AssertUtil;
import com.chushang.common.core.web.Result; import com.chushang.common.core.web.Result;
import com.chushang.common.excel.utils.ExcelUtils; import com.chushang.common.excel.utils.ExcelUtils;
import com.chushang.common.mq.produce.MqProduceService;
import com.chushang.common.mybatis.enums.Operator; import com.chushang.common.mybatis.enums.Operator;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
@ -19,12 +20,9 @@ import com.chushang.inspection.project.dto.ContractDTO;
import com.chushang.inspection.project.dto.ProjectDTO; import com.chushang.inspection.project.dto.ProjectDTO;
import com.chushang.inspection.project.po.WrkProjectContract; import com.chushang.inspection.project.po.WrkProjectContract;
import com.chushang.inspection.project.query.ProjectQuery; import com.chushang.inspection.project.query.ProjectQuery;
import com.chushang.inspection.project.vo.CountVO;
import com.chushang.inspection.project.vo.ProjectVO; import com.chushang.inspection.project.vo.ProjectVO;
import com.chushang.inspection.terminal.query.FiveUnifiedStoreDetailsQuery;
import com.chushang.inspection.terminal.service.StoreService; import com.chushang.inspection.terminal.service.StoreService;
import com.chushang.inspection.terminal.service.TerminalService; import com.chushang.inspection.terminal.service.TerminalService;
import com.chushang.inspection.terminal.vo.FiveStoreVO;
import com.chushang.inspection.work.service.WrkInfoService; import com.chushang.inspection.work.service.WrkInfoService;
import com.chushang.oss.entity.dto.UploadBytesDTO; import com.chushang.oss.entity.dto.UploadBytesDTO;
import com.chushang.oss.entity.vo.FileSourceVo; import com.chushang.oss.entity.vo.FileSourceVo;
@ -74,6 +72,8 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
RemoteTaskService remoteTaskService; RemoteTaskService remoteTaskService;
@Resource @Resource
RemoteOssService ossService; RemoteOssService ossService;
@Resource
MqProduceService mqProduceService;
@DataScope @DataScope
public PageResult pageList(WrkProject project, CommonParam commonParam) { public PageResult pageList(WrkProject project, CommonParam commonParam) {
@ -296,8 +296,7 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
sql sql
); );
AssertUtil.invalidate (recordList <= 0, "导出数据为空"); AssertUtil.invalidate (recordList <= 0, "导出数据为空");
CreateTaskDTO createTask = CreateTaskDTO.builder()
return remoteTaskService.createTask(CreateTaskDTO.builder()
.params(JSON.toJSONString(projectQuery)) .params(JSON.toJSONString(projectQuery))
.taskName("项目数据导出") .taskName("项目数据导出")
.applicationName(ServiceEnum.INSPECTION) .applicationName(ServiceEnum.INSPECTION)
@ -307,7 +306,22 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
.taskType(TaskTypeEnum.DOWN) .taskType(TaskTypeEnum.DOWN)
.remark("五统一商户明细导出") .remark("五统一商户明细导出")
.createBy(SecurityUtils.getUsername()) .createBy(SecurityUtils.getUsername())
.build(), SecurityConstants.INNER).getData(); .userId(SecurityUtils.getUserId())
.build();
mqProduceService.send(ServiceEnum.TASK.getServiceName(), createTask);
// return remoteTaskService.createTask(CreateTaskDTO.builder()
// .params(JSON.toJSONString(projectQuery))
// .taskName("项目数据导出")
// .applicationName(ServiceEnum.INSPECTION)
// .methodName("export")
// .className(this.getClass().getName())
// .deptId(SecurityUtils.getDeptId())
// .taskType(TaskTypeEnum.DOWN)
// .remark("五统一商户明细导出")
// .createBy(SecurityUtils.getUsername())
// .build(), SecurityConstants.INNER).getData();
return 1L;
} }
public Result<String> export(String params){ public Result<String> export(String params){
ProjectQuery projectQuery = JSON.parseObject(params, ProjectQuery.class); ProjectQuery projectQuery = JSON.parseObject(params, ProjectQuery.class);

View File

@ -12,13 +12,13 @@ import com.alibaba.fastjson2.JSONObject;
import com.alibaba.nacos.shaded.com.google.common.collect.Maps; import com.alibaba.nacos.shaded.com.google.common.collect.Maps;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.chushang.common.core.constant.SecurityConstants;
import com.chushang.common.core.util.DateUtils; import com.chushang.common.core.util.DateUtils;
import com.chushang.common.core.util.SpringUtils; import com.chushang.common.core.util.SpringUtils;
import com.chushang.common.core.util.StringUtils; import com.chushang.common.core.util.StringUtils;
import com.chushang.common.core.util.TreeUtils; import com.chushang.common.core.util.TreeUtils;
import com.chushang.common.core.web.Result; import com.chushang.common.core.web.Result;
import com.chushang.common.excel.utils.ExcelUtils; import com.chushang.common.excel.utils.ExcelUtils;
import com.chushang.common.mq.produce.MqProduceService;
import com.chushang.common.mybatis.enums.Operator; import com.chushang.common.mybatis.enums.Operator;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.common.mybatis.utils.WrapperUtils;
@ -34,7 +34,6 @@ import com.chushang.security.utils.SecurityUtils;
import com.chushang.task.entity.dto.CreateTaskDTO; import com.chushang.task.entity.dto.CreateTaskDTO;
import com.chushang.task.enums.ServiceEnum; import com.chushang.task.enums.ServiceEnum;
import com.chushang.task.enums.TaskTypeEnum; import com.chushang.task.enums.TaskTypeEnum;
import com.chushang.task.feign.RemoteTaskService;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheConfig;
@ -64,7 +63,7 @@ public class PollingTaskServiceImpl extends ServiceImpl<PollingTaskMapper, Polli
* 通过远程调用的方式进行入库 * 通过远程调用的方式进行入库
*/ */
@Resource @Resource
RemoteTaskService remoteTaskService; MqProduceService mqProduceService;
@Override @Override
@DataScope @DataScope
@ -217,19 +216,31 @@ public class PollingTaskServiceImpl extends ServiceImpl<PollingTaskMapper, Polli
paramMap.put("parentId", parentId); paramMap.put("parentId", parentId);
Long deptId = SecurityUtils.getDeptId(); Long deptId = SecurityUtils.getDeptId();
String username = SecurityUtils.getUsername(); String username = SecurityUtils.getUsername();
mqProduceService.send(ServiceEnum.TASK.getServiceName(), CreateTaskDTO.builder()
.params(JSON.toJSONString(paramMap))
.taskName("任务导入")
.applicationName(ServiceEnum.INSPECTION)
.methodName("importTask")
.className(this.getClass().getName())
.deptId(deptId)
.taskType(TaskTypeEnum.UPLOAD)
.createBy(username)
.userId(SecurityUtils.getUserId())
.build());
// 交给后台任务 // 交给后台任务
remoteTaskService.createTask( // remoteTaskService.createTask(
CreateTaskDTO.builder() // CreateTaskDTO.builder()
.params(JSON.toJSONString(paramMap)) // .params(JSON.toJSONString(paramMap))
.taskName("任务导入") // .taskName("任务导入")
.applicationName(ServiceEnum.INSPECTION) // .applicationName(ServiceEnum.INSPECTION)
.methodName("importTask") // .methodName("importTask")
.className(this.getClass().getName()) // .className(this.getClass().getName())
.deptId(deptId) // .deptId(deptId)
.taskType(TaskTypeEnum.UPLOAD) // .taskType(TaskTypeEnum.UPLOAD)
.createBy(username) // .createBy(username)
.build(), SecurityConstants.INNER // .build(), SecurityConstants.INNER
); // );
} }
@Override @Override

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.constant.SecurityConstants;
import com.chushang.common.core.web.Result; import com.chushang.common.core.web.Result;
import com.chushang.common.excel.utils.ExcelUtils; import com.chushang.common.excel.utils.ExcelUtils;
import com.chushang.common.mq.produce.MqProduceService;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.datascope.annotation.DataScope; import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.project.po.PollingTask; import com.chushang.inspection.project.po.PollingTask;
@ -24,7 +25,6 @@ import com.chushang.security.utils.SecurityUtils;
import com.chushang.task.entity.dto.CreateTaskDTO; import com.chushang.task.entity.dto.CreateTaskDTO;
import com.chushang.task.enums.ServiceEnum; import com.chushang.task.enums.ServiceEnum;
import com.chushang.task.enums.TaskTypeEnum; import com.chushang.task.enums.TaskTypeEnum;
import com.chushang.task.feign.RemoteTaskService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -39,9 +39,10 @@ import java.util.stream.Collectors;
/** /**
* 五统一商户 -- 只有建行内蒙古有 * 五统一商户 -- 只有建行内蒙古有
* @auther: zhao *
* @date: 2024/6/21 16:39 * @auther: zhao
*/ * @date: 2024/6/21 16:39
*/
@Slf4j @Slf4j
@Service @Service
public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore> implements FiveStoreService { public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore> implements FiveStoreService {
@ -51,9 +52,9 @@ public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore
@Resource @Resource
StoreService storeService; StoreService storeService;
@Resource @Resource
RemoteTaskService remoteTaskService;
@Resource
RemoteOssService ossService; RemoteOssService ossService;
@Resource
MqProduceService mqProduceService;
/** /**
@ -61,13 +62,13 @@ public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore
* s.store_name, * s.store_name,
* pt1.number firstLevelBranchNumber, * pt1.number firstLevelBranchNumber,
* pt1.`name` firstLevelBranchName, * pt1.`name` firstLevelBranchName,
* * <p>
* pt2.number secondaryBranchesNumber, * pt2.number secondaryBranchesNumber,
* pt2.`name` secondaryBranchesName, * pt2.`name` secondaryBranchesName,
*/ */
@Override @Override
public PageResult pageList(FiveUnifiedStoreDetailsQuery query) { public PageResult pageList(FiveUnifiedStoreDetailsQuery query) {
Page<FiveStoreVO> page = new Page<>(query.getPage(),query.getLimit()); Page<FiveStoreVO> page = new Page<>(query.getPage(), query.getLimit());
List<FiveStoreVO> listFiveStores = baseMapper.pageList(query, page); List<FiveStoreVO> listFiveStores = baseMapper.pageList(query, page);
convert(listFiveStores); convert(listFiveStores);
return new PageResult( return new PageResult(
@ -83,7 +84,19 @@ public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore
@Override @Override
@DataScope(deptAlias = "t") @DataScope(deptAlias = "t")
public void download(FiveUnifiedStoreDetailsQuery query, HttpServletResponse response) { public void download(FiveUnifiedStoreDetailsQuery query, HttpServletResponse response) {
remoteTaskService.createTask(CreateTaskDTO.builder() // remoteTaskService.createTask(CreateTaskDTO.builder()
// .params(JSON.toJSONString(query))
// .taskName("五统一商户明细导出")
// .applicationName(ServiceEnum.INSPECTION)
// .methodName("export")
// .className(this.getClass().getName())
// .deptId(SecurityUtils.getDeptId())
// .taskType(TaskTypeEnum.DOWN)
// .remark("五统一商户明细导出")
// .createBy(SecurityUtils.getUsername())
// .build(), SecurityConstants.INNER);
mqProduceService.send(ServiceEnum.TASK.getServiceName(), CreateTaskDTO.builder()
.params(JSON.toJSONString(query)) .params(JSON.toJSONString(query))
.taskName("五统一商户明细导出") .taskName("五统一商户明细导出")
.applicationName(ServiceEnum.INSPECTION) .applicationName(ServiceEnum.INSPECTION)
@ -93,30 +106,33 @@ public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore
.taskType(TaskTypeEnum.DOWN) .taskType(TaskTypeEnum.DOWN)
.remark("五统一商户明细导出") .remark("五统一商户明细导出")
.createBy(SecurityUtils.getUsername()) .createBy(SecurityUtils.getUsername())
.build(), SecurityConstants.INNER); .userId(SecurityUtils.getUserId())
.build());
} }
/** /**
* 参考 com.chushang.inspection.project.service.WrkProjectService#projectDataExport * 参考 com.chushang.inspection.project.service.WrkProjectService#projectDataExport
*
* @param params * @param params
* @return * @return
*/ */
public Result<String> export(String params){ public Result<String> export(String params) {
FiveUnifiedStoreDetailsQuery query = JSON.parseObject(params, FiveUnifiedStoreDetailsQuery.class); FiveUnifiedStoreDetailsQuery query = JSON.parseObject(params, FiveUnifiedStoreDetailsQuery.class);
List<FiveStoreVO> listFiveStores = baseMapper.pageList(query, null); List<FiveStoreVO> listFiveStores = baseMapper.pageList(query, null);
convert(listFiveStores); convert(listFiveStores);
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()){ try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
ExcelUtils.exportList(outputStream, FiveStoreVO.class, listFiveStores, "五统一商户明细"); ExcelUtils.exportList(outputStream, FiveStoreVO.class, listFiveStores, "五统一商户明细");
// 上传到oss fileStore 是五统一的商户文件 // 上传到oss fileStore 是五统一的商户文件
Result<List<FileSourceVo>> listResult = ossService.uploadBytes(UploadBytesDTO.builder() Result<List<FileSourceVo>> listResult = ossService.uploadBytes(UploadBytesDTO.builder()
.bytes(outputStream.toByteArray()).build(), "五统一商户明细导出.xlsx", false, "", "fiveStore", SecurityConstants.INNER); .bytes(outputStream.toByteArray()).build(), "五统一商户明细导出.xlsx", false, "", "fiveStore", SecurityConstants.INNER);
if (listResult.isSuccess() && CollectionUtil.isNotEmpty(listResult.getData())){ if (listResult.isSuccess() && CollectionUtil.isNotEmpty(listResult.getData())) {
List<FileSourceVo> data = listResult.getData(); List<FileSourceVo> data = listResult.getData();
FileSourceVo fileSourceVo = data.get(0); FileSourceVo fileSourceVo = data.get(0);
String filePath = fileSourceVo.getFilePath(); String filePath = fileSourceVo.getFilePath();
return Result.ok(filePath); return Result.ok(filePath);
}else { } else {
log.error("生成文件异常, {}, {}", listResult.getCode(), listResult.getMsg()); log.error("生成文件异常, {}, {}", listResult.getCode(), listResult.getMsg());
return Result.failed(listResult.getCode(), listResult.getMsg()); return Result.failed(listResult.getCode(), listResult.getMsg());
} }
@ -125,9 +141,8 @@ public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore
} }
} }
public void convert(List<FiveStoreVO> listFiveStores){ public void convert(List<FiveStoreVO> listFiveStores) {
if (CollectionUtil.isNotEmpty(listFiveStores)) if (CollectionUtil.isNotEmpty(listFiveStores)) {
{
// firstLevel // firstLevel
Set<Long> firstLevelBranches = listFiveStores.stream().map(FiveStoreVO::getFirstLevelBranch).collect(Collectors.toSet()); Set<Long> firstLevelBranches = listFiveStores.stream().map(FiveStoreVO::getFirstLevelBranch).collect(Collectors.toSet());
Set<Long> secondaryBranches = listFiveStores.stream().map(FiveStoreVO::getSecondaryBranch).collect(Collectors.toSet()); Set<Long> secondaryBranches = listFiveStores.stream().map(FiveStoreVO::getSecondaryBranch).collect(Collectors.toSet());
@ -135,31 +150,31 @@ public class FiveStoreServiceImpl extends ServiceImpl<FiveStoreMapper, FiveStore
alls.addAll(firstLevelBranches); alls.addAll(firstLevelBranches);
alls.addAll(secondaryBranches); alls.addAll(secondaryBranches);
Map<Long, PollingTask> taskMap = new HashMap<>(); Map<Long, PollingTask> taskMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(alls)){ if (CollectionUtil.isNotEmpty(alls)) {
List<PollingTask> pollingTasks = taskService.listByIds(alls); List<PollingTask> pollingTasks = taskService.listByIds(alls);
taskMap = pollingTasks.stream().collect(Collectors.toMap(PollingTask::getId, pollingTask -> pollingTask, (oldValue, newValue) -> newValue)); taskMap = pollingTasks.stream().collect(Collectors.toMap(PollingTask::getId, pollingTask -> pollingTask, (oldValue, newValue) -> newValue));
} }
Set<Long> storeIds = listFiveStores.stream().map(FiveStoreVO::getStoreId).collect(Collectors.toSet()); Set<Long> storeIds = listFiveStores.stream().map(FiveStoreVO::getStoreId).collect(Collectors.toSet());
Map<Long, Store> storeMap = new HashMap<>(); Map<Long, Store> storeMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(storeIds)){ if (CollectionUtil.isNotEmpty(storeIds)) {
List<Store> stores = storeService.listByIds(storeIds); List<Store> stores = storeService.listByIds(storeIds);
storeMap = stores.stream().collect(Collectors.toMap(Store::getStoreId, store -> store, (oldValue, newValue) -> newValue)); storeMap = stores.stream().collect(Collectors.toMap(Store::getStoreId, store -> store, (oldValue, newValue) -> newValue));
} }
for (FiveStoreVO listFiveStore : listFiveStores) { for (FiveStoreVO listFiveStore : listFiveStores) {
Long storeId = listFiveStore.getStoreId(); Long storeId = listFiveStore.getStoreId();
Store store = storeMap.get(storeId); Store store = storeMap.get(storeId);
if (ObjectUtil.isNotEmpty(store)){ if (ObjectUtil.isNotEmpty(store)) {
listFiveStore.setStoreName(store.getStoreName()); listFiveStore.setStoreName(store.getStoreName());
} }
Long firstLevelBranch = listFiveStore.getFirstLevelBranch(); Long firstLevelBranch = listFiveStore.getFirstLevelBranch();
Long secondaryBranch = listFiveStore.getSecondaryBranch(); Long secondaryBranch = listFiveStore.getSecondaryBranch();
PollingTask firstPollingTask = taskMap.get(firstLevelBranch); PollingTask firstPollingTask = taskMap.get(firstLevelBranch);
if (ObjectUtil.isNotEmpty(firstPollingTask)){ if (ObjectUtil.isNotEmpty(firstPollingTask)) {
listFiveStore.setFirstLevelBranchNumber(firstPollingTask.getNumber()); listFiveStore.setFirstLevelBranchNumber(firstPollingTask.getNumber());
listFiveStore.setFirstLevelBranchName(firstPollingTask.getName()); listFiveStore.setFirstLevelBranchName(firstPollingTask.getName());
} }
PollingTask secondPollingTask = taskMap.get(secondaryBranch); PollingTask secondPollingTask = taskMap.get(secondaryBranch);
if (ObjectUtil.isNotEmpty(secondPollingTask)){ if (ObjectUtil.isNotEmpty(secondPollingTask)) {
listFiveStore.setFirstLevelBranchNumber(secondPollingTask.getNumber()); listFiveStore.setFirstLevelBranchNumber(secondPollingTask.getNumber());
listFiveStore.setFirstLevelBranchName(secondPollingTask.getName()); listFiveStore.setFirstLevelBranchName(secondPollingTask.getName());
} }

View File

@ -251,7 +251,7 @@ public class WrkInfoController {
* @param wrkDataQuery 查询条件 * @param wrkDataQuery 查询条件
*/ */
@GetMapping(value = "/data/export") @GetMapping(value = "/data/export")
@RequiresPermissions("wrk:data:export") // @RequiresPermissions("wrk:data:export")
public AjaxResult wrkDataExport(WrkDataQuery wrkDataQuery) public AjaxResult wrkDataExport(WrkDataQuery wrkDataQuery)
{ {
return AjaxResult.success("工单数据导出成功, 请在后台任务中查看, 任务id: ["+ wrkInfoService.wrkDataExport(wrkDataQuery) +"]"); return AjaxResult.success("工单数据导出成功, 请在后台任务中查看, 任务id: ["+ wrkInfoService.wrkDataExport(wrkDataQuery) +"]");

View File

@ -17,6 +17,7 @@ import com.chushang.common.core.web.AjaxResult;
import com.chushang.common.core.web.Result; import com.chushang.common.core.web.Result;
import com.chushang.common.dict.utils.DictUtils; import com.chushang.common.dict.utils.DictUtils;
import com.chushang.common.excel.utils.ExcelUtils; import com.chushang.common.excel.utils.ExcelUtils;
import com.chushang.common.mq.produce.MqProduceService;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.common.mybatis.utils.WrapperUtils;
@ -37,7 +38,6 @@ import com.chushang.system.feign.RemoteUserService;
import com.chushang.task.entity.dto.CreateTaskDTO; import com.chushang.task.entity.dto.CreateTaskDTO;
import com.chushang.task.enums.ServiceEnum; import com.chushang.task.enums.ServiceEnum;
import com.chushang.task.enums.TaskTypeEnum; import com.chushang.task.enums.TaskTypeEnum;
import com.chushang.task.feign.RemoteTaskService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -59,8 +59,6 @@ import java.util.stream.Collectors;
@Service @Service
public class WrkInfoPhoneServiceImpl extends ServiceImpl<WrkInfoPhoneMapper, WrkInfoPhone> implements WrkInfoPhoneService { public class WrkInfoPhoneServiceImpl extends ServiceImpl<WrkInfoPhoneMapper, WrkInfoPhone> implements WrkInfoPhoneService {
@Resource
RemoteTaskService remoteTaskService;
@Resource @Resource
StoreService storeService; StoreService storeService;
@Resource @Resource
@ -71,6 +69,8 @@ public class WrkInfoPhoneServiceImpl extends ServiceImpl<WrkInfoPhoneMapper, Wrk
RemoteUserService remoteUserService; RemoteUserService remoteUserService;
@Resource @Resource
RemoteOssService remoteOssService; RemoteOssService remoteOssService;
@Resource
MqProduceService mqProduceService;
@Override @Override
public PageResult pageList(WrkInfoQuery query) { public PageResult pageList(WrkInfoQuery query) {
@ -113,8 +113,10 @@ public class WrkInfoPhoneServiceImpl extends ServiceImpl<WrkInfoPhoneMapper, Wrk
.taskType(TaskTypeEnum.DOWN) .taskType(TaskTypeEnum.DOWN)
.remark("电话工单导入") .remark("电话工单导入")
.createBy(SecurityUtils.getUsername()) .createBy(SecurityUtils.getUsername())
.userId(SecurityUtils.getUserId())
.build(); .build();
remoteTaskService.createTask(task, SecurityConstants.INNER); // remoteTaskService.createTask(task, SecurityConstants.INNER);
mqProduceService.send(ServiceEnum.TASK.getServiceName(), task);
return AjaxResult.success("导入成功, 请在后台任务中查看导入结果"); return AjaxResult.success("导入成功, 请在后台任务中查看导入结果");
} }

View File

@ -16,7 +16,6 @@ import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.constant.SecurityConstants;
import com.chushang.common.core.exception.ResultException;
import com.chushang.common.core.exception.utils.AssertUtil; import com.chushang.common.core.exception.utils.AssertUtil;
import com.chushang.common.core.util.DateUtils; import com.chushang.common.core.util.DateUtils;
import com.chushang.common.core.util.IPUtils; import com.chushang.common.core.util.IPUtils;
@ -24,6 +23,7 @@ import com.chushang.common.core.util.SpringUtils;
import com.chushang.common.core.web.Result; import com.chushang.common.core.web.Result;
import com.chushang.common.dict.utils.DictUtils; import com.chushang.common.dict.utils.DictUtils;
import com.chushang.common.excel.utils.ExcelUtils; import com.chushang.common.excel.utils.ExcelUtils;
import com.chushang.common.mq.produce.MqProduceService;
import com.chushang.common.mybatis.enums.Operator; import com.chushang.common.mybatis.enums.Operator;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
@ -32,12 +32,9 @@ import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.ins.GeneratedInsFactory; import com.chushang.inspection.ins.GeneratedInsFactory;
import com.chushang.inspection.project.dto.AuditDTO; import com.chushang.inspection.project.dto.AuditDTO;
import com.chushang.inspection.project.po.InspectionData; import com.chushang.inspection.project.po.InspectionData;
import com.chushang.inspection.project.po.WrkProject;
import com.chushang.inspection.project.query.ProjectQuery;
import com.chushang.inspection.project.service.InspectionDataService; import com.chushang.inspection.project.service.InspectionDataService;
import com.chushang.inspection.project.service.PollingTaskService; import com.chushang.inspection.project.service.PollingTaskService;
import com.chushang.inspection.project.vo.CountVO; import com.chushang.inspection.project.vo.CountVO;
import com.chushang.inspection.project.vo.ProjectVO;
import com.chushang.inspection.terminal.po.FiveStore; import com.chushang.inspection.terminal.po.FiveStore;
import com.chushang.inspection.terminal.po.Store; import com.chushang.inspection.terminal.po.Store;
import com.chushang.inspection.terminal.po.Terminal; import com.chushang.inspection.terminal.po.Terminal;
@ -60,7 +57,6 @@ import com.chushang.system.feign.RemoteDeptService;
import com.chushang.task.entity.dto.CreateTaskDTO; import com.chushang.task.entity.dto.CreateTaskDTO;
import com.chushang.task.enums.ServiceEnum; import com.chushang.task.enums.ServiceEnum;
import com.chushang.task.enums.TaskTypeEnum; import com.chushang.task.enums.TaskTypeEnum;
import com.chushang.task.feign.RemoteTaskService;
import com.chushang.security.entity.po.SysUser; import com.chushang.security.entity.po.SysUser;
import com.chushang.system.feign.RemoteUserService; import com.chushang.system.feign.RemoteUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -106,11 +102,11 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
private final WrkInfoAuditService infoAuditService; private final WrkInfoAuditService infoAuditService;
private final InspectionDataService inspectionDataService; private final InspectionDataService inspectionDataService;
private final RemoteTaskService remoteTaskService;
private final RemoteUserService userFeignService; private final RemoteUserService userFeignService;
private final RemoteDeptService remoteDeptService; private final RemoteDeptService remoteDeptService;
private final DispatchRecordService dispatchRecordService; private final DispatchRecordService dispatchRecordService;
private final RemoteOssService remoteOssService; private final RemoteOssService remoteOssService;
private final MqProduceService mqProduceService;
@Value("${push.icbc-js.enable:false}") @Value("${push.icbc-js.enable:false}")
private boolean enable; private boolean enable;
@ -316,7 +312,18 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
AssertUtil.invalidate(page.getTotal() == 0, "下载信息为空"); AssertUtil.invalidate(page.getTotal() == 0, "下载信息为空");
DateUtils.format(LocalDate.now()); DateUtils.format(LocalDate.now());
// 下载巡检单信息 // 下载巡检单信息
Result<Long> task = remoteTaskService.createTask(CreateTaskDTO.builder() // Result<Long> task = remoteTaskService.createTask(CreateTaskDTO.builder()
// .params(JSON.toJSONString(query))
// .taskName(DateUtils.format(LocalDate.now()) + "-" + SecurityUtils.getUsername() + "-导出-" + query.getTaskId() + "-巡检单信息")
// .applicationName(ServiceEnum.INSPECTION)
// .methodName("downInspectionTemplate")
// .className(this.getClass().getName())
// .deptId(SecurityUtils.getDeptId())
// .taskType(TaskTypeEnum.DOWN)
// .remark("导出巡检单信息")
// .createBy(SecurityUtils.getUsername())
// .build(), SecurityConstants.INNER);
mqProduceService.send(ServiceEnum.TASK.getServiceName(), CreateTaskDTO.builder()
.params(JSON.toJSONString(query)) .params(JSON.toJSONString(query))
.taskName(DateUtils.format(LocalDate.now()) + "-" + SecurityUtils.getUsername() + "-导出-" + query.getTaskId() + "-巡检单信息") .taskName(DateUtils.format(LocalDate.now()) + "-" + SecurityUtils.getUsername() + "-导出-" + query.getTaskId() + "-巡检单信息")
.applicationName(ServiceEnum.INSPECTION) .applicationName(ServiceEnum.INSPECTION)
@ -326,11 +333,14 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
.taskType(TaskTypeEnum.DOWN) .taskType(TaskTypeEnum.DOWN)
.remark("导出巡检单信息") .remark("导出巡检单信息")
.createBy(SecurityUtils.getUsername()) .createBy(SecurityUtils.getUsername())
.build(), SecurityConstants.INNER); .userId(SecurityUtils.getUserId())
if (task.isSuccess() && task.getData() != null) { .build());
return task.getData(); //
} // if (task.isSuccess() && task.getData() != null) {
throw new ResultException("创建后台任务异常"); // return task.getData();
// }
// throw new ResultException("创建后台任务异常");
return 1L;
} }
/** /**
@ -688,20 +698,33 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
WrapperUtils.buildSql(wrkDataQuery); WrapperUtils.buildSql(wrkDataQuery);
Page<WrkDataVO> page = new Page<>(commonParam.getPage(), commonParam.getLimit()); Page<WrkDataVO> page = new Page<>(commonParam.getPage(), commonParam.getLimit());
List<WrkDataVO> records = baseMapper.wrkData(wrkDataQuery, page); List<WrkDataVO> records = baseMapper.wrkData(wrkDataQuery, page);
if (CollectionUtil.isNotEmpty(records)){
setDeptName(records);
}
return new PageResult(records, page); return new PageResult(records, page);
} }
private void setDeptName(List<WrkDataVO> records) {
Set<Long> deptIds = records.stream().map(WrkDataVO::getDeptId).collect(Collectors.toSet());
Map<Long, String> deptNameMap
= remoteDeptService.getDeptNameByIds(deptIds, SecurityConstants.INNER);
records.forEach(r->{
r.setDeptName(deptNameMap.get(r.getDeptId()));
});
}
/** /**
* 工单数据导出 * 工单数据导出
*/ */
@Override @Override
@DataScope(deptAlias = "wi")
public Long wrkDataExport(WrkDataQuery wrkDataQuery) { public Long wrkDataExport(WrkDataQuery wrkDataQuery) {
CommonParam commonParam = CommonParam.buildPageRequest();
WrapperUtils.buildSql(wrkDataQuery); WrapperUtils.buildSql(wrkDataQuery);
Page<WrkDataVO> page = new Page<>(commonParam.getPage(), commonParam.getLimit()); Page<WrkDataVO> page = new Page<>(1, 1);
List<WrkDataVO> records = baseMapper.wrkData(wrkDataQuery, page); List<WrkDataVO> records = baseMapper.wrkData(wrkDataQuery, page);
AssertUtil.invalidate (records.size() <= 0, "导出数据为空"); AssertUtil.invalidate (records.size() <= 0, "导出数据为空");
return remoteTaskService.createTask(CreateTaskDTO.builder()
mqProduceService.send(ServiceEnum.TASK.getServiceName(), CreateTaskDTO.builder()
.params(JSON.toJSONString(wrkDataQuery)) .params(JSON.toJSONString(wrkDataQuery))
.taskName("工单数据导出") .taskName("工单数据导出")
.applicationName(ServiceEnum.INSPECTION) .applicationName(ServiceEnum.INSPECTION)
@ -711,7 +734,21 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
.taskType(TaskTypeEnum.DOWN) .taskType(TaskTypeEnum.DOWN)
.remark("五统一商户明细导出") .remark("五统一商户明细导出")
.createBy(SecurityUtils.getUsername()) .createBy(SecurityUtils.getUsername())
.build(), SecurityConstants.INNER).getData(); .userId(SecurityUtils.getUserId())
.build());
// return remoteTaskService.createTask(CreateTaskDTO.builder()
// .params(JSON.toJSONString(wrkDataQuery))
// .taskName("工单数据导出")
// .applicationName(ServiceEnum.INSPECTION)
// .methodName("exportWrkData")
// .className(this.getClass().getName())
// .deptId(SecurityUtils.getDeptId())
// .taskType(TaskTypeEnum.DOWN)
// .remark("五统一商户明细导出")
// .createBy(SecurityUtils.getUsername())
// .build(), SecurityConstants.INNER).getData();
return 1L;
} }
/** /**
@ -723,6 +760,9 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
WrkDataQuery projectQuery = JSON.parseObject(params, WrkDataQuery.class); WrkDataQuery projectQuery = JSON.parseObject(params, WrkDataQuery.class);
WrapperUtils.buildSql(projectQuery); WrapperUtils.buildSql(projectQuery);
List<WrkDataVO> list = baseMapper.wrkData(projectQuery, null); List<WrkDataVO> list = baseMapper.wrkData(projectQuery, null);
if (CollectionUtil.isNotEmpty(list)){
setDeptName(list);
}
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()){ try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()){
// 如果为空时 创建一个空excel // 如果为空时 创建一个空excel
if (CollectionUtil.isEmpty(list)){ if (CollectionUtil.isEmpty(list)){

View File

@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.chushang.common.dict.annotation.DictFormat; import com.chushang.common.dict.annotation.DictFormat;
import com.chushang.common.mybatis.annotation.Condition;
import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import com.chushang.task.enums.ServiceEnum; import com.chushang.task.enums.ServiceEnum;
import com.chushang.task.enums.TaskStatusEnum; import com.chushang.task.enums.TaskStatusEnum;
import lombok.*; import lombok.*;
import org.springframework.context.annotation.Conditional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -27,27 +29,32 @@ public class TaskInfo extends BaseEntity {
* 主键id * 主键id
*/ */
@TableId(value = "task_id", type = IdType.ASSIGN_ID) @TableId(value = "task_id", type = IdType.ASSIGN_ID)
@Condition(name = "task_id")
private Long taskId; private Long taskId;
/** /**
* 后台任务名称 * 后台任务名称
*/ */
@TableField(value = "task_name") @TableField(value = "task_name")
@Condition(name = "task_name", type = Condition.ConditionType.like)
private String taskName; private String taskName;
/** /**
* 所属服务名 * 所属服务名
* ServiceEnum value * ServiceEnum value
*/ */
@TableField(value = "application_name") @TableField(value = "application_name")
@Condition(name = "application_name", type = Condition.ConditionType.like)
private String applicationName; private String applicationName;
/** /**
* 方法名称 * 方法名称
*/ */
@TableField(value = "method_name") @TableField(value = "method_name")
@Condition(name = "method_name", type = Condition.ConditionType.like)
private String methodName; private String methodName;
/** /**
* 类名 * 类名
*/ */
@TableField(value = "class_name") @TableField(value = "class_name")
@Condition(name = "class_name")
private String className; private String className;
/** /**
* 任务状态 * 任务状态
@ -56,12 +63,14 @@ public class TaskInfo extends BaseEntity {
*/ */
@TableField(value = "task_status") @TableField(value = "task_status")
@DictFormat(dictType = "task_status") @DictFormat(dictType = "task_status")
@Condition(name = "task_status")
private Integer taskStatus; private Integer taskStatus;
/** /**
* 后台任务类型 * 后台任务类型
*/ */
@TableField(value = "task_type") @TableField(value = "task_type")
@DictFormat(dictType = "task_type") @DictFormat(dictType = "task_type")
@Condition(name = "task_type")
private Integer taskType; private Integer taskType;
/** /**
* 后台任务执行参数 * 后台任务执行参数
@ -88,4 +97,10 @@ public class TaskInfo extends BaseEntity {
*/ */
@TableField("dept_id") @TableField("dept_id")
private Long deptId; private Long deptId;
/**
* 当前用户只能查看自己的后台任务
*/
@TableField("user_id")
@Condition(name = "user_id")
private Long userId;
} }

View File

@ -7,6 +7,8 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable;
/** /**
* @auther: zhao * @auther: zhao
* @date: 2024/6/11 10:19 * @date: 2024/6/11 10:19
@ -15,7 +17,9 @@ import lombok.NoArgsConstructor;
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class CreateTaskDTO { public class CreateTaskDTO implements Serializable {
private static final long serialVersionUId = 1L;
/** /**
* 后台任务名称 * 后台任务名称
@ -54,4 +58,8 @@ public class CreateTaskDTO {
* 部门id * 部门id
*/ */
private Long deptId; private Long deptId;
/**
* 当前登录用户id
*/
private Long userId;
} }

View File

@ -6,6 +6,7 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@ -16,7 +17,9 @@ import java.time.LocalDateTime;
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class UpdateTaskDTO { public class UpdateTaskDTO implements Serializable {
private static final long serialVersionUId = 1L;
/** /**
* 任务状态 * 任务状态
* 字典表 task_status * 字典表 task_status
@ -37,4 +40,8 @@ public class UpdateTaskDTO {
* 备注信息 * 备注信息
*/ */
private String remark; private String remark;
/**
* 任务id
*/
private Long taskId;
} }

View File

@ -1,22 +1,50 @@
package com.chushang.task.consumer; package com.chushang.task.consumer;
import com.alibaba.fastjson2.JSON;
import com.chushang.common.core.constant.ServiceConstant; import com.chushang.common.core.constant.ServiceConstant;
import com.chushang.task.entity.TaskInfo;
import com.chushang.task.entity.dto.CreateTaskDTO;
import com.chushang.task.enums.TaskStatusEnum;
import com.chushang.task.service.TaskInfoService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener; import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/** /**
* @auther: zhao * @auther: zhao
* @date: 2024/6/12 15:03 * @date: 2024/6/12 15:03
* 后台任务队列 --> 此处用于创建以及修改后台任务
*/ */
@Slf4j @Slf4j
@Component @Component
@RocketMQMessageListener(topic = ServiceConstant.TASK, consumerGroup = ServiceConstant.TASK_CONSUMER_GROUP) @RocketMQMessageListener(topic = ServiceConstant.TASK, consumerGroup = ServiceConstant.TASK_CONSUMER_GROUP)
public class TaskConsumerService implements RocketMQListener<String> { public class TaskConsumerService implements RocketMQListener<CreateTaskDTO> {
@Resource
TaskInfoService taskInfoService;
@Override @Override
public void onMessage(String message) { public void onMessage(CreateTaskDTO task) {
log.info("msg {}", message); log.info("创建后台任务 {}", JSON.toJSONString(task));
TaskInfo taskInfo = TaskInfo.builder()
.applicationName(task.getApplicationName().getServiceName())
.className(task.getClassName())
.methodName(task.getMethodName())
.params(task.getParams())
.taskStatus(TaskStatusEnum.CREATE.getCode())
.deptId(task.getDeptId())
.taskType(task.getTaskType().getCode())
.taskName(task.getTaskName())
.build();
taskInfo.setCreateBy(task.getCreateBy());
boolean save = taskInfoService.save(taskInfo);
// 如果 入库成功, 则将其发送到消息队列中
if (save){
log.info("消息发送队列 {}", taskInfo.getTaskId());
taskInfoService.joinQueue(taskInfo);
}
} }
} }

View File

@ -4,6 +4,7 @@ import com.chushang.common.core.web.AjaxResult;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.security.annotation.RequiresPermissions; import com.chushang.security.annotation.RequiresPermissions;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.task.entity.TaskInfo; import com.chushang.task.entity.TaskInfo;
import com.chushang.task.service.TaskInfoService; import com.chushang.task.service.TaskInfoService;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -28,6 +29,8 @@ public class TaskController {
@GetMapping("/list") @GetMapping("/list")
public AjaxResult page(TaskInfo taskInfo){ public AjaxResult page(TaskInfo taskInfo){
CommonParam commonParam = CommonParam.buildPageRequest(); CommonParam commonParam = CommonParam.buildPageRequest();
Long userId = SecurityUtils.getUserId();
taskInfo.setUserId(userId);
PageResult pageResult = taskInfoService.pagePostList(taskInfo, commonParam); PageResult pageResult = taskInfoService.pagePostList(taskInfo, commonParam);
return AjaxResult.success(pageResult); return AjaxResult.success(pageResult);
} }
@ -35,10 +38,14 @@ public class TaskController {
/** /**
* 获取 后台任务信息 * 获取 后台任务信息
*/ */
@GetMapping(value = "/{taskId}") @GetMapping(value = "/info/{taskId}")
@RequiresPermissions("system:task:info") @RequiresPermissions("system:task:info")
public AjaxResult info(@PathVariable Long taskId){ public AjaxResult info(@PathVariable Long taskId){
return AjaxResult.success(taskInfoService.getById(taskId)); return AjaxResult.success(taskInfoService.getById(taskId));
} }
// public AjaxResult ss(){
// return AjaxResult.success();
// }
} }

View File

@ -1,6 +1,7 @@
package com.chushang.task.service; package com.chushang.task.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chushang.common.mq.produce.MqProduceService; import com.chushang.common.mq.produce.MqProduceService;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.datascope.annotation.DataScope; import com.chushang.datascope.annotation.DataScope;
import com.chushang.datascope.constants.ScopeConstants; import com.chushang.datascope.constants.ScopeConstants;
import com.chushang.task.entity.TaskInfo; import com.chushang.task.entity.TaskInfo;
@ -31,28 +33,16 @@ public class TaskInfoService extends ServiceImpl<TaskInfoMapper, TaskInfo> imple
@Resource @Resource
MqProduceService<TaskInfo> mqProduceService; MqProduceService<TaskInfo> mqProduceService;
@DataScope(deptAlias = "t") @DataScope
public PageResult pagePostList(TaskInfo sysPost, CommonParam commonParam){ public PageResult pagePostList(TaskInfo sysPost, CommonParam commonParam){
LambdaQueryWrapper<TaskInfo> sql = WrapperUtils.builder(sysPost, commonParam);
IPage<TaskInfo> page = this.page( IPage<TaskInfo> page = this.page(
new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()), new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()),
buildWrapper(sysPost, commonParam) sql
); );
return new PageResult(page); return new PageResult(page);
} }
public Wrapper<TaskInfo> buildWrapper(TaskInfo taskInfo, CommonParam commonParam) {
return new QueryWrapper<TaskInfo>()
.orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy())
.lambda()
.eq(null != taskInfo.getTaskId(), TaskInfo::getTaskId, taskInfo.getTaskId())
.like(null != taskInfo.getApplicationName(), TaskInfo::getApplicationName, taskInfo.getApplicationName())
.eq(StringUtils.isNotEmpty(taskInfo.getTaskName()), TaskInfo::getTaskName, taskInfo.getTaskName())
.eq(null != taskInfo.getTaskStatus(), TaskInfo::getTaskStatus, taskInfo.getTaskStatus())
.like(StringUtils.isNotEmpty(taskInfo.getClassName()), TaskInfo::getClassName, taskInfo.getClassName())
.like(StringUtils.isNotEmpty(taskInfo.getMethodName()), TaskInfo::getMethodName, taskInfo.getMethodName())
.in(ObjectUtils.isNotEmpty(taskInfo.getSqlParam().get(ScopeConstants.DATA_SCOPE)), TaskInfo::getDeptId, taskInfo.getSqlParam().get(ScopeConstants.DATA_SCOPE));
}
public void joinQueue(TaskInfo taskInfo){ public void joinQueue(TaskInfo taskInfo){
mqProduceService.send(taskInfo.getApplicationName(), taskInfo); mqProduceService.send(taskInfo.getApplicationName(), taskInfo);