farm模块-地块类型

This commit is contained in:
顾君禹
2025-08-28 09:28:36 +08:00
parent 9ff364fadf
commit fed3313e28
3 changed files with 58 additions and 44 deletions

View File

@@ -8,10 +8,11 @@ import cn.iocoder.yudao.module.farm.controller.admin.cropFarmingCenter.vo.*;
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecord.vo.FarmingRecordSaveReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.farmingrecordinput.vo.FarmingRecordInputSaveReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelcycle.vo.ModelCycleRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelfarmingoperation.vo.ModelFarmingOperationRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.modelmanagement.vo.ModelManagementRespVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelfarmingoperationinput.ModelFarmingOperationInputDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.productionplan.ProductionPlanDO;
import cn.iocoder.yudao.module.farm.dal.mysql.baseinfo.BaseInfoMapper;
import cn.iocoder.yudao.module.farm.dal.mysql.productionplan.ProductionPlanMapper;
@@ -19,8 +20,10 @@ import cn.iocoder.yudao.module.farm.enums.CommonConstants;
import cn.iocoder.yudao.module.farm.service.farmingrecord.FarmingRecordService;
import cn.iocoder.yudao.module.farm.service.farmingrecordinput.FarmingRecordInputService;
import cn.iocoder.yudao.module.farm.service.modelmanagement.ModelManagementService;
import cn.iocoder.yudao.module.farm.service.plotinfo.PlotInfoService;
import cn.iocoder.yudao.module.farm.utils.StrHelperUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -49,28 +52,24 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
private final ModelManagementService modelManagementService;
private final FarmingRecordService farmingRecordService;
private final FarmingRecordInputService farmingRecordInputService;
private final PlotInfoService plotInfoService;
public CropFarmingCenterServiceImpl(BaseInfoMapper baseInfoMapper, ProductionPlanMapper productionPlanMapper,
ModelManagementService modelManagementService,
FarmingRecordService farmingRecordService,
FarmingRecordInputService farmingRecordInputService) {
FarmingRecordInputService farmingRecordInputService, PlotInfoService plotInfoService) {
this.baseInfoMapper = baseInfoMapper;
this.productionPlanMapper = productionPlanMapper;
this.modelManagementService = modelManagementService;
this.farmingRecordService = farmingRecordService;
this.farmingRecordInputService = farmingRecordInputService;
this.plotInfoService = plotInfoService;
}
@Override
public void createProductionPlan(ProductionPlanSaveReqVO reqVO) {
String taskId = IdUtil.fastUUID();
String speciesModelId = reqVO.getSpeciesModelId();
// 创建模型案例
speciesModelId = modelManagementService.createModelManagementCase(speciesModelId, taskId);
if (speciesModelId.equals("")) {
return;
}
String speciesModelId = reqVO.getSpeciesModelId();
List<ProductionPlanSaveReqVO.CultivationArea> cultivationAreaList = reqVO.getCultivationAreaList();
@@ -94,22 +93,32 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
obj.setRemark(e.getRemark());
obj.setBaseId(e.getBaseId());
obj.setBaseName(e.getBaseName());
BaseInfoDO baseInfoDO = baseInfoMapper.selectById(e.getBaseId());
obj.setBaseName(baseInfoDO.getName());
obj.setPlotId(e.getPlotId());
obj.setPlotName(e.getPlotName());
obj.setTenantId(e.getTenantId());
PlotInfoDO plotInfo = plotInfoService.getPlotInfoByPlotId(e.getPlotId());
obj.setPlotName(plotInfo.getPlotName());
obj.setTenantId(getLoginUser().getTenantId().toString());
obj.setId(IdUtil.fastUUID());
// 随机字符串 + 地块名称
obj.setPlanNumber(StrHelperUtil.generate() + "-" + e.getPlotName());
String taskId = IdUtil.fastUUID();
obj.setId(taskId);
// 创建模型案例
speciesModelId = modelManagementService.createModelManagementCase(speciesModelId, taskId);
if (speciesModelId.equals("")) {
return;
}
list.add(obj);
}
productionPlanMapper.insertBatch(list);
// 根据模型生成农事记录
for (ProductionPlanSaveReqVO.CultivationArea e : cultivationAreaList) {
generateFarmingRecordsFromModel(speciesModelId, taskId, e.getPlantingDate(), e.getBaseId(), e.getBaseName(), e.getPlotId(), e.getPlotName(), e.getTenantId());
}
// for (ProductionPlanSaveReqVO.CultivationArea e : cultivationAreaList) {
// generateFarmingRecordsFromModel(speciesModelId, taskId, e.getPlantingDate(), e.getBaseId(), e.getBaseName(), e.getPlotId(), e.getPlotName(), e.getTenantId());
// }
}
/**

View File

@@ -60,4 +60,5 @@ public interface PlotInfoService {
*/
PageResult<PlotInfoDO> getPlotInfoPage(PlotInfoPageReqVO pageReqVO);
PlotInfoDO getPlotInfoByPlotId(String plotId);
}

View File

@@ -1,24 +1,21 @@
package cn.iocoder.yudao.module.farm.service.plotinfo;
import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.module.farm.controller.admin.plotinfo.vo.PlotInfoPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.plotinfo.vo.PlotInfoSaveReqVO;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO;
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.plotinfo.vo.PlotInfoPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.plotinfo.vo.PlotInfoSaveReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO;
import cn.iocoder.yudao.module.farm.dal.mysql.plotinfo.PlotInfoMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.PLOT_INFO_NOT_EXISTS;
@@ -91,4 +88,11 @@ private void validatePlotInfoExists(String id) {
return plotInfoMapper.selectPage(pageReqVO);
}
@Override
public PlotInfoDO getPlotInfoByPlotId(String plotId) {
LambdaQueryWrapper<PlotInfoDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlotInfoDO::getPlotId, plotId);
return plotInfoMapper.selectOne(queryWrapper);
}
}