From 5c9f0920f0ef9f31c7318f93ba18c5a36517840c Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期一, 25 十一月 2024 10:35:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 flowable/src/main/java/com/ycl/controller/ModelManageController.java    |    2 
 business/src/main/java/com/ycl/domain/vo/IndexCountVO.java              |   27 ++
 business/src/main/java/com/ycl/domain/vo/IndexProPhaseCountVO.java      |   34 ++
 start/src/main/resources/application.yml                                |   13 
 pom.xml                                                                 |    9 
 business/src/main/java/com/ycl/domain/vo/TaskBo.java                    |   29 ++
 common/src/main/java/com/ycl/common/core/page/TableDataInfo.java        |    2 
 common/src/main/java/com/ycl/common/utils/StringUtils.java              |    3 
 flowable/src/main/java/com/ycl/controller/FlowController.java           |    4 
 business/src/main/java/com/ycl/domain/vo/IndexDTO.java                  |   47 +++
 business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java |   45 +++
 business/src/main/java/com/ycl/controller/IndexController.java          |   97 ++++++++
 business/src/main/java/com/ycl/domain/vo/ParticipantVo.java             |   38 +++
 business/src/main/java/com/ycl/domain/vo/IndexMsgCountVO.java           |   12 +
 business/src/main/java/com/ycl/domain/vo/PageQuery.java                 |  114 +++++++++
 business/src/main/java/com/ycl/domain/vo/TaskVo.java                    |  181 +++++++++++++++
 business/src/main/java/com/ycl/domain/vo/IndexImpTypeCountVO.java       |   39 +++
 business/src/main/java/com/ycl/service/ProjectInfoService.java          |    7 
 18 files changed, 691 insertions(+), 12 deletions(-)

