Browse Source

fix: 箱码幅面添加相关接口

fangxinjian 4 years ago
parent
commit
8f13f2c5bc
22 changed files with 786 additions and 373 deletions
  1. 11 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/FactoryController.java
  2. 31 3
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/QrRepertoryController.java
  3. 0 3
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/QrRepertoryColumn.java
  4. 14 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrBoxCodeFormatSplitMapper.java
  5. 11 10
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrRepertoryColumnMapper.java
  6. 24 14
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrRepertoryMapper.java
  7. 28 31
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QrRepertoryColumnVO.java
  8. 33 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QrRepertorySelectDetailVO.java
  9. 24 24
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QrRepertoryVO.java
  10. 20 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/ListQrRepertorySelectDetailReq.java
  11. 12 7
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/SaveBoxCodeFormatReq.java
  12. 41 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListPageMaterialsRes.java
  13. 55 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListQrRepertorySelectDetailRes.java
  14. 44 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListQrRepertorySelectRes.java
  15. 17 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/FactoryService.java
  16. 53 30
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/QrRepertoryService.java
  17. 30 9
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/FactoryServiceImpl.java
  18. 43 4
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrBoxCodeFormatImpl.java
  19. 237 202
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrRepertoryServiceImpl.java
  20. 18 10
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrBoxCodeFormatSplitMapper.xml
  21. 7 6
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrRepertoryColumnMapper.xml
  22. 33 18
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrRepertoryMapper.xml

+ 11 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/FactoryController.java

@@ -114,7 +114,7 @@ public class FactoryController {
         return BaseResponse.create(result);
     }
 
-    @ApiOperation("包材厂下拉框")
+    @ApiOperation("包材厂下拉框数据权限隔离")
     @GetMapping("listPackageFactorySelect")
     public BaseResponse<ListPackageFactorySelectRes> listPackageFactorySelect() {
         //包材厂下拉框
@@ -132,6 +132,16 @@ public class FactoryController {
         return BaseResponse.create(result);
     }
 
+
+    @ApiOperation("包材厂下拉框")
+    @GetMapping("listPageMaterials")
+    public BaseResponse<ListPageMaterialsRes> listPageMaterials() {
+        //包材厂下拉框
+        ListPageMaterialsRes result = factoryService.listPageMaterials();
+        //包装出参
+        return BaseResponse.create(result);
+    }
+
 }
 
 

+ 31 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/QrRepertoryController.java

@@ -1,8 +1,16 @@
 package com.abi.qms.platform.controller.console;
 
-import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.req.DeleteQrRepertoryReq;
+import com.abi.qms.platform.dto.req.DisableQrRepertoryReq;
+import com.abi.qms.platform.dto.req.EnableQrRepertoryReq;
+import com.abi.qms.platform.dto.req.GetQrRepertoryDetailReq;
+import com.abi.qms.platform.dto.req.ListQrRepertoryReq;
+import com.abi.qms.platform.dto.req.ListQrRepertorySelectDetailReq;
+import com.abi.qms.platform.dto.req.SaveQrRepertoryReq;
 import com.abi.qms.platform.dto.res.GetQrRepertoryDetailRes;
 import com.abi.qms.platform.dto.res.ListQrRepertoryRes;
+import com.abi.qms.platform.dto.res.ListQrRepertorySelectRes;
+import com.abi.qms.platform.dto.res.ListQrRepertorySelectDetailRes;
 import com.abi.qms.platform.service.QrRepertoryService;
 import com.abi.task.common.api.base.BaseResponse;
 import io.swagger.annotations.Api;
@@ -10,7 +18,11 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+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;
 
 /**
  * 码库 Controller
@@ -63,9 +75,25 @@ public class QrRepertoryController {
 
     @ApiOperation("删除码库")
     @PostMapping("/deleteQrRepertory")
-    public BaseResponse deleteQrRepertory(@Validated @RequestBody DeleteQrRepertoryReq deleteQrRepertoryReq) {
+    public BaseResponse deleteQrRepertory(@Validated DeleteQrRepertoryReq deleteQrRepertoryReq) {
         qrRepertoryService.deleteQrRepertory(deleteQrRepertoryReq);
         return BaseResponse.create();
     }
 
+    @ApiOperation("查询码库下拉列表")
+    @GetMapping("/listQrRepertorySelect")
+    public BaseResponse<ListQrRepertorySelectRes> listQrRepertorySelectRes() {
+
+        ListQrRepertorySelectRes res = qrRepertoryService.listQrRepertorySelectRes();
+        return BaseResponse.create(res);
+    }
+
+    @ApiOperation("查询码库下拉详情")
+    @GetMapping("/listQrRepertorySelectDetail")
+    public BaseResponse<ListQrRepertorySelectDetailRes> listQrRepertorySelectDetail(@Validated ListQrRepertorySelectDetailReq req) {
+
+        ListQrRepertorySelectDetailRes res = qrRepertoryService.listQrRepertorySelectDetail(req);
+        return BaseResponse.create(res);
+    }
+
 }

+ 0 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/QrRepertoryColumn.java

@@ -37,9 +37,6 @@ public class QrRepertoryColumn {
     @ApiModelProperty("别名")
     private String alias;
 
-    @ApiModelProperty("拆分数量")
-    private Integer splitNum;
-
     @ApiModelProperty("url格式类型 0-非URL 1-系统URL 2-部门URL")
     private Integer urlType;
 

+ 14 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrBoxCodeFormatSplitMapper.java

@@ -2,6 +2,7 @@ package com.abi.qms.platform.dao.mapper;
 
 import com.abi.qms.platform.dao.entity.QrBoxCodeFormatSplit;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,4 +13,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface QrBoxCodeFormatSplitMapper extends BaseMapper<QrBoxCodeFormatSplit> {
 
+    /**
+     * 根据ID删除拆分数量数据
+     *
+     * @param id
+     */
+    void deleteBySplitId(@Param("id") Long id);
+
+    /**
+     * 根据箱码幅面ID删除拆份数量数据
+     *
+     * @param boxCodeFormatId
+     */
+    void deleteByBoxCodeFormatId(@Param("boxCodeFormatId") Long boxCodeFormatId);
 }

+ 11 - 10
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrRepertoryColumnMapper.java

@@ -2,8 +2,8 @@ package com.abi.qms.platform.dao.mapper;
 
 import com.abi.qms.platform.dao.entity.QrRepertoryColumn;
 import com.abi.qms.platform.dto.req.BatchInsertQrRepertoryColumnReq;
-import com.abi.qms.platform.dto.req.SaveQrRepertoryReq;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 码库的列信息 Mapper接口
@@ -13,14 +13,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface QrRepertoryColumnMapper extends BaseMapper<QrRepertoryColumn> {
 
-	/**
-	 * 批量插入码库的列
-	 */
-	int batchInsert(BatchInsertQrRepertoryColumnReq req);
+    /**
+     * 批量插入码库的列
+     */
+    int batchInsert(@Param("req") BatchInsertQrRepertoryColumnReq req);
 
-	/**
-	 * 逻辑删除码库的列
-	 * @param
-	 */
-	void deleteByQrRepertoryId(Long qrRepertory);
+    /**
+     * 逻辑删除码库的列
+     *
+     * @param
+     */
+    void deleteByQrRepertoryId(@Param("qrRepertoryId") Long qrRepertoryId);
 }

+ 24 - 14
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrRepertoryMapper.java

@@ -1,6 +1,7 @@
 package com.abi.qms.platform.dao.mapper;
 
 import com.abi.qms.platform.dao.entity.QrRepertory;
