From 826d7a2d241c24a1ef47fe0e69533a18b3464bc2 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 04 七月 2025 21:16:46 +0800
Subject: [PATCH] art:技术状态鉴定工单变更-数据库设计

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java |  140 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 132 insertions(+), 8 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
index 9028b88..7f1e65b 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CacheConstant;
 import org.jeecg.common.constant.CommonConstant;
@@ -24,8 +25,10 @@
 import org.jeecg.modules.system.model.SysUserSysDepartModel;
 import org.jeecg.modules.system.service.ISysDictService;
 import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.system.vo.EamUserRepDepVo;
 import org.jeecg.modules.system.vo.MdcUserProVo;
 import org.jeecg.modules.system.vo.SysUserDepVo;
+import org.jeecg.modules.system.vo.UserSelector;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
@@ -48,7 +51,7 @@
 @Service
 @Slf4j
 public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
-	
+
 	@Autowired
 	private SysUserMapper userMapper;
 	@Autowired
@@ -77,6 +80,8 @@
 	SysRoleIndexMapper sysRoleIndexMapper;
 	@Resource
 	MdcUserProductionMapper mdcUserProductionMapper;
+	@Resource
+	EamBaseRepairDepartUserMapper eamBaseRepairDepartUserMapper;
 	@Resource
 	private ISysDictService sysDictService;
 
@@ -110,6 +115,8 @@
         sysUser.setSalt(salt);
 		//璁剧疆瀵嗙爜鏇存柊鏃堕棿
 		sysUser.setPasswordTime(new Date());
+		//绠$悊鍛樹慨鏀瑰瘑鐮侊紝璁剧疆鐢ㄦ埛棣栨鐧诲綍
+		//sysUser.setPasswordFlag();
         String password = sysUser.getPassword();
         String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt);
         sysUser.setPassword(passwordEncode);
@@ -139,8 +146,8 @@
 	public SysUser getUserByName(String username) {
 		return userMapper.getUserByName(username);
 	}
-	
-	
+
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void addUserWithRole(SysUser user, String roles) {
@@ -201,7 +208,7 @@
 				roleIndex = list.get(0);
 			}
 		}
-		
+
 		//濡傛灉componentUrl涓虹┖锛屽垯杩斿洖绌�
 		if(oConvertUtils.isEmpty(roleIndex.getComponent())){
 			return null;
@@ -267,7 +274,7 @@
 			info.setSysUserName(sysUser.getRealname());
 			info.setSysOrgCode(sysUser.getOrgCode());
 		}
-		
+
 		//澶氶儴闂ㄦ敮鎸乮n鏌ヨ
 		List<SysDepart> list = sysDepartMapper.queryUserDeparts(sysUser.getId());
 		List<String> sysMultiOrgCode = new ArrayList<String>();
@@ -283,7 +290,7 @@
 			}
 		}
 		info.setSysMultiOrgCode(sysMultiOrgCode);
-		
+
 		return info;
 	}
 
@@ -353,6 +360,16 @@
 	@Override
 	public IPage<SysUser> getUserByRoleId(Page<SysUser> page, String roleId, String username) {
 		return userMapper.getUserByRoleId(page,roleId,username);
+	}
+
+	/**
+	 * 鏍规嵁璁惧杞﹂棿绠$悊Id鏌ヨ
+	 * @param page
+	 * @param baseFactoryId 璁惧杞﹂棿绠$悊Id
+	 * @return
+	 */
+	public IPage<SysUser> getUserByworkShopDepartId(Page<SysUser> page,String baseFactoryId,String username){
+		return userMapper.getUserByWorkShopDepartId(page,baseFactoryId,username);
 	}
 
 
@@ -556,7 +573,7 @@
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void saveUser(SysUser user, String selectedRoles, String selectedDeparts, String selectedProductions) {
+	public void saveUser(SysUser user, String selectedRoles, String selectedDeparts, String selectedProductions, String selectedRepairDeparts) {
 		//step.1 淇濆瓨鐢ㄦ埛
 		this.save(user);
 		//step.2 淇濆瓨瑙掕壊
@@ -583,12 +600,20 @@
 				mdcUserProductionMapper.insert(mdcUserProduction);
 			}
 		}
+		//step.5 淇濆瓨鎵�灞炵淮淇儴闂�
+		if (oConvertUtils.isNotEmpty(selectedRepairDeparts)) {
+			String[] arr = selectedRepairDeparts.split(",");
+			for (String repairDepartId : arr) {
+				EamBaseRepairDepartUser eamBaseRepairDepartUser = new EamBaseRepairDepartUser(user.getId(), repairDepartId);
+				eamBaseRepairDepartUserMapper.insert(eamBaseRepairDepartUser);
+			}
+		}
 	}
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
-	public void editUser(SysUser user, String roles, String departs, String productions) {
+	public void editUser(SysUser user, String roles, String departs, String productions, String repairDeparts) {
 		//step.1 淇敼鐢ㄦ埛鍩虹淇℃伅
 		this.updateById(user);
 		//step.2 淇敼瑙掕壊
@@ -644,6 +669,19 @@
 				mdcUserProductionMapper.insert(mdcUserProduction);
 			}
 		}
