|
@@ -1,5 +1,6 @@
|
|
package com.zjugis.module.adm.service.staff;
|
|
package com.zjugis.module.adm.service.staff;
|
|
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -14,10 +15,10 @@ import com.zjugis.module.adm.dal.dataobject.staff.StaffRecordSDO;
|
|
import com.zjugis.module.adm.dal.mysql.staff.RecordsMapper;
|
|
import com.zjugis.module.adm.dal.mysql.staff.RecordsMapper;
|
|
import com.zjugis.module.system.api.user.AdminUserApi;
|
|
import com.zjugis.module.system.api.user.AdminUserApi;
|
|
import com.zjugis.module.system.api.user.dto.AdminUserRespDTO;
|
|
import com.zjugis.module.system.api.user.dto.AdminUserRespDTO;
|
|
-import com.zjugis.module.system.api.user.dto.UserCreateReqDTO;
|
|
|
|
|
|
+import com.zjugis.module.system.api.user.dto.UserBaseDTO;
|
|
|
|
+import com.zjugis.module.system.api.user.dto.UserUpdateDTO;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
-import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
@@ -121,6 +122,12 @@ public class RecordsServiceImpl implements RecordsService {
|
|
staffRecordSDO.setUpdateTime(LocalDateTime.now());
|
|
staffRecordSDO.setUpdateTime(LocalDateTime.now());
|
|
staffRecordSDO.setUpdater(WebFrameworkUtils.getLoginUserId());
|
|
staffRecordSDO.setUpdater(WebFrameworkUtils.getLoginUserId());
|
|
recordsMapper.update(staffRecordSDO, new LambdaQueryWrapperX<StaffRecordSDO>().eq(StaffRecordSDO::getId, vo.getId()));
|
|
recordsMapper.update(staffRecordSDO, new LambdaQueryWrapperX<StaffRecordSDO>().eq(StaffRecordSDO::getId, vo.getId()));
|
|
|
|
+
|
|
|
|
+ //远程更新部门
|
|
|
|
+ UserUpdateDTO dto = new UserUpdateDTO();
|
|
|
|
+ dto.setUserId(vo.getUserId());
|
|
|
|
+ dto.setDeptId(vo.getDeptId());
|
|
|
|
+ userApi.updateUserDept(dto);
|
|
return "更新成功";
|
|
return "更新成功";
|
|
}
|
|
}
|
|
|
|
|
|
@@ -132,25 +139,47 @@ public class RecordsServiceImpl implements RecordsService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional
|
|
public String insertStaff(StaffRecordsDTO dto) {
|
|
public String insertStaff(StaffRecordsDTO dto) {
|
|
- //档案新增
|
|
|
|
StaffRecordSDO staffRecordSDO = RecordsConvert.INSTANCE.convertDetail(dto);
|
|
StaffRecordSDO staffRecordSDO = RecordsConvert.INSTANCE.convertDetail(dto);
|
|
- staffRecordSDO.setCreateTime(LocalDateTime.now());
|
|
|
|
- staffRecordSDO.setCreator(WebFrameworkUtils.getLoginUserId());
|
|
|
|
- recordsMapper.insert(staffRecordSDO);
|
|
|
|
|
|
|
|
- //新增用户账号和相关部门角色关联关系
|
|
|
|
- UserCreateReqDTO user = initUser(staffRecordSDO);
|
|
|
|
- userApi.createUser(user);
|
|
|
|
|
|
+ //新建员工账号以及其相关的关系 如果账号已经存在就开启账号的使用状态 以及修改其相关的权限和部门关系
|
|
|
|
+ UserBaseDTO user = initUser(staffRecordSDO);
|
|
|
|
+ CommonResult<String> result = userApi.createUser(user);
|
|
|
|
+ if (result.getCode() != 0) {
|
|
|
|
+ throw new RuntimeException(result.getMsg());
|
|
|
|
+ }
|
|
|
|
+ String userId = result.getData();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //判断该员工档案是否已经存在 存在的话就直接改状态不存在就新增
|
|
|
|
+ StaffRecordSDO ex = recordsMapper.selectOne(new LambdaQueryWrapperX<StaffRecordSDO>().eq(StaffRecordSDO::getUserId, userId));
|
|
|
|
+ if (ex != null) {
|
|
|
|
+ BeanUtil.copyProperties(staffRecordSDO, ex);
|
|
|
|
+ ex.setUpdater(WebFrameworkUtils.getLoginUserId());
|
|
|
|
+ ex.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ recordsMapper.updateById(ex);
|
|
|
|
+ } else {
|
|
|
|
+ staffRecordSDO.setCreator(WebFrameworkUtils.getLoginUserId());
|
|
|
|
+ staffRecordSDO.setCreateTime(LocalDateTime.now());
|
|
|
|
+ staffRecordSDO.setUserId(userId);
|
|
|
|
+ recordsMapper.insert(staffRecordSDO);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
return "true";
|
|
return "true";
|
|
}
|
|
}
|
|
|
|
|
|
- private UserCreateReqDTO initUser(StaffRecordSDO staffRecordSDO) {
|
|
|
|
- UserCreateReqDTO dto = new UserCreateReqDTO();
|
|
|
|
|
|
+ private UserBaseDTO initUser(StaffRecordSDO staffRecordSDO) {
|
|
|
|
+ UserBaseDTO dto = new UserBaseDTO();
|
|
dto.setUsername(staffRecordSDO.getLoginName());
|
|
dto.setUsername(staffRecordSDO.getLoginName());
|
|
dto.setNickname(staffRecordSDO.getNickname());
|
|
dto.setNickname(staffRecordSDO.getNickname());
|
|
dto.setDeptId(staffRecordSDO.getDeptId());
|
|
dto.setDeptId(staffRecordSDO.getDeptId());
|
|
dto.setMobile(staffRecordSDO.getMobilePhone());
|
|
dto.setMobile(staffRecordSDO.getMobilePhone());
|
|
|
|
+ dto.setSex(staffRecordSDO.getSex());
|
|
|
|
+ if (staffRecordSDO.getUserId() != null) {
|
|
|
|
+ dto.setUserId(staffRecordSDO.getUserId());
|
|
|
|
+ }
|
|
return dto;
|
|
return dto;
|
|
}
|
|
}
|
|
}
|
|
}
|