From 7d50d137d5c07af3fb55958cf9cdd84aa1b0d7d1 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期六, 02 十二月 2023 13:11:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 consum-base/src/main/java/com/consum/base/pojo/query/UsingFormBackQry.java                  |   76 ++++++
 consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java           |   51 +++
 consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java                 |    9 
 consum-base/src/main/java/com/consum/base/pojo/dto/UsingFormBackDetailDTO.java              |   33 ++
 consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java                   |    9 
 consum-base/src/main/java/com/consum/base/pojo/response/UseInfo.java                        |   20 +
 consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java          |   38 +++
 consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailListVO.java      |   27 ++
 consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackGoodsTemplateInfo.java |   25 ++
 consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java        |  298 ++++++++++++++++++++++++
 consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackModelInfo.java         |   22 +
 /dev/null                                                                                   |   43 ---
 consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java                |   24 ++
 consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java          |   16 +
 14 files changed, 633 insertions(+), 58 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java b/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java
index 91699f6..259a48d 100644
--- a/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java
@@ -1,13 +1,18 @@
 package com.consum.base.controller;
 
 import com.consum.base.BaseController;
+import com.consum.base.core.utils.PageUtil;
+import com.consum.base.pojo.query.UsingFormBackQry;
 import com.consum.base.pojo.request.UsingFormBackParam;
+import com.consum.base.pojo.response.UsingFormBackDetailVO;
 import com.consum.base.service.UsingFormBackService;
 import com.consum.model.po.FinSysTenantUser;
 import com.walker.web.ResponseValue;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+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;
@@ -28,13 +33,51 @@
 
 
     @ApiOperation(value = "閮ㄩ棬鐗╁搧閫�鍥炲崟鏂板鎺ュ彛", notes = "閮ㄩ棬鐗╁搧閫�鍥炲崟鏂板鎺ュ彛")
