Browse Source

工时管理用户分组管理

Min 9 months ago
parent
commit
906c95183b

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java

@@ -113,6 +113,8 @@ public class UserController {
     private UserMapper userMapper;
     @Resource
     private UserCertMapper userCertMapper;
+    @Resource
+    private UserGroupMapper userGroupMapper;
 
     public static HashMap<String, Integer> corpddJobCenter = new HashMap();
     //用于控制线程锁
@@ -996,5 +998,21 @@ public class UserController {
         return msg;
     }
 
+    @RequestMapping("/batchSetUserGroup")
+    public HttpRespMsg batchSetUserGroup(String userIds,Integer groupId){
+        HttpRespMsg msg=new HttpRespMsg();
+        if(!StringUtils.isEmpty(userIds)){
+            List<String> list = Arrays.asList(userIds.split(","));
+            List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().in(User::getId, list));
+            userList.forEach(u->{
+                u.setUserGroupId(groupId);
+            });
+            if(!userService.updateBatchById(userList)){
+                msg.setError("验证失败");
+            }
+        }
+        return msg;
+    }
+
 }
 

+ 87 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserGroupController.java

@@ -0,0 +1,87 @@
+package com.management.platform.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.management.platform.entity.User;
+import com.management.platform.entity.UserGroup;
+import com.management.platform.mapper.UserGroupMapper;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.UserGroupService;
+import com.management.platform.service.UserService;
+import com.management.platform.util.HttpRespMsg;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-07-29
+ */
+@RestController
+@RequestMapping("/user-group")
+@RequiredArgsConstructor
+public class UserGroupController {
+
+    private final UserGroupService userGroupService;
+    private final UserMapper userMapper;
+    private final HttpServletRequest request;
+    private final UserService userService;
+
+
+    @RequestMapping("/addOrUpdate")
+    public HttpRespMsg addOrUpdate(UserGroup userGroup){
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        userGroup.setCompanyId(companyId);
+        Integer count;
+        if(userGroup.getId()==null){
+            count=userGroupService.count(new LambdaQueryWrapper<UserGroup>().eq(UserGroup::getCompanyId,companyId).eq(UserGroup::getGroupName,userGroup.getGroupName()));
+        }else {
+            count=userGroupService.count(new LambdaQueryWrapper<UserGroup>().ne(UserGroup::getId,userGroup.getId()).eq(UserGroup::getCompanyId,companyId).eq(UserGroup::getGroupName,userGroup.getGroupName()));
+        }
+        if(count>0){
+            msg.setError("分组:"+userGroup.getGroupName()+"已存在");
+            return msg;
+        }
+        userGroupService.saveOrUpdate(userGroup);
+        return msg;
+    }
+
+    @RequestMapping("/delete")
+    public HttpRespMsg delete(Integer id){
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer count = userMapper.selectCount(new LambdaQueryWrapper<User>().eq(User::getUserGroupId, id));
+        if(count>0){
+            msg.setError("存在处于当前分组的人员,无法删除");
+            return msg;
+        }
+        if(!userGroupService.removeById(id)){
+            msg.setError("验证失败");
+        }
+        return msg;
+    }
+
+    @RequestMapping("/list")
+    public HttpRespMsg list(){
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        LambdaQueryWrapper<UserGroup> wrapper = new LambdaQueryWrapper<UserGroup>().eq(UserGroup::getCompanyId, companyId);
+        List<UserGroup> list = userGroupService.list(wrapper);
+        msg.setData(list);
+        return msg;
+    }
+
+}
+

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/User.java

@@ -296,6 +296,12 @@ public class User extends Model<User> {
     @TableField("only_audit_once")
     private Integer onlyAuditOnce;
 
+    /**
+     * 人员所属分组
+     */
+    @TableField("user_group_id")
+    private Integer userGroupId;
+
     @TableField(exist = false)
     private List<Department> userReportDeptList;
 

+ 54 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/UserGroup.java

@@ -0,0 +1,54 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-07-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class UserGroup extends Model<UserGroup> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 分组名称
+     */
+    @TableField("group_name")
+    private String groupName;
+
+    /**
+     * 非项目工时占比
+     */
+    @TableField("no_project_percent")
+    private Integer noProjectPercent;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/UserGroupMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.UserGroup;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-07-29
+ */
+public interface UserGroupMapper extends BaseMapper<UserGroup> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserGroupService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.UserGroup;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-07-29
+ */
+public interface UserGroupService extends IService<UserGroup> {
+
+}

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserGroupServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.UserGroup;
+import com.management.platform.mapper.UserGroupMapper;
+import com.management.platform.service.UserGroupService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-07-29
+ */
+@Service
+public class UserGroupServiceImpl extends ServiceImpl<UserGroupMapper, UserGroup> implements UserGroupService {
+
+}

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserGroupMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.UserGroupMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.UserGroup">
+        <id column="id" property="id" />
+        <result column="company_id" property="companyId" />
+        <result column="group_name" property="groupName" />
+        <result column="no_project_percent" property="noProjectPercent" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, company_id, group_name, no_project_percent
+    </sql>
+
+</mapper>

File diff suppressed because it is too large
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserMapper.xml