Przeglądaj źródła

矿山域-流程管理

ltt 1 rok temu
rodzic
commit
660a0869f5
27 zmienionych plików z 1358 dodań i 13 usunięć
  1. 89 0
      business-modules/business-mine/src/main/java/com/sckw/mine/controller/NodeController.java
  2. 71 0
      business-modules/business-mine/src/main/java/com/sckw/mine/controller/WorkFlowController.java
  3. 82 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/KwBusinessNode.java
  4. 26 1
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/KwBusinessWorkFlow.java
  5. 67 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/KwBusinessWorkFlowNode.java
  6. 15 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/dto/WorkFlowNodeDTO.java
  7. 43 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/NodeInsertParam.java
  8. 25 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/NodePageListParam.java
  9. 45 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/NodeUpdateParam.java
  10. 30 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/WorkFlowInsertParam.java
  11. 28 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/WorkFlowPageListParam.java
  12. 33 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/WorkFlowUpdateParam.java
  13. 75 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/res/NodeDetailRes.java
  14. 75 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/res/NodePageListRes.java
  15. 67 0
      business-modules/business-mine/src/main/java/com/sckw/mine/entity/res/WorkFlowPageListRes.java
  16. 1 1
      business-modules/business-mine/src/main/java/com/sckw/mine/enums/MineStatusEnum.java
  17. 37 0
      business-modules/business-mine/src/main/java/com/sckw/mine/enums/NodeTypeEnum.java
  18. 37 0
      business-modules/business-mine/src/main/java/com/sckw/mine/enums/WorkFlowTypeEnum.java
  19. 31 0
      business-modules/business-mine/src/main/java/com/sckw/mine/mapper/NodeMapper.java
  20. 18 0
      business-modules/business-mine/src/main/java/com/sckw/mine/mapper/WorkFlowMapper.java
  21. 12 0
      business-modules/business-mine/src/main/java/com/sckw/mine/mapper/WorkFlowNodeMapper.java
  22. 0 9
      business-modules/business-mine/src/main/java/com/sckw/mine/service/MineService.java
  23. 146 0
      business-modules/business-mine/src/main/java/com/sckw/mine/service/NodeService.java
  24. 176 0
      business-modules/business-mine/src/main/java/com/sckw/mine/service/WorkFlowService.java
  25. 2 2
      business-modules/business-mine/src/main/resources/mapper/MineralAggregateMapper.xml
  26. 64 0
      business-modules/business-mine/src/main/resources/mapper/NodeMapper.xml
  27. 63 0
      business-modules/business-mine/src/main/resources/mapper/WorkFlowMapper.xml

+ 89 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/controller/NodeController.java

@@ -0,0 +1,89 @@
+package com.sckw.mine.controller;
+
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.mine.entity.req.NodeInsertParam;
+import com.sckw.mine.entity.req.NodePageListParam;
+import com.sckw.mine.entity.req.NodeUpdateParam;
+import com.sckw.mine.entity.res.NodeDetailRes;
+import com.sckw.mine.service.NodeService;
+import jakarta.validation.Valid;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@RestController
+@RequestMapping("/mine/node")
+public class NodeController {
+
+    @Autowired
+    NodeService nodeService;
+
+    /**
+     * 新增
+     * @author Lt
+     * @date 2024/05/31
+     **/
+    @RequestMapping("/insert")
+    public HttpResult insert(@RequestBody @Valid NodeInsertParam param){
+        return nodeService.insert(param);
+    }
+
+    /**
+     * 刪除
+     * @author Lt
+     * @date 2024/05/31
+     **/
+    @PostMapping("/delete")
+    public HttpResult delete(@RequestParam("id") String id){
+        return nodeService.nodeDelete(id);
+    }
+
+    /**
+     * 更新
+     * @author Lt
+     * @date 2024/05/31
+     **/
+    @RequestMapping("/update")
+    public HttpResult update(@RequestBody  @Valid NodeUpdateParam param){
+        return nodeService.update(param);
+    }
+
+    /**
+     * 查询 根据主键 id 查询
+     *
+     * @author Lt
+     * @date 2024/05/31
+     **/
+    @RequestMapping("/detail")
+    public HttpResult load(@RequestParam("id") String id){
+        return HttpResult.ok(nodeService.detail(id));
+    }
+
+    /**
+     * 查询 分页查询
+     * @author Lt
+     * @date 2024/05/31
+     **/
+    @PostMapping("/pageList")
+    public HttpResult pageList(@RequestBody NodePageListParam nodePageListParam) {
+        return nodeService.pageList(nodePageListParam);
+    }
+
+    /**
+    * @Description: 状态操作
+    * @Author: Lt
+    * @Date: 2024/5/31 0031 14:46
+    */
+    @RequestMapping("/statusAction")
+    public HttpResult statusAction(@RequestParam("id") String id , @RequestParam("status") Integer status) {
+        return nodeService.statusAction(id, status);
+    }
+
+
+
+
+}

