Newspaper 1 年間 前
コミット
ed00637783

+ 140 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/controller/PigpenStageController.java

@@ -0,0 +1,140 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.common.pojo.CommonValidList;
+import vip.xiaonuo.modular.stage.param.PigpenStageAddParam;
+import vip.xiaonuo.modular.stage.param.PigpenStageEditParam;
+import vip.xiaonuo.modular.stage.param.PigpenStageIdParam;
+import vip.xiaonuo.modular.stage.param.PigpenStagePageParam;
+import vip.xiaonuo.modular.stage.entity.PigpenStage;
+import vip.xiaonuo.modular.stage.service.PigpenStageService;
+
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 栋舍阶段控制器
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ */
+@Api(tags = "栋舍阶段控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class PigpenStageController {
+
+    @Resource
+    private PigpenStageService pigpenStageService;
+
+    /**
+     * 获取栋舍阶段分页
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取栋舍阶段分页")
+    @GetMapping("/biz/stage/page")
+    public CommonResult<Page<PigpenStage>> page(PigpenStagePageParam pigpenStagePageParam) {
+        return CommonResult.data(pigpenStageService.page(pigpenStagePageParam));
+    }
+
+    /**
+     * 添加栋舍阶段
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加栋舍阶段")
+    @CommonLog("添加栋舍阶段")
+    @PostMapping("/biz/stage/add")
+    public CommonResult<String> add(@RequestBody @Valid PigpenStageAddParam pigpenStageAddParam) {
+        pigpenStageService.add(pigpenStageAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑栋舍阶段
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑栋舍阶段")
+    @CommonLog("编辑栋舍阶段")
+    @PostMapping("/biz/stage/edit")
+    public CommonResult<String> edit(@RequestBody @Valid PigpenStageEditParam pigpenStageEditParam) {
+        pigpenStageService.edit(pigpenStageEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除栋舍阶段
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除栋舍阶段")
+    @CommonLog("删除栋舍阶段")
+    @PostMapping("/biz/stage/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<PigpenStageIdParam> pigpenStageIdParamList) {
+        pigpenStageService.delete(pigpenStageIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取栋舍阶段详情
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取栋舍阶段详情")
+    @GetMapping("/biz/stage/detail")
+    public CommonResult<PigpenStage> detail(@Valid PigpenStageIdParam pigpenStageIdParam) {
+        return CommonResult.data(pigpenStageService.detail(pigpenStageIdParam));
+    }
+
+    /**
+     * 获取所有栋舍阶段
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    @ApiOperationSupport(order = 6)
+    @ApiOperation("获取所有栋舍阶段")
+    @GetMapping("/biz/stage/list")
+    public CommonResult<List<PigpenStage>> list() {
+        return CommonResult.data(pigpenStageService.getAllPigpenList());
+    }
+}

+ 73 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/entity/PigpenStage.java

@@ -0,0 +1,73 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 栋舍阶段实体
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+@Getter
+@Setter
+@TableName("PIGPEN_STAGE")
+public class PigpenStage {
+
+    /** ID */
+    @TableId
+    @ApiModelProperty(value = "ID", position = 1)
+    private String id;
+
+    /** 阶段 */
+    @ApiModelProperty(value = "阶段名称", position = 2)
+    private String stageName;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 3)
+    private String orgId;
+
+    /** 排序码 */
+    @ApiModelProperty(value = "排序码", position = 4)
+    private Integer sortCode;
+
+    /** 删除标志 */
+    @ApiModelProperty(value = "删除标志", position = 5)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 6)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** 创建用户 */
+    @ApiModelProperty(value = "创建用户", position = 7)
+    private String createBy;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 8)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** 修改用户 */
+    @ApiModelProperty(value = "修改用户", position = 9)
+    private String updateBy;
+}

+ 34 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/enums/PigpenStageEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.enums;
+
+import lombok.Getter;
+
+/**
+ * 栋舍阶段枚举
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+@Getter
+public enum PigpenStageEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    PigpenStageEnum(String value) {
+        this.value = value;
+    }
+}

+ 26 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/mapper/PigpenStageMapper.java

@@ -0,0 +1,26 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.modular.stage.entity.PigpenStage;
+
+
+/**
+ * 栋舍阶段Mapper接口
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+public interface PigpenStageMapper extends BaseMapper<PigpenStage> {
+}

+ 5 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/mapper/mapping/PigpenStageMapper.xml

@@ -0,0 +1,5 @@
+<?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="vip.xiaonuo.modular.stage.mapper.PigpenStageMapper">
+
+</mapper>

+ 54 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/param/PigpenStageAddParam.java

@@ -0,0 +1,54 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 栋舍阶段添加参数
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+@Getter
+@Setter
+public class PigpenStageAddParam {
+
+    /** 阶段 */
+    @ApiModelProperty(value = "阶段名称", position = 2)
+    private String stageName;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 3)
+    private String orgId;
+
+    /** 排序码 */
+    @ApiModelProperty(value = "排序码", position = 4)
+    private Integer sortCode;
+
+    /** 创建用户 */
+    @ApiModelProperty(value = "创建用户", position = 7)
+    private String createBy;
+
+    /** 修改用户 */
+    @ApiModelProperty(value = "修改用户", position = 9)
+    private String updateBy;
+
+}

+ 59 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/param/PigpenStageEditParam.java

@@ -0,0 +1,59 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 栋舍阶段编辑参数
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+@Getter
+@Setter
+public class PigpenStageEditParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true, position = 1)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 阶段 */
+    @ApiModelProperty(value = "阶段名称", position = 2)
+    private String stageName;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 3)
+    private String orgId;
+
+    /** 排序码 */
+    @ApiModelProperty(value = "排序码", position = 4)
+    private Integer sortCode;
+
+    /** 创建用户 */
+    @ApiModelProperty(value = "创建用户", position = 7)
+    private String createBy;
+
+    /** 修改用户 */
+    @ApiModelProperty(value = "修改用户", position = 9)
+    private String updateBy;
+
+}

+ 35 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/param/PigpenStageIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 栋舍阶段Id参数
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+@Getter
+@Setter
+public class PigpenStageIdParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 51 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/param/PigpenStagePageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 栋舍阶段查询参数
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+@Getter
+@Setter
+public class PigpenStagePageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @ApiModelProperty(value = "关键词")
+    private String searchKey;
+
+}

+ 84 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/service/PigpenStageService.java

@@ -0,0 +1,84 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.service;
+
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.modular.stage.param.PigpenStageAddParam;
+import vip.xiaonuo.modular.stage.param.PigpenStageEditParam;
+import vip.xiaonuo.modular.stage.param.PigpenStageIdParam;
+import vip.xiaonuo.modular.stage.param.PigpenStagePageParam;
+import vip.xiaonuo.modular.stage.entity.PigpenStage;
+
+import java.util.List;
+
+/**
+ * 栋舍阶段Service接口
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+public interface PigpenStageService extends IService<PigpenStage> {
+
+    /**
+     * 获取栋舍阶段分页
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    Page<PigpenStage> page(PigpenStagePageParam pigpenStagePageParam);
+
+    /**
+     * 添加栋舍阶段
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    void add(PigpenStageAddParam pigpenStageAddParam);
+
+    /**
+     * 编辑栋舍阶段
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    void edit(PigpenStageEditParam pigpenStageEditParam);
+
+    /**
+     * 删除栋舍阶段
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    void delete(List<PigpenStageIdParam> pigpenStageIdParamList);
+
+    /**
+     * 获取栋舍阶段详情
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     */
+    PigpenStage detail(PigpenStageIdParam pigpenStageIdParam);
+
+    /**
+     * 获取栋舍阶段详情
+     *
+     * @author newspaper
+     * @date  2023/12/05 15:12
+     **/
+    PigpenStage queryEntity(String id);
+
+    List<PigpenStage> getAllPigpenList();
+}

+ 130 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/stage/service/impl/PigpenStageServiceImpl.java

