From 3890ad93fbb8bbb520dbf84cd94a8be4b37559a7 Mon Sep 17 00:00:00 2001
From: ieaii <1069385070@qq.com>
Date: Thu, 26 Dec 2024 15:55:28 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=91=A8=E6=9C=AB=E5=92=8C?=
=?UTF-8?q?=E5=8A=A0=E7=8F=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/xcx/ClockInProjectList.vue | 5 ++
.../views/xcx/modules/ClockInProjectItemForm.vue | 7 ++-
.../java/org/jeecg/common/util/DateUtils2.java | 18 +++++++
.../entity/ClockInProjectItem.java | 1 +
.../mapper/ClockInProjectItemMapper.java | 1 +
.../modules/clockinlog/entity/ClockinLog.java | 2 +
.../clockinlog/mapper/ClockinLogMapper.java | 8 +--
.../modules/clockinlog/ressp/ClockInLogResp.java | 12 +++++
.../clockinlog/service/IClockinLogService.java | 2 +-
.../service/impl/ClockinLogServiceImpl.java | 4 +-
.../clockin/service/impl/ClockinServiceImpl.java | 59 +++++++++++++++-------
.../src/test/java/org/jeecg/Test.java | 4 +-
12 files changed, 97 insertions(+), 26 deletions(-)
diff --git a/admin-hanhai-vue/src/views/xcx/ClockInProjectList.vue b/admin-hanhai-vue/src/views/xcx/ClockInProjectList.vue
index dea6b40..3aeb224 100644
--- a/admin-hanhai-vue/src/views/xcx/ClockInProjectList.vue
+++ b/admin-hanhai-vue/src/views/xcx/ClockInProjectList.vue
@@ -302,6 +302,11 @@
align:"center",
dataIndex: 'clockEndTime'
},
+ {
+ title:'类型',
+ align:"center",
+ dataIndex: 'type_dictText'
+ },
{
title:'排序',
align:"center",
diff --git a/admin-hanhai-vue/src/views/xcx/modules/ClockInProjectItemForm.vue b/admin-hanhai-vue/src/views/xcx/modules/ClockInProjectItemForm.vue
index 0399283..2a92054 100644
--- a/admin-hanhai-vue/src/views/xcx/modules/ClockInProjectItemForm.vue
+++ b/admin-hanhai-vue/src/views/xcx/modules/ClockInProjectItemForm.vue
@@ -18,6 +18,11 @@
+
+
+
+
+
@@ -118,7 +123,7 @@
that.confirmLoading = false;
})
}
-
+
})
},
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils2.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils2.java
index 3217a6e..4a72999 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils2.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils2.java
@@ -748,4 +748,22 @@ public class DateUtils2 {
return dateTimeFormatter.format(zonedDateTime);
}
+ /**
+ * 传入时区获取当前时间
+ * @param zoneId
+ * @return
+ */
+ public static String getZonedDateTimeNowYYYYMMDD(String zoneId){
+ ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of(zoneId));
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(YYYYMMDD);
+ return dateTimeFormatter.format(zonedDateTime);
+ }
+
+ public static String getZonedDateTimeNow2(String zoneId){
+ ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of(zoneId));
+ zonedDateTime.getDayOfWeek();
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(HHMMSS);
+ return dateTimeFormatter.format(zonedDateTime);
+ }
+
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/entity/ClockInProjectItem.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/entity/ClockInProjectItem.java
index 535bda3..551a11d 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/entity/ClockInProjectItem.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/entity/ClockInProjectItem.java
@@ -74,5 +74,6 @@ public class ClockInProjectItem implements Serializable {
@ApiModelProperty(value = "修改时间")
private java.util.Date updateTime;
/**类型 0正常 1周末 2加班*/
+ @Dict(dicCode = "clock_in_project_item_type")
private Integer type;
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/mapper/ClockInProjectItemMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/mapper/ClockInProjectItemMapper.java
index 358a73a..17c806b 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/mapper/ClockInProjectItemMapper.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/mapper/ClockInProjectItemMapper.java
@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface ClockInProjectItemMapper extends BaseMapper {
+
/**
* 获取有效打卡时间范围
* @param time
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/entity/ClockinLog.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/entity/ClockinLog.java
index 12c4b17..50e79ad 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/entity/ClockinLog.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/entity/ClockinLog.java
@@ -84,4 +84,6 @@ public class ClockinLog implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "打卡时间")
private Date clockInTime;
+ /**类型 0正常 1周末 2加班*/
+ private Integer type;
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/mapper/ClockinLogMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/mapper/ClockinLogMapper.java
index e25d5d5..2e4a605 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/mapper/ClockinLogMapper.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/mapper/ClockinLogMapper.java
@@ -22,14 +22,14 @@ public interface ClockinLogMapper extends BaseMapper {
* @param projectId
* @return
*/
- @Select("SELECT a.id,a.clock_start_time,b.pic clock_in_pic,b.address clock_in_address,(SELECT id FROM clockin_log WHERE project_item_id = a.id AND clock_in_time like '%${date}%' AND user_id = #{userId}) log_id\n" +
+ @Select("SELECT a.id,a.clock_start_time,a.type,b.pic clock_in_pic,b.address clock_in_address,(SELECT id FROM clockin_log WHERE project_item_id = a.id AND clock_in_time like '%${date}%' AND user_id = #{userId}) log_id\n" +
" ,(SELECT pic FROM clockin_log WHERE project_item_id = a.id and clock_in_time like '%${date}%' AND user_id = #{userId}) pic\n" +
" ,(SELECT clock_in_time FROM clockin_log WHERE project_item_id = a.id AND clock_in_time like '%${date}%' AND user_id = #{userId}) clock_in_time\n" +
" ,(SELECT address FROM clockin_log WHERE project_item_id = a.id AND clock_in_time like '%${date}%' AND user_id = #{userId}) address\n" +
" ,(SELECT count(1) FROM clockin_log WHERE project_item_id = a.id AND clock_in_time like '%${date}%' AND user_id = #{userId}) clock_in_flag\n" +
"FROM clock_in_project_item a left join clock_in_project b on a.project_id = b.id\n" +
- "WHERE a.del_flag = 0 AND a.project_id = #{projectId} ORDER BY a.sort")
- List getClockInLogResp(@Param("date") String date,@Param("projectId") String projectId,@Param("userId") String userId);
+ "WHERE a.del_flag = 0 AND a.type in (${type},2) AND a.project_id = #{projectId} ORDER BY a.sort,a.type")
+ List getClockInLogResp(@Param("date") String date,@Param("projectId") String projectId,@Param("userId") String userId,@Param("type") Integer type);
/**
@@ -38,7 +38,7 @@ public interface ClockinLogMapper extends BaseMapper {
* @param date
* @return
*/
- @Select("SELECT IFNULL(count(1),0) FROM clockin_log WHERE del_flag = 0 AND user_id = #{userId} AND clock_in_time like '%${date}%'")
+ @Select("SELECT IFNULL(count(1),0) FROM clockin_log WHERE del_flag = 0 AND user_id = #{userId} AND clock_in_time like '%${date}%' AND type in (0,1)")
Integer getClockInTotal(@Param("userId") String userId,@Param("date") String date);
@Select("select clock_start_time,(select clock_in_time from clockin_log where project_item_id = a.id and del_flag = 0 and user_id = '${userId}' and clock_in_time like '%${date}%') time from clock_in_project_item a where project_id = '${projectId}'\n")
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/ressp/ClockInLogResp.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/ressp/ClockInLogResp.java
index 98b0957..74c083a 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/ressp/ClockInLogResp.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/ressp/ClockInLogResp.java
@@ -24,6 +24,9 @@ public class ClockInLogResp {
private String time;
+ private Integer type;
+
+
public String getPic(){
if(this.pic == null){
this.pic = this.clockInPic;
@@ -39,6 +42,15 @@ public class ClockInLogResp {
return this.address;
}
+ public Integer getClockInFlag(){
+ Integer clockInFlag = this.clockInFlag;
+ if(this.type == 2){
+ clockInFlag = 1;
+
+ }
+ return clockInFlag;
+ }
+
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/service/IClockinLogService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/service/IClockinLogService.java
index 4e64437..0c557ac 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/service/IClockinLogService.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/service/IClockinLogService.java
@@ -21,7 +21,7 @@ public interface IClockinLogService extends IService {
* @param projectId
* @return
*/
- List getClockInLogResp(String date, String projectId,String userId);
+ List getClockInLogResp(String date, String projectId,String userId,Integer type);
/**
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/service/impl/ClockinLogServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/service/impl/ClockinLogServiceImpl.java
index 4757494..a1ee32c 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/service/impl/ClockinLogServiceImpl.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/service/impl/ClockinLogServiceImpl.java
@@ -20,8 +20,8 @@ import java.util.List;
public class ClockinLogServiceImpl extends ServiceImpl implements IClockinLogService {
@Override
- public List getClockInLogResp(String date, String projectId,String userId) {
- return baseMapper.getClockInLogResp(date, projectId, userId);
+ public List getClockInLogResp(String date, String projectId,String userId,Integer type) {
+ return baseMapper.getClockInLogResp(date, projectId, userId,type);
}
@Override
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/clockin/service/impl/ClockinServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/clockin/service/impl/ClockinServiceImpl.java
index 10408b9..57b8757 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/clockin/service/impl/ClockinServiceImpl.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/clockin/service/impl/ClockinServiceImpl.java
@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.time.DayOfWeek;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
@@ -59,9 +60,9 @@ public class ClockinServiceImpl implements IClockinService {
@Override
public Result> clockIn(ClockInReq clockInReq) {
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(clockInReq.getToken());
- if(StringUtils.isBlank(clockInReq.getPic())){
- throw new JeecgBootException("请拍照打卡");
- }
+// if(StringUtils.isBlank(clockInReq.getPic())){
+// throw new JeecgBootException("请拍照打卡");
+// }
if(StringUtils.isBlank(clockInReq.getAddress()) || StringUtils.isBlank(clockInReq.getLon()) || StringUtils.isBlank(clockInReq.getLat())){
throw new JeecgBootException("请打开定位打卡");
}
@@ -109,13 +110,14 @@ public class ClockinServiceImpl implements IClockinService {
}
clockinLog.setUserId(hanHaiMember.getId());
- clockinLog.setPic(clockInReq.getPic());
+// clockinLog.setPic(clockInReq.getPic());
clockinLog.setAddress(clockInReq.getAddress());
clockinLog.setLon(clockInReq.getLon());
clockinLog.setLat(clockInReq.getLat());
clockinLog.setProjectId(clockInProject.getId());
clockinLog.setProjectItemId(validClockInTime.getId());
clockinLog.setTeamId(clockinTeamLog.getTeamId());
+ clockinLog.setType(validClockInTime.getType());
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of(clockInTimeZone.getTimeZone()));
LocalDateTime localDateTime = zonedDateTime.toLocalDateTime();
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
@@ -127,13 +129,7 @@ public class ClockinServiceImpl implements IClockinService {
@Override
public Result> clockInLog(ClockInLogReq clockInLogReq) {
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiAccount(clockInLogReq.getToken());
- if(StringUtils.isBlank(clockInLogReq.getDate())){
- clockInLogReq.setDate(DateUtils2.getTodayDate());
- }else{
- Date date = DateUtils2.getDate(clockInLogReq.getDate());
- String dateString = DateUtils2.getDateString(date, "yyyy-MM-dd");
- clockInLogReq.setDate(dateString);
- }
+
ClockinTeamLog clockinTeamLog = clockinTeamLogService.lambdaQuery()
.eq(ClockinTeamLog::getDelFlag, 0)
.eq(ClockinTeamLog::getUserId, hanHaiMember.getId())
@@ -142,12 +138,33 @@ public class ClockinServiceImpl implements IClockinService {
.eq(ClockInProject::getDelFlag, 0)
.eq(ClockInProject::getTeamId, clockinTeamLog.getTeamId())
.one();
+ ClockInTimeZone clockInTimeZone = clockInTimeZoneService.lambdaQuery()
+ .eq(ClockInTimeZone::getId, clockInProject.getTimeZone())
+ .one();
+
+ if(StringUtils.isBlank(clockInLogReq.getDate())){
+ clockInLogReq.setDate(DateUtils2.getZonedDateTimeNowYYYYMMDD(clockInTimeZone.getTimeZone()));
+ }else{
+ Date date = DateUtils2.getDate(clockInLogReq.getDate());
+ String dateString = DateUtils2.getDateString(date, "yyyy-MM-dd");
+ clockInLogReq.setDate(dateString);
+ }
+
+ Date date = DateUtils2.getDate(clockInLogReq.getDate() + " 23:59:59");
+ LocalDateTime localDateTime = DateUtils2.dateToDateTime(date);
+ Integer type = 0;
+ if(DayOfWeek.SATURDAY.equals(localDateTime.getDayOfWeek()) || DayOfWeek.SUNDAY.equals(localDateTime.getDayOfWeek())){
+ type = 1;
+ }
+
+
+
// List clockinLogList = clockinLogService.lambdaQuery()
// .eq(ClockinLog::getDelFlag, 0)
// .eq(ClockinLog::getUserId, hanHaiMember.getId())
// .like(ClockinLog::getCreateTime, clockInLogReq.getDate())
// .list();
- List clockInLogResp = clockinLogService.getClockInLogResp(clockInLogReq.getDate(), clockInProject.getId(), hanHaiMember.getId());
+ List clockInLogResp = clockinLogService.getClockInLogResp(clockInLogReq.getDate(), clockInProject.getId(), hanHaiMember.getId(),type);
return Result.OK(clockInLogResp);
}
@@ -164,11 +181,7 @@ public class ClockinServiceImpl implements IClockinService {
.eq(ClockInProject::getTeamId, clockinTeamLog.getTeamId())
.one();
- List clockInProjectItemList = clockInProjectItemService.lambdaQuery()
- .eq(ClockInProjectItem::getDelFlag, 0)
- .eq(ClockInProjectItem::getType,0)
- .eq(ClockInProjectItem::getProjectId, clockInProject.getId())
- .list();
+
Date date = new Date();
if(StringUtils.isNotBlank(clockInTotalReq.getDate())){
date = DateUtils2.getDate(clockInTotalReq.getDate());
@@ -197,6 +210,18 @@ public class ClockinServiceImpl implements IClockinService {
if(milliSecond>todayDate){
break;
}
+
+ Date date2 = DateUtils2.getDate(yyyymmdd + " 23:59:59");
+ LocalDateTime localDateTime = DateUtils2.dateToDateTime(date2);
+ Integer type = 0;
+ if(DayOfWeek.SATURDAY.equals(localDateTime.getDayOfWeek()) || DayOfWeek.SUNDAY.equals(localDateTime.getDayOfWeek())){
+ type = 1;
+ }
+ List clockInProjectItemList = clockInProjectItemService.lambdaQuery()
+ .eq(ClockInProjectItem::getDelFlag, 0)
+ .eq(ClockInProjectItem::getType,type)
+ .eq(ClockInProjectItem::getProjectId, clockInProject.getId())
+ .list();
Integer clockInTotal = clockinLogService.getClockInTotal(hanHaiMember.getId(), yyyymmdd);
clockInTotalResp.setDate(yyyymmdd);
diff --git a/jeecg-boot-module-system/src/test/java/org/jeecg/Test.java b/jeecg-boot-module-system/src/test/java/org/jeecg/Test.java
index 6a51b51..15a754e 100644
--- a/jeecg-boot-module-system/src/test/java/org/jeecg/Test.java
+++ b/jeecg-boot-module-system/src/test/java/org/jeecg/Test.java
@@ -19,10 +19,12 @@ public class Test {
@org.junit.Test
public void test(){
+
ZonedDateTime utc = ZonedDateTime.now(ZoneId.of("UTC+7"));
LocalDateTime localDateTime = utc.toLocalDateTime();
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
- System.out.println(date);
+
+ System.out.println(utc.getDayOfWeek());
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(dateTimeFormatter.format(utc));