1. 修改后台任务相关
This commit is contained in:
parent
a8e997e260
commit
e320ce60b3
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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) +"]");
|
||||||
|
|
|
||||||
|
|
@ -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("导入成功, 请在后台任务中查看导入结果");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)){
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue