Browse Source

增加开发验证代码

zhouyang.xie 1 month ago
parent
commit
ab4fc153ea

+ 3 - 0
.gitignore

@@ -38,4 +38,7 @@ target/
 
 rebel.xml
 
+# .vscode
+.vscode/
+
 

+ 74 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/company/CompanyPO.java

@@ -0,0 +1,74 @@
+package com.energy.manage.common.po.company;
+
+import com.energy.manage.common.base.NewBaseDomain;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 企业信息
+ */
+@Data
+@Table(name = "wind_company")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CompanyPO extends NewBaseDomain {
+
+    /**
+     * 企业编号
+     */
+    @ApiModelProperty("企业编号")
+    private String companyCode;
+
+    /**
+     * 企业名称
+     */
+    @ApiModelProperty("企业名称")
+    private String companyName;
+
+    /**
+     * 省
+     */
+    @ApiModelProperty("编号")
+    private Integer provinceId;
+
+    /**
+     * 省名字
+     */
+    @ApiModelProperty("省名字")
+    private String provinceName;
+
+    /**
+     * 市
+     */
+    @ApiModelProperty("市")
+    private Integer cityId;
+
+    /**
+     * 市名字
+     */
+    @ApiModelProperty("市名字")
+    private String cityName;
+
+    /**
+     * 企业描述
+     */
+    @ApiModelProperty("企业描述")
+    private String described;
+    /**
+     * 状态
+     */
+    @ApiModelProperty("状态")
+    private Integer state;
+
+    /**
+     * 删除状态
+     */
+    @ApiModelProperty("删除状态")
+    private Integer delState;
+}

+ 88 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/company/CompanyServiceController.java

@@ -0,0 +1,88 @@
+package com.energy.manage.service.controller.company;
+
+
+import com.energy.manage.common.enums.TypeRelationEnum;
+import com.energy.manage.common.po.company.CompanyPO;
+import com.energy.manage.common.po.company.WindCompanyPO;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.dto.company.*;
+import com.energy.manage.service.domain.vo.company.WindCompanyPageVo;
+import com.energy.manage.service.domain.vo.company.WindCompanyVo;
+import com.energy.manage.service.domain.vo.windfield.WindFieldVo;
+import com.energy.manage.service.service.company.CompanyService;
+import com.energy.manage.service.service.company.WindCompanyService;
+import com.energy.manage.service.service.system.SysOrganizationAuthService;
+import com.energy.manage.service.service.windfield.WindFieldService;
+import com.energy.manage.service.service.windrelation.WindRelationService;
+import com.energy.manage.service.util.BeanMapUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@RestController
+@CrossOrigin
+@Api(value = "CompanyServiceController", tags = "开发验证")
+@RequestMapping(value = "/api/devcheck/company")
+public class CompanyServiceController  extends BaseServiceController {
+    
+    @Autowired
+    private CompanyService companyService;
+
+    @UserLoginToken
+    @PostMapping(value = "/getAllCompany")
+    @ApiOperation(value = "查询企业树")
+    public ResultResp<List<Map<String, Object>>> getAllWindCompany(@RequestBody WindCompanyDelDto windCompanyDelDto) {
+        List<Map<String, Object>> list = companyService.getCompany(windCompanyDelDto); 
+        //   .getAllCompany(windCompanyPageDto.getState(), windCompanyPageDto.getCompanyName(),getRoleId(),getUserId());
+                
+        return ResultResp.SUCCESS(list);
+    }
+
+
+    /**
+     * 批量新增或更新企业信息
+     * 
+     * @param companyList 企业信息列表
+     * @return 操作结果
+     */
+    @UserLoginToken
+    @PostMapping(value = "/batchUpdateCompany")
+    @ApiOperation(value = "批量新增或更新企业信息")
+    public ResultResp<Boolean> batchUpdateCompany(@Valid @RequestBody List<CompanyPO> companyList) {
+        log.info("接收到批量更新企业信息请求,数据量:{}", companyList == null ? 0 : companyList.size());
+        
+        // 参数校验
+        if (companyList == null || companyList.isEmpty()) {
+            log.warn("批量更新企业信息请求参数为空");
+            return ResultResp.INVALIDPARAM("企业信息列表不能为空");
+        }
+        
+        try {
+            boolean result = companyService.batchUpdateCompany(companyList);
+            
+            if (result) {
+                log.info("批量更新企业信息成功,处理记录数:{}", companyList.size());
+                return ResultResp.SUCCESS(true);
+            } else {
+                log.warn("批量更新企业信息失败");
+                return ResultResp.FAIL("批量更新企业信息失败");
+            }
+            
+        } catch (Exception e) {
+            log.error("批量更新企业信息异常", e);
+            return ResultResp.FAIL("批量更新企业信息异常: " + e.getMessage());
+        }
+    }
+
+}

+ 31 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/company/CompanyMapper.java

