caozj 2 лет назад
Родитель
Сommit
90c63b6adb
31 измененных файлов с 1087 добавлено и 36 удалено
  1. 122 0
      bladex/blade-common/src/main/java/org/springblade/common/entity/Pager.java
  2. 40 0
      bladex/blade-common/src/main/java/org/springblade/common/utils/ListPageMap.java
  3. 124 0
      hx-saas-project/saas-entity/src/main/java/com/fjhx/base/Pager.java
  4. 16 0
      hx-saas-project/saas-entity/src/main/java/com/fjhx/flow/entity/FlowApplycheck.java
  5. 1 0
      hx-saas-project/saas-feign-api/pom.xml
  6. 18 0
      hx-saas-project/saas-feign-api/saas-flow-api/pom.xml
  7. 44 0
      hx-saas-project/saas-feign-api/saas-flow-api/src/main/java/com/fjhx/myapp/application/feign/IFlowApi.java
  8. 1 1
      hx-saas-project/saas-feign-api/saas-rocketmq-api/pom.xml
  9. 38 0
      hx-saas-project/saas-feign-api/saas-rocketmq-api/src/main/java/com/fjhx/myapp/application/feign/IRocketmqApi.java
  10. 4 15
      hx-saas-project/saas-flow/pom.xml
  11. 26 0
      hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/controller/FlowApplycheckController.java
  12. 55 0
      hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/feign/FlowApi.java
  13. 22 0
      hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/mapper/FlowApplycheckMapper.java
  14. 31 0
      hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/mapper/FlowApplycheckMapper.xml
  15. 18 0
      hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/service/IFlowApplycheckService.java
  16. 22 0
      hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/service/impl/FlowApplycheckServiceImpl.java
  17. 44 0
      hx-saas-project/saas-rocketmq/src/main/java/com/fjhx/rocketmq/feign/RocketmqApi.java
  18. 5 0
      hx-saas-project/saas-storage/pom.xml
  19. 183 0
      hx-service-api/a-api/src/main/java/com/fjhx/entity/material/Material.java
  20. 17 0
      hx-service-api/a-api/src/main/java/com/fjhx/params/material/MaterialEx.java
  21. 17 0
      hx-service-api/a-api/src/main/java/com/fjhx/params/material/MaterialVo.java
  22. 56 0
      hx-service/a/src/main/java/com/fjhx/material/controller/MaterialController.java
  23. 16 0
      hx-service/a/src/main/java/com/fjhx/material/mapper/MaterialMapper.java
  24. 5 0
      hx-service/a/src/main/java/com/fjhx/material/mapper/MaterialMapper.xml
  25. 28 0
      hx-service/a/src/main/java/com/fjhx/material/service/MaterialService.java
  26. 55 0
      hx-service/a/src/main/java/com/fjhx/material/service/impl/MaterialServiceImpl.java
  27. 1 1
      hx-service/storage/src/main/java/com/fjhx/material/mapper/MaterialMapper.java
  28. 4 4
      hx-service/storage/src/main/java/com/fjhx/material/mapper/MaterialMapper.xml
  29. 2 1
      hx-service/storage/src/main/java/com/fjhx/material/service/impl/MaterialServiceImpl.java
  30. 68 13
      hx-service/storage/src/main/java/com/fjhx/supplier/mapper/SupplierMapper.xml
  31. 4 1
      hx-service/storage/src/main/java/com/fjhx/supplier/service/impl/SupplierProblemServiceImpl.java

+ 122 - 0
bladex/blade-common/src/main/java/org/springblade/common/entity/Pager.java

