Commit cd58819d authored by 李驰骋's avatar 李驰骋

Merge remote-tracking branch 'origin/dev' into dev

parents 8532b5ba f2635a8b
......@@ -12,12 +12,15 @@ import com.ximai.common.core.dto.SysUserExcelExport;
import com.ximai.common.core.dto.SysUserExcelImport;
import com.ximai.common.core.page.TableDataInfo;
import com.ximai.common.enums.BusinessType;
import com.ximai.common.utils.MessageUtils;
import com.ximai.common.utils.SecurityUtils;
import com.ximai.common.utils.data.ExceptionUtil;
import com.ximai.common.utils.data.StringUtils;
import com.ximai.common.utils.excel.ExcelWriter;
import com.ximai.system.service.ISysPostService;
import com.ximai.system.service.ISysRoleService;
import com.ximai.system.service.ISysUserService;
import com.ximai.web.request.CopyAllByUserIdRequest;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
......@@ -203,4 +206,29 @@ public class SysUserController extends BaseController {
userService.insertUserAuth(userId, roleIds);
return success();
}
/**
* 拷贝用户所有资源
*/
@PreAuthorize("@ss.hasPermi('system:user:edit')")
@Log(title = "用户管理", businessType = BusinessType.GRANT)
@PostMapping("/checkCopyAllByUserId")
public AjaxResult checkCopyAllByUserId( @RequestBody CopyAllByUserIdRequest copyAllByUserIdRequest) {
userService.checkCopyAllByUserId(copyAllByUserIdRequest.getCopiedUserId(),copyAllByUserIdRequest.getUserIds());
return success();
}
/**
* 拷贝用户所有资源
*/
@PreAuthorize("@ss.hasPermi('system:user:edit')")
@Log(title = "用户管理", businessType = BusinessType.GRANT)
@PostMapping("/copyAllByUserId")
public AjaxResult copyAllByUserId( @RequestBody CopyAllByUserIdRequest copyAllByUserIdRequest) {
userService.copyAllByUserId(copyAllByUserIdRequest.getCopiedUserId(),copyAllByUserIdRequest.getUserIds());
return success();
}
}
package com.ximai.web.request;
import lombok.Data;
import java.util.List;
@Data
public class CopyAllByUserIdRequest {
Long copiedUserId;
List<Long> userIds;
}
......@@ -226,4 +226,7 @@ rule.currentSerial.error= \u8BE5\u4EA7\u54C1\u5E8F\u5217\u53F7\u5269\u4F59:{0}\u
#\u5DE5\u4F5C\u5355\u5143\u7F16\u4E0D\u552F\u4E00
md.workUnit.error.workunitCode.unique = \u5DE5\u5355\u5355\u5143\u7F16\u7801\u5DF2\u5B58\u5728
#被删除数据已被使用错误
delete.data.error.occupied = \u8be5\u6570\u636e\u5df2\u7ecf\u88ab\u5173\u8054\u4f7f\u7528\uff0c\u65e0\u6cd5\u5220\u9664
\ No newline at end of file
delete.data.error.occupied = \u8be5\u6570\u636e\u5df2\u7ecf\u88ab\u5173\u8054\u4f7f\u7528\uff0c\u65e0\u6cd5\u5220\u9664
#权限复制,复制用户和被复制用户重叠
user.copyuser.repeat = \u590d\u5236\u7528\u6237\u4e2d\u5b58\u5728\u60a8\u52fe\u9009\u7684\u88ab\u590d\u5236\u7528\u6237\uff0c\u7528\u6237\u540d :{0}
user.lack.of.permissions = \u5c97\u4f4d\u8d44\u6e90\u6216\u89d2\u8272\u4e3a\u7a7a\uff0c\u60a8\u786e\u5b9a\u9700\u8981\u590d\u5236\u5417\uff1f
\ No newline at end of file
......@@ -216,4 +216,7 @@ rule.currentSerial.error= The remaining quantity of the product serial number is
#工作单元编不唯一
md.workUnit.error.workunitCode.unique = unique workunitCode.
#被删除数据已被使用错误
delete.data.error.occupied = The data that needs to be deleted has been used
\ No newline at end of file
delete.data.error.occupied = The data that needs to be deleted has been used
user.copyuser.repeat = The employee with copied permission exists among the employees with copied permission :{0}
user.lack.of.permissions = Job resources or roles are empty, are you sure you need to copy them?
\ No newline at end of file
......@@ -226,4 +226,6 @@ rule.currentSerial.error= \u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E1C\u0E25
#\u5DE5\u4F5C\u5355\u5143\u7F16\u4E0D\u552F\u4E00
md.workUnit.error.workunitCode.unique = \u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27
#被删除数据已被使用错误
delete.data.error.occupied = \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e44\u0e14\u0e49\u0e16\u0e39\u0e01\u0e43\u0e0a\u0e49\u0e44\u0e1b\u0e41\u0e25\u0e49\u0e27
\ No newline at end of file
delete.data.error.occupied = \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e44\u0e14\u0e49\u0e16\u0e39\u0e01\u0e43\u0e0a\u0e49\u0e44\u0e1b\u0e41\u0e25\u0e49\u0e27
user.copyuser.repeat = \u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c :{0}
user.lack.of.permissions = \u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e2b\u0e23\u0e37\u0e2d\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e27\u0e48\u0e32\u0e07\u0e40\u0e1b\u0e25\u0e48\u0e32\u0e04\u0e38\u0e13\u0e41\u0e19\u0e48\u0e43\u0e08\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e04\u0e38\u0e13\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u003f
\ No newline at end of file
......@@ -219,4 +219,7 @@ rule.currentSerial.error= \u8BE5\u4EA7\u54C1\u5E8F\u5217\u53F7\u5269\u4F59:{0}\u
#工作单元编不唯一
md.workUnit.error.workunitCode.unique = \u5de5\u5355\u5355\u5143\u7f16\u7801\u5df2\u5b58\u5728
#被删除数据已被使用错误
delete.data.error.occupied = \u8be5\u6570\u636e\u5df2\u7ecf\u88ab\u5173\u8054\u4f7f\u7528\uff0c\u65e0\u6cd5\u5220\u9664
\ No newline at end of file
delete.data.error.occupied = \u8be5\u6570\u636e\u5df2\u7ecf\u88ab\u5173\u8054\u4f7f\u7528\uff0c\u65e0\u6cd5\u5220\u9664
user.copyuser.repeat = \u590d\u5236\u7528\u6237\u4e2d\u5b58\u5728\u60a8\u52fe\u9009\u7684\u88ab\u590d\u5236\u7528\u6237\uff0c\u7528\u6237\u540d :{0}
user.lack.of.permissions = \u5c97\u4f4d\u8d44\u6e90\u6216\u89d2\u8272\u4e3a\u7a7a\uff0c\u60a8\u786e\u5b9a\u9700\u8981\u590d\u5236\u5417\uff1f
\ No newline at end of file
......@@ -1359,6 +1359,7 @@ public class ProTaskServiceImpl implements IProTaskService {
query.eq(proTask.getOutsourced() != null, "ptw.outsourced", proTask.getOutsourced());
query.eq(StringUtils.isNotEmpty(proTask.getArrangeCode()), "t.arrange_code", proTask.getArrangeCode());
query.gt(proTask.getAllowProduce() != null && proTask.getAllowProduce() == 1, "t.quantity_wait", 0);
//query.le(proTask.getAllowProduce() != null && proTask.getAllowProduce() == 0, "t.quantity_wait", 0);
query.gt("ptw.quantity", 0);
query.orderByAsc("statusIndex").orderByAsc("ptw.schedule_start_date");
//搜索条件为工单号查询相应任务ID作为查询条件
......@@ -1388,6 +1389,7 @@ public class ProTaskServiceImpl implements IProTaskService {
query.eq(proTask.getOutsourced() != null, "ptw.outsourced", proTask.getOutsourced());
query.eq(StringUtils.isNotEmpty(proTask.getArrangeCode()), "t.task_code", proTask.getArrangeCode());
query.gt(proTask.getAllowProduce() != null && proTask.getAllowProduce() == 1, "t.quantity_wait", 0);
// query.le(proTask.getAllowProduce() != null && proTask.getAllowProduce() == 0, "t.quantity_wait", 0);
query.gt("ptw.quantity", 0);
query.orderByAsc("statusIndex").orderByAsc("ptw.schedule_start_date");
list = this.selectProTaskJoinTaskWorkUnit(query);
......
......@@ -2,6 +2,7 @@ package com.ximai.system.mapper;
import java.util.List;
import com.ximai.common.core.domain.entity.SysRole;
import org.apache.ibatis.annotations.Param;
/**
* 角色表 数据层
......@@ -103,4 +104,8 @@ public interface SysRoleMapper
* @return 结果
*/
public int deleteRoleByIds(Long[] roleIds);
void inserAll(List<Long> roleList, List<Long> userIds);
void deleteByUserids(@Param("userIds") List<Long> userIds);
}
......@@ -135,4 +135,10 @@ public interface SysUserMapper {
@Select(value = "select * from sys_user ${ew.customSqlSegment}")
List<SysUser> selectListByQw(@Param("ew") QueryWrapper<SysUser> user);
void batchWorkunitWorker(@Param("copiedUserId")Long copiedUserId, @Param("userId")Long userId, @Param("username")String username);
void deleteWorkunitWorkerByUserIds(@Param("userIds")List<Long> userIds);
List<Long> selectWorkunitWorkerByUserIds(@Param("copiedUserId")Long copiedUserId);
}
......@@ -2,6 +2,7 @@ package com.ximai.system.mapper;
import java.util.List;
import com.ximai.system.domain.SysUserPost;
import org.apache.ibatis.annotations.Param;
/**
* 用户与岗位关联表 数据层
......@@ -40,4 +41,6 @@ public interface SysUserPostMapper
* @return 结果
*/
public int batchUserPost(List<SysUserPost> userPostList);
List<Long> selectPostIdByUserId(@Param("copiedUserId") Long copiedUserId);
}
......@@ -228,4 +228,8 @@ public interface ISysUserService {
void userCreate(List<PersonVo> personVos);
void copyAllByUserId(Long copiedUserId, List<Long> userIds);
void checkCopyAllByUserId(Long copiedUserId, List<Long> userIds);
}
......@@ -11,6 +11,7 @@ import com.ximai.common.exception.ServiceException;
import com.ximai.common.utils.MessageUtils;
import com.ximai.common.utils.SecurityUtils;
import com.ximai.common.utils.data.DateUtils;
import com.ximai.common.utils.data.ExceptionUtil;
import com.ximai.common.utils.data.StringUtils;
import com.ximai.common.utils.bean.BeanValidators;
import com.ximai.common.utils.excel.ExcelReader;
......@@ -28,7 +29,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.validation.Validator;
import java.io.InputStream;
import java.util.ArrayList;
......@@ -65,7 +65,6 @@ public class SysUserServiceImpl implements ISysUserService {
@Autowired
protected Validator validator;
/**
* 根据条件分页查询用户列表
*
......@@ -577,4 +576,43 @@ public class SysUserServiceImpl implements ISysUserService {
}
}
@Override
@Transactional
public void copyAllByUserId(Long copiedUserId, List<Long> userIds) {
SysUser sysUser = userMapper.selectUserById(copiedUserId);
ExceptionUtil.checkTrueThrowException(userIds.contains(copiedUserId), MessageUtils.message("user.copyuser.repeat",sysUser.getUserName()));
List<Long> roleList = roleMapper.selectRoleListByUserId(copiedUserId);
roleMapper.deleteByUserids(userIds);
//批量增加关联角色
if (StringUtils.isNotNull(roleList)) {
// 新增用户与角色管理
List<SysUserRole> list = new ArrayList<SysUserRole>();
for (Long userId : userIds){
for (Long roleId : roleList) {
SysUserRole ur = new SysUserRole();
ur.setUserId(userId);
ur.setRoleId(roleId);
list.add(ur);
}
}
if (list.size() > 0) {
userRoleMapper.batchUserRole(list);
}
}
//List<Long> postList = userPostMapper.selectPostIdByUserId(copiedUserId);
//批量插入岗位资源
userMapper.deleteWorkunitWorkerByUserIds(userIds);
for (Long userId : userIds){
userMapper.batchWorkunitWorker(copiedUserId,userId,SecurityUtils.getUsername());
}
}
@Override
public void checkCopyAllByUserId(Long copiedUserId, List<Long> userIds) {
List<Long> roleList = roleMapper.selectRoleListByUserId(copiedUserId);
List<Long> workunitIds = userMapper.selectWorkunitWorkerByUserIds(copiedUserId);
SysUser sysUser = userMapper.selectUserById(copiedUserId);
ExceptionUtil.checkTrueThrowException(roleList.size() < 1 || workunitIds.size() < 1, MessageUtils.message("user.lack.of.permissions",sysUser.getNickName()));
}
}
......@@ -121,6 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
)
</insert>
<update id="updateRole" parameterType="SysRole">
update sys_role
<set>
......@@ -148,5 +149,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{roleId}
</foreach>
</delete>
<delete id="deleteByUserids">
delete from sys_user_role where user_id in
<foreach collection="userIds" open="(" item="userId" close=")" separator=",">
#{userId}
</foreach>
</delete>
<insert id="inserAll">
insert sys_user_role (user_id,role_id)
values
<foreach collection="userIds" open="(" close=")" item="userId" separator=",">
select #{userId} , role_id from sys_user_role where
</foreach>
</insert>
</mapper>
......@@ -189,6 +189,9 @@
from sys_user
where email = #{email} limit 1
</select>
<select id="selectWorkunitWorkerByUserIds" resultType="java.lang.Long">
select workunit_id from md_workunit_worker where user_id = #{copiedUserId}
</select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user(
......@@ -223,6 +226,28 @@
sysdate()
)
</insert>
<insert id="batchWorkunitWorker">
insert into md_workunit_worker
(workunit_id,
post_id,
post_name,
user_id,
user_name,
nick_name,
remark,
create_by,
create_time)
select
workunit_id,
post_id ,
post_name,
#{userId},
user_name,
nick_name,
remark,
#{username},
now() from md_workunit_worker where user_id = #{copiedUserId}
</insert>
<update id="updateUser" parameterType="SysUser">
update sys_user
......@@ -276,5 +301,11 @@
#{userId}
</foreach>
</delete>
<delete id="deleteWorkunitWorkerByUserIds">
delete from md_workunit_worker where user_id in
<foreach collection="userIds" open="(" item="userId" close=")" separator=",">
#{userId}
</foreach>
</delete>
</mapper>
......@@ -16,8 +16,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="countUserPostById" resultType="Integer">
select count(1) from sys_user_post where post_id=#{postId}
</select>
<select id="selectPostIdByUserId" resultType="java.lang.Long">
select post_id from sys_user_post where user_id = #{copiedUserId}
</select>
<delete id="deleteUserPost" parameterType="Long">
<delete id="deleteUserPost" parameterType="Long">
delete from sys_user_post where user_id in
<foreach collection="array" item="userId" open="(" separator="," close=")">
#{userId}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment