1. 任务相关

This commit is contained in:
zhaowenyuan 2024-06-18 17:25:57 +08:00
parent b930217312
commit 218dfce34c
13 changed files with 268 additions and 25 deletions

View File

@ -0,0 +1,32 @@
package com.chushang.common.core.util;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 树节点所有需要实现树节点的都需要继承该类
*/
@Data
public class TreeNode<T> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private Long id;
/**
* 上级ID
*/
private Long parentId;
/**
* 子节点列表
*/
private List<T> children = new ArrayList<>();
}

View File

@ -0,0 +1,63 @@
package com.chushang.common.core.util;
import cn.hutool.core.lang.Assert;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* 树形结构工具类菜单机构等
*/
public class TreeUtils {
/**
* 根据pid构建树节点
*/
public static <T extends TreeNode<T>> List<T> build(List<T> treeNodes, Long parentId) {
// pid不能为空
Assert.notNull(parentId, "上级id不能为空");
List<T> treeList = new ArrayList<>();
for (T treeNode : treeNodes) {
if (parentId.equals(treeNode.getParentId())) {
treeList.add(findChildren(treeNodes, treeNode));
}
}
return treeList;
}
/**
* 查找子节点
*/
private static <T extends TreeNode<T>> T findChildren(List<T> treeNodes, T rootNode) {
for (T treeNode : treeNodes) {
if (rootNode.getId().equals(treeNode.getParentId())) {
rootNode.getChildren().add(findChildren(treeNodes, treeNode));
}
}
return rootNode;
}
/**
* 构建树节点
*/
public static <T extends TreeNode<T>> List<T> build(List<T> treeNodes) {
List<T> result = new ArrayList<>();
// list转map
Map<Long, T> nodeMap = new LinkedHashMap<>(treeNodes.size());
for (T treeNode : treeNodes) {
nodeMap.put(treeNode.getId(), treeNode);
}
for (T node : nodeMap.values()) {
T parent = nodeMap.get(node.getParentId());
if (parent != null && !(node.getId().equals(parent.getId()))) {
parent.getChildren().add(node);
continue;
}
result.add(node);
}
return result;
}
}

View File

@ -0,0 +1,36 @@
package com.chushang.inspection.project.entity.dto;
import com.chushang.common.mybatis.annotation.Condition;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.List;
/**
* 查询 任务
* @auther: zhao
* @date: 2024/6/18 16:04
*/
@Data
public class TaskQuery {
/** 任务名称或联系人 */
@Size(max = 32, message = "任务名称或联系人长度不能超过32位")
@Condition(name = "`name`,contact", type = Condition.ConditionType.or_eq)
private String blurry;
/** 创建时间 */
@Condition(name = "create_time", type = Condition.ConditionType.in)
private List<LocalDateTime> createTime;
/** 上级任务id */
@Condition(name = "parent_id", type = Condition.ConditionType.eq)
private Long pid;
/** 是否查询未开启的状态1 不是 0是 */
@Range(max = 1, message = "状态输入错误")
@Condition(name = "enabled", type = Condition.ConditionType.eq)
private Integer enabled;
}

View File

@ -5,6 +5,8 @@ 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.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -33,8 +35,8 @@ public class PollingTask extends BaseEntity {
/** /**
* 上级id * 上级id
*/ */
@TableField(value = "pid") @TableField(value = "parent_id")
private Long pid; private Long parentId;
/** /**
* 任务名称 * 任务名称
@ -64,25 +66,25 @@ public class PollingTask extends BaseEntity {
* 是否有电子巡检单 * 是否有电子巡检单
*/ */
@TableField(value = "is_inspection") @TableField(value = "is_inspection")
private Byte isInspection; private Integer isInspection;
/** /**
* 巡检方式 0 业务员领取 1 只能派给负责项目的业务员 2 只能派给商户对应的客户经理 * 巡检方式 0 业务员领取 1 只能派给负责项目的业务员 2 只能派给商户对应的客户经理
*/ */
@TableField(value = "dispatch_method") @TableField(value = "dispatch_method")
private Byte dispatchMethod; private Integer dispatchMethod;
/** /**
* 巡检方式 * 巡检方式
*/ */
@TableField(value = "review_method") @TableField(value = "review_method")
private Byte reviewMethod; private Integer reviewMethod;
/** /**
* 是否重复派单领取 * 是否重复派单领取
*/ */
@TableField(value = "is_repeat") @TableField(value = "is_repeat")
private Byte isRepeat; private Integer isRepeat;
/** /**
* 租户id * 租户id
@ -94,13 +96,13 @@ public class PollingTask extends BaseEntity {
* 开始时间 * 开始时间
*/ */
@TableField(value = "start_time") @TableField(value = "start_time")
private Date startTime; private LocalDateTime startTime;
/** /**
* 结束时间 * 结束时间
*/ */
@TableField(value = "end_time") @TableField(value = "end_time")
private Date endTime; private LocalDateTime endTime;
/** /**
* 任务状态 * 任务状态
@ -124,5 +126,5 @@ public class PollingTask extends BaseEntity {
* 索引下标 * 索引下标
*/ */
@TableField(value = "search_index") @TableField(value = "search_index")
private Byte searchIndex; private Integer searchIndex;
} }

View File