+ 71 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/controller/WorkFlowController.java

@@ -0,0 +1,71 @@
+package com.sckw.mine.controller;
+
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.mine.entity.req.WorkFlowInsertParam;
+import com.sckw.mine.entity.req.WorkFlowPageListParam;
+import com.sckw.mine.entity.req.WorkFlowUpdateParam;
+import com.sckw.mine.service.WorkFlowService;
+import jakarta.validation.Valid;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@RestController
+@RequestMapping("/mine/workFlow")
+public class WorkFlowController {
+
+    @Autowired
+    WorkFlowService workFlowService;
+
+    /**
+    * @Description: 流程新增
+    * @Author: Lt
+    * @Date: 2024/5/31 14:45
+    */
+    @PostMapping("/insert")
+    public HttpResult insert(@RequestBody @Valid WorkFlowInsertParam workFlowInsertParam)
+    {
+        return workFlowService.insert(workFlowInsertParam);
+    }
+
+    /**
+     * @Description: 流程编辑
+     * @Author: Lt
+     * @Date: 2024/5/31 15:34
+     */
+    @PostMapping("/update")
+    public HttpResult update(@RequestBody @Valid WorkFlowUpdateParam workFlowUpdateParam)
+    {
+        return workFlowService.update(workFlowUpdateParam);
+    }
+
+    /**
+    * @Description: 分页列表
+    * @Author: Lt
+    * @Date: 2024/5/31 15:34
+    */
+    @PostMapping("/pageList")
+    public HttpResult pageList(@RequestBody @Valid WorkFlowPageListParam workFlowPageListParam)
+    {
+        return workFlowService.pageList(workFlowPageListParam);
+    }
+
+    ///**
+    // * 查询 根据主键 id 查询
+    // * @author lt
+    // * @date 2024/05/30
+    // **/
+    //@GetMapping("/detail")
+    //public HttpResult detail(@RequestParam("id") String id){
+    //    return workFlowService.detail(id);
+    //}
+
+
+
+
+
+}

+ 82 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/KwBusinessNode.java

@@ -0,0 +1,82 @@
+package com.sckw.mine.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @desc: 节点信息
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class KwBusinessNode {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /*
+    租户
+     */
+    private String tenantId;
+
+    /**
+     * 节点编号
+     */
+    private String nodeCode;
+
+    /**
+     * 节点名称
+     */
+    private String nodeName;
+
+    /**
+     * 节点类型
+     */
+    private Integer nodeType;
+
+    /**
+     * 节点排序
+     */
+    private Integer nodeSort;
+
+    /**
+     * 节点被引用次数
+     */
+    private Integer nodeUseCount;
+
+    /**
+     * status
+     */
+    private Integer status;
+
+    /**
+     * create_by
+     */
+    private String createBy;
+
+    /**
+     * update_by
+     */
+    private String updateBy;
+
+    /**
+     * create_time
+     */
+    private Date createTime;
+
+    /**
+     * update_time
+     */
+    private Date updateTime;
+
+    /**
+     * del_flag
+     */
+    private Integer delFlag;
+
+}

+ 26 - 1
business-modules/business-mine/src/main/java/com/sckw/mine/entity/KwBusinessWorkFlow.java

@@ -6,7 +6,7 @@ import java.io.Serializable;
 import java.util.Date;
 
 /**
- * @desc:
+ * @desc: 流程实体类
  * @author: Lt
  * @date: 2024-05-29
  */
@@ -25,11 +25,36 @@ public class KwBusinessWorkFlow implements Serializable {
      */
     private String tenantId;
 
+    /**
+     * 流程编号
+     */
+    private String workCode;
+
     /**
      * 流程名称
      */
     private String workName;
 
+    /**
+     * 流程类型
+     */
+    private Integer workType;
+
+    /**
+     * 流程节点数
+     */
+    private Integer nodeCount;
+
+    /**
+     * 使用中订单数
+     */
+    private Integer useOrderCount;
+
+    /**
+     * 状态 1正常  2禁用
+     */
+    private Integer status;
+
     /**
      * create_by
      */

+ 67 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/KwBusinessWorkFlowNode.java

@@ -0,0 +1,67 @@
+package com.sckw.mine.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @desc: 流程绑定的节点
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class KwBusinessWorkFlowNode implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /*
+    节点名称
+     */
+    private String nodeName;
+
+    /**
+     * 流程id
+     */
+    private String flowId;
+
+    /**
+     * 节点id
+     */
+    private String nodeId;
+
+    /*
+    排序
+     */
+    private Integer sort;
+
+    /**
+     * create_by
+     */
+    private String createBy;
+
+    /**
+     * update_by
+     */
+    private String updateBy;
+
+    /**
+     * create_time
+     */
+    private Date createTime;
+
+    /**
+     * update_time
+     */
+    private Date updateTime;
+
+    /**
+     * del_flag
+     */
+    private Integer delFlag;
+}

+ 15 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/dto/WorkFlowNodeDTO.java

