feat (farm): 农事报表
- 农事任务分类统计 - 种植类信息 - 投入品分类统计/金额统计
This commit is contained in:
@@ -8,6 +8,10 @@ import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.Farmin
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordSaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordCreateReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.FarmTypeChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.InputUsageChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.PlantingAreaChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecord.FarmingRecordDO;
|
||||
import cn.iocoder.yudao.module.farm.enums.CommonConstants;
|
||||
import cn.iocoder.yudao.module.farm.service.cropFarmingCenter.CropFarmingCenterService;
|
||||
@@ -263,8 +267,29 @@ public class CropFarmingCenterController {
|
||||
|
||||
@Operation(summary = "农事报表")
|
||||
@GetMapping("/farming-report/1")
|
||||
public CommonResult<FarmingReport1RespVO> getFarmReport(FarmingReport1ReqVO req) {
|
||||
FarmingReport1RespVO res = null;
|
||||
public CommonResult<List<FarmingReport1RespVO>> getFarmReport(FarmingReport1ReqVO req) {
|
||||
List<FarmingReport1RespVO> res = cropFarmingCenterService.getFarmReport(req);
|
||||
return success(res);
|
||||
}
|
||||
|
||||
@Operation(summary = "农事报表-农事任务分类统计")
|
||||
@GetMapping("/farming-report/chart/farm-type")
|
||||
public CommonResult<List<FarmTypeChartRespVO>> getFarmTypeChart(ChartCommonReqVO req) {
|
||||
List<FarmTypeChartRespVO> res = cropFarmingCenterService.getFarmTypeChart(req);
|
||||
return success(res);
|
||||
}
|
||||
|
||||
@Operation(summary = "农事报表-种植类信息")
|
||||
@GetMapping("/farming-report/chart/species")
|
||||
public CommonResult<List<PlantingAreaChartRespVO>> getPlantingAreaChart(ChartCommonReqVO req) {
|
||||
List<PlantingAreaChartRespVO> res = cropFarmingCenterService.getPlantingAreaChart(req);
|
||||
return success(res);
|
||||
}
|
||||
|
||||
@Operation(summary = "农事报表-投入品分类统计")
|
||||
@GetMapping("/farming-report/chart/input-type")
|
||||
public CommonResult<List<InputUsageChartRespVO>> getInputUsageChart(ChartCommonReqVO req) {
|
||||
List<InputUsageChartRespVO> res = cropFarmingCenterService.getInputUsageChart(req);
|
||||
return success(res);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,20 +17,20 @@ import java.time.LocalDate;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class FarmingReport1RespVO {
|
||||
private String id;
|
||||
|
||||
private String baseId;
|
||||
private String baseName;
|
||||
|
||||
@Schema(description = "计划编号")
|
||||
private String planNumber;
|
||||
|
||||
@Schema(description = "排产开始日期")
|
||||
@Schema(description = "开始日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate productionStartDate;
|
||||
private LocalDate taskStartDate;
|
||||
|
||||
@Schema(description = "排产结束日期")
|
||||
@Schema(description = "结束日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate productionEndDate;
|
||||
private LocalDate taskEndDate;
|
||||
|
||||
@Schema(description = "持续天数")
|
||||
private Integer intervalDays;
|
||||
@@ -42,7 +42,6 @@ public class FarmingReport1RespVO {
|
||||
@Schema(description = "投入品总价")
|
||||
private Double inputTotalPrice;
|
||||
|
||||
|
||||
@Schema(description = "详情-用量")
|
||||
private Integer usageAmount;
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @description:
|
||||
* @author: binda
|
||||
* @date: 2025/10/26 21:31
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ChartCommonReqVO {
|
||||
private String baseId;
|
||||
private String plotId;
|
||||
private Integer yearDate;
|
||||
private String state;
|
||||
private String tenantId;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @description:
|
||||
* @author: binda
|
||||
* @date: 2025/10/26 21:08
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class FarmTypeChartRespVO {
|
||||
@Schema(description = "农事类型-名称")
|
||||
private String farmTypeName;
|
||||
@Schema(description = "农事记录数量")
|
||||
private Integer recordCount;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @description: TODO
|
||||
* @author: binda
|
||||
* @date: 2025/10/27 00:10
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class InputUsageChartRespVO {
|
||||
@Schema(description = "投入品名称")
|
||||
private String inputName;
|
||||
|
||||
@Schema(description = "用量")
|
||||
private Integer usageAmount;
|
||||
|
||||
@Schema(description = "单位")
|
||||
private Integer unit;
|
||||
|
||||
@Schema(description = "总金额")
|
||||
private BigDecimal totalPrice;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @description: TODO
|
||||
* @author: binda
|
||||
* @date: 2025/10/26 22:19
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PlantingAreaChartRespVO {
|
||||
@Schema(description = "物种名称")
|
||||
private String speciesName;
|
||||
@Schema(description = "种植面积")
|
||||
private Double plantingArea;
|
||||
@Schema(description = "种植面积占比")
|
||||
private String areaPercentage;
|
||||
}
|
||||
@@ -6,9 +6,13 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.FarmingDistributionReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.FarmingDistributionRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.FarmTypeChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecord.FarmingRecordDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 种植中心-农事基地-农事记录 Mapper
|
||||
*
|
||||
@@ -41,4 +45,6 @@ public interface FarmingRecordMapper extends BaseMapperX<FarmingRecordDO> {
|
||||
}
|
||||
|
||||
FarmingDistributionRespVO getFarmingDistributionChart(FarmingDistributionReqVO req);
|
||||
|
||||
List<FarmTypeChartRespVO> getFarmTypeChart(ChartCommonReqVO req);
|
||||
}
|
||||
@@ -4,10 +4,14 @@ package cn.iocoder.yudao.module.farm.dal.mysql.inputlibrary;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.InputUsageChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.basicdatamanagement.inputlibrary.vo.usagerecords.InputUsageRecordsPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputUsageRecordsDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 投入品使用记录 Mapper
|
||||
*
|
||||
@@ -28,4 +32,5 @@ public interface InputUsageRecordsMapper extends BaseMapperX<InputUsageRecordsDO
|
||||
.orderByDesc(InputUsageRecordsDO::getCreateTime));
|
||||
}
|
||||
|
||||
List<InputUsageChartRespVO> getInputUsageChart(ChartCommonReqVO req);
|
||||
}
|
||||
@@ -7,6 +7,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.api.vo.*;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.ProductionPlanPage2ReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.ProductionPlanRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.PlantingAreaChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.productionplan.ProductionPlanPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.digitalcockpit.vo.CropStatisticsRespVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.productionplan.ProductionPlanDO;
|
||||
@@ -86,4 +88,6 @@ public interface ProductionPlanMapper extends BaseMapperX<ProductionPlanDO> {
|
||||
PlantingPlanCompletionRespVO getPlantingPlanCompletionChart(PlantingPlanCompletionReqVO req);
|
||||
|
||||
List<CropStatisticsRespVO> getCultivatingAreaInfo(@Param("baseId") String baseId, @Param("year") String year);
|
||||
|
||||
List<PlantingAreaChartRespVO> getPlantingAreaChart(ChartCommonReqVO req);
|
||||
}
|
||||
@@ -6,6 +6,10 @@ import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.Farmin
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordPageReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordSaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.FarmTypeChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.InputUsageChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.PlantingAreaChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.farmingrecord.FarmingRecordDO;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
@@ -69,4 +73,12 @@ public interface CropFarmingCenterService {
|
||||
List<ProductionPlanReportRespVO> getPpReport(ProductionPlanReportReqVO req);
|
||||
|
||||
List<FarmingRecordReportRespVO> getFcReport(FarmingRecordReportReqVO req);
|
||||
|
||||
List<FarmingReport1RespVO> getFarmReport(FarmingReport1ReqVO req);
|
||||
|
||||
List<FarmTypeChartRespVO> getFarmTypeChart(ChartCommonReqVO req);
|
||||
|
||||
List<PlantingAreaChartRespVO> getPlantingAreaChart(ChartCommonReqVO req);
|
||||
|
||||
List<InputUsageChartRespVO> getInputUsageChart(ChartCommonReqVO req);
|
||||
}
|
||||
|
||||
@@ -12,12 +12,15 @@ import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.Farmin
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.FarmingRecordSaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.farmingrecordinput.vo.FarmingRecordInputSaveReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.FarmTypeChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.InputUsageChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.PlantingAreaChartRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelcycle.vo.ModelCycleRespVO;
|
||||
import cn.iocoder.yudao.module.farm.controller.admin.managementcenter.modelmanagement.modelfarmingoperation.vo.ModelFarmingOperationRespVO;
|
||||
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.farmingrecordinput.FarmingRecordInputDO;
|
||||
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;
|
||||
@@ -26,6 +29,7 @@ import cn.iocoder.yudao.module.farm.dal.dataobject.productionplan.ProductionPlan
|
||||
import cn.iocoder.yudao.module.farm.dal.dataobject.specieslibrary.SpeciesLibraryDO;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.baseinfo.BaseInfoMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.farmingrecord.FarmingRecordMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.inputlibrary.InputUsageRecordsMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.personnelmanagement.PersonnelManagementMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.productionplan.ProductionPlanMapper;
|
||||
import cn.iocoder.yudao.module.farm.dal.mysql.specieslibrary.SpeciesLibraryMapper;
|
||||
@@ -73,6 +77,8 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
|
||||
private final BaseInfoMapper baseInfoMapper;
|
||||
private final ProductionPlanMapper productionPlanMapper;
|
||||
private final FarmingRecordMapper farmingRecordMapper;
|
||||
private final InputUsageRecordsMapper inputUsageRecordsMapper;
|
||||
|
||||
|
||||
private final ModelManagementService modelManagementService;
|
||||
private final FarmingRecordService farmingRecordService;
|
||||
@@ -82,7 +88,7 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
|
||||
private final FarmingTypeMaintenanceService farmingTypeMaintenanceService;
|
||||
|
||||
public CropFarmingCenterServiceImpl(SpeciesLibraryMapper speciesLibraryMapper, PersonnelManagementMapper personnelManagementMapper, BaseInfoMapper baseInfoMapper, ProductionPlanMapper productionPlanMapper,
|
||||
FarmingRecordMapper farmingRecordMapper, ModelManagementService modelManagementService,
|
||||
FarmingRecordMapper farmingRecordMapper, InputUsageRecordsMapper inputUsageRecordsMapper, ModelManagementService modelManagementService,
|
||||
FarmingRecordService farmingRecordService,
|
||||
FarmingRecordInputService farmingRecordInputService, PlotInfoService plotInfoService, SpeciesLibraryService speciesLibraryService, FarmingTypeMaintenanceService farmingTypeMaintenanceService) {
|
||||
this.speciesLibraryMapper = speciesLibraryMapper;
|
||||
@@ -90,6 +96,7 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
|
||||
this.baseInfoMapper = baseInfoMapper;
|
||||
this.productionPlanMapper = productionPlanMapper;
|
||||
this.farmingRecordMapper = farmingRecordMapper;
|
||||
this.inputUsageRecordsMapper = inputUsageRecordsMapper;
|
||||
this.modelManagementService = modelManagementService;
|
||||
this.farmingRecordService = farmingRecordService;
|
||||
this.farmingRecordInputService = farmingRecordInputService;
|
||||
@@ -704,6 +711,34 @@ public class CropFarmingCenterServiceImpl implements CropFarmingCenterService {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FarmingReport1RespVO> getFarmReport(FarmingReport1ReqVO req) {
|
||||
List<FarmingReport1RespVO> res = new ArrayList<>();
|
||||
|
||||
List<FarmingRecordDO> farmingRecordDOS = farmingRecordMapper.selectList();
|
||||
for (FarmingRecordDO f : farmingRecordDOS) {
|
||||
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FarmTypeChartRespVO> getFarmTypeChart(ChartCommonReqVO req) {
|
||||
return farmingRecordMapper.getFarmTypeChart(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PlantingAreaChartRespVO> getPlantingAreaChart(ChartCommonReqVO req) {
|
||||
return productionPlanMapper.getPlantingAreaChart(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<InputUsageChartRespVO> getInputUsageChart(ChartCommonReqVO req) {
|
||||
|
||||
return inputUsageRecordsMapper.getInputUsageChart(req);
|
||||
}
|
||||
|
||||
private ProductionPlanReportRespVO.Models convertToModel(ProductionPlanDO plan,Map<String, String> speciesName) {
|
||||
String plantSpeciesName = speciesName.get(plan.getPlantSpeciesCode());
|
||||
String planStatusName = PLAN_MAP.get(plan.getPlanStatus());
|
||||
|
||||
@@ -24,4 +24,34 @@
|
||||
<if test="tenantId != null and tenantId != ''">AND tenant_id = #{tenantId}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getFarmTypeChart"
|
||||
parameterType="cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO"
|
||||
resultType="cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.FarmTypeChartRespVO">
|
||||
SELECT
|
||||
fftm.farming_name AS farmTypeName,
|
||||
COUNT(ffr.id) AS recordCount
|
||||
FROM farm_farming_record ffr
|
||||
LEFT JOIN farm_farming_type_maintenance fftm ON ffr.task_type = fftm.id
|
||||
<where>
|
||||
fftm.deleted = 0
|
||||
<if test="tenantId != null">
|
||||
AND ffr.tenant_id = #{tenantId}
|
||||
</if>
|
||||
<if test="yearDate != null">
|
||||
AND YEAR(ffr.task_start_date) = #{yearDate}
|
||||
</if>
|
||||
<if test="baseId != null and baseId != ''">
|
||||
AND ffr.base_id = #{baseId}
|
||||
</if>
|
||||
<if test="plotId != null and plotId != ''">
|
||||
AND ffr.plot_id = #{plotId}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY fftm.farming_name
|
||||
ORDER BY recordCount DESC
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -9,4 +9,39 @@
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
<select id="getInputUsageChart"
|
||||
parameterType="cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO"
|
||||
resultType="cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.InputUsageChartRespVO">
|
||||
|
||||
SELECT
|
||||
fiur.input_name AS inputName,
|
||||
SUM(fiur.usage_amount) AS usageAmount,
|
||||
CASE
|
||||
WHEN fiur.current_spec_type = 1 THEN fiur.unit
|
||||
WHEN fiur.current_spec_type = 2 THEN fiur.spec
|
||||
ELSE fiur.unit
|
||||
END AS unit,
|
||||
SUM(fiur.total_price) AS totalPrice
|
||||
FROM farm_input_usage_records fiur
|
||||
<where>
|
||||
fiur.deleted = 0
|
||||
<if test="tenantId != null">
|
||||
AND fiur.tenant_id = #{tenantId}
|
||||
</if>
|
||||
<if test="baseId != null and baseId != ''">
|
||||
AND fiur.base_id = #{baseId}
|
||||
</if>
|
||||
<if test="plotId != null and plotId != ''">
|
||||
AND fiur.plot_id = #{plotId}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY fiur.input_name,
|
||||
CASE
|
||||
WHEN fiur.current_spec_type = 1 THEN fiur.unit
|
||||
WHEN fiur.current_spec_type = 2 THEN fiur.spec
|
||||
ELSE fiur.unit
|
||||
END
|
||||
ORDER BY usageAmount DESC
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -110,5 +110,55 @@
|
||||
GROUP BY plant_species_code
|
||||
|
||||
</select>
|
||||
<select id="getPlantingAreaChart"
|
||||
parameterType="cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.ChartCommonReqVO"
|
||||
resultType="cn.iocoder.yudao.module.farm.controller.admin.cropfarmingcenter.vo.chart.PlantingAreaChartRespVO">
|
||||
|
||||
SELECT
|
||||
fsl.cultivar_name AS speciesName,
|
||||
SUM(fpp.predicted_area) AS plantingArea,
|
||||
CASE
|
||||
WHEN #{plotId} IS NOT NULL AND #{plotId} != '' THEN
|
||||
CONCAT(ROUND(SUM(fpp.predicted_area) / MAX(fpp.total_area) * 100, 2), '%')
|
||||
WHEN #{baseId} IS NOT NULL AND #{baseId} != '' AND (#{plotId} IS NULL OR #{plotId} = '') THEN
|
||||
CONCAT(ROUND(SUM(fpp.predicted_area) / (
|
||||
SELECT SUM(total_area)
|
||||
FROM farm_production_plan
|
||||
WHERE base_id = #{baseId}
|
||||
AND tenant_id = #{tenantId}
|
||||
AND deleted = 0
|
||||
GROUP BY base_id
|
||||
) * 100, 2), '%')
|
||||
ELSE
|
||||
CONCAT(ROUND(SUM(fpp.predicted_area) / (
|
||||
SELECT SUM(total_area)
|
||||
FROM farm_production_plan
|
||||
WHERE tenant_id = #{tenantId}
|
||||
AND deleted = 0
|
||||
) * 100, 2), '%')
|
||||
END AS areaPercentage
|
||||
FROM farm_production_plan fpp
|
||||
LEFT JOIN farm_species_library fsl ON fpp.plant_species_code = fsl.id
|
||||
WHERE
|
||||
fpp.deleted = 0 AND fsl.deleted = 0
|
||||
<if test="tenantId != null">
|
||||
AND fpp.tenant_id = #{tenantId}
|
||||
</if>
|
||||
<if test="yearDate != null">
|
||||
AND YEAR(fpp.production_start_date) = #{yearDate}
|
||||
</if>
|
||||
<if test="baseId != null and baseId != ''">
|
||||
AND fpp.base_id = #{baseId}
|
||||
</if>
|
||||
<if test="plotId != null and plotId != ''">
|
||||
AND fpp.plot_id = #{plotId}
|
||||
</if>
|
||||
<if test="state != null and state != ''">
|
||||
AND fpp.plan_status = #{state}
|
||||
</if>
|
||||
GROUP BY fsl.cultivar_name
|
||||
ORDER BY plantingArea DESC
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user