LiGuang 3 anni fa
parent
commit
a2782fee5d

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

@@ -6,7 +6,11 @@ import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.geke.attendance.entity.Attendance;
 import org.jeecg.modules.geke.attendance.mapper.AttendanceMapper;
 import org.jeecg.modules.geke.attendance.service.IAttendanceService;
+import org.jeecg.modules.geke.attendanceRule.entity.AttendanceRule;
+import org.jeecg.modules.geke.attendanceRule.service.IAttendanceRuleService;
+import org.jeecg.modules.geke.userShift.entity.UserDept;
 import org.jeecg.modules.geke.userShift.mapper.UserShiftMapper;
+import org.jeecg.modules.geke.userShift.service.IUserShiftService;
 import org.jeecg.modules.geke.vacation.entity.Vacation;
 import org.jeecg.modules.geke.vacation.mapper.VacationMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,12 +41,18 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
     @Autowired
     private UserShiftMapper userShiftMapper;
 
+    @Autowired
+    private IUserShiftService userShiftService;
+
+    @Autowired
+    private IAttendanceRuleService attendanceRuleService;
+
 
     @Override
     public Map<String,Object> queryList(String userid, String date) throws ParseException {
         Map<String,Object> map=new HashMap<>();
         List<Attendance>lit=new ArrayList<>();
-        List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, date,"");
+        //List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, date,"");
             List<Attendance> attendances = attendanceMapper.queryList(userid, date);//查询当前用户的打卡时间
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -51,31 +61,27 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
             int year = calendar.get(calendar.YEAR);//年份
             int month = calendar.get(calendar.MONTH) + 1;//月份
             int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
-            String cont = "2";
-            if (oneUserShift!=null&&oneUserShift.size()>0){
+                String cont = "2";
                 if (attendances!=null&&attendances.size()>1){
                     cont=exitprio(attendances);
-                }else {
+                }else if(attendances!=null&&attendances.size()==1){
                     cont="1";
                 }
-            }
+
 
         //----------------------------------------------------------------下面是获取当前月份所有天数的考勤-------------------------------------------------
             for (int i = 1; i <= actualMaximum; i++) {//循环获取时间月份的总天数
                 Attendance at = new Attendance();
                 at.setIss(i + "");//获取所有天数,前端js需要绑定的数据
                 String aDate = String.valueOf(year) + "-" + month + "-" + i;//循环拼接所有天数进行查询是否正常
-                List<Map<String,Object>> oneUserShifts = userShiftMapper.getOneUserShift(userid, aDate,"");
+                //List<Map<String,Object>> oneUserShifts = userShiftMapper.getOneUserShift(userid, aDate,"");
                 List<Attendance> acs = attendanceMapper.queryList(userid, aDate);
                 at.setIs("2");
-                if (oneUserShifts!=null&&oneUserShifts.size()>0){
                     if (acs!=null&&acs.size()>1){
                         at.setIs(exitprio(acs));
-                    }else {
+                    }else if(acs!=null&&acs.size()==1){
                         at.setIs("1");
                     }
-                }
-
                     lit.add(at);
             }
             Vacation vacation = vacationMapper.vacation(userid, date);//获取当前用户的假期数据
@@ -104,23 +110,19 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
         int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
                 for (int i = 1; i <= actualMaximum; i++){
                     String aDate = String.valueOf(year)+"-"+month+"-"+i;
-                    List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, aDate,"");
+                    //List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, aDate,"");
                     List<Attendance> attendances = attendanceMapper.queryList(userid, aDate);
-                    if (oneUserShift!=null&&oneUserShift.size()>0){
                         if (attendances!=null&&attendances.size()>1){
                             String exitprio = exitprio(attendances);
+                            sum=exitprio;
                             if (exitprio.equals("1")){
                                 break;
                             }
-                        }else {
+                        }else if (attendances!=null&&attendances.size()==1){
                             sum="1";
                             break;
                         }
                     }
-
-
-                }
-
         return sum;
     }
 

+ 1 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/entity/UserDept.java

@@ -6,4 +6,5 @@ import lombok.Data;
 public class UserDept {
     private String userId;
     private String departName;
+    private  String id;
 }

+ 1 - 1
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/mapper/UserShiftMapper.java

@@ -41,5 +41,5 @@ public interface UserShiftMapper extends BaseMapper<UserShift> {
 
     List<Map<String,Object>> getMothUserShifts(@Param("userid")String userid, @Param("date")String date);
 
-    List<Map<String,Object>>getUsers(Page<Map<String,Object>> page,@Param("deptids")List<String> deptids);
+    List<Map<String,Object>>getUsers(Page<Map<String,Object>> page,@Param("deptids")List<String> deptids,@Param("userid")List<String> userids,@Param("type")String type);
 }