@@ -0,0 +1,15 @@
+package com.sckw.mine.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class WorkFlowNodeDTO {
+
+    private String nodeId;
+    private String nodeName;
+}

+ 43 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/NodeInsertParam.java

@@ -0,0 +1,43 @@
+package com.sckw.mine.entity.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class NodeInsertParam {
+
+
+    /**
+     * 节点名称
+     */
+    @NotBlank(message = "节点名称必填")
+    private String nodeName;
+
+    /**
+     * 节点类型
+     */
+    private Integer nodeType;
+
+    /**
+     * 节点排序
+     */
+    @NotNull(message = "节点排序必填")
+    private Integer nodeSort;
+
+    /**
+     * 节点被引用次数
+     */
+    private Integer nodeUseCount;
+
+    /**
+     * status
+     */
+    private Integer status;
+
+}

+ 25 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/NodePageListParam.java

@@ -0,0 +1,25 @@
+package com.sckw.mine.entity.req;
+
+import lombok.Data;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class NodePageListParam {
+    private Integer page;
+
+    private Integer pageSize;
+
+    private String tenantId;
+
+    private String nodeName;
+
+    private String nodeCode;
+
+    private Integer nodeType;
+
+    private Integer status;
+}

+ 45 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/NodeUpdateParam.java

@@ -0,0 +1,45 @@
+package com.sckw.mine.entity.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class NodeUpdateParam {
+
+    @NotBlank(message = "节点id必填")
+    private String id;
+
+    /**
+     * 节点名称
+     */
+    @NotBlank(message = "节点名称必填")
+    private String nodeName;
+
+    /**
+     * 节点类型
+     */
+    private Integer nodeType;
+
+    /**
+     * 节点排序
+     */
+    @NotNull(message = "节点排序必填")
+    private Integer nodeSort;
+
+    /**
+     * 节点被引用次数
+     */
+    private Integer nodeUseCount;
+
+    /**
+     * status
+     */
+    private Integer status;
+
+}

+ 30 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/WorkFlowInsertParam.java

@@ -0,0 +1,30 @@
+package com.sckw.mine.entity.req;
+
+import com.sckw.mine.entity.dto.WorkFlowNodeDTO;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @desc: 流程新增
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class WorkFlowInsertParam {
+
+    @NotBlank(message = "流程名称")
+    private String workName;
+
+    @NotNull(message = "流程类型不能为空")
+    private Integer workType;
+
+    private String remark;
+
+    @NotEmpty(message = "流程节点不能为空")
+    private List<WorkFlowNodeDTO> workFlowNode;
+
+}

+ 28 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/WorkFlowPageListParam.java

@@ -0,0 +1,28 @@
+package com.sckw.mine.entity.req;
+
+import lombok.Data;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class WorkFlowPageListParam {
+
+    private Integer page;
+
+    private Integer pageSize;
+
+    /*
+    流程编号
+     */
+    private String workCode;
+
+    /*
+    流程名称
+     */
+    private String workName;
+
+    private String tenantId;
+}

+ 33 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/req/WorkFlowUpdateParam.java

@@ -0,0 +1,33 @@
+package com.sckw.mine.entity.req;
+
+import com.sckw.mine.entity.dto.WorkFlowNodeDTO;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @desc: 流程新增
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class WorkFlowUpdateParam {
+
+    @NotBlank(message = "流程id必填")
+    private String id;
+
+    @NotBlank(message = "流程名称")
+    private String workName;
+
+    @NotNull(message = "流程类型不能为空")
+    private Integer workType;
+
+    private String remark;
+
+    @NotEmpty(message = "流程节点不能为空")
+    private List<WorkFlowNodeDTO> workFlowNode;
+
+}

+ 75 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/res/NodeDetailRes.java

