Pārlūkot izejas kodu

feat: sap导入数据添加sku和brand

fangxinjian 4 gadi atpakaļ
vecāks
revīzija
43ad973e46
21 mainītis faili ar 910 papildinājumiem un 2 dzēšanām
  1. 12 0
      abi-cloud-qr-platform-api/pom.xml
  2. 86 0
      abi-cloud-qr-platform-api/src/main/java/com/abi/platform/Base/BaseResponse.java
  3. 46 0
      abi-cloud-qr-platform-api/src/main/java/com/abi/platform/api/BaseSapImportApi.java
  4. 52 0
      abi-cloud-qr-platform-api/src/main/java/com/abi/platform/dto/req/BatchImportBrandReq.java
  5. 52 0
      abi-cloud-qr-platform-api/src/main/java/com/abi/platform/dto/req/BatchImportOrginzationReq.java
  6. 52 0
      abi-cloud-qr-platform-api/src/main/java/com/abi/platform/dto/req/BatchImportSkuReq.java
  7. 91 0
      abi-cloud-qr-platform-api/src/main/java/com/abi/platform/enums/ErrorCodeEnum.java
  8. 32 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/BaseSapImportController.java
  9. 59 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/BaseSapBrand.java
  10. 59 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/BaseSapSku.java
  11. 12 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/BaseSapBrandMapper.java
  12. 13 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/BaseSapSkuMapper.java
  13. 52 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/BatchImportBrandReq.java
  14. 52 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/BatchImportSkuReq.java
  15. 18 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/BaseSapBrandService.java
  16. 18 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/BaseSapSkuService.java
  17. 76 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/BaseSapBrandServiceImpl.java
  18. 0 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/BaseSapOrginzationServiceImpl.java
  19. 76 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/BaseSapSkuServiceImpl.java
  20. 25 0
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BaseSapBrandMapper.xml
  21. 27 0
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BaseSapSkuMapper.xml

+ 12 - 0
abi-cloud-qr-platform-api/pom.xml

@@ -10,6 +10,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>abi-cloud-qr-platform-api</artifactId>
+    <version>1.0-SNAPSHOT</version>
 
     <properties>
         <maven.compiler.source>8</maven.compiler.source>
@@ -17,10 +18,21 @@
     </properties>
 
     <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.18</version>
+        </dependency>
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-annotations</artifactId>
+            <version>1.6.2</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 86 - 0
abi-cloud-qr-platform-api/src/main/java/com/abi/platform/Base/BaseResponse.java

@@ -0,0 +1,86 @@
+package com.abi.platform.Base;
+
+import com.abi.platform.enums.ErrorCodeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * 公共返回类
+ *
+ * @param <T>
+ */
+@Data
+@ToString
+@ApiModel(value = "公共返回类")
+public class BaseResponse<T extends Object> implements Serializable {
+
+    private static final long serialVersionUID = 4192965340654225152L;
+
+    private static final Integer SUCCESS = 200;
+    private static final Integer FAIL = 999;
+
+    @ApiModelProperty(value = "返回码: 0000成功, 其他失败")
+    private Integer code;
+
+    @ApiModelProperty(value = "错误信息")
+    private String message;
+
+    @ApiModelProperty(value = "返回内容")
+    private T data;
+
+    @ApiModelProperty(value = "当前时间戳")
+    private Long timeStamp;
+
+    public BaseResponse() {
+        this.timeStamp = System.currentTimeMillis();
+    }
+
+    public BaseResponse(T data) {
+        this(SUCCESS, data);
+    }
+
+    public BaseResponse(Integer code, T data) {
+        this(code, null, data);
+    }
+
+
+    public BaseResponse(Integer code, String message, T data) {
+        this(code, message, data, System.currentTimeMillis());
+    }
+
+    public BaseResponse(Integer code, String message, T data, Long timeStamp) {
+        this.code = code;
+        this.message = message;
+        this.data = data;
+        this.timeStamp = timeStamp;
+    }
+
+    public static BaseResponse create() {
+        return new BaseResponse(null);
+    }
+
+    public static <T extends Object> BaseResponse<T> create(T t) {
+        return new BaseResponse(t);
+    }
+
+    public static <T extends Object> BaseResponse<T> create(T t, Integer code, String msg) {
+        return new BaseResponse(code, msg, t);
+    }
+
+    public static <T extends Object> BaseResponse<T> createFail(T t, ErrorCodeEnum errorCodeEnum) {
+        return new BaseResponse(FAIL, errorCodeEnum.getMessage(), t);
+    }
+
+    public static <T extends Object> BaseResponse<T> createFail(T t, String msg) {
+        return new BaseResponse(FAIL, msg, t);
+    }
+
+    public static <T extends Object> BaseResponse<T> createFail(T t, Integer code, String msg) {
+        return new BaseResponse(code, msg, t);
+    }
+
+}

