Browse Source

Merge remote-tracking branch 'origin/master' into dev-xjf

pull/24/head
肖晋飞 2 months ago
parent
commit
bbbfa9c54f
  1. 4
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
  2. 63
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/FactoryController.java
  3. 24
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryBaseVO.java
  4. 12
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryCreateReqVO.java
  5. 16
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryPageReqVO.java
  6. 22
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryRespVO.java
  7. 30
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactorySaveReqVO.java
  8. 16
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryUpdateReqVO.java
  9. 28
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/config/FactoryConvert.java
  10. 30
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/config/FactoryDO.java
  11. 16
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/config/FactoryMapper.java
  12. 60
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/Factory/FactoryService.java
  13. 65
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/Factory/FactoryServiceImpl.java
  14. 22
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/config/FactoryMapper.xml
  15. 29
      yudao-server/src/main/java/cn/iocoder/yudao/server/config/MybatisPlusCustomConfig.java

4
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java

@ -178,4 +178,8 @@ public interface ErrorCodeConstants {
ErrorCode WARN_NOT_EXISTS = new ErrorCode(4_001_000, "预警不存在");
ErrorCode Company_NOT_EXISTS = new ErrorCode(1_002_30_000,"集团不存在");
ErrorCode Company_NAME_DUPLICATE = new ErrorCode(1_002_31_000,"集团名称已存在");
// ========== 厂级 1-002-32-000 ==========
ErrorCode Factory_NOT_EXISTS = new ErrorCode(1_002_32_000, "厂级不存在");
ErrorCode Factory_NAME_DUPLICATE = new ErrorCode(1_002_32_001, "已经存在相同名字的厂级");
}

63
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/FactoryController.java

