Jelajahi Sumber

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

QuYueTing 1 Minggu lalu
induk
melakukan
62807ee26a

+ 57 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/AttendanceRuleController.java

@@ -0,0 +1,57 @@
+package com.management.platform.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.management.platform.entity.AttendanceRule;
+import com.management.platform.service.AttendanceRuleService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-06-24
+ */
+@RestController
+@RequestMapping("/attendance-rule")
+public class AttendanceRuleController {
+
+    @Resource
+    private AttendanceRuleService attendanceRuleService;
+
+
+    @RequestMapping("updateAttendanceRule")
+    public HttpRespMsg updateAttendanceRule(AttendanceRule attendanceRule) {
+        HttpRespMsg msg = new HttpRespMsg();
+        if (attendanceRule.getId()==null){
+            msg.setError("关键信息为空");
+            return msg;
+        }
+        attendanceRuleService.update(attendanceRule,new UpdateWrapper<AttendanceRule>()
+                .set("begin_work_start_time",attendanceRule.getBeginWorkStartTime())
+                .set("end_work_start_time",attendanceRule.getEndWorkStartTime())
+                .set("begin_work_end_time",attendanceRule.getBeginWorkEndTime())
+                .set("end_work_end_time",attendanceRule.getEndWorkEndTime())
+                .eq("id",attendanceRule.getId()));
+        return msg;
+    }
+
+    @RequestMapping("getAllList")
+    public HttpRespMsg getAllList() {
+        HttpRespMsg msg = new HttpRespMsg();
+        List<AttendanceRule> list = attendanceRuleService.list();
+        msg.setData(list);
+        return msg;
+    }
+
+}
+

+ 79 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/AttendanceRule.java

@@ -0,0 +1,79 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import java.time.LocalTime;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class AttendanceRule extends Model<AttendanceRule> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 班次/规则名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 上班打卡时间左区间
+     */
+    @TableField("begin_work_start_time")
+    @DateTimeFormat(pattern = "HH:mm:ss")
+    @JsonFormat(pattern = "HH:mm:ss")
+    private LocalTime beginWorkStartTime;
+
+    /**
+     * 上班打卡时间右区间
+     */
+    @TableField("begin_work_end_time")
+    @DateTimeFormat(pattern = "HH:mm:ss")
+    @JsonFormat(pattern = "HH:mm:ss")
+    private LocalTime beginWorkEndTime;
+
+    /**
+     * 下班打卡时间左区间
+     */
+    @TableField("end_work_start_time")
+    @DateTimeFormat(pattern = "HH:mm:ss")
+    @JsonFormat(pattern = "HH:mm:ss")
+    private LocalTime endWorkStartTime;
+
+    /**
+     * 下班打卡时间右区间
+     */
+    @TableField("end_work_end_time")
+    @DateTimeFormat(pattern = "HH:mm:ss")
+    @JsonFormat(pattern = "HH:mm:ss")
+    private LocalTime endWorkEndTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/AttendanceRuleMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.AttendanceRule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-06-24
+ */
+public interface AttendanceRuleMapper extends BaseMapper<AttendanceRule> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/AttendanceRuleService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.AttendanceRule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-06-24
+ */
+public interface AttendanceRuleService extends IService<AttendanceRule> {
+
+}

+ 20 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/AttendanceRuleServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.AttendanceRule;
+import com.management.platform.mapper.AttendanceRuleMapper;
+import com.management.platform.service.AttendanceRuleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-06-24
+ */
+@Service
+public class AttendanceRuleServiceImpl extends ServiceImpl<AttendanceRuleMapper, AttendanceRule> implements AttendanceRuleService {
+
+}

+ 13 - 12
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/AttendanceStaffServiceImpl.java

@@ -255,13 +255,14 @@ public class AttendanceStaffServiceImpl extends ServiceImpl<AttendanceStaffMappe
                     ).findFirst();
                     Optional<Attendance> zaoXiaCount = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 16, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 20, 30))
-                    ).findFirst();
+                    ).max(Comparator.comparing(Attendance::getClockTime));
                     //异常早班1时间判断
                     Optional<Attendance> zaoShangYiChang1Count = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 8, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 9, 30))
                     ).findFirst();
                     Optional<Attendance> zaoXiaYiChang1Count = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 16, 30))
-                            && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 20, 30))).findFirst();
+                            && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 20, 30)))
+                            .max(Comparator.comparing(Attendance::getClockTime));
 
                     //异常早班2时间判断
                     Optional<Attendance> zaoShangYiChang2Count = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 9, 30))
@@ -269,7 +270,7 @@ public class AttendanceStaffServiceImpl extends ServiceImpl<AttendanceStaffMappe
                     ).findFirst();
                     Optional<Attendance> zaoXiaYiChang2Count = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 16, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 20, 30))
