Kaynağa Gözat

测试员工 禁用定时任务功能

徐滕 2 ay önce
ebeveyn
işleme
68eb76589f

+ 7 - 0
src/main/java/com/jeeplus/modules/sys/dao/UserDao.java

@@ -367,4 +367,11 @@ public interface UserDao extends CrudDao<User> {
 	 * @return
 	 */
     User getByNameAndMobile(@Param("createMobile")String createMobile, @Param("createByName")String createByName);
+
+
+	/**
+	 * 修改员工可登录状态
+	 * @param userId
+	 */
+	void updateUserLoginFlag(String userId);
 }

+ 10 - 1
src/main/java/com/jeeplus/modules/sys/entity/User.java

@@ -110,6 +110,7 @@ public class User extends DataEntity<User> {
 	private String isTemplate; //长期/临时  0:临时 1:长期
 	private String qwUserId; //企业微信对应的userId
 	private String username;
+	private Date activateDate;//激活的时间(冻结时会进行清除)
 
 	public String getUsername() {
 		return username;
@@ -651,7 +652,15 @@ public class User extends DataEntity<User> {
 	public void setQwUserId(String qwUserId) {
 		this.qwUserId = qwUserId;
 	}
-//	public String getPosition() {
+
+	public Date getActivateDate() {
+		return activateDate;
+	}
+
+	public void setActivateDate(Date activateDate) {
+		this.activateDate = activateDate;
+	}
+	//	public String getPosition() {
 //		return position;
 //	}
 //

+ 5 - 0
src/main/java/com/jeeplus/modules/sys/service/UserService.java

@@ -716,4 +716,9 @@ public class UserService extends BaseController {
     public User getByNameAndMobile(String createMobile, String createByName) {
         return userDao.getByNameAndMobile(createMobile,createByName);
     }
+
+    public void updateUserLoginFlag(String userId) {
+        userDao.updateUserLoginFlag(userId);
+    }
+
 }

+ 37 - 0
src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java

@@ -7,7 +7,9 @@ import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectSignatureOldMessageDisposeService;
 import com.jeeplus.modules.statement.service.StatementCompanyComprehensiveService;
+import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.service.UserService;
+import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workcalendar.entity.WorkCalendar;
 import com.jeeplus.modules.workinvoice.entity.WorkInvoice;
 import com.jeeplus.modules.workinvoice.service.WorkInvoiceService;
@@ -19,7 +21,10 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -343,4 +348,36 @@ public class WorkCalendarTaskService  {
         logger.info("-----------用户修改密码通知结束------------------");
     }
 
+
+    /**
+     * 获取项目即将超期还未上报并进行通知
+     */
+    //设置每日凌晨45分调用通知方法
+    @Scheduled(cron= "0 45 0 * * ?")
+    @Transactional(readOnly = false)
+    public void updateUserActivateType() {
+        logger.info("-----------测试员工的激活状态开始调整------------------");
+        User user = UserUtils.getByUserName("测试员工");
+        if(null != user && "1".equals(user.getLoginFlag()) && null!= user.getActivateDate()) {
+
+            Date now = new Date();
+
+            // 当前时间要晚于激活时间
+            if (now.after(user.getActivateDate())) {
+                // 计算激活时间 + 7 天
+                Calendar cal = Calendar.getInstance();
+                cal.setTime(user.getActivateDate());
+                cal.add(Calendar.DAY_OF_YEAR, 7);
+                Date sevenDaysLater = cal.getTime();
+
+                if (now.after(sevenDaysLater)) {
+                    // ✅ 已超过 7 天,执行你的处理逻辑
+                    System.out.println("激活时间已超过 7 天,处理用户:" + user.getUsername());
+                    userService.updateUserLoginFlag(user.getId());
+                }
+            }
+
+        }
+        logger.info("------------测试员工的激活状态开始调整------------------");
+    }
 }

+ 10 - 0
src/main/resources/mappings/modules/sys/UserDao.xml

@@ -93,6 +93,7 @@
 		a.audit_user_id AS "auditUserId",
 		a.area_remark AS "areaRemark",
 		a.qw_user_id AS "qwUserId",
+		a.activate_date AS "activateDate",
 		s.name AS "company.name",
 		s.parent_id AS "company.parent.id",
 		s.parent_ids AS "company.parentIds",
@@ -1422,4 +1423,13 @@
 		LEFT JOIN sys_office bo ON bo.id = o.branch_office
 		WHERE a.name = #{createByName} and a.mobile = #{createMobile} AND a.del_flag = 0
 	</select>
+
+
+	<update id="updateUserLoginFlag">
+		update sys_user
+		set
+			login_flag = CASE login_flag WHEN 0 THEN 1 WHEN 1 THEN 0 END,
+			activate_date = CASE login_flag WHEN 0 THEN null WHEN 1 THEN now() END
+		where id = #{userId}
+	</update>
 </mapper>

+ 3 - 1
src/main/resources/mappings/modules/workstaff/WorkStaffBasicInfoDao.xml

@@ -737,7 +737,9 @@
 
 	<update id="freeze">
 		update sys_user
-		set login_flag = CASE login_flag WHEN 0 THEN 1 WHEN 1 THEN 0 END
+		set
+		    login_flag = CASE login_flag WHEN 0 THEN 1 WHEN 1 THEN 0 END,
+			activate_date = CASE login_flag WHEN 0 THEN null WHEN 1 THEN now() END
 		where id = #{userId}
 	</update>
 

+ 4 - 4
src/main/webapp/webpage/modules/sys/sysLogin.jsp

@@ -330,7 +330,7 @@
                 $.get("${ctx}/sys/register/getRegisterCode?mobile="+$("#tel_resetpass").val()+"&type="+"resetPassword",function(data){
                     if(data.success == false){
                         //top.layer.alert(data.msg, {icon: 0});讨厌的白色字体问题
-                        alert(data.msg);
+						top.layer.alert(data.msg, {icon: 0});//讨厌的白色字体问题
                         $("#sendPassBtn").html("重新发送").removeAttr("disabled");
                         clearInterval(countdown);
                     }
@@ -758,7 +758,7 @@
 													<span class="block input-icon input-icon-right">
 														<button style="width:120px !important;" class="width-35 pull-right btn btn-sm btn-primary" type="button" id="sendRandomCodeBtn">
 																	<i class="ace-icon fa fa-lightbulb-o"></i>
-																	<span class="bigger-110">获取验证码!</span>
+																	<span class="bigger-110">获取验证码!</span>
 																</button>
 													</span>
 												</label>
@@ -802,7 +802,7 @@
 																<input id="rcode" name="randomCode" type="text" style="width:150px;" value="" maxlength="4" minlength="4" class="form-control required" placeholder="验证码" aria-required="true">
 																<button id="sendPassBtn" type="button" style="width:120px !important;" class="width-35 pull-right btn btn-sm btn-primary">
 																<i class="ace-icon fa fa-lightbulb-o"></i>
-																<span class="bigger-110">获取验证码!</span>
+																<span class="bigger-110">获取验证码!!!</span>
 															</button>
 																<label id="rcode-error" class="error" for="rcode" style="display:none"></label>
 															</span>
@@ -865,7 +865,7 @@
 																<input id="code" name="randomCode" type="text" value="" style="width:170px;" maxlength="4" minlength="4" class="form-control required" placeholder="验证码" aria-required="true">
 																<button style="width:120px !important;" class="width-35 pull-right btn btn-sm btn-primary" type="button" id="sendCodeBtn">
 																	<i class="ace-icon fa fa-lightbulb-o"></i>
-																	<span class="bigger-110">获取验证码!</span>
+																	<span class="bigger-110">获取验证码!</span>
 																</button>
 																<label id="code-error" class="error" for="code" style="display:none"></label>
 															</span>