|  | @@ -5,10 +5,13 @@ import cn.hutool.core.util.RandomUtil;
 | 
	
		
			
				|  |  |  import com.alibaba.fastjson.JSON;
 | 
	
		
			
				|  |  |  import com.alibaba.fastjson.JSONArray;
 | 
	
		
			
				|  |  |  import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.metadata.OrderItem;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
	
		
			
				|  |  |  import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  |  import lombok.extern.slf4j.Slf4j;
 | 
	
	
		
			
				|  | @@ -313,9 +316,35 @@ public class SysUserController {
 | 
	
		
			
				|  |  |  									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
 | 
	
		
			
				|  |  |  		Result<IPage<SysUser>> result = new Result<IPage<SysUser>>();
 | 
	
		
			
				|  |  |  		QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
 | 
	
		
			
				|  |  | -    	//TODO 外部模拟登陆临时账号,列表不显示
 | 
	
		
			
				|  |  | +        Map<String, String[]> parameterMap = req.getParameterMap();
 | 
	
		
			
				|  |  | +        List<OrderItem>orderItems=new ArrayList<>();
 | 
	
		
			
				|  |  | +        if (queryWrapper.getExpression().getOrderBy()!=null&&queryWrapper.getExpression().getOrderBy().size()>0){
 | 
	
		
			
				|  |  | +            String[] s = queryWrapper.getExpression().getOrderBy().get(0).getSqlSegment().split(" ");
 | 
	
		
			
				|  |  | +            OrderItem orderItem=new OrderItem();
 | 
	
		
			
				|  |  | +            orderItem.setColumn(s[0]);
 | 
	
		
			
				|  |  | +            orderItem.setAsc(true);
 | 
	
		
			
				|  |  | +            if (s[1].equals("DESC")){
 | 
	
		
			
				|  |  | +                orderItem.setAsc(false);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            orderItems.add(orderItem);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        String rzStartDate="";
 | 
	
		
			
				|  |  | +        String rzEndDate="";
 | 
	
		
			
				|  |  | +        String syStartDate="";
 | 
	
		
			
				|  |  | +        String syEndDate="";
 | 
	
		
			
				|  |  | +        if (oConvertUtils.isNotEmpty(user.getRzDate())&&!user.getRzDate().equals(",")){
 | 
	
		
			
				|  |  | +            String[] split = user.getRzDate().split(",");
 | 
	
		
			
				|  |  | +            rzStartDate=split[0];
 | 
	
		
			
				|  |  | +            rzEndDate=split[1];
 | 
	
		
			
				|  |  | +        }if (oConvertUtils.isNotEmpty(user.getSyDate())&&!user.getSyDate().equals(",")){
 | 
	
		
			
				|  |  | +            String[] split = user.getSyDate().split(",");
 | 
	
		
			
				|  |  | +            syStartDate=split[0];
 | 
	
		
			
				|  |  | +            syEndDate=split[1];
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //TODO 外部模拟登陆临时账号,列表不显示
 | 
	
		
			
				|  |  |          queryWrapper.ne("username","_reserve_user_external");
 | 
	
		
			
				|  |  |          Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
 | 
	
		
			
				|  |  | +        page.setOrders(orderItems);
 | 
	
		
			
				|  |  |          String deptids="";
 | 
	
		
			
				|  |  |          String state="0";
 | 
	
		
			
				|  |  |          List<String> mySubDepIdsByDepId=null;
 | 
	
	
		
			
				|  | @@ -345,7 +374,7 @@ public class SysUserController {
 | 
	
		
			
				|  |  |          }if(oConvertUtils.isNotEmpty(user.getWorkNo())){
 | 
	
		
			
				|  |  |              user.setWorkNo(user.getWorkNo().trim());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        Page<SysUser> pageList = sysUserService.kQueryUser(page, user,subDepIdsByDepId,mySubDepIdsByDepId,status,category);
 | 
	
		
			
				|  |  | +        Page<SysUser> pageList = sysUserService.kQueryUser(page, user,subDepIdsByDepId,mySubDepIdsByDepId,status,category,rzStartDate,rzEndDate,syStartDate,syEndDate);
 | 
	
		
			
				|  |  |          //批量查询用户的所属部门
 | 
	
		
			
				|  |  |          //step.1 先拿到全部的 useids
 | 
	
		
			
				|  |  |          //step.2 通过 useids,一次性查询用户的所属部门名字
 | 
	
	
		
			
				|  | @@ -379,12 +408,17 @@ public class SysUserController {
 | 
	
		
			
				|  |  |                      List<SysDepart> sysDeparts = sysDepartService.listDeptTop(codes);
 | 
	
		
			
				|  |  |                      if (sysDeparts!=null&&sysDeparts.size()>0){
 | 
	
		
			
				|  |  |                          sysDeparts.forEach(str->{
 | 
	
		
			
				|  |  | -                            if (str.getOrgType().equals("1")){
 | 
	
		
			
				|  |  | +                            if(sysDeparts.size()>1) {
 | 
	
		
			
				|  |  | +                                if (str.getOrgType().equals("1")) {
 | 
	
		
			
				|  |  | +                                    item.setDel2(str.getDepartName());
 | 
	
		
			
				|  |  | +                                } else if (str.getOrgType().equals("2")) {
 | 
	
		
			
				|  |  | +                                    item.setDel3(str.getDepartName());
 | 
	
		
			
				|  |  | +                                } else if (str.getOrgType().equals("3")) {
 | 
	
		
			
				|  |  | +                                    item.setDel4(str.getDepartName());
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }else {
 | 
	
		
			
				|  |  |                                  item.setDel2(str.getDepartName());
 | 
	
		
			
				|  |  | -                            }else if (str.getOrgType().equals("2")){
 | 
	
		
			
				|  |  |                                  item.setDel3(str.getDepartName());
 | 
	
		
			
				|  |  | -                            }else if (str.getOrgType().equals("3")){
 | 
	
		
			
				|  |  | -                                item.setDel4(str.getDepartName());
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                          });
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -828,14 +862,39 @@ public class SysUserController {
 | 
	
		
			
				|  |  |                                    @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
 | 
	
		
			
				|  |  |          // Step.1 组装查询条件
 | 
	
		
			
				|  |  |          QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, request.getParameterMap());
 | 
	
		
			
				|  |  | +        List<OrderItem>orderItems=new ArrayList<>();
 | 
	
		
			
				|  |  | +        if (queryWrapper.getExpression().getOrderBy()!=null&&queryWrapper.getExpression().getOrderBy().size()>0){
 | 
	
		
			
				|  |  | +            String[] s = queryWrapper.getExpression().getOrderBy().get(0).getSqlSegment().split(" ");
 | 
	
		
			
				|  |  | +            OrderItem orderItem=new OrderItem();
 | 
	
		
			
				|  |  | +            orderItem.setColumn(s[0]);
 | 
	
		
			
				|  |  | +            orderItem.setAsc(true);
 | 
	
		
			
				|  |  | +            if (s[1].equals("DESC")){
 | 
	
		
			
				|  |  | +                orderItem.setAsc(false);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            orderItems.add(orderItem);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          //Step.2 AutoPoi 导出Excel
 | 
	
		
			
				|  |  |          ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
 | 
	
		
			
				|  |  |          Page<SysUser> page = new Page<SysUser>(1, 10000);
 | 
	
		
			
				|  |  | +        page.setOrders(orderItems);
 | 
	
		
			
				|  |  |          //update-begin--Author:kangxiaolin  Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据--------------------
 | 
	
		
			
				|  |  |          String selections = request.getParameter("selections");
 | 
	
		
			
				|  |  |         if(!oConvertUtils.isEmpty(selections)){
 | 
	
		
			
				|  |  |             queryWrapper.in("id",selections.split(","));
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | +        String rzStartDate="";
 | 
	
		
			
				|  |  | +        String rzEndDate="";
 | 
	
		
			
				|  |  | +        String syStartDate="";
 | 
	
		
			
				|  |  | +        String syEndDate="";
 | 
	
		
			
				|  |  | +        if (oConvertUtils.isNotEmpty(sysUser.getRzDate())){
 | 
	
		
			
				|  |  | +            String[] split = sysUser.getRzDate().split(",");
 | 
	
		
			
				|  |  | +            rzStartDate=split[0];
 | 
	
		
			
				|  |  | +            rzEndDate=split[1];
 | 
	
		
			
				|  |  | +        }if (oConvertUtils.isNotEmpty(sysUser.getSyDate())){
 | 
	
		
			
				|  |  | +            String[] split = sysUser.getSyDate().split(",");
 | 
	
		
			
				|  |  | +            syStartDate=split[0];
 | 
	
		
			
				|  |  | +            syEndDate=split[1];
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          List<String> mySubDepIdsByDepId=null;
 | 
	
		
			
				|  |  |          LoginUser sysUsers = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 | 
	
		
			
				|  |  |          List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, sysUsers.getId()));
 | 
	
	
		
			
				|  | @@ -860,7 +919,7 @@ public class SysUserController {
 | 
	
		
			
				|  |  |          }if (sysUser.getCategorys()!=null&&!"".equals(sysUser.getCategorys())){
 | 
	
		
			
				|  |  |              category=Arrays.asList(sysUser.getCategorys().toString().split(","));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        List<SysUser> pageList = sysUserMapper.kQueryUser(page, sysUser,subDepIdsByDepId,mySubDepIdsByDepId,status,category);
 | 
	
		
			
				|  |  | +        List<SysUser> pageList = sysUserMapper.kQueryUser(page, sysUser,subDepIdsByDepId,mySubDepIdsByDepId,status,category,rzStartDate,rzEndDate,syStartDate,syEndDate);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<String>userids=new ArrayList<>();
 | 
	
		
			
				|  |  |         if (pageList.size()>0){
 | 
	
	
		
			
				|  | @@ -1268,7 +1327,7 @@ public class SysUserController {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    /*@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
 | 
	
		
			
				|  |  | +   /* @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |      public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response)throws IOException {
 | 
	
		
			
				|  |  |          MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
 | 
	
		
			
				|  |  |          Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
 | 
	
	
		
			
				|  | @@ -1288,59 +1347,75 @@ public class SysUserController {
 | 
	
		
			
				|  |  |                  listSysUsers.remove(0);
 | 
	
		
			
				|  |  |                  for (int i = 0; i < listSysUsers.size(); i++) {
 | 
	
		
			
				|  |  |                      SysUser sysUserExcel = listSysUsers.get(i);
 | 
	
		
			
				|  |  | -                    int lineNumber = i + 1;
 | 
	
		
			
				|  |  | -                    if (sysUserExcel.getWorkNo().equals("100009")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setId("100009");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getWorkNo().equals("100024")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setId("Alice.guo");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getWorkNo().equals("100025")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setId("eva.zheng");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getWorkNo().equals("100027")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setId("kerr.zou");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getWorkNo().equals("100059")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setId("100059");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getWorkNo().equals("100134")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setId("100134");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getWorkNo().equals("100135")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setId("100135");
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    //sysUserExcel.setId(sysUserExcel.getWorkNo());
 | 
	
		
			
				|  |  | -                    if (sysUserExcel.getSfzType().equals("其他")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setSfzType("1");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getSfzType().equals("中国身份证")){
 | 
	
		
			
				|  |  | +                    if(sysUserExcel.getSfzType().equals("中国身份证")){
 | 
	
		
			
				|  |  |                          sysUserExcel.setSfzType("0");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getIsAttendance().equals("是")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setIsAttendance("0");
 | 
	
		
			
				|  |  | -                    }if (sysUserExcel.getIsAttendance().equals("否")){
 | 
	
		
			
				|  |  | -                        sysUserExcel.setIsAttendance("1");
 | 
	
		
			
				|  |  | +                    }else {
 | 
	
		
			
				|  |  | +                        sysUserExcel.setSfzType("1");
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      try {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                       // sysUserService.updateById(sysUserExcel);
 | 
	
		
			
				|  |  | -                        if (sysUserExcel.getIsAttendance().equals("0")){
 | 
	
		
			
				|  |  | -                            AttendanceRule attendanceRule=new AttendanceRule();
 | 
	
		
			
				|  |  | -                            attendanceRule.setUserId(sysUserExcel.getId());
 | 
	
		
			
				|  |  | -                            attendanceRule.setType(sysUserExcel.getType());
 | 
	
		
			
				|  |  | -                            if (sysUserExcel.getType().equals("1")||sysUserExcel.getType().equals(1)){
 | 
	
		
			
				|  |  | -                                String str="2022-01-02 10:00:00";
 | 
	
		
			
				|  |  | -                                String end="2022-01-02 19:00:00";
 | 
	
		
			
				|  |  | -                                attendanceRule.setWorkDay("0,1,2,3,4,5,6");
 | 
	
		
			
				|  |  | -                                attendanceRule.setStartDate(DateUtils.parseDate(str,"yyyy-MM-dd HH:mm:ss"));
 | 
	
		
			
				|  |  | -                                attendanceRule.setEndDate(DateUtils.parseDate(end,"yyyy-MM-dd HH:mm:ss"));
 | 
	
		
			
				|  |  | +                        if (sysUserExcel.getWorkNo().equals("100024")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("Alice.guo");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100025")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("eva.zheng");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100206")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("gaines.guo");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100020")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("jack.wu");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100201")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("jacky.yao");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100068")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("Kayla.kang");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100027")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("kerr.zou");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100198")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("lisa.wang");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100015")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("mike.wang");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100202")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("owen.li");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100014")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("roy.zhu");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100023")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("Simon.zhang");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100054")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("vito.chen");
 | 
	
		
			
				|  |  | +                        }else if (sysUserExcel.getWorkNo().equals("100013")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId("yongqiang.zhang");
 | 
	
		
			
				|  |  | +                        }else {
 | 
	
		
			
				|  |  | +                            sysUserExcel.setId(sysUserExcel.getWorkNo());
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        String departLis = departMapper.getDepartLis(sysUserExcel.getOrgCodeTxt());
 | 
	
		
			
				|  |  | +                        sysUserExcel.setDepartIds(departLis);
 | 
	
		
			
				|  |  | +                        if (sysUserExcel.getIsAttendance().equals("是")){
 | 
	
		
			
				|  |  | +                            sysUserExcel.setIsAttendance("0");
 | 
	
		
			
				|  |  | +                        }else {
 | 
	
		
			
				|  |  | +                            sysUserExcel.setIsAttendance("1");
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        sysUserService.editUserWithDepart(sysUserExcel, departLis);
 | 
	
		
			
				|  |  | +                        sysUserService.updateById(sysUserExcel);
 | 
	
		
			
				|  |  | +                        if (sysUserExcel.getIsAttendance().equals("0")&&sysUserExcel.getType()!=null){
 | 
	
		
			
				|  |  | +                            AttendanceRule attendanceRule = attendanceRuleService.UserRule(sysUserExcel.getId());
 | 
	
		
			
				|  |  | +                            if (attendanceRule!=null){
 | 
	
		
			
				|  |  | +                                attendanceRuleService.removeById(attendanceRule.getId());
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  | -                            attendanceRuleService.save(attendanceRule);
 | 
	
		
			
				|  |  | +                            AttendanceRule attendanceRule1=new AttendanceRule();
 | 
	
		
			
				|  |  | +                            attendanceRule1.setType(sysUserExcel.getType());
 | 
	
		
			
				|  |  | +                            attendanceRule1.setUserId(sysUserExcel.getId());
 | 
	
		
			
				|  |  | +                            attendanceRuleService.save(attendanceRule1);
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                      } catch (Exception e) {
 | 
	
		
			
				|  |  |                          errorLines++;
 | 
	
		
			
				|  |  |                          String message = e.getMessage().toLowerCase();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          // 通过索引名判断出错信息
 | 
	
		
			
				|  |  |                          if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)) {
 | 
	
		
			
				|  |  | -                            errorMessage.add("第 " + lineNumber + " 行:用户名已经存在,忽略导入。");
 | 
	
		
			
				|  |  | +                            errorMessage.add("第 " + 1 + " 行:用户名已经存在,忽略导入。");
 | 
	
		
			
				|  |  |                          } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) {
 | 
	
		
			
				|  |  | -                            errorMessage.add("第 " + lineNumber + " 行:手机号已经存在,忽略导入。");
 | 
	
		
			
				|  |  | +                            errorMessage.add("第 " + 1 + " 行:手机号已经存在,忽略导入。");
 | 
	
		
			
				|  |  |                          } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) {
 | 
	
		
			
				|  |  | -                            errorMessage.add("第 " + lineNumber + " 行:电子邮件已经存在,忽略导入。");
 | 
	
		
			
				|  |  | +                            errorMessage.add("第 " + 1 + " 行:电子邮件已经存在,忽略导入。");
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |  
 |