Bläddra i källkod

花名册同步子系统

lizhenhao 1 år sedan
förälder
incheckning
6ac254f1f1

+ 23 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/controller/RosterBaseController.java

@@ -61,6 +61,7 @@ import javax.validation.Valid;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Api("花名册")
@@ -128,12 +129,23 @@ public class RosterBaseController {
     @ApiLog(value = "删除花名册", type = LogTypeEnum.SAVE)
     @PreAuthorize ("hasAuthority('roster:base:del')")
     @DeleteMapping("delete")
-    public ResponseEntity delete(String ids,HttpServletRequest request) {
+    public ResponseEntity delete(String ids) {
         String idArray[] =ids.split(",");
         return rosterBaseService.removeByRosterIds (idArray);
     }
 
     /**
+     * 删除花名册
+     * @param rosterId
+     * @return
+     */
+    @ApiLog(value = "删除花名册", type = LogTypeEnum.SAVE)
+    @GetMapping("removeByRosterId")
+    public ResponseEntity removeByRosterId(@RequestParam("rosterId") String rosterId, @RequestParam("userId") String userId) {
+        return rosterBaseService.removeByRosterId (rosterId, userId);
+    }
+
+    /**
      * 上传文件
      * @return
      * @throws IOException
@@ -220,4 +232,14 @@ public class RosterBaseController {
 
     }
 
+    @PostMapping("saveOrUpdateUserRoster")
+    public Map<String,Object> saveOrUpdateUserRoster(@RequestBody RosterBase rosterBase) {
+        return rosterBaseService.saveOrUpdateUserRoster(rosterBase);
+    }
+
+    @PostMapping("deleteUserRoster")
+    public Map<String,Object> deleteUserRoster(@RequestBody RosterBase rosterBase) {
+        return rosterBaseService.deleteUserRoster(rosterBase);
+    }
+
 }

+ 12 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/domain/RosterBase.java

@@ -238,6 +238,18 @@ public class RosterBase extends BaseEntity {
     @TableField(exist = false)
     private String companyId;
 
+    /**
+     * 用户id
+     */
+    @TableField(exist = false)
+    private String userId;
+
+    /**
+     * 密码
+     */
+    @TableField(exist = false)
+    private String newPassword;
+
 
     private static final long serialVersionUID = 1L;
 }

+ 2 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/RosterBaseMapper.java

@@ -17,4 +17,6 @@ public interface RosterBaseMapper extends BaseMapper<RosterBase> {
     public IPage<RosterBaseDTO> findList(Page<RosterBaseDTO> page, @Param(Constants.WRAPPER)QueryWrapper<RosterBase> queryWrapper);
 
     public RosterBaseDTO queryById(@Param("id") String id);
+
+    void deleteByIdPhysical(@Param("id") String id);
 }

+ 4 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterBaseMapper.xml

@@ -340,4 +340,8 @@
     where rb.id = #{id}
   </select>
 
+  <delete id="deleteByIdPhysical">
+    delete from roster_base where id = #{id}
+  </delete>
+
 </mapper>

+ 93 - 16
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterBaseService.java

@@ -41,11 +41,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.jeeplus.test.jobPosion.utils.BeanUtils.objectCheckIsNull;
@@ -664,24 +664,48 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
     }
 
     public ResponseEntity removeByRosterIds(String[] ids) {
+        List<String> rosterIds = Arrays.asList(ids);
         // 删除花名册数据
-        this.removeByIds(Arrays.asList(ids));
-        // 删除花名册关联用户数据
-        // 员工切换为游客、花名册直接删除   这两种情况都要删除用户信息以及用户关联的角色等信息
-        userService.remove(new QueryWrapper<User>().lambda().in(User::getRosterId, ids));
-        Arrays.asList(ids).stream().forEach(item -> {
-            UserDTO u = new UserDTO();
-            u.setId(item);
-            // 删除用户关联的管理部门信息
-            userMapper.deleteUserManageOffice(u);  //  根据用户id删除用户的管理部门信息
-            // 删除用户关联的岗位信息
-            userMapper.deleteUserPost(item);
-            // 删除用户关联的角色信息
-            userMapper.deleteUserRole(item);
+        this.removeByIds(rosterIds);
+        // 删除花名册关联用户数据。删除用户信息以及用户关联的角色等信息
+        rosterIds.stream().forEach(rosterId -> {
+            // 通过花名册id查询用户
+            User u = userService.getOne(new QueryWrapper<User>().lambda().eq(User::getRosterId, rosterId));
+            if (ObjectUtil.isNotEmpty(u)) {
+                // 通过花名册id删除用户
+                userService.removeById(u.getId());
+                UserDTO userDTO = new UserDTO();
+                userDTO.setId(u.getId());
+                // 删除用户关联的管理部门信息
+                userMapper.deleteUserManageOffice(userDTO);  //  根据用户id删除用户的管理部门信息
+                // 删除用户关联的岗位信息
+                userMapper.deleteUserPost(u.getId());
+                // 删除用户关联的角色信息
+                userMapper.deleteUserRole(u.getId());
+            }
         });
         return ResponseEntity.ok ("删除花名册成功");
     }
 
+    // 根据花名册id删除
+    public ResponseEntity removeByRosterId(String rosterId, String userId) {
+        // 删除花名册信息,物理删除
+        rosterBaseMapper.deleteByIdPhysical(rosterId);
+        // 删除用户信息,物理删除
+        userService.removeByIdPhysical(userId);
+        UserDTO userDTO = new UserDTO();
+        userDTO.setId(userId);
+        // 删除用户关联的管理部门信息
+        userMapper.deleteUserManageOffice(userDTO);  //  根据用户id删除用户的管理部门信息
+        // 删除用户关联的岗位信息
+        userMapper.deleteUserPost(userId);
+        // 删除用户关联的角色信息
+        userMapper.deleteUserRole(userId);
+        Map<String,Object> res = new HashMap<>();
+        res.put("success", true);
+        return ResponseEntity.ok (res);
+    }
+
     public RosterBaseDTO deleteRosterWorker (RosterBaseDTO rosterBaseDTO) {
 //        删除原数据关联表的数据
         rosterBaseDTO.setRosterContractDTO(null);  // 删除合同信息
@@ -757,4 +781,57 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
         this.update(wrapper);
         return rosterBaseDTO;
     }
+
+    public Map<String,Object> saveOrUpdateUserRoster(RosterBase rosterBase) {
+        Map<String,Object> resultMap = new HashMap<String,Object>();
+        if (ObjectUtil.isNotEmpty(rosterBase) && StringUtils.isNotBlank(rosterBase.getUserId())) {
+            // 保存或修改花名册信息
+            this.saveOrUpdate(rosterBase);
+            // 保存或修改用户信息
+            User u = userService.getById(rosterBase.getUserId());
+            User user = new User();
+            user.setId(rosterBase.getUserId()); // 用户id
+            user.setName(rosterBase.getName()); // 用户姓名
+            user.setLoginName(rosterBase.getName()); // 登录账号
+            user.setMobile(rosterBase.getMobile()); // 手机号
+            user.setOfficeId(rosterBase.getOfficeId()); // 所属部门id
+            if (ObjectUtil.isNotEmpty(u) && StringUtils.isNotBlank(u.getId())) {
+                if (StringUtils.isNotBlank(rosterBase.getNewPassword())) {
+                    user.setPassword(SecurityUtils.encryptPassword(rosterBase.getNewPassword())); // 密码
+                }
+                // 用户修改
+                userService.updateUser(user);
+            } else {
+                if (StringUtils.isNotBlank(rosterBase.getNewPassword())) {
+                    user.setPassword(SecurityUtils.encryptPassword(rosterBase.getNewPassword())); // 密码
+                } else {
+                    user.setPassword(SecurityUtils.encryptPassword("123456")); // 密码
+                }
+                // 用户新增
+                userService.save(user);
+            }
+            resultMap.put("success", true);
+            resultMap.put("message","保存成功");
+        } else {
+            resultMap.put("success", false);
+            resultMap.put("message","保存失败");
+        }
+        return resultMap;
+    }
+
+    public Map<String,Object> deleteUserRoster(RosterBase rosterBase) {
+        Map<String,Object> resultMap = new HashMap<String,Object>();
+        if (ObjectUtil.isNotEmpty(rosterBase) && StringUtils.isNotBlank(rosterBase.getUserId())) {
+            // 删除花名册信息,必须是物理删除!!!
+            rosterBaseMapper.deleteByIdPhysical(rosterBase.getId());
+            // 删除用户信息,必须是物理删除!!!
+            userService.removeByIdPhysical(rosterBase.getUserId());
+            resultMap.put("success", true);
+            resultMap.put("message","删除成功");
+        } else {
+            resultMap.put("success", false);
+            resultMap.put("message","删除失败");
+        }
+        return resultMap;
+    }
 }

+ 7 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.sys.service.dto.OfficeDTO;
 import com.jeeplus.sys.service.dto.PostDTO;
@@ -234,4 +235,10 @@ public interface UserMapper extends BaseMapper<User> {
      * @param filePath
      */
     void updateAvatarById(String userId,String filePath);
+
+    void updateUser(@Param("user") User user);
+
+    void insertUser(@Param("user") User user);
+
+    void removeByIdPhysical(@Param("id") String id);
 }

+ 15 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -404,4 +404,19 @@
 	<update id="updateAvatarById">
 		update sys_user set photo = #{filePath} where id = #{userId}
 	</update>
+
+	<update id="updateUser">
+		update sys_user set
+		office_id = #{user.officeId},login_name = #{user.loginName},name = #{user.name},mobile = #{user.mobile},password = #{user.password}
+		where id = #{user.id}
+	</update>
+
+	<insert id="insertUser">
+		insert into sys_user(id,office_id,login_name,name,mobile,password)
+		values(#{user.id},#{user.officeId},#{user.loginName},#{user.name},#{user.mobile},#{user.password})
+	</insert>
+
+	<delete id="removeByIdPhysical">
+		delete from sys_user where id = #{id}
+	</delete>
 </mapper>

+ 10 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -580,4 +580,14 @@ public class UserService  extends ServiceImpl<UserMapper, User> {
 	public void updateAvatarById(String userId,String filePath) {
 		userMapper.updateAvatarById(userId, filePath);
 	}
+
+	public void updateUser(User user){
+		userMapper.updateUser(user);
+	}
+	public void insertUser(User user){
+		userMapper.insertUser(user);
+	}
+	public void removeByIdPhysical(String userId){
+		userMapper.removeByIdPhysical(userId);
+	}
 }