diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAttendanceController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAttendanceController.java index 62728e8..60347af 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAttendanceController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAttendanceController.java @@ -141,6 +141,17 @@ public class SysOaAttendanceController extends BaseController { return toAjax(iSysOaAttendanceService.deleteWithValidByIds(Arrays.asList(ids), true)); } + /** + * 删除人员考勤 + * + * @param ids 主键串 + */ + @Log(title = "人员考勤", businessType = BusinessType.DELETE) + @DeleteMapping("/all/{day}") + public R delOaAttendanceAll(@PathVariable Long day) { + return toAjax(iSysOaAttendanceService.delOaAttendanceAll(day)); + } + /** * 新增人员考勤 diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaAttendanceMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaAttendanceMapper.java index 09d5a93..aa16273 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaAttendanceMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaAttendanceMapper.java @@ -17,4 +17,6 @@ import java.util.List; public interface SysOaAttendanceMapper extends BaseMapperPlus { List selectVoListAndTime(@Param("userId") Long userId, @Param("firstDay") Date firstDay, @Param("lastDay") Date lastDay); + + int delOaAttendanceAll(@Param("firstDay") Date firstDay, @Param("lastDay")Date lastDay,@Param("day")Long day); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaAttendanceService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaAttendanceService.java index 61c569d..ac4f623 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaAttendanceService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaAttendanceService.java @@ -70,4 +70,10 @@ public interface ISysOaAttendanceService { */ List workerCalc(Date time); + /** + * 删除当月某日所有人的签到记录 + * @param day 日期 + * @return + */ + int delOaAttendanceAll(Long day); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaAttendanceServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaAttendanceServiceImpl.java index 0d3d6cd..6baed61 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaAttendanceServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaAttendanceServiceImpl.java @@ -197,21 +197,11 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService { */ @Override public List workerCalc(Date time) { - - String firstDay = DateUtils.parseDateToStr("yyyy-MM-01", time); - - String format = "yyyy-MM-"; - // 计算某月的天数 - Calendar calendar = Calendar.getInstance(); - calendar.setTime(time); - String dateLength = String.valueOf(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); - // 将字符串拼接 - format +=dateLength; - String lastDay = DateUtils.parseDateToStr(format, time); // 查询所有的工人 List userIds = sysUserRoleMapper.selectUserIdsByRoleId(1852970465740505090L); - + Date firstDay = getFirstDay(time); + Date lastDay = getLastDay(time); List costDataList = new ArrayList<>(); for (Long userId : userIds) { SysUserVo sysUser = BeanUtil.toBean(sysUserService.selectUserById(userId), SysUserVo.class); @@ -219,12 +209,10 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService { sysOaAttendanceVo.setUserId(sysUser.getUserId()); // 查询某月记录 - List sysOaAttendanceVos = baseMapper.selectVoListAndTime(userId, DateUtils.parseDate(firstDay),DateUtils.parseDate(lastDay)); - + List sysOaAttendanceVos = baseMapper.selectVoListAndTime(userId, firstDay,lastDay); List projectVos = new ArrayList<>(); - Double workTimes = 0.0; - System.out.println(sysOaAttendanceVos); + for (SysOaAttendanceVo oaAttendanceVo : sysOaAttendanceVos) { SysOaProjectVo sysOaProjectVo = projectService.queryById(oaAttendanceVo.getProjectId()); oaAttendanceVo.setColor(sysOaProjectVo.getColor()); @@ -247,4 +235,33 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService { return costDataList; } + + /** + * 删除当月某日所有人的记录 + * @param day 日期 + * @return + */ + @Override + public int delOaAttendanceAll(Long day) { + + Date now = new Date(); + return baseMapper.delOaAttendanceAll(getFirstDay(now),getLastDay(now),day); + } + + private Date getFirstDay(Date time){ + String firstDay = DateUtils.parseDateToStr("yyyy-MM-01", time); + return DateUtils.parseDate(firstDay); + } + + private Date getLastDay(Date time){ + String format = "yyyy-MM-"; + // 计算某月的天数 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(time); + String dateLength = String.valueOf(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + // 将字符串拼接 + format +=dateLength; + + return DateUtils.parseDate(DateUtils.parseDateToStr(format, time)); + } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java index 044cb90..a04e855 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java @@ -271,10 +271,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { //其中一条 sysOaOutWarehouses.forEach(sysOaOutWarehouse -> { //选出相对应的 库存表中那一条的数据 - LambdaQueryWrapper lqw2 = Wrappers.lambdaQuery(); - lqw2.eq(SysOaWarehouse::getId, sysOaOutWarehouse.getWarehouseId()); - SysOaWarehouse warehouse = warehouseMapper.selectOne(lqw2); - + SysOaWarehouse warehouse = warehouseMapper.selectVoByIdAndXml(sysOaOutWarehouse.getWarehouseId()); // 恢复原本出库的数量 warehouse.setInventory(warehouse.getInventory() + sysOaOutWarehouse.getAmount()); warehouseMapper.updateById(warehouse); diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml index 5f82f1a..35a39cf 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml @@ -45,5 +45,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by soa.project_id + + delete from sys_oa_attendance where + attendance_day = #{day} + and #{lastDay} > create_time + and create_time > #{firstDay} + diff --git a/ruoyi-ui/src/api/oa/oaAttendance.js b/ruoyi-ui/src/api/oa/oaAttendance.js index e7d6deb..d68c445 100644 --- a/ruoyi-ui/src/api/oa/oaAttendance.js +++ b/ruoyi-ui/src/api/oa/oaAttendance.js @@ -70,3 +70,14 @@ export function delOaAttendance(id) { method: 'delete' }) } + + +// 删除人员考勤 +export function delOaAttendanceAll(id) { + return request({ + url: '/oa/oaAttendance/all/' + id, + method: 'delete' + }) +} + + diff --git a/ruoyi-ui/src/views/oa/attendance/index.vue b/ruoyi-ui/src/views/oa/attendance/index.vue index d6234d9..bb535e0 100644 --- a/ruoyi-ui/src/views/oa/attendance/index.vue +++ b/ruoyi-ui/src/views/oa/attendance/index.vue @@ -1,13 +1,15 @@