From 7bbce72b03664f56400fe7e70e8dcd4ea737a8da Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 02 八月 2024 14:19:30 +0800
Subject: [PATCH] 代码提交 bug解决

---
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/QRCodeUtil.java                                |   50 ++++
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/UUIDUtil.java                                  |  101 +++++++++
 ruoyi-modules/ruoyi-management/pom.xml                                                                                |   16 +
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/AddZYIdsDTO.java                         |   21 +
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKGLDTO.java                          |   12 +
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkglServiceImpl.java |   16 +
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDZYDTO.java                            |   37 +++
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkService.java            |    2 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkglService.java          |    2 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java           |    4 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyglController.java    |   15 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionRkService.java            |    2 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkServiceImpl.java   |    7 
 ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java                                                  |    3 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java    |    4 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/ScanCodesController.java                 |    4 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java   |  140 +++++++++++-
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java   |   48 ++++
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkController.java      |    8 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKDTO.java                            |   12 +
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyglService.java          |    5 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/SlVolumeProductionZy.java                    |    6 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionCkglVO.java               |    2 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionZyglInfoVO.java           |   13 +
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyglServiceImpl.java |  109 ++++++++-
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionRkController.java      |    6 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyController.java      |    4 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyService.java            |    2 
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkglController.java    |    4 
 29 files changed, 586 insertions(+), 69 deletions(-)

diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
index aace777..15f71b3 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -109,7 +109,8 @@
         if (user.getUserType().equals("02")){
             throw new ServiceException("登录失败,登录账号权限不足");
         }
