LiGuang 3 năm trước cách đây
mục cha
commit
028837ecd1

+ 2 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/attendance/mapper/AttendanceMapper.java

@@ -32,4 +32,6 @@ public interface AttendanceMapper extends BaseMapper<Attendance> {
      */
     int DeleteDateAttendance(@Param("StartDate")String StartDate,@Param("EndDate")String EndDate,@Param("userids")List<String> userids);
    List< Map<String,Object>> getOneWork(@Param("userId")String userId, @Param("date")String date);
+
+   String isCar(@Param("userid")String userid);
 }

+ 6 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/attendance/mapper/xml/AttendanceMapper.xml

@@ -73,5 +73,11 @@ where 1=1
     and person=#{userId}
 </if>
     </select>
+    <select id="isCar" resultType="java.lang.String">
+        select  is_attendance from sys_user where 1=1
+        <if test="userid!=null and ''!=userid">
+            and id=#{userid}
+        </if>
+    </select>
 
 </mapper>

+ 93 - 26
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/attendance/service/impl/AttendanceServiceImpl.java

@@ -74,9 +74,8 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
             }
             int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
             AttendanceRule attendanceRule = attendanceRuleService.UserRule(userid);
-
-
-                if (attendanceRule!=null){
+            String car = attendanceMapper.isCar(userid);
+        if (attendanceRule!=null&&car!=null&&car.equals("0")){
                 if (attendanceRule.getType().equals("1")){//判断规则类型1,固定时间上下班
                     if (jq.equals("1")){//优先判断是否存在法定节假日
                         if (attendances != null && attendances.size() > 1) {//判断打卡记录是否有上下班
@@ -149,7 +148,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                     }
                 }else  if (attendanceRule.getType().equals("2")){//规则类型 2,按班次上下班
                     List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, date,"");
-                    if (oneUserShift!=null&&oneUserShift.size()>0&&!oneUserShift.get(0).get("id").equals("0")&&oneUserShift.get(0).get("type").equals("0")){//不分段
+                    if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("type")!=null&&oneUserShift.get(0).get("type").equals("0")){//不分段
                         if (attendances!=null&&attendances.size()>1){//判断打卡记录是否有上下班
                             Date startDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("startDate"), sd);
                             Date endDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("endDate"), sd);
@@ -177,7 +176,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                         }else {
                             cont="1";
                         }
-                    }else if (oneUserShift!=null&&oneUserShift.size()>0&&!oneUserShift.get(0).get("id").equals("0")&&!oneUserShift.get(0).get("type").equals("0")){//分段
+                    }else if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("type")!=null&&oneUserShift.get(0).get("type").equals("1")){//分段
                         Date startDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("startDate"), sd);
                         Date endDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("endDate"), sd);
                         Date start2Date = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("start2Date"), sd);
@@ -215,22 +214,31 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                         }else if (attendances!=null&&attendances.size()<4&&attendances.size()>0){
                             Date usStartDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(0).getUsDate()), sd);
                             cont="1";
-                            if (attendances.get(0).getExceptionType().equals("正常")&&usStartDate.getTime()>startDate.getTime()){
-                                attendances.get(0).setExceptionType("时间异常");
-                                attendances.get(0).setHolidayType(oneUserShift.get(0).get("startDate").toString());
-                            }if (attendances.get(1)!=null&&attendances.get(1).getExceptionType().equals("正常")){
-                                Date usEndDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(1).getUsDate()), sd);
-                                if (usEndDate.getTime()<endDate.getTime()){
-                                    attendances.get(1).setExceptionType("时间异常");
-                                    attendances.get(1).setHolidayType(oneUserShift.get(0).get("endDate").toString());
-                                }
-                            }if (attendances.get(2)!=null&&attendances.get(1).getExceptionType().equals("正常")){
-                                Date usStart2Date = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(2).getUsDate()), sd);
-                                if (usStart2Date.getTime()>start2Date.getTime()){
-                                    attendances.get(2).setExceptionType("时间异常");
-                                    attendances.get(2).setHolidayType(oneUserShift.get(0).get("start2Date").toString());
+                            for (int i=0;i<attendances.size();i++){
+                                if (i==0){
+                                    if (attendances.get(0).getExceptionType().equals("正常")&&usStartDate.getTime()>startDate.getTime()){
+                                        attendances.get(0).setExceptionType("时间异常");
+                                        attendances.get(0).setHolidayType(oneUserShift.get(0).get("startDate").toString());
+                                    }
+                                }else  if (i==1){
+                                    if (attendances.get(1)!=null&&attendances.get(1).getExceptionType().equals("正常")){
+                                        Date usEndDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(1).getUsDate()), sd);
+                                        if (usEndDate.getTime()<endDate.getTime()){
+                                            attendances.get(1).setExceptionType("时间异常");
+                                            attendances.get(1).setHolidayType(oneUserShift.get(0).get("endDate").toString());
+                                        }
+                                    }
+                                }else if (i==2){
+                                    if (attendances.get(2)!=null&&attendances.get(2).getExceptionType().equals("正常")){
+                                        Date usStart2Date = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(2).getUsDate()), sd);
+                                        if (usStart2Date.getTime()>start2Date.getTime()){
+                                            attendances.get(2).setExceptionType("时间异常");
+                                            attendances.get(2).setHolidayType(oneUserShift.get(0).get("start2Date").toString());
+                                        }
+                                    }
                                 }
                             }
