From 2ae5b6ee3c19bad3a4ebeea6b39c546cdd08028e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Mon, 20 Oct 2025 15:09:30 +0800 Subject: [PATCH] =?UTF-8?q?refactor=20(farm):=20=E6=8A=95=E5=85=A5?= =?UTF-8?q?=E5=93=81=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 涉及到的模块: - 基础数据管理 - 投入品 (模版类型) - 模型管理 - 农事记录 - 投入品(引用类型) - 生产中心 - 农事记录 - 投入品使用记录 --- .../ModelFarmingOperationController.java | 7 ++++ .../vo/ModelFarmingOperationRespVO.java | 3 ++ .../farm/manager/inputs/InputsManager.java | 38 +++++++++---------- .../CropFarmingCenterServiceImpl.java | 2 +- .../service/inputlibrary/InputsService.java | 1 + .../inputlibrary/InputsServiceImpl.java | 5 +++ .../ModelFarmingOperationService.java | 6 +++ .../ModelFarmingOperationServiceImpl.java | 26 +++++++++---- 8 files changed, 61 insertions(+), 27 deletions(-) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/modelmanagement/modelfarmingoperation/ModelFarmingOperationController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/modelmanagement/modelfarmingoperation/ModelFarmingOperationController.java index 9a43c8d8..2cf95e5e 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/modelmanagement/modelfarmingoperation/ModelFarmingOperationController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/modelmanagement/modelfarmingoperation/ModelFarmingOperationController.java @@ -1,8 +1,10 @@ package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelfarmingoperation; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs.InputsRespVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelfarmingoperation.vo.ModelFarmingOperationPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelfarmingoperation.vo.ModelFarmingOperationRespVO; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelfarmingoperation.vo.ModelFarmingOperationSaveReqVO; +import cn.iocoder.yudao.module.farm.manager.inputs.InputsManager; import org.springframework.web.bind.annotation.*; import jakarta.validation.Valid; import jakarta.servlet.http.HttpServletResponse; @@ -37,6 +39,8 @@ import cn.iocoder.yudao.module.farm.service.modelfarmingoperation.ModelFarmingOp @Validated public class ModelFarmingOperationController { + @Resource + private InputsManager inputsManager; @Resource private ModelFarmingOperationService modelFarmingOperationService; @@ -78,6 +82,9 @@ public class ModelFarmingOperationController { @Parameter(name = "id", description = "编号", required = true, example = "1024") public CommonResult getModelFarmingOperation(@RequestParam("id") String id) { ModelFarmingOperationRespVO modelFarmingOperation = modelFarmingOperationService.getModelFarmingOperation(id); + + List inputs = inputsManager.getInputsPageForReferenceType(id); + modelFarmingOperation.setFarmingOperationInputVOS(inputs); return success(modelFarmingOperation); } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/modelmanagement/modelfarmingoperation/vo/ModelFarmingOperationRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/modelmanagement/modelfarmingoperation/vo/ModelFarmingOperationRespVO.java index 75a40e98..23f1d3c0 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/modelmanagement/modelfarmingoperation/vo/ModelFarmingOperationRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/managementcenter/modelmanagement/modelfarmingoperation/vo/ModelFarmingOperationRespVO.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmana import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; +import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs.InputsRespVO; import cn.iocoder.yudao.module.farm.dal.dataobject.modelfarmingoperationinput.ModelFarmingOperationInputDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -83,4 +84,6 @@ public class ModelFarmingOperationRespVO { private String inputsIds; private List farmingOperationInputDOS; + + private List farmingOperationInputVOS; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/inputs/InputsManager.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/inputs/InputsManager.java index ba9b1ba0..a5fd2abe 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/inputs/InputsManager.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/inputs/InputsManager.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.farm.manager.inputs; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.inputs.*; -import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelfarmingoperation.vo.ModelFarmingOperationRespVO; import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputsDO; import cn.iocoder.yudao.module.farm.enums.CommonConstants; import cn.iocoder.yudao.module.farm.manager.inputs.dto.wms.InputCategoryDTO; @@ -14,6 +13,7 @@ import cn.iocoder.yudao.module.farm.service.inputlibrary.InputsService; import cn.iocoder.yudao.module.farm.service.modelfarmingoperation.ModelFarmingOperationService; import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; import cn.iocoder.yudao.module.system.service.dict.DictDataService; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -166,34 +166,34 @@ public class InputsManager { * ================================================= */ - public void createInputsForReferenceType(InputsSaveReqVO req) { - req.setInputCategory(INPUT_TYPE_2); - String id = inputsService.createInputs(req); + public void createInputsForReferenceType(List req) { + + for (InputsSaveReqVO i : req) { + if (!ObjectUtils.notEqual(i.getInputCategory(), INPUT_CATEGORY_1)) { + // 模版类型 直接新增 + i.setInputCategory(INPUT_TYPE_2); + String id = inputsService.createInputs(i); + } else { + continue; + } + } + } - PageResult getInputsPageForReferenceType(String mfId,InputsPageReqVO req) { - - ModelFarmingOperationRespVO modelFarmingOperation = modelFarmingOperationService.getModelFarmingOperation(mfId); - String inputsIds = modelFarmingOperation.getInputsIds(); - List ids = Arrays.stream(inputsIds.split(",")) - .map(String::trim) - .filter(s -> !s.isEmpty()) - .collect(Collectors.toList()); - - - + public List getInputsPageForReferenceType(String mfId) { Map inputTypeNameMap = this.getDictTypeMap(ASSET_TYPE); Map itemsNameMap = this.getDictTypeMap(ITEMS_UNIT); Map specificationNameMap = this.getDictTypeMap(SPECIFICATION_PRICE); - req.setInputCategory(CommonConstants.INPUT_TYPE_2); - PageResult source = inputsService.getInputsPage(req); - source.getList().stream().forEach(e -> { + List ids = modelFarmingOperationService.getModelFarmingOperationInputIds(mfId); + + List iList = inputsService.getInputsByIds(ids); + iList.stream().forEach(e -> { covertStr(e, inputTypeNameMap, itemsNameMap, specificationNameMap); }); - PageResult res = BeanUtils.toBean(source, InputsRespVO.class); + List res = BeanUtils.toBean(iList, InputsRespVO.class); return res; } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java index 199bc22e..08ffc1cf 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/cropFarmingCenter/CropFarmingCenterServiceImpl.java @@ -549,7 +549,7 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService { @Override public void restartProductionPlan(ProductionPlanUpdateReqVO updateReqVO) { - + this.updateProductionPlan(updateReqVO); } @Override diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsService.java index 1fd46e35..ec51fe46 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsService.java @@ -64,4 +64,5 @@ public interface InputsService { */ PageResult getInputsPage(InputsPageReqVO pageReqVO); + List getInputsByIds(List ids); } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsServiceImpl.java index 42599647..c0389438 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/inputlibrary/InputsServiceImpl.java @@ -116,4 +116,9 @@ public class InputsServiceImpl implements InputsService { return inputsMapper.selectPage(pageReqVO); } + @Override + public List getInputsByIds(List ids) { + return inputsMapper.selectByIds(ids); + } + } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelfarmingoperation/ModelFarmingOperationService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelfarmingoperation/ModelFarmingOperationService.java index 52edfe33..dfb74e29 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelfarmingoperation/ModelFarmingOperationService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelfarmingoperation/ModelFarmingOperationService.java @@ -61,4 +61,10 @@ public interface ModelFarmingOperationService { */ PageResult getModelFarmingOperationPage(ModelFarmingOperationPageReqVO pageReqVO); + /** + * 获取 模型管理- 农事记录id集合 + * @param mfId + * @return + */ + List getModelFarmingOperationInputIds(String mfId); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelfarmingoperation/ModelFarmingOperationServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelfarmingoperation/ModelFarmingOperationServiceImpl.java index 01a1f8c1..7860fc20 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelfarmingoperation/ModelFarmingOperationServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/modelfarmingoperation/ModelFarmingOperationServiceImpl.java @@ -18,6 +18,7 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -107,13 +108,14 @@ public class ModelFarmingOperationServiceImpl implements ModelFarmingOperationSe ModelFarmingOperationRespVO bean = BeanUtils.toBean(modelFarmingOperationMapper.selectById(id), ModelFarmingOperationRespVO.class); - List farmingOperationInputDOS = modelFarmingOperationInputMapper.selectByFarmingId(id); - for (ModelFarmingOperationInputDO aDo : farmingOperationInputDOS) { - aDo.setInputsName(dictMap.get(aDo.getInputsId())); - aDo.setUnitName(unit1Map.get(aDo.getUnit())); - aDo.setPackageUnitName(unit2Map.get(aDo.getPackageUnit())); - } - bean.setFarmingOperationInputDOS(farmingOperationInputDOS); +// List farmingOperationInputDOS = modelFarmingOperationInputMapper.selectByFarmingId(id); +// for (ModelFarmingOperationInputDO aDo : farmingOperationInputDOS) { +// aDo.setInputsName(dictMap.get(aDo.getInputsId())); +// aDo.setUnitName(unit1Map.get(aDo.getUnit())); +// aDo.setPackageUnitName(unit2Map.get(aDo.getPackageUnit())); +// } +// bean.setFarmingOperationInputDOS(farmingOperationInputDOS); + return bean; } @@ -122,4 +124,14 @@ public class ModelFarmingOperationServiceImpl implements ModelFarmingOperationSe return modelFarmingOperationMapper.selectPage(pageReqVO); } + @Override + public List getModelFarmingOperationInputIds(String mfId) { + ModelFarmingOperationDO modelFarmingOperationDO = modelFarmingOperationMapper.selectById(mfId); + String inputsIds = modelFarmingOperationDO.getInputsIds(); + return Arrays.stream(inputsIds.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .collect(Collectors.toList()); + } + } \ No newline at end of file