+ 46 - 0
abi-cloud-qr-platform-api/src/main/java/com/abi/platform/api/BaseSapImportApi.java

@@ -0,0 +1,46 @@
+package com.abi.platform.api;
+
+
+import com.abi.platform.Base.BaseResponse;
+import com.abi.platform.dto.req.BatchImportBrandReq;
+import com.abi.platform.dto.req.BatchImportOrginzationReq;
+import com.abi.platform.dto.req.BatchImportSkuReq;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 11:26
+ * @description: sap导入数据
+ */
+@RequestMapping("/sap")
+public interface BaseSapImportApi {
+
+    /**
+     * 批量导入组织架构数据
+     *
+     * @param batchImportOrginzationReq 批量导入组织架构数据入参
+     * @return
+     */
+    @PostMapping("batchImportOrginzation")
+    BaseResponse batchImportOrginzation(@RequestBody BatchImportOrginzationReq batchImportOrginzationReq);
+
+    /**
+     * 批量导入SKU数据
+     *
+     * @param batchImportSkuReq 批量导入SKU数据入参
+     * @return
+     */
+    @PostMapping("batchImportSku")
+    BaseResponse batchImportSku(@RequestBody BatchImportSkuReq batchImportSkuReq);
+
+    /**
+     * 批量导入品牌数据
+     *
+     * @param batchImportBrandReq 批量导入品牌数据入参
+     * @return
+     */
+    @PostMapping("batchImportBrand")
+    BaseResponse batchImportBrand(@RequestBody BatchImportBrandReq batchImportBrandReq);
+}

+ 52 - 0
abi-cloud-qr-platform-api/src/main/java/com/abi/platform/dto/req/BatchImportBrandReq.java

@@ -0,0 +1,52 @@
+package com.abi.platform.dto.req;
+
+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/06/02 10:31
+ * @description:
+ */
+@Data
+@ApiModel
+public class BatchImportBrandReq implements Serializable {
+
+    @ApiModelProperty("品牌List")
+    private List<SapBrandBean> sapBrandBeanList;
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "BatchImportBrandReq_SapBrandBean")
+    public static class SapBrandBean implements Serializable {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "品牌code")
+        private String brandCode;
+
+        @ApiModelProperty(value = "品牌名称")
+        private String brandName;
+
+        @ApiModelProperty(value = "品牌层级")
+        private Integer brandLevel;
+
+        @ApiModelProperty(value = "上级品牌code")
+        private String parentBrandCode;
+
+        @ApiModelProperty(value = "上级品牌名称")
+        private String parentBrandName;
+
+    }
+}

+ 52 - 0
abi-cloud-qr-platform-api/src/main/java/com/abi/platform/dto/req/BatchImportOrginzationReq.java

@@ -0,0 +1,52 @@
+package com.abi.platform.dto.req;
+
+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/06/01 17:22
+ * @description: 批量到入组织架构数据入参
+ */
+@Data
+@ApiModel
+public class BatchImportOrginzationReq implements Serializable {
+
+    @ApiModelProperty("组织架构List")
+    private List<SapOrginzation> orginzationList;
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "BatchImportOrginzationReq_SapOrginzation")
+    public static class SapOrginzation implements Serializable {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "组织架构代码")
+        private String customerCode;
+
+        @ApiModelProperty(value = "组织架构名称")
+        private String customerName;
+
+        @ApiModelProperty(value = "上级组织代码")
+        private String parentCode;
+
+        @ApiModelProperty(value = "层级 0-国家 1-bu 2-region 3-area 4-terrion")
+        private Integer orginzationLevel;
+
+        @ApiModelProperty(value = "省")
+        private String province;
+
+    }
+}

+ 52 - 0
abi-cloud-qr-platform-api/src/main/java/com/abi/platform/dto/req/BatchImportSkuReq.java

