refactor (farm): 投入品重构

- 涉及到的模块:
  - 基础数据管理 - 投入品 (模版类型)
  - 模型管理 - 农事记录 - 投入品(引用类型)
  - 生产中心 - 农事记录 - 投入品使用记录
This commit is contained in:
达富斌
2025-10-20 15:09:30 +08:00
parent 1a82afaba8
commit 2ae5b6ee3c
8 changed files with 61 additions and 27 deletions

View File

@@ -1,8 +1,10 @@
package cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelfarmingoperation; 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.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.ModelFarmingOperationRespVO;
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelfarmingoperation.vo.ModelFarmingOperationSaveReqVO; 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 org.springframework.web.bind.annotation.*;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@@ -37,6 +39,8 @@ import cn.iocoder.yudao.module.farm.service.modelfarmingoperation.ModelFarmingOp
@Validated @Validated
public class ModelFarmingOperationController { public class ModelFarmingOperationController {
@Resource
private InputsManager inputsManager;
@Resource @Resource
private ModelFarmingOperationService modelFarmingOperationService; private ModelFarmingOperationService modelFarmingOperationService;
@@ -78,6 +82,9 @@ public class ModelFarmingOperationController {
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<ModelFarmingOperationRespVO> getModelFarmingOperation(@RequestParam("id") String id) { public CommonResult<ModelFarmingOperationRespVO> getModelFarmingOperation(@RequestParam("id") String id) {
ModelFarmingOperationRespVO modelFarmingOperation = modelFarmingOperationService.getModelFarmingOperation(id); ModelFarmingOperationRespVO modelFarmingOperation = modelFarmingOperationService.getModelFarmingOperation(id);
List<InputsRespVO> inputs = inputsManager.getInputsPageForReferenceType(id);
modelFarmingOperation.setFarmingOperationInputVOS(inputs);
return success(modelFarmingOperation); return success(modelFarmingOperation);
} }

View File

@@ -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.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty; 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 cn.iocoder.yudao.module.farm.dal.dataobject.modelfarmingoperationinput.ModelFarmingOperationInputDO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@@ -83,4 +84,6 @@ public class ModelFarmingOperationRespVO {
private String inputsIds; private String inputsIds;
private List<ModelFarmingOperationInputDO> farmingOperationInputDOS; private List<ModelFarmingOperationInputDO> farmingOperationInputDOS;
private List<InputsRespVO> farmingOperationInputVOS;
} }

View File

@@ -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.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 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.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.dal.dataobject.inputlibrary.InputsDO;
import cn.iocoder.yudao.module.farm.enums.CommonConstants; import cn.iocoder.yudao.module.farm.enums.CommonConstants;
import cn.iocoder.yudao.module.farm.manager.inputs.dto.wms.InputCategoryDTO; 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.farm.service.modelfarmingoperation.ModelFarmingOperationService;
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
import cn.iocoder.yudao.module.system.service.dict.DictDataService; import cn.iocoder.yudao.module.system.service.dict.DictDataService;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -166,34 +166,34 @@ public class InputsManager {
* ================================================= * =================================================
*/ */
public void createInputsForReferenceType(InputsSaveReqVO req) { public void createInputsForReferenceType(List<InputsSaveReqVO> req) {
req.setInputCategory(INPUT_TYPE_2);
String id = inputsService.createInputs(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<InputsRespVO> getInputsPageForReferenceType(String mfId,InputsPageReqVO req) {
ModelFarmingOperationRespVO modelFarmingOperation = modelFarmingOperationService.getModelFarmingOperation(mfId);
String inputsIds = modelFarmingOperation.getInputsIds();
List<String> ids = Arrays.stream(inputsIds.split(","))
.map(String::trim)
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
public List<InputsRespVO> getInputsPageForReferenceType(String mfId) {
Map<String, String> inputTypeNameMap = this.getDictTypeMap(ASSET_TYPE); Map<String, String> inputTypeNameMap = this.getDictTypeMap(ASSET_TYPE);
Map<String, String> itemsNameMap = this.getDictTypeMap(ITEMS_UNIT); Map<String, String> itemsNameMap = this.getDictTypeMap(ITEMS_UNIT);
Map<String, String> specificationNameMap = this.getDictTypeMap(SPECIFICATION_PRICE); Map<String, String> specificationNameMap = this.getDictTypeMap(SPECIFICATION_PRICE);
req.setInputCategory(CommonConstants.INPUT_TYPE_2); List<String> ids = modelFarmingOperationService.getModelFarmingOperationInputIds(mfId);
PageResult<InputsDO> source = inputsService.getInputsPage(req);
source.getList().stream().forEach(e -> { List<InputsDO> iList = inputsService.getInputsByIds(ids);
iList.stream().forEach(e -> {
covertStr(e, inputTypeNameMap, itemsNameMap, specificationNameMap); covertStr(e, inputTypeNameMap, itemsNameMap, specificationNameMap);
}); });
PageResult<InputsRespVO> res = BeanUtils.toBean(source, InputsRespVO.class); List<InputsRespVO> res = BeanUtils.toBean(iList, InputsRespVO.class);
return res; return res;
} }

View File

@@ -549,7 +549,7 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
@Override @Override
public void restartProductionPlan(ProductionPlanUpdateReqVO updateReqVO) { public void restartProductionPlan(ProductionPlanUpdateReqVO updateReqVO) {
this.updateProductionPlan(updateReqVO);
} }
@Override @Override

View File

@@ -64,4 +64,5 @@ public interface InputsService {
*/ */
PageResult<InputsDO> getInputsPage(InputsPageReqVO pageReqVO); PageResult<InputsDO> getInputsPage(InputsPageReqVO pageReqVO);
List<InputsDO> getInputsByIds(List<String> ids);
} }

View File

@@ -116,4 +116,9 @@ public class InputsServiceImpl implements InputsService {
return inputsMapper.selectPage(pageReqVO); return inputsMapper.selectPage(pageReqVO);
} }
@Override
public List<InputsDO> getInputsByIds(List<String> ids) {
return inputsMapper.selectByIds(ids);
}
} }

View File

@@ -61,4 +61,10 @@ public interface ModelFarmingOperationService {
*/ */
PageResult<ModelFarmingOperationDO> getModelFarmingOperationPage(ModelFarmingOperationPageReqVO pageReqVO); PageResult<ModelFarmingOperationDO> getModelFarmingOperationPage(ModelFarmingOperationPageReqVO pageReqVO);
/**
* 获取 模型管理- 农事记录id集合
* @param mfId
* @return
*/
List<String> getModelFarmingOperationInputIds(String mfId);
} }

View File

@@ -18,6 +18,7 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -107,13 +108,14 @@ public class ModelFarmingOperationServiceImpl implements ModelFarmingOperationSe
ModelFarmingOperationRespVO bean = BeanUtils.toBean(modelFarmingOperationMapper.selectById(id), ModelFarmingOperationRespVO.class); ModelFarmingOperationRespVO bean = BeanUtils.toBean(modelFarmingOperationMapper.selectById(id), ModelFarmingOperationRespVO.class);
List<ModelFarmingOperationInputDO> farmingOperationInputDOS = modelFarmingOperationInputMapper.selectByFarmingId(id); // List<ModelFarmingOperationInputDO> farmingOperationInputDOS = modelFarmingOperationInputMapper.selectByFarmingId(id);
for (ModelFarmingOperationInputDO aDo : farmingOperationInputDOS) { // for (ModelFarmingOperationInputDO aDo : farmingOperationInputDOS) {
aDo.setInputsName(dictMap.get(aDo.getInputsId())); // aDo.setInputsName(dictMap.get(aDo.getInputsId()));
aDo.setUnitName(unit1Map.get(aDo.getUnit())); // aDo.setUnitName(unit1Map.get(aDo.getUnit()));
aDo.setPackageUnitName(unit2Map.get(aDo.getPackageUnit())); // aDo.setPackageUnitName(unit2Map.get(aDo.getPackageUnit()));
} // }
bean.setFarmingOperationInputDOS(farmingOperationInputDOS); // bean.setFarmingOperationInputDOS(farmingOperationInputDOS);
return bean; return bean;
} }
@@ -122,4 +124,14 @@ public class ModelFarmingOperationServiceImpl implements ModelFarmingOperationSe
return modelFarmingOperationMapper.selectPage(pageReqVO); return modelFarmingOperationMapper.selectPage(pageReqVO);
} }
@Override
public List<String> 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());
}
} }