-    @RequestMapping("/add")
+    @PostMapping("/add")
     public ResponseValue add(@RequestBody UsingFormBackParam usingFormBackParam) {
 
         FinSysTenantUser sysInfo = getSysInfo();
-        String tenantId = sysInfo.getTenantId();
-        String tenantName = sysInfo.getTenantName();
+        if (sysInfo == null) {
+            return ResponseValue.error("璇峰厛鐧诲綍");
+        }
         usingFormBackService.add(usingFormBackParam, sysInfo);
-        return null;
+        return ResponseValue.success();
+    }
+
+
+    @ApiOperation(value = "閮ㄩ棬鐗╁搧閫�鍥炲崟鏌ヨ鎺ュ彛", notes = "閮ㄩ棬鐗╁搧閫�鍥炲崟鏌ヨ鎺ュ彛")
+    @GetMapping("/list")
+    public ResponseValue query(UsingFormBackQry usingFormBackParam) {
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            return ResponseValue.error("璇峰厛鐧诲綍");
+        }
+
+        PageUtil page = usingFormBackService.selectPageByList(usingFormBackParam);
+        return ResponseValue.success(page);
+    }
+
+
+    @ApiOperation(value = "閮ㄩ棬鐗╁搧閫�鍥炲崟璇︽儏鎺ュ彛", notes = "閮ㄩ棬鐗╁搧閫�鍥炲崟璇︽儏鎺ュ彛")
+    @GetMapping("/detail")
+    public ResponseValue detail(Long id) {
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            return ResponseValue.error("璇峰厛鐧诲綍");
+        }
+        UsingFormBackDetailVO detail = usingFormBackService.getDetail(id);
+        return ResponseValue.success(detail);
+    }
+
+
+    @ApiOperation(value = "閮ㄩ棬鐗╁搧閫�鍥炴槑缁嗘煡璇㈡帴鍙�", notes = "閮ㄩ棬鐗╁搧閫�鍥炴槑缁嗘煡璇㈡帴鍙�")
+    @GetMapping("/list/detail")
+    public ResponseValue queryListDetail(UsingFormBackQry usingFormBackParam) {
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            return ResponseValue.error("璇峰厛鐧诲綍");
+        }
+        PageUtil result = usingFormBackService.selectPageByDetail(usingFormBackParam);
+        return ResponseValue.success(result);
     }
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/dto/UserAndTenantInfoDTO.java b/consum-base/src/main/java/com/consum/base/pojo/dto/UserAndTenantInfoDTO.java
deleted file mode 100644
index 844cc3c..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/dto/UserAndTenantInfoDTO.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.consum.base.pojo.dto;
-
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * @author asus
- * @version 1.0
- * @description: TODO
- * @date 2023/11/24 15:31
- */
-@NoArgsConstructor
-@Data
-public class UserAndTenantInfoDTO {
-
-    private Long tenantId;
-    private String tenantName;
-
-    private Long departId;
-    private String departName;
-
-    private Long sysUserId;
-    private String userName;
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/dto/UsingFormBackDetailDTO.java b/consum-base/src/main/java/com/consum/base/pojo/dto/UsingFormBackDetailDTO.java
new file mode 100644
index 0000000..7f704c3
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/dto/UsingFormBackDetailDTO.java
@@ -0,0 +1,33 @@
+package com.consum.base.pojo.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 閫�鍥炲崟璇︽儏
+ * @date 2023/12/1 18:22
+ */
+@NoArgsConstructor
+@Data
+public class UsingFormBackDetailDTO {
+
+    private Long id;
+    private String departmentName;
+    private String procureDoc;
+    private String businessFormCode;
+    private Integer counts;
+    private String goodsUserName;
+    private String classification;
+    private String operatorName;
+    private String categoryName;
+    private String agencyName;
+    private String unit;
+    private Long dealTime;
+    private String baseGoodsTemplateName;
+    private String baseGoodsModelsName;
+    private Integer useCount;
+    private Long baseGoodsModelsId;
+    private Long baseGoodsTemplateId;
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/query/UsingFormBackQry.java b/consum-base/src/main/java/com/consum/base/pojo/query/UsingFormBackQry.java
new file mode 100644
index 0000000..6c4cc70
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/query/UsingFormBackQry.java
@@ -0,0 +1,76 @@
+package com.consum.base.pojo.query;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 鐗╁搧閫�鍥炴煡璇㈡潯浠�
+ * @date 2023/12/1 15:32
+ */
+@Data
+@ApiModel
+public class UsingFormBackQry {
+
+    @ApiModelProperty(value = "涓婚敭")
+    private Long id;
+    /**
+     * 閫�鍥炲崟鍙�
+     */
+    @ApiModelProperty(value = "閫�鍥炲崟鍙�")
+    private String businessFormCode;
+    /**
+     * 鍒嗗彂閮ㄩ棬id
+     */
+    @ApiModelProperty(value = "鍒嗗彂閮ㄩ棬id")
+    private Long departmentId;
+    /**
+     * 鐗╁搧妯$増鍚嶇О
+     */
+    @ApiModelProperty(value = "鐗╁搧妯$増鍚嶇О")
+    private String goodsTemplateName;
+    /**
+     * 鐗╁搧妯$増id
+     */
+    @ApiModelProperty(value = "鐗╁搧妯$増id")
+    private String goodsTemplateId;
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @ApiModelProperty(value = "寮�濮嬫椂闂�")
+    private Long startTime;
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @ApiModelProperty(value = "缁撴潫鏃堕棿")
+    private Long endTime;
+    /**
+     * 瑙勬牸鍨嬪彿id
+     */
+    @ApiModelProperty(value = "瑙勬牸鍨嬪彿id")
+    private Long baseGoodsModelsId;
+    /**
+     * 鏈烘瀯
+     */
+    @ApiModelProperty(value = "鏈烘瀯")
+    private Long agencyId;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createName;
+
+    /**
+     * 椤电爜
+     */
+    @ApiModelProperty(value = "椤电爜")
+    private Integer pageNum;
+    /**
+     * 椤靛ぇ灏�
+     */
+    @ApiModelProperty(value = "椤靛ぇ灏�")
+    private Integer pageSize;
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/request/UseInfo.java b/consum-base/src/main/java/com/consum/base/pojo/request/UseInfo.java
deleted file mode 100644
index 94f4058..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/request/UseInfo.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.consum.base.pojo.request;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * @author asus
- * @version 1.0
- * @description: 浣跨敤浜轰俊鎭�
- * @date 2023/12/1 13:27
- */
-@Data
-@ApiModel
-public class UseInfo {
-
-    @ApiModelProperty(value = "浣跨敤浜哄鍚�")
-    private String useName;
-    @ApiModelProperty(value = "鍒嗗彂鏁伴噺")
-    private Integer num;
-    @ApiModelProperty(value = "鍙��鏁伴噺")
-    private Integer backNum;
-    @ApiModelProperty(value = "閫�鍥炴暟閲�")
-    private Integer returnNum;
-
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java b/consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java
index e568826..287c4ce 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java
@@ -2,7 +2,6 @@
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.List;
 import lombok.Data;
 
 /**
@@ -16,20 +15,17 @@
 public class baseGoodModel {
 
     @ApiModelProperty(value = "鍟嗗搧妯″瀷id")
-    private String baseGoodsModelsId;
-    @ApiModelProperty(value = "鍟嗗搧妯″瀷鍚嶇О")
-    private String baseGoodsModelsName;
+    private Long baseGoodsModelsId;
     @ApiModelProperty(value = "鍗曚綅")
     private String unit;
     @ApiModelProperty(value = "鐗╁搧绫诲瀷 A,B,C")
-    private String goodType;
+    private String classification;
 
     private Long goodsTemplatesId;
     private String modelName;
 
     private Long modelUserId;
     private Long nowUserPhone;
-    private String classification;
 
     private String nowUserName;
     private Integer userUseCount;
@@ -37,5 +33,4 @@
     private Integer counts;
 
 
-    private List<UseInfo> useInfo;
 }
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java
new file mode 100644
index 0000000..0c3d446
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/BaseGoodsTemplateInfo.java
@@ -0,0 +1,16 @@
+package com.consum.base.pojo.response;
+
+import lombok.Data;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 鐗╁搧淇℃伅
+ * @date 2023/12/1 17:16
+ */
+@Data
+public class BaseGoodsTemplateInfo {
+
+    private String baseGoodsTemplateName;
+    private Integer count;
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/DetailVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/DetailVO.java
deleted file mode 100644
index 2baa9e0..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/response/DetailVO.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.consum.base.pojo.response;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * @author asus
- * @version 1.0
- * @description: TODO
- * @date 2023/11/14 16:52
- */
-@NoArgsConstructor
-@Data
-@ApiModel
-public class DetailVO {
-
-    @JsonProperty("thisType")
-    private Integer thisType;
-    @JsonProperty("dealTime")
-    private Long dealTime;
-    @JsonProperty("businessFormId")
-    private Long businessFormId;
-    @JsonProperty("totalPrice")
-    private Object totalPrice;
-    @JsonProperty("businessFormCode")
-    private Object businessFormCode;
-    @JsonProperty("baseGoodsModelsName")
-    private String baseGoodsModelsName;
-    @JsonProperty("createdName")
-    private Object createdName;
-    @JsonProperty("businessType")
-    private Integer businessType;
-    @JsonProperty("thisCount")
-    private Integer thisCount;
-    @JsonProperty("goodsTemplateName")
-    private String goodsTemplateName;
-    @JsonProperty("agencyName")
-    private Object agencyName;
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/FormProcureDetailVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/FormProcureDetailVO.java
deleted file mode 100644
index 80b462b..0000000
--- a/consum-base/src/main/java/com/consum/base/pojo/response/FormProcureDetailVO.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.consum.base.pojo.response;
-
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-
-/**
- * @author asus
- * @version 1.0
- * @description: 閲囪喘鍒楄〃鏄庣粏淇℃伅
- * @date 2023/11/11 9:51
- */
-@ApiModel(value = "閲囪喘鍒楄〃鏄庣粏淇℃伅")
-@Data
-public class FormProcureDetailVO {
-
-
-    // 涓婚敭
-    private Long id;
-    // 涓氬姟鍗曞彿
-    private String businessFormCode;
-    //鐗╁搧妯$増缂栧彿
-    private Long baseGoodsTemplateId;
-    //鐗╁搧妯$増鍚嶇О
-    private String goodsTemplateName;
-    //瑙勬牸鍨嬪彿缂栧彿
-    private Long baseGoodsModelsId;
-    //瑙勬牸鍨嬪彿鍚嶇О
-    private String goodsModelsName;
-    //鍗曚环
-    private Long price;
-    //鐗╁搧鍒嗗彂鏁伴噺
-    private Integer goodsNum;
-    //閲戦
-    private Long amount;
-    //鎵�灞炴満鏋�
-    private String agencyName;
-    //鍒涘缓浜�
-    private String createName;
-    //鎿嶄綔鏃堕棿
-    private String procureTime;
-
-
-}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UseInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/UseInfo.java
new file mode 100644
index 0000000..a2d353b
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/UseInfo.java
@@ -0,0 +1,20 @@
+package com.consum.base.pojo.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 閫�鍥炵墿鍝佷娇鐢ㄤ俊鎭�
+ * @date 2023/12/2 9:34
+ */
+@Data
+@ApiModel
+public class UseInfo {
+
+    private String useName;
+    private Integer returnNum;
+    private Integer useUnm;
+
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailListVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailListVO.java
new file mode 100644
index 0000000..8a7f1fe
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailListVO.java
@@ -0,0 +1,27 @@
+package com.consum.base.pojo.response;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 閫�鍥炴槑缁�
+ * @date 2023/12/2 11:52
+ */
+@NoArgsConstructor
+@Data
+@ApiModel
+public class UsingFormBackDetailListVO {
+
+    private Long id;
+    private String departmentName;
+    private Long dealTime;
+    private String businessFormCode;
+    private String operatorName;
+    private Integer counts;
+    private String baseGoodsTemplateName;
+    private String baseGoodsModelsName;
+    private String agencyName;
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java
new file mode 100644
index 0000000..2330f17
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackDetailVO.java
@@ -0,0 +1,38 @@
+package com.consum.base.pojo.response;
+
+import java.util.List;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 閫�鍥炲崟璇︽儏
+ * @date 2023/12/1 18:22
+ */
+@NoArgsConstructor
+@Data
+public class UsingFormBackDetailVO {
+
+    private Long id;
+    private String businessFormCode;
+    private String agencyName;
+    private String departmentName;
+    private String operatorName;
+    private Long dealTime;
+    private String procureDoc;
+
+    private List<UsingFormBackGoodsTemplateInfo> goodsTemplateInfoList;
+
+//    private Integer counts;
+//    private String goodsUserName;
+//    private String classification;
+//
+//    private String categoryName;
+//
+//    private String unit;
+//
+//    private String baseGoodsTemplateName;
+//    private String baseGoodsModelsName;
+//    private Integer useCount;
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackGoodsTemplateInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackGoodsTemplateInfo.java
new file mode 100644
index 0000000..2e128a3
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackGoodsTemplateInfo.java
@@ -0,0 +1,25 @@
+package com.consum.base.pojo.response;
+
+import io.swagger.annotations.ApiModel;
+import java.util.List;
+import lombok.Data;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 閫�鍥炵墿鍝佹ā鏉夸俊鎭�
+ * @date 2023/12/2 9:18
+ */
+@Data
+@ApiModel
+public class UsingFormBackGoodsTemplateInfo {
+
+    private Long id;
+    private String categoryName;
+    private String baseGoodsTemplateName;
+    private String type;
+    private String businessFormCode;
+
+
+    private List<UsingFormBackModelInfo> modelInfoList;
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackModelInfo.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackModelInfo.java
new file mode 100644
index 0000000..3a5216c
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackModelInfo.java
@@ -0,0 +1,22 @@
+package com.consum.base.pojo.response;
+
+import io.swagger.annotations.ApiModel;
+import java.util.List;
+import lombok.Data;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 閫�鍥炵墿鍝佸瀷鍙蜂俊鎭�
+ * @date 2023/12/2 9:24
+ */
+@Data
+@ApiModel
+public class UsingFormBackModelInfo {
+
+    private Long id;
+    private String baseGoodsModelsName;
+    private String unit;
+
+    private List<UseInfo> useInfoList;
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java
new file mode 100644
index 0000000..8e6e03e
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java
@@ -0,0 +1,24 @@
+package com.consum.base.pojo.response;
+
+import java.util.List;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/12/1 17:12
+ */
+@NoArgsConstructor
+@Data
+public class UsingFormBackVO {
+
+    private Long id;
+    private String departmentName;
+    private Long dealTime;
+    private String businessFormCode;
+    private String operatorName;
+
+    private List<BaseGoodsTemplateInfo> goodsTemplateInfoList;
+}
diff --git a/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java b/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java
index 9b56636..aa5741f 100644
--- a/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java
+++ b/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java
@@ -1,6 +1,9 @@
 package com.consum.base.service;
 
+import com.consum.base.core.utils.PageUtil;
+import com.consum.base.pojo.query.UsingFormBackQry;
 import com.consum.base.pojo.request.UsingFormBackParam;
+import com.consum.base.pojo.response.UsingFormBackDetailVO;
 import com.consum.model.po.FinSysTenantUser;
 import com.walker.jdbc.service.BaseService;
 
@@ -13,4 +16,10 @@
 public interface UsingFormBackService extends BaseService {
 
     void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo);
+
+    PageUtil selectPageByList(UsingFormBackQry usingFormBackParam);
+
+    UsingFormBackDetailVO getDetail(Long id);
+
+    PageUtil selectPageByDetail(UsingFormBackQry usingFormBackParam);
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
index db6a904..d4a2747 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
@@ -3,20 +3,41 @@
 import com.consum.base.core.CodeGeneratorEnum;
 import com.consum.base.core.CodeGeneratorService;
 import com.consum.base.core.utils.IdUtil;
+import com.consum.base.core.utils.MapUtils;
+import com.consum.base.core.utils.MapperUtil;
+import com.consum.base.core.utils.PageUtil;
+import com.consum.base.pojo.dto.UsingFormBackDetailDTO;
+import com.consum.base.pojo.query.UsingFormBackQry;
 import com.consum.base.pojo.request.UsingFormBackGoodsInfo;
 import com.consum.base.pojo.request.UsingFormBackParam;
 import com.consum.base.pojo.request.baseGoodModel;
+import com.consum.base.pojo.response.BaseGoodsTemplateInfo;
+import com.consum.base.pojo.response.UseInfo;
+import com.consum.base.pojo.response.UsingFormBackDetailListVO;
+import com.consum.base.pojo.response.UsingFormBackDetailVO;
+import com.consum.base.pojo.response.UsingFormBackGoodsTemplateInfo;
+import com.consum.base.pojo.response.UsingFormBackModelInfo;
+import com.consum.base.pojo.response.UsingFormBackVO;
 import com.consum.base.service.BaseCategoryServiceImpl;
+import com.consum.base.service.UsingFormBackGoodsService;
+import com.consum.base.service.UsingFormBackModelService;
 import com.consum.base.service.UsingFormBackService;
 import com.consum.model.po.BaseCategory;
 import com.consum.model.po.FinSysTenantUser;
 import com.consum.model.po.UsingFormBack;
 import com.consum.model.po.UsingFormBackGoods;
+import com.consum.model.po.UsingFormBackModel;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.CollectionUtils;
 import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+import org.apache.commons.compress.utils.Lists;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -34,6 +55,11 @@
     private CodeGeneratorService codeGeneratorService;
     @Autowired
     private BaseCategoryServiceImpl baseCategoryService;
+    @Autowired
+    private UsingFormBackModelService usingFormBackModelService;
+    @Autowired
+    private UsingFormBackGoodsService usingFormBackGoodsService;
+
 
     @Override
     public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo) {
@@ -54,9 +80,6 @@
             Long transBusinessId = backingGoodsInfo.getTransBusinessId();
             String businessFormCode = backingGoodsInfo.getBusinessFormCode();
 
-            Map<String, List<baseGoodModel>> collect = backingGoodsInfo.getModels().stream()
-                .collect(Collectors.groupingBy(baseGoodModel::getBaseGoodsModelsId));
-
             UsingFormBackGoods usingFormBackGoods = new UsingFormBackGoods();
             usingFormBackGoods.setId(IdUtil.generateId());
             usingFormBackGoods.setUsingFormBackId(usingFormBackId);
@@ -70,13 +93,280 @@
             usingFormBackGoods.setClassification(classification);
             usingFormBackGoods.setTransBusinessId(transBusinessId);
             usingFormBackGoods.setBusinessFormCode(businessFormCode);
-
 //            usingFormBackGoods.setTransOutWarehouseType();
 //            usingFormBackGoods.setTransOutWarehouseId();
 
+            usingFormBackModelService.insert(usingFormBackGoods);
+            for (baseGoodModel model : backingGoodsInfo.getModels()) {
+
+                UsingFormBackModel usingFormBackModel = new UsingFormBackModel();
+                usingFormBackModel.setId(IdUtil.generateId());
+                usingFormBackModel.setUsingFormBackId(usingFormBackId);
+                usingFormBackModel.setUsingFormBackGoodsId(usingFormBackGoods.getId());
+                usingFormBackModel.setBaseGoodsTemplateId(model.getGoodsTemplatesId());
+                usingFormBackModel.setBaseGoodsTemplateName(goodsTemplateName);
+                usingFormBackModel.setClassification(model.getClassification());
+                usingFormBackModel.setUnit(model.getUnit());
+                usingFormBackModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId());
+                usingFormBackModel.setBaseGoodsModelsName(model.getModelName());
+                usingFormBackModel.setProcureModelUserId(model.getModelUserId());
+                usingFormBackModel.setInitialCount(model.getGoodsNum());
+                usingFormBackModel.setUseCount(model.getUserUseCount());
+                usingFormBackModel.setCounts(model.getCounts());
+                usingFormBackModel.setGoodsUserName(model.getNowUserName());
+
+                usingFormBackGoodsService.insert(usingFormBackModel);
+            }
+
+
         }
     }
 
+    @Override
+    public PageUtil selectPageByList(UsingFormBackQry usingFormBackParam) {
+
+        StringBuilder sql = new StringBuilder("SELECT\n"
+            + "\tDISTINCT ufb.ID,\n"
+            + "\tufb.BUSINESS_FORM_CODE,\n"
+            + "\tufb.DEPARTMENT_NAME,\n"
+            + "\tufb.OPERATOR_NAME,\n"
+            + "\tufb.DEAL_TIME\n"
+            + "FROM\n"
+            + "\tusing_form_back ufb\n"
+            + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n"
+            + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n"
+            + "where 1=1 ");
+
+        String businessFormCode = usingFormBackParam.getBusinessFormCode();
+        Long departmentId = usingFormBackParam.getDepartmentId();
+        String goodsTemplateName = usingFormBackParam.getGoodsTemplateName();
+        String goodsTemplateId = usingFormBackParam.getGoodsTemplateId();
+        Long startTime = usingFormBackParam.getStartTime();
+        Long endTime = usingFormBackParam.getEndTime();
+        Long baseGoodsModelsId = usingFormBackParam.getBaseGoodsModelsId();
+        Long agencyId = usingFormBackParam.getAgencyId();
+        String createName = usingFormBackParam.getCreateName();
+        Map<String, Object> map = new HashMap<>();
+        if (StringUtils.isNotEmpty(businessFormCode)) {
+            sql.append("AND ufb.BUSINESS_FORM_CODE = :businessFormCode ");
+            map.put("businessFormCode", businessFormCode);
+        }
+        if (departmentId != null) {
+            sql.append("AND ufb.DEPARTMENT_ID = :departmentId ");
+            map.put("departmentId", departmentId);
+        }
+        if (StringUtils.isNotEmpty(goodsTemplateName)) {
+            sql.append("AND ufbg.BASE_GOODS_TEMPLATE_NAME = :goodsTemplateName ");
+            map.put("goodsTemplateName", goodsTemplateName);
+        }
+        if (StringUtils.isNotEmpty(goodsTemplateId)) {
+            sql.append("AND ufbg.BASE_GOODS_TEMPLATE_ID = :goodsTemplateId ");
+            map.put("goodsTemplateId", goodsTemplateId);
+        }
+        if (startTime != null) {
+            sql.append("AND ufb.CREATE_TIME >= :startTime ");
+            map.put("startTime", startTime * 1000000);
+        }
+        if (endTime != null) {
+            sql.append("AND ufb.CREATE_TIME < :endTime ");
+            map.put("endTime", endTime * 1000000 + 240000);
+        }
+        if (baseGoodsModelsId != null) {
+            sql.append("AND ufbm.BASE_GOODS_MODELS_ID = :baseGoodsModelsId ");
+            map.put("baseGoodsModelsId", baseGoodsModelsId);
+        }
+        if (agencyId != null) {
+            sql.append("AND ufb.AGENCY_ID like :agencyId");
+            map.put("agencyId", agencyId);
+        }
+        if (StringUtils.isNotEmpty(createName)) {
+            sql.append("AND ufb.CREATE_NAME = :createName ");
+            map.put("createName", createName);
+        }
+        sql.append("ORDER BY ufb.CREATE_TIME DESC ");
+        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, usingFormBackParam.getPageNum(),
+            usingFormBackParam.getPageSize(), new MapperUtil());
+        PageUtil pageUtil = new PageUtil(mapGenericPager);
+        List<UsingFormBackVO> pageList = Lists.newArrayList();
+        mapGenericPager.getDatas().forEach(item -> {
+            UsingFormBackVO usingFormBackVO = MapUtils.convertMapToObj(item, UsingFormBackVO.class);
+
+            Long id = usingFormBackVO.getId();
+            StringBuilder countSql = new StringBuilder("SELECT \n"
+                + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n"
+                + "\tsum(ufbm.COUNTS) count\n"
+                + "FROM\n"
+                + "\tusing_form_back_goods ufbg\n"
+                + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n"
+                + "where ufbg.USING_FORM_BACK_ID = :id group by ufbg.BASE_GOODS_TEMPLATE_ID ");
+            Map<String, Object> countSqlMap = new HashMap<>();
+            countSqlMap.put("id", id);
+            List<Map<String, Object>> select = this.select(countSql.toString(), countSqlMap, new MapperUtil());
+            List<BaseGoodsTemplateInfo> baseGoodsTemplateInfoList = Lists.newArrayList();
+            select.forEach(entity -> {
+                BaseGoodsTemplateInfo baseGoodsTemplateInfo = MapUtils.convertMapToObj(entity, BaseGoodsTemplateInfo.class);
+                baseGoodsTemplateInfoList.add(baseGoodsTemplateInfo);
+            });
+            usingFormBackVO.setGoodsTemplateInfoList(baseGoodsTemplateInfoList);
+            pageList.add(usingFormBackVO);
+        });
+        pageUtil.setDatas(pageList);
+        return pageUtil;
+    }
+
+    @Override
+    public UsingFormBackDetailVO getDetail(Long id) {
+        StringBuilder sql = new StringBuilder("SELECT\n"
+            + "\tDISTINCT ufb.ID,\n"
+            + "\tufb.BUSINESS_FORM_CODE,\n"
+            + "\tufb.AGENCY_NAME,\n"
+            + "\tufb.DEPARTMENT_NAME,\n"
+            + "\tufb.OPERATOR_NAME,\n"
+            + "\tufb.DEAL_TIME,\n"
+            + "\tufb.PROCURE_DOC,\n"
+            + "\tufbg.CATEGORY_NAME,\n"
+            + "\tufbg.BASE_GOODS_TEMPLATE_NAME,\n"
+            + "\tufbg.CLASSIFICATION,\n"
+            + "\tufbg.BUSINESS_FORM_CODE,\n"
+            + "\tufbm.BASE_GOODS_MODELS_NAME,\n"
+            + "\tufbm.BASE_GOODS_TEMPLATE_ID,\n"
+            + "\tufbm.BASE_GOODS_MODELS_ID,\n"
+            + "\tufbm.UNIT,\n"
+            + "\tufbm.COUNTS,\n"
+            + "\tufbm.USE_COUNT,\n"
+            + "\tufbm.GOODS_USER_NAME\n"
+            + "FROM\n"
+            + "\tusing_form_back ufb\n"
+            + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n"
+            + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID where ufb.id =:id");
+        Map<String, Object> map = new HashMap<>();
+        map.put("id", id);
+        List<Map<String, Object>> select = this.select(sql.toString(), map, new MapperUtil());
+        if (CollectionUtils.isEmpty(select)) {
+            return null;
+        }
+        List<UsingFormBackDetailDTO> usingFormBackDetailDTOList = Lists.newArrayList();
+        select.forEach(item -> {
+            UsingFormBackDetailDTO usingFormBackDetailDTO = MapUtils.convertMapToObj(item, UsingFormBackDetailDTO.class);
+            usingFormBackDetailDTOList.add(usingFormBackDetailDTO);
+        });
+
+        UsingFormBackDetailVO usingFormBackDetailVO = new UsingFormBackDetailVO();
+        List<UsingFormBackGoodsTemplateInfo> goodsTemplateInfoList = Lists.newArrayList();
+        usingFormBackDetailDTOList.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsTemplateId))
+            .forEach((templateId, templateInfo) -> {
+                UsingFormBackDetailDTO templateInfoDTO = templateInfo.get(0);
+                BeanUtils.copyProperties(templateInfoDTO, usingFormBackDetailVO);
+                UsingFormBackGoodsTemplateInfo usingFormBackGoodsTemplateInfo = new UsingFormBackGoodsTemplateInfo();
+                usingFormBackGoodsTemplateInfo.setId(templateId);
+                usingFormBackGoodsTemplateInfo.setCategoryName(templateInfoDTO.getCategoryName());
+                usingFormBackGoodsTemplateInfo.setBaseGoodsTemplateName(templateInfoDTO.getBaseGoodsTemplateName());
+                usingFormBackGoodsTemplateInfo.setType(templateInfoDTO.getClassification());
+                usingFormBackGoodsTemplateInfo.setBusinessFormCode(templateInfoDTO.getBusinessFormCode());
+                goodsTemplateInfoList.add(usingFormBackGoodsTemplateInfo);
+                usingFormBackDetailVO.setGoodsTemplateInfoList(goodsTemplateInfoList);
+                List<UsingFormBackModelInfo> modelInfoList = Lists.newArrayList();
+                templateInfo.stream().collect(Collectors.groupingBy(UsingFormBackDetailDTO::getBaseGoodsModelsId)).forEach((modelId, modelInfo) -> {
+                    UsingFormBackDetailDTO modelInfoDTO = modelInfo.get(0);
+                    UsingFormBackModelInfo usingFormBackModelInfo = new UsingFormBackModelInfo();
+                    usingFormBackModelInfo.setBaseGoodsModelsName(modelInfoDTO.getBaseGoodsModelsName());
+                    usingFormBackModelInfo.setUnit(modelInfoDTO.getUnit());
+                    usingFormBackModelInfo.setId(modelId);
+                    modelInfoList.add(usingFormBackModelInfo);
+                    usingFormBackGoodsTemplateInfo.setModelInfoList(modelInfoList);
+                    List<UseInfo> useInfoList = Lists.newArrayList();
+                    for (UsingFormBackDetailDTO useInfoDTO : modelInfo) {
+                        UseInfo useInfo = new UseInfo();
+                        useInfo.setUseName(useInfoDTO.getGoodsUserName());
+                        useInfo.setReturnNum(useInfoDTO.getCounts());
+                        useInfo.setUseUnm(useInfoDTO.getUseCount());
+                        useInfoList.add(useInfo);
+                        usingFormBackModelInfo.setUseInfoList(useInfoList);
+                    }
+                });
+            });
+
+        return usingFormBackDetailVO;
+    }
+
+    @Override
+    public PageUtil selectPageByDetail(UsingFormBackQry usingFormBackParam) {
+        StringBuilder sql = new StringBuilder("SELECT\n"
+            + "\tufb.ID,\n"
+            + "\tufb.BUSINESS_FORM_CODE,\n"
+            + "\tufbm.BASE_GOODS_TEMPLATE_NAME,\n"
+            + "\tufbm.BASE_GOODS_MODELS_NAME,\n"
+            + "\tufbm.counts,\n"
+            + "\tufb.AGENCY_NAME,\n"
+            + "\tufb.DEPARTMENT_NAME,\n"
+            + "\tufb.OPERATOR_NAME,\n"
+            + "\tufb.DEAL_TIME\n"
+            + "FROM\n"
+            + "\tusing_form_back ufb\n"
+            + "\tLEFT JOIN using_form_back_goods ufbg ON ufb.ID = ufbg.USING_FORM_BACK_ID\n"
+            + "\tLEFT JOIN using_form_back_model ufbm ON ufbg.ID = ufbm.USING_FORM_BACK_GOODS_ID\n"
+            + "where 1=1 ");
+
+        String businessFormCode = usingFormBackParam.getBusinessFormCode();
+        Long departmentId = usingFormBackParam.getDepartmentId();
+        String goodsTemplateName = usingFormBackParam.getGoodsTemplateName();
+        String goodsTemplateId = usingFormBackParam.getGoodsTemplateId();
+        Long startTime = usingFormBackParam.getStartTime();
+        Long endTime = usingFormBackParam.getEndTime();
+        Long baseGoodsModelsId = usingFormBackParam.getBaseGoodsModelsId();
+        Long agencyId = usingFormBackParam.getAgencyId();
+        String createName = usingFormBackParam.getCreateName();
+        Map<String, Object> map = new HashMap<>();
+        if (StringUtils.isNotEmpty(businessFormCode)) {
+            sql.append("AND ufb.BUSINESS_FORM_CODE = :businessFormCode ");
+            map.put("businessFormCode", businessFormCode);
+        }
+        if (departmentId != null) {
+            sql.append("AND ufb.DEPARTMENT_ID = :departmentId ");
+            map.put("departmentId", departmentId);
+        }
+        if (StringUtils.isNotEmpty(goodsTemplateName)) {
+            sql.append("AND ufbg.BASE_GOODS_TEMPLATE_NAME = :goodsTemplateName ");
+            map.put("goodsTemplateName", goodsTemplateName);
+        }
+        if (StringUtils.isNotEmpty(goodsTemplateId)) {
+            sql.append("AND ufbg.BASE_GOODS_TEMPLATE_ID = :goodsTemplateId ");
+            map.put("goodsTemplateId", goodsTemplateId);
+        }
+        if (startTime != null) {
+            sql.append("AND ufb.CREATE_TIME >= :startTime ");
+            map.put("startTime", startTime * 1000000);
+        }
+        if (endTime != null) {
+            sql.append("AND ufb.CREATE_TIME < :endTime ");
+            map.put("endTime", endTime * 1000000 + 240000);
+        }
+        if (baseGoodsModelsId != null) {
+            sql.append("AND ufbm.BASE_GOODS_MODELS_ID = :baseGoodsModelsId ");
+            map.put("baseGoodsModelsId", baseGoodsModelsId);
+        }
+        if (agencyId != null) {
+            sql.append("AND ufb.AGENCY_ID like :agencyId ");
+            map.put("agencyId", agencyId);
+        }
+        if (StringUtils.isNotEmpty(createName)) {
+            sql.append("AND ufb.CREATE_NAME = :createName ");
+            map.put("createName", createName);
+        }
+        sql.append("ORDER BY ufb.CREATE_TIME DESC ");
+        GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), map, usingFormBackParam.getPageNum(),
+            usingFormBackParam.getPageSize(), new MapperUtil());
+        PageUtil pageUtil = new PageUtil(mapGenericPager);
+        List<UsingFormBackDetailListVO> pageList = Lists.newArrayList();
+        mapGenericPager.getDatas().forEach(item -> {
+            UsingFormBackDetailListVO usingFormBackVO = MapUtils.convertMapToObj(item, UsingFormBackDetailListVO.class);
+            pageList.add(usingFormBackVO);
+        });
+        pageUtil.setDatas(pageList);
+        return pageUtil;
+    }
+
+
     @Transactional
     public Long addUsingFormBack(FinSysTenantUser sysInfo, Long departmentId, String departmentName, Long operatorId, String operatorName, Long backTime,
         String procureDoc) {

--
Gitblit v1.9.1