@ -0,0 +1,63 @@
package cn.iocoder.yudao.module.system.controller.admin.config.Factory;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactoryPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactoryRespVO;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactorySaveReqVO;
import cn.iocoder.yudao.module.system.convert.config.FactoryConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.config.FactoryDO;
import cn.iocoder.yudao.module.system.service.config.Factory.FactoryService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor; // 新增导入
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 厂级管理")
@RestController
@RequestMapping("/system/Factory")
@Validated
@RequiredArgsConstructor // << 修改点1:新增注解
public class FactoryController {
private final FactoryService factoryService; // << 修改点2:移除@Resource, 添加final
@GetMapping("/page")
@Operation(summary = "获得厂级分页列表")
public CommonResult<PageResult<FactoryRespVO>> getFactoryPage(@Valid FactoryPageReqVO reqVO) {
PageResult<FactoryRespVO> pageResult = factoryService.getFactoryPage(reqVO);
return success(pageResult);
}
// ... 其他方法保持不变 ...
@GetMapping("/get")
@Operation(summary = "获得厂级详情")
public CommonResult<FactoryRespVO> getFactory(@RequestParam("id") Long id) {
FactoryDO factory = factoryService.getFactory(id);
return success(FactoryConvert.INSTANCE.convert(factory));
}
@PostMapping("/create")
@Operation(summary = "创建厂级")
public CommonResult<Long> createFactory(@Valid @RequestBody FactorySaveReqVO reqVO) {
return success(factoryService.createFactory(reqVO));
}
@PutMapping("/update")
@Operation(summary = "修改厂级")
public CommonResult<Boolean> updateFactory(@Valid @RequestBody FactorySaveReqVO reqVO) {
factoryService.updateFactory(reqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除厂级")
public CommonResult<Boolean> deleteFactory(@RequestParam("id") Long id) {
factoryService.deleteFactory(id);
return success(true);
}
}

24
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryBaseVO.java

@ -0,0 +1,24 @@
package cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 厂级基础VO")
@Data
public class FactoryBaseVO {
@Schema(description = "序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id;
@Schema(description = "厂级序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
private Long num;
@Schema(description = "厂级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试厂级")
private String name;
@Schema(description = "厂级简称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试")
private String shortName;
}

12
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryCreateReqVO.java

@ -0,0 +1,12 @@
package cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo;
import cn.iocoder.yudao.module.system.controller.admin.config.Company.vo.CompanyBaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description = "管理后台 - 厂级创建请求VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class FactoryCreateReqVO extends CompanyBaseVO {
}

16
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryPageReqVO.java

@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description = "管理后台 - 厂级分页请求VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class FactoryPageReqVO extends PageParam {
@Schema(description = "厂级名称", example = "测试")
private String name;
private Long num;
}

22
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryRespVO.java

@ -0,0 +1,22 @@
package cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 电厂响应 VO")
@Data
public class FactoryRespVO {
@Schema(description = "电厂编号 (对应 plant_id)", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "电厂名称 (对应 plant_name)", requiredMode = Schema.RequiredMode.REQUIRED)
private String name;
@Schema(description = "电厂简称 (对应 plant_shortname)")
private String shortName;
@Schema(description = "所属集团编号 (对应 area_id)", requiredMode = Schema.RequiredMode.REQUIRED)
private Long areaId;
@Schema(description = "所属集团名称 (后端关联查询得到)")
private String areaName;
@Schema(description = "创建时间")
private LocalDateTime createTime;
}

30
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactorySaveReqVO.java

@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data; // 新增导入
@Schema(description = "管理后台 - 电厂创建/修改 Request VO")
@Data // << 修改点:新增注解,并移除所有手写的getter/setter
public class FactorySaveReqVO {
@Schema(description = "电厂编号,更新时必填", example = "1")
private Long id;
@Schema(description = "电厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "正宁电厂")
@NotBlank(message = "电厂名称不能为空")
@Size(max = 255)
private String name;
@Schema(description = "电厂简称", example = "正宁")
@Size(max = 50)
private String shortName;
@Schema(description = "所属集团编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9")
@NotNull(message = "所属集团不能为空")
private Long areaId;
// --- 此处所有手写的 Getter 和 Setter 方法均已删除 ---
}

16
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/Factory/vo/FactoryUpdateReqVO.java

@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo;
import cn.iocoder.yudao.module.system.controller.admin.config.Company.vo.CompanyBaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description = "管理后台 - 厂级更新请求VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class FactoryUpdateReqVO extends CompanyBaseVO {
@Schema(description = "序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id;
}

28
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/config/FactoryConvert.java

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.system.convert.config;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactoryRespVO;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactorySaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.config.FactoryDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper(componentModel = "spring") // 【核心修正】添加 componentModel = "spring" 属性
public interface FactoryConvert {
FactoryConvert INSTANCE = Mappers.getMapper(FactoryConvert.class);
// 将 SaveReqVO 转换为 DO
FactoryDO convert(FactorySaveReqVO bean);
// 将 DO 转换为 RespVO
FactoryRespVO convert(FactoryDO bean);
// 将 DO 列表转换为 RespVO 列表
List<FactoryRespVO> convertList(List<FactoryDO> list);
// 将 DO 分页 转换为 RespVO 分页
PageResult<FactoryRespVO> convertPage(PageResult<FactoryDO> page);
}

30
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/config/FactoryDO.java

@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.system.dal.dataobject.config;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
@TableName("plant_cfg")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FactoryDO {
@TableId("plant_id")
private Long id;
@TableField("plant_name")
private String name;
@TableField("plant_shortname")
private String shortName;
@TableField("area_id")
private Long areaId;
@TableField(exist = false)
private String areaName;
}

16
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/config/FactoryMapper.java

@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.system.dal.mysql.config;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactoryPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.config.FactoryDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface FactoryMapper extends BaseMapperX<FactoryDO> {
IPage<FactoryDO> selectFactoryPage(Page<?> page, @Param("reqVO") FactoryPageReqVO reqVO);
}

60
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/Factory/FactoryService.java

@ -0,0 +1,60 @@
package cn.iocoder.yudao.module.system.service.config.Factory;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactoryPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactoryRespVO;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactorySaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.config.FactoryDO;
import jakarta.validation.Valid;
import java.util.Collection;
import java.util.List;
public interface FactoryService {
/**
* 创建电厂
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createFactory(@Valid FactorySaveReqVO createReqVO);
/**
* 更新电厂
*
* @param updateReqVO 更新信息
*/
void updateFactory(@Valid FactorySaveReqVO updateReqVO);
/**
* 删除电厂
*
* @param id 编号
*/
void deleteFactory(Long id);
/**
* 获得电厂
*
* @param id 编号
* @return 电厂
*/
FactoryDO getFactory(Long id);
/**
* 获得电厂列表
*
* @param ids 编号
* @return 电厂列表
*/
List<FactoryDO> getFactoryList(Collection<Long> ids);
/**
* 获得电厂分页
*
* @param pageReqVO 分页查询
* @return 电厂分页
*/
PageResult<FactoryRespVO> getFactoryPage(FactoryPageReqVO pageReqVO);
}

65
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/Factory/FactoryServiceImpl.java

@ -0,0 +1,65 @@
package cn.iocoder.yudao.module.system.service.config.Factory;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactoryPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactoryRespVO;
import cn.iocoder.yudao.module.system.controller.admin.config.Factory.vo.FactorySaveReqVO;
import cn.iocoder.yudao.module.system.convert.config.FactoryConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.config.FactoryDO;
import cn.iocoder.yudao.module.system.dal.mysql.config.FactoryMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; // 新增导入
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@Service
@Validated
@RequiredArgsConstructor // << 修改点1:新增注解
public class FactoryServiceImpl implements FactoryService {
private final FactoryMapper factoryMapper; // << 修改点2:移除@Resource, 添加final
private final FactoryConvert factoryConvert; // << 修改点3:移除@Resource, 添加final
@Override
public Long createFactory(FactorySaveReqVO createReqVO) {
FactoryDO factory = factoryConvert.convert(createReqVO);
factoryMapper.insert(factory);
return factory.getId();
}
@Override
public void updateFactory(FactorySaveReqVO updateReqVO) {
FactoryDO updateObj = factoryConvert.convert(updateReqVO);
factoryMapper.updateById(updateObj);
}
@Override
public void deleteFactory(Long id) {
factoryMapper.deleteById(id);
}
@Override
public FactoryDO getFactory(Long id) {
return factoryMapper.selectById(id);
}
@Override
public List<FactoryDO> getFactoryList(Collection<Long> ids) {
if (ids == null || ids.isEmpty()) {
return Collections.emptyList();
}
return factoryMapper.selectBatchIds(ids);
}
@Override
public PageResult<FactoryRespVO> getFactoryPage(FactoryPageReqVO pageReqVO) {
Page<FactoryDO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
IPage<FactoryDO> pageResult = factoryMapper.selectFactoryPage(page, pageReqVO);
return new PageResult<>(factoryConvert.convertList(pageResult.getRecords()), pageResult.getTotal());
}
}

22
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/config/FactoryMapper.xml

@ -0,0 +1,22 @@
<?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="cn.iocoder.yudao.module.system.dal.mysql.config.FactoryMapper">
<select id="selectFactoryPage" resultType="cn.iocoder.yudao.module.system.dal.dataobject.config.FactoryDO">
SELECT
p.plant_id AS id,
p.plant_name AS name,
p.plant_shortname AS short_name,
p.area_id,
a.area_name AS area_name
FROM
plant_cfg AS p
LEFT JOIN area_cfg AS a ON p.area_id = a.area_id
<where>
<if test="reqVO.name != null and reqVO.name != ''">
AND p.plant_name LIKE CONCAT('%', #{reqVO.name}, '%')
</if>
</where>
</select>
</mapper>

29
yudao-server/src/main/java/cn/iocoder/yudao/server/config/MybatisPlusCustomConfig.java

@ -0,0 +1,29 @@
package cn.iocoder.yudao.server.config;
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusPropertiesCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* MyBatis Plus 的自定义配置类
*
* @author 芋道源码
*/
@Configuration
public class MybatisPlusCustomConfig {
/**
* 创建一个 MybatisPlusPropertiesCustomizer Bean
* 用于在 Spring Boot 自动配置 MyBatis-Plus 之前自定义其属性
*/
@Bean
public MybatisPlusPropertiesCustomizer mybatisPlusPropertiesCustomizer() {
return properties -> {
// 【核心配置】在这里用代码的方式,为 mybatis-plus.mapper-locations 赋上我们期望的值
// "classpath*:mapper/**/*.xml" 会递归扫描所有模块下 resources/mapper 目录中的所有xml文件
String[] mapperLocations = {"classpath*:mapper/**/*.xml"};
properties.setMapperLocations(mapperLocations);
};
}
}
Loading…
Cancel
Save