+		//step.5 淇敼缁翠慨閮ㄩ棬
+		String[] arrayRepDep = {};
+		if(oConvertUtils.isNotEmpty(repairDeparts)){
+			arrayRepDep = repairDeparts.split(",");
+		}
+		//鍏堝垹鍚庡姞
+		eamBaseRepairDepartUserMapper.delete(new QueryWrapper<EamBaseRepairDepartUser>().lambda().eq(EamBaseRepairDepartUser::getUserId, user.getId()));
+		if (oConvertUtils.isNotEmpty(repairDeparts)) {
+			for (String repairDepartId : arrayRepDep) {
+				EamBaseRepairDepartUser eamBaseRepairDepartUser = new EamBaseRepairDepartUser(user.getId(), repairDepartId);
+				eamBaseRepairDepartUserMapper.insert(eamBaseRepairDepartUser);
+			}
+		}
 		//step.5 淇敼鎵嬫満鍙峰拰閭
 		// 鏇存柊鎵嬫満鍙枫�侀偖绠辩┖瀛楃涓蹭负 null
 		userMapper.updateNullByEmptyString("email");
@@ -690,6 +728,21 @@
 		return res;
 	}
 
+	@Override
+	public Map<String, String> getRepDepNamesByUserIds(List<String> userIds) {
+		List<EamUserRepDepVo> list = this.baseMapper.getRepDepNamesByUserIds(userIds);
+
+		Map<String, String> res = new HashMap<>(5);
+		list.forEach(item -> {
+			if (res.get(item.getUserId()) == null) {
+				res.put(item.getUserId(), item.getRepairDepartName());
+			} else {
+				res.put(item.getUserId(), res.get(item.getUserId()) + "," + item.getRepairDepartName());
+			}
+		});
+		return res;
+	}
+
 	// 鏍规嵁瑙掕壊Id鏌ヨ璇ヨ鑹蹭笅鐨勬墍鏈夌敤鎴蜂俊鎭�
 	@Override
 	public List<SysUser> getAllUsersByRoleId(String roleId) {
@@ -703,4 +756,75 @@
 	public List<String> getUserByRoleCode(String roleCode) {
 		return this.baseMapper.getUserByRoleCode(roleCode);
 	}
+
+	/**
+	 * 鏍规嵁瑙掕壊缂栫爜鍒楄〃鏌ヨ鐢ㄦ埛id闆嗗悎
+	 */
+	@Override
+	public List<SysUser> getUserByRoleCodeList(List<String> roleCodeList) {
+		return this.baseMapper.getUserByRoleCodeList(roleCodeList);
+	}
+
+	/**
+	 * 鏍规嵁瑙掕壊缂栫爜鍜岃澶囩紪鍙锋煡璇㈢敤鎴�
+	 */
+	@Override
+	public List<SysUser> getEquipmentAdmin(String roleCode, String equipmentId) {
+		return this.baseMapper.getEquipmentAdmin(roleCode, equipmentId);
+	}
+
+	@Override
+	public List<UserSelector> selectOperatorList(String equipmentCode, String productionId, String positionCode) {
+		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(SysUser::getPost, positionCode);
+		if(StringUtils.isNotBlank(equipmentCode)) {
+			queryWrapper.and(q -> q.isNull(SysUser::getEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEquipmentIds, equipmentCode));
+		}
+		if(StringUtils.isNotBlank(productionId)) {
+			queryWrapper.exists("select 1 from mdc_user_production t where t.user_id=sys_user.id and t.pro_id={0}", productionId);
+		}
+		queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
+		queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1);
+		queryWrapper.orderByDesc(SysUser::getId);
+		List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
+		List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
+		return collect;
+	}
+
+	/**
+	 * 閫夋嫨鐢ㄦ埛
+	 * @param equipmentCode 閫夋嫨鐨勮澶嘔D
+	 * @param factoryId 閫夋嫨鐨勫伐鍘侷D
+	 * @param positionCode 宀椾綅缂栧彿
+	 * @return
+	 */
+	@Override
+	public List<UserSelector> selectOperatorFactoryList(String equipmentCode, String factoryId, String positionCode){
+		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(SysUser::getPost, positionCode);
+//		if(StringUtils.isNotBlank(equipmentCode)) {
+//			queryWrapper.and(q -> q.isNull(SysUser::getEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEquipmentIds, equipmentCode));
+//		}
+//		if(StringUtils.isNotBlank(factoryId)) {
+//			queryWrapper.exists("select 1 from eam_base_factory_user t where t.user_id=sys_user.id and t.factory_id={0}", factoryId);
+//		}
+		queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
+		queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1);
+		queryWrapper.orderByDesc(SysUser::getId);
+		List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
+		List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
+		return collect;
+	}
+
+	@Override
+	public List<UserSelector> selectOperatorList(String positionCode) {
+		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(SysUser::getPost, positionCode);
+		queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
+		queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1);
+		queryWrapper.orderByDesc(SysUser::getId);
+		List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
+		List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
+		return collect;
+	}
 }

--
Gitblit v1.9.3