Merge remote-tracking branch 'origin/main'

This commit is contained in:
达富斌
2025-09-03 15:27:09 +08:00
71 changed files with 449 additions and 11533 deletions

View File

@@ -114,4 +114,6 @@ public class DeviceInfoPageReqVO extends PageParam {
@Schema(description = "租户id", example = "11502")
private String tenantId;
private String point;
}

View File

@@ -1,151 +1,151 @@
package cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 设备信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DeviceInfoRespVO {
@Schema(description = "设备全局唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "9620")
@ExcelProperty("设备全局唯一标识")
private String deviceUniqueId;
@Schema(description = "设备名称", example = "赵六")
@ExcelProperty("设备名称")
private String deviceName;
@Schema(description = "LP设备名称", example = "李四")
@ExcelProperty("LP设备名称")
private String lpDeviceName;
@Schema(description = "设备分类编码")
@ExcelProperty("设备分类编码")
private String categoryCode;
@Schema(description = "设备分类名称", example = "芋艿")
@ExcelProperty("设备分类名称")
private String deviceCategoryName;
@Schema(description = "设备分类ID", example = "15366")
@ExcelProperty("设备分类ID")
private String deviceCategoryUniqueId;
@Schema(description = "隔离标识", example = "29422")
@ExcelProperty("隔离标识")
private String farmIsolationId;
@Schema(description = "LP产品标识")
@ExcelProperty("LP产品标识")
private String lpProductKey;
@Schema(description = "LP产品名称", example = "李四")
@ExcelProperty("LP产品名称")
private String lpProductName;
@Schema(description = "LP产品唯一ID", example = "10175")
@ExcelProperty("LP产品唯一ID")
private String lpProductUniqueId;
@Schema(description = "设备状态", example = "2")
@ExcelProperty("设备状态")
private Integer status;
@Schema(description = "设备类型", example = "2")
@ExcelProperty("设备类型")
private String deviceType;
@Schema(description = "预留类型字段", example = "1")
@ExcelProperty("预留类型字段")
private String type;
@Schema(description = "设备厂商")
@ExcelProperty("设备厂商")
private String vendor;
@Schema(description = "设备描述", example = "随便")
@ExcelProperty("设备描述")
private String description;
@Schema(description = "分类描述类型", example = "1")
@ExcelProperty("分类描述类型")
private String categoryDescType;
@Schema(description = "创建时间戳")
@ExcelProperty("创建时间戳")
private LocalDateTime createTime;
@Schema(description = "记录创建时间")
@ExcelProperty("记录创建时间")
private LocalDateTime createdAt;
@Schema(description = "记录更新时间")
@ExcelProperty("记录更新时间")
private LocalDateTime updatedAt;
@Schema(description = "设备图片")
@ExcelProperty("设备图片")
private String image;
@Schema(description = "告警状态图片")
@ExcelProperty("告警状态图片")
private String alarmImage;
@Schema(description = "离线状态图片")
@ExcelProperty("离线状态图片")
private String offlineImage;
@Schema(description = "分类图标")
@ExcelProperty("分类图标")
private String categoryIcon;
@Schema(description = "电池电量(0-100)")
@ExcelProperty("电池电量(0-100)")
private Integer battery;
@Schema(description = "信号强度")
@ExcelProperty("信号强度")
private Short rssi;
@Schema(description = "物联网卡过期时间")
@ExcelProperty("物联网卡过期时间")
private LocalDateTime iotCardExpireTime;
@Schema(description = "是否存在物联网卡")
@ExcelProperty("是否存在物联网卡")
private Boolean isIotCardExisted;
@Schema(description = "边缘实例ID", example = "13311")
@ExcelProperty("边缘实例ID")
private String edgeInstanceUniqueId;
@Schema(description = "数据快照")
@ExcelProperty("数据快照")
private String dataImage;
@Schema(description = "基地id", example = "9675")
@ExcelProperty("基地id")
private String baseId;
@Schema(description = "基地", example = "芋艿")
@ExcelProperty("基地")
private String baseName;
@Schema(description = "地块ID", example = "22883")
@ExcelProperty("地块ID")
private String plotId;
@Schema(description = "地块", example = "李四")
@ExcelProperty("地块")
private String plotName;
@Schema(description = "租户id", example = "11502")
@ExcelProperty("租户id")
private String tenantId;
}
package cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 设备信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DeviceInfoRespVO {
@Schema(description = "设备全局唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "9620")
@ExcelProperty("设备全局唯一标识")
private String deviceUniqueId;
@Schema(description = "设备名称", example = "赵六")
@ExcelProperty("设备名称")
private String deviceName;
@Schema(description = "LP设备名称", example = "李四")
@ExcelProperty("LP设备名称")
private String lpDeviceName;
@Schema(description = "设备分类编码")
@ExcelProperty("设备分类编码")
private String categoryCode;
@Schema(description = "设备分类名称", example = "芋艿")
@ExcelProperty("设备分类名称")
private String deviceCategoryName;
@Schema(description = "设备分类ID", example = "15366")
@ExcelProperty("设备分类ID")
private String deviceCategoryUniqueId;
@Schema(description = "隔离标识", example = "29422")
@ExcelProperty("隔离标识")
private String farmIsolationId;
@Schema(description = "LP产品标识")
@ExcelProperty("LP产品标识")
private String lpProductKey;
@Schema(description = "LP产品名称", example = "李四")
@ExcelProperty("LP产品名称")
private String lpProductName;
@Schema(description = "LP产品唯一ID", example = "10175")
@ExcelProperty("LP产品唯一ID")
private String lpProductUniqueId;
@Schema(description = "设备状态", example = "2")
@ExcelProperty("设备状态")
private Integer status;
@Schema(description = "设备类型", example = "2")
@ExcelProperty("设备类型")
private String deviceType;
@Schema(description = "预留类型字段", example = "1")
@ExcelProperty("预留类型字段")
private String type;
@Schema(description = "设备厂商")
@ExcelProperty("设备厂商")
private String vendor;
@Schema(description = "设备描述", example = "随便")
@ExcelProperty("设备描述")
private String description;
@Schema(description = "分类描述类型", example = "1")
@ExcelProperty("分类描述类型")
private String categoryDescType;
@Schema(description = "创建时间戳")
@ExcelProperty("创建时间戳")
private LocalDateTime createTime;
@Schema(description = "记录创建时间")
@ExcelProperty("记录创建时间")
private LocalDateTime createdAt;
@Schema(description = "记录更新时间")
@ExcelProperty("记录更新时间")
private LocalDateTime updatedAt;
@Schema(description = "设备图片")
@ExcelProperty("设备图片")
private String image;
@Schema(description = "告警状态图片")
@ExcelProperty("告警状态图片")
private String alarmImage;
@Schema(description = "离线状态图片")
@ExcelProperty("离线状态图片")
private String offlineImage;
@Schema(description = "分类图标")
@ExcelProperty("分类图标")
private String categoryIcon;
@Schema(description = "电池电量(0-100)")
@ExcelProperty("电池电量(0-100)")
private Integer battery;
@Schema(description = "信号强度")
@ExcelProperty("信号强度")
private Short rssi;
@Schema(description = "物联网卡过期时间")
@ExcelProperty("物联网卡过期时间")
private LocalDateTime iotCardExpireTime;
@Schema(description = "是否存在物联网卡")
@ExcelProperty("是否存在物联网卡")
private Boolean isIotCardExisted;
@Schema(description = "边缘实例ID", example = "13311")
@ExcelProperty("边缘实例ID")
private String edgeInstanceUniqueId;
@Schema(description = "数据快照")
@ExcelProperty("数据快照")
private String dataImage;
@Schema(description = "基地id", example = "9675")
@ExcelProperty("基地id")
private String baseId;
@Schema(description = "基地", example = "芋艿")
@ExcelProperty("基地")
private String baseName;
@Schema(description = "地块ID", example = "22883")
@ExcelProperty("地块ID")
private String plotId;
@Schema(description = "地块", example = "李四")
@ExcelProperty("地块")
private String plotName;
@Schema(description = "租户id", example = "11502")
@ExcelProperty("租户id")
private String tenantId;
private String point;
}

View File

@@ -110,5 +110,5 @@ public class DeviceInfoSaveReqVO {
@Schema(description = "租户id", example = "11502")
private String tenantId;
private String point;
}

View File

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.farm.controller.admin.disasterdata;
import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataSaveReqVO;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import jakarta.validation.Valid;
import jakarta.validation.Valid;
@@ -81,6 +82,7 @@ public class DisasterDataController {
@GetMapping("/page")
@Operation(summary = "获得灾害数据分页")
@PreAuthorize("@ss.hasPermission('farm:disaster-data:query')")
public CommonResult<PageResult<DisasterDataRespVO>> getDisasterDataPage(@Valid DisasterDataPageReqVO pageReqVO) {
PageResult<DisasterDataDO> pageResult = disasterDataService.getDisasterDataPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, DisasterDataRespVO.class));

View File

@@ -18,7 +18,7 @@ public class ModelManagementPageReqVO extends PageParam {
private String name;
@Schema(description = "模型名称", example = "芋艿")
private String modelName;
private Integer type;
@Schema(description = "物种id", example = "12816")
private String speciesId;

View File

@@ -3,17 +3,11 @@ package cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import cn.iocoder.yudao.module.farm.controller.admin.modelcycle.vo.ModelCycleRespVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelcycle.ModelCycleDO;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.*;
@Schema(description = "管理后台 - 模型管理 Response VO")
@Data
@@ -82,6 +76,9 @@ public class ModelManagementRespVO {
@Schema(description = "租户id", example = "20468")
@ExcelProperty("租户id")
private String tenantId;
private String tenantName;
private String userName;
private int isRelease;
private int quoteCount;
@Schema(description = "物种图片")
@@ -108,7 +105,7 @@ public class ModelManagementRespVO {
result.add(areaObj);
}
this.suitablePlantingAreas = result;
// 同时设置Excel导出用的字符串格式 - 使用分号分隔,避免与地区代码内部的逗号冲突
this.suitablePlantingAreasForExcel = String.join(";", areas);
}

View File

@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -46,5 +47,6 @@ public class ModelPestDiseaseWeedPageReqVO extends PageParam {
@Schema(description = "租户id", example = "31930")
private String tenantId;
private String image;
private List<String> imageList;
}

View File

@@ -5,6 +5,8 @@ import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 模型管理-病虫草害 Response VO")
@@ -59,5 +61,6 @@ public class ModelPestDiseaseWeedRespVO {
@Schema(description = "租户id", example = "31930")
@ExcelProperty("租户id")
private String tenantId;
private String image;
private List<String> imageList;
}

View File

@@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.farm.controller.admin.modelpestdiseaseweed.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 模型管理-病虫草害新增/修改 Request VO")
@Data
public class ModelPestDiseaseWeedSaveReqVO {
@@ -40,4 +42,6 @@ public class ModelPestDiseaseWeedSaveReqVO {
@Schema(description = "租户id", example = "31930")
private String tenantId;
private String image;
private List<String> imageList;
}

View File

@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -46,5 +47,5 @@ public class ModelWeatherDisasterPageReqVO extends PageParam {
@Schema(description = "租户id", example = "3725")
private String tenantId;
private List<String> imageList;
}

View File

@@ -1,63 +1,65 @@
package cn.iocoder.yudao.module.farm.controller.admin.modelweatherdisaster.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 模型管理-气象灾害 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ModelWeatherDisasterRespVO {
@Schema(description = "基础id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5402")
@ExcelProperty("基础id")
private String id;
@Schema(description = "周期id", example = "26687")
@ExcelProperty("周期id")
private String cycleId;
@Schema(description = "气象灾害名称", example = "李四")
@ExcelProperty("气象灾害名称")
private String name;
@Schema(description = "气象灾害id", example = "20911")
@ExcelProperty("气象灾害id")
private String weatherId;
@Schema(description = "预警摘要说明", example = "你猜")
@ExcelProperty("预警摘要说明")
private String description;
@Schema(description = "气象灾害图片")
@ExcelProperty("气象灾害图片")
private String image;
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "基地id", example = "28186")
@ExcelProperty("基地id")
private String baseId;
@Schema(description = "基地", example = "王五")
@ExcelProperty("基地")
private String baseName;
@Schema(description = "地块ID", example = "29489")
@ExcelProperty("地块ID")
private String plotId;
@Schema(description = "地块", example = "李四")
@ExcelProperty("地块")
private String plotName;
@Schema(description = "租户id", example = "3725")
@ExcelProperty("租户id")
private String tenantId;
}
package cn.iocoder.yudao.module.farm.controller.admin.modelweatherdisaster.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 模型管理-气象灾害 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ModelWeatherDisasterRespVO {
@Schema(description = "基础id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5402")
@ExcelProperty("基础id")
private String id;
@Schema(description = "周期id", example = "26687")
@ExcelProperty("周期id")
private String cycleId;
@Schema(description = "气象灾害名称", example = "李四")
@ExcelProperty("气象灾害名称")
private String name;
@Schema(description = "气象灾害id", example = "20911")
@ExcelProperty("气象灾害id")
private String weatherId;
@Schema(description = "预警摘要说明", example = "你猜")
@ExcelProperty("预警摘要说明")
private String description;
@Schema(description = "气象灾害图片")
@ExcelProperty("气象灾害图片")
private String image;
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "基地id", example = "28186")
@ExcelProperty("基地id")
private String baseId;
@Schema(description = "基地", example = "王五")
@ExcelProperty("基地")
private String baseName;
@Schema(description = "地块ID", example = "29489")
@ExcelProperty("地块ID")
private String plotId;
@Schema(description = "地块", example = "李四")
@ExcelProperty("地块")
private String plotName;
@Schema(description = "租户id", example = "3725")
@ExcelProperty("租户id")
private String tenantId;
private List<String> imageList;
}

View File

@@ -1,7 +1,9 @@
package cn.iocoder.yudao.module.farm.controller.admin.modelweatherdisaster.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.Data;
import java.util.List;
@Schema(description = "管理后台 - 模型管理-气象灾害新增/修改 Request VO")
@Data
@@ -39,5 +41,5 @@ public class ModelWeatherDisasterSaveReqVO {
@Schema(description = "租户id", example = "3725")
private String tenantId;
private List<String> imageList;
}

View File

@@ -211,7 +211,7 @@ public class DeviceInfoDO extends BaseDO {
private String plotName;
private String tenantId;
private String point;
/**
* 获取设备图片集合
*/

View File

@@ -36,7 +36,6 @@ public class DisasterDataDO extends BaseDO {
* 灾害类型 2=病害,1=虫害,3=草害
*/
private Integer category;
private String categoryName;
/**
* 灾害类别 1:普通; 2:气象灾害
*/

View File

@@ -1,9 +1,12 @@
package cn.iocoder.yudao.module.farm.dal.dataobject.modelpestdiseaseweed;
import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
import lombok.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
@@ -55,6 +58,10 @@ public class ModelPestDiseaseWeedDO extends BaseDO {
* 防止建议
*/
private String treatmentSuggestion;
private String image;
@TableField(exist = false)
private List<String> imageList;
/**
* 基地id
*/
@@ -73,4 +80,22 @@ public class ModelPestDiseaseWeedDO extends BaseDO {
private String plotName;
private String tenantId;
/**
* 获取图片集合
*/
public List<String> getImageList() {
if (imageList == null) {
imageList = ImageCollectionUtil.toImageList(this.image);
}
return imageList;
}
/**
* 设置图片集合
*/
public void setImageList(List<String> imageList) {
this.imageList = imageList;
this.image = ImageCollectionUtil.toDatabaseString(imageList);
}
}

View File

@@ -1,9 +1,12 @@
package cn.iocoder.yudao.module.farm.dal.dataobject.modelweatherdisaster;
import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
import lombok.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
@@ -55,6 +58,8 @@ public class ModelWeatherDisasterDO extends BaseDO {
* 气象灾害图片
*/
private String image;
@TableField(exist = false)
private List<String> imageList;
/**
* 基地id
*/
@@ -73,4 +78,22 @@ public class ModelWeatherDisasterDO extends BaseDO {
private String plotName;
private String tenantId;
/**
* 获取图片集合
*/
public List<String> getImageList() {
if (imageList == null) {
imageList = ImageCollectionUtil.toImageList(this.image);
}
return imageList;
}
/**
* 设置图片集合
*/
public void setImageList(List<String> imageList) {
this.imageList = imageList;
this.image = ImageCollectionUtil.toDatabaseString(imageList);
}
}

View File

@@ -3,10 +3,8 @@ package cn.iocoder.yudao.module.farm.dal.mysql.disasterdata;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.farm.controller.admin.deviceplotrelation.vo.DevicePlotRelationPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.DisasterDataReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.deviceplotrelation.DevicePlotRelationDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -20,6 +18,14 @@ import java.util.List;
*/
@Mapper
public interface DisasterDataMapper extends BaseMapperX<DisasterDataDO> {
default PageResult<DisasterDataDO> selectPage(DisasterDataPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<DisasterDataDO>()
.eqIfPresent(DisasterDataDO::getType, reqVO.getType())
.eqIfPresent(DisasterDataDO::getUseStatus, reqVO.getUseStatus())
.eqIfPresent(DisasterDataDO::getCategory, reqVO.getCategory())
.likeIfPresent(DisasterDataDO::getName, reqVO.getName())
.orderByDesc(DisasterDataDO::getId));
}
List<DisasterDataDO> selectDisasterDataPage(@Param("req") DisasterDataPageReqVO reqVO);
@@ -27,10 +33,6 @@ public interface DisasterDataMapper extends BaseMapperX<DisasterDataDO> {
DisasterDataDO selectById(String id);
void deleteByIds(List<String> ids);
void deleteById(String id);
int updateById(DisasterDataDO updateObj);
int insert(DisasterDataDO disasterData);
@@ -39,11 +41,6 @@ public interface DisasterDataMapper extends BaseMapperX<DisasterDataDO> {
List<DisasterDataDO> selectMore(DisasterDataReqVO reqVO);
default PageResult<DisasterDataDO> selectPage(DisasterDataPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<DisasterDataDO>()
.eqIfPresent(DisasterDataDO::getType, reqVO.getType())
.eqIfPresent(DisasterDataDO::getCategory, reqVO.getCategory())
.eqIfPresent(DisasterDataDO::getUseStatus, reqVO.getUseStatus())
.orderByDesc(DisasterDataDO::getCreateTime));
}
int deleteById(String id);
}

View File

@@ -24,6 +24,7 @@ public interface ModelManagementMapper extends BaseMapperX<ModelManagementDO> {
.likeIfPresent(ModelManagementDO::getModelName, reqVO.getModelName())
.likeIfPresent(ModelManagementDO::getModelName, reqVO.getName())
.eqIfPresent(ModelManagementDO::getSpeciesId, reqVO.getSpeciesId())
.eqIfPresent(ModelManagementDO::getType, reqVO.getType())
.likeIfPresent(ModelManagementDO::getSpeciesName, reqVO.getSpeciesName())
.eqIfPresent(ModelManagementDO::getCycle, reqVO.getCycle())
.eqIfPresent(ModelManagementDO::getHarvest, reqVO.getHarvest())

View File

@@ -7,4 +7,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SystemUserMapper extends BaseMapperX<SystemUserDO> {
SystemUserDO selectByPhone(String phone);
String getTenantNameById(String tenantId);
}

View File

@@ -14,7 +14,6 @@ import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictMapper;
import cn.iocoder.yudao.module.farm.enums.CommonConstants;
import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
import cn.iocoder.yudao.module.farm.utils.StrHelperUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.annotation.Resource;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
@@ -27,7 +26,8 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.*;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DICT_TYPE_CODE_1;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DICT_TYPE_CODE_2;
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.DISASTER_DATA_NOT_EXISTS;
/**
@@ -65,8 +65,6 @@ public class DisasterDataServiceImpl implements DisasterDataService {
disasterData.setCreator(getLoginUser().getId().toString());
disasterData.setTenantId(getLoginUser().getTenantId().toString());
disasterDataMapper.insert(disasterData);
// 同步
this.syncCreateDict(disasterData.getId());
// 返回
return disasterData.getId();
}
@@ -180,14 +178,7 @@ public class DisasterDataServiceImpl implements DisasterDataService {
public void deleteDisasterData(String id) {
// 校验存在
validateDisasterDataExists(id);
// 同步
this.syncDeleteDict(id);
// 删除
DisasterDataDO aDo = new DisasterDataDO();
aDo.setId(id);
aDo.setDeleted(true);
disasterDataMapper.updateById(aDo);
disasterDataMapper.deleteById(id);
}
private void syncDeleteDict(String id) {
@@ -234,8 +225,8 @@ public class DisasterDataServiceImpl implements DisasterDataService {
}
@Override
public PageResult<DisasterDataDO> getDisasterDataPage(DisasterDataPageReqVO reqVO) {
return disasterDataMapper.selectPage(reqVO);
public PageResult<DisasterDataDO> getDisasterDataPage(DisasterDataPageReqVO pageReqVO) {
return disasterDataMapper.selectPage(pageReqVO);
}
}

View File

@@ -3,14 +3,14 @@ package cn.iocoder.yudao.module.farm.service.modelmanagement;
import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.DisasterDataReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelcycle.vo.ModelCycleRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelfarmingoperation.vo.ModelFarmingOperationRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementSaveReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputLibraryDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelcycle.ModelCycleDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelenvironmentindex.ModelEnvironmentIndexDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelfarmingoperation.ModelFarmingOperationDO;
@@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.farm.dal.dataobject.modelfarmingoperationinput.Mo
import cn.iocoder.yudao.module.farm.dal.dataobject.modelmanagement.ModelManagementDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelpestdiseaseweed.ModelPestDiseaseWeedDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelweatherdisaster.ModelWeatherDisasterDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement.SystemUserDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO;
import cn.iocoder.yudao.module.farm.dal.mysql.modelcycle.ModelCycleMapper;
import cn.iocoder.yudao.module.farm.dal.mysql.modelenvironmentindex.ModelEnvironmentIndexMapper;
@@ -26,12 +27,11 @@ import cn.iocoder.yudao.module.farm.dal.mysql.modelfarmingoperationinput.ModelFa
import cn.iocoder.yudao.module.farm.dal.mysql.modelmanagement.ModelManagementMapper;
import cn.iocoder.yudao.module.farm.dal.mysql.modelpestdiseaseweed.ModelPestDiseaseWeedMapper;
import cn.iocoder.yudao.module.farm.dal.mysql.modelweatherdisaster.ModelWeatherDisasterMapper;
import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO;
import cn.iocoder.yudao.module.farm.dal.mysql.personnelmanagement.SystemUserMapper;
import cn.iocoder.yudao.module.farm.enums.CommonConstants;
import cn.iocoder.yudao.module.farm.framework.util.ModelManagementConvertUtil;
import cn.iocoder.yudao.module.farm.service.disasterdata.DisasterDataService;
import cn.iocoder.yudao.module.farm.service.inputlibrary.InputLibraryService;
import cn.iocoder.yudao.module.farm.service.specieslibrary.SpeciesLibraryService;
import cn.iocoder.yudao.module.farm.service.sysDict.SysDictService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.*;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.MODEL_TYPE_2;
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.MODEL_MANAGEMENT_NOT_EXISTS;
/**
@@ -68,13 +68,12 @@ public class ModelManagementServiceImpl implements ModelManagementService {
private ModelFarmingOperationMapper modelFarmingOperationMapper;
@Resource
private ModelFarmingOperationInputMapper modelFarmingOperationInputMapper;
@Resource
private SysDictService sysDictService;
@Resource
private DisasterDataService disasterDataService;
@Resource
private SpeciesLibraryService speciesLibraryService;
@Resource
private InputLibraryService inputLibraryService;
@Resource
private SystemUserMapper systemUserMapper;
@Override
public String createModelManagement(ModelManagementSaveReqVO createReqVO) {
@@ -89,17 +88,16 @@ public class ModelManagementServiceImpl implements ModelManagementService {
SpeciesLibraryDO speciesLibrary = speciesLibraryService.getSpeciesLibrary(createReqVO.getSpeciesId());
modelManagement.setSpeciesName(speciesLibrary.getSpeciesName() + "/" + speciesLibrary.getCultivarName());
modelManagement.setCycle(speciesLibrary.getLifeCycle().toString());
if (speciesLibrary.getLifeCycle() == 1) {
modelManagement.setCycleName("一年生");
} else if (speciesLibrary.getLifeCycle() == 10) {
modelManagement.setCycleName("多年生");
}
// if (speciesLibrary.getLifeCycle() == 1) {
// modelManagement.setCycleName("一年生");
// } else if (speciesLibrary.getLifeCycle() == 10) {
// modelManagement.setCycleName("多年生");
// }
modelManagement.setSpeciesImage(speciesLibrary.getImage());
// 处理suitablePlantingAreas字段,优先使用集合
if (createReqVO.getSuitablePlantingAreas() != null && !createReqVO.getSuitablePlantingAreas().isEmpty()) {
modelManagement.setSuitablePlantingAreasList(createReqVO.getSuitablePlantingAreas());
}
// 处理speciesImage字段,优先使用图片集合
if (createReqVO.getSpeciesImageList() != null && !createReqVO.getSpeciesImageList().isEmpty()) {
modelManagement.setSpeciesImageList(createReqVO.getSpeciesImageList());
@@ -141,49 +139,55 @@ public class ModelManagementServiceImpl implements ModelManagementService {
List<ModelCycleDO> originalCycles = modelCycleMapper.selectListByModelId(id);
for (ModelCycleDO originalCycle : originalCycles) {
// 复制周期
ModelCycleDO newCycle = BeanUtils.toBean(originalCycle, ModelCycleDO.class);
String newCycleId = IdUtil.fastUUID();
originalCycle.setId(newCycleId);
originalCycle.setModelId(newModelId);
modelCycleMapper.insert(originalCycle);
newCycle.setId(newCycleId);
newCycle.setModelId(newModelId);
modelCycleMapper.insert(newCycle);
// 复制环境指标
List<ModelEnvironmentIndexDO> environmentIndexes = modelEnvironmentIndexMapper.selectByCycleId(originalCycle.getId());
for (ModelEnvironmentIndexDO envIndex : environmentIndexes) {
envIndex.setId(IdUtil.fastUUID());
envIndex.setCycleId(newCycleId);
modelEnvironmentIndexMapper.insert(envIndex);
ModelEnvironmentIndexDO newEnv = BeanUtils.toBean(envIndex, ModelEnvironmentIndexDO.class);
newEnv.setId(IdUtil.fastUUID());
newEnv.setCycleId(newCycleId);
modelEnvironmentIndexMapper.insert(newEnv);
}
// 复制气象灾害
List<ModelWeatherDisasterDO> weatherDisasters = modelWeatherDisasterMapper.selectByCycleId(originalCycle.getId());
for (ModelWeatherDisasterDO weatherDisaster : weatherDisasters) {
weatherDisaster.setId(IdUtil.fastUUID());
weatherDisaster.setCycleId(newCycleId);
modelWeatherDisasterMapper.insert(weatherDisaster);
ModelWeatherDisasterDO newWeather = BeanUtils.toBean(weatherDisaster, ModelWeatherDisasterDO.class);
newWeather.setId(IdUtil.fastUUID());
newWeather.setCycleId(newCycleId);
modelWeatherDisasterMapper.insert(newWeather);
}
// 复制病虫草灾害
List<ModelPestDiseaseWeedDO> pestDiseaseWeeds = modelPestDiseaseWeedMapper.selectByCycleId(originalCycle.getId());
for (ModelPestDiseaseWeedDO pestDiseaseWeed : pestDiseaseWeeds) {
pestDiseaseWeed.setId(IdUtil.fastUUID());
pestDiseaseWeed.setCycleId(newCycleId);
modelPestDiseaseWeedMapper.insert(pestDiseaseWeed);
ModelPestDiseaseWeedDO newPest = BeanUtils.toBean(pestDiseaseWeed, ModelPestDiseaseWeedDO.class);
newPest.setId(IdUtil.fastUUID());
newPest.setCycleId(newCycleId);
modelPestDiseaseWeedMapper.insert(newPest);
}
// 复制农事操作
List<ModelFarmingOperationDO> farmingOperations = modelFarmingOperationMapper.selectByCycleId(originalCycle.getId());
for (ModelFarmingOperationDO farmingOperation : farmingOperations) {
ModelFarmingOperationDO newFarming = BeanUtils.toBean(farmingOperation, ModelFarmingOperationDO.class);
String newFarmingId = IdUtil.fastUUID();
farmingOperation.setId(newFarmingId);
farmingOperation.setCycleId(newCycleId);
modelFarmingOperationMapper.insert(farmingOperation);
newFarming.setId(newFarmingId);
newFarming.setCycleId(newCycleId);
modelFarmingOperationMapper.insert(newFarming);
// 复制农事操作投入品
List<ModelFarmingOperationInputDO> farmingOperationInputs = modelFarmingOperationInputMapper.selectByFarmingId(farmingOperation.getId());
for (ModelFarmingOperationInputDO farmingOperationInput : farmingOperationInputs) {
farmingOperationInput.setId(IdUtil.fastUUID());
farmingOperationInput.setFarmingId(newFarmingId);
modelFarmingOperationInputMapper.insert(farmingOperationInput);
ModelFarmingOperationInputDO newInput = BeanUtils.toBean(farmingOperationInput, ModelFarmingOperationInputDO.class);
newInput.setId(IdUtil.fastUUID());
newInput.setFarmingId(newFarmingId);
modelFarmingOperationInputMapper.insert(newInput);
}
}
}
@@ -258,32 +262,15 @@ public class ModelManagementServiceImpl implements ModelManagementService {
@Override
public ModelManagementRespVO getModelManagement(String id) {
List<SysDictDO> dictDOList = sysDictService.getByTypeCode(CommonConstants.DICT_TYPE_CODE_4);
Map<String, String> dictMap = dictDOList.stream().filter(e -> e.getField2Code() != null).collect(Collectors.toMap(SysDictDO::getField2Code, SysDictDO::getField2Name, (v1, v2) -> v1));
DisasterDataReqVO reqVO = new DisasterDataReqVO();
reqVO.setType(WEATHER_DISASTER);
List<DisasterDataDO> weatherDisasterDataList = disasterDataService.getDisasterDataList(reqVO);
Map<String, DisasterDataDO> weatherDisasterDataMap = weatherDisasterDataList.stream().collect(Collectors.toMap(DisasterDataDO::getName, e -> e, (v1, v2) -> v1));
reqVO.setType(COMMON_DISASTER);
List<DisasterDataDO> commonDisasterDataList = disasterDataService.getDisasterDataList(reqVO);
Map<String, DisasterDataDO> commonDisasterDataMap = commonDisasterDataList.stream().collect(Collectors.toMap(DisasterDataDO::getName, e -> e, (v1, v2) -> v1));
List<SysDictDO> unit1List = sysDictService.getByTypeCode(CommonConstants.DICT_TYPE_CODE_4_1); // 吨
Map<String, String> unit1Map = unit1List.stream().collect(Collectors.toMap(SysDictDO::getField1Code, SysDictDO::getField1Name, (v1, v2) -> v1));
List<SysDictDO> unit2List = sysDictService.getByTypeCode(CommonConstants.DICT_TYPE_CODE_4_2); // 包
Map<String, String> unit2Map = unit2List.stream().collect(Collectors.toMap(SysDictDO::getField1Code, SysDictDO::getField1Name, (v1, v2) -> v1));
ModelManagementDO modelManagementDO = modelManagementMapper.selectById(id);
if (modelManagementDO == null) {
return null;
}
// 使用统一的转换方法
ModelManagementRespVO bean = ModelManagementConvertUtil.convertToRespVO(modelManagementDO);
SystemUserDO userDO = systemUserMapper.selectById(modelManagementDO.getCreator());
bean.setUserName(userDO.getNickname());
bean.setTenantName(systemUserMapper.getTenantNameById(modelManagementDO.getTenantId()));
// 设置模型周期信息
List<ModelCycleRespVO> vos = new ArrayList<>();
List<ModelCycleDO> list = modelCycleMapper.selectListByModelId(id);
@@ -294,19 +281,9 @@ public class ModelManagementServiceImpl implements ModelManagementService {
vo.setEnvironmentIndexDOS(environmentIndexDO);
//气象灾害
List<ModelWeatherDisasterDO> weatherDisasterDO = modelWeatherDisasterMapper.selectByCycleId(cycle.getId());
for (ModelWeatherDisasterDO aDo : weatherDisasterDO) {
DisasterDataDO temp = weatherDisasterDataMap.get(aDo.getName());
aDo.setDisasterDescription(temp.getDisasterDescription());
aDo.setTreatmentSuggestion(temp.getTreatmentSuggestion());
}
vo.setWeatherDisasterDOS(weatherDisasterDO);
//病虫草灾害
List<ModelPestDiseaseWeedDO> pestDiseaseWeedDO = modelPestDiseaseWeedMapper.selectByCycleId(cycle.getId());
for (ModelPestDiseaseWeedDO aDo : pestDiseaseWeedDO) {
DisasterDataDO temp = commonDisasterDataMap.get(aDo.getName());
aDo.setDisasterDescription(temp.getDisasterDescription());
aDo.setTreatmentSuggestion(temp.getTreatmentSuggestion());
}
vo.setPestDiseaseWeedDOS(pestDiseaseWeedDO);
//农事操作
List<ModelFarmingOperationDO> farmingOperationDO = modelFarmingOperationMapper.selectByCycleId(cycle.getId());
@@ -315,9 +292,10 @@ public class ModelManagementServiceImpl implements ModelManagementService {
ModelFarmingOperationRespVO respVO = BeanUtils.toBean(e, ModelFarmingOperationRespVO.class);
List<ModelFarmingOperationInputDO> farmingOperationInputDOS = modelFarmingOperationInputMapper.selectByFarmingId(e.getId());
for (ModelFarmingOperationInputDO aDo : farmingOperationInputDOS) {
aDo.setInputsName(dictMap.get(aDo.getInputsId()));
aDo.setUnitName(unit1Map.get(aDo.getUnit()));
aDo.setPackageUnitName(unit2Map.get(aDo.getPackageUnit()));
InputLibraryDO inputLibrary = inputLibraryService.getInputLibrary(aDo.getInputsId());
aDo.setInputsName(inputLibrary.getAssetName());
aDo.setUnitName(DictFrameworkUtils.parseDictDataLabel("asset_unit", aDo.getUnit()));
aDo.setPackageUnitName(DictFrameworkUtils.parseDictDataLabel("asset_price", aDo.getPackageUnit()));
}
respVO.setFarmingOperationInputDOS(farmingOperationInputDOS);
respVOS.add(respVO);
@@ -331,6 +309,7 @@ public class ModelManagementServiceImpl implements ModelManagementService {
@Override
public PageResult<ModelManagementDO> getModelManagementPage(ModelManagementPageReqVO pageReqVO) {
pageReqVO.setType(1);
return modelManagementMapper.selectPage(pageReqVO);
}
@@ -352,7 +331,8 @@ public class ModelManagementServiceImpl implements ModelManagementService {
newModelCase.setId(newModelId);
newModelCase.setType(CommonConstants.MODEL_TYPE_1);
newModelCase.setModelName(modelManagementDO.getModelName() + "-复制模型");
newModelCase.setQuoteCount(0);
newModelCase.setIsRelease(0);
// 3. 保存新的模型引用案例
modelManagementMapper.insert(newModelCase);
@@ -360,49 +340,55 @@ public class ModelManagementServiceImpl implements ModelManagementService {
List<ModelCycleDO> originalCycles = modelCycleMapper.selectListByModelId(createReqVO.getId());
for (ModelCycleDO originalCycle : originalCycles) {
// 复制周期
ModelCycleDO newCycle = BeanUtils.toBean(originalCycle, ModelCycleDO.class);
String newCycleId = IdUtil.fastUUID();
originalCycle.setId(newCycleId);
originalCycle.setModelId(newModelId);
modelCycleMapper.insert(originalCycle);
newCycle.setId(newCycleId);
newCycle.setModelId(newModelId);
modelCycleMapper.insert(newCycle);
// 复制环境指标
List<ModelEnvironmentIndexDO> environmentIndexes = modelEnvironmentIndexMapper.selectByCycleId(originalCycle.getId());
for (ModelEnvironmentIndexDO envIndex : environmentIndexes) {
envIndex.setId(IdUtil.fastUUID());
envIndex.setCycleId(newCycleId);
modelEnvironmentIndexMapper.insert(envIndex);
ModelEnvironmentIndexDO newEnv = BeanUtils.toBean(envIndex, ModelEnvironmentIndexDO.class);
newEnv.setId(IdUtil.fastUUID());
newEnv.setCycleId(newCycleId);
modelEnvironmentIndexMapper.insert(newEnv);
}
// 复制气象灾害
List<ModelWeatherDisasterDO> weatherDisasters = modelWeatherDisasterMapper.selectByCycleId(originalCycle.getId());
for (ModelWeatherDisasterDO weatherDisaster : weatherDisasters) {
weatherDisaster.setId(IdUtil.fastUUID());
weatherDisaster.setCycleId(newCycleId);
modelWeatherDisasterMapper.insert(weatherDisaster);
ModelWeatherDisasterDO newWeather = BeanUtils.toBean(weatherDisaster, ModelWeatherDisasterDO.class);
newWeather.setId(IdUtil.fastUUID());
newWeather.setCycleId(newCycleId);
modelWeatherDisasterMapper.insert(newWeather);
}
// 复制病虫草灾害
List<ModelPestDiseaseWeedDO> pestDiseaseWeeds = modelPestDiseaseWeedMapper.selectByCycleId(originalCycle.getId());
for (ModelPestDiseaseWeedDO pestDiseaseWeed : pestDiseaseWeeds) {
pestDiseaseWeed.setId(IdUtil.fastUUID());
pestDiseaseWeed.setCycleId(newCycleId);
modelPestDiseaseWeedMapper.insert(pestDiseaseWeed);
ModelPestDiseaseWeedDO nuwPest = BeanUtils.toBean(pestDiseaseWeed, ModelPestDiseaseWeedDO.class);
nuwPest.setId(IdUtil.fastUUID());
nuwPest.setCycleId(newCycleId);
modelPestDiseaseWeedMapper.insert(nuwPest);
}
// 复制农事操作
List<ModelFarmingOperationDO> farmingOperations = modelFarmingOperationMapper.selectByCycleId(originalCycle.getId());
for (ModelFarmingOperationDO farmingOperation : farmingOperations) {
ModelFarmingOperationDO newFarming = BeanUtils.toBean(farmingOperation, ModelFarmingOperationDO.class);
String newFarmingId = IdUtil.fastUUID();
farmingOperation.setId(newFarmingId);
farmingOperation.setCycleId(newCycleId);
modelFarmingOperationMapper.insert(farmingOperation);
newFarming.setId(newFarmingId);
newFarming.setCycleId(newCycleId);
modelFarmingOperationMapper.insert(newFarming);
// 复制农事操作投入品
List<ModelFarmingOperationInputDO> farmingOperationInputs = modelFarmingOperationInputMapper.selectByFarmingId(farmingOperation.getId());
for (ModelFarmingOperationInputDO farmingOperationInput : farmingOperationInputs) {
farmingOperationInput.setId(IdUtil.fastUUID());
farmingOperationInput.setFarmingId(newFarmingId);
modelFarmingOperationInputMapper.insert(farmingOperationInput);
ModelFarmingOperationInputDO newInput = BeanUtils.toBean(farmingOperationInput, ModelFarmingOperationInputDO.class);
newInput.setId(IdUtil.fastUUID());
newInput.setFarmingId(newFarmingId);
modelFarmingOperationInputMapper.insert(newInput);
}
}
}

View File

@@ -6,7 +6,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.module.farm.controller.admin.modelpestdiseaseweed.vo.ModelPestDiseaseWeedPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelpestdiseaseweed.vo.ModelPestDiseaseWeedSaveReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelpestdiseaseweed.ModelPestDiseaseWeedDO;
import cn.iocoder.yudao.module.farm.dal.mysql.disasterdata.DisasterDataMapper;
import cn.iocoder.yudao.module.farm.dal.mysql.modelpestdiseaseweed.ModelPestDiseaseWeedMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@@ -29,6 +31,8 @@ public class ModelPestDiseaseWeedServiceImpl implements ModelPestDiseaseWeedServ
@Resource
private ModelPestDiseaseWeedMapper modelPestDiseaseWeedMapper;
@Resource
private DisasterDataMapper disasterDataMapper;
@Override
public String createModelPestDiseaseWeed(ModelPestDiseaseWeedSaveReqVO createReqVO) {
@@ -37,6 +41,14 @@ public class ModelPestDiseaseWeedServiceImpl implements ModelPestDiseaseWeedServ
ModelPestDiseaseWeedDO modelPestDiseaseWeed = BeanUtils.toBean(createReqVO, ModelPestDiseaseWeedDO.class);
modelPestDiseaseWeed.setId(IdUtil.fastUUID());
modelPestDiseaseWeed.setTenantId(String.valueOf(user.getTenantId()));
DisasterDataDO disasterDataDO = disasterDataMapper.selectById(createReqVO.getPestsId());
modelPestDiseaseWeed.setDisasterDescription(disasterDataDO.getDisasterDescription());
modelPestDiseaseWeed.setTreatmentSuggestion(disasterDataDO.getTreatmentSuggestion());
if (createReqVO.getImage() != null) {
modelPestDiseaseWeed.setImage(createReqVO.getImage() + "," + disasterDataDO.getImgUrl());
} else {
modelPestDiseaseWeed.setImage(disasterDataDO.getImgUrl());
}
modelPestDiseaseWeedMapper.insert(modelPestDiseaseWeed);
// 返回
@@ -49,6 +61,14 @@ public class ModelPestDiseaseWeedServiceImpl implements ModelPestDiseaseWeedServ
validateModelPestDiseaseWeedExists(updateReqVO.getId());
// 更新
ModelPestDiseaseWeedDO updateObj = BeanUtils.toBean(updateReqVO, ModelPestDiseaseWeedDO.class);
DisasterDataDO disasterDataDO = disasterDataMapper.selectById(updateReqVO.getPestsId());
updateObj.setDisasterDescription(disasterDataDO.getDisasterDescription());
updateObj.setTreatmentSuggestion(disasterDataDO.getTreatmentSuggestion());
if (updateReqVO.getImage() != null) {
updateObj.setImage(updateReqVO.getImage() + "," + disasterDataDO.getImgUrl());
} else {
updateObj.setImage(disasterDataDO.getImgUrl());
}
modelPestDiseaseWeedMapper.updateById(updateObj);
}
@@ -61,12 +81,12 @@ public class ModelPestDiseaseWeedServiceImpl implements ModelPestDiseaseWeedServ
}
@Override
public void deleteModelPestDiseaseWeedListByIds(List<String> ids) {
public void deleteModelPestDiseaseWeedListByIds(List<String> ids) {
// 删除
modelPestDiseaseWeedMapper.deleteByIds(ids);
}
}
private void validateModelPestDiseaseWeedExists(String id) {
private void validateModelPestDiseaseWeedExists(String id) {
if (modelPestDiseaseWeedMapper.selectById(id) == null) {
throw exception(MODEL_PEST_DISEASE_WEED_NOT_EXISTS);
}

View File

@@ -1,21 +1,19 @@
package cn.iocoder.yudao.module.farm.service.modelweatherdisaster;
import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.module.farm.controller.admin.modelweatherdisaster.vo.ModelWeatherDisasterPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelweatherdisaster.vo.ModelWeatherDisasterSaveReqVO;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelweatherdisaster.ModelWeatherDisasterDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.farm.dal.mysql.disasterdata.DisasterDataMapper;
import cn.iocoder.yudao.module.farm.dal.mysql.modelweatherdisaster.ModelWeatherDisasterMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.List;
@@ -34,6 +32,8 @@ public class ModelWeatherDisasterServiceImpl implements ModelWeatherDisasterServ
@Resource
private ModelWeatherDisasterMapper modelWeatherDisasterMapper;
@Resource
private DisasterDataMapper disasterDataMapper;
@Override
public String createModelWeatherDisaster(ModelWeatherDisasterSaveReqVO createReqVO) {
@@ -42,6 +42,14 @@ public class ModelWeatherDisasterServiceImpl implements ModelWeatherDisasterServ
ModelWeatherDisasterDO modelWeatherDisaster = BeanUtils.toBean(createReqVO, ModelWeatherDisasterDO.class);
modelWeatherDisaster.setId(IdUtil.fastUUID());
modelWeatherDisaster.setTenantId(String.valueOf(user.getTenantId()));
DisasterDataDO disasterDataDO = disasterDataMapper.selectById(createReqVO.getWeatherId());
modelWeatherDisaster.setDisasterDescription(disasterDataDO.getDisasterDescription());
modelWeatherDisaster.setTreatmentSuggestion(disasterDataDO.getTreatmentSuggestion());
if (createReqVO.getImage() != null) {
modelWeatherDisaster.setImage(createReqVO.getImage() + "," + disasterDataDO.getImgUrl());
} else {
modelWeatherDisaster.setImage(disasterDataDO.getImgUrl());
}
modelWeatherDisasterMapper.insert(modelWeatherDisaster);
// 返回
@@ -54,6 +62,14 @@ public class ModelWeatherDisasterServiceImpl implements ModelWeatherDisasterServ
validateModelWeatherDisasterExists(updateReqVO.getId());
// 更新
ModelWeatherDisasterDO updateObj = BeanUtils.toBean(updateReqVO, ModelWeatherDisasterDO.class);
DisasterDataDO disasterDataDO = disasterDataMapper.selectById(updateReqVO.getWeatherId());
updateObj.setDisasterDescription(disasterDataDO.getDisasterDescription());
updateObj.setTreatmentSuggestion(disasterDataDO.getTreatmentSuggestion());
if (updateReqVO.getImage() != null) {
updateObj.setImage(updateReqVO.getImage() + "," + disasterDataDO.getImgUrl());
} else {
updateObj.setImage(disasterDataDO.getImgUrl());
}
modelWeatherDisasterMapper.updateById(updateObj);
}
@@ -66,12 +82,12 @@ public class ModelWeatherDisasterServiceImpl implements ModelWeatherDisasterServ
}
@Override
public void deleteModelWeatherDisasterListByIds(List<String> ids) {
public void deleteModelWeatherDisasterListByIds(List<String> ids) {
// 删除
modelWeatherDisasterMapper.deleteByIds(ids);
}
}
private void validateModelWeatherDisasterExists(String id) {
private void validateModelWeatherDisasterExists(String id) {
if (modelWeatherDisasterMapper.selectById(id) == null) {
throw exception(MODEL_WEATHER_DISASTER_NOT_EXISTS);
}

View File

@@ -5,7 +5,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictThreeLvRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesAndModelTreeRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibraryPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.specieslibrary.vo.SpeciesLibrarySaveReqVO;
@@ -388,6 +387,7 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
lambdaQueryWrapper.eq(ModelManagementDO::getTenantId, getLoginUser().getTenantId());
lambdaQueryWrapper.eq(ModelManagementDO::getType, CommonConstants.MODEL_TYPE_1);
lambdaQueryWrapper.eq(ModelManagementDO::getSpeciesId, speciesId);
lambdaQueryWrapper.eq(ModelManagementDO::getIsRelease, 1);
List<ModelManagementDO> modelList = modelManagementMapper.selectList(lambdaQueryWrapper);
return modelList.stream()

View File

@@ -46,6 +46,11 @@
use_status,
deleted
</sql>
<delete id="deleteById" parameterType="String">
delete
from farm_disaster_data
where id = #{id}
</delete>
<!-- 分页查询 -->
<select id="selectDisasterDataPage"
@@ -91,15 +96,6 @@
</select>
<delete id="deleteByIds">
</delete>
<delete id="deleteById" parameterType="string">
</delete>
<update id="updateById" parameterType="cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO">
UPDATE farm_disaster_data
<set>
@@ -211,7 +207,6 @@
<select id="selectMore"
parameterType="cn.iocoder.yudao.module.farm.controller.admin.dict.vo.DisasterDataReqVO"
resultType="cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO">
SELECT <include refid="all_fields"/> FROM farm_disaster_data
<where>
<if test="id != null and id != ''">AND id = #{id}</if>

View File

@@ -15,4 +15,9 @@
from system_users
where mobile = #{phone}
</select>
<select id="getTenantNameById" parameterType="java.lang.String" resultType="java.lang.String">
select name
from system_tenant
where id = #{tenantId}
</select>
</mapper>