farm模块-模型复制及调用优化
This commit is contained in:
@@ -114,4 +114,6 @@ public class DeviceInfoPageReqVO extends PageParam {
|
||||
@Schema(description = "租户id", example = "11502")
|
||||
private String tenantId;
|
||||
|
||||
private String point;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -110,5 +110,5 @@ public class DeviceInfoSaveReqVO {
|
||||
|
||||
@Schema(description = "租户id", example = "11502")
|
||||
private String tenantId;
|
||||
|
||||
private String point;
|
||||
}
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -211,7 +211,7 @@ public class DeviceInfoDO extends BaseDO {
|
||||
private String plotName;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
private String point;
|
||||
/**
|
||||
* 获取设备图片集合
|
||||
*/
|
||||
|
||||
@@ -36,7 +36,6 @@ public class DisasterDataDO extends BaseDO {
|
||||
* 灾害类型 2=病害,1=虫害,3=草害
|
||||
*/
|
||||
private Integer category;
|
||||
private String categoryName;
|
||||
/**
|
||||
* 灾害类别 1:普通; 2:气象灾害
|
||||
*/
|
||||
|
||||
@@ -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,13 @@ 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())
|
||||
.orderByDesc(DisasterDataDO::getId));
|
||||
}
|
||||
|
||||
List<DisasterDataDO> selectDisasterDataPage(@Param("req") DisasterDataPageReqVO reqVO);
|
||||
|
||||
@@ -27,10 +32,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 +40,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);
|
||||
}
|
||||
@@ -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())
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,14 +3,13 @@ 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.modelcycle.ModelCycleDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.modelenvironmentindex.ModelEnvironmentIndexDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.modelfarmingoperation.ModelFarmingOperationDO;
|
||||
@@ -26,7 +25,6 @@ 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.enums.CommonConstants;
|
||||
import cn.iocoder.yudao.module.farm.framework.util.ModelManagementConvertUtil;
|
||||
import cn.iocoder.yudao.module.farm.service.disasterdata.DisasterDataService;
|
||||
@@ -42,7 +40,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;
|
||||
|
||||
/**
|
||||
@@ -99,7 +97,6 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
||||
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 +138,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 +261,12 @@ 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);
|
||||
|
||||
// 设置模型周期信息
|
||||
List<ModelCycleRespVO> vos = new ArrayList<>();
|
||||
List<ModelCycleDO> list = modelCycleMapper.selectListByModelId(id);
|
||||
@@ -295,17 +278,15 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
||||
//气象灾害
|
||||
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());
|
||||
aDo.setDisasterDescription(aDo.getDisasterDescription());
|
||||
aDo.setTreatmentSuggestion(aDo.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());
|
||||
aDo.setDisasterDescription(aDo.getDisasterDescription());
|
||||
aDo.setTreatmentSuggestion(aDo.getTreatmentSuggestion());
|
||||
}
|
||||
vo.setPestDiseaseWeedDOS(pestDiseaseWeedDO);
|
||||
//农事操作
|
||||
@@ -315,9 +296,9 @@ 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()));
|
||||
aDo.setInputsName(DictFrameworkUtils.parseDictDataLabel("asset_type", aDo.getInputsId()));
|
||||
aDo.setUnitName(DictFrameworkUtils.parseDictDataLabel("asset_unit", aDo.getUnit()));
|
||||
aDo.setPackageUnitName(DictFrameworkUtils.parseDictDataLabel("asset_price", aDo.getPackageUnit()));
|
||||
}
|
||||
respVO.setFarmingOperationInputDOS(farmingOperationInputDOS);
|
||||
respVOS.add(respVO);
|
||||
@@ -331,6 +312,7 @@ public class ModelManagementServiceImpl implements ModelManagementService {
|
||||
|
||||
@Override
|
||||
public PageResult<ModelManagementDO> getModelManagementPage(ModelManagementPageReqVO pageReqVO) {
|
||||
pageReqVO.setType(1);
|
||||
return modelManagementMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@@ -352,7 +334,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 +343,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user