diff --git a/business/src/main/java/com/ycl/controller/IndexController.java b/business/src/main/java/com/ycl/controller/IndexController.java
new file mode 100644
index 0000000..464e95e
--- /dev/null
+++ b/business/src/main/java/com/ycl/controller/IndexController.java
@@ -0,0 +1,97 @@
+package com.ycl.controller;
+
+import com.ycl.common.core.domain.R;
+import com.ycl.common.core.page.TableDataInfo;
+import com.ycl.domain.vo.*;
+import com.ycl.service.ProjectInfoService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 棣栭〉
+ */
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/")
+public class IndexController {
+
+
+    @Autowired
+    private ProjectInfoService projectInfoService;
+
+    /**
+     * 椤圭洰鏁伴噺缁熻
+     *
+     * @param indexDTO 绛涢�夋潯浠�
+     * @return
+     */
+    @PostMapping("/count")
+    public R<IndexCountVO> count(@RequestBody IndexDTO indexDTO) {
+        return R.ok(projectInfoService.getIndexCount(indexDTO));
+    }
+
+    /**
+     * 寮傚父椤圭洰缁熻
+     *
+     * @return
+     */
+    @GetMapping("/countExceptionProject")
+    public R<?> countExceptionProject(IndexDTO indexDTO) {
+        return R.ok(projectInfoService.countExceptionProject(indexDTO));
+    }
+
+    /**
+     * 瀹℃牳娑堟伅鍒楄〃
+     */
+    @GetMapping("/audit-message")
+    public TableDataInfo<Object> auditMessage(PageQuery pageQuery) {
+        return null;
+    }
+
+    /**
+     * 娑堟伅鏉℃暟
+     */
+    @GetMapping("/message-count")
+    public R<IndexMsgCountVO> messageCount() {
+        IndexMsgCountVO vo = new IndexMsgCountVO();
+        vo.setAuditCount(0L);
+        return R.ok(vo);
+    }
+
+    /**
+     * 闃呰娑堟伅
+     */
+    @GetMapping("/read-message")
+    public R<Boolean> readMessage(Long id) {
+//        auditHistoryService.lambdaUpdate().eq(AuditHistory::getId, id).set(AuditHistory::getIsRead, 1).update();
+        return R.ok();
+    }
+
+    /**
+     * 寰呭姙娴佺▼
+     */
+    @GetMapping("/getPageByAllTaskWait")
+    public TableDataInfo<TaskVo> getPageByAllTaskWait(TaskBo taskBo, PageQuery pageQuery) {
+//        TableDataInfo<TaskVo> pageByAllTaskWait = actTaskService.getPageByTaskWait(taskBo, pageQuery);
+//        List<TaskVo> rows = pageByAllTaskWait.getRows();
+//        List<String> list = rows.stream().map(TaskVo::getBusinessKey).toList();
+//        if (CollectionUtils.isEmpty(list)) {
+//            return pageByAllTaskWait;
+//        }
+//        projectInfoService.lambdaQuery().in(ProjectInfo::getId, list).list().forEach(projectInfo -> rows.forEach(taskVo -> {
+//            if (ObjectUtil.isNotEmpty(taskVo.getDueDate())) {
+//                taskVo.setRemainingTime(DateTimeUtils.calculateDifference(new Date(), taskVo.getDueDate()));
+//            }
+//            if (ObjectUtil.equals(taskVo.getBusinessKey(), projectInfo.getId().toString())) {
+//                taskVo.setBusinessName(projectInfo.getProjectName());
+//            }
+//        }));
+//        pageByAllTaskWait.setRows(rows);
+//        return pageByAllTaskWait;
+        return null;
+    }
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/IndexCountVO.java b/business/src/main/java/com/ycl/domain/vo/IndexCountVO.java
new file mode 100644
index 0000000..b41265a
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/IndexCountVO.java
@@ -0,0 +1,27 @@
+package com.ycl.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 棣栭〉椤圭洰鏁伴噺缁熻鐨勮繑鍥炵被
+ * @Author: ljx
+ * @CreateTime: 2024-10-16 15:08
+ */
+
+@Data
+public class IndexCountVO {
+
+    /**
+     * 椤圭洰闃舵鏁伴噺缁熻
+     */
+    private List<IndexProPhaseCountVO> proPhaseCountVO;
+
+    /**
+     * 椤圭洰绫诲瀷鏁伴噺缁熻
+     */
+    private List<IndexImpTypeCountVO> impTypeCountVO;
+
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/IndexDTO.java b/business/src/main/java/com/ycl/domain/vo/IndexDTO.java
new file mode 100644
index 0000000..79060d4
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/IndexDTO.java
@@ -0,0 +1,47 @@
+package com.ycl.domain.vo;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.common.core.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class IndexDTO extends BaseEntity {
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date startDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date endDate;
+
+    /**
+     * 琛屾斂鍖哄垝
+     */
+    private String areaCode;
+
+    /**
+     * 鎶曡祫閲戦鏈�灏忓��
+     */
+    private BigDecimal minInvestment;
+
+    /**
+     * 鎶曡祫閲戦鏈�澶у��
+     */
+    private BigDecimal maxInvestment;
+}
\ No newline at end of file
diff --git a/business/src/main/java/com/ycl/domain/vo/IndexImpTypeCountVO.java b/business/src/main/java/com/ycl/domain/vo/IndexImpTypeCountVO.java
new file mode 100644
index 0000000..0ae3dc9
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/IndexImpTypeCountVO.java
@@ -0,0 +1,39 @@
+package com.ycl.domain.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 棣栭〉椤圭洰閲嶇偣鍒嗙被鏁伴噺缁熻
+ * @Author: ljx
+ * @CreateTime: 2024-10-16 15:29
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class IndexImpTypeCountVO {
+
+    /**
+     * 閲嶇偣鍒嗙被绫诲瀷
+     */
+    private String type;
+
+    /**
+     * 椤圭洰鏁�
+     */
+    private Integer count=0;
+
+    /**
+     * 椤圭洰閲戦
+     */
+    private String amount ="0.00";
+    private String text;
+
+    public IndexImpTypeCountVO(String type,String text){
+        this.type = type;
+        this.text = text;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/IndexMsgCountVO.java b/business/src/main/java/com/ycl/domain/vo/IndexMsgCountVO.java
new file mode 100644
index 0000000..3959302
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/IndexMsgCountVO.java
@@ -0,0 +1,12 @@
+package com.ycl.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class IndexMsgCountVO {
+
+    /**
+     * 瀹℃牳娑堟伅鏁�
+     */
+    private Long auditCount;
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/IndexProPhaseCountVO.java b/business/src/main/java/com/ycl/domain/vo/IndexProPhaseCountVO.java
new file mode 100644
index 0000000..36a817a
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/IndexProPhaseCountVO.java
@@ -0,0 +1,34 @@
+package com.ycl.domain.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 棣栭〉椤圭洰闃舵鏁伴噺缁熻
+ * @Author: ljx
+ * @CreateTime: 2024-10-16 15:24
+ */
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class IndexProPhaseCountVO {
+
+    /**
+     * 椤圭洰绫诲瀷
+     */
+    private String type;
+
+    /**
+     * 椤圭洰鏁�
+     */
+    private Integer count=0;
+
+    /**
+     * 椤圭洰閲戦
+     */
+    private String amount="0.00";
+
+    private String text;
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/PageQuery.java b/business/src/main/java/com/ycl/domain/vo/PageQuery.java
new file mode 100644
index 0000000..fb7daa4
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/PageQuery.java
@@ -0,0 +1,114 @@
+package com.ycl.domain.vo;
+
+
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ycl.common.exception.ServiceException;
+import com.ycl.common.utils.StringUtils;
+import com.ycl.common.utils.sql.SqlUtil;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class PageQuery implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鍒嗛〉澶у皬
+     */
+    private Integer pageSize = 10;
+
+    /**
+     * 褰撳墠椤垫暟
+     */
+    private Integer pageNum = 1;
+
+    /**
+     * 鎺掑簭鍒�
+     */
+    private String orderByColumn;
+
+    /**
+     * 鎺掑簭鐨勬柟鍚慸esc鎴栬�卆sc
+     */
+    private String isAsc;
+
+    /**
+     * 褰撳墠璁板綍璧峰绱㈠紩 榛樿鍊�
+     */
+    public static final int DEFAULT_PAGE_NUM = 1;
+
+    /**
+     * 姣忛〉鏄剧ず璁板綍鏁� 榛樿鍊� 榛樿鏌ュ叏閮�
+     */
+    public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
+
+    /**
+     * 鏋勫缓鍒嗛〉瀵硅薄
+     */
+//    public <T> Page<T> build() {
+//        Integer pageNum = ObjectUtil.defaultIfNull(getPageNum(), DEFAULT_PAGE_NUM);
+//        Integer pageSize = ObjectUtil.defaultIfNull(getPageSize(), DEFAULT_PAGE_SIZE);
+//        if (pageNum <= 0) {
+//            pageNum = DEFAULT_PAGE_NUM;
+//        }
+//        Page<T> page = new Page<>(pageNum, pageSize);
+//        List<OrderItem> orderItems = buildOrderItem();
+//        if (CollUtil.isNotEmpty(orderItems)) {
+//            page.addOrder(orderItems);
+//        }
+//        return page;
+//    }
+
+    /**
+     * 鏋勫缓鎺掑簭
+     *
+     * 鏀寔鐨勭敤娉曞涓�:
+     * {isAsc:"asc",orderByColumn:"id"} order by id asc
+     * {isAsc:"asc",orderByColumn:"id,createTime"} order by id asc,create_time asc
+     * {isAsc:"desc",orderByColumn:"id,createTime"} order by id desc,create_time desc
+     * {isAsc:"asc,desc",orderByColumn:"id,createTime"} order by id asc,create_time desc
+     */
+    private List<OrderItem> buildOrderItem() {
+        if (StringUtils.isBlank(orderByColumn) || StringUtils.isBlank(isAsc)) {
+            return null;
+        }
+        String orderBy = SqlUtil.escapeOrderBySql(orderByColumn);
+        orderBy = StringUtils.toUnderScoreCase(orderBy);
+
+        // 鍏煎鍓嶇鎺掑簭绫诲瀷
+        isAsc = StringUtils.replaceEach(isAsc, new String[]{"ascending", "descending"}, new String[]{"asc", "desc"});
+
+        String[] orderByArr = orderBy.split(StringUtils.SEPARATOR1);
+        String[] isAscArr = isAsc.split(StringUtils.SEPARATOR1);
+        if (isAscArr.length != 1 && isAscArr.length != orderByArr.length) {
+            throw new ServiceException("鎺掑簭鍙傛暟鏈夎");
+        }
+
+        List<OrderItem> list = new ArrayList<>();
+        // 姣忎釜瀛楁鍚勮嚜鎺掑簭
+        for (int i = 0; i < orderByArr.length; i++) {
+            String orderByStr = orderByArr[i];
+            String isAscStr = isAscArr.length == 1 ? isAscArr[0] : isAscArr[i];
+            if ("asc".equals(isAscStr)) {
+                list.add(OrderItem.asc(orderByStr));
+            } else if ("desc".equals(isAscStr)) {
+                list.add(OrderItem.desc(orderByStr));
+            } else {
+                throw new ServiceException("鎺掑簭鍙傛暟鏈夎");
+            }
+        }
+        return list;
+    }
+
+    public Integer getFirstNum() {
+        return (pageNum - 1) * pageSize;
+    }
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/ParticipantVo.java b/business/src/main/java/com/ycl/domain/vo/ParticipantVo.java
new file mode 100644
index 0000000..ee6ffca
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ParticipantVo.java
@@ -0,0 +1,38 @@
+package com.ycl.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class ParticipantVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缁刬d锛堣鑹瞚d锛�
+     */
+    private List<Long> groupIds;
+
+    /**
+     * 鍊欓�変汉id锛堢敤鎴穒d锛� 褰撶粍id涓嶄负绌烘椂锛屽皢缁勫唴浜哄憳鏌ュ嚭鏀惧叆candidate
+     */
+    private List<Long> candidate;
+
+    /**
+     * 鍊欓�変汉鍚嶇О锛堢敤鎴峰悕绉帮級 褰撶粍id涓嶄负绌烘椂锛屽皢缁勫唴浜哄憳鏌ュ嚭鏀惧叆candidateName
+     */
+    private List<String> candidateName;
+
+    /**
+     * 鏄惁璁ら鏍囪瘑
+     * 褰撲负绌烘椂榛樿褰撳墠浠诲姟涓嶉渶瑕佽棰�
+     * 褰撲负true鏃跺綋鍓嶄换鍔¤鏄庝负鍊欓�夋ā寮忓苟涓旀湁浜哄凡缁忚棰嗕簡浠诲姟鍙互褰掕繕锛�
+     * 褰撲负false鏃跺綋鍓嶄换鍔¤鏄庝负鍊欓�夋ā寮忚浠诲姟鏈棰嗭紝
+     */
+    private Boolean claim;
+
+}
diff --git a/business/src/main/java/com/ycl/domain/vo/TaskBo.java b/business/src/main/java/com/ycl/domain/vo/TaskBo.java
new file mode 100644
index 0000000..60e9dec
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/TaskBo.java
@@ -0,0 +1,29 @@
+package com.ycl.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class TaskBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 浠诲姟鍚嶇О
+     */
+    private String name;
+
+    /**
+     * 娴佺▼瀹氫箟鍚嶇О
+     */
+    private String processDefinitionName;
+
+    /**
+     * 娴佺▼瀹氫箟key
+     */
+    private String processDefinitionKey;
+}
+
diff --git a/business/src/main/java/com/ycl/domain/vo/TaskVo.java b/business/src/main/java/com/ycl/domain/vo/TaskVo.java
new file mode 100644
index 0000000..171f24f
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/TaskVo.java
@@ -0,0 +1,181 @@
+package com.ycl.domain.vo;
+
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 浠诲姟瑙嗗浘
+ *
+ * @author may
+ */
+@Data
+public class TaskVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 浠诲姟id
+     */
+    private String id;
+
+    /**
+     * 浠诲姟鍚嶇О
+     */
+    private String name;
+
+    /**
+     * 鎻忚堪
+     */
+    private String description;
+
+    /**
+     * 浼樺厛绾�
+     */
+    private Integer priority;
+
+    /**
+     * 璐熻矗姝や换鍔$殑浜哄憳鐨勭敤鎴穒d
+     */
+    private String owner;
+
+    /**
+     * 鍔炵悊浜篿d
+     */
+    private Long assignee;
+
+    /**
+     * 鍔炵悊浜�
+     */
+    private String assigneeName;
+
+
+    /**
+     * 娴佺▼瀹炰緥id
+     */
+    private String processInstanceId;
+
+    /**
+     * 鎵цid
+     */
+    private String executionId;
+
+    /**
+     * 鏃犵敤
+     */
+    private String taskDefinitionId;
+
+    /**
+     * 娴佺▼瀹氫箟id
+     */
+    private String processDefinitionId;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+    /**
+     * 宸插姙浠诲姟-鍒涘缓鏃堕棿
+     */
+    private Date startTime;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    private Date endTime;
+
+    /**
+     * 鑺傜偣id
+     */
+    private String taskDefinitionKey;
+
+    /**
+     * 浠诲姟鎴鏃ユ湡
+     */
+    private Date dueDate;
+
+    /**
+     * 娴佺▼绫诲埆
+     */
+    private String category;
+
+    /**
+     * 鐖剁骇浠诲姟id
+     */
+    private String parentTaskId;
+
+    /**
+     * 绉熸埛id
+     */
+    private String tenantId;
+
+    /**
+     * 璁ら鏃堕棿
+     */
+    private Date claimTime;
+
+    /**
+     * 娴佺▼鐘舵��
+     */
+    private String businessStatus;
+
+    /**
+     * 娴佺▼鐘舵��
+     */
+    private String businessStatusName;
+
+    /**
+     * 娴佺▼瀹氫箟鍚嶇О
+     */
+    private String processDefinitionName;
+
+    /**
+     * 娴佺▼瀹氫箟key
+     */
+    private String processDefinitionKey;
+
+    /**
+     * 娴佺▼瀹氫箟鐗堟湰
+     */
+    private Integer processDefinitionVersion;
+
+    /**
+     * 鍙備笌鑰�
+     */
+    private ParticipantVo participantVo;
+
+    /**
+     * 鏄惁浼氱
+     */
+    private Boolean multiInstance;
+
+    /**
+     * 涓氬姟id
+     */
+    private String businessKey;
+
+//    /**
+//     * 娴佺▼瀹氫箟閰嶇疆
+//     */
+//    private WfDefinitionConfigVo wfDefinitionConfigVo;
+//
+//    /**
+//     * 鑺傜偣閰嶇疆
+//     */
+//    private WfNodeConfigVo wfNodeConfigVo;
+
+    /**
+     * 涓氬姟鍚嶇О
+     */
+    private String businessName;
+
+    /**
+     * 鍓╀綑鏃堕棿
+     */
+    private String remainingTime;
+}
diff --git a/business/src/main/java/com/ycl/service/ProjectInfoService.java b/business/src/main/java/com/ycl/service/ProjectInfoService.java
index fea0421..bd22f9e 100644
--- a/business/src/main/java/com/ycl/service/ProjectInfoService.java
+++ b/business/src/main/java/com/ycl/service/ProjectInfoService.java
@@ -5,8 +5,11 @@
 import com.ycl.domain.entity.ProjectInfo;
 import com.ycl.domain.form.ProjectInfoForm;
 import com.ycl.domain.query.ProjectInfoQuery;
+import com.ycl.domain.vo.IndexCountVO;
+import com.ycl.domain.vo.IndexDTO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 椤圭洰绠$悊鍩虹淇℃伅琛� 鏈嶅姟绫�
@@ -63,4 +66,8 @@
      * @return
      */
     Result all();
+
+    IndexCountVO getIndexCount(IndexDTO indexDTO);
+
+    Map<String,Integer> countExceptionProject(IndexDTO indexDTO);
 }
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
index eeca686..585dfd0 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
@@ -6,7 +6,7 @@
 import com.ycl.domain.entity.ProjectInfo;
 import com.ycl.domain.form.ProjectInfoForm;
 import com.ycl.domain.query.ProjectInfoQuery;
-import com.ycl.domain.vo.ProjectInfoVO;
+import com.ycl.domain.vo.*;
 import com.ycl.framework.utils.PageUtil;
 import com.ycl.mapper.ProjectInfoMapper;
 import com.ycl.service.ProjectInfoService;
@@ -15,7 +15,10 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -32,6 +35,7 @@
 
     /**
      * 娣诲姞
+     *
      * @param form
      * @return
      */
@@ -44,6 +48,7 @@
 
     /**
      * 淇敼
+     *
      * @param form
      * @return
      */
@@ -60,6 +65,7 @@
 
     /**
      * 鎵归噺鍒犻櫎
+     *
      * @param ids
      * @return
      */
@@ -71,6 +77,7 @@
 
     /**
      * id鍒犻櫎
+     *
      * @param id
      * @return
      */
@@ -82,6 +89,7 @@
 
     /**
      * 鍒嗛〉鏌ヨ
+     *
      * @param query
      * @return
      */
@@ -94,6 +102,7 @@
 
     /**
      * 鏍规嵁id鏌ユ壘
+     *
      * @param id
      * @return
      */
@@ -106,6 +115,7 @@
 
     /**
      * 鍒楄〃
+     *
      * @return
      */
     @Override
@@ -116,4 +126,37 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    @Override
+    public IndexCountVO getIndexCount(IndexDTO indexDTO) {
+        // {"proPhaseCountVO":[{"type":"鍌ㄥ瑙勫垝闃舵","count":0,"amount":"0.00","text":"鍌�"},
+        // {"type":"椤圭洰鍓嶆湡闃舵","count":0,"amount":"0.00","text":"鏂�"},
+        // {"type":"瀹炴柦闃舵","count":0,"amount":"0.00","text":"寤�"},{"type":"绔e伐鎶曠敤闃舵","count":0,"amount":"0.00","text":"绔�"}],
+        // "impTypeCountVO":[{"type":"涓�鑸」鐩�","count":0,"amount":"0.00","text":"鏅�"},
+        // {"type":"鍘块噸鐐归」鐩�","count":0,"amount":"0.00","text":"鍘�"},{"type":"甯傞噸鐐归」鐩�","count":0,"amount":"0.00","text":"甯�"},
+        // {"type":"鐪侀噸鐐归」鐩�","count":0,"amount":"0.00","text":"鐪�"}]}}
+        IndexCountVO indexCountVO = new IndexCountVO();
+        List<IndexProPhaseCountVO> proPhaseCountVO = new ArrayList<>();
+        proPhaseCountVO.add(new IndexProPhaseCountVO("鍌ㄥ瑙勫垝闃舵", 0, "0.00", "鍌�"));
+        proPhaseCountVO.add(new IndexProPhaseCountVO("椤圭洰鍓嶆湡闃舵", 0, "0.00", "鏂�"));
+        proPhaseCountVO.add(new IndexProPhaseCountVO("瀹炴柦闃舵", 0, "0.00", "寤�"));
+        proPhaseCountVO.add(new IndexProPhaseCountVO("绔e伐鎶曠敤闃舵", 0, "0.00", "绔�"));
+        List<IndexImpTypeCountVO> impTypeCountVO = new ArrayList<>();
+        impTypeCountVO.add(new IndexImpTypeCountVO("涓�鑸」鐩�", 0, "0.00", "鏅�"));
+        impTypeCountVO.add(new IndexImpTypeCountVO("鍘块噸鐐归」鐩�", 0, "0.00", "鍘�"));
+        impTypeCountVO.add(new IndexImpTypeCountVO("甯傞噸鐐归」鐩�", 0, "0.00", "甯�"));
+        impTypeCountVO.add(new IndexImpTypeCountVO("鐪侀噸鐐归」鐩�", 0, "0.00", "鐪�"));
+        indexCountVO.setImpTypeCountVO(impTypeCountVO);
+        indexCountVO.setProPhaseCountVO(proPhaseCountVO);
+
+
+        return indexCountVO;
+    }
+
+    @Override
+    public Map<String, Integer> countExceptionProject(IndexDTO indexDTO) {
+        Map<String, Integer> map = new HashMap<>();
+        map.put("processExceptionProject", 0);
+        return map;
+    }
 }
diff --git a/common/src/main/java/com/ycl/common/core/page/TableDataInfo.java b/common/src/main/java/com/ycl/common/core/page/TableDataInfo.java
index de9ebcd..affd49c 100644
--- a/common/src/main/java/com/ycl/common/core/page/TableDataInfo.java
+++ b/common/src/main/java/com/ycl/common/core/page/TableDataInfo.java
@@ -8,7 +8,7 @@
  *
  * @author ycl
  */
-public class TableDataInfo implements Serializable
+public class TableDataInfo<T> implements Serializable
 {
     private static final long serialVersionUID = 1L;
 
diff --git a/common/src/main/java/com/ycl/common/utils/StringUtils.java b/common/src/main/java/com/ycl/common/utils/StringUtils.java
index 45965c3..66fd12d 100644
--- a/common/src/main/java/com/ycl/common/utils/StringUtils.java
+++ b/common/src/main/java/com/ycl/common/utils/StringUtils.java
@@ -17,6 +17,9 @@
  */
 public class StringUtils extends org.apache.commons.lang3.StringUtils
 {
+    public static final String SEPARATOR1 = ",";
+
+    public static final String SLASH = "/";
     /** 绌哄瓧绗︿覆 */
     private static final String NULLSTR = "";
 
diff --git a/flowable/src/main/java/com/ycl/controller/FlowController.java b/flowable/src/main/java/com/ycl/controller/FlowController.java
index 428630f..55cfc4a 100644
--- a/flowable/src/main/java/com/ycl/controller/FlowController.java
+++ b/flowable/src/main/java/com/ycl/controller/FlowController.java
@@ -90,10 +90,10 @@
     }
 
     @ApiOperation("鏌ヨ宸查儴缃插伐浣滄祦鍒楄〃")
-    @RequestMapping(value = "/getprocesslists", method = RequestMethod.POST)
+    @GetMapping(value = "/getprocesslists")
     @ResponseBody
     public TableDataInfo getlist(@RequestParam(required = false) String key, @RequestParam(required = false) String name,
-                                 @RequestParam(required = false) Boolean latest, Integer pageSize, Integer pageNum) {
+                                 @RequestParam(required = true) Boolean latest, Integer pageSize, Integer pageNum) {
         ProcessDefinitionQuery queryCondition = repositoryService.createProcessDefinitionQuery();
         if (StringUtils.isNotEmpty(key)) {
             queryCondition.processDefinitionKey(key);
diff --git a/flowable/src/main/java/com/ycl/controller/ModelManageController.java b/flowable/src/main/java/com/ycl/controller/ModelManageController.java
index d9c0959..365d1b8 100644
--- a/flowable/src/main/java/com/ycl/controller/ModelManageController.java
+++ b/flowable/src/main/java/com/ycl/controller/ModelManageController.java
@@ -45,7 +45,7 @@
 
 
     @ApiOperation("鏌ヨ鎵�鏈夋ā鍨�")
-    @RequestMapping(value = "/modelLists", method = RequestMethod.POST)
+    @GetMapping(value = "/modelLists")
     @ResponseBody
     public TableDataInfo modelLists(@RequestParam(required = false) String key, @RequestParam(required = false) String name,
                                     Integer pageSize, Integer pageNum) {
diff --git a/pom.xml b/pom.xml
index f35e3b0..11f420a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,6 +36,7 @@
         <knife.version>3.0.3</knife.version>
         <flowable.version>6.8.1</flowable.version>
         <flowable-other.version>6.8.1</flowable-other.version>
+        <hutool.version>5.8.31</hutool.version>
     </properties>
 
     <!-- 渚濊禆澹版槑 -->
@@ -243,6 +244,14 @@
                 <version>${platform.version}</version>
             </dependency>
 
+            <!-- hutool 鐨勪緷璧栭厤缃�-->
+            <dependency>
+                <groupId>cn.hutool</groupId>
+                <artifactId>hutool-bom</artifactId>
+                <version>${hutool.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
diff --git a/start/src/main/resources/application.yml b/start/src/main/resources/application.yml
index 0d17e27..3ad8615 100644
--- a/start/src/main/resources/application.yml
+++ b/start/src/main/resources/application.yml
@@ -119,16 +119,15 @@
 
 
 
-# 宸ヤ綔娴� Flowable 閰嶇疆
+# 宸ヤ綔娴� Flowable 閰嶇疆锛宖lowable瀹屾暣鐨勯厤缃紝鍙傝锛欯see https://www.flowable.com/open-source/docs/bpmn/ch05a-Spring-Boot/#flowable-application-properties
 flowable:
-  database-schema: project_management
   database-schema-update: true  # 鑷姩鏇存柊flowable琛ㄧ粨鏋勶紝绗竴娆¤繛鎺ユ暟鎹簱鏃跺彲浠ヨ缃负true
   # 鍏抽棴鍚勪釜妯″潡鐢熸垚琛紝鐩墠鍙娇鐢ㄥ伐浣滄祦鍩虹琛�
-  idm:
+  idm:  # idm鏄痜lowable鐨勮韩浠界鐞嗘ā鍧楋細鍗崇敤鎴枫�佽璇併�佹潈闄愮瓑
     enabled: false
-  cmmn:
+  cmmn: # cmmn鏄痜lowable鐨勬渚嬬鐞嗘ā鍧楋紝浣撶幇鍦╢lowable-ui涓殑锛氭祦绋嬪缓妯″櫒銆乁I锛孈see https://www.flowable.com/open-source/docs/cmmn/ch06-cmmn
     enabled: false
-  dmn:
+  dmn: # dmn鏄痜lowable鐨勫喅绛栨ā鍨嬶紝浣撶幇鍦╢lowable-ui涓殑鍐崇瓥琛�  @see https://www.flowable.com/open-source/docs/dmn/ch06-DMN-Introduction
     enabled: false
-  app:
-    enabled: false
+  app: # app鐨勫姛鑳芥槸涓篺lowable鍦╯pring涓珮鏁堣繍琛岃�屾彁渚涗簡寰堝bean锛屼笌flowable鏈韩鐨勫唴瀹规棤鍏�
+    enabled: true

--
Gitblit v1.8.0