Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -9,7 +9,7 @@ import io.swagger.v3.oas.annotations.Operation;
|
|||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.validation.annotation.Validated;
|
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.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@@ -43,7 +43,7 @@ public class ApiController {
|
|||||||
* @param req 根据租户id、开始时间、结束时间 ,已完成状态
|
* @param req 根据租户id、开始时间、结束时间 ,已完成状态
|
||||||
* @return 种植计划id、种植计划名称
|
* @return 种植计划id、种植计划名称
|
||||||
*/
|
*/
|
||||||
@GetMapping("/production-plan/page")
|
@PostMapping("/production-plan/page")
|
||||||
@Operation(summary = "生产计划-分页")
|
@Operation(summary = "生产计划-分页")
|
||||||
public CommonResult<PageResult<FarmProductionPlanRespVO>> getPageForFarmProductionPlan(@Valid @RequestBody FarmProductionPlanReqVO req) {
|
public CommonResult<PageResult<FarmProductionPlanRespVO>> getPageForFarmProductionPlan(@Valid @RequestBody FarmProductionPlanReqVO req) {
|
||||||
return productionPlanService.getPageForFarmProductionPlan(req);
|
return productionPlanService.getPageForFarmProductionPlan(req);
|
||||||
@@ -57,13 +57,13 @@ public class ApiController {
|
|||||||
* @param req 根据租户id、种植计划id
|
* @param req 根据租户id、种植计划id
|
||||||
* @return 种植计划id、种植计划名称、种植开始时间、种植结束时间、计划所属的基地图片、基地简介、基地中心坐标点
|
* @return 种植计划id、种植计划名称、种植开始时间、种植结束时间、计划所属的基地图片、基地简介、基地中心坐标点
|
||||||
*/
|
*/
|
||||||
@GetMapping("/production-plan/get")
|
@PostMapping("/production-plan/get")
|
||||||
@Operation(summary = "生产计划-详情")
|
@Operation(summary = "生产计划-详情")
|
||||||
public CommonResult<FarmProductionPlanDetailRespVO> getDetailForFarmProductionPlan(@Valid @RequestBody FarmProductionPlanDetailReqVO req) {
|
public CommonResult<FarmProductionPlanDetailRespVO> getDetailForFarmProductionPlan(@Valid @RequestBody FarmProductionPlanDetailReqVO req) {
|
||||||
return productionPlanService.getDetailForFarmProductionPlan(req);
|
return productionPlanService.getDetailForFarmProductionPlan(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/digital-cockpit/get")
|
@PostMapping("/digital-cockpit/get")
|
||||||
@Operation(summary = "数字驾驶舱-基地概要信息")
|
@Operation(summary = "数字驾驶舱-基地概要信息")
|
||||||
public CommonResult<FarmBaseOverviewRespVO> getBaseOverview(@Valid @RequestBody FarmBaseOverviewReqVO req) {
|
public CommonResult<FarmBaseOverviewRespVO> getBaseOverview(@Valid @RequestBody FarmBaseOverviewReqVO req) {
|
||||||
return baseInfoService.getBaseOverview(req);
|
return baseInfoService.getBaseOverview(req);
|
||||||
@@ -71,31 +71,31 @@ public class ApiController {
|
|||||||
|
|
||||||
// TODO: 2025/9/4 地图展示信息 - 设备坐标
|
// TODO: 2025/9/4 地图展示信息 - 设备坐标
|
||||||
|
|
||||||
@GetMapping("/digital-cockpit/list")
|
@PostMapping("/digital-cockpit/list")
|
||||||
@Operation(summary = "数字驾驶舱-基地信息列表")
|
@Operation(summary = "数字驾驶舱-基地信息列表")
|
||||||
public CommonResult<List<FarmBaseInfoRespVO>> getBaseInfoList(@Valid @RequestBody FarmBaseInfoReqVO req) {
|
public CommonResult<List<FarmBaseInfoRespVO>> getBaseInfoList(@Valid @RequestBody FarmBaseInfoReqVO req) {
|
||||||
return baseInfoService.getBaseInfoList(req);
|
return baseInfoService.getBaseInfoList(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/digital-cockpit/chart/yield-comparison")
|
@PostMapping("/digital-cockpit/chart/yield-comparison")
|
||||||
@Operation(summary = "数字驾驶舱-生产数据-产量对比")
|
@Operation(summary = "数字驾驶舱-生产数据-产量对比")
|
||||||
public CommonResult<List<YieldComparisonChartRespVO>> getYieldComparisonChart(@Valid @RequestBody YieldComparisonChartReqVO req) {
|
public CommonResult<List<YieldComparisonChartRespVO>> getYieldComparisonChart(@Valid @RequestBody YieldComparisonChartReqVO req) {
|
||||||
return productionPlanService.getYieldComparisonChart(req);
|
return productionPlanService.getYieldComparisonChart(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/digital-cockpit/chart/planting-plan-completion")
|
@PostMapping("/digital-cockpit/chart/planting-plan-completion")
|
||||||
@Operation(summary = "数字驾驶舱-生产数据-种植计划完成情况")
|
@Operation(summary = "数字驾驶舱-生产数据-种植计划完成情况")
|
||||||
public CommonResult<List<PlantingPlanCompletionRespVO>> getPlantingPlanCompletionChart(@Valid @RequestBody PlantingPlanCompletionReqVO req) {
|
public CommonResult<List<PlantingPlanCompletionRespVO>> getPlantingPlanCompletionChart(@Valid @RequestBody PlantingPlanCompletionReqVO req) {
|
||||||
return productionPlanService.getPlantingPlanCompletionChart(req);
|
return productionPlanService.getPlantingPlanCompletionChart(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/digital-cockpit/chart/disaster-statistics")
|
@PostMapping("/digital-cockpit/chart/disaster-statistics")
|
||||||
@Operation(summary = "数字驾驶舱-灾害统计-灾害分析")
|
@Operation(summary = "数字驾驶舱-灾害统计-灾害分析")
|
||||||
public CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(@Valid @RequestBody DisasterAnalysisReqVO req) {
|
public CommonResult<List<DisasterAnalysisRespVO>> getDisasterStatisticsChart(@Valid @RequestBody DisasterAnalysisReqVO req) {
|
||||||
return productionPlanService.getDisasterStatisticsChart(req); // TODO: 2025/9/4 未实现
|
return productionPlanService.getDisasterStatisticsChart(req); // TODO: 2025/9/4 未实现
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/digital-cockpit/chart/farming-distribution")
|
@PostMapping("/digital-cockpit/chart/farming-distribution")
|
||||||
@Operation(summary = "数字驾驶舱-灾害统计-农事分布")
|
@Operation(summary = "数字驾驶舱-灾害统计-农事分布")
|
||||||
public CommonResult<List<FarmingDistributionRespVO>> getFarmingDistributionChart(@Valid @RequestBody FarmingDistributionReqVO req) {
|
public CommonResult<List<FarmingDistributionRespVO>> getFarmingDistributionChart(@Valid @RequestBody FarmingDistributionReqVO req) {
|
||||||
return productionPlanService.getFarmingDistributionChart(req); // TODO: 2025/9/4 未实现
|
return productionPlanService.getFarmingDistributionChart(req); // TODO: 2025/9/4 未实现
|
||||||
|
|||||||
@@ -123,4 +123,10 @@ public interface ErrorCodeConstants {
|
|||||||
|
|
||||||
// ========== MQTT连接配置 1_050_038_000 ==========
|
// ========== MQTT连接配置 1_050_038_000 ==========
|
||||||
ErrorCode MQTT_CONNECTION_NOT_EXISTS = new ErrorCode(1_050_038_000, "MQTT连接配置不存在");
|
ErrorCode MQTT_CONNECTION_NOT_EXISTS = new ErrorCode(1_050_038_000, "MQTT连接配置不存在");
|
||||||
|
|
||||||
|
// ========== 一般灾害名称重复 1_050_039_000 ==========
|
||||||
|
ErrorCode GENERAL_DISASTER_NAME_NON_UNIQUE_ERROR = new ErrorCode(1_050_039_000, "一般灾害名称重复");
|
||||||
|
ErrorCode WEATHER_DISASTER_NAME_NON_UNIQUE_ERROR = new ErrorCode(1_050_040_000, "气象灾害名称重复");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -29,6 +29,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
|
|||||||
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_1;
|
||||||
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DICT_TYPE_CODE_2;
|
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;
|
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.DISASTER_DATA_NOT_EXISTS;
|
||||||
|
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.GENERAL_DISASTER_NAME_NON_UNIQUE_ERROR;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 灾害数据 Service 实现类
|
* 灾害数据 Service 实现类
|
||||||
@@ -52,7 +53,7 @@ public class DisasterDataServiceImpl implements DisasterDataService {
|
|||||||
reqVO.setName(createReqVO.getName());
|
reqVO.setName(createReqVO.getName());
|
||||||
DisasterDataDO obj = disasterDataMapper.selectOne(reqVO);
|
DisasterDataDO obj = disasterDataMapper.selectOne(reqVO);
|
||||||
if (ObjectUtils.isNotEmpty(obj)) {
|
if (ObjectUtils.isNotEmpty(obj)) {
|
||||||
return "灾害名称重复";
|
throw exception(GENERAL_DISASTER_NAME_NON_UNIQUE_ERROR);
|
||||||
}
|
}
|
||||||
// 插入
|
// 插入
|
||||||
DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class);
|
DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class);
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class InputLibraryServiceImpl implements InputLibraryService {
|
|||||||
InputLibraryDO updateObj = BeanUtils.toBean(updateReqVO, InputLibraryDO.class);
|
InputLibraryDO updateObj = BeanUtils.toBean(updateReqVO, InputLibraryDO.class);
|
||||||
inputLibraryMapper.updateById(updateObj);
|
inputLibraryMapper.updateById(updateObj);
|
||||||
// 同步
|
// 同步
|
||||||
this.syncUpdateDict(updateObj.getId());
|
// this.syncUpdateDict(updateObj.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void syncUpdateDict(String id) {
|
private void syncUpdateDict(String id) {
|
||||||
|
|||||||
@@ -107,7 +107,19 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
|
|||||||
@Override
|
@Override
|
||||||
public void updateSpeciesLibrary(SpeciesLibrarySaveReqVO updateReqVO) {
|
public void updateSpeciesLibrary(SpeciesLibrarySaveReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateSpeciesLibraryExists(updateReqVO.getId());
|
SpeciesLibraryDO obj = speciesLibraryMapper.selectById(updateReqVO.getId());
|
||||||
|
if (obj == null) {
|
||||||
|
throw exception(SPECIES_LIBRARY_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
// tips: 仅修改使用状态时
|
||||||
|
if (obj.getUseStatus() != updateReqVO.getUseStatus()) {
|
||||||
|
SpeciesLibraryDO updateObj = new SpeciesLibraryDO();
|
||||||
|
updateObj.setId(updateReqVO.getId());
|
||||||
|
updateObj.setUseStatus(updateReqVO.getUseStatus());
|
||||||
|
speciesLibraryMapper.updateById(updateObj);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 更新
|
// 更新
|
||||||
SpeciesLibraryDO updateObj = BeanUtils.toBean(updateReqVO, SpeciesLibraryDO.class);
|
SpeciesLibraryDO updateObj = BeanUtils.toBean(updateReqVO, SpeciesLibraryDO.class);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.farm.controller.admin.weatherdisasterlibrary.vo.W
|
|||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.weatherdisasterlibrary.WeatherDisasterLibraryDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.weatherdisasterlibrary.WeatherDisasterLibraryDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.weatherdisasterlibrary.WeatherDisasterLibraryMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.weatherdisasterlibrary.WeatherDisasterLibraryMapper;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
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.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||||
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.WEATHER_DISASTER_LIBRARY_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 气象灾害库维护 Service 实现类
|
* 气象灾害库维护 Service 实现类
|
||||||
@@ -33,6 +34,11 @@ public class WeatherDisasterLibraryServiceImpl implements WeatherDisasterLibrary
|
|||||||
@Override
|
@Override
|
||||||
public String createWeatherDisasterLibrary(WeatherDisasterLibrarySaveReqVO createReqVO) {
|
public String createWeatherDisasterLibrary(WeatherDisasterLibrarySaveReqVO createReqVO) {
|
||||||
LoginUser user = getLoginUser();
|
LoginUser user = getLoginUser();
|
||||||
|
// 名称查重
|
||||||
|
WeatherDisasterLibraryDO obj = weatherDisasterLibraryMapper.selectOne(WeatherDisasterLibraryDO::getName,createReqVO.getName());
|
||||||
|
if (ObjectUtils.isNotEmpty(obj)) {
|
||||||
|
throw exception(WEATHER_DISASTER_NAME_NON_UNIQUE_ERROR);
|
||||||
|
}
|
||||||
// 插入
|
// 插入
|
||||||
WeatherDisasterLibraryDO weatherDisasterLibrary = BeanUtils.toBean(createReqVO, WeatherDisasterLibraryDO.class);
|
WeatherDisasterLibraryDO weatherDisasterLibrary = BeanUtils.toBean(createReqVO, WeatherDisasterLibraryDO.class);
|
||||||
weatherDisasterLibrary.setId(IdUtil.fastUUID());
|
weatherDisasterLibrary.setId(IdUtil.fastUUID());
|
||||||
|
|||||||
Reference in New Issue
Block a user