@@ -0,0 +1,52 @@
+package com.abi.platform.dto.req;
+
+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/06/02 09:42
+ * @description:
+ */
+@Data
+@ApiModel
+public class BatchImportSkuReq implements Serializable {
+
+    @ApiModelProperty("sku List")
+    private List<SapSkuBean> sapSkuBeanList;
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "BatchImportSkuReq_SapSkuBean")
+    public static class SapSkuBean implements Serializable {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "商品编号(即页面上手输的skuid)")
+        private String skuCode;
+
+        @ApiModelProperty(value = "sku名称")
+        private String skuName;
+
+        @ApiModelProperty(value = "品牌code")
+        private String brandCode;
+
+        @ApiModelProperty(value = "子品牌code")
+        private String subBrandCode;
+
+
+    }
+
+
+}

+ 91 - 0
abi-cloud-qr-platform-api/src/main/java/com/abi/platform/enums/ErrorCodeEnum.java

@@ -0,0 +1,91 @@
+package com.abi.platform.enums;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.EnumSet;
+import java.util.Set;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 错误返回枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum ErrorCodeEnum {
+	/**
+	 *	执行成功
+	 */
+	SUCCESS(200, "执行成功"),
+	/**
+	 *	服务异常
+	 */
+	FAIL(999, "服务异常"),
+	/**
+	 *	参数错误
+	 */
+	ERROR_PARAM(771, "参数错误"),
+	/**
+	 *	请求失效
+	 */
+	REQ_EXPIRE(772, "请求失效"),
+	/**
+	 *	未知异常
+	 */
+	EXCEPT_UN_KNOW(773, "未知异常"),
+	/**
+	 *	数据库操作异常
+	 */
+	EXCEPT_DB_OPERATION(774, "数据库操作异常"),
+	/**
+	 *	服务异常
+	 */
+	SERVICE_EXCEPTION(775, "服务异常"),
+	/**
+	 *	用户不存在
+	 */
+	NO_EXISTS_USER(776, "用户不存在"),
+	/**
+	 *	数据不存在
+	 */
+	NO_EXISTS_DATA(777, "数据不存在"),
+	/**
+	 *	HTTP请求方法不支持
+	 */
+	ERROR_METHOD_NOT_SUPPORT(779,"HTTP请求方法不支持"),
+	/**
+	 *	用户认证失败
+	 */
+	CERTIFICATION_FAILED(780, "用户认证失败"),
+	/**
+	 *	找不到该用户
+	 */
+	NO_USER_INFO(781, "找不到该用户"),
+	/**
+	 *	业务操作异常
+	 */
+	BUSINESS_OPT_ERROR(800, "业务操作异常");
+
+	private Integer code;
+
+	private String message;
+
+	private static final Set<ErrorCodeEnum> ALL = EnumSet.allOf(ErrorCodeEnum.class);
+
+	public static ErrorCodeEnum getCodeByName(Integer code) throws Exception {
+		if(code==null){
+			return null;
+		}
+
+		return ALL.stream()
+				.filter(o->o.code.equals(code))
+				.findAny().orElseThrow(()->new Exception("错误编码枚举类: "+code+ "未匹配到相关值!"));
+
+	}
+
+	public boolean is(Integer code){
+		return getCode().equals(code);
+	}
+
+}

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

@@ -1,7 +1,11 @@
 package com.abi.qms.platform.controller.console;
 
+import com.abi.qms.platform.dto.req.BatchImportBrandReq;
 import com.abi.qms.platform.dto.req.BatchImportOrginzationReq;
+import com.abi.qms.platform.dto.req.BatchImportSkuReq;
+import com.abi.qms.platform.service.BaseSapBrandService;
 import com.abi.qms.platform.service.BaseSapOrginzationService;