+import com.abi.qms.platform.dao.vo.result.QrRepertorySelectDetailVO;
 import com.abi.qms.platform.dao.vo.result.QrRepertoryVO;
 import com.abi.qms.platform.dto.req.ListQrRepertoryReq;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -17,20 +18,29 @@ import java.util.List;
  */
 public interface QrRepertoryMapper extends BaseMapper<QrRepertory> {
 
-	/**
-	 * 分页查询码库信息
-	 */
-	IPage<QrRepertoryVO> listQrRepertory(IPage page, @Param("param")ListQrRepertoryReq param);
+    /**
+     * 分页查询码库信息
+     */
+    IPage<QrRepertoryVO> listQrRepertory(IPage page, @Param("param") ListQrRepertoryReq param);
 
-	/**
-	 * 查询码库详细信息
-	 */
-	QrRepertoryVO selectQrRepertoryDetailById(Long id);
+    /**
+     * 查询码库详细信息
+     */
+    QrRepertoryVO selectQrRepertoryDetailById(@Param("id") Long id);
 
-	/**
-	 * 根据码格式id查询与码库关联的,未禁用的码库
-	 * @param qrFormatId
-	 * @return
-	 */
-	List<String> selectNotDisabledQrRepertory(Long qrFormatId);
+    /**
+     * 根据码格式id查询与码库关联的,未禁用的码库
+     *
+     * @param qrFormatId
+     * @return
+     */
+    List<String> selectNotDisabledQrRepertory(@Param("qrFormatId") Long qrFormatId);
+
+    /**
+     * 码库下拉详情
+     *
+     * @param id
+     * @return
+     */
+    List<QrRepertorySelectDetailVO> listQrRepertorySelectDetail(@Param("id") String id);
 }

+ 28 - 31
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QrRepertoryColumnVO.java

@@ -15,49 +15,46 @@ import java.time.LocalDateTime;
 @Data
 @ApiModel
 public class QrRepertoryColumnVO {
-	@ApiModelProperty("码库列id")
-	private Long id;
+    @ApiModelProperty("码库列id")
+    private Long id;
 
-	@ApiModelProperty("码库id")
-	private Long qrRepertoryId;
+    @ApiModelProperty("码库id")
+    private Long qrRepertoryId;
 
-	@ApiModelProperty("码格式id")
-	private Long qrFormatId;
+    @ApiModelProperty("码格式id")
+    private Long qrFormatId;
 
-	@ApiModelProperty("码格式名称")
-	private String qrFormatName;
+    @ApiModelProperty("码格式名称")
+    private String qrFormatName;
 
-	@ApiModelProperty("码格式")
-	private QrFormatVO qrFormatVO;
+    @ApiModelProperty("码格式")
+    private QrFormatVO qrFormatVO;
 
-	@ApiModelProperty("克隆列 -1:未克隆 >=0:克隆了哪列,下标从0开始")
-	private Integer cloneColumn;
+    @ApiModelProperty("克隆列 -1:未克隆 >=0:克隆了哪列,下标从0开始")
+    private Integer cloneColumn;
 
-	@ApiModelProperty("排序号")
-	private Integer sortNumber;
+    @ApiModelProperty("排序号")
+    private Integer sortNumber;
 
-	@ApiModelProperty("别名")
-	private String alias;
+    @ApiModelProperty("别名")
+    private String alias;
 
-	@ApiModelProperty("拆分数量")
-	private Integer splitNum;
+    @ApiModelProperty("url格式类型 0-非URL 1-系统URL 2-部门URL")
+    private Integer urlType;
 
-	@ApiModelProperty("url格式类型 0-非URL 1-系统URL 2-部门URL")
-	private Integer urlType;
+    @ApiModelProperty("备注")
+    private String remark;
 
-	@ApiModelProperty("备注")
-	private String remark;
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
 
-	@ApiModelProperty(value = "创建时间")
-	private LocalDateTime createTime;
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
 
-	@ApiModelProperty(value = "创建人id")
-	private Long createBy;
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateTime;
 
-	@ApiModelProperty(value = "修改时间")
-	private LocalDateTime updateTime;
-
-	@ApiModelProperty(value = "修改人id")
-	private Long updateBy;
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
 
 }

+ 33 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QrRepertorySelectDetailVO.java

@@ -0,0 +1,33 @@
+package com.abi.qms.platform.dao.vo.result;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/05/25 14:29
+ * @description:
+ */
+@Data
+@ApiModel
+public class QrRepertorySelectDetailVO {
+
+    @ApiModelProperty("码库id")
+    private Long repertoryId;
+
+    @ApiModelProperty("码库列ID")
+    private Long repertoryColumnId;
+
+    @ApiModelProperty("列数")
+    private Integer sortNumber;
+
+    @ApiModelProperty("别名")
+    private String alias;
+
+    @ApiModelProperty("拆分数量")
+    private Integer splitNum;
+
+    @ApiModelProperty("拆分数量id")
+    private Long splitId;
+}

+ 24 - 24
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QrRepertoryVO.java

@@ -17,40 +17,40 @@ import java.util.List;
 @ApiModel
 public class QrRepertoryVO {
 
-	@ApiModelProperty("码库id")
-	private Long id;
+    @ApiModelProperty("码库id")
+    private Long id;
 
-	@ApiModelProperty("码库名称")
-	private String name;
+    @ApiModelProperty("码库名称")
+    private String name;
 
-	@ApiModelProperty("码库类型 1-系统生成 2-文本导入 3-FTP接入")
-	private Integer type;
+    @ApiModelProperty("码库类型 1-系统生成 2-文本导入 3-FTP接入")
+    private Integer type;
 
-	@ApiModelProperty("码库状态 10-待生成 11-自动生成 20-待导入 21-已导入 40-停用")
-	private Integer status;
+    @ApiModelProperty("码库状态 10-待生成 11-自动生成 20-待导入 21-已导入 40-停用")
+    private Integer status;
 
-	@ApiModelProperty("码数据组成")
-	private String dataComposition;
+    @ApiModelProperty("码数据组成")
+    private String dataComposition;
 
-	@ApiModelProperty("码库的列")
-	private List<QrRepertoryColumnVO> qrRepertoryColumnList;
+    @ApiModelProperty("码库的列")
+    private List<QrRepertoryColumnVO> qrRepertoryColumnList;
 
-	@ApiModelProperty("码包")
-	private List<QrPackageVO> qrPackageList;
+    @ApiModelProperty("码包")
+    private List<QrPackageVO> qrPackageList;
 
-	@ApiModelProperty(value = "创建时间")
-	private LocalDateTime createTime;
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
 
-	@ApiModelProperty(value = "创建人id")
-	private Long createBy;
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
 
-	@ApiModelProperty(value = "修改时间")
-	private LocalDateTime updateTime;
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateTime;
 
-	@ApiModelProperty(value = "修改人id")
-	private Long updateBy;
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
 
-	@ApiModelProperty(value = "修改人名称")
-	private String updateByName;
+    @ApiModelProperty(value = "修改人名称")
+    private String updateByName;
 
 }

+ 20 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/ListQrRepertorySelectDetailReq.java

@@ -0,0 +1,20 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/05/25 14:25
+ * @description: 码库下拉列表详情入参
+ */
+@Data
+@ApiModel
+public class ListQrRepertorySelectDetailReq implements Serializable {
+
+    @ApiModelProperty("码库id")
+    private String id;
+}

+ 12 - 7
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/SaveBoxCodeFormatReq.java

