fix (farm): 农事报表

- 单位 -> 中文展示
This commit is contained in:
达富斌
2025-10-27 13:50:14 +08:00
parent bb727f4ad3
commit 166ef8866d
5 changed files with 46 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecordinput.FarmingRec
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@@ -25,6 +26,8 @@ public class FarmingRecordSaveReqVO {
@Schema(description = "任务时间")
private String taskTime;
private LocalDate taskStartDate;
private LocalDate taskEndDate;
@Schema(description = "任务计划 (1: 开始; 2: 结束;)")
private Integer taskStatus;

View File

@@ -10,6 +10,10 @@ import java.util.Map;
*/
public class CommonConstants {
public final static String ASSET_TYPE = "asset_type"; // 投入品类型
public final static String ITEMS_UNIT = "asset_unit"; // 规格-单位 (eg: 斤,吨..)
public final static String SPECIFICATION_PRICE = "asset_price"; // 单品-单位 (eg: 捆,箱..)
public final static Integer YES_CODE = 1;
public final static String YES_NAME = "是";

View File

@@ -50,10 +50,6 @@ public class InputsManager {
this.modelFarmingOperationService = modelFarmingOperationService;
}
private final String ASSET_TYPE = "asset_type"; // 投入品类型
private final String ITEMS_UNIT = "asset_unit"; // 规格-单位 (eg: 斤,吨..)
private final String SPECIFICATION_PRICE = "asset_price"; // 单品-单位 (eg: 捆,箱..)
private Map<String, String> getDictTypeMap(String dictType) {
List<DictDataDO> dictDataList = dictDataService.getDictDataList(NO_CODE, dictType);
return dictDataList.stream()

View File

@@ -21,7 +21,6 @@ import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanag
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.models.vo.ModelManagementRespVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.baseinfo.BaseInfoDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecord.FarmingRecordDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputUsageRecordsDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelfarmingoperationinput.ModelFarmingOperationInputDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelmanagement.ModelManagementDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement.PersonnelManagementDO;
@@ -43,6 +42,8 @@ import cn.iocoder.yudao.module.farm.service.plotinfo.PlotInfoService;
import cn.iocoder.yudao.module.farm.service.specieslibrary.SpeciesLibraryService;
import cn.iocoder.yudao.module.farm.utils.BigDecimalUtil;
import cn.iocoder.yudao.module.farm.utils.StrHelperUtil;
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
@@ -53,6 +54,7 @@ import java.time.LocalDate;
import java.time.Period;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -87,11 +89,12 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
private final PlotInfoService plotInfoService;
private final SpeciesLibraryService speciesLibraryService;
private final FarmingTypeMaintenanceService farmingTypeMaintenanceService;
private final DictDataService dictDataService;
public CropFarmingCenterServiceImpl(SpeciesLibraryMapper speciesLibraryMapper, PersonnelManagementMapper personnelManagementMapper, BaseInfoMapper baseInfoMapper, ProductionPlanMapper productionPlanMapper,
FarmingRecordMapper farmingRecordMapper, InputUsageRecordsMapper inputUsageRecordsMapper, ModelManagementService modelManagementService,
FarmingRecordService farmingRecordService,
FarmingRecordInputService farmingRecordInputService, PlotInfoService plotInfoService, SpeciesLibraryService speciesLibraryService, FarmingTypeMaintenanceService farmingTypeMaintenanceService) {
FarmingRecordInputService farmingRecordInputService, PlotInfoService plotInfoService, SpeciesLibraryService speciesLibraryService, FarmingTypeMaintenanceService farmingTypeMaintenanceService, DictDataService dictDataService) {
this.speciesLibraryMapper = speciesLibraryMapper;
this.personnelManagementMapper = personnelManagementMapper;
this.baseInfoMapper = baseInfoMapper;
@@ -104,6 +107,7 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
this.plotInfoService = plotInfoService;
this.speciesLibraryService = speciesLibraryService;
this.farmingTypeMaintenanceService = farmingTypeMaintenanceService;
this.dictDataService = dictDataService;
}
@Override
@@ -714,7 +718,18 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
@Override
public List<FarmingReport1RespVO> getFarmReport(ChartCommonReqVO req) {
return inputUsageRecordsMapper.getFarmReport(req);
Map<String, String> itemsNameMap = this.getDictTypeMap(ITEMS_UNIT);
Map<String, String> specificationNameMap = this.getDictTypeMap(SPECIFICATION_PRICE);
List<FarmingReport1RespVO> list = inputUsageRecordsMapper.getFarmReport(req);
for (FarmingReport1RespVO f : list) {
if (f.getCurrentSpecType() == 1) {
f.setUnitName(itemsNameMap.get(f.getUnit().toString()));
} else {
f.setUnitName(specificationNameMap.get(f.getUnit().toString()));
}
}
return list;
}
@Override
@@ -744,4 +759,18 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
);
}
private Map<String, String> getDictTypeMap(String dictType) {
List<DictDataDO> dictDataList = dictDataService.getDictDataList(NO_CODE, dictType);
return dictDataList.stream()
// 按 sort 字段降序排序(数字大的在上面)
.sorted((o1, o2) -> o2.getSort().compareTo(o1.getSort()))
// 收集到 Map 中
.collect(Collectors.toMap(
DictDataDO::getValue, // key 映射
DictDataDO::getLabel, // value 映射
(oldValue, newValue) -> oldValue, // 键冲突时的处理策略
LinkedHashMap::new // 使用 LinkedHashMap 保持排序顺序
));
}
}

View File

@@ -24,6 +24,7 @@ import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;
@@ -182,12 +183,18 @@ public class FarmingRecordServiceImpl implements FarmingRecordService {
String modelFarmingOperationId = ""; // TODO: 2025/10/21
String[] split = taskTime.split(",");
LocalDate taskStartDate = LocalDate.parse(split[0]);
LocalDate taskEndDate = LocalDate.parse(split[1]);
// 创建FarmingRecordSaveReqVO对象
FarmingRecordSaveReqVO saveReqVO = new FarmingRecordSaveReqVO();
saveReqVO.setTaskType(createReqVO.getTaskType());
saveReqVO.setTaskName(createReqVO.getTaskName());
saveReqVO.setTaskScope(createReqVO.getTaskScope());
saveReqVO.setTaskTime(taskTime);
saveReqVO.setTaskStartDate(taskStartDate);
saveReqVO.setTaskEndDate(taskEndDate);
saveReqVO.setPlotId(createReqVO.getPlotId());
saveReqVO.setProductionPlanId(createReqVO.getProductionPlanId());
saveReqVO.setModelFarmingOperationId(modelFarmingOperationId);