فهرست منبع

feat: 添加批量导入/修改sap组织架构数据接口

fangxinjian 4 سال پیش
والد
کامیت
ddab8e1b44

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

@@ -0,0 +1,38 @@
+package com.abi.qms.platform.controller.console;
+
+import com.abi.qms.platform.dto.req.BatchImportOrginzationReq;
+import com.abi.qms.platform.service.BaseSapOrginzationService;
+import com.abi.task.common.api.base.BaseResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/01 15:57
+ * @description:
+ */
+@Slf4j
+@RestController
+@RequestMapping("sap")
+@Api(tags = "sap导入数据")
+public class BaseSapImportController {
+
+    @Autowired
+    private BaseSapOrginzationService baseSapOrginzationService;
+
+
+    @ApiOperation("批量导入组织架构数据")
+    @PostMapping("batchImportOrginzation")
+    public BaseResponse batchImportOrginzation(@RequestBody BatchImportOrginzationReq batchImportOrginzationReq) throws Exception {
+
+        baseSapOrginzationService.batchImportOrginzation(batchImportOrginzationReq);
+        //包装出参
+        return BaseResponse.create();
+    }
+}

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

@@ -0,0 +1,60 @@
+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.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/01 17:02
+ * @description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "组织架构表对象", description = "组织架构表")
+public class BaseSapOrginzation {
+
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id", type = IdType.AUTO)
+    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;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "是否删除")
+    private Integer isDelete;
+
+}

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

@@ -0,0 +1,14 @@
+package com.abi.qms.platform.dao.mapper;
+
+import com.abi.qms.platform.dao.entity.BaseSapOrginzation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/01 17:01
+ * @description: 组织架构表mapper接口
+ */
+public interface BaseSapOrginzationMapper extends BaseMapper<BaseSapOrginzation> {
+
+
+}

+ 52 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/BatchImportOrginzationReq.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/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;
+
+    }
+}

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

@@ -0,0 +1,18 @@
+package com.abi.qms.platform.service;
+
+import com.abi.qms.platform.dto.req.BatchImportOrginzationReq;
+
+/**
+ * @author: fangxinjian
+ * @date: 2021/06/01 17:20
+ * @description:
+ */
+public interface BaseSapOrginzationService {
+
+    /**
+     * 批量导入sap组织架构数据
+     *
+     * @param batchImportOrginzationReq
+     */
+    void batchImportOrginzation(BatchImportOrginzationReq batchImportOrginzationReq);
+}

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

@@ -0,0 +1,77 @@
+package com.abi.qms.platform.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.abi.qms.platform.dao.entity.BaseSapOrginzation;
+import com.abi.qms.platform.dao.mapper.BaseSapOrginzationMapper;
+import com.abi.qms.platform.dto.req.BatchImportOrginzationReq;
+import com.abi.qms.platform.infrastructure.util.AssertUtil;
+import com.abi.qms.platform.service.BaseSapOrginzationService;
+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/01 17:20
+ * @description:
+ */
+@Service
+public class BaseSapOrginzationServiceImpl implements BaseSapOrginzationService {
+
+    @Autowired
+    private BaseSapOrginzationMapper baseSapOrginzationMapper;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void batchImportOrginzation(BatchImportOrginzationReq req) {
+        List<BatchImportOrginzationReq.SapOrginzation> orginzationList = req.getOrginzationList();
+
+        for (BatchImportOrginzationReq.SapOrginzation sap : orginzationList) {
+
+            BaseSapOrginzation orginzation = new BaseSapOrginzation();
+            orginzation.setCustomerCode(sap.getCustomerCode());
+            orginzation.setCustomerName(sap.getCustomerName());
+            orginzation.setOrginzationLevel(sap.getOrginzationLevel());
+            orginzation.setParentCode(sap.getParentCode());
+            orginzation.setProvince(sap.getProvince());
+            orginzation.setId(sap.getId());
+
+            saveBaseSapOrginzation(orginzation);
+        }
+
+    }
+
+    public void saveBaseSapOrginzation(BaseSapOrginzation bso) {
+
+        //校验入参 code不能重复
+        QueryWrapper<BaseSapOrginzation> qw = new QueryWrapper<>();
+        qw.eq("customer_code", bso.getCustomerCode());
+        if (bso.getId() != null) {
+            qw.ne("id", bso.getId());
+        }
+        List<BaseSapOrginzation> orginzationList = baseSapOrginzationMapper.selectList(qw);
+        if (CollectionUtil.isNotEmpty(orginzationList)) {
+            throw new BusinessException(ErrorCodeEnum.ERROR_PARAM.getCode(), "组织架构ID已存在");
+        }
+
+        //声明对象
+        if (bso.getId() != null) {
+            BaseSapOrginzation baseSapOrginzation = baseSapOrginzationMapper.selectById(bso.getId());
+            AssertUtil.isNull(baseSapOrginzation, "组织架构不存在");
+        }
+
+        //新增or修改
+        if (bso.getId() != null) {
+            baseSapOrginzationMapper.updateById(bso);
+        } else {
+            baseSapOrginzationMapper.insert(bso);
+        }
+
+    }
+}

+ 25 - 0
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/BaseSapOrginzationMapper.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.BaseSapOrginzationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.abi.qms.platform.dao.entity.BaseSapOrginzation">
+        <id column="id" property="id" />
+        <result column="customer_code" property="customerCode" />
+        <result column="customer_name" property="customerName" />
+        <result column="parent_code" property="parentCode" />
+        <result column="orginzation_level" property="orginzationLevel" />
+        <result column="province" property="province" />
+        <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, customer_code, customer_name, parent_code, orginzation_level, province, create_time, create_by, update_time, update_by, is_delete
+    </sql>
+
+</mapper>