@@ -0,0 +1,31 @@
+package com.energy.manage.service.mappers.company;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.company.CompanyPO;
+import com.energy.manage.common.po.company.WindCompanyPO;
+import com.energy.manage.common.po.system.SysPermissionPO;
+import com.energy.manage.service.domain.dto.company.WindCompanyCustomDto;
+import com.energy.manage.service.domain.dto.company.WindCompanyDto;
+import com.energy.manage.service.domain.vo.company.WindCompanyPageVo;
+import com.energy.manage.service.domain.vo.company.WindCompanyVo;
+
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 企业信息树
+ */
+@Repository
+public interface CompanyMapper extends MyMapper<CompanyPO> {
+
+    /**
+     * 查询全部项目公司
+     * @return
+     */
+    List<CompanyPO> getAllCompany();
+
+    boolean batchUpdateCompany(List<CompanyPO> list);
+    
+}

+ 31 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/company/CompanyService.java

@@ -0,0 +1,31 @@
+package com.energy.manage.service.service.company;
+
+
+import com.energy.manage.common.base.BaseService;
+import com.energy.manage.common.po.company.CompanyPO;
+import com.energy.manage.common.po.company.WindCompanyPO;
+import com.energy.manage.common.po.system.SysPermissionPO;
+import com.energy.manage.service.domain.dto.company.*;
+import com.energy.manage.service.domain.vo.company.WindCompanyPageVo;
+import com.energy.manage.service.domain.vo.company.WindCompanyVo;
+import com.energy.manage.service.domain.vo.system.PermissionVo;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 企业信息接口 开发验证
+ * xzy
+ */
+public interface CompanyService  extends BaseService<CompanyPO> {
+    /**
+     * 查询企业对象
+     * @param windCompanyDelDto
+     * @return
+     */
+    List<CompanyPO> getAllCompany(WindCompanyDelDto windCompanyDelDto);
+
+    List<Map<String, Object>> getCompany(WindCompanyDelDto windCompanyDelDto);
+
+    boolean batchUpdateCompany(List<CompanyPO> list);
+}

+ 154 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/company/impl/CompanyServiceImpl.java

@@ -0,0 +1,154 @@
+package com.energy.manage.service.service.company.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.energy.manage.common.base.BaseServiceImpl;
+import com.energy.manage.common.constant.Constants;
+import com.energy.manage.common.constant.redis.ManagerRedisKeyConstant;
+import com.energy.manage.common.enums.DeleteStatusEnum;
+import com.energy.manage.common.enums.IdPrefixEnum;
+import com.energy.manage.common.enums.TypeRelationEnum;
+import com.energy.manage.common.po.company.CompanyPO;
+import com.energy.manage.common.po.company.WindCompanyPO;
+import com.energy.manage.common.po.system.SysPermissionPO;
+import com.energy.manage.common.po.system.SysRolePermissionPO;
+import com.energy.manage.common.po.system.SysUserInfoPO;
+import com.energy.manage.common.util.IdGeneratorUtil;
+import com.energy.manage.service.domain.dto.company.*;
+import com.energy.manage.service.domain.dto.system.RoleUpdateOrganizationDto;
+import com.energy.manage.service.domain.dto.windrelation.WindRelationDelDto;
+import com.energy.manage.service.domain.dto.windrelation.WindRelationDto;
+import com.energy.manage.service.domain.vo.company.WindCompanyPageVo;
+import com.energy.manage.service.domain.vo.company.WindCompanyVo;
+import com.energy.manage.service.domain.vo.system.PermissionVo;
+import com.energy.manage.service.mappers.company.CompanyMapper;
+import com.energy.manage.service.mappers.company.WindCompanyMapper;
+import com.energy.manage.service.mappers.system.SysPermissionMapper;
+import com.energy.manage.service.mappers.system.SysRolePermissionMapper;
+import com.energy.manage.service.service.cache.CacheService;
+import com.energy.manage.service.service.company.CompanyService;
+import com.energy.manage.service.service.company.WindCompanyService;
+import com.energy.manage.service.service.system.SysOrganizationAuthService;
+import com.energy.manage.service.service.system.SysPermissionService;
+import com.energy.manage.service.service.windrelation.WindRelationService;
+import com.energy.manage.service.util.BeanMapUtils;
+import com.energy.manage.service.util.SplitUtil;
+import com.energy.manage.service.util.TreeUtil;
+import com.google.common.collect.Lists;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class CompanyServiceImpl extends BaseServiceImpl<CompanyPO> implements CompanyService {
+    @Autowired
+    private CompanyMapper companyMapper;
+
+    public List<CompanyPO> getAllCompany(WindCompanyDelDto windCompanyDelDto) {
+        List<CompanyPO> result = null;
+
+        if (windCompanyDelDto != null && windCompanyDelDto.getCompanyCode()!=null && windCompanyDelDto.getCompanyCode().isEmpty()) {
+            CompanyPO po = new CompanyPO();
+            po.setCompanyCode(windCompanyDelDto.getCompanyCode());
+            CompanyPO tpo = companyMapper.selectOne(po);
+
+            if (tpo == null) {
+                return null;
+            }
+
+            result = new ArrayList<>();
+            CompanyPO vo = new CompanyPO();
+            vo.setCompanyCode(tpo.getCompanyCode());
+            vo.setCityId(tpo.getCityId());
+            vo.setCityName(tpo.getCityName());
+            vo.setCompanyName(tpo.getCompanyName());
+            result.add(vo);
+
+            return result;
+        }
+
+        List<CompanyPO> list = companyMapper.getAllCompany();
+        result = BeanUtil.copyToList(list, CompanyPO.class);
+
+        return result;
+    }
+
+    public List<Map<String, Object>> getCompany(WindCompanyDelDto windCompanyDelDto) {
+        List<CompanyPO> list = null;
+        list = this.getAllCompany(windCompanyDelDto);
+
+        // 转化为Map集合
+        List<Map<String, Object>> mapList = BeanMapUtils.listBeanToListMap(list);
+        // 获取树形结构
+        // List<Map<String, Object>> java8ResultTree = TreeUtil.getJava8ResultTree(mapList);
+
+        return mapList;
+    }
+
+        @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean batchUpdateCompany(List<CompanyPO> list) {
+        log.info("开始批量更新企业信息,总数:{}", list == null ? 0 : list.size());
+        
+        // 参数校验
+        if (CollectionUtils.isEmpty(list)) {
+            log.warn("批量更新企业信息参数为空");
+            return false;
+        }
+        
+        // 数据预处理
+        preprocessCompanyList(list);
+        int batchSize=50;
+        
+        try {
+            // 分批处理,避免一次性处理过多数据
+            List<List<CompanyPO>> partitions = Lists.partition(list, batchSize);
+            int totalSuccess = 0;
+            
+            for (int i = 0; i < partitions.size(); i++) {
+                List<CompanyPO> partition = partitions.get(i);
+                log.info("处理第 {}/{} 批次,本批数量:{}", i + 1, partitions.size(), partition.size());
+                
+                boolean result = companyMapper.batchUpdateCompany(partition);
+                if (result) {
+                    totalSuccess += partition.size();
+                } else {
+                    log.error("第 {} 批次更新失败", i + 1);
+                    throw new RuntimeException("第 " + (i + 1) + " 批次更新失败");
+                }
+            }
+            
+            log.info("批量更新企业信息完成,成功处理记录数:{}", totalSuccess);
+            return true;
+            
+        } catch (Exception e) {
+            log.error("批量更新企业信息异常", e);
+            throw new RuntimeException("批量更新企业信息失败: " + e.getMessage(), e);
+        }
+    }
+    
+    /**
+     * 数据预处理:设置默认值、数据清洗等
+     */
+    private void preprocessCompanyList(List<CompanyPO> companyList) {
+        companyList.forEach(company -> {
+            if (company.getState()== null) {
+                company.setState(1);
+            }
+            if (company.getDelState() == null) {
+                company.setDelState(0);
+            }
+            if (company.getUpdateTime() == null) {
+                company.setUpdateTime(new java.util.Date());
+            }
+        });
+    }
+}