@@ -0,0 +1,122 @@
+package org.springblade.common.entity;
+
+import java.io.Serializable;
+
+/**
+ * 分页
+ */
+public class Pager implements Serializable {
+
+    private static final long serialVersionUID = -4781129496475920388L;
+
+    // 当前页
+    private int pageNum;
+
+    // 显示数
+    private int pageSize;
+
+    // 总条数
+    private int totalCount;
+
+    // 开始
+    private int pageStart;
+
+    // 结束
+    private int pageEnd;
+
+    // 总页数
+    private int totalPage;
+
+    public Pager() {
+
+    }
+
+    /**
+     * 分页
+     *
+     * @param pageNum 当前页
+     * @param pageSize    显示数
+     */
+    public Pager(int pageNum, int pageSize) {
+        if (pageNum <= 0) {
+            pageNum = 1;
+        }
+        if (pageSize <= 0) {
+            pageSize = 10;
+        }
+
+        this.pageNum = pageNum;
+        this.pageSize = pageSize;
+    }
+
+    public int getpageNum() {
+        return pageNum;
+    }
+
+    public void setpageNum(int pageNum) {
+        this.pageNum = pageNum;
+    }
+
+    public int getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(int pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public int getTotalCount() {
+        return totalCount;
+    }
+
+    public void setTotalCount(int totalCount) {
+        this.totalCount = totalCount;
+    }
+
+    public int getPageStart() {
+        // 分页起始
+        if (pageNum > 0) {
+            this.pageStart = (pageNum - 1) * pageSize;
+        }
+        return pageStart;
+    }
+
+    public void setPageStart(int pageStart) {
+        this.pageStart = pageStart;
+    }
+
+    public int getPageEnd() {
+        // 分页结束
+        this.pageEnd = pageNum * pageSize;
+        return pageEnd;
+    }
+
+    public void setPageEnd(int pageEnd) {
+        this.pageEnd = pageEnd;
+    }
+
+    public int getTotalPage() {
+        if (pageSize <= 0) {
+            return 0;
+        }
+        // 总页数
+        this.totalPage = (totalCount + pageSize - 1) / pageSize;
+        return this.totalPage;
+    }
+
+    public void setTotalPage(int totalPage) {
+
+    }
+
+    @Override
+    public String toString() {
+        return "Pager{" +
+                "pageNum=" + pageNum +
+                ", pageSize=" + pageSize +
+                ", totalCount=" + totalCount +
+                ", pageStart=" + pageStart +
+                ", pageEnd=" + pageEnd +
+                ", totalPage=" + totalPage +
+                '}';
+    }
+}

+ 40 - 0
bladex/blade-common/src/main/java/org/springblade/common/utils/ListPageMap.java

@@ -0,0 +1,40 @@
+package org.springblade.common.utils;
+
+import org.springblade.common.entity.Pager;
+
+import java.util.Map;
+
+/**
+ * 列表分页查询参数
+ */
+public class ListPageMap {
+
+    private static final String page_num_key = "pageNum";
+    private static final String page_size_key = "pageSize";
+
+    private static final String pager_key = "pager";
+    private static final String start_key = "start";
+    private static final String end_key = "end";
+
+    public static final int pageNum_def = 1;
+    public static final int pageSize_def = 10;
+
+    /**
+     * 获取分页列表请求参数
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    public static void getListPageMap(Map<String, Object> condition) {
+        // 起始页
+        int pageNum = (condition.get(page_num_key) == null || condition.get(page_num_key) == "") ? pageNum_def : Integer.valueOf(String.valueOf(condition.get(page_num_key)));
+        // 每页显示数
+        int pageSize = (condition.get(page_size_key) == null || condition.get(page_size_key) == "") ? pageSize_def : Integer.valueOf(String.valueOf(condition.get(page_size_key)));
+
+        Pager pager = new Pager(pageNum, pageSize);
+        condition.put(pager_key, pager);
+        condition.put(start_key, pager.getPageStart());
+        condition.put(end_key, pager.getPageSize());
+    }
+
+}

+ 124 - 0
hx-saas-project/saas-entity/src/main/java/com/fjhx/base/Pager.java

@@ -0,0 +1,124 @@
+package com.fjhx.base;
+
+import java.io.Serializable;
+
+/**
+ * 分页
+ * @Author:caozj
+ * @DATE:2022/7/12 17:36
+ */
+public class Pager implements Serializable {
+
+    private static final long serialVersionUID = -4781129496475920388L;
+
+    // 当前页
+    private int pageNum;
+
+    // 显示数
+    private int pageSize;
+
+    // 总条数
+    private int totalCount;
+
+    // 开始
+    private int pageStart;
+
+    // 结束
+    private int pageEnd;
+
+    // 总页数
+    private int totalPage;
+
+    public Pager() {
+
+    }
+
+    /**
+     * 分页
+     *
+     * @param pageNum 当前页
+     * @param pageSize    显示数
+     */
+    public Pager(int pageNum, int pageSize) {
+        if (pageNum <= 0) {
+            pageNum = 1;
+        }
+        if (pageSize <= 0) {
+            pageSize = 10;
+        }
+
+        this.pageNum = pageNum;
+        this.pageSize = pageSize;
+    }
+
+    public int getpageNum() {
+        return pageNum;
+    }
+
+    public void setpageNum(int pageNum) {
+        this.pageNum = pageNum;
+    }
+
+    public int getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(int pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public int getTotalCount() {
+        return totalCount;
+    }
+
+    public void setTotalCount(int totalCount) {
+        this.totalCount = totalCount;
+    }
+
+    public int getPageStart() {
+        // 分页起始
+        if (pageNum > 0) {
+            this.pageStart = (pageNum - 1) * pageSize;
+        }
+        return pageStart;
+    }
+
+    public void setPageStart(int pageStart) {
+        this.pageStart = pageStart;
+    }
+
+    public int getPageEnd() {
+        // 分页结束
+        this.pageEnd = pageNum * pageSize;
+        return pageEnd;
+    }
+
+    public void setPageEnd(int pageEnd) {
+        this.pageEnd = pageEnd;
+    }
+
+    public int getTotalPage() {
+        if (pageSize <= 0) {
+            return 0;
+        }
+        // 总页数
+        this.totalPage = (totalCount + pageSize - 1) / pageSize;
+        return this.totalPage;
+    }
+
+    public void setTotalPage(int totalPage) {
+
+    }
+
+    @Override
+    public String toString() {
+        return "Pager{" +
+                "pageNum=" + pageNum +
+                ", pageSize=" + pageSize +
+                ", totalCount=" + totalCount +
+                ", pageStart=" + pageStart +
+                ", pageEnd=" + pageEnd +
+                ", totalPage=" + totalPage +
+                '}';
+    }
+}

+ 16 - 0
hx-saas-project/saas-entity/src/main/java/com/fjhx/flow/entity/FlowApplycheck.java

@@ -98,5 +98,21 @@ public class FlowApplycheck extends BasicEntity {
 	@ApiModelProperty(value = "审批事项")
 	private String approvalItem;
 
+	/**
+	 * 模型名称
+	 */
+	@TableField(exist = false)
+	private String flowName;
+
+	/**
+	 * 节点名称
+	 */
+	@TableField(exist = false)
+	private String nodeName;
 
+	/**
+	 * 处理人名称
+	 */
+	@TableField(exist = false)
+	private String userName;
 }

+ 1 - 0
hx-saas-project/saas-feign-api/pom.xml

@@ -16,6 +16,7 @@
 
     <modules>
         <module>saas-rocketmq-api</module>
+        <module>saas-flow-api</module>
     </modules>
 
     <dependencies>

+ 18 - 0
hx-saas-project/saas-feign-api/saas-flow-api/pom.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>saas-feign-api</artifactId>
+        <groupId>com.fjhx</groupId>
+        <version>2.8.2.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>saas-flow-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>2.8.2.RELEASE</version>
+    <description>saas 流程模块 微服务API</description>
+    <packaging>jar</packaging>
+
+</project>

+ 44 - 0
hx-saas-project/saas-feign-api/saas-flow-api/src/main/java/com/fjhx/myapp/application/feign/IFlowApi.java

@@ -0,0 +1,44 @@
+package com.fjhx.myapp.application.feign;
+
+import com.fjhx.flow.entity.FlowParam;
+import org.springblade.common.constant.ApiConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 流程API
+ */
+@FeignClient(value = ApiConstant.APP_NAME.FLOW_APP_NAME)
+public interface IFlowApi {
+
+    String API_URL_PREFIX = ApiConstant.Project.SAAS_FLOW_REQUEST_PREFIX + "/api";
+    String startFlow = API_URL_PREFIX + "/startFlow";
+    String examineFlow = API_URL_PREFIX + "/examineFlow";
+    String rejectFlow = API_URL_PREFIX + "/rejectFlow";
+
+    /**
+     * 发起流程
+     * @param param
+     */
+    @PostMapping(startFlow)
+    Boolean startFlow(@RequestBody FlowParam param);
+
+    /**
+     * 审批流程
+     * @param param
+     */
+    @PostMapping(examineFlow)
+    Boolean examineFlow(@RequestBody FlowParam param);
+
+    /**
+     * 驳回流程
+     * @param param
+     */
+    @PostMapping(rejectFlow)
+    Boolean rejectFlow(@RequestBody FlowParam param);
+
+}

+ 1 - 1
hx-saas-project/saas-feign-api/saas-rocketmq-api/pom.xml

@@ -12,7 +12,7 @@
     <artifactId>saas-rocketmq-api</artifactId>
     <name>${project.artifactId}</name>
     <version>2.8.2.RELEASE</version>
-    <description>saas 业务模块 微服务API</description>
+    <description>saas rocketmq模块 微服务API</description>
     <packaging>jar</packaging>
 
 </project>

+ 38 - 0
hx-saas-project/saas-feign-api/saas-rocketmq-api/src/main/java/com/fjhx/myapp/application/feign/IRocketmqApi.java

@@ -0,0 +1,38 @@
+package com.fjhx.myapp.application.feign;
+
+import org.springblade.common.constant.ApiConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * rocketmqAPI
+ */
+@FeignClient(value = ApiConstant.APP_NAME.ROCKETMQ_APP_NAME)
+public interface IRocketmqApi {
+
+    String API_URL_PREFIX = ApiConstant.Project.SAAS_ROCKETMQ_REQUEST_PREFIX + "/api";
+    String sendMessage = API_URL_PREFIX + "/sendMessage";
+
+    /**
+     * 发送消息
+     * @param topic
+     * @param tag
+     * @param key
+     * @param busiId
+     * @param userIds
+     * @param content
+     * @param msgType
+     */
+    @PostMapping(sendMessage)
+    void sendMessage(@RequestParam("topic") String topic,
+                     @RequestParam("tag") String tag,
+                     @RequestParam("key") String key,
+                     @RequestParam("busiId") String busiId,
+                     @RequestParam("userIds") List<String> userIds,
+                     @RequestParam("content") String content,
+                     @RequestParam("msgType") Integer msgType);
+
+}

+ 4 - 15
hx-saas-project/saas-flow/pom.xml

@@ -29,24 +29,13 @@
         </dependency>
         <dependency>
             <groupId>com.fjhx</groupId>
-            <artifactId>saas-rocketmq</artifactId>
+            <artifactId>saas-flow-api</artifactId>
             <version>${bladex.project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.activiti</groupId>
-            <artifactId>activiti-image-generator</artifactId>
-            <version>${flow.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.activiti</groupId>
-            <artifactId>activiti-engine</artifactId>
-            <version>${flow.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.mybatis</groupId>
-                    <artifactId>mybatis</artifactId>
-                </exclusion>
-            </exclusions>
+            <groupId>com.fjhx</groupId>
+            <artifactId>saas-rocketmq</artifactId>
+            <version>${bladex.project.version}</version>
         </dependency>
     </dependencies>
 

+ 26 - 0
hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/controller/FlowApplycheckController.java

@@ -23,6 +23,7 @@ import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
 import org.springblade.common.constant.ApiConstant;
+import org.springblade.common.utils.ListPageMap;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
@@ -30,6 +31,8 @@ import org.springframework.web.bind.annotation.*;
 import org.springblade.core.boot.ctrl.BladeController;
 
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 流程审批 控制器
@@ -89,5 +92,28 @@ public class FlowApplycheckController extends BladeController {
 		return R.status(flowApplycheckService.removeByIds(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 列表
+	 * @param condition
+	 * @return
+	 */
+	@PostMapping("/list")
+	public R list(@RequestBody Map<String, Object> condition){
+		ListPageMap.getListPageMap(condition);
+		List<FlowApplycheck> result = flowApplycheckService.getList(condition);
+		return R.success(result);
+	}
+
+	/**
+	 * 列表条数
+	 * @param condition
+	 * @return
+	 */
+	@PostMapping("/list/count")
+	public R listCount(@RequestBody Map<String, Object> condition){
+		ListPageMap.getListPageMap(condition);
+		Integer count = flowApplycheckService.getListCount(condition);
+		return R.success(count);
+	}
 	
 }

+ 55 - 0
hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/feign/FlowApi.java

@@ -0,0 +1,55 @@
+package com.fjhx.flow.feign;
+
+import com.fjhx.flow.entity.FlowParam;
+import com.fjhx.flow.service.IFlowEngineService;
+import com.fjhx.myapp.application.feign.IFlowApi;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * 流程 feign api
+ */
+@NonDS
+@RestController
+public class FlowApi implements IFlowApi {
+
+    @Autowired
+    private IFlowEngineService flowEngineService;
+
+
+    /**
+     * 开始流程
+     * @param param
+     */
+    @PostMapping(startFlow)
+    @Override
+    public Boolean startFlow(@RequestBody FlowParam param) {
+        return flowEngineService.startFlow(param);
+    }
+
+    /**
+     * 审批流程
+     * @param param
+     * @return
+     */
+    @PostMapping(examineFlow)
+    @Override
+    public Boolean examineFlow(@RequestBody FlowParam param) {
+        return flowEngineService.examineFlow(param);
+    }
+
+    /**
+     * 驳回流程
+     * @param param
+     * @return
+     */
+    @PostMapping(rejectFlow)
+    @Override
+    public Boolean rejectFlow(@RequestBody FlowParam param) {
+        return flowEngineService.rejectFlow(param);
+    }
+}

+ 22 - 0
hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/mapper/FlowApplycheckMapper.java

@@ -19,6 +19,10 @@ package com.fjhx.flow.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fjhx.flow.entity.FlowApplycheck;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.tenant.annotation.TenantIgnore;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * 流程审批 Mapper 接口
@@ -28,4 +32,22 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
  */
 public interface FlowApplycheckMapper extends BaseMapper<FlowApplycheck> {
 
+    /**
+     * 列表
+     *
+     * @param condition
+     * @return
+     */
+    @TenantIgnore
+    List<FlowApplycheck> getTaskList(Map<String, Object> condition);
+
+    /**
+     * 列表-总条数
+     *
+     * @param condition
+     * @return
+     */
+    @TenantIgnore
+    Integer getTaskListCount(Map<String, Object> condition);
+
 }

+ 31 - 0
hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/mapper/FlowApplycheckMapper.xml

@@ -20,4 +20,35 @@
         <result column="approval_item" property="approvalItem"/>
     </resultMap>
 
+    <select id="getTaskList" resultMap="flowApplycheckResultMap">
+        SELECT
+            t1.*,
+            t2.flow_name AS flowName,
+            t3.node_name AS nodeName,
+            t4.`name` AS userName
+        FROM
+            act_flow_applycheck t1
+        LEFT JOIN act_flow t2 ON t1.flow_id = t2.ID
+        LEFT JOIN act_flow_node t3 ON t1.node_id = t3.id
+        LEFT JOIN blade_user t4 ON t1.check_user_id = t4.id
+        <include refid="list_condition"/>
+        ORDER BY t1.CreatedTime DESC
+        <include refid="Sql.sql_limit"/>
+    </select>
+    <select id="getTaskListCount" resultType="java.lang.Integer">
+        SELECT
+            count (1)
+        FROM
+        act_flow_applycheck t1
+        LEFT JOIN act_flow t2 ON t1.flow_id = t2.ID
+        LEFT JOIN act_flow_node t3 ON t1.node_id = t3.id
+        LEFT JOIN blade_user t4 ON t1.check_user_id = t4.id
+        <include refid="list_condition"/>
+    </select>
+<!--    AND t3.role_key = #{}-->
+    <sql id="list_condition">
+        <where>
+            t1.check_state = 1
+        </where>
+    </sql>
 </mapper>

+ 18 - 0
hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/service/IFlowApplycheckService.java

@@ -19,6 +19,9 @@ package com.fjhx.flow.service;
 import com.fjhx.flow.entity.FlowApplycheck;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 流程审批 服务类
  *
@@ -27,4 +30,19 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IFlowApplycheckService extends IService<FlowApplycheck> {
 
+    /**
+     * 代办列表
+     *
+     * @param condition
+     * @return
+     */
+    List<FlowApplycheck> getList(Map<String, Object> condition);
+
+    /**
+     * 代办列表-总条数
+     *
+     * @param condition
+     * @return
+     */
+    Integer getListCount(Map<String, Object> condition);
 }

+ 22 - 0
hx-saas-project/saas-flow/src/main/java/com/fjhx/flow/service/impl/FlowApplycheckServiceImpl.java

@@ -22,6 +22,9 @@ import com.fjhx.flow.service.IFlowApplycheckService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 流程审批 服务实现类
  *
@@ -31,4 +34,23 @@ import org.springframework.stereotype.Service;
 @Service
 public class FlowApplycheckServiceImpl extends ServiceImpl<FlowApplycheckMapper, FlowApplycheck> implements IFlowApplycheckService {
 
+    /**
+     * 代办列表
+     * @param condition
+     * @return
+     */
+    @Override
+    public List<FlowApplycheck> getList(Map<String, Object> condition) {
+        return baseMapper.getTaskList(condition);
+    }
+
+    /**
+     * 代办列表条数
+     * @param condition
+     * @return
+     */
+    @Override
+    public Integer getListCount(Map<String, Object> condition) {
+        return baseMapper.getTaskListCount(condition);
+    }
 }

+ 44 - 0
hx-saas-project/saas-rocketmq/src/main/java/com/fjhx/rocketmq/feign/RocketmqApi.java

@@ -0,0 +1,44 @@
+package com.fjhx.rocketmq.feign;
+
+import com.fjhx.myapp.application.feign.IRocketmqApi;
+import com.fjhx.rocketmq.service.RocketMqService;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 节日、生日模板 feign api
+ */
+@NonDS
+@RestController
+public class RocketmqApi implements IRocketmqApi {
+
+    @Autowired
+    private RocketMqService rocketMqService;
+
+    /**
+     * 发送消息
+     * @param topic
+     * @param tag
+     * @param key
+     * @param busiId
+     * @param userIds
+     * @param content
+     * @param msgType
+     */
+    @PostMapping(sendMessage)
+    @Override
+    public void sendMessage(@RequestParam("topic") String topic,
+                            @RequestParam("tag") String tag,
+                            @RequestParam("key") String key,
+                            @RequestParam("busiId") String busiId,
+                            @RequestParam("userIds") List<String> userIds,
+                            @RequestParam("content") String content,
+                            @RequestParam("msgType") Integer msgType) {
+        rocketMqService.send(topic,tag,key,busiId,userIds,content,msgType);
+    }
+}

+ 5 - 0
hx-saas-project/saas-storage/pom.xml

@@ -27,6 +27,11 @@
             <artifactId>saas-rocketmq-api</artifactId>
             <version>${bladex.project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>saas-flow-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 183 - 0
hx-service-api/a-api/src/main/java/com/fjhx/entity/material/Material.java

@@ -0,0 +1,183 @@
+package com.fjhx.entity.material;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fjhx.base.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 物料
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-07-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class Material extends BaseEntity {
+
+
+    /**
+     * 软删除
+     */
+    @TableField("IsDelete")
+    private Boolean isdelete;
+
+    /**
+     * 创建时间
+     */
+    @TableField("CreatedTime")
+    private Date createdtime;
+
+    /**
+     * 修改时间
+     */
+    @TableField("UpdatedTime")
+    private Date updatedtime;
+
+    /**
+     * 物料名称
+     */
+    @TableField("Name")
+    private String name;
+
+    /**
+     * 编码
+     */
+    @TableField("Code")
+    private String code;
+
+    /**
+     * 克重
+     */
+    @TableField("UnitWeight")
+    private Float unitweight;
+
+    /**
+     * 单位编号
+     */
+    @TableField("MaterialUnitID")
+    private String materialunitid;
+
+    /**
+     * 库存单位id
+     */
+    @TableField("StockUnitID")
+    private String stockunitid;
+
+    /**
+     * 门幅
+     */
+    @TableField("Width")
+    private Float width;
+
+    /**
+     * 分类
+     */
+    @TableField("CategoryCode")
+    private String categorycode;
+
+    /**
+     * 安全库存
+     */
+    @TableField("SafetyStock")
+    private Integer safetystock;
+
+    /**
+     * 定时任务自动生成申购单时间
+     */
+    @TableField("AutoTaskTime")
+    private Date autotasktime;
+
+    /**
+     * 抽检⽐例
+     */
+    @TableField("CheckRate")
+    private BigDecimal checkrate;
+
+    /**
+     * 安全预警天数/采购周期
+     */
+    @TableField("SafetyWarnDay")
+    private Integer safetywarnday;
+
+    /**
+     * 规格
+     */
+    @TableField("Spec")
+    private String spec;
+
+    /**
+     * 放置区域
+     */
+    @TableField("PlaceAreaIds")
+    private String placeareaids;
+
+    /**
+     * 滞留周期(天)
+     */
+    @TableField("DelayPeriod")
+    private Integer delayperiod;
+
+    /**
+     * 维护人员
+     */
+    @TableField("CreateUser")
+    private String createuser;
+
+    /**
+     * 组织架构
+     */
+    @TableField("OR_ID")
+    private String orId;
+
+    /**
+     * 物料其他编码(模糊搜索使用)
+     */
+    @TableField("OtherCode")
+    private String othercode;
+
+    /**
+     * 备注
+     */
+    @TableField("Remark")
+    private String remark;
+
+    /**
+     * 标准价格
+     */
+    @TableField("Price")
+    private BigDecimal price;
+
+    /**
+     * 标准库存
+     */
+    @TableField("StockStandard")
+    private BigDecimal stockstandard;
+
+    /**
+     * 单位数量
+     */
+    @TableField("UnitNum")
+    private BigDecimal unitnum;
+
+    /**
+     * 用途
+     */
+    @TableField("Purpose")
+    private String purpose;
+
+    /**
+     * 工艺类型 (枚举定义:0=直喷,1=热转,2=打纸,3=墨水,4=其他)
+     */
+    @TableField("TechnologyType")
+    private Integer technologytype;
+
+
+}

+ 17 - 0
hx-service-api/a-api/src/main/java/com/fjhx/params/material/MaterialEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.material;
+
+import com.fjhx.entity.material.Material;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 物料
+ *
+ * @author ${author}
+ * @since 2022-07-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class MaterialEx extends Material {
+
+}

+ 17 - 0
hx-service-api/a-api/src/main/java/com/fjhx/params/material/MaterialVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.material;
+
+import com.fjhx.entity.material.Material;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 物料
+ *
+ * @author ${author}
+ * @since 2022-07-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class MaterialVo extends Material {
+
+}

+ 56 - 0
hx-service/a/src/main/java/com/fjhx/material/controller/MaterialController.java

@@ -0,0 +1,56 @@
+package com.fjhx.material.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.material.Material;
+import com.fjhx.params.material.MaterialVo;
+import com.fjhx.material.service.MaterialService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 物料 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-07-20
+ */
+@RestController
+@RequestMapping("/material")
+public class MaterialController {
+
+    @Autowired
+    private MaterialService materialService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition){
+        Page<Material> result = materialService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody MaterialVo materialVo){
+        materialService.add(materialVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody MaterialVo materialVo){
+        materialService.edit(materialVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody MaterialVo materialVo){
+        materialService.delete(materialVo);
+        return R.success();
+    }
+
+}
+

+ 16 - 0
hx-service/a/src/main/java/com/fjhx/material/mapper/MaterialMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.material.mapper;
+
+import com.fjhx.entity.material.Material;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 物料 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-07-20
+ */
+public interface MaterialMapper extends BaseMapper<Material> {
+
+}

+ 5 - 0
hx-service/a/src/main/java/com/fjhx/material/mapper/MaterialMapper.xml

@@ -0,0 +1,5 @@
+<?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.fjhx.material.mapper.MaterialMapper">
+
+</mapper>

+ 28 - 0
hx-service/a/src/main/java/com/fjhx/material/service/MaterialService.java

@@ -0,0 +1,28 @@
+package com.fjhx.material.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.material.Material;
+import com.fjhx.params.material.MaterialVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 物料 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-07-20
+ */
+public interface MaterialService extends BaseService<Material> {
+
+    Page<Material> getPage(Map<String, String> condition);
+
+    void add(MaterialVo materialVo);
+
+    void edit(MaterialVo materialVo);
+
+    void delete(MaterialVo materialVo);
+
+}

+ 55 - 0
hx-service/a/src/main/java/com/fjhx/material/service/impl/MaterialServiceImpl.java

@@ -0,0 +1,55 @@
+package com.fjhx.material.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.material.Material;
+import com.fjhx.params.material.MaterialVo;
+import com.fjhx.material.mapper.MaterialMapper;
+import com.fjhx.material.service.MaterialService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 物料 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-07-20
+ */
+@Service
+public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> implements MaterialService {
+
+    @Override
+    public Page<Material> getPage(Map<String, String> condition) {
+
+        QueryWrapper<Material> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .eqTenantId()
+                .createTimeDesc();
+
+        Page<Material> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(MaterialVo materialVo) {
+        save(materialVo);
+    }
+
+    @Override
+    public void edit(MaterialVo materialVo) {
+        updateById(materialVo);
+    }
+
+    @Override
+    public void delete(MaterialVo materialVo) {
+        removeById(materialVo.getId());
+    }
+
+}

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/material/mapper/MaterialMapper.java

@@ -25,6 +25,6 @@ public interface MaterialMapper extends BaseMapper<Material> {
      * @return
      */
     @TenantIgnore
-    List<Material> selectList(Map<String, Object> condition);
+    List<Material> selectMaList(Map<String, Object> condition);
 
 }

+ 4 - 4
hx-service/storage/src/main/java/com/fjhx/material/mapper/MaterialMapper.xml

@@ -2,13 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.material.mapper.MaterialMapper">
 
-    <select id="selectList" resultType="com.fjhx.entity.material.Material">
+    <select id="selectMaList" resultType="com.fjhx.entity.material.Material">
         SELECT
-        *
+            *
         FROM
-        material t1
+            material t1
         <include refid="list_condition"/>
-        ORDER BY CreatedTime DESC
+        ORDER BY t1.CreatedTime DESC
         <include refid="com.fjhx.supplier.mapper.SupplierMapper.sql_limit"/>
     </select>
     <sql id="list_condition">

+ 2 - 1
hx-service/storage/src/main/java/com/fjhx/material/service/impl/MaterialServiceImpl.java

@@ -29,6 +29,7 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
      */
     @Override
     public List<Material> selectList(Map<String, Object> condition) {
-        return baseMapper.selectList(condition);
+        List<Material> list = baseMapper.selectMaList(condition);
+        return list;
     }
 }

+ 68 - 13
hx-service/storage/src/main/java/com/fjhx/supplier/mapper/SupplierMapper.xml

@@ -19,18 +19,25 @@
         LEFT JOIN material t3 ON t2.MaterialCode = t3.`Code`
         LEFT JOIN material_category t4 ON t3.CategoryCode = t4.`Code`
         <include refid="list_condition"/>
+        GROUP BY t1.ID
         ORDER BY t1.CreatedTime DESC
         <include refid="sql_limit"/>
     </select>
     <select id="getListCount" resultType="java.lang.Integer">
         SELECT
-            count(1)
+            Count( 1 )
         FROM
-        supplier t1
-        LEFT JOIN supplier_price t2 ON t1.id = t2.FactoryId
-        LEFT JOIN material t3 ON t2.MaterialCode = t3.`Code`
-        LEFT JOIN material_category t4 ON t3.CategoryCode = t4.`Code`
-        <include refid="list_condition"/>
+        (
+            SELECT
+                count( 1 )
+            FROM
+            supplier t1
+            LEFT JOIN supplier_price t2 ON t1.id = t2.FactoryId
+            LEFT JOIN material t3 ON t2.MaterialCode = t3.`Code`
+            LEFT JOIN material_category t4 ON t3.CategoryCode = t4.`Code`
+            <include refid="list_condition"/>
+            GROUP BY t1.ID
+        )AS a
     </select>
     <select id="getPurList" resultType="com.fjhx.entity.supplier.Supplier">
         SELECT
@@ -50,17 +57,24 @@
         LEFT JOIN supplier_price t2 ON t1.id = t2.FactoryId
         LEFT JOIN material t3 ON t2.MaterialCode = t3.`Code`
         <include refid="list_condition"/>
+        GROUP BY t1.ID
         ORDER BY t1.CreatedTime DESC
         <include refid="sql_limit"/>
     </select>
     <select id="getPurListCount" resultType="java.lang.Integer">
         SELECT
-            count(1)
+            Count( 1 )
         FROM
-        supplier t1
-        LEFT JOIN supplier_price t2 ON t1.id = t2.FactoryId
-        LEFT JOIN material t3 ON t2.MaterialCode = t3.`Code`
-        <include refid="list_condition"/>
+        (
+            SELECT
+                count(1)
+            FROM
+            supplier t1
+            LEFT JOIN supplier_price t2 ON t1.id = t2.FactoryId
+            LEFT JOIN material t3 ON t2.MaterialCode = t3.`Code`
+            <include refid="list_condition"/>
+            GROUP BY t1.ID
+        ) AS a
     </select>
     <select id="getGroupByCategory" resultType="com.fjhx.entity.supplier.Supplier">
         SELECT
@@ -152,6 +166,13 @@
 
     <select id="getBackSumMoneyAndCount" resultType="com.fjhx.entity.supplier.Supplier">
         SELECT
+            a.CreatedTime,
+            b.count,
+            b.sumMoney
+        FROM
+            (<include refid="getMonth"/>)AS a
+        LEFT JOIN (
+        SELECT
             count(1)AS count,
             SUM(t3.Amount)AS sumMoney,
             t3.CreatedTime AS CreatedTime
@@ -165,7 +186,8 @@
           AND t3.SceneBackType = 1
           AND DATE_FORMAT(t2.CreatedTime,'%Y') = #{date}
         GROUP BY
-            DATE_FORMAT(t3.CreatedTime,"%Y-%m")
+            DATE_FORMAT(t3.CreatedTime,"%Y-%m"))AS b
+        ON DATE_FORMAT(a.`CreatedTime`,'%c') = DATE_FORMAT(b.CreatedTime,"%c")
     </select>
 
     <select id="getAllSumMoneyAndCount" resultType="java.util.Map">
@@ -185,6 +207,12 @@
 
     <select id="getMonthSumPurMoney" resultType="com.fjhx.entity.supplier.Supplier">
         SELECT
+            a.CreatedTime,
+            IFNULL(b.money,0) AS money
+        FROM
+        (<include refid="getMonth"/>)AS a
+        LEFT JOIN (
+        SELECT
             SUM( TotalAmount ) AS money,
             t2.CreatedTime AS CreatedTime
         FROM
@@ -194,7 +222,8 @@
             t1.ID = #{id}
           AND DATE_FORMAT( t2.CreatedTime, '%Y' ) = #{date}
         GROUP BY
-            DATE_FORMAT( t2.CreatedTime, '%Y-%m' )
+            DATE_FORMAT( t2.CreatedTime, '%Y-%m' ))AS b
+        ON DATE_FORMAT(a.`CreatedTime`,'%c') = DATE_FORMAT(b.CreatedTime,"%c")
     </select>
 
     <select id="selectList" resultType="com.fjhx.entity.supplier.Supplier">
@@ -247,4 +276,30 @@
             LIMIT #{start},#{end}
         </if>
     </sql>
+    <sql id="getMonth">
+        SELECT
+            DATE_FORMAT( CURDATE( ), '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 1 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 2 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 3 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 4 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 5 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 6 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 7 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 8 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 9 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 10 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime UNION
+        SELECT
+            DATE_FORMAT( CURDATE( ) - INTERVAL 11 MONTH, '%Y-%m-%d %H:%i:%s' ) AS CreatedTime
+    </sql>
 </mapper>

+ 4 - 1
hx-service/storage/src/main/java/com/fjhx/supplier/service/impl/SupplierProblemServiceImpl.java

@@ -60,8 +60,12 @@ public class SupplierProblemServiceImpl extends ServiceImpl<SupplierProblemMappe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void add(SupplierProblemVo supplierProblemVo) {
+        if(StringUtil.isEmpty(supplierProblemVo.getProblemType())){
+            throw new ServiceException("参数异常");
+        }
         //保存数据
         supplierProblemVo.setCreatedTime(new Date());
+        supplierProblemVo.setProblemTypeCount(String.valueOf(Arrays.asList("1,2,3,4".split(",")).size()));
         save(supplierProblemVo);
         List<StockAttachment> attr = supplierProblemVo.getAttr();
         if(CollectionUtil.isNotEmpty(attr)){
@@ -148,5 +152,4 @@ public class SupplierProblemServiceImpl extends ServiceImpl<SupplierProblemMappe
     public Integer statisticsProblemCount(String supplierId) {
         return baseMapper.selectCount(Wrappers.<SupplierProblem>query().lambda().eq(SupplierProblem::getSupplierId,supplierId));
     }
-
 }