@@ -0,0 +1,75 @@
+package com.sckw.mine.entity.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @desc: 节点信息
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class NodeDetailRes {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 节点编号
+     */
+    private String nodeCode;
+
+    /**
+     * 节点名称
+     */
+    private String nodeName;
+
+    /**
+     * 节点类型
+     */
+    private Integer nodeType;
+    private String nodeTypeStr;
+
+    /**
+     * 节点排序
+     */
+    private Integer nodeSort;
+
+    /**
+     * 节点被引用次数
+     */
+    private Integer nodeUseCount;
+
+    /**
+     * status
+     */
+    private Integer status;
+    private String statusStr;
+
+    /**
+     * create_by
+     */
+    private String createBy;
+
+    /**
+     * update_by
+     */
+    private String updateBy;
+
+    /**
+     * create_time
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * update_time
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+}

+ 75 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/res/NodePageListRes.java

@@ -0,0 +1,75 @@
+package com.sckw.mine.entity.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @desc: 节点信息
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class NodePageListRes {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 节点编号
+     */
+    private String nodeCode;
+
+    /**
+     * 节点名称
+     */
+    private String nodeName;
+
+    /**
+     * 节点类型
+     */
+    private Integer nodeType;
+    private String nodeTypeStr;
+
+    /**
+     * 节点排序
+     */
+    private Integer nodeSort;
+
+    /**
+     * 节点被引用次数
+     */
+    private Integer nodeUseCount;
+
+    /**
+     * status
+     */
+    private Integer status;
+    private String statusStr;
+
+    /**
+     * create_by
+     */
+    private String createBy;
+
+    /**
+     * update_by
+     */
+    private String updateBy;
+
+    /**
+     * create_time
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * update_time
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+}

+ 67 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/entity/res/WorkFlowPageListRes.java

@@ -0,0 +1,67 @@
+package com.sckw.mine.entity.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.mine.entity.dto.WorkFlowNodeDTO;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Data
+public class WorkFlowPageListRes {
+
+    private String id;
+
+    /*
+    流程编号
+     */
+    private String workCode;
+
+    /*
+    流程名称
+     */
+    private String workName;
+
+    /*
+    流程类型
+     */
+    private Integer workType;
+    private String workTypeStr;
+
+    /*
+    流程节点数
+     */
+    private Integer nodeCount;
+
+    /*
+    流程使用数
+     */
+    private Integer useOrderCount;
+
+    private Integer status;
+    private String statusStr;
+
+    /*
+    备注
+     */
+    private String remark;
+    /*
+    创建人
+     */
+    private String createBy;
+
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    List<WorkFlowNodeDTO> workFlowNodeList;
+
+
+
+
+
+}

+ 1 - 1
business-modules/business-mine/src/main/java/com/sckw/mine/enums/MineStatusEnum.java