-        if (user.getUserType().equals("03")){
+
+        if (org.springframework.util.StringUtils.hasLength(seBei) && user.getUserType().equals("03")){
             SeBei se=new SeBei();
             se.setUserId(user.getUserId());
             se.setSebei(seBei);
diff --git a/ruoyi-modules/ruoyi-management/pom.xml b/ruoyi-modules/ruoyi-management/pom.xml
index ff28a0d..d083a5e 100644
--- a/ruoyi-modules/ruoyi-management/pom.xml
+++ b/ruoyi-modules/ruoyi-management/pom.xml
@@ -21,7 +21,21 @@
   </description>
 
   <dependencies>
-
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-test</artifactId>
+      <version>5.3.9</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.zxing</groupId>
+      <artifactId>core</artifactId>
+      <version>3.4.1</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.zxing</groupId>
+      <artifactId>javase</artifactId>
+      <version>3.4.1</version>
+    </dependency>
     <dependency>
       <groupId>com.ruoyi</groupId>
       <artifactId>ruoyi-api-system</artifactId>
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/ScanCodesController.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/ScanCodesController.java
index 7026711..3a5bd48 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/ScanCodesController.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/ScanCodesController.java
@@ -19,9 +19,9 @@
     @Resource
     private InventoriesSuppliesService inventoriesSuppliesService;
 
-    @GetMapping("/scanCodes/{rkNumber}")
+    @GetMapping("/scanCodes")
     @ApiOperation(value = "安卓扫描传输数据")
-    public R scanCodes(   @ApiParam(name = "rkNumber", value = "入库编号", required = true) @PathVariable("rkNumber") String rkNumber) {
+    public R scanCodes(String rkNumber) {
         inventoriesSuppliesService.scanCodes(rkNumber);
         return R.ok();
     }
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkController.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkController.java
index cda697e..fcd96c2 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkController.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkController.java
@@ -48,15 +48,15 @@
 
     @PostMapping("/addSlVolumeProductionCk")
     @ApiOperation(value = "添加出库")
-    public R addSlVolumeProductionCk(@RequestBody List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO) {
-        slVolumeProductionCkService.addSlVolumeProductionCk(addSlVolumeProductionCkDTO);
+    public R addSlVolumeProductionCk(@RequestBody ADDCKGLDTO addckgldto ) {
+        slVolumeProductionCkService.addSlVolumeProductionCk(addckgldto.getAddSlVolumeProductionCkDTO());
         return R.ok();
     }
 
     @PostMapping("/updSlVolumeProductionCk")
     @ApiOperation(value = "修改出库")
-    public R updSlVolumeProductionCk(@RequestBody List<SlVolumeProductionCkDTO> slVolumeProductionCkDTO) {
-        slVolumeProductionCkService.updSlVolumeProductionCk(slVolumeProductionCkDTO);
+    public R updSlVolumeProductionCk(@RequestBody ADDCKGLDTO addckgldto ) {
+        slVolumeProductionCkService.updSlVolumeProductionCk(addckgldto.getAddSlVolumeProductionCkDTO());
         return R.ok();
     }
 
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkglController.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkglController.java
index 702d4d5..9fffc82 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkglController.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkglController.java
@@ -51,8 +51,8 @@
     @PostMapping("/addslVolumeProductionCkgl")
     @ApiOperation(value = "添加/修改出库管理")
     public R addslVolumeProductionCkgl(@RequestBody VolumeProductionCkglDTO volumeProductionCkglDTO) {
-        slVolumeProductionCkglService.addslVolumeProductionCkgl(volumeProductionCkglDTO);
-        return R.ok();
+
+        return R.ok(slVolumeProductionCkglService.addslVolumeProductionCkgl(volumeProductionCkglDTO));
     }
 
     @GetMapping("/getVolumeProductionCkglnfo/{id}")
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionRkController.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionRkController.java
index 130e02d..b87567c 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionRkController.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionRkController.java
@@ -80,9 +80,9 @@
 
     @PostMapping("/codeInfo/{id}")
     @ApiOperation(value = "获取二维码样式")
-    public R<List<QRCodeVO>> codeInfo(@ApiParam(name = "id", value = "入库管理id", required = true) @PathVariable("id") Long id){
-        slVolumeProductionRkService.codeInfo(id);
-        return R.ok();
+    public R<List<QRCodeVO>> codeInfo(@ApiParam(name = "id", value = "入库管理id", required = true) @PathVariable("id") Long id) throws Exception {
+
+        return R.ok(slVolumeProductionRkService.codeInfo(id));
     }
 
     @PostMapping("/getSlvolumeVolumeProductionRkList")
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyController.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyController.java
index ad47960..39f0544 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyController.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyController.java
@@ -45,8 +45,8 @@
 
     @PostMapping("/addSlVolumeProductionZy")
     @ApiOperation(value = "添加转移")
-    public R addSlVolumeProductionZy(@RequestBody AddaddSlVolumeProductionZyDTO addaddSlVolumeProductionZyDTO) {
-        slVolumeProductionZyService.addSlVolumeProductionZy(addaddSlVolumeProductionZyDTO);
+    public R addSlVolumeProductionZy(@RequestBody ADDZYDTO addzydto) {
+        slVolumeProductionZyService.addSlVolumeProductionZy(addzydto);
         return R.ok();
     }
 
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyglController.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyglController.java
index 7c09489..040d95b 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyglController.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyglController.java
@@ -9,10 +9,7 @@
 import com.ruoyi.management.domain.SlVolumeProductionCk;
 import com.ruoyi.management.domain.SlVolumeProductionRkgl;
 import com.ruoyi.management.domain.SlVolumeProductionZygl;
-import com.ruoyi.management.domain.dto.SlVolumeProductionZyDTO;
-import com.ruoyi.management.domain.dto.SlVolumeProductionZyQuery;
-import com.ruoyi.management.domain.dto.VolumeProductionCkglDTO;
-import com.ruoyi.management.domain.dto.getslVolumeProductionCkglQuery;
+import com.ruoyi.management.domain.dto.*;
 import com.ruoyi.management.domain.vo.*;
 import com.ruoyi.management.mapper.SlAuditMapper;
 import com.ruoyi.management.service.SlVolumeProductionZyService;
@@ -53,14 +50,14 @@
     @PostMapping("/addsVolumeProductionzZygl")
     @ApiOperation(value = "添加/修改转移管理")
     public R addsVolumeProductionzZygl(@RequestBody SlVolumeProductionZyDTO slVolumeProductionZyDTO) {
-        slVolumeProductionZyglService.addsVolumeProductionzZygl(slVolumeProductionZyDTO);
-        return R.ok();
+
+        return R.ok(slVolumeProductionZyglService.addsVolumeProductionzZygl(slVolumeProductionZyDTO));
     }
 
-    @GetMapping("/getVolumeProductionzZyglnfo/{id}")
+    @GetMapping("/getVolumeProductionzZyglnfo")
     @ApiOperation(value = "获取转移管理详情")
-    public R<VolumeProductionZyglInfoVO> getVolumeProductionzZyglnfo(@ApiParam(name = "id", value = "转移管理id", required = true) @PathVariable("id") Long id) {
-        return R.ok(slVolumeProductionZyglService.getVolumeProductionzZyglnfo(id));
+    public R<VolumeProductionZyglInfoVO> getVolumeProductionzZyglnfo(@RequestBody ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) {
+        return R.ok(slVolumeProductionZyglService.getVolumeProductionzZyglnfo(managementimgVolumeProductionZyQuery));
     }
 
     @GetMapping("/getVolumeProductionZyglnventory/{id}")
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/SlVolumeProductionZy.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/SlVolumeProductionZy.java
index fe07e93..b3d369f 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/SlVolumeProductionZy.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/SlVolumeProductionZy.java
@@ -88,6 +88,12 @@
 
     @ApiModelProperty("转移管理新生成入库编号")
     private Long  scrkId;
+    @ApiModelProperty("转移到的楼层1、2、3")
+    @TableField("store_management_number")
+    private Integer  storeManagementNumber;
+    @TableField("shelf_id")
+    @ApiModelProperty("转移到的货架id")
+    private Long  shelfId;
 
 
 }
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKDTO.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKDTO.java
new file mode 100644
index 0000000..2519e6a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKDTO.java
@@ -0,0 +1,12 @@
+package com.ruoyi.management.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("添加出库批次DTO")
+public class ADDCKDTO {
+    private List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO;
+}
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKGLDTO.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKGLDTO.java
new file mode 100644
index 0000000..2e4d12a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKGLDTO.java
@@ -0,0 +1,12 @@
+package com.ruoyi.management.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("添加出库DTO")
+public class ADDCKGLDTO {
+    private List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO;
+}
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDZYDTO.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDZYDTO.java
new file mode 100644
index 0000000..1b9f933
--- /dev/null
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDZYDTO.java
@@ -0,0 +1,37 @@
+package com.ruoyi.management.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("添加转移DTO")
+public class ADDZYDTO {
+
+    @ApiModelProperty("选择的物资列表")
+    private List<AddZYIdsDTO> addZYIdsDTOS;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @ApiModelProperty("转移管理Id 修改传")
+    private Long id;
+
+    @ApiModelProperty("转移出仓库ID")
+    private Long managementId;
+
+    @ApiModelProperty("被转移入仓库ID")
+    private Long bmanagementId;
+
+    @ApiModelProperty("转移原因")
+    private String source;
+
+    @ApiModelProperty("附件")
+    private String attachmentUrl;
+
+    @ApiModelProperty("审批单")
+    private String authorization;
+}
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/AddZYIdsDTO.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/AddZYIdsDTO.java
new file mode 100644
index 0000000..98fbbfd
--- /dev/null
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/AddZYIdsDTO.java
@@ -0,0 +1,21 @@
+package com.ruoyi.management.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("添加转移库批次数据传输对象")
+public class AddZYIdsDTO {
+
+    @ApiModelProperty("入库id")
+    private Long rkId;
+    @ApiModelProperty("转移数量")
+    private Integer zyNum;
+    @ApiModelProperty("转移楼层")
+    private Integer storeManagementNumber;
+    @ApiModelProperty("转移货架id")
+    private Long shelfId;
+}
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionCkglVO.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionCkglVO.java
index dfd7396..e80e7d2 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionCkglVO.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionCkglVO.java
@@ -20,7 +20,7 @@
     @JsonInclude(JsonInclude.Include.ALWAYS)
     private String phonenumber;
 
-    private Integer id;
+    private String id;
 
     @ApiModelProperty("仓库名称")
     @JsonInclude(JsonInclude.Include.ALWAYS)
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionZyglInfoVO.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionZyglInfoVO.java
index 32be1ce..9848f63 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionZyglInfoVO.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionZyglInfoVO.java
@@ -2,11 +2,16 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.management.domain.SlGoodsShelf;
+import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
+
 @Data
 @ApiModel(value = "转移管理详情", description = "转移管理详情")
 public class VolumeProductionZyglInfoVO {
@@ -50,4 +55,12 @@
 
     @ApiModelProperty("1 待管理员审核,2 待主管审核,3 待主任审核,4 待入库,5 待从重新提交, 6已完成, 7,已取消")
     private Integer auditStatus;
+
+    @ApiModelProperty("物资列表")
+    private PageDTO<ManagementimgVolumeProductionZyVO> list;
+
+    @ApiModelProperty("楼层 1=一层 2=二层。。。")
+    private List<String> number;
+    @ApiModelProperty("货架列表")
+    private List<SlGoodsShelf> goodsShelfList;
 }
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkService.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkService.java
index 80ed462..12ce214 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkService.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkService.java
@@ -23,7 +23,7 @@
 
     PageDTO<ManagementimgSlVolumeProductionCkVO> getManagementimgSlVolumeProductionCkList(SlGoodsMaterialsSlVolumeProductionRkQuery slGoodsMaterialsSlVolumeProductionRkQuery);
 
-    void updSlVolumeProductionCk(List<SlVolumeProductionCkDTO>slVolumeProductionCkDTO);
+    void updSlVolumeProductionCk(List<AddSlVolumeProductionCkDTO>slVolumeProductionCkDTO);
     void addSlVolumeProductionCk(List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO);
 
 
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkglService.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkglService.java
index 7c9bc80..4ba175b 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkglService.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkglService.java
@@ -23,7 +23,7 @@
 public interface SlVolumeProductionCkglService extends IService<SlVolumeProductionCkgl> {
     PageDTO<VolumeProductionCkglVO> getslVolumeProductionCkglList(getslVolumeProductionCkglQuery VolumeProductionCkglQuery);
 
-    void addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO);
+    String addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO);
 
     VolumeProductionCkglInfoVO getVolumeProductionCkglnfo (Long id);
 
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionRkService.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionRkService.java
index bf608f8..e0b7974 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionRkService.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionRkService.java
@@ -33,7 +33,7 @@
     void uplSlVolumeProductionRk(@RequestBody List<SlVolumeProductionRkDTO> SlVolumeProductionRkDTO);
 
     PageDTO<getVolumeProductionRkgCodeVO> getVolumeProductionRkgCode(VolumeProductionRkgCodeQuery volumeProductionRkgCodeQuery);
-    List<QRCodeVO> codeInfo(Long id);
+    List<QRCodeVO> codeInfo(Long id) throws Exception;
 
     PageDTO<ManagementimgVolumeProductionRkVO> getroductionRkList(umeProductionRkQuery meProductionRkQuery);
 
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyService.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyService.java
index d2d43a2..e6d63e7 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyService.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyService.java
@@ -21,7 +21,7 @@
 public interface SlVolumeProductionZyService extends IService<SlVolumeProductionZy> {
     PageDTO<getVolumeProductionzyCodeVO> getVolumeProductionzyCode(VolumeProductionZygCodeQuery volumeProductionZygCodeQuery);
 
-    void addSlVolumeProductionZy(AddaddSlVolumeProductionZyDTO addaddSlVolumeProductionZyDTO);
+    void addSlVolumeProductionZy(ADDZYDTO addzydto);
 
     void  updSlVolumeProductionZy(List<UpdaddSlVolumeProductionZyDTO> updaddSlVolumeProductionZyDTO);
 
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyglService.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyglService.java
index 83ba6b3..6f40f4a 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyglService.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyglService.java
@@ -3,6 +3,7 @@
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.management.domain.SlVolumeProductionZygl;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyQuery;
 import com.ruoyi.management.domain.dto.SlVolumeProductionZyDTO;
 import com.ruoyi.management.domain.dto.SlVolumeProductionZyQuery;
 import com.ruoyi.management.domain.vo.VolumeProductionZyglInfoVO;
@@ -23,9 +24,9 @@
 public interface SlVolumeProductionZyglService extends IService<SlVolumeProductionZygl> {
     PageDTO<VolumeProductionzZyglVO> getVolumeProductionzZyglList(@RequestBody SlVolumeProductionZyQuery slVolumeProductionZyQuery);
 
-    void addsVolumeProductionzZygl(@RequestBody SlVolumeProductionZyDTO slVolumeProductionZyDTO);
+    String addsVolumeProductionzZygl(@RequestBody SlVolumeProductionZyDTO slVolumeProductionZyDTO);
 
-    VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(Long id);
+    VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery);
 
     VolumeProductionZyglInventoryVO getVolumeProductionZyglnventory( Integer id);
 
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java
index 84d4bc4..f0438ff 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java
@@ -124,8 +124,8 @@
     @Override
     public void scanCodes(String rkNumber) {
         LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery();
-        wrapper1.like(SlVolumeProductionRk::getRkNumber,rkNumber);
-        wrapper1.eq( SlVolumeProductionRk::getDelFlag,0);
+        wrapper1.eq(SlVolumeProductionRk::getRkNumber,rkNumber);
+        wrapper1.eq(SlVolumeProductionRk::getDelFlag,0);
         wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
         SlVolumeProductionRk page2 = slVolumeProductionRkMapper.selectOne(wrapper1);
         if (page2.getSmerwmNum()>0){
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java
index 68239e3..51e6a5f 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java
@@ -73,6 +73,7 @@
         if (slGoodsShelfQuery.getStoreManagementNumber()!=null && slGoodsShelfQuery.getStoreManagementNumber()!=0){
             wrapper1.eq(SlGoodsShelf::getStoreManagementNumber,slGoodsShelfQuery.getStoreManagementNumber());
         }
+
         if(slGoodsShelfQuery.getStoreManagementName()!=null&&slGoodsShelfQuery.getStoreManagementName()!="") {
             if (slStoreManagementIdList.size() > 0) {
                 wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList);
@@ -82,6 +83,9 @@
                 wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList);
             }
         }
+        if (slGoodsShelfQuery.getStoreManagementId()!=null){
+            wrapper1.eq(SlGoodsShelf::getStoreManagementId, slGoodsShelfQuery.getStoreManagementId());
+        }
         wrapper1.eq( SlGoodsShelf::getDelFlag,0);
         wrapper1.orderByDesc(SlGoodsShelf::getCreateTime);
         Page<SlGoodsShelf> page2 = this.page(page, wrapper1);
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkServiceImpl.java
index 8cd8cc4..c030fff 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkServiceImpl.java
@@ -71,9 +71,9 @@
     }
 
     @Override
-    public void updSlVolumeProductionCk(List<SlVolumeProductionCkDTO> slVolumeProductionCkDTO) {
-           for (SlVolumeProductionCkDTO c:slVolumeProductionCkDTO){
-               SlVolumeProductionCk byId = this.getById(c.getId());
+    public void updSlVolumeProductionCk(List<AddSlVolumeProductionCkDTO> slVolumeProductionCkDTO) {
+           for (AddSlVolumeProductionCkDTO c:slVolumeProductionCkDTO){
+               SlVolumeProductionCk byId = this.getById(c.getCkgl_id());
                byId.setCkNum(c.getCkNum());
                byId.setGuihNum(c.getGuihNum());
                this.updateById(byId);
@@ -94,6 +94,7 @@
             slVolumeProductionCk.setCkNum(m.getCkNum());
             slVolumeProductionCk.setGuihNum(m.getGuihNum());
             slVolumeProductionCk.setMaterialsId(slVolumeProductionRk.getMaterialsId());
+            slVolumeProductionCk.setCreateTime(new Date());
             this.save(slVolumeProductionCk);
         }
     }
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkglServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkglServiceImpl.java
index b49c0da..920c0a4 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkglServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkglServiceImpl.java
@@ -71,8 +71,13 @@
                 .collect(Collectors.toSet());
 
         LambdaQueryWrapper< SlVolumeProductionCkgl> wrapper1= Wrappers.lambdaQuery();
+        if (VolumeProductionCkglQuery.getPresentState()!=null &&VolumeProductionCkglQuery.getPresentState()!=0){
         wrapper1.eq(SlVolumeProductionCkgl::getPresentState,VolumeProductionCkglQuery.getPresentState());
-        wrapper1.eq(SlVolumeProductionCkgl::getAuditStatus,VolumeProductionCkglQuery.getAuditStatus());
+        }
+        if (VolumeProductionCkglQuery.getAuditStatus()!=null &&VolumeProductionCkglQuery.getAuditStatus()!=0){
+            wrapper1.eq(SlVolumeProductionCkgl::getAuditStatus,VolumeProductionCkglQuery.getAuditStatus());
+
+        }
         if (goodsSkuIdList.size()>0){
             wrapper1.in(SlVolumeProductionCkgl::getSysId,goodsSkuIdList);
         }
@@ -93,9 +98,9 @@
     }
 
     @Override
-    public void addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO) {
+    public String addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO) {
         Long userid = SecurityUtils.getUserId();
-        if (volumeProductionCkglDTO.getId()!=null){
+        if (volumeProductionCkglDTO.getId()==null){
             SlVolumeProductionCkgl slVolumeProductionRkgl=new  SlVolumeProductionCkgl();
             slVolumeProductionRkgl.setAttachmentUrl(volumeProductionCkglDTO.getAttachmentUrl());
             slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionCkglDTO.getAuthorization());
@@ -106,7 +111,9 @@
             slVolumeProductionRkgl.setSource(volumeProductionCkglDTO.getSource());
             slVolumeProductionRkgl.setStartiTime(new Date());
             slVolumeProductionRkgl.setSysId(userid);
+            slVolumeProductionRkgl.setCreateTime(new Date());
             this.save(slVolumeProductionRkgl);
+            return slVolumeProductionRkgl.getId().toString();
         }else{
             SlVolumeProductionCkgl byId = this.getById(volumeProductionCkglDTO.getId());
             if (volumeProductionCkglDTO.getSource()!=null){
@@ -119,6 +126,7 @@
                 byId.setAuthorizationUrl(volumeProductionCkglDTO.getAuthorization());
             }
             this.updateById(byId);
+            return volumeProductionCkglDTO.getId().toString();
         }
     }
 
@@ -132,7 +140,7 @@
         SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData();
         v.setSysName(data1.getNickName());
         v.setSysPhone(data1.getPhonenumber());
-        return null;
+        return v;
     }
 
     @Override
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java
index 2894d97..0fd00f0 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java
@@ -1,5 +1,7 @@
 package com.ruoyi.management.service.impl;
 
+import com.alibaba.fastjson2.util.UUIDUtils;
+import com.alibaba.nacos.common.utils.UuidUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,11 +14,22 @@
 import com.ruoyi.management.service.SlVolumeProductionRkService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.management.service.SlVolumeProductionRkglService;
+import com.ruoyi.management.util.ObsUploadUtil;
+import com.ruoyi.management.util.QRCodeUtil;
+import com.ruoyi.management.util.UUIDUtil;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
+import org.apache.logging.log4j.core.util.UuidUtil;
+import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream;
+import org.springframework.core.io.ByteArrayResource;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.sql.Array;
 import java.text.SimpleDateFormat;
@@ -200,7 +213,7 @@
     }
 
     @Override
-    public List<QRCodeVO> codeInfo(Long id) {
+    public List<QRCodeVO> codeInfo(Long id) throws Exception {
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
         List<QRCodeVO> res = new ArrayList<>();
         LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery();
@@ -211,6 +224,11 @@
         for (SlVolumeProductionRk byId : list) {
             // 根据生成二维码数量 复制
             for (int i = 0; i < byId.getErwmNum(); i++) {
+                String blueS = "{\"rkNumber\": "+byId.getRkNumber()+"}";
+                BufferedImage blueImage = QRCodeUtil.createImage(blueS);
+                MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG");
+                // 生成的二维码连接
+                String s = ObsUploadUtil.obsUpload(blueFile);
                 QRCodeVO vo=new QRCodeVO();
                 String letter = getLetter(i);
                 vo.setCategory(letter);
@@ -225,6 +243,7 @@
                 vo.setMaterials(byId.getRkNumber());
                 SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId());
                 vo.setStoreManagementName(slStoreManagement.getStoreManagementName());
+                vo.setQrCode(s);
                 res.add(vo);
             }
 
@@ -234,6 +253,33 @@
         return res;
     }
 
+    public static void main(String[] args) throws Exception {
+        String blueS = "{\"rkNumber\": CD-1721989472748"+"}";
+        BufferedImage blueImage = QRCodeUtil.createImage(blueS);
+        MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG");
+        // 生成的二维码连接
+        String s = ObsUploadUtil.obsUpload(blueFile);
+        System.err.println(s);
+    }
+    public static MultipartFile convert(BufferedImage bufferedImage, String fileName) throws IOException {
+        // 将 BufferedImage 转换为字节数组
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        ImageIO.write(bufferedImage, "png", baos);
+        byte[] bytes = baos.toByteArray();
+
+        // 创建 ByteArrayResource
+        ByteArrayResource resource = new ByteArrayResource(bytes);
+
+        // 创建 MockMultipartFile
+        MockMultipartFile multipartFile = new MockMultipartFile(
+                "file",
+                fileName,
+                "image/png",
+                resource.getInputStream()
+        );
+
+        return multipartFile;
+    }
     // 根据传入数字是几 返回对应的字母
     public static String getLetter(int num) {
         String[] str = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java
index 2c87721..9f1925c 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java
@@ -5,11 +5,14 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.management.domain.*;
 import com.ruoyi.management.domain.dto.*;
 import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO;
 import com.ruoyi.management.domain.vo.*;
 import com.ruoyi.management.mapper.*;
+import com.ruoyi.management.service.SlAuditRecordService;
+import com.ruoyi.management.service.SlAuditService;
 import com.ruoyi.management.service.SlStoreManagementService;
 import com.ruoyi.management.service.SlVolumeProductionZyService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -21,6 +24,7 @@
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -38,6 +42,8 @@
 
     @Resource
     private SlVolumeProductionRkMapper slVolumeProductionRkMapper;
+    @Resource
+    private SlVolumeProductionRkglMapper slVolumeProductionRkglMapper;
     @Resource
     private SlGoodsMaterialsMapper slGoodsMaterialsMapper;
 
@@ -86,21 +92,131 @@
 
     }
 
+    @Resource
+    private SlAuditService slAuditService;
+    @Resource
+    private SlAuditRecordService slAuditRecordService;
     @Override
-    public void addSlVolumeProductionZy(AddaddSlVolumeProductionZyDTO addaddSlVolumeProductionZyDTO) {
-        List<Long> rkId = addaddSlVolumeProductionZyDTO.getRkId();
-        for (Long m:rkId){
-            SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m);
-            SlVolumeProductionZy slVolumeProductionZy=new SlVolumeProductionZy();
-            slVolumeProductionZy.setRkId(m);
-            slVolumeProductionZy.setZyglId(addaddSlVolumeProductionZyDTO.getZygl_id());
-            slVolumeProductionZy.setState(1);
-            slVolumeProductionZy.setMaterialsId(slVolumeProductionRk.getMaterialsId());
-            slVolumeProductionZy.setZyglId(addaddSlVolumeProductionZyDTO.getZygl_id());
-            this.save(slVolumeProductionZy);
+    public void addSlVolumeProductionZy(ADDZYDTO addaddSlVolumeProductionZyDTO) {
+        if (addaddSlVolumeProductionZyDTO.getId()==null){
+            // 新增转移管理
+                Long userid = SecurityUtils.getUserId();
+                SlVolumeProductionZygl slVolumeProductionZygl=new SlVolumeProductionZygl();
+                slVolumeProductionZygl.setAttachmentUrl(addaddSlVolumeProductionZyDTO.getAttachmentUrl());
+                slVolumeProductionZygl.setAuthorizationUrl(addaddSlVolumeProductionZyDTO.getAuthorization());
+                slVolumeProductionZygl.setSource(addaddSlVolumeProductionZyDTO.getSource());
+                slVolumeProductionZygl.setManagementId(addaddSlVolumeProductionZyDTO.getManagementId());
+                slVolumeProductionZygl.setBmanagementId(addaddSlVolumeProductionZyDTO.getBmanagementId());
+                slVolumeProductionZygl.setSysId(userid);
+                slVolumeProductionZygl.setStartiTime(new Date());
+                slVolumeProductionZygl.setAuditStatus(1);
+                slVolumeProductionZygl.setPresentState(1);
+            slVolumeProductionZyglMapper.insert(slVolumeProductionZygl);
+            addaddSlVolumeProductionZyDTO.setId(slVolumeProductionZygl.getId());
+
+            // 新增
+            List<AddZYIdsDTO> rkId = addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS();
+            for (AddZYIdsDTO m:rkId){
+                SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m.getRkId());
+                // todo 目前还不知道转移管理存不存供应商id
+//            Long volumeProductionRkglId = slVolumeProductionRk.getVolumeProductionRkglId();
+//            SlVolumeProductionRkgl slVolumeProductionRkgl = slVolumeProductionRkglMapper.selectById(volumeProductionRkglId);
+                SlVolumeProductionZy slVolumeProductionZy=new SlVolumeProductionZy();
+                slVolumeProductionZy.setRkId(m.getRkId());
+                slVolumeProductionZy.setZyglId(slVolumeProductionZygl.getId());
+                slVolumeProductionZy.setState(1);
+                slVolumeProductionZy.setMaterialsId(slVolumeProductionRk.getMaterialsId());
+                slVolumeProductionZy.setZyNum(m.getZyNum());
+                slVolumeProductionZy.setCreateTime(new Date());
+                slVolumeProductionZy.setStoreManagementNumber(m.getStoreManagementNumber());
+                slVolumeProductionZy.setShelfId(m.getShelfId());
+                slVolumeProductionZy.setRkId(m.getRkId());
+//            slVolumeProductionZy.setSupplierId(slVolumeProductionRkgl.getSupplierId());
+                this.save(slVolumeProductionZy);
+            }
+        }else{
+            // 修改
+            SlVolumeProductionZygl byId = slVolumeProductionZyglMapper.selectById(addaddSlVolumeProductionZyDTO.getId());
+            if (addaddSlVolumeProductionZyDTO.getSource()!=null){
+                byId.setSource(addaddSlVolumeProductionZyDTO.getSource());
+            }
+            if (addaddSlVolumeProductionZyDTO.getAttachmentUrl()!=null){
+                byId.setAttachmentUrl(addaddSlVolumeProductionZyDTO.getAttachmentUrl());
+            }
+            if (addaddSlVolumeProductionZyDTO.getAuthorization()!=null){
+                byId.setAuthorizationUrl(addaddSlVolumeProductionZyDTO.getAuthorization());
+            }
+            slVolumeProductionZyglMapper.updateById(byId);
+            for (AddZYIdsDTO z:addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS()){
+                QueryWrapper<SlVolumeProductionZy> slVolumeProductionZyQueryWrapper = new QueryWrapper<>();
+                slVolumeProductionZyQueryWrapper.eq("zygl_id",addaddSlVolumeProductionZyDTO.getId());
+                slVolumeProductionZyQueryWrapper.eq("rk_id",z.getRkId());
+                SlVolumeProductionZy one = this.getOne(slVolumeProductionZyQueryWrapper);
+                if (one!=null){
+                    one.setZyNum(z.getZyNum());
+
+                }
+                this.updateById(one);
+            }
+        }
+        // 添加/修改审核记录
+        LambdaQueryWrapper< SlAudit> wrapper= Wrappers.lambdaQuery();
+        if (addaddSlVolumeProductionZyDTO.getId()!=null){
+            wrapper.eq(SlAudit::getRkId,addaddSlVolumeProductionZyDTO.getId());
+        }
+        wrapper.eq(SlAudit::getType,3);
+        wrapper.eq( SlAudit::getDelFlag,0);
+        wrapper.orderByDesc(SlAudit::getCreateTime);
+        SlAudit page1 = slAuditService.getOne(wrapper);
+        if (page1!=null){
+            LambdaQueryWrapper<SlAuditRecord> wrapper1= Wrappers.lambdaQuery();
+            wrapper1.eq(SlAuditRecord::getAuditId,page1.getId());
+            List<SlAuditRecord> slAuditRecords = slAuditRecordService.list(wrapper1);
+            for (SlAuditRecord lAuditRecord:slAuditRecords){
+                slAuditRecordService.removeById(lAuditRecord.getId());
+            }
+            slAuditService.removeById(page1);
+        }
+        SlAudit slAudit=new SlAudit();
+        slAudit.setType(3);
+        slAudit.setState(1);
+        slAudit.setCreateTime(new Date());
+        slAudit.setRkId(addaddSlVolumeProductionZyDTO.getId());
+        if (slAudit.getType()==3){
+            SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(addaddSlVolumeProductionZyDTO.getId());
+            slAudit.setSysId(slVolumeProductionZygl.getSysId());
+            slAudit.setManagementId(slVolumeProductionZygl.getManagementId());
+            slAudit.setZymanagementId(slVolumeProductionZygl.getBmanagementId());
+            SlStoreManagement byId = slStoreManagementService.getById(slVolumeProductionZygl.getManagementId());
+            slAudit.setShenhId(byId.getAdministratorId());
+            slAuditService.save(slAudit);
+            SlAuditRecord slAuditRecord=new SlAuditRecord();
+            slAuditRecord.setAuditId(slAudit.getId());
+            slAuditRecord.setShenhId(byId.getAdministratorId());
+            slAuditRecord.setType(1);
+            slAuditRecord.setState(1);
+            slAuditRecord.setCreateTime(new Date());
+            slAuditRecordService.save(slAuditRecord);
+
+            SlAuditRecord slAuditRecord1=new SlAuditRecord();
+            slAuditRecord1.setAuditId(slAudit.getId());
+            slAuditRecord1.setShenhId(byId.getCompetentId());
+            slAuditRecord1.setType(2);
+            slAuditRecord1.setState(1);
+            slAuditRecord1.setCreateTime(new Date());
+            slAuditRecordService.save(slAuditRecord1);
+
+            SlAuditRecord slAuditRecord2=new SlAuditRecord();
+            slAuditRecord2.setAuditId(slAudit.getId());
+            slAuditRecord2.setShenhId(byId.getDirectorId());
+            slAuditRecord2.setType(3);
+            slAuditRecord2.setState(1);
+            slAuditRecord2.setCreateTime(new Date());
+            slAuditRecordService.save(slAuditRecord2);
         }
     }
-
+    @Resource
+    private SlStoreManagementService slStoreManagementService;
     @Override
     public void updSlVolumeProductionZy(List<UpdaddSlVolumeProductionZyDTO> updaddSlVolumeProductionZyDTO) {
         for (UpdaddSlVolumeProductionZyDTO z:updaddSlVolumeProductionZyDTO){
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyglServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyglServiceImpl.java
index b27f77c..b01513e 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyglServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyglServiceImpl.java
@@ -1,12 +1,14 @@
 package com.ruoyi.management.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.management.domain.*;
+import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyQuery;
 import com.ruoyi.management.domain.dto.SlVolumeProductionZyDTO;
 import com.ruoyi.management.domain.dto.SlVolumeProductionZyQuery;
 import com.ruoyi.management.domain.vo.*;
@@ -68,8 +70,13 @@
                 .collect(Collectors.toSet());
 
         LambdaQueryWrapper< SlVolumeProductionZygl> wrapper1= Wrappers.lambdaQuery();
-        wrapper1.eq(SlVolumeProductionZygl::getPresentState,slVolumeProductionZyQuery.getPresentState());
-        wrapper1.eq(SlVolumeProductionZygl::getAuditStatus,slVolumeProductionZyQuery.getAuditStatus());
+        if (slVolumeProductionZyQuery.getPresentState()!=null){
+            wrapper1.eq(SlVolumeProductionZygl::getPresentState,slVolumeProductionZyQuery.getPresentState());
+        }
+        if (slVolumeProductionZyQuery.getAuditStatus()!=null){
+            wrapper1.eq(SlVolumeProductionZygl::getAuditStatus,slVolumeProductionZyQuery.getAuditStatus());
+
+        }
         if (goodsSkuIdList.size()>0){
             wrapper1.in(SlVolumeProductionZygl::getSysId,goodsSkuIdList);
         }
@@ -87,15 +94,15 @@
             list.setStoreManagementName(slStoreManagement.getStoreManagementName());
 
             SlStoreManagement bslStoreManagement = slStoreManagementMapper.selectById(list.getBmanagementId());
-            list.setStoreManagementName(bslStoreManagement.getStoreManagementName());
+            list.setBstoreManagementName(bslStoreManagement.getStoreManagementName());
         }
         return SlGoodsShelfDTO;
     }
 
     @Override
-    public void addsVolumeProductionzZygl(SlVolumeProductionZyDTO slVolumeProductionZyDTO) {
+    public String addsVolumeProductionzZygl(SlVolumeProductionZyDTO slVolumeProductionZyDTO) {
                 Long userid = SecurityUtils.getUserId();
-                if (slVolumeProductionZyDTO.getId()!=null){
+                if (slVolumeProductionZyDTO.getId()==null){
                     SlVolumeProductionZygl slVolumeProductionZygl=new SlVolumeProductionZygl();
                     slVolumeProductionZygl.setAttachmentUrl(slVolumeProductionZyDTO.getAttachmentUrl());
                     slVolumeProductionZygl.setAuthorizationUrl(slVolumeProductionZyDTO.getAuthorization());
@@ -106,6 +113,8 @@
                     slVolumeProductionZygl.setStartiTime(new Date());
                     slVolumeProductionZygl.setAuditStatus(1);
                     slVolumeProductionZygl.setPresentState(1);
+                    this.save(slVolumeProductionZygl);
+                    return slVolumeProductionZygl.getId().toString();
                 }else {
                     SlVolumeProductionZygl byId = this.getById(slVolumeProductionZyDTO.getId());
                     if (slVolumeProductionZyDTO.getSource()!=null){
@@ -118,12 +127,14 @@
                         byId.setAuthorizationUrl(slVolumeProductionZyDTO.getAuthorization());
                     }
                     this.updateById(byId);
+                    return slVolumeProductionZyDTO.getId().toString();
                 }
+
     }
 
     @Override
-    public VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(Long id) {
-        SlVolumeProductionZygl byId = this.getById(id);
+    public VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) {
+        SlVolumeProductionZygl byId = this.getById(managementimgVolumeProductionZyQuery.getVolumeProductionzyglId());
         VolumeProductionZyglInfoVO v= BeanUtils.copyBean(byId, VolumeProductionZyglInfoVO.class);
         SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId());
         v.setStoreManagementName(slStoreManagement.getStoreManagementName());
@@ -132,6 +143,75 @@
         SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData();
         v.setSysName(data1.getNickName());
         v.setSysPhone(data1.getPhonenumber());
+        // 查询楼层数据
+        SlStoreManagement slStoreManagement1 = slStoreManagementMapper.selectById(byId.getManagementId());
+        List<String> number = new ArrayList<>();
+        for (Integer i = 1; i <= slStoreManagement1.getStoreManagementNumber(); i++) {
+            switch (i){
+                case 1:
+                    number.add("一层");
+                    break;
+                case 2:
+                    number.add("二层");
+                    break;
+                case 3:
+                    number.add("三层");
+                    break;
+            }
+        }
+        v.setNumber(number);
+
+        QueryWrapper<SlGoodsShelf> eq = new QueryWrapper<SlGoodsShelf>()
+                .eq("del_flag", "0")
+                .eq("store_management_id", byId.getManagementId())
+                .eq("store_management_number",managementimgVolumeProductionZyQuery.getStoreManagementNumber());
+        List<SlGoodsShelf> slGoodsShelves = slGoodsShelfMapper.selectList(eq);
+        v.setGoodsShelfList(slGoodsShelves);
+        // 查询物资列表
+        LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery();
+        wrapper2.eq(SlVolumeProductionRk::getManagementId,byId.getBmanagementId());
+        if (managementimgVolumeProductionZyQuery.getShelfId() == null){
+            managementimgVolumeProductionZyQuery.setShelfId(slGoodsShelves.get(0).getId());
+        }
+        if (managementimgVolumeProductionZyQuery.getStoreManagementNumber()==null){
+            wrapper2.eq(SlVolumeProductionRk::getStoreManagementNumber,1);
+        }
+        wrapper2.eq(SlVolumeProductionRk::getShelfId,managementimgVolumeProductionZyQuery.getShelfId());
+        wrapper2.eq( SlVolumeProductionRk::getDelFlag,0);
+        wrapper2.orderByDesc(SlVolumeProductionRk::getCreateTime);
+        List<SlVolumeProductionRk> page1 = slVolumeProductionRkMapper.selectList(wrapper2);
+
+        Set<Long> goodsSkuIdList = null;
+        goodsSkuIdList = page1.stream().map(SlVolumeProductionRk::getId)
+                .collect(Collectors.toSet());
+        Page<SlVolumeProductionZy> page = new Page<>(managementimgVolumeProductionZyQuery.getPageCurr(), managementimgVolumeProductionZyQuery.getPageSize());
+        LambdaQueryWrapper< SlVolumeProductionZy> wrapper1= Wrappers.lambdaQuery();
+        wrapper1.eq(SlVolumeProductionZy::getZyglId,managementimgVolumeProductionZyQuery.getVolumeProductionzyglId());
+        if (goodsSkuIdList.size()>0&&goodsSkuIdList!=null){
+            wrapper1.in(SlVolumeProductionZy::getScrkId,goodsSkuIdList);
+        }
+        wrapper1.eq( SlVolumeProductionZy::getDelFlag,0);
+        wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime);
+        Page<SlVolumeProductionZy> page2 = slVolumeProductionZyMapper.selectPage(page, wrapper1);
+        PageDTO<com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO> SlGoodsShelfDTO = PageDTO.of(page2, com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO.class);
+        List<com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO> list2 = SlGoodsShelfDTO.getList();
+        for(com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO list:list2) {
+            SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getRkId());
+            list.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber());
+            list.setRkNumber(slVolumeProductionRk.getRkNumber());
+            list.setRepertoryZhai(slVolumeProductionRk.getRepertoryZhai());
+            SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
+            list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName());
+            list.setIsConsume(slGoodsMaterials.getIsConsume());
+            SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(slVolumeProductionRk.getShelfId());
+            list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName());
+            if(list.getScrkId()!=null){
+                SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(list.getScrkId());
+                list.setStoreManagementNumber(slVolumeProductionRk1.getStoreManagementNumber());
+                list.setRkNumber(slVolumeProductionRk1.getRkNumber());
+            }
+        }
+        v.setList(SlGoodsShelfDTO);
 
         return v;
     }
@@ -217,21 +297,20 @@
         wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime);
         List<SlVolumeProductionZy> page2 = slVolumeProductionZyMapper.selectList(wrapper1);
         for (SlVolumeProductionZy zy:page2){
-            SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(zy.getRkId());
             SlVolumeProductionRk slVolumeProductionRk=new SlVolumeProductionRk();
-            slVolumeProductionRk.setMaterialsId(slVolumeProductionRk1.getMaterialsId());
-            slVolumeProductionRk.setStoreManagementNumber(slVolumeProductionRk1.getStoreManagementNumber());
+            slVolumeProductionRk.setMaterialsId(zy.getMaterialsId());
+            slVolumeProductionRk.setStoreManagementNumber(zy.getStoreManagementNumber());
             slVolumeProductionRk.setManagementId(byId.getBmanagementId());
             slVolumeProductionRk.setRkNumber("CD-"+new Date().getTime());
             slVolumeProductionRk.setRkNum(Long.valueOf(zy.getZyNum()));
-            slVolumeProductionRk.setShelfId(slVolumeProductionRk1.getShelfId());
+            slVolumeProductionRk.setShelfId(zy.getShelfId());
             slVolumeProductionRk.setRepertoryZhai(Long.valueOf(zy.getZyNum()));
             slVolumeProductionRk.setCreateTime(new Date());
             slVolumeProductionRkMapper.insert(slVolumeProductionRk);
             zy.setScrkId(slVolumeProductionRk.getId());
-
+            slVolumeProductionZyMapper.updateById(zy);
             LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery();
-            wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,slVolumeProductionRk1.getMaterialsId());
+            wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,zy.getMaterialsId());
             wrapper2.eq(ManagementGoodsMaterials::getManagementId,byId.getBmanagementId());
             wrapper2.eq(ManagementGoodsMaterials::getDelFlag, 0);
             ManagementGoodsMaterials managementGoodsMaterials = managementGoodsMaterialsMapper.selectOne(wrapper2);
