首页所有统计接口

master 46
hshansha 6 months ago
parent 371489a517
commit 01aa1a9ae8

@ -0,0 +1,68 @@
package com.ruoyi.pay.controller;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.pay.domain.PaySalaryReport;
import com.ruoyi.pay.domain.vo.PayEmployeeInfoVo;
import com.ruoyi.pay.service.IPayEmployeeInfoService;
import com.ruoyi.pay.service.IPayHomePageService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/pay/home")
public class PayHomePageController extends BaseController {
private final IPayHomePageService homePageService;
/**
* "获取Panel数据"
* @return
*/
@GetMapping("/panel")
public R<HashMap<String, Object>> getHomePagePanelData(Long tenantId) {
return homePageService.getPanelData(tenantId);
}
/**
*
* @param date
* @return
*/
@GetMapping("/chuqin")
public R<List<Map<String, String>>> getChuQinDataList(@RequestParam("date") Date date,@RequestParam("tenantId") Long tenantId) {
return homePageService.getChuQinData(date,tenantId);
}
/**
*
*
* @return
*/
@GetMapping("/deptPay")
public TableDataInfo<PaySalaryReport> getDeptPayData(Long tenantId) {
return homePageService.getDeptPayData(tenantId);
}
/**
*
* @return
*/
@GetMapping("/monthPay")
public TableDataInfo<PaySalaryReport> getMonthPayData(Long tenantId) {
return homePageService.getMonthPayData(tenantId);
}
}

@ -0,0 +1,28 @@
package com.ruoyi.pay.mapper;
import com.ruoyi.pay.domain.PaySalaryReport;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface PayHomePageMapper {
@Select("SELECT IFNULL(COUNT(*), 0) FROM pay_employee_info WHERE deleted = 0 and tenant_id=#{tenantId}")
Integer getEmpCountData(Long tenantId);
@Select("select ifnull(count(*), 0) from pay_work_order_baohuo where deleted = 0 and tenant_id=#{tenantId}")
Integer getBaoHuoCountData(Long tenantId);
@Select("select ifnull(count(*), 0) from pay_work_order_tuzhi where deleted = 0 and tenant_id=#{tenantId}")
Integer getTuZhiCountData(Long tenantId);
@Select("SELECT IFNULL(COUNT(*), 0) FROM pay_products WHERE deleted = 0 and tenant_id=#{tenantId}")
Integer getProductData(Long tenantId);
/*@Select("select s.dept_name deptName,s.day_work_hours dayWorkHours,s.overtime_work_hours overtimeWorkHours,s.banggong_pay banggongPay" +
",s.shoud_pay_money shoudPayMoney,s.actually_pay_money actuallyPayMoney from sgr_salary_report s " +
"where s.year=(select max(year) from `sgr_salary_report`) and s.`month`=(select max(month) from `sgr_salary_report`) " +
"group by s.dept_name")*/
List<PaySalaryReport> getDeptPayData(Long tenantId);
List<PaySalaryReport> getMonthPayData(Long tenantId);
}

@ -3,6 +3,11 @@ package com.ruoyi.pay.mapper;
import com.ruoyi.pay.domain.PayRequireAttendanceReport;
import com.ruoyi.pay.domain.vo.PayRequireAttendanceReportVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* Mapper
@ -11,5 +16,11 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
* @date 2025-05-12
*/
public interface PayRequireAttendanceReportMapper extends BaseMapperPlus<PayRequireAttendanceReportMapper, PayRequireAttendanceReport, PayRequireAttendanceReportVo> {
@Select("SELECT `year`, `month` FROM pay_require_attendance_report WHERE tenant_id=#{tenantId} ORDER BY `year`,`month` DESC LIMIT 1")
Map<String, String> getLatestYearAndMonth(@Param("tenantId")Long tenantId);
@Select("SELECT emp_name AS `name`, avtive_days AS value FROM pay_require_attendance_report " +
"WHERE `year` = #{year} AND `month` = #{month} AND tenant_id=#{tenantId} ORDER BY avtive_days DESC")
List<Map<String, String>> selectAttendanceReportByMonth(@Param("year")String year,
@Param("month")String month,@Param("tenantId") Long tenantId);
}

@ -0,0 +1,20 @@
package com.ruoyi.pay.service;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.pay.domain.PaySalaryReport;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public interface IPayHomePageService {
R<HashMap<String, Object>> getPanelData(Long tenantId);
R<List<Map<String, String>>> getChuQinData(Date date,Long tenantId);
TableDataInfo<PaySalaryReport> getDeptPayData(Long tenantId);
TableDataInfo<PaySalaryReport> getMonthPayData(Long tenantId);
}

@ -8,6 +8,7 @@ import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* Service
@ -48,4 +49,8 @@ public interface IPayRequireAttendanceReportService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
String importAttendanceReport(List<PayRequireAttendanceReportVo> requireAttendanceReports, boolean updateSupport, String date,Long tenantId);
Map<String, String> getLatestYearAndMonth(Long tenantId);
List<Map<String, String>> selectAttendanceReportByMonth(String year, String month, Long tenantId);
}