-                    ).findFirst();
+                    ).max(Comparator.comparing(Attendance::getClockTime));
 
                     //中班上下班时间判断
                     Optional<Attendance> zhongShangCount = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 12, 30))
@@ -278,7 +279,7 @@ public class AttendanceStaffServiceImpl extends ServiceImpl<AttendanceStaffMappe
 
                     Optional<Attendance> zhongXiaCount = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 20, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 21, 30))
-                    ).findFirst();
+                    ).max(Comparator.comparing(Attendance::getClockTime));
                     //小夜班(1)上下班时间判断
                     Optional<Attendance> xiaoYeShangCount = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 15, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 16, 30))
@@ -288,10 +289,10 @@ public class AttendanceStaffServiceImpl extends ServiceImpl<AttendanceStaffMappe
                     Optional<Attendance> xiaoYeXiaCount = isLastDay ?
                             attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 23, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue+1, 1, 0, 30))
-                    ).findFirst():
+                    ).max(Comparator.comparing(Attendance::getClockTime)):
                             attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 23, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue+1, 0, 30))
-                    ).findFirst();
+                    ).max(Comparator.comparing(Attendance::getClockTime));
 
                     //小夜班(2)上下班时间判断
                     Optional<Attendance> xiaoYeShang2Count = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 16, 30))
@@ -300,24 +301,24 @@ public class AttendanceStaffServiceImpl extends ServiceImpl<AttendanceStaffMappe
                     Optional<Attendance> xiaoYeXia2Count = isLastDay ?
                             attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue+1, 1, 0, 30))
                                     && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue+1, 1, 1, 30))
-                            ).findFirst():
+                            ).max(Comparator.comparing(Attendance::getClockTime)):
                             attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue+1, 0, 30))
                                     && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue+1, 1, 30))
-                            ).findFirst();
+                            ).max(Comparator.comparing(Attendance::getClockTime));
 
                     //异常小夜班(1)上下班时间判断
                     Optional<Attendance> xiaoYeShangYiChang1Count = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 13, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 14, 30))
                     ).findFirst();
                     Optional<Attendance> xiaoYeXiaYiChang1Count =attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 21, 30))
-                                    && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 22, 30))).findFirst();
+                                    && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 22, 30))).max(Comparator.comparing(Attendance::getClockTime));
 
                     //异常小夜班(2)上下班时间判断
                     Optional<Attendance> xiaoYeShangYiChang2Count = attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 14, 30))
                             && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 15, 30))
                     ).findFirst();
                     Optional<Attendance> xiaoYeXiaYiChang2Count =attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue, 22, 30))
-                            && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 23, 30))).findFirst();
+                            && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue, 23, 30))).max(Comparator.comparing(Attendance::getClockTime));
 
                     //大夜班上下班时间判断
                     Optional<Attendance> daYeShangCount =isLastDay ?
@@ -331,10 +332,10 @@ public class AttendanceStaffServiceImpl extends ServiceImpl<AttendanceStaffMappe
                     Optional<Attendance> daYeXiaCount =isLastDay ?
                             attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue+1, 1, 7, 30))
                                     && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue+1, 1, 8, 30))
-                            ).findFirst():
+                            ).max(Comparator.comparing(Attendance::getClockTime)):
                             attendances.stream().filter(a -> a.getClockTime().isAfter(LocalDateTime.of(year, monthValue, dayValue+1, 7, 30))
                                     && a.getClockTime().isBefore(LocalDateTime.of(year, monthValue, dayValue+1, 8, 30))
-                            ).findFirst();
+                            ).max(Comparator.comparing(Attendance::getClockTime));
 
                     //1先判断白班
                     if (zaoShangCount.isPresent()&&zaoXiaCount.isPresent()) {

+ 20 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/AttendanceRuleMapper.xml

@@ -0,0 +1,20 @@
+<?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.management.platform.mapper.AttendanceRuleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.AttendanceRule">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="begin_work_start_time" property="beginWorkStartTime" />
+        <result column="begin_work_end_time" property="beginWorkEndTime" />
+        <result column="end_work_start_time" property="endWorkStartTime" />
+        <result column="end_work_end_time" property="endWorkEndTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, begin_work_start_time, begin_work_end_time, end_work_start_time, end_work_end_time
+    </sql>
+
+</mapper>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -1313,7 +1313,7 @@
                     </el-select>
                 </el-form-item>
 
-                <el-form-item :label="customConfigurationRow.name">
+                <el-form-item :label="customConfigurationRow.name" v-if="customConfigurationRow.name">
                     <el-select v-model="exportParam.plate" placeholder="请选择"  clearable filterable>
                         <el-option v-for="item in customConfigurationRow.subUserCustomList || []"  :key="item.id" :label="item.name" :value="item.newId"></el-option>
                     </el-select>