@@ -0,0 +1,130 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.stage.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.listener.CommonDataChangeEventCenter;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.core.enums.BaseDataTypeEnum;
+import vip.xiaonuo.modular.stage.param.PigpenStageAddParam;
+import vip.xiaonuo.modular.stage.param.PigpenStageEditParam;
+import vip.xiaonuo.modular.stage.param.PigpenStageIdParam;
+import vip.xiaonuo.modular.stage.param.PigpenStagePageParam;
+import vip.xiaonuo.modular.stage.service.PigpenStageService;
+import vip.xiaonuo.modular.stage.entity.PigpenStage;
+import vip.xiaonuo.modular.stage.mapper.PigpenStageMapper;
+
+
+import java.util.List;
+
+/**
+ * 栋舍阶段Service接口实现类
+ *
+ * @author newspaper
+ * @date  2023/12/05 15:12
+ **/
+@Service
+public class PigpenStageServiceImpl extends ServiceImpl<PigpenStageMapper, PigpenStage> implements PigpenStageService {
+
+    @Override
+    public Page<PigpenStage> page(PigpenStagePageParam pigpenStagePageParam) {
+        QueryWrapper<PigpenStage> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isAllNotEmpty(pigpenStagePageParam.getSortField(), pigpenStagePageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(pigpenStagePageParam.getSortOrder());
+            queryWrapper.orderBy(true, pigpenStagePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(pigpenStagePageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(PigpenStage::getSortCode);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(PigpenStageAddParam pigpenStageAddParam) {
+        SaBaseLoginUser user = StpLoginUserUtil.getLoginUser();
+        PigpenStage pigpenStage = BeanUtil.toBean(pigpenStageAddParam, PigpenStage.class);
+        pigpenStage.setOrgId(user.getOrgId());
+        boolean repeatName = this.count(new LambdaQueryWrapper<PigpenStage>().eq(PigpenStage::getStageName, pigpenStage.getStageName()).eq(PigpenStage::getOrgId, user.getOrgId())) > 0;
+        if (repeatName){
+            throw new CommonException("存在重复的栋舍阶段,名称为:{}", pigpenStage.getStageName());
+        }
+        this.save(pigpenStage);
+
+        //发布增加事件
+        CommonDataChangeEventCenter.doAddWithData(BaseDataTypeEnum.STAGE.getValue(), JSONUtil.createArray().put(pigpenStage));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(PigpenStageEditParam pigpenStageEditParam) {
+        SaBaseLoginUser user = StpLoginUserUtil.getLoginUser();
+        PigpenStage pigpenStage = this.queryEntity(pigpenStageEditParam.getId());
+        BeanUtil.copyProperties(pigpenStageEditParam, pigpenStage);
+        boolean repeatName = this.count(new LambdaQueryWrapper<PigpenStage>().eq(PigpenStage::getStageName, pigpenStage.getStageName()).eq(PigpenStage::getOrgId, user.getOrgId())) > 0;
+        if (repeatName){
+            throw new CommonException("存在重复的栋舍阶段,名称为:{}", pigpenStage.getStageName());
+        }
+        pigpenStage.setUpdateBy(user.getId());
+        this.updateById(pigpenStage);
+
+        //发布更新事件
+        CommonDataChangeEventCenter.doUpdateWithData(BaseDataTypeEnum.STAGE.getValue(), JSONUtil.createArray().put(pigpenStage));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<PigpenStageIdParam> pigpenStageIdParamList) {
+        List<String> toDeleteStageIdList = CollStreamUtil.toList(pigpenStageIdParamList, PigpenStageIdParam::getId);
+        // 执行删除
+        this.removeByIds(toDeleteStageIdList);
+
+        //发布删除事件
+        CommonDataChangeEventCenter.doDeleteWithDataId(BaseDataTypeEnum.STAGE.getValue(),toDeleteStageIdList);
+    }
+
+    @Override
+    public PigpenStage detail(PigpenStageIdParam pigpenStageIdParam) {
+        return this.queryEntity(pigpenStageIdParam.getId());
+    }
+
+    @Override
+    public PigpenStage queryEntity(String id) {
+        PigpenStage pigpenStage = this.getById(id);
+        if(ObjectUtil.isEmpty(pigpenStage)) {
+            throw new CommonException("栋舍阶段不存在,id值为:{}", id);
+        }
+        return pigpenStage;
+    }
+
+    @Override
+    public List<PigpenStage> getAllPigpenList() {
+        SaBaseLoginUser user = StpLoginUserUtil.getLoginUser();
+        List<PigpenStage> pigpenStages = this.list(new LambdaQueryWrapper<PigpenStage>().eq(PigpenStage::getOrgId, user.getOrgId()).orderByAsc(PigpenStage::getSortCode));
+        return pigpenStages;
+    }
+}