+ 76 - 0
energy-manage-service/src/main/resources/mybatis/company/CompanyMapper.xml

@@ -0,0 +1,76 @@
+<?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.energy.manage.service.mappers.company.CompanyMapper">
+
+    <sql id="BASE_COMPANY_SQL">
+      wc.id AS id,
+      wc.company_code AS companyCode,
+      wc.company_name AS companyName,
+      wc.state AS state,
+      wc.province_id AS provinceId,
+      wc.described as described,
+      wc.sort AS sort,
+      wc.del_state AS delState,
+      wc.create_by AS createBy,
+      wc.create_time AS createTime,
+      wc.update_by AS updateBy,
+      wc.update_time AS updateTime
+    </sql>
+
+    <select id="getAllCompany" resultType="com.energy.manage.common.po.company.CompanyPO">
+        SELECT <include refid="BASE_COMPANY_SQL"/>
+        FROM wind_company wc
+        ORDER BY wc.id ASC
+    </select>
+
+    <insert id="batchUpdateCompany" parameterType="java.util.List">
+    INSERT INTO wind_company (
+        id,
+        company_code,
+        company_name,
+        state,
+        province_id,
+        province_name,
+        city_id,
+        city_name,
+        described,
+        del_state,
+        create_by,
+        create_time,
+        update_by,
+        update_time
+    ) VALUES
+    <foreach collection="list" item="item" separator=",">
+        (
+            #{item.id},
+            #{item.companyCode},
+            #{item.companyName},
+            #{item.state},
+            #{item.provinceId},
+            #{item.provinceName},
+            #{item.cityId},
+            #{item.cityName},
+            #{item.described},
+            #{item.delState},
+            #{item.createBy},
+            #{item.createTime},
+            #{item.updateBy},
+            #{item.updateTime}
+        )
+    </foreach>
+    ON DUPLICATE KEY UPDATE
+        company_code = VALUES(company_code),
+        company_name = VALUES(company_name),
+        state = VALUES(state),
+        province_id = VALUES(province_id),
+        province_name = VALUES(province_name),
+        city_id = VALUES(city_id),
+        city_name = VALUES(city_name),
+        described = VALUES(described),
+        del_state = VALUES(del_state),
+        update_by = VALUES(update_by),
+        update_time = VALUES(update_time)
+</insert>
+
+</mapper>