+ 13 - 1
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/mapper/xml/UserShiftMapper.xml

@@ -25,7 +25,7 @@
 order by a.shift_date desc
     </select>
     <select id="getDepNamesByUserIds" resultType="org.jeecg.modules.geke.userShift.entity.UserDept">
-        select d.depart_name,ud.user_id from sys_user_depart ud,sys_depart d where d.id = ud.dep_id and ud.user_id in
+        select d.depart_name,ud.user_id,d.id from sys_user_depart ud,sys_depart d where d.id = ud.dep_id and ud.user_id in
         <foreach collection="userIds" index="index" item="id" open="(" separator="," close=")">
             #{id}
         </foreach>
@@ -75,6 +75,18 @@ order by a.shift_date desc
                 #{id}
             </foreach>
         </if>
+        <if test="userid!=null and userid.size()>0 and type==2">
+            and a.id not in
+            <foreach collection="userid" index="index" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="userid!=null and userid.size()>0 and type==1">
+            and a.id  in
+            <foreach collection="userid" index="index" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
        order by a.create_time desc
     </select>
 

+ 2 - 2
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/service/IUserShiftService.java

@@ -33,7 +33,7 @@ public interface IUserShiftService extends IService<UserShift> {
 
     List<Map<String,Object>> getMothUserShifts(String userid, String date);
 
-    IPage<Map<String,Object>>mothUserShift(String date,Integer pageNo,Integer pageSize,List<String>deptids) throws ParseException;
+    IPage<Map<String,Object>>mothUserShift(String date,Integer pageNo,Integer pageSize,List<String>deptids,List<String> userid,String type) throws ParseException;
 
-    IPage<Map<String,Object>> getUsers(Page<Map<String,Object>> page,List<String> deptids);
+    IPage<Map<String,Object>> getUsers(Page<Map<String,Object>> page,List<String> deptids,List<String> userid,String type);
 }

+ 4 - 4
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/service/impl/UserShiftServiceImpl.java

@@ -108,11 +108,11 @@ public class UserShiftServiceImpl extends ServiceImpl<UserShiftMapper, UserShift
     }
 
     @Override
-    public IPage<Map<String, Object>> mothUserShift(String date,Integer pageNo,Integer pageSize,List<String>deptids) throws ParseException {
+    public IPage<Map<String, Object>> mothUserShift(String date,Integer pageNo,Integer pageSize,List<String>deptids,List<String> userid,String type) throws ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Page<Map<String, Object>> page = new Page<Map<String, Object>>(pageNo, pageSize);
         List<String> mySubDepIdsByDepId=null;
-        IPage<Map<String, Object>> users = getUsers(page,deptids);
+        IPage<Map<String, Object>> users = getUsers(page,deptids,userid,type);
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(sdf.parse(date));
 
@@ -138,7 +138,7 @@ public class UserShiftServiceImpl extends ServiceImpl<UserShiftMapper, UserShift
     }
 
     @Override
-    public IPage<Map<String, Object>> getUsers(Page<Map<String, Object>> page,List<String> deptids) {
-        return page.setRecords(userShiftMapper.getUsers(page,deptids));
+    public IPage<Map<String, Object>> getUsers(Page<Map<String, Object>> page,List<String> deptids,List<String> userid,String type) {
+        return page.setRecords(userShiftMapper.getUsers(page,deptids,userid,type));
     }
 }

+ 2 - 1
jeecg-boot-module-demo/target/classes/org/jeecg/modules/geke/attendance/mapper/xml/AttendanceMapper.xml

@@ -67,7 +67,8 @@ where 1=1
     <select id="getOneWork" resultType="java.util.Map">
         select *from bd_work_overtime where 1=1
 <if test="date!=null and ''!=date">