@@ -2,7 +2,6 @@ package com.abi.qms.platform.dto.req;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -48,23 +47,29 @@ public class SaveBoxCodeFormatReq implements Serializable {
     @ApiModelProperty(value = "备注")
     private String remark;
 
-    @Schema(name = "拆分数量列表")
+    @ApiModelProperty(value = "拆分数量列表")
     private List<SplitBean> splitBeanList;
 
     /**
-    * 拆分数量 BEAN
-    */
+     * 拆分数量 BEAN
+     */
     @Data
     @NoArgsConstructor
     @AllArgsConstructor
     @ToString
-    @Schema(name = "SaveBoxCodeFormatReq_SplitBean")
+    @ApiModel(value = "SaveBoxCodeFormatReq_SplitBean")
     public static class SplitBean implements Serializable {
 
-        @Schema(name = "码库列id")
+        @ApiModelProperty("拆分数量id")
+        private Long Id;
+
+        @ApiModelProperty("码库id")
+        private Long repertoryId;
+
+        @ApiModelProperty(value = "码库列id")
         private Long qrRepertoryColumnId;
 
-        @Schema(name = "拆分数量")
+        @ApiModelProperty(value = "拆分数量")
         private Integer splitNum;
 
     }

+ 41 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListPageMaterialsRes.java

@@ -0,0 +1,41 @@
+package com.abi.qms.platform.dto.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/05/25 11:26
+ * @description: 包材厂数据出参
+ */
+@Data
+@ApiModel
+public class ListPageMaterialsRes implements Serializable {
+
+    @ApiModelProperty("包材厂列表")
+    private List<FactoryBean> factoryBeanList;
+
+    /**
+     * 包材厂bean
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "ListPageMaterialsRes_FactoryBean")
+    public static class FactoryBean implements Serializable {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "供应商名称")
+        private String factoryName;
+    }
+}

+ 55 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListQrRepertorySelectDetailRes.java

@@ -0,0 +1,55 @@
+package com.abi.qms.platform.dto.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/05/25 14:04
+ * @description: 码库下拉列表详情信息
+ */
+@Data
+@ApiModel
+public class ListQrRepertorySelectDetailRes implements Serializable {
+
+    @ApiModelProperty("码库下拉列表详情")
+    private List<QrRepertorySelectDetailBean> qrRepertorySelectDetailBeanList;
+
+    /**
+     * 码库下拉详情bean
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "listQrRepertorySelectDetailRes_QrRepertorySelectDetailBean")
+    public static class QrRepertorySelectDetailBean implements Serializable {
+
+        @ApiModelProperty("码库id")
+        private Long repertoryId;
+
+        @ApiModelProperty("码库列ID")
+        private Long repertoryColumnId;
+
+        @ApiModelProperty("列数")
+        private Integer sortNumber;
+
+        @ApiModelProperty("别名")
+        private String alias;
+
+        @ApiModelProperty("拆分数量")
+        private Integer splitNum;
+
+        @ApiModelProperty("拆分数量id")
+        private Long splitId;
+
+
+    }
+}

+ 44 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListQrRepertorySelectRes.java

@@ -0,0 +1,44 @@
+package com.abi.qms.platform.dto.res;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/05/25 13:49
+ * @description: 码库下来列表出参
+ */
+@Data
+@ApiModel
+public class ListQrRepertorySelectRes implements Serializable {
+
+    @ApiModelProperty("码库下拉列表")
+    private List<QrRepertoryBean> qrRepertoryBeanList;
+
+    /**
+     * 码库bean
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "ListQrRepertorySelectRes_QrRepertoryBean")
+    public static class QrRepertoryBean implements Serializable {
+
+        @ApiModelProperty("码库id")
+        private Long id;
+
+        @ApiModelProperty("码库名称")
+        private String name;
+
+    }
+}

+ 17 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/FactoryService.java

@@ -6,7 +6,13 @@ import com.abi.qms.platform.dto.req.EnableFactoryReq;
 import com.abi.qms.platform.dto.req.GetFactoryDetailReq;
 import com.abi.qms.platform.dto.req.ListFactoryReq;
 import com.abi.qms.platform.dto.req.SaveFactoryReq;
-import com.abi.qms.platform.dto.res.*;
+import com.abi.qms.platform.dto.res.ExcelImportRes;
+import com.abi.qms.platform.dto.res.GetFactoryDetailRes;
+import com.abi.qms.platform.dto.res.ListBeerFactorySelectRes;
+import com.abi.qms.platform.dto.res.ListFactoryEnableRes;
+import com.abi.qms.platform.dto.res.ListFactoryRes;
+import com.abi.qms.platform.dto.res.ListPackageFactorySelectRes;
+import com.abi.qms.platform.dto.res.ListPageMaterialsRes;
 import com.abi.task.common.excel.preperties.FactoryProperty;
 
 import java.util.List;
@@ -34,19 +40,29 @@ public interface FactoryService {
 
     /**
      * 启用中的供应商列表
+     *
      * @return
      */
     ListFactoryEnableRes listFactoryEnable();
 
     /**
      * 包材厂下拉列表(数据权限隔离)
+     *
      * @return
      */
     ListPackageFactorySelectRes listPackageFactorySelect();
 
     /**
      * 啤酒厂下拉列表
+     *
      * @return
      */
     ListBeerFactorySelectRes listBeerFactorySelect();
+
+    /**
+     * 所有包材厂数据
+     *
+     * @return
+     */
+    ListPageMaterialsRes listPageMaterials();
 }

+ 53 - 30
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/QrRepertoryService.java

@@ -1,8 +1,16 @@
 package com.abi.qms.platform.service;
 
-import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.req.DeleteQrRepertoryReq;
+import com.abi.qms.platform.dto.req.DisableQrRepertoryReq;
+import com.abi.qms.platform.dto.req.EnableQrRepertoryReq;
+import com.abi.qms.platform.dto.req.GetQrRepertoryDetailReq;
+import com.abi.qms.platform.dto.req.ListQrRepertoryReq;
+import com.abi.qms.platform.dto.req.ListQrRepertorySelectDetailReq;
+import com.abi.qms.platform.dto.req.SaveQrRepertoryReq;
 import com.abi.qms.platform.dto.res.GetQrRepertoryDetailRes;
 import com.abi.qms.platform.dto.res.ListQrRepertoryRes;
+import com.abi.qms.platform.dto.res.ListQrRepertorySelectRes;
+import com.abi.qms.platform.dto.res.ListQrRepertorySelectDetailRes;
 
 /**
  * 码库 Service接口
@@ -12,33 +20,48 @@ import com.abi.qms.platform.dto.res.ListQrRepertoryRes;
  */
 public interface QrRepertoryService {
 
-	/**
-	 * 保存码库
-	 */
-	void saveQrRepertory(SaveQrRepertoryReq saveQrRepertoryReq);
-
-	/**
-	 * 码库查询分页
-	 */
-	ListQrRepertoryRes listQrRepertory(ListQrRepertoryReq listQrRepertoryReq);
-
-	/**
-	 * 码库查询详情
-	 */
-	GetQrRepertoryDetailRes getQrRepertoryDetail(GetQrRepertoryDetailReq getQrRepertoryDetailReq);
-
-	/**
-	 * 码库启用
-	 */
-	void enableQrRepertory(EnableQrRepertoryReq enableQrRepertoryReq);
-
-	/**
-	 * 码库禁用
-	 */
-	void disableQrRepertory(DisableQrRepertoryReq disableQrRepertoryReq);
-
-	/**
-	 * 删除码库
-	 */
-	void deleteQrRepertory(DeleteQrRepertoryReq deleteQrRepertoryReq);
+    /**
+     * 保存码库
+     */
+    void saveQrRepertory(SaveQrRepertoryReq saveQrRepertoryReq);
+
+    /**
+     * 码库查询分页
+     */
+    ListQrRepertoryRes listQrRepertory(ListQrRepertoryReq listQrRepertoryReq);
+
+    /**
+     * 码库查询详情
+     */
+    GetQrRepertoryDetailRes getQrRepertoryDetail(GetQrRepertoryDetailReq getQrRepertoryDetailReq);
+
+    /**
+     * 码库启用
+     */
+    void enableQrRepertory(EnableQrRepertoryReq enableQrRepertoryReq);
+
+    /**
+     * 码库禁用
+     */
+    void disableQrRepertory(DisableQrRepertoryReq disableQrRepertoryReq);
+
+    /**
+     * 删除码库
+     */
+    void deleteQrRepertory(DeleteQrRepertoryReq deleteQrRepertoryReq);
+
+    /**
+     * 查询码库下拉列表数据
+     *
+     * @return
+     */
+    ListQrRepertorySelectRes listQrRepertorySelectRes();
+
+    /**
+     * 码库下拉详情
+     *
+     * @param req
+     * @return
+     */
+    ListQrRepertorySelectDetailRes listQrRepertorySelectDetail(ListQrRepertorySelectDetailReq req);
 }

+ 30 - 9
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/FactoryServiceImpl.java

@@ -17,7 +17,13 @@ import com.abi.qms.platform.dto.req.EnableFactoryReq;
 import com.abi.qms.platform.dto.req.GetFactoryDetailReq;
 import com.abi.qms.platform.dto.req.ListFactoryReq;
 import com.abi.qms.platform.dto.req.SaveFactoryReq;
-import com.abi.qms.platform.dto.res.*;
+import com.abi.qms.platform.dto.res.ExcelImportRes;
+import com.abi.qms.platform.dto.res.GetFactoryDetailRes;
+import com.abi.qms.platform.dto.res.ListBeerFactorySelectRes;
+import com.abi.qms.platform.dto.res.ListFactoryEnableRes;
+import com.abi.qms.platform.dto.res.ListFactoryRes;
+import com.abi.qms.platform.dto.res.ListPackageFactorySelectRes;
+import com.abi.qms.platform.dto.res.ListPageMaterialsRes;
 import com.abi.qms.platform.infrastructure.util.AssertUtil;
 import com.abi.qms.platform.infrastructure.util.PageUtil;
 import com.abi.qms.platform.infrastructure.util.UserUtil;
@@ -193,24 +199,24 @@ public class FactoryServiceImpl implements FactoryService {
             userQuery.eq("factory_id", id);
             userQuery.eq("is_delete", 0);
             List<UserInfo> userInfos = userInfoMapper.selectList(userQuery);
-            if(CollectionUtil.isNotEmpty(userInfos)){
-                throw  new BusinessException("供应商" + factory.getFactoryName() + "已与用户" + userInfos.get(0).getUserName()+ "绑定,请解绑后再停用。");
+            if (CollectionUtil.isNotEmpty(userInfos)) {
+                throw new BusinessException("供应商" + factory.getFactoryName() + "已与用户" + userInfos.get(0).getUserName() + "绑定,请解绑后再停用。");
             }
             //箱码幅面
             QueryWrapper<QrBoxCodeFormat> boxCodeFormatQuery = new QueryWrapper<>();
             boxCodeFormatQuery.eq("factory_id", id);
             boxCodeFormatQuery.eq("is_delete", 0);
             List<QrBoxCodeFormat> qrBoxCodeFormats = qrBoxCodeFormatMapper.selectList(boxCodeFormatQuery);
-            if(CollectionUtil.isNotEmpty(qrBoxCodeFormats)){
-                throw  new BusinessException("供应商" + factory.getFactoryName() + "已与箱码幅面" + qrBoxCodeFormats.get(0).getName()+ "绑定,请解绑后再停用。");
+            if (CollectionUtil.isNotEmpty(qrBoxCodeFormats)) {
+                throw new BusinessException("供应商" + factory.getFactoryName() + "已与箱码幅面" + qrBoxCodeFormats.get(0).getName() + "绑定,请解绑后再停用。");
             }
             //码包
             QueryWrapper<QrPackage> qrPackageQuery = new QueryWrapper<>();
             qrPackageQuery.eq("factory_id", id);
             qrPackageQuery.eq("is_delete", 0);
             List<QrPackage> qrPackages = qrPackageMapper.selectList(qrPackageQuery);
-            if(CollectionUtil.isNotEmpty(qrPackages)){
-                throw  new BusinessException("供应商" + factory.getFactoryName() + "已与码包" + qrPackages.get(0).getId()+ "绑定,请解绑后再停用。");
+            if (CollectionUtil.isNotEmpty(qrPackages)) {
+                throw new BusinessException("供应商" + factory.getFactoryName() + "已与码包" + qrPackages.get(0).getId() + "绑定,请解绑后再停用。");
             }
 
             //2-修改状态
@@ -282,10 +288,10 @@ public class FactoryServiceImpl implements FactoryService {
         ListPackageFactorySelectRes listPackageFactorySelectRes = new ListPackageFactorySelectRes();
         QueryWrapper<BaseFactory> param = new QueryWrapper<>();
         //数据权限隔离,如果登录账号是包材厂,只能看账号包材厂的数据。否则看全部
-        if(UserUtil.getUser().getFactoryId() != null){
+        if (UserUtil.getUser().getFactoryId() != null) {
             param.eq("id", UserUtil.getUser().getFactoryId());
             listPackageFactorySelectRes.setLoginType(LoginTypeEnum.PACKAGE.getCode());
-        }else{
+        } else {
             listPackageFactorySelectRes.setLoginType(LoginTypeEnum.NOT_PACKAGE.getCode());
         }
         param.eq("factory_type", FactoryTypeEnum.COVER.getCode());
@@ -310,6 +316,21 @@ public class FactoryServiceImpl implements FactoryService {
         return listBeerFactorySelectRes;
     }
 
+    @Override
+    public ListPageMaterialsRes listPageMaterials() {
+
+        ListPageMaterialsRes res = new ListPageMaterialsRes();
+        QueryWrapper<BaseFactory> qw = new QueryWrapper<>();
+        qw.eq("factory_type", FactoryTypeEnum.COVER.getCode());
+        qw.eq("is_delete", 0);
+        qw.eq("valid", 1);
+
+        List<BaseFactory> baseFactoryList = baseFactoryMapper.selectList(qw);
+        List<ListPageMaterialsRes.FactoryBean> beanList = PojoConverterUtils.copyList(baseFactoryList, ListPageMaterialsRes.FactoryBean.class);
+        res.setFactoryBeanList(beanList);
+        return res;
+    }
+
     /**
      * 检查批量导入的内容
      *

+ 43 - 4
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrBoxCodeFormatImpl.java

@@ -1,17 +1,19 @@
 package com.abi.qms.platform.service.impl;
 
 import com.abi.qms.platform.dao.entity.QrBoxCodeFormat;
+import com.abi.qms.platform.dao.entity.QrBoxCodeFormatSplit;
 import com.abi.qms.platform.dao.enums.StateEnum;
 import com.abi.qms.platform.dao.mapper.QrBoxCodeFormatMapper;
+import com.abi.qms.platform.dao.mapper.QrBoxCodeFormatSplitMapper;
 import com.abi.qms.platform.dao.vo.result.QrBoxCodeFormatVO;
-import com.abi.qms.platform.dto.req.QrBoxCodeFormatDetailReq;
 import com.abi.qms.platform.dto.req.DeleteBoxCodeFormatreq;
 import com.abi.qms.platform.dto.req.DisableBoxCodeFormatReq;
 import com.abi.qms.platform.dto.req.EnableBoxCodeFormatReq;
 import com.abi.qms.platform.dto.req.ListBoxCodeFormatReq;
+import com.abi.qms.platform.dto.req.QrBoxCodeFormatDetailReq;
 import com.abi.qms.platform.dto.req.SaveBoxCodeFormatReq;
-import com.abi.qms.platform.dto.res.QrBoxCodeFormatDetailRes;
 import com.abi.qms.platform.dto.res.ListBoxCodeFormatRes;
+import com.abi.qms.platform.dto.res.QrBoxCodeFormatDetailRes;
 import com.abi.qms.platform.infrastructure.util.AssertUtil;
 import com.abi.qms.platform.infrastructure.util.PageUtil;
 import com.abi.qms.platform.infrastructure.util.UserUtil;
@@ -23,6 +25,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -38,7 +41,11 @@ public class QrBoxCodeFormatImpl implements QrBoxCodeFormatService {
     @Autowired
     private QrBoxCodeFormatMapper qrBoxCodeFormatMapper;
 
+    @Autowired
+    private QrBoxCodeFormatSplitMapper qrBoxCodeFormatSplitMapper;
+
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void saveBoxCodeFormat(SaveBoxCodeFormatReq req) {
 
         //1-声明对象
@@ -67,14 +74,44 @@ public class QrBoxCodeFormatImpl implements QrBoxCodeFormatService {
         }
 
         //4-新增or修改 拆分数量列表
+        saveOrUpdateSplit(req, qrBoxCodeFormat.getId());
 
+    }
+
+
+    private void saveOrUpdateSplit(SaveBoxCodeFormatReq req, Long boxCodeFormatId) {
+
+        List<SaveBoxCodeFormatReq.SplitBean> splitBeanList = req.getSplitBeanList();
+        for (SaveBoxCodeFormatReq.SplitBean splitReq : splitBeanList) {
+            //声明对象
+            QrBoxCodeFormatSplit split = null;
+            if (splitReq.getId() != null) {
+                split = qrBoxCodeFormatSplitMapper.selectById(splitReq.getId());
+                AssertUtil.isNull(split, "拆分数量ID不存在");
+            } else {
+                split = new QrBoxCodeFormatSplit();
+            }
+            //组装数据
+            split.setBoxCodeFormatId(boxCodeFormatId);
+            split.setQrRepertoryColumnId(splitReq.getQrRepertoryColumnId());
+            split.setSplitNum(splitReq.getSplitNum());
+            split.setQrRepertoryId(splitReq.getRepertoryId());
+
+            if (splitReq.getId() != null) {
+                //先删除再新增
+                qrBoxCodeFormatSplitMapper.deleteBySplitId(splitReq.getId());
+                qrBoxCodeFormatSplitMapper.insert(split);
+            } else {
+                qrBoxCodeFormatSplitMapper.insert(split);
+            }
+        }
 
     }
 
     @Override
     public ListBoxCodeFormatRes listBoxCodeFormat(ListBoxCodeFormatReq req) {
         //数据权限隔离,如果登录账号是包材厂,只能看账号包材厂的数据。否则看全部
-        if(UserUtil.getUser().getFactoryId() != null){
+        if (UserUtil.getUser().getFactoryId() != null) {
             req.setFactoryId(UserUtil.getUser().getFactoryId());
         }
         //分页查询
@@ -153,13 +190,15 @@ public class QrBoxCodeFormatImpl implements QrBoxCodeFormatService {
         if (qrBoxCodeFormat == null) {
             throw new BusinessException(ErrorCodeEnum.NO_EXISTS_DATA.getCode(), "箱码幅面不存在");
         }
-        if (qrBoxCodeFormat.getState() == StateEnum.ENABLE.getCode()) {
+        if (qrBoxCodeFormat.getState().equals(StateEnum.ENABLE.getCode())) {
             throw new BusinessException("该箱码幅面还在启用中,不能删除。");
         }
 
         //逻辑删除
         qrBoxCodeFormat.setIsDelete(1);
         qrBoxCodeFormatMapper.updateById(qrBoxCodeFormat);
+        //根据箱码幅面ID逻辑删除码库拆分数据
+        qrBoxCodeFormatSplitMapper.deleteByBoxCodeFormatId(req.getId());
     }
 
 

+ 237 - 202
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrRepertoryServiceImpl.java

@@ -7,10 +7,21 @@ import com.abi.qms.platform.dao.enums.QrRepertoryTypeEnum;
 import com.abi.qms.platform.dao.mapper.QrFormatMapper;
 import com.abi.qms.platform.dao.mapper.QrRepertoryColumnMapper;
 import com.abi.qms.platform.dao.mapper.QrRepertoryMapper;
+import com.abi.qms.platform.dao.vo.result.QrRepertorySelectDetailVO;
 import com.abi.qms.platform.dao.vo.result.QrRepertoryVO;
-import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.req.BatchInsertQrRepertoryColumnReq;
+import com.abi.qms.platform.dto.req.DeleteQrRepertoryReq;
+import com.abi.qms.platform.dto.req.DisableQrRepertoryReq;
+import com.abi.qms.platform.dto.req.EnableQrRepertoryReq;
+import com.abi.qms.platform.dto.req.GetQrRepertoryDetailReq;
+import com.abi.qms.platform.dto.req.ListQrRepertoryReq;
+import com.abi.qms.platform.dto.req.ListQrRepertorySelectDetailReq;
+import com.abi.qms.platform.dto.req.SaveQrRepertoryColumnReq;
+import com.abi.qms.platform.dto.req.SaveQrRepertoryReq;
 import com.abi.qms.platform.dto.res.GetQrRepertoryDetailRes;
 import com.abi.qms.platform.dto.res.ListQrRepertoryRes;
+import com.abi.qms.platform.dto.res.ListQrRepertorySelectDetailRes;
+import com.abi.qms.platform.dto.res.ListQrRepertorySelectRes;
 import com.abi.qms.platform.infrastructure.util.AssertUtil;
 import com.abi.qms.platform.infrastructure.util.PageUtil;
 import com.abi.qms.platform.infrastructure.util.UserUtil;
@@ -36,205 +47,229 @@ import java.util.stream.Collectors;
  * @date 2021-04-25
  */
 @Service
-public class QrRepertoryServiceImpl  implements QrRepertoryService {
-
-	@Autowired
-	private QrRepertoryMapper qrRepertoryMapper;
-
-	@Autowired
-	private QrRepertoryColumnMapper qrRepertoryColumnMapper;
-
-	@Autowired
-	private QrFormatMapper qrFormatMapper;
-
-	/**
-	 * 保存码库
-	 */
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void saveQrRepertory(SaveQrRepertoryReq req) {
-		Long qrRepertoryId = req.getId();
-		// 修改码库时的条件限制
-		QrRepertory qrRepertory;
-		if (qrRepertoryId != null) {
-			qrRepertory = qrRepertoryMapper.selectById(qrRepertoryId);
-			AssertUtil.isNull(qrRepertory, "码库不存在");
-			// 只有待生成、待导入状态下才可编辑
-			Integer qrRepertoryStatus = qrRepertory.getStatus();
-			if (!QrRepertoryStatusEnum.WAIT_GENERATE.is(qrRepertoryStatus) && !QrRepertoryStatusEnum.WAIT_IMPORT.is(qrRepertoryStatus)) {
-				throw new BusinessException("码库不可编辑");
-			}
-		}
-
-		// 码库名称不可重复
-		QueryWrapper<QrRepertory> qrRepertoryQw = new QueryWrapper<>();
-		qrRepertoryQw.eq("name", req.getName());
-		qrRepertoryQw.eq("is_delete", 0);
-		if (qrRepertoryId != null) {
-			qrRepertoryQw.ne("id", qrRepertoryId);
-		}
-		Integer count = qrRepertoryMapper.selectCount(qrRepertoryQw);
-		if (!count.equals(0)) {
-			throw new BusinessException("码库名称已存在");
-		}
-
-		// 验证:1.码库类型为系统生成时,码格式必填 2.同一个码库内的列别名不可重复
-		List<SaveQrRepertoryColumnReq> qrRepertoryColumnList = req.getQrRepertoryColumnList();
-		Set<String> notRepeat = new HashSet<>();
-		SaveQrRepertoryColumnReq qrRepertoryColumn;
-		for (int i = 0; i < qrRepertoryColumnList.size(); i++) {
-			qrRepertoryColumn = qrRepertoryColumnList.get(i);
-			if (QrRepertoryTypeEnum.SYSTEM_GENERATE.is(req.getType()) && qrRepertoryColumn.getQrFormatId() == null) {
-				throw new BusinessException("码格式为空");
-			}
-			if (!notRepeat.add(qrRepertoryColumn.getAlias())) {
-				throw new BusinessException("列名称已存在");
-			}
-		}
-
-		// copy属性值
-		qrRepertory = PojoConverterUtils.copy(req, QrRepertory.class);
-		Integer qrRepertoryType = qrRepertory.getType();
-		// 文本导入类型设置状态为待导入,其他两种类型设置状态为待生成
-		if (QrRepertoryTypeEnum.FILE_IMPORT.is(qrRepertoryType)) {
-			qrRepertory.setStatus(QrRepertoryStatusEnum.WAIT_IMPORT.getCode());
-		} else {
-			qrRepertory.setStatus(QrRepertoryStatusEnum.WAIT_GENERATE.getCode());
-		}
-
-		// 新增or修改
-		Long userId = UserUtil.getUser().getId();
-		qrRepertory.setUpdateBy(userId);
-		if (qrRepertoryId != null) {
-			qrRepertoryMapper.updateById(qrRepertory);
-			// 逻辑删除码库的列
-			qrRepertoryColumnMapper.deleteByQrRepertoryId(qrRepertoryId);
-		} else {
-			qrRepertory.setCreateBy(userId);
-			qrRepertoryMapper.insert(qrRepertory);
-		}
-
-		// 批量插入码库的列
-		BatchInsertQrRepertoryColumnReq batchInsertQrRepertoryColumnReq = new BatchInsertQrRepertoryColumnReq(qrRepertory, qrRepertoryColumnList);
-		qrRepertoryColumnMapper.batchInsert(batchInsertQrRepertoryColumnReq);
-
-		// 将使用到的码格式状态改为使用中
-		List<Long> ids = qrRepertoryColumnList.stream().map(col -> col.getQrFormatId()).collect(Collectors.toList());
-		qrFormatMapper.updateUseStatusByIds(ids, QrFormatUseStatusEnum.USING.getCode());
-
-	}
-
-	/**
-	 * 码库查询分页
-	 */
-	@Override
-	public ListQrRepertoryRes listQrRepertory(ListQrRepertoryReq req) {
-		// 分页查询
-		IPage<QrRepertoryVO> iPage = qrRepertoryMapper.listQrRepertory(PageUtil.createPage(req), req);
-		List<QrRepertoryVO> qrRepertoryList = iPage.getRecords();
-		qrRepertoryList.forEach(qrRepertoryVO -> {
-			String dataComposition = qrRepertoryVO.getQrRepertoryColumnList().stream().map(col -> col.getAlias()).collect(Collectors.joining(","));
-			qrRepertoryVO.setDataComposition(dataComposition);
-		});
-
-		// 封装出参、放入分页信息
-		ListQrRepertoryRes res = new ListQrRepertoryRes();
-		PageUtil.copyPageInfo(res, iPage);
-		List<ListQrRepertoryRes.QrRepertoryBean> qrRepertoryBeanList = PojoConverterUtils.copyList(qrRepertoryList, ListQrRepertoryRes.QrRepertoryBean.class);
-		res.setQrRepertoryBeanList(qrRepertoryBeanList);
-
-		return res;
-	}
-
-	/**
-	 * 码库查询详情
-	 */
-	@Override
-	public GetQrRepertoryDetailRes getQrRepertoryDetail(GetQrRepertoryDetailReq req) {
-		// 查询码库对象
-		QrRepertoryVO qrRepertoryVO = qrRepertoryMapper.selectQrRepertoryDetailById(req.getId());
-		AssertUtil.isNull(qrRepertoryVO, "码库不存在");
-
-		return PojoConverterUtils.copy(qrRepertoryVO, GetQrRepertoryDetailRes.class);
-	}
-
-	/**
-	 * 码库启用:针对的是系统生成和FTP接入,文本导入不存在启用的概念
-	 */
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void enableQrRepertory(EnableQrRepertoryReq req) {
-		List<Long> idList = req.getIds();
-		for (Long id : idList) {
-			QrRepertory qrRepertory = qrRepertoryMapper.selectById(id);
-			AssertUtil.isNull(qrRepertory, "码库不存在");
-
-			// 启用针对的是系统生成和FTP接入类型的码库
-			Integer qrRepertoryType = qrRepertory.getType();
-			if (QrRepertoryTypeEnum.FILE_IMPORT.is(qrRepertoryType)) {
-				continue;
-			}
-
-			// 在状态为待生成、停用时可启用
-			Integer qrRepertoryStatus = qrRepertory.getStatus();
-			if (!QrRepertoryStatusEnum.WAIT_GENERATE.is(qrRepertoryStatus) && !QrRepertoryStatusEnum.DISABLE.is(qrRepertoryStatus)) {
-				continue;
-			}
-
-			// 启用时需判断其关联的码格式是否停用,若是,则启用失败
-			if (QrRepertoryTypeEnum.SYSTEM_GENERATE.is(qrRepertoryType)) {
-				List<String> disabledQrFormatList = qrFormatMapper.selectDisabledQrFormat(id);
-				if (!CollectionUtils.isEmpty(disabledQrFormatList)) {
-					throw new BusinessException("该码库关联的码格式" + disabledQrFormatList + "已停用,码库启用失败");
-				}
-			}
-
-			QrRepertory update = new QrRepertory().setId(id).setStatus(QrRepertoryStatusEnum.GENERATING.getCode());
-			qrRepertoryMapper.updateById(update);
-		}
-	}
-
-	/**
-	 * 码库禁用
-	 */
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void disableQrRepertory(DisableQrRepertoryReq req) {
-		List<Long> idList = req.getIds();
-		for (Long id : idList) {
-			QrRepertory qrRepertory = qrRepertoryMapper.selectById(id);
-			AssertUtil.isNull(qrRepertory, "码库不存在");
-
-			// 在状态为已导入、自动生成时可停用
-			Integer qrRepertoryStatus = qrRepertory.getStatus();
-			if (!QrRepertoryStatusEnum.GENERATING.is(qrRepertoryStatus) && !QrRepertoryStatusEnum.IMPORTED.is(qrRepertoryStatus)) {
-				continue;
-			}
-
-			QrRepertory update = new QrRepertory().setId(id).setStatus(QrRepertoryStatusEnum.DISABLE.getCode());
-			qrRepertoryMapper.updateById(update);
-		}
-	}
-
-	/**
-	 * 删除码库
-	 */
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void deleteQrRepertory(DeleteQrRepertoryReq req) {
-		QrRepertory qrRepertory = qrRepertoryMapper.selectById(req.getId());
-		AssertUtil.isNull(qrRepertory, "码库不存在");
-		// 只有待生成、待导入状态下才可删除
-		Integer qrRepertoryStatus = qrRepertory.getStatus();
-		if (!QrRepertoryStatusEnum.WAIT_GENERATE.is(qrRepertoryStatus) && !QrRepertoryStatusEnum.WAIT_IMPORT.is(qrRepertoryStatus)) {
-			throw new BusinessException("码库不可删除");
-		}
-
-		// 逻辑删除
-		QrRepertory update = new QrRepertory().setId(req.getId()).setIsDelete(1);
-		qrRepertoryMapper.updateById(update);
-
-		// 逻辑删除码库的列
-		qrRepertoryColumnMapper.deleteByQrRepertoryId(req.getId());
-	}
+public class QrRepertoryServiceImpl implements QrRepertoryService {
+
+    @Autowired
+    private QrRepertoryMapper qrRepertoryMapper;
+
+    @Autowired
+    private QrRepertoryColumnMapper qrRepertoryColumnMapper;
+
+    @Autowired
+    private QrFormatMapper qrFormatMapper;
+
+    /**
+     * 保存码库
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveQrRepertory(SaveQrRepertoryReq req) {
+        Long qrRepertoryId = req.getId();
+        // 修改码库时的条件限制
+        QrRepertory qrRepertory;
+        if (qrRepertoryId != null) {
+            qrRepertory = qrRepertoryMapper.selectById(qrRepertoryId);
+            AssertUtil.isNull(qrRepertory, "码库不存在");
+            // 只有待生成、待导入状态下才可编辑
+            Integer qrRepertoryStatus = qrRepertory.getStatus();
+            if (!QrRepertoryStatusEnum.WAIT_GENERATE.is(qrRepertoryStatus) && !QrRepertoryStatusEnum.WAIT_IMPORT.is(qrRepertoryStatus)) {
+                throw new BusinessException("码库不可编辑");
+            }
+        }
+
+        // 码库名称不可重复
+        QueryWrapper<QrRepertory> qrRepertoryQw = new QueryWrapper<>();
+        qrRepertoryQw.eq("name", req.getName());
+        qrRepertoryQw.eq("is_delete", 0);
+        if (qrRepertoryId != null) {
+            qrRepertoryQw.ne("id", qrRepertoryId);
+        }
+        Integer count = qrRepertoryMapper.selectCount(qrRepertoryQw);
+        if (!count.equals(0)) {
+            throw new BusinessException("码库名称已存在");
+        }
+
+        // 验证:1.码库类型为系统生成时,码格式必填 2.同一个码库内的列别名不可重复
+        List<SaveQrRepertoryColumnReq> qrRepertoryColumnList = req.getQrRepertoryColumnList();
+        Set<String> notRepeat = new HashSet<>();
+        SaveQrRepertoryColumnReq qrRepertoryColumn;
+        for (int i = 0; i < qrRepertoryColumnList.size(); i++) {
+            qrRepertoryColumn = qrRepertoryColumnList.get(i);
+            if (QrRepertoryTypeEnum.SYSTEM_GENERATE.is(req.getType()) && qrRepertoryColumn.getQrFormatId() == null) {
+                throw new BusinessException("码格式为空");
+            }
+            if (!notRepeat.add(qrRepertoryColumn.getAlias())) {
+                throw new BusinessException("列名称已存在");
+            }
+        }
+
+        // copy属性值
+        qrRepertory = PojoConverterUtils.copy(req, QrRepertory.class);
+        Integer qrRepertoryType = qrRepertory.getType();
+        // 文本导入类型设置状态为待导入,其他两种类型设置状态为待生成
+        if (QrRepertoryTypeEnum.FILE_IMPORT.is(qrRepertoryType)) {
+            qrRepertory.setStatus(QrRepertoryStatusEnum.WAIT_IMPORT.getCode());
+        } else {
+            qrRepertory.setStatus(QrRepertoryStatusEnum.WAIT_GENERATE.getCode());
+        }
+
+        // 新增or修改
+        Long userId = UserUtil.getUser().getId();
+        qrRepertory.setUpdateBy(userId);
+        if (qrRepertoryId != null) {
+            qrRepertoryMapper.updateById(qrRepertory);
+            // 逻辑删除码库的列
+            qrRepertoryColumnMapper.deleteByQrRepertoryId(qrRepertoryId);
+        } else {
+            qrRepertory.setCreateBy(userId);
+            qrRepertoryMapper.insert(qrRepertory);
+        }
+
+        // 批量插入码库的列
+        BatchInsertQrRepertoryColumnReq batchInsertQrRepertoryColumnReq = new BatchInsertQrRepertoryColumnReq(qrRepertory, qrRepertoryColumnList);
+        qrRepertoryColumnMapper.batchInsert(batchInsertQrRepertoryColumnReq);
+
+        // 将使用到的码格式状态改为使用中
+        List<Long> ids = qrRepertoryColumnList.stream().map(col -> col.getQrFormatId()).collect(Collectors.toList());
+        qrFormatMapper.updateUseStatusByIds(ids, QrFormatUseStatusEnum.USING.getCode());
+
+    }
+
+    /**
+     * 码库查询分页
+     */
+    @Override
+    public ListQrRepertoryRes listQrRepertory(ListQrRepertoryReq req) {
+        // 分页查询
+        IPage<QrRepertoryVO> iPage = qrRepertoryMapper.listQrRepertory(PageUtil.createPage(req), req);
+        List<QrRepertoryVO> qrRepertoryList = iPage.getRecords();
+        qrRepertoryList.forEach(qrRepertoryVO -> {
+            String dataComposition = qrRepertoryVO.getQrRepertoryColumnList().stream().map(col -> col.getAlias()).collect(Collectors.joining(","));
+            qrRepertoryVO.setDataComposition(dataComposition);
+        });
+
+        // 封装出参、放入分页信息
+        ListQrRepertoryRes res = new ListQrRepertoryRes();
+        PageUtil.copyPageInfo(res, iPage);
+        List<ListQrRepertoryRes.QrRepertoryBean> qrRepertoryBeanList = PojoConverterUtils.copyList(qrRepertoryList, ListQrRepertoryRes.QrRepertoryBean.class);
+        res.setQrRepertoryBeanList(qrRepertoryBeanList);
+
+        return res;
+    }
+
+    /**
+     * 码库查询详情
+     */
+    @Override
+    public GetQrRepertoryDetailRes getQrRepertoryDetail(GetQrRepertoryDetailReq req) {
+        // 查询码库对象
+        QrRepertoryVO qrRepertoryVO = qrRepertoryMapper.selectQrRepertoryDetailById(req.getId());
+        AssertUtil.isNull(qrRepertoryVO, "码库不存在");
+
+        return PojoConverterUtils.copy(qrRepertoryVO, GetQrRepertoryDetailRes.class);
+    }
+
+    /**
+     * 码库启用:针对的是系统生成和FTP接入,文本导入不存在启用的概念
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void enableQrRepertory(EnableQrRepertoryReq req) {
+        List<Long> idList = req.getIds();
+        for (Long id : idList) {
+            QrRepertory qrRepertory = qrRepertoryMapper.selectById(id);
+            AssertUtil.isNull(qrRepertory, "码库不存在");
+
+            // 启用针对的是系统生成和FTP接入类型的码库
+            Integer qrRepertoryType = qrRepertory.getType();
+            if (QrRepertoryTypeEnum.FILE_IMPORT.is(qrRepertoryType)) {
+                continue;
+            }
+
+            // 在状态为待生成、停用时可启用
+            Integer qrRepertoryStatus = qrRepertory.getStatus();
+            if (!QrRepertoryStatusEnum.WAIT_GENERATE.is(qrRepertoryStatus) && !QrRepertoryStatusEnum.DISABLE.is(qrRepertoryStatus)) {
+                continue;
+            }
+
+            // 启用时需判断其关联的码格式是否停用,若是,则启用失败
+            if (QrRepertoryTypeEnum.SYSTEM_GENERATE.is(qrRepertoryType)) {
+                List<String> disabledQrFormatList = qrFormatMapper.selectDisabledQrFormat(id);
+                if (!CollectionUtils.isEmpty(disabledQrFormatList)) {
+                    throw new BusinessException("该码库关联的码格式" + disabledQrFormatList + "已停用,码库启用失败");
+                }
+            }
+
+            QrRepertory update = new QrRepertory().setId(id).setStatus(QrRepertoryStatusEnum.GENERATING.getCode());
+            qrRepertoryMapper.updateById(update);
+        }
+    }
+
+    /**
+     * 码库禁用
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void disableQrRepertory(DisableQrRepertoryReq req) {
+        List<Long> idList = req.getIds();
+        for (Long id : idList) {
+            QrRepertory qrRepertory = qrRepertoryMapper.selectById(id);
+            AssertUtil.isNull(qrRepertory, "码库不存在");
+
+            // 在状态为已导入、自动生成时可停用
+            Integer qrRepertoryStatus = qrRepertory.getStatus();
+            if (!QrRepertoryStatusEnum.GENERATING.is(qrRepertoryStatus) && !QrRepertoryStatusEnum.IMPORTED.is(qrRepertoryStatus)) {
+                continue;
+            }
+
+            QrRepertory update = new QrRepertory().setId(id).setStatus(QrRepertoryStatusEnum.DISABLE.getCode());
+            qrRepertoryMapper.updateById(update);
+        }
+    }
+
+    /**
+     * 删除码库
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteQrRepertory(DeleteQrRepertoryReq req) {
+        QrRepertory qrRepertory = qrRepertoryMapper.selectById(req.getId());
+        AssertUtil.isNull(qrRepertory, "码库不存在");
+        // 只有待生成、待导入状态下才可删除
+        Integer qrRepertoryStatus = qrRepertory.getStatus();
+        if (!QrRepertoryStatusEnum.WAIT_GENERATE.is(qrRepertoryStatus) && !QrRepertoryStatusEnum.WAIT_IMPORT.is(qrRepertoryStatus)) {
+            throw new BusinessException("码库不可删除");
+        }
+
+        // 逻辑删除
+        QrRepertory update = new QrRepertory().setId(req.getId()).setIsDelete(1);
+        qrRepertoryMapper.updateById(update);
+
+        // 逻辑删除码库的列
+        qrRepertoryColumnMapper.deleteByQrRepertoryId(req.getId());
+    }
+
+    @Override
+    public ListQrRepertorySelectRes listQrRepertorySelectRes() {
+
+        ListQrRepertorySelectRes res = new ListQrRepertorySelectRes();
+
+        QueryWrapper<QrRepertory> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_delete", 0);
+        List<QrRepertory> repertoryList = qrRepertoryMapper.selectList(queryWrapper);
+        List<ListQrRepertorySelectRes.QrRepertoryBean> beanList = PojoConverterUtils.copyList(repertoryList, ListQrRepertorySelectRes.QrRepertoryBean.class);
+        res.setQrRepertoryBeanList(beanList);
+        return res;
+    }
+
+    @Override
+    public ListQrRepertorySelectDetailRes listQrRepertorySelectDetail(ListQrRepertorySelectDetailReq req) {
+
+        ListQrRepertorySelectDetailRes res = new ListQrRepertorySelectDetailRes();
+
+        List<QrRepertorySelectDetailVO> voList = qrRepertoryMapper.listQrRepertorySelectDetail(req.getId());
+        List<ListQrRepertorySelectDetailRes.QrRepertorySelectDetailBean> beanList = PojoConverterUtils.copyList(voList, ListQrRepertorySelectDetailRes.QrRepertorySelectDetailBean.class);
+        res.setQrRepertorySelectDetailBeanList(beanList);
+        return res;
+    }
 }

+ 18 - 10
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrBoxCodeFormatSplitMapper.xml

@@ -4,16 +4,16 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.abi.qms.platform.dao.entity.QrBoxCodeFormatSplit">
-        <id column="ID" property="id" />
-        <result column="BOX_CODE_FORMAT_ID" property="boxCodeFormatId" />
-        <result column="QR_REPERTORY_ID" property="qrRepertoryId" />
-        <result column="QR_REPERTORY_COLUMN_ID" property="qrRepertoryColumnId" />
-        <result column="SPLIT_NUM" property="splitNum" />
-        <result column="CREATE_TIME" property="createTime" />
-        <result column="CREATE_BY" property="createBy" />
-        <result column="UPDATE_TIME" property="updateTime" />
-        <result column="UPDATE_BY" property="updateBy" />
-        <result column="IS_DELETE" property="isDelete" />
+        <id column="ID" property="id"/>
+        <result column="BOX_CODE_FORMAT_ID" property="boxCodeFormatId"/>
+        <result column="QR_REPERTORY_ID" property="qrRepertoryId"/>
+        <result column="QR_REPERTORY_COLUMN_ID" property="qrRepertoryColumnId"/>
+        <result column="SPLIT_NUM" property="splitNum"/>
+        <result column="CREATE_TIME" property="createTime"/>
+        <result column="CREATE_BY" property="createBy"/>
+        <result column="UPDATE_TIME" property="updateTime"/>
+        <result column="UPDATE_BY" property="updateBy"/>
+        <result column="IS_DELETE" property="isDelete"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -21,4 +21,12 @@
         id, box_code_format_id, qr_repertory_id, qr_repertory_column_id, split_num, create_time, create_by, update_time, update_by, is_delete
     </sql>
 
+    <delete id="deleteBySplitId">
+        UPDATE qr_box_code_format_split SET is_delete = 1 where id = #{id}
+    </delete>
+
+    <delete id="deleteByBoxCodeFormatId">
+        UPDATE qr_box_code_format_split SET is_delete = 1 where box_code_format_id = #{boxCodeFormatId}
+    </delete>
+
 </mapper>

+ 7 - 6
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrRepertoryColumnMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.abi.qms.platform.dao.mapper.QrRepertoryColumnMapper">
 
     <resultMap type="com.abi.qms.platform.dao.entity.QrRepertoryColumn" id="QrRepertoryColumnResult">
@@ -11,7 +11,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="cloneColumn" column="clone_column"/>
         <result property="sortNumber" column="sort_number"/>
         <result property="alias" column="alias"/>
-        <result property="splitNum" column="split_num"/>
         <result property="urlType" column="url_type"/>
         <result property="remark" column="remark"/>
         <result property="createTime" column="create_time"/>
@@ -22,14 +21,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <insert id="batchInsert">
-        INSERT INTO qr_repertory_column (qr_repertory_id, qr_format_id, clone_column, sort_number, alias, split_num, url_type, remark, create_by, update_by) VALUES
+        INSERT INTO qr_repertory_column (qr_repertory_id, qr_format_id, clone_column, sort_number, alias, url_type,
+        remark, create_by, update_by) VALUES
         <foreach item="item" index="index" collection="qrRepertoryColumnList" separator=",">
-            ( #{qrRepertoryId}, #{item.qrFormatId}, #{item.cloneColumn}, #{item.sortNumber}, #{item.alias},#{item.splitNum}, #{item.urlType}, #{item.remark}, #{createBy}, #{updateBy} )
+            ( #{qrRepertoryId}, #{item.qrFormatId}, #{item.cloneColumn}, #{item.sortNumber},
+            #{item.alias}, #{item.urlType}, #{item.remark}, #{createBy}, #{updateBy} )
         </foreach>
     </insert>
 
     <update id="deleteByQrRepertoryId">
-        UPDATE qr_repertory_column SET is_delete = 1
+        UPDATE qr_repertory_column SET is_delete = 1 where qr_repertory_id = #{qrRepertoryId}
     </update>
 
 

+ 33 - 18
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrRepertoryMapper.xml

@@ -1,16 +1,14 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.abi.qms.platform.dao.mapper.QrRepertoryMapper">
 
     <!-- 码库 -->
     <resultMap id="QrRepertoryResult" type="com.abi.qms.platform.dao.entity.QrRepertory">
         <result property="id" column="id"/>
-        <result property="deptId" column="dept_id"/>
         <result property="name" column="name"/>
         <result property="type" column="type"/>
-        <result property="initialNumber" column="initial_number"/>
         <result property="status" column="status"/>
         <result property="createTime" column="create_time"/>
         <result property="createBy" column="create_by"/>
@@ -30,14 +28,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="cloneColumn" column="clone_column"/>
         <result property="sortNumber" column="sort_number"/>
         <result property="alias" column="alias"/>
-        <result property="splitNum" column="split_num"/>
         <result property="urlType" column="url_type"/>
         <result property="remark" column="remark"/>
     </resultMap>
 
     <!-- 码包 -->
     <resultMap id="QrPackageResult" type="com.abi.qms.platform.dao.vo.result.QrPackageVO">
-<!--        <result property="batchNumber" column="batch_number"/>-->
+        <!--        <result property="batchNumber" column="batch_number"/>-->
         <result property="id" column="qr_package_id"/>
         <result property="qrNumber" column="qr_number"/>
         <result property="createTime" column="qr_package_create_time"/>
@@ -48,16 +45,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap id="DetailResult" type="com.abi.qms.platform.dao.vo.result.QrRepertoryVO" extends="QrRepertoryResult">
         <result property="updateByName" column="update_by_name"/>
         <!-- 码库的列 -->
-        <collection property="qrRepertoryColumnList" javaType="java.util.List" resultMap="QrRepertoryColumnResult" />
+        <collection property="qrRepertoryColumnList" javaType="java.util.List" resultMap="QrRepertoryColumnResult"/>
         <!-- 码包 -->
-        <collection property="qrPackageList" javaType="java.util.List" resultMap="QrPackageResult" />
+        <collection property="qrPackageList" javaType="java.util.List" resultMap="QrPackageResult"/>
     </resultMap>
 
     <!-- 适用于分页查询的resultMap,因为IPage遇到collection会分页异常,需要使用select重新查询 -->
     <resultMap id="IPageResult" type="com.abi.qms.platform.dao.vo.result.QrRepertoryVO" extends="QrRepertoryResult">
         <result property="updateByName" column="update_by_name"/>
         <!-- 码库的列 -->
-        <collection property="qrRepertoryColumnList" column="id" javaType="java.util.List" ofType="com.abi.qms.platform.dao.vo.result.QrRepertoryColumnVO" select="selectQrRepertoryColumn"/>
+        <collection property="qrRepertoryColumnList" column="id" javaType="java.util.List"
+                    ofType="com.abi.qms.platform.dao.vo.result.QrRepertoryColumnVO" select="selectQrRepertoryColumn"/>
     </resultMap>
 
     <select id="selectQrRepertoryColumn" resultType="com.abi.qms.platform.dao.vo.result.QrRepertoryColumnVO">
@@ -76,13 +74,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="listQrRepertory" resultMap="IPageResult">
         SELECT
-            qr.id,
-            qr.name,
-            qr.type,
-            qr.status,
-            qr.update_time,
-            qr.update_by,
-            ui.user_name AS update_by_name
+        qr.id,
+        qr.name,
+        qr.type,
+        qr.status,
+        qr.update_time,
+        qr.update_by,
+        ui.user_name AS update_by_name
         FROM qr_repertory qr
         LEFT JOIN user_info ui ON qr.update_by = ui.id
         <where>
@@ -125,7 +123,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             qrc.clone_column,
             qrc.sort_number,
             qrc.alias,
-            qrc.split_num,
             qrc.url_type,
             qrc.remark,
             qf.code_variable_build_class,
@@ -143,7 +140,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE qr.id = #{id} AND qrc.is_delete = 0
     </select>
 
-	<select id="selectNotDisabledQrRepertory" resultType="java.lang.String">
+    <select id="selectNotDisabledQrRepertory" resultType="java.lang.String">
         SELECT
             name
         FROM
@@ -154,5 +151,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND status != 40
     </select>
 
+    <select id="listQrRepertorySelectDetail"
+            resultType="com.abi.qms.platform.dao.vo.result.QrRepertorySelectDetailVO">
+        select
+        qr.id as repertoryId,
+        qrc.id as repertoryColumnId,
+        qrc.sort_number,
+        qrc.alias,
+        qbs.split_num
+        from qr_repertory qr
+        inner join qr_repertory_column qrc on qr.id=qrc.qr_repertory_id
+        left join qr_box_code_format_split qbs on qr.id=qbs.qr_repertory_id
+        <where>
+            <if test="id != null and id != ''">
+                qr.id = #{id}
+            </if>
+        </where>
+    </select>
+
 
 </mapper>