+
                         }else {
                             cont="1";
                         }
@@ -332,11 +340,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                     }else  if (attendanceRule.getType().equals("2")){//规则类型 2,按班次上下班
                         at.setNotes("");
                         List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, aDate,"");
-                        if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("type").equals("0")){
-                            if (oneUserShift.get(0).get("id").equals("0")) {
-                                at.setNotes("休");
-
-                            }else {
+                        if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("type")!=null&&oneUserShift.get(0).get("type").equals("0")){
                                 at.setNotes("班");
                                 if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
                                     if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
@@ -353,8 +357,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                                 } else {
                                     at.setIs("1");
                                 }
-                            }
-                        }else if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("type").equals("1")){
+                        }else if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("type")!=null&&oneUserShift.get(0).get("type").equals("1")){
                             at.setNotes("班");
                             Date startDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("startDate"), sd);
                             Date endDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("endDate"), sd);
@@ -384,6 +387,8 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                             }else {
                                 at.setIs("1");
                             }
+                        }else  if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("id").equals("0")){
+                            at.setNotes("休");
                         }
                     }else if (attendanceRule.getType().equals("3")){//规则类型 3,自由上下班
                         if (jqw.equals("1")){//优先判断是否存在法定节假日
@@ -420,7 +425,69 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                     }
                     lit.add(at);
             }
+        }else  if (attendanceRule!=null&&car!=null&&car.equals("1")){
+            for (int i = 1; i <= actualMaximum; i++) {//循环获取时间月份的总天数
+                Attendance at = new Attendance();
+                at.setIss(i + "");//获取所有天数,前端js需要绑定的数据
+                String aDate = String.valueOf(year) + "-" + month + "-" + i;//循环拼接所有天数进行查询是否正常
+                String jqw="";
+                List<Attendance> acs = attendanceMapper.queryList(userid, aDate);
+                StatutoryLeave stjq = statutoryLeaveService.getOne(aDate,null);
+                if (stjq!=null){
+                    jqw=stjq.getType();
+                }
+                at.setIs("2");
+                at.setNotes("休");
+                if (attendanceRule.getType().equals("1")){//判断规则类型1,固定时间上下班
+                    if (jqw.equals("1")){//优先判断是否存在法定节假日
+                        at.setNotes("班");
+                    }else if (jqw.equals("")) {
+                        String state = "1";
+                        String[] split = attendanceRule.getWorkDay().split(",");//获取工作日
+                        Date da = DateUtils.str2Date(aDate, sdf);
+                        for (String day : split) {
+                            if (day.equals(String.valueOf(da.getDay()))) {
+                                state = "2";
+                                break;
+                            }
+                        }
+                        if (state.equals("2")) {//在工作日内
+                            at.setNotes("班");
+                        }
+                    }
+                }else  if (attendanceRule.getType().equals("2")){//规则类型 2,按班次上下班
+                    at.setNotes("");
+                    List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, aDate,"");
+                    if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("type")!=null&&oneUserShift.get(0).get("type").equals("0")){
+                            at.setNotes("班");
+                    }else if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("type")!=null&&oneUserShift.get(0).get("type").equals("1")){
+                        at.setNotes("班");
+
+                    }else if (oneUserShift!=null&&oneUserShift.size()>0&&oneUserShift.get(0).get("id").equals("0")){
+                        at.setNotes("休");
+                    }
+                }else if (attendanceRule.getType().equals("3")){//规则类型 3,自由上下班
+                    if (jqw.equals("1")){//优先判断是否存在法定节假日
+                        at.setNotes("班");
+                    }else if (jqw.equals("")) {
+                        String states = "1";
+                        String[] split = attendanceRule.getWorkDay().split(",");//获取工作日
+                        Date da = DateUtils.str2Date(aDate, sdf);
+                        for (String day : split) {
+                            if (day.equals(String.valueOf(da.getDay()))) {
+                                states = "2";
+                                break;
+                            }
+                        }
+
+                        if (states.equals("2")) {
+                            at.setNotes("班");
+                        }
+                    }
                 }
