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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@@ -25,6 +26,8 @@ public class FarmingRecordSaveReqVO {
@Schema(description = "任务时间") @Schema(description = "任务时间")
private String taskTime; private String taskTime;
private LocalDate taskStartDate;
private LocalDate taskEndDate;
@Schema(description = "任务计划 (1: 开始; 2: 结束;)") @Schema(description = "任务计划 (1: 开始; 2: 结束;)")
private Integer taskStatus; private Integer taskStatus;

View File

@@ -10,6 +10,10 @@ import java.util.Map;
*/ */
public class CommonConstants { 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 Integer YES_CODE = 1;
public final static String YES_NAME = "是"; public final static String YES_NAME = "是";

View File

@@ -50,10 +50,6 @@ public class InputsManager {
this.modelFarmingOperationService = modelFarmingOperationService; 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) { private Map<String, String> getDictTypeMap(String dictType) {
List<DictDataDO> dictDataList = dictDataService.getDictDataList(NO_CODE, dictType); List<DictDataDO> dictDataList = dictDataService.getDictDataList(NO_CODE, dictType);
return dictDataList.stream() 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.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.baseinfo.BaseInfoDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecord.FarmingRecordDO; 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.modelfarmingoperationinput.ModelFarmingOperationInputDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.modelmanagement.ModelManagementDO; import cn.iocoder.yudao.module.farm.dal.dataobject.modelmanagement.ModelManagementDO;
import cn.iocoder.yudao.module.farm.dal.dataobject.personnelmanagement.PersonnelManagementDO; 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.service.specieslibrary.SpeciesLibraryService;
import cn.iocoder.yudao.module.farm.utils.BigDecimalUtil; import cn.iocoder.yudao.module.farm.utils.BigDecimalUtil;
import cn.iocoder.yudao.module.farm.utils.StrHelperUtil; 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 com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
@@ -53,6 +54,7 @@ import java.time.LocalDate;
import java.time.Period; import java.time.Period;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap;
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;
@@ -87,11 +89,12 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
private final PlotInfoService plotInfoService; private final PlotInfoService plotInfoService;
private final SpeciesLibraryService speciesLibraryService; private final SpeciesLibraryService speciesLibraryService;
private final FarmingTypeMaintenanceService farmingTypeMaintenanceService; private final FarmingTypeMaintenanceService farmingTypeMaintenanceService;
private final DictDataService dictDataService;
public CropFarmingCenterServiceImpl(SpeciesLibraryMapper speciesLibraryMapper, PersonnelManagementMapper personnelManagementMapper, BaseInfoMapper baseInfoMapper, ProductionPlanMapper productionPlanMapper, public CropFarmingCenterServiceImpl(SpeciesLibraryMapper speciesLibraryMapper, PersonnelManagementMapper personnelManagementMapper, BaseInfoMapper baseInfoMapper, ProductionPlanMapper productionPlanMapper,
FarmingRecordMapper farmingRecordMapper, InputUsageRecordsMapper inputUsageRecordsMapper, ModelManagementService modelManagementService, FarmingRecordMapper farmingRecordMapper, InputUsageRecordsMapper inputUsageRecordsMapper, ModelManagementService modelManagementService,
FarmingRecordService farmingRecordService, FarmingRecordService farmingRecordService,
FarmingRecordInputService farmingRecordInputService, PlotInfoService plotInfoService, SpeciesLibraryService speciesLibraryService, FarmingTypeMaintenanceService farmingTypeMaintenanceService) { FarmingRecordInputService farmingRecordInputService, PlotInfoService plotInfoService, SpeciesLibraryService speciesLibraryService, FarmingTypeMaintenanceService farmingTypeMaintenanceService, DictDataService dictDataService) {
this.speciesLibraryMapper = speciesLibraryMapper; this.speciesLibraryMapper = speciesLibraryMapper;
this.personnelManagementMapper = personnelManagementMapper; this.personnelManagementMapper = personnelManagementMapper;
this.baseInfoMapper = baseInfoMapper; this.baseInfoMapper = baseInfoMapper;
@@ -104,6 +107,7 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
this.plotInfoService = plotInfoService; this.plotInfoService = plotInfoService;
this.speciesLibraryService = speciesLibraryService; this.speciesLibraryService = speciesLibraryService;
this.farmingTypeMaintenanceService = farmingTypeMaintenanceService; this.farmingTypeMaintenanceService = farmingTypeMaintenanceService;
this.dictDataService = dictDataService;
} }
@Override @Override
@@ -714,7 +718,18 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
@Override @Override
public List<FarmingReport1RespVO> getFarmReport(ChartCommonReqVO req) { 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 @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.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -182,12 +183,18 @@ public class FarmingRecordServiceImpl implements FarmingRecordService {
String modelFarmingOperationId = ""; // TODO: 2025/10/21 String modelFarmingOperationId = ""; // TODO: 2025/10/21
String[] split = taskTime.split(",");
LocalDate taskStartDate = LocalDate.parse(split[0]);
LocalDate taskEndDate = LocalDate.parse(split[1]);
// 创建FarmingRecordSaveReqVO对象 // 创建FarmingRecordSaveReqVO对象
FarmingRecordSaveReqVO saveReqVO = new FarmingRecordSaveReqVO(); FarmingRecordSaveReqVO saveReqVO = new FarmingRecordSaveReqVO();
saveReqVO.setTaskType(createReqVO.getTaskType()); saveReqVO.setTaskType(createReqVO.getTaskType());
saveReqVO.setTaskName(createReqVO.getTaskName()); saveReqVO.setTaskName(createReqVO.getTaskName());
saveReqVO.setTaskScope(createReqVO.getTaskScope()); saveReqVO.setTaskScope(createReqVO.getTaskScope());
saveReqVO.setTaskTime(taskTime); saveReqVO.setTaskTime(taskTime);
saveReqVO.setTaskStartDate(taskStartDate);
saveReqVO.setTaskEndDate(taskEndDate);
saveReqVO.setPlotId(createReqVO.getPlotId()); saveReqVO.setPlotId(createReqVO.getPlotId());
saveReqVO.setProductionPlanId(createReqVO.getProductionPlanId()); saveReqVO.setProductionPlanId(createReqVO.getProductionPlanId());
saveReqVO.setModelFarmingOperationId(modelFarmingOperationId); saveReqVO.setModelFarmingOperationId(modelFarmingOperationId);