-    and date_format(begin_date,'%Y-%m-%d')>=#{date}  and date_format(end_date,'%Y-%m-%d')&lt;=#{date}</if>
+    and  date_format(begin_date,'%Y-%m-%d')= date_format(#{date},'%Y-%m-%d')
+   </if>
 <if test="userId!=null and ''!=userId">
     and person=#{userId}
 </if>

+ 47 - 40
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -32,6 +32,7 @@ import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.*;
 import org.jeecg.modules.geke.attendance.service.IAttendanceService;
+import org.jeecg.modules.geke.userRule.service.IUserRuleService;
 import org.jeecg.modules.geke.userShift.entity.UserShift;
 import org.jeecg.modules.geke.userShift.entity.UserShiftVo;
 import org.jeecg.modules.geke.userShift.service.IUserShiftService;
@@ -124,7 +125,8 @@ public class SysUserController {
 
     @Autowired
     private IUserShiftService userShiftService;
-
+    @Autowired
+    private IUserRuleService userRuleService;
 
 	@Autowired
 	private RedisUtil redisUtil;
@@ -242,31 +244,8 @@ public class SysUserController {
 		QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
     	//TODO 外部模拟登陆临时账号,列表不显示
         queryWrapper.ne("username","_reserve_user_external");
-		Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
-        String deptids="";
-        List<String> mySubDepIdsByDepId=null;
-        String state="0";
-        LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
-        List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, sysUser.getId()));
-        if (userRole!=null&&userRole.size()>0){
-            for (SysUserRole role:userRole){
-                if (role.getRoleId().equals("1462659329857978370")){
-                    List<SysDepart> list = this.sysDepartService.queryUserDeparts(sysUser.getId());
-                    for (SysDepart depart:list){
-                        deptids+=depart.getId()+",";
-                        if (depart.getId().equals("1")){
-                            state="1";
-                        }
-                    }
-                    if (state.equals("0")) {
-                        mySubDepIdsByDepId = sysDepartService.getMySubDepIdsByDepId(deptids);
-                    }
-                    break;
-                }
-            }
-        }
-        IPage<SysUser> pageList = sysUserService.deptUser(page,user.getUsername(),mySubDepIdsByDepId,user.getSex(),user.getRealname(),user.getPhone(),user.getStatus());
-
+        Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
+        IPage<SysUser> pageList = sysUserService.page(page, queryWrapper);
 		//批量查询用户的所属部门
         //step.1 先拿到全部的 useids
         //step.2 通过 useids,一次性查询用户的所属部门名字
@@ -1678,25 +1657,53 @@ public class SysUserController {
     @GetMapping(value = "/queryMothByUser")
     public Result<?> queryMothByUser(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                      @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-                                     HttpServletRequest req, UserShift userShift) throws ParseException {
+                                     HttpServletRequest req, UserShift userShift,String deptid,String usertid,String type,String ruleid) throws ParseException {
         String deptids="";
+        List<String> userids=null;
         List<String> mySubDepIdsByDepId=null;
-        LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
-        List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, sysUser.getId()));
-        if (userRole!=null&&userRole.size()>0){
-            for (SysUserRole role:userRole){
-                if (role.getRoleId().equals("1462659329857978370")){
-                    List<SysDepart> list = this.sysDepartService.queryUserDeparts(sysUser.getId());
-                    for (SysDepart depart:list){
-                        deptids+=depart.getId()+",";
-                    }
-                    mySubDepIdsByDepId = sysDepartService.getMySubDepIdsByDepId(deptids);
-
-                }
+        if (deptid!=null&&!deptid.equals("")){
+            mySubDepIdsByDepId=Arrays.asList(deptid.split(","));
+        }if (usertid!=null&&!usertid.equals("")){
+            userids=Arrays.asList(usertid.split(","));
+        }if (type.equals("1")||type=="1"){
+            userids=new ArrayList<>();
+            List<Map<String, Object>> users = userRuleService.users(ruleid);
+            for (Map ids:users){
+                userids.add(ids.get("id").toString());
             }
         }
-        IPage<Map<String, Object>> maps = userShiftService.mothUserShift(DateUtils.formatDate(userShift.getShiftDate()),pageNo,pageSize,mySubDepIdsByDepId);
 
+        IPage<Map<String, Object>> maps = userShiftService.mothUserShift(DateUtils.formatDate(userShift.getShiftDate()),pageNo,pageSize,mySubDepIdsByDepId,userids,type);
         return Result.OK(maps);
     }
+
+
+    @GetMapping(value = "/queryRuleByUser")
+    public Result<?> queryRuleByUser(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                     @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                     HttpServletRequest req, SysUser user) throws ParseException {
+        List<String>deptids=null;
+        Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
+        if (user.getDepartIds()!=null&&!user.getDepartIds().equals("")){
+            deptids=new ArrayList<>();
+            String[] split = user.getDepartIds().split(",");
+            for (String id:split){
+                deptids.add(id);
+            }
+
+        }
+        Page<SysUser> sysUserPage = sysUserService.deptUser(page, user.getUsername(), deptids, user.getSex(), user.getRealname(), user.getPhone(), null);
+        List<String> userIds = sysUserPage.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
+        if(userIds!=null && userIds.size()>0){
+            Map<String,String>  useDepNames = sysUserService.getDepNamesByUserIds(userIds);
+            sysUserPage.getRecords().forEach(item->{
+                item.setOrgCodeTxt(useDepNames.get(item.getId()));
+                List<String> orgName = sysUserService.getOrgName(item.getId());
+                if (orgName!=null&&orgName.size()>0){
+                    item.setOrgText(sysUserService.getOrgName(item.getId()).get(0));
+                }
+            });
+        }
+        return Result.OK(sysUserPage);
+    }
 }