+                lit.add(at);
+            }
+        }
         List<Vacation> vacation = vacationMapper.vacation(userid, date);//获取当前用户的假期数据
         List< Map<String,Object>> oneWork = attendanceMapper.getOneWork(userid, date);
         map.put("date",attendances);

+ 2 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/mapper/UserQuitMapper.java

@@ -22,6 +22,8 @@ public interface UserQuitMapper extends BaseMapper<UserQuit> {
 
     List<UserQuit>lists(@Param("startDate")String startDate);
 
+    List<UserQuit>lists2(@Param("startDate")String startDate);
+
     List<UserQuit>getUserIds(@Param("userid")String userid);
 
     boolean updateByUserid(@Param("userid")List<String>userid);

+ 7 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/mapper/xml/UserQuitMapper.xml

@@ -52,4 +52,11 @@
             and user_id=#{userid}
         </if>
     </select>
+    <select id="lists2" resultType="org.jeecg.modules.geke.userquit.entity.UserQuit">
+        select *from geke_user_quit where state='1' and status='0'
+        <if test="startDate!=null and ''!=startDate ">
+            and date_format(end_date,'%Y-%m-%d') &lt;=date_format(#{startDate},'%Y-%m-%d')
+        </if>
+        and new_date is null
+    </select>
 </mapper>

+ 1 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/service/IUserQuitService.java

@@ -22,4 +22,5 @@ public interface IUserQuitService extends IService<UserQuit> {
     boolean updateUserSate(String userid);
     List<UserQuit>lists(String startDate);
     boolean updateByUserid(List<String>userid);
+    List<UserQuit>lists2(String startDate);
 }

+ 5 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userquit/service/impl/UserQuitServiceImpl.java

@@ -77,4 +77,9 @@ public class UserQuitServiceImpl extends ServiceImpl<UserQuitMapper, UserQuit> i
     public boolean updateByUserid(List<String> userid) {
         return userQuitMapper.updateByUserid(userid);
     }
+
+    @Override
+    public List<UserQuit> lists2(String startDate) {
+        return userQuitMapper.lists2(startDate);
+    }
 }

+ 24 - 13
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java

@@ -146,11 +146,20 @@ public class LoginController {
 				return result;
 			}
 		}if(sysUser!=null){
+			if (sysUser.getEmploymentStatus()==null||sysUser.getEmploymentStatus().equals(30)){
+				result.error500("无法登录!请联系管理员");
+				return result;
+			}
 			List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, sysUser.getId()));
