diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysUser.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysUser.java index cb10d16..4f0499a 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysUser.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysUser.java @@ -166,4 +166,16 @@ public class SysUser extends BaseEntity { * 采集时间 */ private String collectionTime; + + + /** + * 是否参加考勤 1是 0不是 + */ + private String isAttend; + + /** + * 角色类型 1:人资专员和管理员;2:考勤员 + */ + private String roleType; + private String orgListId; } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttendanceDetailsController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttendanceDetailsController.java index 1eea790..f46e824 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttendanceDetailsController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttendanceDetailsController.java @@ -6,6 +6,7 @@ import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.log.annotation.Log; import com.bonus.common.log.enums.BusinessType; import com.bonus.common.security.annotation.RequiresPermissions; +import com.bonus.system.api.domain.SysUser; import com.bonus.system.att.entity.AttDataDetailsBean; import com.bonus.system.att.entity.AttDayReportBean; import com.bonus.system.att.entity.AttMonthReportBean; @@ -13,6 +14,7 @@ import com.bonus.system.att.service.AttendanceDetailsService; import com.bonus.system.basic.domain.SysOrg; import com.bonus.system.basic.service.SysOrgService; import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -211,5 +213,13 @@ public class AttendanceDetailsController extends BaseController { return getDataTableError(new ArrayList<>()); } + /** + * 用户新增 + */ + @PostMapping("/synchronous") + @Log(title = "考勤报表-> 考勤明细->数据同步", businessType = BusinessType.INSERT) + public AjaxResult synchronous(@Validated @RequestBody AttDataDetailsBean bean) { + return attendanceDetailsService.synchronous(bean); + } } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java index a802437..9e8f411 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java @@ -1,5 +1,6 @@ package com.bonus.system.att.service; +import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.system.att.entity.AttDataDetailsBean; import com.bonus.system.att.entity.AttDayReportBean; import com.bonus.system.att.entity.AttMonthReportBean; @@ -96,4 +97,6 @@ public interface AttendanceDetailsService { List getAttDayReportDetailsList(AttDataDetailsBean bean); List getOutCountList(AttDataDetailsBean bean); + + AjaxResult synchronous(AttDataDetailsBean bean); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java index 6c1128c..7211727 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java @@ -2,15 +2,18 @@ package com.bonus.system.att.service; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.system.api.domain.MapVo; import com.bonus.system.att.dao.AttendanceDetailsDao; import com.bonus.system.att.entity.AttDataDetailsBean; import com.bonus.system.att.entity.AttDayReportBean; import com.bonus.system.att.entity.AttMonthReportBean; +import com.bonus.system.att.tasks.AttTasks; import com.bonus.system.basic.domain.SysNotice; import com.bonus.system.basic.service.SysNoticeService; import com.bonus.system.dept.dao.ProDeptRoleDao; +import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -24,6 +27,7 @@ import java.util.stream.Collectors; * @author zys */ @Service("attendanceDetailsService") +@Log4j2 public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { @Resource(name = "attendanceDetailsDao") @@ -32,6 +36,9 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { @Resource(name = "ProDeptRoleDao") private ProDeptRoleDao proDeptRoleDao; + @Resource + private AttTasks attTasks; + /** * 消息推送库表 */ @@ -164,6 +171,18 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { return attendanceDetailsDao.getOutCountList(bean); } + @Override + public AjaxResult synchronous(AttDataDetailsBean bean) { + try { + List dateList = attTasks.getStrDateListBetween(bean.getStartDate(), bean.getEndDate()); + attTasks.hisAttPush(dateList); + return AjaxResult.success("数据同步成功"); + }catch (Exception e){ + log.error(e.toString(),e); + return AjaxResult.error("数据同步失败"); + } + } + public List getAttDayReportListAll(List list) { List allList = new ArrayList<>(); Map map = list.stream() diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/AttTasks.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/AttTasks.java index a899e96..8cfe5c0 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/AttTasks.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/AttTasks.java @@ -100,7 +100,7 @@ public class AttTasks { log.info("--------考勤定时器完毕------"); } - private void hisAttPush(List dateList) { + public void hisAttPush(List dateList) { // 创建固定大小的线程池 ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE); // 分批处理日期列表 diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysOrgController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysOrgController.java index a41423b..1822ac9 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysOrgController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysOrgController.java @@ -178,4 +178,20 @@ public class SysOrgController extends BaseController return error("系统异常"); } + /** + * 获取组织列表下拉树 + */ + + @GetMapping("/listTree") + @Log(title = "系统管理->组织管理->下拉树", businessType = BusinessType.QUERY) + public AjaxResult listTree(SysOrg sysOrg) { + try{ + List org = sysOrgService.selectOrgList(sysOrg); + return success(org); + }catch (Exception e){ + log.error(e.toString(),e); + } + return error("系统异常"); + } + } \ No newline at end of file diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java index aa35001..aca7082 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysUserController.java @@ -9,11 +9,14 @@ import com.bonus.common.log.enums.BusinessType; import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.system.api.domain.MapVo; +import com.bonus.system.api.domain.SysRole; import com.bonus.system.api.domain.SysUser; import com.bonus.system.att.tasks.WechatTasks; +import com.bonus.system.basic.dao.SysUserMapper; import com.bonus.system.basic.service.SysMenuService; import com.bonus.system.basic.service.SysUserService; import com.bonus.system.dept.entity.ProDeptRoleDo; +import com.bonus.system.holiday.dao.WorkReportDao; import org.apache.commons.lang3.StringUtils; import org.apache.poi.util.IOUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -53,6 +56,12 @@ public class SysUserController extends BaseController { @Autowired private WechatTasks wechatTasks; + @Resource(name = "WorkReportDao") + private WorkReportDao dao; + + @Resource + private SysUserMapper userMapper; + @RequiresPermissions("system:user:list") @GetMapping("/list") @@ -61,6 +70,30 @@ public class SysUserController extends BaseController { try{ // List list = userService.selectUserList(bean); // return endPage(list); + //根据登录账号获取角色 + //不是管理员,只能查自己 + Long userId = SecurityUtils.getUserId(); + List sysRoleList = dao.getRoleListByUserId(userId); + int roleCount = 0; + if(!sysRoleList.isEmpty()){ + for (SysRole sysRole : sysRoleList) { + if(sysRole.getRoleName().contains("管理员")){ + roleCount = 1; + break; + }else if(sysRole.getRoleName().contains("人资专员")){ + roleCount = 1; + break; + }else if(sysRole.getRoleName().contains("考勤员")){ + roleCount = 2; + break; + } + } + } + if(roleCount==2){ + String ids = userMapper.getOrg(userId); + bean.setRoleType("2"); + bean.setOrgListId(ids); + } startPage(); List list = userService.selectUserList(bean); return getDataTable(list); diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java index a2b458e..726b84d 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java @@ -228,4 +228,6 @@ public interface SysUserMapper void updateAttOrgByUserId(OrgChangeBean item); List getRoleListById(SysUser user); + + String getOrg(Long userId); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/evection/entity/EvectionBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/evection/entity/EvectionBean.java index 407bb75..4904bdf 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/evection/entity/EvectionBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/evection/entity/EvectionBean.java @@ -148,6 +148,16 @@ public class EvectionBean extends BaseBean { */ private String isAgree; + /** + * 是否省外 1 是 0 否 + */ + private String isOutside; + + /** + * 是否西藏 1 是 0 否 + */ + private String isXizang; + /** * 代理主持工作人员(多个自动隔开) */ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/entity/WechatEvectionBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/entity/WechatEvectionBean.java index f74affc..d1a7a6f 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/entity/WechatEvectionBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/wechat/entity/WechatEvectionBean.java @@ -134,6 +134,16 @@ public class WechatEvectionBean extends BaseBean { */ private String isAgree; + /** + * 是否省外 1 是 0 否 + */ + private String isOutside; + + /** + * 是否西藏 1 是 0 否 + */ + private String isXizang; + /** * 备注 */ diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml index 5ad063e..ade5f88 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml @@ -1,307 +1,309 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - insert into sys_user( - user_name, - phone, - id_number, - password, - create_user_id, - is_cadre, - create_time - )values( - #{userName}, - #{phone}, - #{idNumber}, - #{password}, - #{createBy}, - #{isCadre}, - sysdate() - ) - + + insert into sys_user( + user_name, + phone, + id_number, + password, + create_user_id, + is_cadre, + create_time + )values( + #{userName}, + #{phone}, + #{idNumber}, + #{password}, + #{createBy}, + #{isCadre}, + sysdate() + ) + - - insert into sys_user_post(user_id, post_id) values - - (#{item.userId},#{item.postId}) - - - - insert into sys_user_role(user_id, role_id) values - - (#{item.userId},#{item.roleId}) - - - - insert into sys_user_org(user_id, org_id) values - - (#{item.userId},#{item.orgId}) - - - - delete from sys_user_org where user_id = #{userId} - - - delete from sys_user_post where user_id = #{userId} - - - delete from sys_user_role where user_id = #{userId} - - - update sys_user - set is_active = 0 - where user_id = #{userId} - - - update sys_user - - user_name = #{userName}, - phone = #{phone}, - id_number = #{idNumber}, - password = #{password}, - update_user_id = #{updateBy}, - is_cadre = #{isCadre}, - update_time = sysdate() - - where user_id = #{userId} - + + insert into sys_user_post(user_id, post_id) values + + (#{item.userId},#{item.postId}) + + + + insert into sys_user_role(user_id, role_id) values + + (#{item.userId},#{item.roleId}) + + + + insert into sys_user_org(user_id, org_id) values + + (#{item.userId},#{item.orgId}) + + + + delete + from sys_user_org + where user_id = #{userId} + + + delete + from sys_user_post + where user_id = #{userId} + + + delete + from sys_user_role + where user_id = #{userId} + + + update sys_user + set is_active = 0 + where user_id = #{userId} + + + update sys_user + + user_name = #{userName}, + phone = #{phone}, + id_number = #{idNumber}, + password = #{password}, + update_user_id = #{updateBy}, + is_cadre = #{isCadre}, + update_time = sysdate() + + where user_id = #{userId} + - - update sys_user set is_face = #{isFace} where user_id = #{userId} - + + update sys_user + set is_face = #{isFace} + where user_id = #{userId} + - - - UPDATE sys_user_face SET - `is_check` = #{isCheck}, - `examine_opinion` = #{examineOpinion} - WHERE `user_id` = #{userId}; - - update sys_user set is_face = 1 where user_id = #{userId}; - update sys_user set is_face = 0 where user_id = #{userId}; - - - - update att_group_person_relation set org_id = #{newOrgId} where user_id = #{userId} and org_id = #{oldOrgId}; - + + + UPDATE sys_user_face SET + `is_check` = #{isCheck}, + `examine_opinion` = #{examineOpinion} + WHERE `user_id` = #{userId}; + + update sys_user set is_face = 1 where user_id = #{userId}; + update sys_user set is_face = 0 where user_id = #{userId}; + + + + update att_group_person_relation + set org_id = #{newOrgId} + where user_id = #{userId} + and org_id = #{oldOrgId}; + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + - - + SELECT ag.id, + ag.group_name AS `name` + FROM att_group_person_relation agpr + LEFT JOIN att_group ag ON agpr.group_id = ag.id + AND ag.is_active = '1' + WHERE agpr.user_id = #{userId} + and agpr.is_active = '1' + and ag.id is not null LIMIT 1 + + + + select role_id + from sys_user_role + where user_id = #{userId} + + + \ No newline at end of file diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/evection/EvectionMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/evection/EvectionMapper.xml index 23b7d9c..17229c3 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/evection/EvectionMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/evection/EvectionMapper.xml @@ -8,11 +8,11 @@ INSERT INTO leave_apply(user_id, user_name, org_id, org_name, leave_type, leave_reason, leave_start_date, leave_start_interval, leave_end_date, leave_end_interval, leave_duration, source, create_user_id, is_agree, location, host_user_id,host_user_name, remark - , leave_form_id, submit_id,examine_status) + , leave_form_id, submit_id,examine_status,is_outside,is_xizang) VALUES (#{userId}, #{userName}, #{orgId}, #{orgName}, '出差报备', #{leaveReason}, #{leaveStartDate}, #{leaveStartInterval}, #{leaveEndDate}, #{leaveEndInterval}, #{leaveDuration}, #{source}, #{createUserId}, #{isAgree}, #{location}, #{hostUserId},#{hostUserName}, #{remark}, - #{uuid}, #{createUserId},'1') + #{uuid}, #{createUserId},'1',#{isOutside},#{isXizang}) @@ -156,7 +156,9 @@ l.host_user_name, l.is_agree, l.location, - l.remark + l.remark, + l.is_outside, + l.is_xizang FROM leave_apply l LEFT JOIN sys_user_post p ON p.user_id = l.user_id LEFT JOIN sys_dict_data d on d.dict_code = p.post_id @@ -181,7 +183,9 @@ l.host_user_id, l.is_agree, l.location, - l.remark + l.remark, + l.is_outside, + l.is_xizang ORDER BY l.update_time DESC) a LEFT JOIN sys_user su ON su.user_id = a.submit_id GROUP BY uuid diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/holiday/WorkReportMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/holiday/WorkReportMapper.xml index 1a687c4..3e48d89 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/holiday/WorkReportMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/holiday/WorkReportMapper.xml @@ -231,7 +231,7 @@ sys_user_role sur LEFT JOIN sys_role sr on sr.role_id=sur.role_id and sr.del_flag=0 WHERE - sur.is_active=1 + sur.is_active=1 and sr.del_flag=0 and sur.user_id=#{userId}