From fdf4b81f3df919c3f1ff98e112a68cf4df46b9a5 Mon Sep 17 00:00:00 2001
From: xiebin <vip_xiaobin810@163.com>
Date: Thu, 15 Jan 2026 14:55:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/vo/OperationalRevenueVo.java | 22 +++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/controller/OperationalRevenueController.java | 133 +++++++++++++++++++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/entity/OperationalRevenue.java | 105 +++++++++++++++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/OperationalRevenueService.java | 33 ++++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/mapper/OperationalRevenueMapper.java | 13 +
drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/impl/OperationalRevenueServiceImpl.java | 94 +++++++++++++
6 files changed, 400 insertions(+), 0 deletions(-)
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/controller/OperationalRevenueController.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/controller/OperationalRevenueController.java
new file mode 100644
index 0000000..912d034
--- /dev/null
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/controller/OperationalRevenueController.java
@@ -0,0 +1,133 @@
+package org.sxkj.gd.workOrder.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.sxkj.common.model.ResponseResult;
+import org.sxkj.gd.workOrder.entity.OperationalRevenue;
+import org.sxkj.gd.workOrder.service.OperationalRevenueService;
+import org.sxkj.gd.workOrder.vo.OperationalRevenueVo;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 运营收益控制器
+ */
+@Api(tags = "运营收益管理")
+@RestController
+@RequestMapping("/revenue")
+public class OperationalRevenueController {
+
+ @Autowired
+ private OperationalRevenueService operationalRevenueService;
+
+ /**
+ * 分页查询运营收益
+ */
+ @ApiOperation("分页查询运营收益")
+ @GetMapping("/page")
+ public ResponseResult page(
+ @ApiParam("页码") @RequestParam(value = "current", defaultValue = "1") long current,
+ @ApiParam("每页大小") @RequestParam(value = "size", defaultValue = "10") long size,
+ @ApiParam("营业收入") @RequestParam(value = "operatingIncome", required = false) String operatingIncome,
+ @ApiParam("综合总成本费用") @RequestParam(value = "totalCost", required = false) String totalCost,
+ @ApiParam("净利润") @RequestParam(value = "netProfit", required = false) String netProfit,
+ @ApiParam("财务内部收益率") @RequestParam(value = "financialIrr", required = false) String financialIrr,
+ @ApiParam("市场空间") @RequestParam(value = "marketSpace", required = false) String marketSpace,
+ @ApiParam("创建人") @RequestParam(value = "nickName", required = false) String nickName
+ ) {
+ Page<OperationalRevenue> page = new Page<>(current, size);
+ IPage<OperationalRevenue> result = operationalRevenueService.selectPage(page, operatingIncome, totalCost, netProfit, financialIrr, marketSpace, nickName);
+
+ // 转换为Vo分页
+ IPage<OperationalRevenueVo> voPage = result.convert(operationalRevenueService::convertToVo);
+ return ResponseResult.success(voPage);
+ }
+
+ /**
+ * 查询所有运营收益
+ */
+ @ApiOperation("查询所有运营收益")
+ @GetMapping("/list")
+ public ResponseResult list() {
+ List<OperationalRevenue> list = operationalRevenueService.list();
+
+ // 转换为Vo列表
+ List<OperationalRevenueVo> voList = list.stream()
+ .map(operationalRevenueService::convertToVo)
+ .collect(Collectors.toList());
+ return ResponseResult.success(voList);
+ }
+
+
+
+ /**
+ * 根据ID查询运营收益
+ */
+ @ApiOperation("根据ID查询运营收益")
+ @GetMapping("selectById/{id}")
+ public ResponseResult getById(@ApiParam("主键ID") @PathVariable Long id) {
+ OperationalRevenue operationalRevenue = operationalRevenueService.getById(id);
+
+ // 转换为Vo对象
+ OperationalRevenueVo vo = operationalRevenueService.convertToVo(operationalRevenue);
+ return ResponseResult.success(vo);
+ }
+
+ /**
+ * 新增运营收益
+ */
+ @ApiOperation("新增运营收益")
+ @PostMapping("/add")
+ public ResponseResult save(@RequestBody OperationalRevenue operationalRevenue) {
+ operationalRevenue.setCreateUser(String.valueOf(AuthUtil.getUserId()));
+ LocalDateTime now = LocalDateTime.now();
+ operationalRevenue.setCreateTime(now);
+ operationalRevenue.setUpdateTime(now);
+ operationalRevenue.setCreateDept(AuthUtil.getDeptId());
+ operationalRevenue.setUpdateUser(String.valueOf(AuthUtil.getUserId()));
+ operationalRevenue.setNickName(AuthUtil.getNickName());
+ boolean result = operationalRevenueService.save(operationalRevenue);
+ return ResponseResult.success(result);
+ }
+
+ /**
+ * 修改运营收益
+ */
+ @ApiOperation("修改运营收益")
+ @PutMapping("update")
+ public ResponseResult updateById(@RequestBody OperationalRevenue operationalRevenue) {
+ LocalDateTime now = LocalDateTime.now();
+ operationalRevenue.setUpdateTime(now);
+ operationalRevenue.setUpdateUser(String.valueOf(AuthUtil.getUserId()));
+ boolean result = operationalRevenueService.updateById(operationalRevenue);
+ return ResponseResult.success(result);
+ }
+
+ /**
+ * 删除运营收益
+ */
+ @ApiOperation("删除运营收益")
+ @DeleteMapping("delete/{id}")
+ public ResponseResult removeById(@ApiParam("主键ID") @PathVariable Long id) {
+ boolean result = operationalRevenueService.removeById(id);
+ return ResponseResult.success(result);
+ }
+
+ /**
+ * 批量删除运营收益
+ */
+ @ApiOperation("批量删除运营收益")
+ @DeleteMapping("/batch")
+ public ResponseResult removeByIds(@RequestBody List<Long> ids) {
+ boolean result = operationalRevenueService.removeByIds(ids);
+ return ResponseResult.success(result);
+ }
+}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/entity/OperationalRevenue.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/entity/OperationalRevenue.java
new file mode 100644
index 0000000..3ab2c2f
--- /dev/null
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/entity/OperationalRevenue.java
@@ -0,0 +1,105 @@
+package org.sxkj.gd.workOrder.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 运营收益实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ja_gd_operational_revenue")
+public class OperationalRevenue implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 营业收入
+ */
+ @TableField("operating_income")
+ private BigDecimal operatingIncome;
+
+ /**
+ * 综合总成本费用
+ */
+ @TableField("total_cost")
+ private BigDecimal totalCost;
+
+ /**
+ * 净利润
+ */
+ @TableField("net_profit")
+ private BigDecimal netProfit;
+
+ /**
+ * 财务内部收益率(%)
+ */
+ @TableField("financial_irr")
+ private BigDecimal financialIrr;
+
+ /**
+ * 市场空间
+ */
+ @TableField("market_space")
+ private String marketSpace;
+
+ /**
+ * 创建时间
+ */
+ @TableField(value = "create_time")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ /**
+ * 创建人
+ */
+ @TableField(value = "create_user")
+ private String createUser;
+
+ /**
+ * 创建部门
+ */
+ @TableField(value = "create_dept")
+ private String createDept;
+
+ /**
+ * 更新时间
+ */
+ @TableField(value = "update_time")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ /**
+ * 更新人
+ */
+ @TableField(value = "update_user")
+ private String updateUser;
+
+ /**
+ * 创建人名称
+ */
+ @TableField("nick_name")
+ private String nickName;
+
+ @TableField(exist = false)
+ private String earnForecast;
+
+ /**
+ * 删除标记(0:正常,1:删除)
+ */
+ @TableLogic
+ @TableField("is_deleted")
+ private Integer isDeleted;
+}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/mapper/OperationalRevenueMapper.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/mapper/OperationalRevenueMapper.java
new file mode 100644
index 0000000..dfa7fdf
--- /dev/null
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/mapper/OperationalRevenueMapper.java
@@ -0,0 +1,13 @@
+package org.sxkj.gd.workOrder.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.sxkj.gd.workOrder.entity.OperationalRevenue;
+
+/**
+ * 运营收益Mapper接口
+ */
+@Mapper
+public interface OperationalRevenueMapper extends BaseMapper<OperationalRevenue> {
+
+}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/OperationalRevenueService.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/OperationalRevenueService.java
new file mode 100644
index 0000000..30c1021
--- /dev/null
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/OperationalRevenueService.java
@@ -0,0 +1,33 @@
+package org.sxkj.gd.workOrder.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.sxkj.gd.workOrder.entity.OperationalRevenue;
+import org.sxkj.gd.workOrder.vo.OperationalRevenueVo;
+
+/**
+ * 运营收益Service接口
+ */
+public interface OperationalRevenueService extends IService<OperationalRevenue> {
+
+ /**
+ * 分页查询运营收益
+ * @param page 分页参数
+ * @param operatingIncome 营业收入
+ * @param totalCost 综合总成本费用
+ * @param netProfit 净利润
+ * @param financialIrr 财务内部收益率
+ * @param marketSpace 市场空间
+ * @param nickName 创建人
+ * @return 分页结果
+ */
+ IPage<OperationalRevenue> selectPage(Page<OperationalRevenue> page, String operatingIncome, String totalCost, String netProfit, String financialIrr, String marketSpace, String nickName);
+
+ /**
+ * 实体类转换Vo
+ * @param entity 实体对象
+ * @return Vo对象
+ */
+ OperationalRevenueVo convertToVo(OperationalRevenue entity);
+}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/impl/OperationalRevenueServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/impl/OperationalRevenueServiceImpl.java
new file mode 100644
index 0000000..3354360
--- /dev/null
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/impl/OperationalRevenueServiceImpl.java
@@ -0,0 +1,94 @@
+package org.sxkj.gd.workOrder.service.impl;
+
+import com.alibaba.nacos.common.utils.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+ import org.springframework.stereotype.Service;
+import org.sxkj.gd.workOrder.entity.OperationalRevenue;
+import org.sxkj.gd.workOrder.mapper.OperationalRevenueMapper;
+import org.sxkj.gd.workOrder.service.OperationalRevenueService;
+import org.sxkj.gd.workOrder.vo.OperationalRevenueVo;
+
+import java.math.BigDecimal;
+
+/**
+ * 运营收益Service实现类
+ */
+@Service
+public class OperationalRevenueServiceImpl extends ServiceImpl<OperationalRevenueMapper, OperationalRevenue>
+ implements OperationalRevenueService {
+
+ @Override
+ public IPage<OperationalRevenue> selectPage(Page<OperationalRevenue> page, String operatingIncome, String totalCost, String netProfit, String financialIrr, String marketSpace, String nickName) {
+ LambdaQueryWrapper<OperationalRevenue> queryWrapper = new LambdaQueryWrapper<>();
+
+ // 根据营业收入查询 (转换为精确查询)
+ if (StringUtils.hasText(operatingIncome)) {
+ try {
+ queryWrapper.eq(OperationalRevenue::getOperatingIncome, new BigDecimal(operatingIncome));
+ } catch (NumberFormatException e) {
+ // 如果转换失败,可以忽略或记录日志
+ }
+ }
+
+ // 根据综合总成本费用查询 (转换为精确查询)
+ if (StringUtils.hasText(totalCost)) {
+ try {
+ queryWrapper.eq(OperationalRevenue::getTotalCost, new BigDecimal(totalCost));
+ } catch (NumberFormatException e) {
+ //
+ }
+ }
+
+ // 根据净利润查询 (转换为精确查询)
+ if (StringUtils.hasText(netProfit)) {
+ try {
+ queryWrapper.eq(OperationalRevenue::getNetProfit, new BigDecimal(netProfit));
+ } catch (NumberFormatException e) {
+ //
+ }
+ }
+
+ // 根据财务内部收益率查询 (转换为精确查询)
+ if (StringUtils.hasText(financialIrr)) {
+ try {
+ queryWrapper.eq(OperationalRevenue::getFinancialIrr, new BigDecimal(financialIrr));
+ } catch (NumberFormatException e) {
+ //
+ }
+ }
+
+ // 根据市场空间模糊查询
+ if (StringUtils.hasText(marketSpace)) {
+ queryWrapper.like(OperationalRevenue::getMarketSpace, marketSpace);
+ }
+
+ // 根据创建人名称模糊查询
+ if (StringUtils.hasText(nickName)) {
+ queryWrapper.like(OperationalRevenue::getNickName, nickName);
+ }
+
+
+ // 按创建时间倒序
+ queryWrapper.orderByDesc(OperationalRevenue::getCreateTime);
+
+ return this.page(page, queryWrapper);
+ }
+
+ @Override
+ public OperationalRevenueVo convertToVo(OperationalRevenue entity) {
+ OperationalRevenueVo vo = new OperationalRevenueVo();
+ vo.setId(String.valueOf(entity.getId()));
+ vo.setOperatingIncome(entity.getOperatingIncome());
+ vo.setTotalCost(entity.getTotalCost());
+ vo.setNetProfit(entity.getNetProfit());
+ vo.setFinancialIrr(entity.getFinancialIrr());
+ vo.setMarketSpace(entity.getMarketSpace());
+ vo.setEarnForecast(entity.getEarnForecast());
+ vo.setNickName(entity.getNickName());
+ vo.setCreateTime(entity.getCreateTime());
+ return vo;
+ }
+}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/vo/OperationalRevenueVo.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/vo/OperationalRevenueVo.java
new file mode 100644
index 0000000..dd51be7
--- /dev/null
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/vo/OperationalRevenueVo.java
@@ -0,0 +1,22 @@
+package org.sxkj.gd.workOrder.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 运营收益视图对象
+ */
+@Data
+public class OperationalRevenueVo {
+ private String id;
+ private BigDecimal operatingIncome;
+ private BigDecimal totalCost;
+ private BigDecimal netProfit;
+ private BigDecimal financialIrr;
+ private String marketSpace;
+ private String nickName;
+ private String earnForecast;
+ private LocalDateTime createTime;
+}
--
Gitblit v1.9.3