From d89aed535d67512428e631306c622a2b125b9cdb Mon Sep 17 00:00:00 2001 From: lijun Date: Fri, 15 Nov 2024 22:35:37 +0800 Subject: [PATCH] update code --- ruoyi-ui/src/api/project/unitpay.js | 19 +++ ruoyi-ui/src/views/project/unitpay/index.vue | 153 +++++++++++++++--- ...SurProjectAttendanceUnitpayController.java | 114 ++++++++++++- .../project/domain/vo/ExportAttendancDay.java | 16 ++ .../SurProjectAttendanceDataMapper.xml | 16 +- 5 files changed, 287 insertions(+), 31 deletions(-) diff --git a/ruoyi-ui/src/api/project/unitpay.js b/ruoyi-ui/src/api/project/unitpay.js index 8a42972b..4b3e779c 100644 --- a/ruoyi-ui/src/api/project/unitpay.js +++ b/ruoyi-ui/src/api/project/unitpay.js @@ -26,6 +26,25 @@ export function listByMonth(query) { params: query }) } +// 查询两个日期之间某人的工资 +export function listByBetweenDay(query) { + return request({ + url: '/project/unitpay/listByBetweenDay', + method: 'get', + params: query + }) +} + + + +// 按两个日期之间的时间差分组统计工资 +export function listGroupBetweenDay(query) { + return request({ + url: '/project/unitpay/listGroupBetweenDay', + method: 'get', + params: query + }) +} // 查询劳资管理详细 export function getUnitpay(id) { diff --git a/ruoyi-ui/src/views/project/unitpay/index.vue b/ruoyi-ui/src/views/project/unitpay/index.vue index 73aa201b..682789dd 100644 --- a/ruoyi-ui/src/views/project/unitpay/index.vue +++ b/ruoyi-ui/src/views/project/unitpay/index.vue @@ -1,5 +1,5 @@ + diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectAttendanceUnitpayController.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectAttendanceUnitpayController.java index 7de95731..eacd1f06 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectAttendanceUnitpayController.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectAttendanceUnitpayController.java @@ -90,6 +90,60 @@ public class SurProjectAttendanceUnitpayController extends BaseController return getDataTable(list); } + /** + * 查询两个日期之间某人的工资 + */ + @PreAuthorize("@ss.hasPermi('project:unitpay:list')") + @GetMapping("/listByBetweenDay") + public TableDataInfo listByBetweenDay(SurProjectAttendanceData attWhere) + { + attWhere.setAttendanceOutTime(attWhere.getAttendanceOutTime()); + startPage(); + String tmp=attWhere.getAttendanceTime(); + if(StrUtil.isNotEmpty(tmp)){ + int year= DateUtil.parse(tmp).year(); + attWhere.setYear(year); + } + List list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(attWhere); + SurProjectAttendanceUnitpay payWhere=new SurProjectAttendanceUnitpay(); + payWhere.setCfgId(attWhere.getCfgid()); + List payList= surProjectAttendanceUnitpayService.selectSurProjectAttendanceUnitpayList(payWhere); + for(SurProjectAttendanceData it :list){ + it.setDays(1l); + it.setPay(surProjectAttendanceUnitpayService.getPay(payList,it)); + } + + return getDataTable(list); + } + + /** + * 按两个日期之间的时间差分组统计工资 + * @param attWhere + * @return + */ + @PreAuthorize("@ss.hasPermi('project:unitpay:list')") + @GetMapping("/listGroupBetweenDay") + public TableDataInfo listGroupBetweenDay(SurProjectAttendanceData attWhere) + { + startPage(); + String tmp=attWhere.getAttendanceTime(); + if(StrUtil.isNotEmpty(tmp)){ + int year= DateUtil.parse(tmp).year(); + attWhere.setYear(year); + } + List list = surProjectAttendanceDataService.selectSurProjectAttendanceDataListByMonth(attWhere); + SurProjectAttendanceUnitpay payWhere=new SurProjectAttendanceUnitpay(); + payWhere.setCfgId(attWhere.getCfgid()); + List payList= surProjectAttendanceUnitpayService.selectSurProjectAttendanceUnitpayList(payWhere); + for(SurProjectAttendanceData it :list){ + it.setPay(surProjectAttendanceUnitpayService.getPay(payList,it)); + } + + return getDataTable(list); + } + + + @PreAuthorize("@ss.hasPermi('project:unitpay:list')") @GetMapping("/listByMonth") public TableDataInfo listByMonth(SurProjectAttendanceData attWhere) @@ -115,7 +169,7 @@ public class SurProjectAttendanceUnitpayController extends BaseController } /** - * 导出劳资管理列表 + * 按日导出工资 */ @PreAuthorize("@ss.hasPermi('project:unitpay:export')") @Log(title = "劳资管理", businessType = BusinessType.EXPORT) @@ -123,7 +177,7 @@ public class SurProjectAttendanceUnitpayController extends BaseController public void exportDay(HttpServletResponse response, SurProjectAttendanceData attWhere) { Date dt=DateUtil.parse(attWhere.getAttendanceTime()); - attWhere.setAttendanceOutTime(attWhere.getAttendanceOutTime()); + attWhere.setAttendanceOutTime(attWhere.getAttendanceTime()); String tmp=attWhere.getAttendanceTime(); if(StrUtil.isNotEmpty(tmp)){ int year= DateUtil.parse(tmp).year(); @@ -145,7 +199,7 @@ public class SurProjectAttendanceUnitpayController extends BaseController } /** - * 导出劳资管理列表 + * 按月导出工资 */ @PreAuthorize("@ss.hasPermi('project:unitpay:export')") @Log(title = "劳资管理", businessType = BusinessType.EXPORT) @@ -173,6 +227,60 @@ public class SurProjectAttendanceUnitpayController extends BaseController util.exportExcel(response, exportList, "劳务工资-月工资"+DateUtil.format(dt,"YYYY年MM月")); } + /** + * 导出两个日期之间的每个员工统计考勤 + */ + @PreAuthorize("@ss.hasPermi('project:unitpay:export')") + @Log(title = "劳资管理", businessType = BusinessType.EXPORT) + @PostMapping("/exportGroupBetweenDay") + public void exportGroupBetweenDay(HttpServletResponse response, SurProjectAttendanceData attWhere) + { + String tmp=attWhere.getAttendanceTime(); + if(StrUtil.isNotEmpty(tmp)){ + int year= DateUtil.parse(tmp).year(); + attWhere.setYear(year); + } + List list = surProjectAttendanceDataService.selectSurProjectAttendanceDataListByMonth(attWhere); + SurProjectAttendanceUnitpay payWhere=new SurProjectAttendanceUnitpay(); + payWhere.setCfgId(attWhere.getCfgid()); + List payList= surProjectAttendanceUnitpayService.selectSurProjectAttendanceUnitpayList(payWhere); + List exportList=new ArrayList<>(); + for(SurProjectAttendanceData it :list){ + it.setPay(surProjectAttendanceUnitpayService.getPay(payList,it)); + exportList.add(ExportAttendancMonth.NEW(it)); + } + ExcelUtil util = new ExcelUtil(ExportAttendancMonth.class); + util.exportExcel(response, exportList, "劳务工资-工资"); + } + /** + * 导出两个日期之间的某人工资 + */ + @PreAuthorize("@ss.hasPermi('project:unitpay:export')") + @Log(title = "劳资管理", businessType = BusinessType.EXPORT) + @PostMapping("/exportBetweenDay") + public void exportBetWeenDay(HttpServletResponse response, SurProjectAttendanceData attWhere) + { + Date dt=DateUtil.parse(attWhere.getAttendanceTime()); + + String tmp=attWhere.getAttendanceTime(); + if(StrUtil.isNotEmpty(tmp)){ + int year= DateUtil.parse(tmp).year(); + attWhere.setYear(year); + } + List list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(attWhere); + SurProjectAttendanceUnitpay payWhere=new SurProjectAttendanceUnitpay(); + payWhere.setCfgId(attWhere.getCfgid()); + List payList= surProjectAttendanceUnitpayService.selectSurProjectAttendanceUnitpayList(payWhere); + List exportList=new ArrayList(); + for(SurProjectAttendanceData it :list){ + it.setDays(1l); + it.setPay(surProjectAttendanceUnitpayService.getPay(payList,it)); + exportList.add(ExportAttendancDay.NEW(it)); + } + + ExcelUtil util = new ExcelUtil(ExportAttendancDay.class); + util.exportExcel(response, exportList, "劳务工资-工资"); + } /** * 获取劳资管理详细信息 */ diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/ExportAttendancDay.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/ExportAttendancDay.java index 95a46a2e..452e6ddc 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/ExportAttendancDay.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/ExportAttendancDay.java @@ -1,5 +1,6 @@ package com.yanzhu.jh.project.domain.vo; +import cn.hutool.core.date.DateUtil; import com.ruoyi.common.annotation.Excel; import com.yanzhu.jh.project.domain.SurProjectAttendanceData; @@ -25,6 +26,8 @@ public class ExportAttendancDay { private String groupName; @Excel(name = "工种") private String workTypeName; + @Excel(name = "出勤日期") + private String attendanceDate; @Excel(name = "日工资") private BigDecimal pay; @Excel(name = "工种日工资") @@ -41,10 +44,23 @@ public class ExportAttendancDay { d.groupName=it.getGroupName(); d.workTypeName = it.getWorkTypeName(); d.pay=BigDecimal.valueOf(it.getPay()/100.0); + if(it.getAttendanceTime()!=null){ + d.attendanceDate= DateUtil.formatDate(DateUtil.parse(it.getAttendanceTime())); + }else if(it.getAttendanceOutTime()!=null){ + d.attendanceDate= DateUtil.formatDate(DateUtil.parse(it.getAttendanceOutTime())); + } d.unitPay=BigDecimal.valueOf(it.getUnitPay()/100.0); return d; } + public String getAttendanceDate() { + return attendanceDate; + } + + public void setAttendanceDate(String attendanceDate) { + this.attendanceDate = attendanceDate; + } + public String getProjectName() { return projectName; } diff --git a/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceDataMapper.xml b/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceDataMapper.xml index b868d70a..2bf1db8f 100644 --- a/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceDataMapper.xml +++ b/yanzhu-jh/src/main/resources/mapper/project/SurProjectAttendanceDataMapper.xml @@ -509,9 +509,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and cfgid in (select id from sur_project_attendance_cfg where projectId = #{projectId} and sub_dept_id = #{deptId} ) + + + AND (date(attendance_time) >= date(#{attendanceTime}) or date(attendance_out_time) >= date(#{attendanceTime})) + AND (date(attendance_time) <= date(#{attendanceOutTime}) or date(attendance_out_time) <= date(#{attendanceOutTime})) + - AND (date(attendance_time) >= date(#{attendanceTime}) or date(attendance_out_time) >= date(#{attendanceTime})) - AND (date(attendance_time) <= date(#{attendanceOutTime}) or date(attendance_out_time) <= date(#{attendanceOutTime})) + + AND (date(attendance_time) <= date(#{attendanceOutTime}) or date(attendance_out_time) <= date(#{attendanceOutTime})) + + + + AND (date(attendance_time) >= date(#{attendanceTime}) or date(attendance_out_time) >= date(#{attendanceTime})) + + ) SELECT a.*, b.days @@ -520,6 +531,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE b.rn = 1 order by a.workerId +