diff --git a/sql/demo.sql b/sql/demo.sql index 04db773..8e44057 100644 --- a/sql/demo.sql +++ b/sql/demo.sql @@ -62,3 +62,30 @@ VALUES (13, 12, '溶液量低提示', 'sys_setting_volume', '300', '', '' ), (14, 12, '异常处理区', 'sys_setting_abnormal_area', '7' , '', ''), (15, 12, '设备信息', 'sys_setting_info', '12345' , '', ''); + + +-- 创建 solutions 溶液 表 +CREATE TABLE IF NOT EXISTS solutions ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name VARCHAR NOT NULL, + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- 创建 ores 矿石 表 +CREATE TABLE IF NOT EXISTS ores ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name VARCHAR NOT NULL, + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- 创建 crafts 工艺 表 +CREATE TABLE IF NOT EXISTS crafts ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name VARCHAR NOT NULL, + steps TEXT, + ores_id INTEGER, + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); diff --git a/src/main/java/com/qyft/gd/controller/CraftsController.java b/src/main/java/com/qyft/gd/controller/CraftsController.java new file mode 100644 index 0000000..69a0f02 --- /dev/null +++ b/src/main/java/com/qyft/gd/controller/CraftsController.java @@ -0,0 +1,59 @@ +package com.qyft.gd.controller; + +import com.qyft.gd.model.entity.Crafts; +import com.qyft.gd.model.vo.CraftsListVO; +import com.qyft.gd.service.CraftsService; +import com.qyft.gd.system.common.base.BasePageQuery; +import com.qyft.gd.system.common.result.PageResult; +import com.qyft.gd.system.common.result.Result; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "工艺管理") +@RestController +@RequestMapping("/api/crafts") +@RequiredArgsConstructor +@Slf4j +public class CraftsController { + private final CraftsService craftsService; + + @Operation(summary = "工艺列表") + @GetMapping("/list") + public PageResult getAllCrafts(BasePageQuery pageQuery) { + return PageResult.success(null); + } + + @Operation(summary = "添加新工艺") + @PostMapping("/") + public Result addCrafts(@RequestBody Crafts crafts) { + return Result.success(); + } + + @Operation(summary = "更新工艺") + @PutMapping("/{id}") + public Result updateCrafts(@PathVariable Long id, @RequestBody Crafts crafts) { + return Result.success(); + } + + @Operation(summary = "删除工艺") + @DeleteMapping("/{ids}") + public Result deleteCrafts(@Parameter(description = "工艺ID,多个以英文逗号(,)分割") @PathVariable String ids) { + return Result.success(); + } + + @Operation(summary = "开始执行工艺") + @PostMapping("/start") + public Result startCrafts(@Parameter(description = "工艺id") @RequestParam Long craftId, @Parameter(description = "加热区idid") @RequestParam Long heatId) { + return Result.success(); + } + + @Operation(summary = "停止执行工艺") + @PostMapping("/stop") + public Result stopCrafts(@Parameter(description = "加热区id") @RequestParam Long heatId) { + return Result.success(); + } +} diff --git a/src/main/java/com/qyft/gd/controller/OresController.java b/src/main/java/com/qyft/gd/controller/OresController.java new file mode 100644 index 0000000..9a8d1e2 --- /dev/null +++ b/src/main/java/com/qyft/gd/controller/OresController.java @@ -0,0 +1,50 @@ +package com.qyft.gd.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.qyft.gd.model.entity.Ores; +import com.qyft.gd.service.OresService; +import com.qyft.gd.system.common.base.BasePageQuery; +import com.qyft.gd.system.common.result.PageResult; +import com.qyft.gd.system.common.result.Result; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "矿石管理") +@RestController +@RequestMapping("/api/ores") +@RequiredArgsConstructor +@Slf4j +public class OresController { + private final OresService oresService; + + @Operation(summary = "矿石列表") + @GetMapping("/list") + public PageResult getAllOres(BasePageQuery pageQuery) { + IPage result = oresService.page(new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()), null); + return PageResult.success(result); + } + + @Operation(summary = "添加新矿石") + @PostMapping("/") + public Result addOres(@RequestBody Ores ores) { + return Result.success(); + } + + @Operation(summary = "更新矿石") + @PutMapping("/{id}") + public Result updateOres(@PathVariable Long id, @RequestBody Ores ores) { + return Result.success(); + } + + @Operation(summary = "删除矿石") + @DeleteMapping("/{ids}") + public Result deleteOres(@Parameter(description = "矿工是ID,多个以英文逗号(,)分割") @PathVariable String ids) { + return Result.success(); + } + +} diff --git a/src/main/java/com/qyft/gd/controller/SolutionsController.java b/src/main/java/com/qyft/gd/controller/SolutionsController.java new file mode 100644 index 0000000..059cbde --- /dev/null +++ b/src/main/java/com/qyft/gd/controller/SolutionsController.java @@ -0,0 +1,74 @@ +package com.qyft.gd.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.qyft.gd.model.entity.Solutions; +import com.qyft.gd.service.SolutionsService; +import com.qyft.gd.system.common.base.BasePageQuery; +import com.qyft.gd.system.common.result.PageResult; +import com.qyft.gd.system.common.result.Result; +import com.qyft.gd.system.common.result.ResultCode; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "溶液管理") +@RestController +@RequestMapping("/api/sols") +@RequiredArgsConstructor +@Slf4j +public class SolutionsController { + private final SolutionsService solutionsService; + + @Operation(summary = "溶液列表") + @GetMapping("/list") + public PageResult getAllSols(BasePageQuery pageQuery) { + IPage result = solutionsService.page(new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()), null); + return PageResult.success(result); + } + + @Operation(summary = "添加新溶液") + @PostMapping("/") + public Result addSolutions(@RequestBody Solutions solutions) { + Solutions existingSolutions = solutionsService.findByName(solutions.getName()); + if (existingSolutions == null) { + boolean isSuccess = solutionsService.addSolutions(solutions); + if (isSuccess) { + return Result.success(); + } + } else { + return Result.failed(ResultCode.DATA_ALREADY_EXISTS); + } + return Result.failed(); + } + + @Operation(summary = "更新溶液") + @PutMapping("/{id}") + public Result updateSolutions(@PathVariable Long id, @RequestBody Solutions solutions) { + Solutions existingSolutions = solutionsService.findByName(solutions.getName()); + if (existingSolutions == null) { + solutions.setId(id); + boolean isSuccess = solutionsService.updateSolutions(solutions); + if (isSuccess) { + return Result.success(); + } + } else { + return Result.failed(ResultCode.DATA_ALREADY_EXISTS); + } + return Result.failed(); + } + + @Operation(summary = "删除溶液") + @DeleteMapping("/{ids}") + public Result deleteUser(@Parameter(description = "溶液ID,多个以英文逗号(,)分割") @PathVariable String ids) { + boolean isSuccess = solutionsService.deleteSolutions(ids); + if (isSuccess) { + return Result.success(); + } + return Result.failed(); + } + +} diff --git a/src/main/java/com/qyft/gd/mapper/CraftsMapper.java b/src/main/java/com/qyft/gd/mapper/CraftsMapper.java new file mode 100644 index 0000000..d00918e --- /dev/null +++ b/src/main/java/com/qyft/gd/mapper/CraftsMapper.java @@ -0,0 +1,13 @@ +package com.qyft.gd.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qyft.gd.model.entity.Crafts; +import org.apache.ibatis.annotations.Mapper; + +/** + * 工艺持久层接口 + */ +@Mapper +public interface CraftsMapper extends BaseMapper { + +} diff --git a/src/main/java/com/qyft/gd/mapper/OresMapper.java b/src/main/java/com/qyft/gd/mapper/OresMapper.java new file mode 100644 index 0000000..8e2c164 --- /dev/null +++ b/src/main/java/com/qyft/gd/mapper/OresMapper.java @@ -0,0 +1,13 @@ +package com.qyft.gd.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qyft.gd.model.entity.Ores; +import org.apache.ibatis.annotations.Mapper; + +/** + * 矿石持久层接口 + */ +@Mapper +public interface OresMapper extends BaseMapper { + +} diff --git a/src/main/java/com/qyft/gd/mapper/SolutionsMapper.java b/src/main/java/com/qyft/gd/mapper/SolutionsMapper.java new file mode 100644 index 0000000..c7f8b03 --- /dev/null +++ b/src/main/java/com/qyft/gd/mapper/SolutionsMapper.java @@ -0,0 +1,15 @@ +package com.qyft.gd.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qyft.gd.model.entity.Solutions; +import com.qyft.gd.system.model.entity.User; +import org.apache.ibatis.annotations.Mapper; + +/** + * 溶液持久层接口 + */ +@Mapper +public interface SolutionsMapper extends BaseMapper { + + Solutions findByName(String name); +} diff --git a/src/main/java/com/qyft/gd/model/entity/Crafts.java b/src/main/java/com/qyft/gd/model/entity/Crafts.java new file mode 100644 index 0000000..9c167f3 --- /dev/null +++ b/src/main/java/com/qyft/gd/model/entity/Crafts.java @@ -0,0 +1,26 @@ + +package com.qyft.gd.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qyft.gd.system.common.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Schema(description = "工艺") +@TableName("crafts") +@Data +public class Crafts extends BaseEntity { + + @NotBlank + @Schema(description = "工艺名称") + private String name; + + @Schema(description = "工艺步骤") + private String steps; + + @Schema(description = "矿石ID") + private Integer oresId; +} diff --git a/src/main/java/com/qyft/gd/model/entity/Ores.java b/src/main/java/com/qyft/gd/model/entity/Ores.java new file mode 100644 index 0000000..ebf79c4 --- /dev/null +++ b/src/main/java/com/qyft/gd/model/entity/Ores.java @@ -0,0 +1,21 @@ + +package com.qyft.gd.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qyft.gd.system.common.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Schema(description = "矿石") +@TableName("ores") +@Data +public class Ores extends BaseEntity { + + @NotBlank() + @Schema(description = "矿石名称") + private String name; + +} diff --git a/src/main/java/com/qyft/gd/model/entity/Solutions.java b/src/main/java/com/qyft/gd/model/entity/Solutions.java new file mode 100644 index 0000000..4a48366 --- /dev/null +++ b/src/main/java/com/qyft/gd/model/entity/Solutions.java @@ -0,0 +1,20 @@ +package com.qyft.gd.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qyft.gd.system.common.base.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Schema(description = "溶液") +@TableName("solutions") +@Data +public class Solutions extends BaseEntity { + + @NotBlank() + @Schema(description = "溶液名称") + private String name; + +} diff --git a/src/main/java/com/qyft/gd/model/vo/CraftsListVO.java b/src/main/java/com/qyft/gd/model/vo/CraftsListVO.java new file mode 100644 index 0000000..6dbfa57 --- /dev/null +++ b/src/main/java/com/qyft/gd/model/vo/CraftsListVO.java @@ -0,0 +1,22 @@ +package com.qyft.gd.model.vo; + +import com.qyft.gd.model.entity.Crafts; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "工艺视图") +@Data +public class CraftsListVO { + + @Schema(description = "矿石id") + private String oresId; + + @Schema(description = "矿石名称") + private String oresName; + + @Schema(description = "该矿石下工艺列表") + private List craftsList; + +} diff --git a/src/main/java/com/qyft/gd/service/CraftsService.java b/src/main/java/com/qyft/gd/service/CraftsService.java new file mode 100644 index 0000000..b49efb7 --- /dev/null +++ b/src/main/java/com/qyft/gd/service/CraftsService.java @@ -0,0 +1,11 @@ +package com.qyft.gd.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qyft.gd.model.entity.Crafts; + +/** + * 工艺业务接口 + */ +public interface CraftsService extends IService { + +} diff --git a/src/main/java/com/qyft/gd/service/OresService.java b/src/main/java/com/qyft/gd/service/OresService.java new file mode 100644 index 0000000..dd73b09 --- /dev/null +++ b/src/main/java/com/qyft/gd/service/OresService.java @@ -0,0 +1,12 @@ +package com.qyft.gd.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qyft.gd.model.entity.Ores; +import com.qyft.gd.model.entity.Solutions; + +/** + * 矿石业务接口 + */ +public interface OresService extends IService { + +} diff --git a/src/main/java/com/qyft/gd/service/SolutionsService.java b/src/main/java/com/qyft/gd/service/SolutionsService.java new file mode 100644 index 0000000..3385f7a --- /dev/null +++ b/src/main/java/com/qyft/gd/service/SolutionsService.java @@ -0,0 +1,18 @@ +package com.qyft.gd.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qyft.gd.model.entity.Solutions; + +/** + * 溶液业务接口 + */ +public interface SolutionsService extends IService { + + Solutions findByName(String name); + + boolean addSolutions(Solutions solutions); + + boolean updateSolutions(Solutions solutions); + + boolean deleteSolutions(String idsStr); +} diff --git a/src/main/java/com/qyft/gd/service/impl/CraftsServiceImpl.java b/src/main/java/com/qyft/gd/service/impl/CraftsServiceImpl.java new file mode 100644 index 0000000..0485ed5 --- /dev/null +++ b/src/main/java/com/qyft/gd/service/impl/CraftsServiceImpl.java @@ -0,0 +1,21 @@ +package com.qyft.gd.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qyft.gd.mapper.CraftsMapper; +import com.qyft.gd.mapper.OresMapper; +import com.qyft.gd.model.entity.Crafts; +import com.qyft.gd.model.entity.Ores; +import com.qyft.gd.service.CraftsService; +import com.qyft.gd.service.OresService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * 工艺业务实现类 + */ +@Service +@RequiredArgsConstructor +public class CraftsServiceImpl extends ServiceImpl implements CraftsService { + + +} diff --git a/src/main/java/com/qyft/gd/service/impl/OresServiceImpl.java b/src/main/java/com/qyft/gd/service/impl/OresServiceImpl.java new file mode 100644 index 0000000..b050c5f --- /dev/null +++ b/src/main/java/com/qyft/gd/service/impl/OresServiceImpl.java @@ -0,0 +1,18 @@ +package com.qyft.gd.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qyft.gd.mapper.OresMapper; +import com.qyft.gd.model.entity.Ores; +import com.qyft.gd.service.OresService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * 矿石业务实现类 + */ +@Service +@RequiredArgsConstructor +public class OresServiceImpl extends ServiceImpl implements OresService { + + +} diff --git a/src/main/java/com/qyft/gd/service/impl/SolutionsServiceImpl.java b/src/main/java/com/qyft/gd/service/impl/SolutionsServiceImpl.java new file mode 100644 index 0000000..28ef116 --- /dev/null +++ b/src/main/java/com/qyft/gd/service/impl/SolutionsServiceImpl.java @@ -0,0 +1,44 @@ +package com.qyft.gd.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qyft.gd.mapper.SolutionsMapper; +import com.qyft.gd.model.entity.Solutions; +import com.qyft.gd.service.SolutionsService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 溶液业务实现类 + */ +@Service +@RequiredArgsConstructor +public class SolutionsServiceImpl extends ServiceImpl implements SolutionsService { + + @Override + public Solutions findByName(String name) { + this.baseMapper.findByName(name); + return null; + } + + @Override + public boolean addSolutions(Solutions solutions) { + return this.baseMapper.insert(solutions) > 0; + } + + @Override + public boolean updateSolutions(Solutions solutions) { + return this.baseMapper.updateById(solutions) > 0; + } + + @Override + public boolean deleteSolutions(String idsStr) { + List ids = Arrays.stream(idsStr.split(",")) + .map(Long::parseLong) + .collect(Collectors.toList()); + return this.removeByIds(ids); + } +} diff --git a/src/main/resources/mapper/CraftsMapper.xml b/src/main/resources/mapper/CraftsMapper.xml new file mode 100644 index 0000000..f75fde2 --- /dev/null +++ b/src/main/resources/mapper/CraftsMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/mapper/OresMapper.xml b/src/main/resources/mapper/OresMapper.xml new file mode 100644 index 0000000..392a5ad --- /dev/null +++ b/src/main/resources/mapper/OresMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/mapper/SolutionsMapper.xml b/src/main/resources/mapper/SolutionsMapper.xml new file mode 100644 index 0000000..c2af90d --- /dev/null +++ b/src/main/resources/mapper/SolutionsMapper.xml @@ -0,0 +1,8 @@ + + + + + +