@@ -25,7 +25,7 @@ public enum MineStatusEnum {
     SIX(6, "原料加工"),
     SEVEN(7, "矿料清点"),
     EIGHT(8, "完成订单"),
-    NINE(8, "已取消")
+    NINE(9, "已取消")
     ;
 
     private final Integer code;

+ 37 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/enums/NodeTypeEnum.java

@@ -0,0 +1,37 @@
+package com.sckw.mine.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@AllArgsConstructor
+@Getter
+public enum NodeTypeEnum {
+    ONE(1, "节点类型1"),
+    TWO(2, "节点类型2")
+    ;
+
+    private final Integer code;
+    private final String msg;
+
+
+    public static String getNameByCode(Integer code) {
+        NodeTypeEnum[] enums = NodeTypeEnum.values();
+        for (NodeTypeEnum instance : enums) {
+            if (Objects.equals(instance.getCode(), code)) {
+                return instance.getMsg();
+            }
+        }
+        return null;
+    }
+
+    public static List<NodeTypeEnum> getSortList() {
+        NodeTypeEnum[] enums = NodeTypeEnum.values();
+        return Arrays.stream(enums).sorted(Comparator.comparingInt(NodeTypeEnum::getCode)).collect(Collectors.toList());
+    }
+}

+ 37 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/enums/WorkFlowTypeEnum.java

@@ -0,0 +1,37 @@
+package com.sckw.mine.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@AllArgsConstructor
+@Getter
+public enum WorkFlowTypeEnum {
+    ONE(1, "原矿料采集"),
+    TWO(2, "矿料采集加工")
+    ;
+
+    private final Integer code;
+    private final String msg;
+
+
+    public static String getNameByCode(Integer code) {
+        WorkFlowTypeEnum[] enums = WorkFlowTypeEnum.values();
+        for (WorkFlowTypeEnum instance : enums) {
+            if (Objects.equals(instance.getCode(), code)) {
+                return instance.getMsg();
+            }
+        }
+        return null;
+    }
+
+    public static List<WorkFlowTypeEnum> getSortList() {
+        WorkFlowTypeEnum[] enums = WorkFlowTypeEnum.values();
+        return Arrays.stream(enums).sorted(Comparator.comparingInt(WorkFlowTypeEnum::getCode)).collect(Collectors.toList());
+    }
+}

+ 31 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/mapper/NodeMapper.java

@@ -0,0 +1,31 @@
+package com.sckw.mine.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.mine.entity.KwBusinessNode;
+import com.sckw.mine.entity.req.MineralAggPageListParam;
+import com.sckw.mine.entity.req.MineralAggregateUpdateParam;
+import com.sckw.mine.entity.req.NodePageListParam;
+import com.sckw.mine.entity.req.NodeUpdateParam;
+import com.sckw.mine.entity.res.KwBusinessMineralAggregateDetailRes;
+import com.sckw.mine.entity.res.MineralAggregateListRes;
+import com.sckw.mine.entity.res.NodeDetailRes;
+import com.sckw.mine.entity.res.NodePageListRes;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+@DS("mine")
+public interface NodeMapper extends BaseMapper<KwBusinessNode> {
+
+    int nodeDelete(String id);
+    List<NodePageListRes> nodePageList(@Param("param") NodePageListParam param);
+
+    int nodeUpdate(@Param("param") NodeUpdateParam param);
+
+    NodeDetailRes load(@Param("id") String id);
+
+    int statusAction(@Param("id") String id, @Param("status") Integer status);
+}

+ 18 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/mapper/WorkFlowMapper.java

@@ -0,0 +1,18 @@
+package com.sckw.mine.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.mine.entity.KwBusinessWorkFlow;
+import com.sckw.mine.entity.req.WorkFlowPageListParam;
+import com.sckw.mine.entity.res.WorkFlowPageListRes;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+@DS("mine")
+public interface WorkFlowMapper extends BaseMapper<KwBusinessWorkFlow> {
+
+    List<WorkFlowPageListRes> pageList(@Param("param") WorkFlowPageListParam param);
+}

+ 12 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/mapper/WorkFlowNodeMapper.java

@@ -0,0 +1,12 @@
+package com.sckw.mine.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.mine.entity.KwBusinessWorkFlow;
+import com.sckw.mine.entity.KwBusinessWorkFlowNode;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+@DS("mine")
+public interface WorkFlowNodeMapper extends BaseMapper<KwBusinessWorkFlowNode> {
+}

+ 0 - 9
business-modules/business-mine/src/main/java/com/sckw/mine/service/MineService.java

@@ -67,15 +67,6 @@ public class MineService {
     @Autowired
     OrderServerCommon orderServerCommon;
 
-    private String generatorNum(String prefix, Integer length)
-    {
-        LocalDate currentDate = LocalDate.now();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
-        String orderPrefix = currentDate.format(formatter);
-        String key = prefix + orderPrefix;
-        return genOrderCode.genOrderCode(length, key, key);
-    }
-
     /**
      * @Description: 矿山域订单添加
      * @Author: Lt

+ 146 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/service/NodeService.java

@@ -0,0 +1,146 @@
+package com.sckw.mine.service;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.page.PageRes;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.utils.StringUtils;
+import com.sckw.core.utils.TenantUtil;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.mine.common.OrderServerCommon;
+import com.sckw.mine.entity.KwBusinessMineralAggregate;
+import com.sckw.mine.entity.KwBusinessNode;
+import com.sckw.mine.entity.req.*;
+import com.sckw.mine.entity.res.KwBusinessMineralAggregateDetailRes;
+import com.sckw.mine.entity.res.MineralAggregateListRes;
+import com.sckw.mine.entity.res.NodeDetailRes;
+import com.sckw.mine.entity.res.NodePageListRes;
+import com.sckw.mine.enums.MineralAggregateTypeEnum;
+import com.sckw.mine.enums.NodeTypeEnum;
+import com.sckw.mine.mapper.NodeMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.actuate.autoconfigure.observation.ObservationProperties;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Service
+public class NodeService {
+
+    @Autowired
+    NodeMapper nodeMapper;
+
+    @Autowired
+    OrderServerCommon orderServerCommon;
+
+    /*
+    矿料添加
+     */
+    public HttpResult insert(NodeInsertParam param) {
+
+        if (param == null) {
+            return HttpResult.error("必要参数缺失");
+        }
+
+        LambdaQueryWrapper<KwBusinessNode> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwBusinessNode::getNodeName, param.getNodeName())
+                .eq(KwBusinessNode::getDelFlag, Global.NUMERICAL_ZERO);
+        KwBusinessNode kwBusinessNode = nodeMapper.selectOne(wrapper);
+        if (ObjectUtils.isNotNull(kwBusinessNode)) {
+            throw new RuntimeException("当前节点已存在,勿重复添加");
+        }
+
+        KwBusinessNode kwBusinessNodeInsert = BeanUtil.copyProperties(param, KwBusinessNode.class);
+        String code = orderServerCommon.generatorNum("ND", 13);
+        String tenant = TenantUtil.getTenant();
+
+        kwBusinessNodeInsert.setId(new IdWorker(1L).nextId());
+        kwBusinessNodeInsert.setTenantId(tenant);
+        kwBusinessNodeInsert.setNodeCode(code);
+        kwBusinessNodeInsert.setStatus(1);
+
+        nodeMapper.insert(kwBusinessNodeInsert);
+        return HttpResult.ok();
+    }
+
+
+    public HttpResult nodeDelete(String id) {
+        int ret = nodeMapper.nodeDelete(id);
+        return ret>0?HttpResult.ok():HttpResult.error();
+    }
+
+
+    public HttpResult update(NodeUpdateParam param) {
+
+        LambdaQueryWrapper<KwBusinessNode> wrapper = new LambdaQueryWrapper<>();
+        wrapper.ne(KwBusinessNode::getId, param.getId())
+                .eq(KwBusinessNode::getNodeName, param.getNodeName())
+                .eq(KwBusinessNode::getDelFlag, Global.NUMERICAL_ZERO);
+        KwBusinessNode kwBusinessNode = nodeMapper.selectOne(wrapper);
+        if (ObjectUtils.isNotNull(kwBusinessNode)){
+            throw new RuntimeException("当前名称已存在");
+        }
+
+        int ret = nodeMapper.nodeUpdate(param);
+        return ret>0?HttpResult.ok():HttpResult.error();
+    }
+
+
+    public NodeDetailRes detail(String id) {
+        NodeDetailRes load = nodeMapper.load(id);
+        load.setStatusStr(load.getStatus()==1?"启用":"禁用");
+        load.setNodeTypeStr(NodeTypeEnum.getNameByCode(load.getNodeType()));
+        return load;
+    }
+
+
+    public HttpResult pageList(NodePageListParam param) {
+
+        String tenant = TenantUtil.getTenant();
+        if (StringUtils.isNotBlank(tenant)) {
+            param.setTenantId(tenant);
+        }
+        PageHelper.startPage(param.getPage(), param.getPageSize());
+        List<NodePageListRes> businessTruckPageListRes = nodeMapper.nodePageList(param);
+        businessTruckPageListRes.forEach(e -> {
+            e.setNodeTypeStr(NodeTypeEnum.getNameByCode(e.getNodeType()));
+            e.setStatusStr(e.getStatus()==1?"启用":"禁用");
+        });
+        return HttpResult.ok(new PageRes<>(new PageInfo<>(businessTruckPageListRes)));
+    }
+
+    /**
+    * @Description: 状态操作(停用 启用)   1=启用   2=禁用
+    * @Author: Lt
+    * @Date: 2024/5/31 11:34
+    */
+    public HttpResult statusAction(String id, Integer status)
+    {
+        if (StringUtils.isBlank(id)) {
+            throw new RuntimeException("id必填");
+        }
+        if(status==null) {
+            throw new RuntimeException("状态必填");
+        }
+        KwBusinessNode kwBusinessNode = nodeMapper.selectById(id);
+        if (ObjectUtils.isNull(kwBusinessNode)) {
+            throw new RuntimeException("当前数据不存在,请检查");
+        }
+
+        int i = nodeMapper.statusAction(id, status);
+        if (i>0) {
+            return HttpResult.ok("操作成功");
+        }
+        return HttpResult.error("操作失败");
+    }
+
+}