+import com.abi.qms.platform.service.BaseSapSkuService;
 import com.abi.task.common.api.base.BaseResponse;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -26,13 +30,40 @@ public class BaseSapImportController {
     @Autowired
     private BaseSapOrginzationService baseSapOrginzationService;
 
+    @Autowired
+    private BaseSapSkuService baseSapSkuService;
+
+    @Autowired
+    private BaseSapBrandService baseSapBrandService;
+
 
     @ApiOperation("批量导入组织架构数据")
     @PostMapping("batchImportOrginzation")
-    public BaseResponse batchImportOrginzation(@RequestBody BatchImportOrginzationReq batchImportOrginzationReq) throws Exception {
+    public BaseResponse batchImportOrginzation(@RequestBody BatchImportOrginzationReq batchImportOrginzationReq) {
 
         baseSapOrginzationService.batchImportOrginzation(batchImportOrginzationReq);
         //包装出参
         return BaseResponse.create();
     }
+
+
+    @ApiOperation("批量导入SKU数据")
+    @PostMapping("batchImportSku")
+    public BaseResponse batchImportSku(@RequestBody BatchImportSkuReq batchImportSkuReq) {
+
+        baseSapSkuService.batchImportSku(batchImportSkuReq);
+        //包装出参
+        return BaseResponse.create();
+    }
+
+    @ApiOperation("批量导入品牌数据")
+    @PostMapping("batchImportBrand")
+    public BaseResponse batchImportBrand(@RequestBody BatchImportBrandReq batchImportBrandReq) {
+
+        baseSapBrandService.batchImportBrand(batchImportBrandReq);
+        //包装出参
+        return BaseResponse.create();
+    }
+
+
 }

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

@@ -0,0 +1,59 @@
+package com.abi.qms.platform.dao.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 10:20
+ * @description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Schema(name = "sap品牌表对象", description = "sap品牌表")
+public class BaseSapBrand {
+
+    @Schema(name = "id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @Schema(name = "品牌code")
+    private String brandCode;
+
+    @Schema(name = "品牌名称")
+    private String brandName;
+
+    @Schema(name = "品牌层级")
+    private Integer brandLevel;
+
+    @Schema(name = "上级品牌code")
+    private String parentBrandCode;
+
+    @Schema(name = "上级品牌名称")
+    private String parentBrandName;
+
+    @Schema(name = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @Schema(name = "创建人id")
+    private Long createBy;
+
+    @Schema(name = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @Schema(name = "修改人id")
+    private Long updateBy;
+
+    @Schema(name = "是否删除")
+    private Integer isDelete;
+
+}

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

@@ -0,0 +1,59 @@
+package com.abi.qms.platform.dao.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 09:35
+ * @description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Schema(name="sku表对象", description="sku表")
+public class BaseSapSku {
+
+    @Schema(name = "id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @Schema(name = "商品编号(即页面上手输的skuid)")
+    private String skuCode;
+
+    @Schema(name = "sku名称")
+    private String skuName;
+
+    @Schema(name = "品牌code")
+    private String brandCode;
+
+    @Schema(name = "子品牌code")
+    private String subBrandCode;
+
+    @Schema(name = "是否有效 0-无效 1-有效")
+    private Integer valid;
+
+    @Schema(name = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @Schema(name = "创建人id")
+    private Long createBy;
+
+    @Schema(name = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @Schema(name = "修改人id")
+    private Long updateBy;
+
+    @Schema(name = "是否删除")
+    private Integer isDelete;
+
+}

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

@@ -0,0 +1,12 @@
+package com.abi.qms.platform.dao.mapper;
+
+import com.abi.qms.platform.dao.entity.BaseSapBrand;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 10:25
+ * @description:
+ */
+public interface BaseSapBrandMapper extends BaseMapper<BaseSapBrand> {
+}

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

@@ -0,0 +1,13 @@
+package com.abi.qms.platform.dao.mapper;
+
+import com.abi.qms.platform.dao.entity.BaseSapSku;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 09:34
+ * @description: sap sku mapper接口
+ */
+public interface BaseSapSkuMapper extends BaseMapper<BaseSapSku> {
+
+}

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

@@ -0,0 +1,52 @@
+package com.abi.qms.platform.dto.req;
+
+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/06/02 10:31
+ * @description:
+ */
+@Data
+@ApiModel
+public class BatchImportBrandReq implements Serializable {
+
+    @ApiModelProperty("品牌List")
+    private List<SapBrandBean> sapBrandBeanList;
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "BatchImportBrandReq_SapBrandBean")
+    public static class SapBrandBean implements Serializable {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "品牌code")
+        private String brandCode;
+
+        @ApiModelProperty(value = "品牌名称")
+        private String brandName;
+
+        @ApiModelProperty(value = "品牌层级")
+        private Integer brandLevel;
+
+        @ApiModelProperty(value = "上级品牌code")
+        private String parentBrandCode;
+
+        @ApiModelProperty(value = "上级品牌名称")
+        private String parentBrandName;
+
+    }
+}

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

@@ -0,0 +1,52 @@
+package com.abi.qms.platform.dto.req;
+
+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/06/02 09:42
+ * @description:
+ */
+@Data
+@ApiModel
+public class BatchImportSkuReq implements Serializable {
+
+    @ApiModelProperty("sku List")
+    private List<SapSkuBean> sapSkuBeanList;
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "BatchImportSkuReq_SapSkuBean")
+    public static class SapSkuBean implements Serializable {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "商品编号(即页面上手输的skuid)")
+        private String skuCode;
+
+        @ApiModelProperty(value = "sku名称")
+        private String skuName;
+
+        @ApiModelProperty(value = "品牌code")
+        private String brandCode;
+
+        @ApiModelProperty(value = "子品牌code")
+        private String subBrandCode;
+
+
+    }
+
+
+}

+ 18 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/BaseSapBrandService.java

@@ -0,0 +1,18 @@
+package com.abi.qms.platform.service;
+
+import com.abi.qms.platform.dto.req.BatchImportBrandReq;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 10:26
+ * @description:
+ */
+public interface BaseSapBrandService {
+
+    /**
+     * 批量导入品牌数据
+     *
+     * @param batchImportBrandReq
+     */
+    void batchImportBrand(BatchImportBrandReq batchImportBrandReq);
+}

+ 18 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/BaseSapSkuService.java

@@ -0,0 +1,18 @@
+package com.abi.qms.platform.service;
+
+import com.abi.qms.platform.dto.req.BatchImportSkuReq;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 09:37
+ * @description:
+ */
+public interface BaseSapSkuService {
+
+    /**
+     * 批量导入SKU数据
+     *
+     * @param batchImportSkuReq
+     */
+    void batchImportSku(BatchImportSkuReq batchImportSkuReq);
+}

+ 76 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/BaseSapBrandServiceImpl.java

@@ -0,0 +1,76 @@
+package com.abi.qms.platform.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.abi.qms.platform.dao.entity.BaseSapBrand;
+import com.abi.qms.platform.dao.mapper.BaseSapBrandMapper;
+import com.abi.qms.platform.dto.req.BatchImportBrandReq;
+import com.abi.qms.platform.infrastructure.util.AssertUtil;
+import com.abi.qms.platform.service.BaseSapBrandService;
+import com.abi.task.common.api.exception.BusinessException;
+import com.abi.task.common.api.exception.ErrorCodeEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 10:26
+ * @description:
+ */
+@Service
+public class BaseSapBrandServiceImpl implements BaseSapBrandService {
+
+    @Autowired
+    private BaseSapBrandMapper baseSapBrandMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void batchImportBrand(BatchImportBrandReq req) {
+        List<BatchImportBrandReq.SapBrandBean> brandBeanList = req.getSapBrandBeanList();
+
+        for (BatchImportBrandReq.SapBrandBean brand : brandBeanList) {
+
+            //申明对象
+            BaseSapBrand sapBrand = new BaseSapBrand();
+            sapBrand.setId(brand.getId());
+            sapBrand.setBrandCode(brand.getBrandCode());
+            sapBrand.setBrandLevel(brand.getBrandLevel());
+            sapBrand.setBrandName(brand.getBrandName());
+            sapBrand.setParentBrandCode(brand.getParentBrandCode());
+            sapBrand.setParentBrandName(brand.getParentBrandName());
+
+
+            saveBaseSapBrand(sapBrand);
+        }
+    }
+
+    public void saveBaseSapBrand(BaseSapBrand bsb) {
+
+        //校验入参 code不能重复
+        QueryWrapper<BaseSapBrand> qw = new QueryWrapper<>();
+        qw.eq("brand_code", bsb.getBrandCode());
+        if (bsb.getId() != null) {
+            qw.ne("id", bsb.getId());
+        }
+        List<BaseSapBrand> sapBrandList = baseSapBrandMapper.selectList(qw);
+        if (CollectionUtil.isNotEmpty(sapBrandList)) {
+            throw new BusinessException(ErrorCodeEnum.ERROR_PARAM.getCode(), "品牌 ID已存在");
+        }
+
+        if (bsb.getId() != null) {
+            BaseSapBrand baseSapBrand = baseSapBrandMapper.selectById(bsb.getId());
+            AssertUtil.isNull(baseSapBrand, "sap品牌不存在");
+        }
+
+        //新增or修改
+        if (bsb.getId() != null) {
+            baseSapBrandMapper.updateById(bsb);
+        } else {
+            baseSapBrandMapper.insert(bsb);
+        }
+
+    }
+}

+ 0 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/BaseSapOrginzationServiceImpl.java

@@ -60,7 +60,6 @@ public class BaseSapOrginzationServiceImpl implements BaseSapOrginzationService
             throw new BusinessException(ErrorCodeEnum.ERROR_PARAM.getCode(), "组织架构ID已存在");
         }
 
-        //声明对象
         if (bso.getId() != null) {
             BaseSapOrginzation baseSapOrginzation = baseSapOrginzationMapper.selectById(bso.getId());
             AssertUtil.isNull(baseSapOrginzation, "组织架构不存在");

+ 76 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/BaseSapSkuServiceImpl.java

@@ -0,0 +1,76 @@
+package com.abi.qms.platform.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.abi.qms.platform.dao.entity.BaseSapSku;
+import com.abi.qms.platform.dao.mapper.BaseSapSkuMapper;
+import com.abi.qms.platform.dto.req.BatchImportSkuReq;
+import com.abi.qms.platform.infrastructure.util.AssertUtil;
+import com.abi.qms.platform.service.BaseSapSkuService;
+import com.abi.task.common.api.exception.BusinessException;
+import com.abi.task.common.api.exception.ErrorCodeEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/02 09:38
+ * @description:
+ */
+@Service
+public class BaseSapSkuServiceImpl implements BaseSapSkuService {
+
+    @Autowired
+    private BaseSapSkuMapper baseSapSkuMapper;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void batchImportSku(BatchImportSkuReq req) {
+        List<BatchImportSkuReq.SapSkuBean> sapSkuBeanList = req.getSapSkuBeanList();
+
+        for (BatchImportSkuReq.SapSkuBean sku : sapSkuBeanList) {
+
+            //申明对象
+            BaseSapSku sapSku = new BaseSapSku();
+            sapSku.setId(sku.getId());
+            sapSku.setBrandCode(sku.getBrandCode());
+            sapSku.setSubBrandCode(sku.getSubBrandCode());
+            sapSku.setSkuCode(sku.getSkuCode());
+            sapSku.setSkuName(sku.getSkuName());
+
+            saveBaseSapSku(sapSku);
+        }
+    }
+
+    public void saveBaseSapSku(BaseSapSku bss) {
+
+        //校验入参 code不能重复
+        QueryWrapper<BaseSapSku> qw = new QueryWrapper<>();
+        qw.eq("sku_code", bss.getSkuCode());
+        if (bss.getId() != null) {
+            qw.ne("id", bss.getId());
+        }
+        List<BaseSapSku> sapSkuList = baseSapSkuMapper.selectList(qw);
+        if (CollectionUtil.isNotEmpty(sapSkuList)) {
+            throw new BusinessException(ErrorCodeEnum.ERROR_PARAM.getCode(), "SKU ID已存在");
+        }
+
+        if (bss.getId() != null) {
+            BaseSapSku baseSapSku = baseSapSkuMapper.selectById(bss.getId());
+            AssertUtil.isNull(baseSapSku, "组织架构不存在");
+        }
+
+        //新增or修改
+        if (bss.getId() != null) {
+            baseSapSkuMapper.updateById(bss);
+        } else {
+            baseSapSkuMapper.insert(bss);
+        }
+
+    }
+
+}

+ 25 - 0
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BaseSapBrandMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.abi.qms.platform.dao.mapper.BaseSapBrandMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.abi.qms.platform.dao.entity.BaseSapBrand">
+        <id column="ID" property="id"/>
+        <result column="BRAND_CODE" property="brandCode"/>
+        <result column="BRAND_NAME" property="brandName"/>
+        <result column="BRAND_LEVEL" property="brandLevel"/>
+        <result column="PARENT_BRAND_CODE" property="parentBrandCode"/>
+        <result column="PARENT_BRAND_NAME" property="parentBrandName"/>
+        <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>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        ID, BRAND_CODE, BRAND_NAME, BRAND_LEVEL, PARENT_BRAND_CODE, PARENT_BRAND_NAME, CREATE_TIME, CREATE_BY, UPDATE_TIME, UPDATE_BY, IS_DELETE
+    </sql>
+
+</mapper>

+ 27 - 0
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BaseSapSkuMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.abi.qms.platform.dao.mapper.BaseSapSkuMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.abi.qms.platform.dao.entity.BaseSapSku">
+        <id column="id" property="id" />
+        <result column="sku_code" property="skuCode" />
+        <result column="sku_name" property="skuName" />
+        <result column="brand_code" property="brandCode" />
+        <result column="sub_brand_code" property="subBrandCode" />
+        <result column="valid" property="valid" />
+        <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>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, sku_code, sku_name, brand_code, sub_brand_code, valid, create_time, create_by, update_time, update_by, is_delete
+    </sql>
+
+
+
+</mapper>