-			for (SysUserRole str:userRole){
-				if (str.getRoleId().equals("1473241527673765890")){
-					result.error500("暂无登录权限!请联系管理员");
-					return result;
+			if (userRole==null||userRole.size()<1){
+				result.error500("无角色!请联系管理员");
+				return result;
+			}else {
+				for (SysUserRole str : userRole) {
+					if (str.getRoleId().equals("1473241527673765890")) {
+						result.error500("暂无登录权限!请联系管理员");
+						return result;
+					}
 				}
 			}
 		}
@@ -532,22 +541,24 @@ public class LoginController {
 		if (auts!=null){
 			sysUser = sysUserService.getById(auts);
 		}
-//		String password = sysLoginModel.getPassword();
+	//	String password = sysLoginModel.getPassword();
 //		//1. 校验用户是否有效
-//		SysUser sysUser = sysUserService.getUserByName(username);
+		//SysUser sysUser = sysUserService.getUserByName(username);
 		result = sysUserService.checkUserIsEffective(sysUser);
 		if(!result.isSuccess()) {
 			return result;
 		}
 
 		//2. 校验用户名或密码是否正确
-//		String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
-//		String syspassword = sysUser.getPassword();
-//		if (!syspassword.equals(userpassword)) {
-//			result.error500("用户名或密码错误");
-//			return result;
-//		}
-
+		//String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
+	/*	String syspassword = sysUser.getPassword();
+		if (!syspassword.equals(userpassword)) {
+			result.error500("用户名或密码错误");
+			return result;
+		}*/if (sysUser.getEmploymentStatus()==null||sysUser.getEmploymentStatus().equals(30)){
+			result.error500("无法登录!");
+			return result;
+		}
 		String orgCode = sysUser.getOrgCode();
 		if(oConvertUtils.isEmpty(orgCode)) {
 			//如果当前用户无选择部门 查看部门关联信息

+ 37 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.mail.EmailException;
@@ -25,6 +26,7 @@ import org.apache.shiro.authz.SimpleAuthorizationInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.apache.shiro.authz.annotation.RequiresRoles;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.aspect.annotation.PermissionData;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.api.ISysBaseAPI;
@@ -180,7 +182,8 @@ public class SysUserController {
     @Resource
     private BaseCommonService baseCommonService;
 
-
+    @Autowired
+    private  IWeixinUserService weixinUserService;
 
 
 
@@ -2580,4 +2583,37 @@ public class SysUserController {
 
         return eml;
     }
+
+
+    /**
+     * 编辑
+     *
+     * @param userChage
+     * @return
+     */
+    @AutoLog(value = "人事变动-编辑")
+    @ApiOperation(value="人事变动-编辑", notes="人事变动-编辑")
+    @PutMapping(value = "/userChageEdit")
+    public Result<?> userChageEdit(@RequestBody UserChage userChage) throws IOException, ParseException {
+        userChageService.updateById(userChage);
+        weixinUserService.editUserChange();
+        return Result.OK("编辑成功!");
+    }
+
+
+
+    /**
+     * 编辑
+     *
+     * @param userQuit
+     * @return
+     */
+    @AutoLog(value = "入职,离职信息-编辑")
+    @ApiOperation(value="入职,离职信息-编辑", notes="入职,离职信息-编辑")
+    @PutMapping(value = "/userQuitEdit")
+    public Result<?> userQuitEdit(@RequestBody UserQuit userQuit) throws IOException, ParseException {
+        boolean b = userQuitService.updateById(userQuit);
+        weixinUserService.UserQuits();
+        return Result.OK("编辑成功!");
+    }
 }

+ 4 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml

@@ -65,8 +65,9 @@
 	<select id="getUserByRoleId" resultMap="userMap">
 		select * from sys_user where del_flag = 0 and id in (select user_id from sys_user_role where role_id=#{roleId})
 		<if test="username!=null and username!=''">
-			and work_no LIKE concat(concat('%',#{username}),'%')
+			and (work_no LIKE concat(concat('%',#{username}),'%') or realname LIKE concat(concat('%',#{username}),'%'))
 		</if>
+		and employment_Status='10'
 	</select>
 	
 	<!--  修改用户部门code -->
@@ -498,7 +499,7 @@ on a.depart_name=b.orgCodeTxt
 	</select>
     <select id="RoleUser" resultType="org.jeecg.modules.system.entity.SysUser">
 		select a.*from sys_user a left join  sys_user_role b on a.id=b.user_id
-		where a.del_flag='0'
+		where a.del_flag='0' and a.employment_Status='10'
 		<if test="sysUser.workNo!=null and ''!=sysUser.workNo">
 			and a.work_no like concat(concat('%',#{sysUser.workNo}),'%')
 		</if>
@@ -506,7 +507,7 @@ on a.depart_name=b.orgCodeTxt
 			and a.realname like concat(concat('%',#{sysUser.realname}),'%')
 		</if>
 		<if test="sysUser.del5!=null and ''!=sysUser.del5">
-			and b.role_id!=#{sysUser.del5}
+			and  (b.role_id is null or  b.role_id!=#{sysUser.del5})
 		</if>
 	</select>
 	<select id="emails" resultType="java.lang.String">

+ 13 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/WeixinUserImpl.java

@@ -835,14 +835,25 @@ public class WeixinUserImpl implements IWeixinUserService{
     @Override
     public Map<String, Object> UserQuits() throws IOException, ParseException {
         Calendar now = Calendar.getInstance();//获取系统时间实列
-        List<UserQuit> lists = userQuitService.lists(DateUtils.getDate("yyyy-MM-dd HH:mm:ss"));
+        List<UserQuit> lists=new ArrayList<>();
+        List<UserQuit> lists2 = userQuitService.lists(DateUtils.getDate("yyyy-MM-dd HH:mm:ss"));
+        List<UserQuit> lists3 = userQuitService.lists2(DateUtils.getDate("yyyy-MM-dd HH:mm:ss"));
+        if (lists2!=null&&lists2.size()>0){
+            lists.addAll(lists2);
+        }if (lists3!=null&&lists3.size()>0){
+            lists.addAll(lists3);
+        }
         List<String>userids=new ArrayList<>();
         if (lists!=null&&lists.size()>0){
             lists.forEach(str->{
                 SysUser user =new SysUser();
                 user.setId(str.getUserId());
                 user.setEmploymentStatus(30);
-                user.setTermDate(str.getNewDate());
+                if (oConvertUtils.isNotEmpty(str.getNewDate())) {
+                    user.setTermDate(str.getNewDate());
+                }else {
+                    user.setTermDate(str.getEndDate());
+                }
                 sysUserService.updateById(user);
                 userids.add(str.getUserId());
             });