| drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/controller/OperationalRevenueController.java | ●●●●● patch | view | raw | blame | history | |
| drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/entity/OperationalRevenue.java | ●●●●● patch | view | raw | blame | history | |
| drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/mapper/OperationalRevenueMapper.java | ●●●●● patch | view | raw | blame | history | |
| drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/OperationalRevenueService.java | ●●●●● patch | view | raw | blame | history | |
| drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/impl/OperationalRevenueServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/vo/OperationalRevenueVo.java | ●●●●● patch | view | raw | blame | history |
drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/controller/OperationalRevenueController.java
New file @@ -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); } } drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/entity/OperationalRevenue.java
New file @@ -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; } drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/mapper/OperationalRevenueMapper.java
New file @@ -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> { } drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/OperationalRevenueService.java
New file @@ -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); } drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/service/impl/OperationalRevenueServiceImpl.java
New file @@ -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; } } drone-service/drone-gd/src/main/java/org/sxkj/gd/workOrder/vo/OperationalRevenueVo.java
New file @@ -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; }