@@ -246,14 +325,12 @@
             }else{
                 ManagementGoodsMaterials managementGoodsMaterials1=new ManagementGoodsMaterials();
                 managementGoodsMaterials1.setManagementId(byId.getBmanagementId());
-                managementGoodsMaterials1.setGoodsMaterialsId(slVolumeProductionRk1.getMaterialsId());
+                managementGoodsMaterials1.setGoodsMaterialsId(zy.getMaterialsId());
                 managementGoodsMaterials1.setRepertoryZhai(Long.valueOf(zy.getZyNum()));
                 managementGoodsMaterials1.setRepertorySum(Long.valueOf(zy.getZyNum()));
                 managementGoodsMaterials1.setCreateTime(new Date());
                 managementGoodsMaterialsMapper.insert(managementGoodsMaterials1);
             }
-
-
         }
     }
 }
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/QRCodeUtil.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/QRCodeUtil.java
new file mode 100644
index 0000000..6849ade
--- /dev/null
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/QRCodeUtil.java
@@ -0,0 +1,50 @@
+package com.ruoyi.management.util;
+
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.MultiFormatWriter;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
+
+import java.awt.image.BufferedImage;
+import java.util.Hashtable;
+
+/**
+ * @author chengst
+ * @date 2019/11/4
+ **/
+public class QRCodeUtil {
+
+    private final static String CHARSET = "utf-8";
+
+    private final static int QRSIZEE = 300;
+
+    // 二维码颜色
+    private static final int BLACK = 0xFF000000;
+    // 二维码颜色
+    private static final int WHITE = 0xFFFFFFFF;
+
+    public static BufferedImage createImage(String content){
+        Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
+        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
+        hints.put(EncodeHintType.CHARACTER_SET, CHARSET);
+        hints.put(EncodeHintType.MARGIN, 1);
+        BitMatrix bitMatrix = null;
+        try {
+            bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRSIZEE, QRSIZEE,hints);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        int width = bitMatrix.getWidth();
+        int height = bitMatrix.getHeight();
+        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+
+        for (int x = 0; x < width; x++) {
+            for (int y = 0; y < height; y++) {
+                image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE);
+            }
+        }
+        return image;
+    }
+}
+
diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/UUIDUtil.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/UUIDUtil.java
new file mode 100644
index 0000000..6e7561a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/UUIDUtil.java
@@ -0,0 +1,101 @@
+package com.ruoyi.management.util;
+
+
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * 定义生成随机码的工具类
+ */
+public class UUIDUtil {
+
+    private int i = 1;
+
+
+    /**
+     * 定义生成原生的UUID随机码
+     * @return
+     */
+    public static String getNativeUUID(){
+        return UUID.randomUUID().toString();
+    }
+
+
+    /**
+     * 生成32位随机码
+     * @return
+     */
+    public static String getRandomCode(){
+        return UUIDUtil.getNativeUUID().replaceAll("-", "");
+    }
+
+
+    /**
+     * 获取给定长度的随机码
+     * @param num
+     * @return
+     * @throws Exception
+     */
+    public static String getRandomCode(Integer num) throws Exception{
+        String str = null;
+        if(0 < num){
+            if(num % 32 > 0){
+                Integer s = num / 32;
+                Integer l = num % 32;
+                StringBuffer sb = new StringBuffer();
+                for(int i = 0; i < s; i++){
+                    sb.append(UUIDUtil.getRandomCode());
+                }
+                sb.append(UUIDUtil.getRandomCode().substring(0, l));
+                str = sb.toString();
+            }else if(num % 32 == 0){
+                Integer s = num / 32;
+                StringBuffer sb = new StringBuffer();
+                for(int i = 0; i < s; i++){
+                    sb.append(UUIDUtil.getRandomCode());
+                }
+                str = sb.toString();
+            }else{
+                str = UUIDUtil.getRandomCode().substring(0, num);
+            }
+        }else{
+            throw new Exception("参数只能大于0");
+        }
+        return str;
+    }
+
+
+    /**
+     * 获取根据当前时间的字符串数据
+     * @return
+     */
+    public synchronized static String getTimeStr(){
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmssS");
+        return simpleDateFormat.format(new Date());
+    }
+
+
+    /**
+     * @Description: 获取数字随机码
+     * @Author pzb
+     * @Date 2021/8/11 16:52
+     * @Param
+     * @Return
+     * @Exception
+     */
+    public static String getNumberRandom(Integer num){
+        if(null == num){
+            num = 32;
+        }
+        StringBuffer sb = new StringBuffer();
+        for(int i = 0; i < num; i++){
+            sb.append(Double.valueOf(Math.random() * 10).intValue());
+        }
+        return sb.toString();
+    }
+
+
+
+}

--
Gitblit v1.7.1