@ -8,7 +8,7 @@ import com.chushang.common.mybatis.annotation.Condition;
import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@ -6,7 +6,6 @@ import com.chushang.common.mybatis.annotation.Condition;
import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
import lombok.*; import lombok.*;

View File

@ -0,0 +1,83 @@
package com.chushang.inspection.project.entity.vo;
import com.chushang.common.core.util.TreeNode;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
/**
* @auther: zhao
* @date: 2024/6/18 15:58
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class TaskVO extends TreeNode<Long> {
/**
* 任务名称
*/
private String name;
/**
* 任务联系人
*/
private String contact;
/**
* 联系电话
*/
private String phone;
/**
* 索引
*/
private String searchNum;
/**
* 项目开始时间
*/
private LocalDateTime startTime;
/**
* 项目结束时间
*/
private LocalDateTime endTime;
/**
* 状态
*/
private Integer enabled;
/**
* 负责的部门 -- 负责的部门id 集合
*/
private List<Long> deptIds;
/**
* 是否有电子巡检单(默认0 没有)
*/
private Integer isInspection;
/**
* 派单方式
*/
private Integer dispatchMethod;
/**
* 审核方式
*/
private Integer reviewMethod;
/**
* 是否重复派单
*/
private Integer isRepeat;
/**
* 银行编号
*/
private String number;
}

View File

@ -1,9 +1,16 @@
package com.chushang.inspection.project.controller; package com.chushang.inspection.project.controller;
import com.chushang.common.core.web.AjaxResult;
import com.chushang.inspection.project.entity.dto.TaskQuery;
import com.chushang.inspection.project.service.PollingTaskService;
import com.chushang.security.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/** /**
* @auther: zhao * @auther: zhao
* @date: 2024/6/18 15:41 * @date: 2024/6/18 15:41
@ -13,6 +20,20 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping(value = "/task") @RequestMapping(value = "/task")
public class PollTaskController { public class PollTaskController {
@Resource
PollingTaskService pollingTaskService;
/**
* 查询顶级任务列表
*/
@GetMapping("/list/top")
// @RequiresPermissions("store:task:top")
public AjaxResult findTopList(TaskQuery taskQuery) {
// Long userId = SecurityUtils.getUserId();
Long userId = 1L;
return AjaxResult.success(pollingTaskService.findTopList(taskQuery, userId));
}
} }

View File

@ -1,8 +1,11 @@
package com.chushang.inspection.project.service; package com.chushang.inspection.project.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.chushang.inspection.project.entity.dto.TaskQuery;
import com.chushang.inspection.project.entity.po.PollingTask; import com.chushang.inspection.project.entity.po.PollingTask;
import java.util.List;
/** /**
* @auther: zhao * @auther: zhao
* @date: 2024/6/18 15:39 * @date: 2024/6/18 15:39
@ -10,4 +13,5 @@ import com.chushang.inspection.project.entity.po.PollingTask;
public interface PollingTaskService extends IService<PollingTask>{ public interface PollingTaskService extends IService<PollingTask>{
List<PollingTask> findTopList(TaskQuery taskQuery, Long userId);
} }

View File

@ -1,15 +1,32 @@
package com.chushang.inspection.project.service.impl; package com.chushang.inspection.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chushang.common.core.util.TreeUtils;
import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.inspection.project.entity.dto.TaskQuery;
import com.chushang.inspection.project.service.PollingTaskService; import com.chushang.inspection.project.service.PollingTaskService;
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;
import com.chushang.inspection.project.mapper.PollingTaskMapper; import com.chushang.inspection.project.mapper.PollingTaskMapper;
import com.chushang.inspection.project.entity.po.PollingTask; import com.chushang.inspection.project.entity.po.PollingTask;
import java.util.List;
/** /**
* @auther: zhao * @auther: zhao
* @date: 2024/6/18 15:39 * @date: 2024/6/18 15:39
*/ */
@Slf4j
@Service @Service
public class PollingTaskServiceImpl extends ServiceImpl<PollingTaskMapper, PollingTask> implements PollingTaskService { public class PollingTaskServiceImpl extends ServiceImpl<PollingTaskMapper, PollingTask> implements PollingTaskService {
@Override
public List<PollingTask> findTopList(TaskQuery taskQuery, Long userId)
{
LambdaQueryWrapper<PollingTask> taskSql = WrapperUtils.builder(taskQuery, CommonParam.buildPageRequest());
list(taskSql);
return List.of();
}
} }

View File

@ -1,18 +1,12 @@
package com.chushang.system.entity.po; package com.chushang.system.entity.po;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.chushang.common.mybatis.annotation.Condition; import com.chushang.common.mybatis.annotation.Condition;
import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.io.Serial; import java.io.Serial;

View File

@ -1,9 +1,5 @@
package com.chushang.system.entity.po; package com.chushang.system.entity.po;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
@ -12,11 +8,8 @@ import com.chushang.common.mybatis.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.io.Serial; import java.io.Serial;
import java.time.LocalDateTime; import java.time.LocalDateTime;

View File

@ -9,7 +9,6 @@ import com.chushang.common.mybatis.base.BaseEntity;
import com.chushang.system.entity.enums.LoginStatusEnum; import com.chushang.system.entity.enums.LoginStatusEnum;
import lombok.*; import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
import java.time.LocalDateTime; import java.time.LocalDateTime;