diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaProjectController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaProjectController.java index c5ca069..ef61eda 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaProjectController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaProjectController.java @@ -10,9 +10,7 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo; import com.ruoyi.oa.domain.dto.ProjectActivityDTO; import com.ruoyi.oa.domain.dto.ProjectDataDTO; -import com.ruoyi.oa.domain.vo.DashboardChartsVo; -import com.ruoyi.oa.domain.vo.DashboardMetricsVo; -import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo; +import com.ruoyi.oa.domain.vo.*; import com.ruoyi.oa.mapper.SysOaTaskMapper; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; @@ -30,7 +28,6 @@ import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.oa.domain.vo.SysOaProjectVo; import com.ruoyi.oa.domain.bo.SysOaProjectBo; import com.ruoyi.oa.service.ISysOaProjectService; import com.ruoyi.common.core.page.TableDataInfo; @@ -230,5 +227,20 @@ public class SysOaProjectController extends BaseController { String month = date.format(DateTimeFormatter.ofPattern("yyyy-MM")); return R.ok(iSysOaProjectService.getProjectData(month)); } + /** + * 项目盈亏数据 + */ + @GetMapping("/projectProfit") + public TableDataInfo projectProfit( + @RequestParam(required = false, defaultValue = "profit_loss") String sortField, + @RequestParam(required = false, defaultValue = "desc") String sortOrder, + PageQuery pageQuery + ) { + // 这里PageQuery会自动带上orderByColumn和isAsc + pageQuery.setOrderByColumn(sortField); + pageQuery.setIsAsc(sortOrder); + return iSysOaProjectService.getProjectProfitLossList(sortField, sortOrder, pageQuery); + } + } \ No newline at end of file diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/ProjectProfitLossVO.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/ProjectProfitLossVO.java new file mode 100644 index 0000000..14e5cb2 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/ProjectProfitLossVO.java @@ -0,0 +1,21 @@ +package com.ruoyi.oa.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class ProjectProfitLossVO { + private Long projectId; + private String projectName; + private String projectNum; + private Date beginTime; + private String projectStatus; + private BigDecimal contractAmount; + private BigDecimal warehouseCost; + private BigDecimal hrCost; + private BigDecimal profitLoss; + // ...其他字段 + // getter/setter +} \ No newline at end of file diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java index 603e6f9..b151579 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java @@ -25,6 +25,7 @@ import java.util.Map; * @date 2024-01-11 */ public interface SysOaProjectMapper extends BaseMapperPlus { + Page selectProfitLossPage(@Param("page") Page page, @Param("ew") Wrapper wrapper); Page selectPageOutList(@Param("page") Page page,@Param(Constants.WRAPPER) Wrapper queryWrapper); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaProjectService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaProjectService.java index d84c578..7d3e42e 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaProjectService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaProjectService.java @@ -3,10 +3,7 @@ package com.ruoyi.oa.service; import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo; import com.ruoyi.oa.domain.dto.ProjectActivityDTO; import com.ruoyi.oa.domain.dto.ProjectDataDTO; -import com.ruoyi.oa.domain.vo.DashboardChartsVo; -import com.ruoyi.oa.domain.vo.DashboardMetricsVo; -import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo; -import com.ruoyi.oa.domain.vo.SysOaProjectVo; +import com.ruoyi.oa.domain.vo.*; import com.ruoyi.oa.domain.bo.SysOaProjectBo; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; @@ -22,7 +19,10 @@ import java.util.List; * @date 2024-01-11 */ public interface ISysOaProjectService { - + /** + * 项目盈亏排序 + */ + TableDataInfo getProjectProfitLossList(String sortField, String sortOrder, PageQuery pageQuery); /** * 查询项目管理 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java index 2dae65d..d61f2df 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java @@ -49,6 +49,22 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { ))); + @Override + public TableDataInfo getProjectProfitLossList(String sortField, String sortOrder, PageQuery pageQuery) { + // 1. 构建分页对象 + Page page = pageQuery.build(); + + // 2. 构建查询条件(可根据bo添加筛选) + QueryWrapper wrapper = new QueryWrapper<>(); + + + // 3. 调用自定义Mapper方法 + Page result = baseMapper.selectProfitLossPage(page, wrapper); + + // 4. 返回分页数据 + return TableDataInfo.build(result); + } + /** * 查询项目管理 */ diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml index c418761..c3b1ba3 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml @@ -813,5 +813,41 @@ ORDER BY TIMESTAMPDIFF(DAY, NOW(), p.finish_time) ASC +