@ -0,0 +1,64 @@
package com.ruoyi.pay.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.pay.domain.PaySalaryReport;
import com.ruoyi.pay.mapper.PayEmployeeInfoMapper;
import com.ruoyi.pay.mapper.PayHomePageMapper;
import com.ruoyi.pay.service.IPayHomePageService;
import com.ruoyi.pay.service.IPayRequireAttendanceReportService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RequiredArgsConstructor
@Service
public class IPayHomePageServiceImpl implements IPayHomePageService {
private final PayHomePageMapper homePageMapper;
private final IPayRequireAttendanceReportService attendanceReportService;
@Override
public R<HashMap<String, Object>> getPanelData(Long tenantId) {
HashMap<String, Object> map = new HashMap<>();
Integer empNum = homePageMapper.getEmpCountData(tenantId);
Integer baoHuoCountData = homePageMapper.getBaoHuoCountData(tenantId);
Integer tuZhiCountData = homePageMapper.getTuZhiCountData(tenantId);
Integer productData = homePageMapper.getProductData(tenantId);
map.put("empNum", empNum);
map.put("woNum", baoHuoCountData + tuZhiCountData);
map.put("prodNum", productData);
return R.ok(map);
}
@Override
public R<List<Map<String, String>>> getChuQinData(Date date,Long tenantId) {
// 获取最新的应出勤月份
Map<String, String> dateMap = attendanceReportService.getLatestYearAndMonth(tenantId);
String year = DateUtil.format(date, "yyyy");
String month = DateUtil.format(date, "MM");
if (ObjectUtil.isNotNull(dateMap) && dateMap.size() > 0) {
year = dateMap.get("year");
month = dateMap.get("month");
}
List<Map<String, String>> list = attendanceReportService.selectAttendanceReportByMonth(year, month,tenantId);
return R.ok(list);
}
@Override
public TableDataInfo<PaySalaryReport> getDeptPayData(Long tenantId) {
List<PaySalaryReport> data = homePageMapper.getDeptPayData(tenantId);
return TableDataInfo.build(data);
}
@Override
public TableDataInfo<PaySalaryReport> getMonthPayData(Long tenantId) {
return TableDataInfo.build(homePageMapper.getMonthPayData(tenantId));
}
}

@ -204,4 +204,14 @@ public class PayRequireAttendanceReportServiceImpl implements IPayRequireAttenda
}
return successMsg.toString();
}
@Override
public Map<String, String> getLatestYearAndMonth(Long tenantId) {
return baseMapper.getLatestYearAndMonth(tenantId);
}
@Override
public List<Map<String, String>> selectAttendanceReportByMonth(String year, String month, Long tenantId) {
return baseMapper.selectAttendanceReportByMonth(year, month,tenantId);
}
}

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.pay.mapper.PayHomePageMapper">
<resultMap type="PaySalaryReport" id="PaySalaryReportResult">
<result property="id" column="id" />
<result property="year" column="year" />
<result property="month" column="month" />
<result property="deptId" column="dept_id" />
<result property="deptName" column="dept_name" />
<result property="employeeId" column="employee_id" />
<result property="employeeName" column="employee_name" />
<result property="basicSalary" column="basic_salary" />
<result property="actuallyDays" column="actually_days" />
<result property="actuallyHours" column="actually_hours" />
<result property="dayWorkHours" column="day_work_hours" />
<result property="workOrderHours" column="work_order_hours" />
<result property="overtimeWorkHours" column="overtime_work_hours" />
<result property="dayWorkPay" column="day_work_pay" />
<result property="workOrderPay" column="work_order_pay" />
<result property="overtime" column="overtime" />
<result property="banggongPay" column="banggong_pay" />
<result property="zhibanOrLahuo" column="zhiban_or_lahuo" />
<result property="holiday" column="holiday" />
<result property="post" column="post" />
<result property="phoneCharge" column="phone_charge" />
<result property="contract" column="contract" />
<result property="fullTime" column="full_time" />
<result property="diffOfLastMonth" column="diff_of_last_month" />
<result property="shoudPayMoney" column="shoud_pay_money" />
<result property="late" column="late" />
<result property="insurance" column="insurance" />
<result property="actuallyPayMoney" column="actually_pay_money" />
<result property="allButieData" column="all_butie_data" />
<result property="note" column="note" />
</resultMap>
<sql id="selectPaySalaryReportVo">
select id, year, month, dept_id, dept_name, employee_id, employee_name, basic_salary, actually_days, actually_hours, day_work_hours, work_order_hours, overtime_work_hours, day_work_pay, work_order_pay, zhiban_or_lahuo, overtime,banggong_pay, holiday, post, phone_charge, contract, full_time, diff_of_last_month, shoud_pay_money, late, insurance, actually_pay_money,all_butie_data, note from pay_salary_report
</sql>
<select id="getDeptPayData" resultMap="PaySalaryReportResult">
<!--<include refid="selectSgrSalaryReportVo"/> s-->
select year,month,dept_name,SUM(day_work_hours) day_work_hours,SUM(actually_pay_money) actually_pay_money from pay_salary_report s
where s.year=(select max(year) from `pay_salary_report` where tenant_id=#{tenantId}) and s.`month`=(select max(month) from `pay_salary_report` where `year`=(select max(year) from `pay_salary_report` where tenant_id=#{tenantId}))
and tenant_id=#{tenantId}
group by s.dept_name
</select>
<select id="getMonthPayData" resultMap="PaySalaryReportResult">
SELECT s.`year`, s.`month`, SUM(actually_pay_money) actually_pay_money from `pay_salary_report` s where s.year=(select max(year) from `pay_salary_report` where tenant_id=#{tenantId}) and tenant_id=#{tenantId} group by s.`month`
</select>
</mapper>
Loading…
Cancel
Save