+ 176 - 0
business-modules/business-mine/src/main/java/com/sckw/mine/service/WorkFlowService.java

@@ -0,0 +1,176 @@
+package com.sckw.mine.service;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.page.PageRes;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.utils.TenantUtil;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.mine.common.OrderServerCommon;
+import com.sckw.mine.entity.KwBusinessMineralAggregate;
+import com.sckw.mine.entity.KwBusinessWorkFlow;
+import com.sckw.mine.entity.KwBusinessWorkFlowNode;
+import com.sckw.mine.entity.dto.WorkFlowNodeDTO;
+import com.sckw.mine.entity.req.WorkFlowInsertParam;
+import com.sckw.mine.entity.req.WorkFlowPageListParam;
+import com.sckw.mine.entity.req.WorkFlowUpdateParam;
+import com.sckw.mine.entity.res.MineOrderPageListRes;
+import com.sckw.mine.entity.res.WorkFlowPageListRes;
+import com.sckw.mine.enums.WorkFlowTypeEnum;
+import com.sckw.mine.mapper.WorkFlowMapper;
+import com.sckw.mine.mapper.WorkFlowNodeMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @desc:
+ * @author: Lt
+ * @date: 2024-05-31
+ */
+@Service
+public class WorkFlowService {
+
+    @Autowired
+    private WorkFlowMapper workFlowMapper;
+
+    @Autowired
+    private WorkFlowNodeMapper workFlowNodeMapper;
+
+    @Autowired
+    private OrderServerCommon orderServerCommon;
+
+    /**
+    * @Description: 流程新增
+    * @Author: Lt
+    * @Date: 2024/5/31 14:48
+    */
+    public HttpResult insert(WorkFlowInsertParam param)
+    {
+        LambdaQueryWrapper<KwBusinessWorkFlow> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwBusinessWorkFlow::getWorkName, param.getWorkName())
+                .eq(KwBusinessWorkFlow::getDelFlag, Global.NUMERICAL_ZERO);
+        KwBusinessWorkFlow workFlowExists = workFlowMapper.selectOne(wrapper);
+        if(ObjectUtils.isNotNull(workFlowExists)) {
+            return HttpResult.error("流程已存在,请重新输入");
+        }
+        if (param.getWorkFlowNode().isEmpty()) {
+            return HttpResult.error("流程节点不能为空");
+        }
+
+
+        KwBusinessWorkFlow kwBusinessWorkFlow = BeanUtil.copyProperties(param, KwBusinessWorkFlow.class);
+
+        String workCode = orderServerCommon.generatorNum("WK", 13);
+        Long workFlowId = new IdWorker(1L).nextId();
+
+        String tenantId = TenantUtil.getTenant();
+        kwBusinessWorkFlow.setId(workFlowId);
+        kwBusinessWorkFlow.setTenantId(tenantId);
+        kwBusinessWorkFlow.setNodeCount(param.getWorkFlowNode().size());  //节点数量
+        kwBusinessWorkFlow.setWorkCode(workCode);
+        workFlowMapper.insert(kwBusinessWorkFlow);
+        //流程节点新增
+        insertWorkFlowNode(String.valueOf(workFlowId), param.getWorkFlowNode());
+        return HttpResult.ok("添加成功");
+    }
+
+    /**
+    * @Description: 流程编辑
+    * @Author: Lt
+    * @Date: 2024/5/31 16:39
+    */
+    public HttpResult update(WorkFlowUpdateParam param)
+    {
+
+
+        LambdaQueryWrapper<KwBusinessWorkFlow> wrapperWorkFlowExists = new LambdaQueryWrapper<>();
+        wrapperWorkFlowExists.eq(KwBusinessWorkFlow::getId, param.getId()).eq(KwBusinessWorkFlow::getDelFlag, Global.NUMERICAL_ZERO);
+        KwBusinessWorkFlow workFlowExists = workFlowMapper.selectOne(wrapperWorkFlowExists);
+        if (ObjectUtils.isNull(workFlowExists)){
+            return HttpResult.error("流程不存在,请检查");
+        }
+        LambdaQueryWrapper<KwBusinessWorkFlow> wrapper = new LambdaQueryWrapper<>();
+        wrapper.ne(KwBusinessWorkFlow::getId, param.getId());
+        wrapper.eq(KwBusinessWorkFlow::getDelFlag, Global.NUMERICAL_ZERO);
+        wrapper.eq(KwBusinessWorkFlow::getWorkName, param.getWorkName());
+        KwBusinessWorkFlow workNameExists = workFlowMapper.selectOne(wrapper);
+        if (ObjectUtils.isNotNull(workNameExists)) {
+            return HttpResult.error("当前流程名称已存在,请重新输入");
+        }
+
+        KwBusinessWorkFlow kwBusinessWorkFlow = BeanUtil.copyProperties(param, KwBusinessWorkFlow.class);
+        int i = workFlowMapper.updateById(kwBusinessWorkFlow);
+        if (i > 0) {
+            //先删除所有节点
+            LambdaUpdateWrapper<KwBusinessWorkFlowNode> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(KwBusinessWorkFlowNode::getFlowId, param.getId())
+                    .eq(KwBusinessWorkFlowNode::getDelFlag, Global.NUMERICAL_ZERO)
+                    .set(KwBusinessWorkFlowNode::getDelFlag, Global.NUMERICAL_ONE);
+            workFlowNodeMapper.update(null, updateWrapper);
+
+            //流程节点新增
+            insertWorkFlowNode(param.getId(), param.getWorkFlowNode());
+
+        }
+        return HttpResult.ok("编辑成功");
+
+    }
+
+    /**
+    * @Description: 流程节点新增
+    * @Author: Lt
+    * @Date: 2024/5/31 16:56
+    */
+    private void insertWorkFlowNode(String flowId,List<WorkFlowNodeDTO> param)
+    {
+        for (int f = 0; f < param.size(); f++) {
+            KwBusinessWorkFlowNode workFlowNode = new KwBusinessWorkFlowNode();
+            workFlowNode.setId(new IdWorker(1L).nextId());
+            workFlowNode.setFlowId(flowId);
+            workFlowNode.setNodeId(param.get(f).getNodeId());
+            workFlowNode.setNodeName(param.get(f).getNodeName());
+            workFlowNode.setSort(f + 1);
+            workFlowNodeMapper.insert(workFlowNode);
+        }
+    }
+
+    /**
+    * @Description: 流程节点分页列表
+    * @Author: Lt
+    * @Date: 2024/5/31 16:56
+    */
+    public HttpResult pageList(WorkFlowPageListParam param)
+    {
+        String tenantId = TenantUtil.getTenant();
+        PageHelper.startPage(param.getPage(), param.getPageSize());
+        param.setTenantId(tenantId);
+
+        List<WorkFlowPageListRes> workPageListRes = workFlowMapper.pageList(param);
+        workPageListRes.forEach(e -> {
+            if (ObjectUtils.isNotNull(e.getStatus())) {
+                e.setStatusStr(e.getStatus() == 1 ? "启用" : "禁用");
+                e.setWorkTypeStr(WorkFlowTypeEnum.getNameByCode(e.getWorkType()));
+            }
+        });
+
+        return HttpResult.ok(new PageRes<>(new PageInfo<>(workPageListRes)));
+    }
+
+    ///**
+    //* @Description: 流程节点详情
+    //* @Author: Lt
+    //* @Date: 2024/5/31 17:11
+    //*/
+    //public HttpResult detail(String id)
+    //{
+    //
+    //}
+
+}

