From 218dfce34cde129801ff48192e21dc50e241ba3b Mon Sep 17 00:00:00 2001 From: zhaowenyuan Date: Tue, 18 Jun 2024 17:25:57 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BB=BB=E5=8A=A1=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chushang/common/core/util/TreeNode.java | 32 +++++++ .../chushang/common/core/util/TreeUtils.java | 63 ++++++++++++++ .../project/entity/dto/TaskQuery.java | 36 ++++++++ .../project/entity/po/PollingTask.java | 20 +++-- .../project/entity/po/WrkAudit.java | 2 +- .../project/entity/po/WrkProjectContract.java | 1 - .../inspection/project/entity/vo/TaskVO.java | 83 +++++++++++++++++++ .../controller/PollTaskController.java | 21 +++++ .../project/service/PollingTaskService.java | 4 + .../service/impl/PollingTaskServiceImpl.java | 17 ++++ .../chushang/system/entity/po/SysConfig.java | 6 -- .../system/entity/po/SysDictType.java | 7 -- .../system/entity/po/SysLoginInfo.java | 1 - 13 files changed, 268 insertions(+), 25 deletions(-) create mode 100644 chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/TreeNode.java create mode 100644 chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/TreeUtils.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/TaskQuery.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/TaskVO.java diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/TreeNode.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/TreeNode.java new file mode 100644 index 0000000..08b897e --- /dev/null +++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/TreeNode.java @@ -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 implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + + /** + * 上级ID + */ + private Long parentId; + + /** + * 子节点列表 + */ + private List children = new ArrayList<>(); +} diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/TreeUtils.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/TreeUtils.java new file mode 100644 index 0000000..38479ff --- /dev/null +++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/TreeUtils.java @@ -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 > List build(List treeNodes, Long parentId) { + // pid不能为空 + Assert.notNull(parentId, "上级id不能为空"); + List treeList = new ArrayList<>(); + for (T treeNode : treeNodes) { + if (parentId.equals(treeNode.getParentId())) { + treeList.add(findChildren(treeNodes, treeNode)); + } + } + return treeList; + } + + /** + * 查找子节点 + */ + private static > T findChildren(List treeNodes, T rootNode) { + for (T treeNode : treeNodes) { + if (rootNode.getId().equals(treeNode.getParentId())) { + rootNode.getChildren().add(findChildren(treeNodes, treeNode)); + } + } + return rootNode; + } + + /** + * 构建树节点 + */ + public static > List build(List treeNodes) { + List result = new ArrayList<>(); + // list转map + Map 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; + } +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/TaskQuery.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/TaskQuery.java new file mode 100644 index 0000000..7c005bd --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/TaskQuery.java @@ -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 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; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/PollingTask.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/PollingTask.java index 4bef00b..b348d0f 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/PollingTask.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/PollingTask.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.chushang.common.mybatis.base.BaseEntity; + +import java.time.LocalDateTime; import java.util.Date; import lombok.AllArgsConstructor; import lombok.Data; @@ -33,8 +35,8 @@ public class PollingTask extends BaseEntity { /** * 上级id */ - @TableField(value = "pid") - private Long pid; + @TableField(value = "parent_id") + private Long parentId; /** * 任务名称 @@ -64,25 +66,25 @@ public class PollingTask extends BaseEntity { * 是否有电子巡检单 */ @TableField(value = "is_inspection") - private Byte isInspection; + private Integer isInspection; /** * 巡检方式 (0 业务员领取 1 只能派给负责项目的业务员 2 只能派给商户对应的客户经理 ) */ @TableField(value = "dispatch_method") - private Byte dispatchMethod; + private Integer dispatchMethod; /** * 巡检方式 */ @TableField(value = "review_method") - private Byte reviewMethod; + private Integer reviewMethod; /** * 是否重复派单(领取) */ @TableField(value = "is_repeat") - private Byte isRepeat; + private Integer isRepeat; /** * 租户id @@ -94,13 +96,13 @@ public class PollingTask extends BaseEntity { * 开始时间 */ @TableField(value = "start_time") - private Date startTime; + private LocalDateTime startTime; /** * 结束时间 */ @TableField(value = "end_time") - private Date endTime; + private LocalDateTime endTime; /** * 任务状态 @@ -124,5 +126,5 @@ public class PollingTask extends BaseEntity { * 索引下标 */ @TableField(value = "search_index") - private Byte searchIndex; + private Integer searchIndex; } diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkAudit.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkAudit.java index 7c786fa..cc809c5 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkAudit.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkAudit.java @@ -8,7 +8,7 @@ import com.chushang.common.mybatis.annotation.Condition; import com.chushang.common.mybatis.base.BaseEntity; import java.time.LocalDateTime; -import java.util.Date; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkProjectContract.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkProjectContract.java index 1243e31..3da41ba 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkProjectContract.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/WrkProjectContract.java @@ -6,7 +6,6 @@ import com.chushang.common.mybatis.annotation.Condition; import com.chushang.common.mybatis.base.BaseEntity; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.Date; import java.util.List; import lombok.*; diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/TaskVO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/TaskVO.java new file mode 100644 index 0000000..cf10ac7 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/TaskVO.java @@ -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 { + + /** + * 任务名称 + */ + private String name; + + /** + * 任务联系人 + */ + private String contact; + + /** + * 联系电话 + */ + private String phone; + + /** + * 索引 + */ + private String searchNum; + + /** + * 项目开始时间 + */ + private LocalDateTime startTime; + + /** + * 项目结束时间 + */ + private LocalDateTime endTime; + + /** + * 状态 + */ + private Integer enabled; + + /** + * 负责的部门 -- 负责的部门id 集合 + */ + private List deptIds; + + /** + * 是否有电子巡检单(默认0 没有) + */ + private Integer isInspection; + + /** + * 派单方式 + */ + private Integer dispatchMethod; + + /** + * 审核方式 + */ + private Integer reviewMethod; + + /** + * 是否重复派单 + */ + private Integer isRepeat; + + /** + * 银行编号 + */ + private String number; + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollTaskController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollTaskController.java index 841e0e9..df52645 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollTaskController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollTaskController.java @@ -1,9 +1,16 @@ 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 org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + /** * @auther: zhao * @date: 2024/6/18 15:41 @@ -13,6 +20,20 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping(value = "/task") 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)); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/PollingTaskService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/PollingTaskService.java index 9dca490..926a76e 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/PollingTaskService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/PollingTaskService.java @@ -1,8 +1,11 @@ package com.chushang.inspection.project.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.inspection.project.entity.dto.TaskQuery; import com.chushang.inspection.project.entity.po.PollingTask; +import java.util.List; + /** * @auther: zhao * @date: 2024/6/18 15:39 @@ -10,4 +13,5 @@ import com.chushang.inspection.project.entity.po.PollingTask; public interface PollingTaskService extends IService{ + List findTopList(TaskQuery taskQuery, Long userId); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/PollingTaskServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/PollingTaskServiceImpl.java index 1675125..6798fed 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/PollingTaskServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/PollingTaskServiceImpl.java @@ -1,15 +1,32 @@ 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 lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.inspection.project.mapper.PollingTaskMapper; import com.chushang.inspection.project.entity.po.PollingTask; + +import java.util.List; + /** * @auther: zhao * @date: 2024/6/18 15:39 */ +@Slf4j @Service public class PollingTaskServiceImpl extends ServiceImpl implements PollingTaskService { + @Override + public List findTopList(TaskQuery taskQuery, Long userId) + { + LambdaQueryWrapper taskSql = WrapperUtils.builder(taskQuery, CommonParam.buildPageRequest()); + list(taskSql); + return List.of(); + } } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysConfig.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysConfig.java index 6454078..a86f8c5 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysConfig.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysConfig.java @@ -1,18 +1,12 @@ package com.chushang.system.entity.po; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; - import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.*; import com.chushang.common.mybatis.annotation.Condition; import com.chushang.common.mybatis.base.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Setter; import lombok.experimental.Accessors; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import java.io.Serial; diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictType.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictType.java index 0575f33..19a3488 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictType.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysDictType.java @@ -1,9 +1,5 @@ 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 com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.*; @@ -12,11 +8,8 @@ import com.chushang.common.mybatis.base.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import java.io.Serial; import java.time.LocalDateTime; diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysLoginInfo.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysLoginInfo.java index b1d4b34..bb701da 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysLoginInfo.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/po/SysLoginInfo.java @@ -9,7 +9,6 @@ import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.system.entity.enums.LoginStatusEnum; import lombok.*; import lombok.experimental.Accessors; -import lombok.experimental.SuperBuilder; import java.time.LocalDateTime;