+ 2 - 2
business-modules/business-mine/src/main/resources/mapper/MineralAggregateMapper.xml

@@ -29,10 +29,10 @@
         <where>
             del_flag = 0
             <if test="param.name != '' and param.name != null">
-                and code like concat('%',#{param.name},'%')
+                and `name` like concat('%',#{param.name},'%')
             </if>
             <if test="param.code != '' and param.code != null">
-                and code like concat('%',#{param.code},'%')
+                and `code` like concat('%',#{param.code},'%')
             </if>
             <if test="param.tenantId != '' and param.tenantId != null">
                 and tenant_id = #{param.tenantId}

+ 64 - 0
business-modules/business-mine/src/main/resources/mapper/NodeMapper.xml

@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.mine.mapper.NodeMapper">
+
+    <sql id="Base_Column_List">
+        id,
+                node_code,
+                node_name,
+                node_type,
+                node_sort,
+                node_use_count,
+                `status`,
+                create_by,
+                update_by,
+                create_time,
+                update_time
+    </sql>
+
+    <update id="nodeDelete">
+        update kw_business_node set del_flag = 1 where id = #{id}
+    </update>
+
+    <select id="nodePageList"
+            resultType="com.sckw.mine.entity.res.NodePageListRes">
+        select <include refid="Base_Column_List" /> from kw_business_node
+        <where>
+            del_flag = 0
+            <if test="param.nodeName != '' and param.nodeName != null">
+                and node_name like concat('%',#{param.nodeName},'%')
+            </if>
+            <if test="param.nodeCode != '' and param.nodeCode != null">
+                and node_code like concat('%',#{param.nodeCode},'%')
+            </if>
+            <if test="param.tenantId != '' and param.tenantId != null">
+                and tenant_id = #{param.tenantId}
+            </if>
+            <if test="param.status != null">
+                and `status` = #{param.status}
+            </if>
+        </where>
+        order by node_sort desc,create_time desc
+    </select>
+    <select id="load" resultType="com.sckw.mine.entity.res.NodeDetailRes">
+        select <include refid="Base_Column_List" /> from kw_business_node where id = #{id}
+    </select>
+
+
+    <update id="nodeUpdate" parameterType="com.sckw.mine.entity.req.NodeUpdateParam">
+        UPDATE kw_business_node
+        <set>
+            <trim suffixOverrides=",">
+                <if test="null != param.nodeName and '' != param.nodeName">node_name = #{param.nodeName},</if>
+                <if test="null != param.nodeType">node_type = #{param.nodeType},</if>
+                <if test="null != param.nodeSort">node_sort = #{param.nodeSort},</if>
+                <if test="null != param.nodeUseCount">node_use_count = #{param.nodeUseCount}</if>
+            </trim>
+        </set>
+        WHERE id = #{param.id}
+    </update>
+    <update id="statusAction">
+        update kw_business_node set status = #{status} where id = #{id}
+    </update>
+
+</mapper>

+ 63 - 0
business-modules/business-mine/src/main/resources/mapper/WorkFlowMapper.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.mine.mapper.WorkFlowMapper">
+
+    <sql id="Base_Column_List">
+        id,
+                tenant_id,
+                work_code,
+                work_name,
+                work_type,
+                node_count,
+                use_order_count,
+                `status`,
+                remark,
+                create_by,
+                update_by,
+                create_time,
+                update_time,
+                del_flag
+    </sql>
+
+    <resultMap id="flowNodeMap" type="com.sckw.mine.entity.res.WorkFlowPageListRes">
+        <id column="id" property="id"/>
+        <result column="work_name" property="workName"/>
+        <result column="work_code" property="workCode"/>
+        <result column="work_type" property="workType"/>
+        <result column="node_count" property="nodeCount"/>
+        <result column="use_order_count" property="useOrderCount"/>
+        <result column="status" property="status"/>
+        <result column="remark" property="remark"/>
+        <result column="create_by" property="createBy"/>
+        <collection property="workFlowNodeList" column="id" select="selectFlowNodeList" />
+    </resultMap>
+
+    <select id="pageList"
+            parameterType="com.sckw.mine.entity.req.WorkFlowPageListParam"
+            resultType="com.sckw.mine.entity.res.WorkFlowPageListRes"
+            resultMap="flowNodeMap">
+        select <include refid="Base_Column_List" /> from kw_business_work_flow
+        <where>
+            del_flag = 0
+            <if test="param.workName != null and param.workName != ''">
+               and work_name like concat('%',#{param.workName},'%')
+            </if>
+            <if test="param.workCode != null and param.workCode != ''">
+               and work_code like concat('%',#{param.workCode},'%')
+            </if>
+            <if test="param.tenantId != null and param.tenantId != ''">
+               and tenant_id = #{param.tenantId}
+            </if>
+        </where>
+
+        order by create_time desc
+
+
+    </select>
+
+    <select id="selectFlowNodeList" resultType="com.sckw.mine.entity.dto.WorkFlowNodeDTO">
+        select id,node_name, flow_id,node_id from kw_business_work_flow_node where del_flag = 0 and flow_id = #{id}
+    </select>
+
+
+</mapper>