Merge remote-tracking branch 'origin/master'

liweidong
李涛 2 weeks ago
commit 4f115c5a62
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobtransfer/pojo/excel/PostHandleExcel.java
  2. 48
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobtransfer/pojo/excel/PostHandleImport.java
  3. 5
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobtransfer/pojo/request/PostHandleQuery.java
  4. 17
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobtransfer/pojo/vo/PostHandleVO.java
  5. 10
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/feign/IUserClient.java
  6. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobtransfer/controller/PostHandleController.java
  7. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobtransfer/mapper/PostHandleMapper.xml
  8. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobtransfer/service/IPostHandleService.java
  9. 52
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobtransfer/service/impl/PostHandleServiceImpl.java
  10. BIN
      blade-service/blade-desk/src/main/resources/Excel/jobTransfer/岗位处理导入模板下载.xls
  11. 6
      blade-service/blade-system/src/main/java/org/springblade/system/feign/UserClient.java

@ -75,7 +75,7 @@ public class PostHandleExcel implements Serializable {
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("所属岗位") @ExcelProperty("所属岗位")
private String station; private String stationName;
/** /**
* 出生日期 * 出生日期
*/ */

@ -26,107 +26,107 @@ public class PostHandleImport extends BaseEntity {
/** /**
* 性别 * 性别
*/ */
@ExcelProperty(index = 1) // @ExcelProperty(index = 1)
private String gender; // private String gender;
/** /**
* 民族 * 民族
*/ */
@ExcelProperty(index = 2) @ExcelProperty(index = 1)
private String nation; private String nation;
/** /**
* 年龄 * 年龄
*/ */
@ExcelProperty(index = 3) // @ExcelProperty(index = 3)
private Short age; // private Short age;
/** /**
* 身份证号码 * 身份证号码
*/ */
@ExcelProperty(index = 4) @ExcelProperty(index = 2)
private String idCard; private String idCard;
/** /**
* 籍贯 * 籍贯
*/ */
@ExcelProperty(index = 5) @ExcelProperty(index = 3)
private String nativePlace; private String nativePlace;
/** /**
* 所属岗位 * 所属岗位
*/ */
@ExcelProperty(index = 6) // @ExcelProperty(index = 6)
private String station; // private String station;
/** /**
* 出生日期 * 出生日期
*/ */
@ExcelProperty(index = 7) @ExcelProperty(index = 4)
@DateTimeFormat("yyyy/MM/dd") @DateTimeFormat("yyyy/MM/dd")
private Date dataBirth; private Date dataBirth;
/** /**
* 政治面貌 * 政治面貌
*/ */
@ExcelProperty(index = 8) @ExcelProperty(index = 5)
private String face; private String face;
/** /**
* 婚姻状态(0未婚1已婚) * 婚姻状态(0未婚1已婚)
*/ */
@ExcelProperty(index = 9) @ExcelProperty(index = 6)
private String marriageName; private String marriageName;
/** /**
* 毕业院校 * 毕业院校
*/ */
@ExcelProperty(index = 10) @ExcelProperty(index = 7)
private String school; private String school;
/** /**
* 所学专业 * 所学专业
*/ */
@ExcelProperty(index = 11) @ExcelProperty(index = 8)
private String major; private String major;
/** /**
* 最高学历 * 最高学历
*/ */
@ExcelProperty(index = 12) @ExcelProperty(index = 9)
private String education; private String education;
/** /**
* 毕业时间 * 毕业时间
*/ */
@ExcelProperty(index = 13) @ExcelProperty(index = 10)
@DateTimeFormat("yyyy/MM/dd") @DateTimeFormat("yyyy/MM/dd")
private Date endDate; private Date endDate;
/** /**
* 用工类型 * 用工类型
*/ */
@ExcelProperty(index = 14) @ExcelProperty(index = 11)
private String staffTypeName; private String staffTypeName;
/** /**
* 参加工作时间 * 参加工作时间
*/ */
@ExcelProperty(index = 15) @ExcelProperty(index = 12)
@DateTimeFormat("yyyy/MM/dd") @DateTimeFormat("yyyy/MM/dd")
private Date joinJobDate; private Date joinJobDate;
/** /**
* 技能等级 * 技能等级
*/ */
@ExcelProperty(index = 16) @ExcelProperty(index = 13)
private String skillName; private String skillName;
/** /**
* 任现职时间 * 任现职时间
*/ */
@ExcelProperty(index = 17) @ExcelProperty(index = 14)
@DateTimeFormat("yyyy/MM/dd") @DateTimeFormat("yyyy/MM/dd")
private Date inJobDate; private Date inJobDate;
/** /**
* 合同到期 * 合同到期
*/ */
@ExcelProperty(index = 18) @ExcelProperty(index = 15)
@DateTimeFormat("yyyy/MM/dd") @DateTimeFormat("yyyy/MM/dd")
private Date conExpDate; private Date conExpDate;
/** /**
* 家庭住址 * 家庭住址
*/ */
@ExcelProperty(index = 19) @ExcelProperty(index = 16)
private String address; private String address;
/** /**
* 手机号 * 手机号
*/ */
@ExcelProperty(index = 20) // @ExcelProperty(index = 17)
private String mobile; // private String mobile;
} }

@ -17,6 +17,11 @@ public class PostHandleQuery {
*/ */
@Schema(description = "所属班组") @Schema(description = "所属班组")
private Long deptId; private Long deptId;
/**
* 用户id
*/
@Schema(description = "用户id")
private Long userId;
/** /**
* 工号 * 工号
*/ */

@ -48,6 +48,9 @@ public class PostHandleVO extends PostHandleEntity {
//性别名 //性别名
@Schema(description = "性别名") @Schema(description = "性别名")
private String genderName; private String genderName;
//岗位名称
@Schema(description = "岗位名称")
private String stationName;
//入职工作时长 //入职工作时长
// @Schema(description = "入职工作时长") // @Schema(description = "入职工作时长")
// private Short beInOfficeDuration; // private Short beInOfficeDuration;
@ -57,7 +60,19 @@ public class PostHandleVO extends PostHandleEntity {
// //合同到期时长 // //合同到期时长
// @Schema(description = "合同到期时长") // @Schema(description = "合同到期时长")
// private Short contractDuration; // private Short contractDuration;
public Short getAge() {
if (null != this.getDataBirth()) {
// 将 Date 转换为 LocalDate
LocalDate birthDate = this.getDataBirth().toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
LocalDate now = LocalDate.now();
Integer years = Period.between(birthDate, now).getYears();
return years.shortValue();
}
return null;
}
public String getPhStatusName() { public String getPhStatusName() {
return PostHandleStatusEnum.getName(null != this.getPhStatus() ? this.getPhStatus().intValue() : null); return PostHandleStatusEnum.getName(null != this.getPhStatus() ? this.getPhStatus().intValue() : null);
} }

@ -61,6 +61,7 @@ public interface IUserClient {
String USER_BY_ACCOUNT = API_PREFIX + "/user-by-account"; String USER_BY_ACCOUNT = API_PREFIX + "/user-by-account";
String USER_AUTH_INFO = API_PREFIX + "/user-auth-info"; String USER_AUTH_INFO = API_PREFIX + "/user-auth-info";
String SAVE_USER = API_PREFIX + "/save-user"; String SAVE_USER = API_PREFIX + "/save-user";
String UPDATE_USER = API_PREFIX + "/update-user";
String REGISTER_USER = API_PREFIX + "/register-user"; String REGISTER_USER = API_PREFIX + "/register-user";
String REMOVE_USER = API_PREFIX + "/remove-user"; String REMOVE_USER = API_PREFIX + "/remove-user";
String USER_LIST = API_PREFIX + "/user-list"; String USER_LIST = API_PREFIX + "/user-list";
@ -174,6 +175,15 @@ public interface IUserClient {
@PostMapping(SAVE_USER) @PostMapping(SAVE_USER)
R<Boolean> saveUser(@RequestBody User user); R<Boolean> saveUser(@RequestBody User user);
/**
* 更新用户
*
* @param userList 用户实体
* @return
*/
@PostMapping(UPDATE_USER)
R<Boolean> updateUser(@RequestBody List<User> userList);
/** /**
* 注册用户 * 注册用户
* *

@ -20,6 +20,8 @@ import org.springblade.desk.jobtransfer.pojo.excel.PostHandleExcel;
import org.springblade.desk.jobtransfer.pojo.excel.PostHandleImport; import org.springblade.desk.jobtransfer.pojo.excel.PostHandleImport;
import org.springblade.desk.jobtransfer.pojo.request.JobTransferSave; import org.springblade.desk.jobtransfer.pojo.request.JobTransferSave;
import org.springblade.desk.jobtransfer.pojo.request.PostHandleQuery; import org.springblade.desk.jobtransfer.pojo.request.PostHandleQuery;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@ -52,7 +54,8 @@ import org.springframework.web.multipart.MultipartFile;
public class PostHandleController extends BladeController { public class PostHandleController extends BladeController {
private final IPostHandleService postHandleService; private final IPostHandleService postHandleService;
@jakarta.annotation.Resource
private IUserClient userClient;
/** /**
* 岗位处理 详情 * 岗位处理 详情
*/ */
@ -93,6 +96,10 @@ public class PostHandleController extends BladeController {
@Operation(summary = "新增", description = "传入postHandle") @Operation(summary = "新增", description = "传入postHandle")
@ApiLog("人员岗位 新增") @ApiLog("人员岗位 新增")
public R save(@Valid @RequestBody PostHandleEntity postHandle) { public R save(@Valid @RequestBody PostHandleEntity postHandle) {
User user = postHandleService.convertToUser(postHandle);
if (null != user) {
userClient.updateUser(List.of(user));
}
return R.status(postHandleService.save(postHandle)); return R.status(postHandleService.save(postHandle));
} }
@ -104,6 +111,10 @@ public class PostHandleController extends BladeController {
@Operation(summary = "修改", description = "传入postHandle") @Operation(summary = "修改", description = "传入postHandle")
@ApiLog("人员岗位 修改") @ApiLog("人员岗位 修改")
public R update(@Valid @RequestBody PostHandleEntity postHandle) { public R update(@Valid @RequestBody PostHandleEntity postHandle) {
User user = postHandleService.convertToUser(postHandle);
if (null != user) {
userClient.updateUser(List.of(user));
}
return R.status(postHandleService.updateById(postHandle)); return R.status(postHandleService.updateById(postHandle));
} }
@ -115,6 +126,10 @@ public class PostHandleController extends BladeController {
@Operation(summary = "新增或修改", description = "传入postHandle") @Operation(summary = "新增或修改", description = "传入postHandle")
@ApiLog("人员岗位 新增或修改") @ApiLog("人员岗位 新增或修改")
public R submit(@Valid @RequestBody PostHandleEntity postHandle) { public R submit(@Valid @RequestBody PostHandleEntity postHandle) {
User user = postHandleService.convertToUser(postHandle);
if (null != user) {
userClient.updateUser(List.of(user));
}
return postHandleService.saveOrUpdateHandle(postHandle); return postHandleService.saveOrUpdateHandle(postHandle);
} }

@ -79,6 +79,7 @@
<result column="MOBILE" property="mobile"/> <result column="MOBILE" property="mobile"/>
<!-- 映射 VO 扩展字段 --> <!-- 映射 VO 扩展字段 -->
<result column="STATION_NAME" property="stationName"/>
<result column="USER_NAME" property="userName"/> <result column="USER_NAME" property="userName"/>
<result column="USER_CODE" property="userCode"/> <result column="USER_CODE" property="userCode"/>
<result column="DEPT_NAME" property="deptName"/> <result column="DEPT_NAME" property="deptName"/>
@ -102,10 +103,12 @@
mph.*, -- 主表所有字段 mph.*, -- 主表所有字段
bu.REAL_NAME as USER_NAME, -- 用户姓名 bu.REAL_NAME as USER_NAME, -- 用户姓名
bu.CODE as USER_CODE, -- 用户工号 bu.CODE as USER_CODE, -- 用户工号
bd.DEPT_NAME as DEPT_NAME -- 班组名称 bd.DEPT_NAME as DEPT_NAME, -- 班组名称
bp.POST_NAME as STATION_NAME -- 岗位名称
FROM MES_POST_HANDLE mph FROM MES_POST_HANDLE mph
LEFT JOIN BLADE_USER bu ON mph.USER_ID = bu.ID -- 关联用户表 LEFT JOIN BLADE_USER bu ON mph.USER_ID = bu.ID -- 关联用户表
LEFT JOIN BLADE_DEPT bd ON mph.DEPT_ID = bd.ID -- 关联部门表 LEFT JOIN BLADE_DEPT bd ON mph.DEPT_ID = bd.ID -- 关联部门表
LEFT JOIN BLADE_POST bp ON mph.STATION = bp.ID -- 关联岗位表
WHERE mph.IS_DELETED = 0 WHERE mph.IS_DELETED = 0
<if test="postHandle.userCode != null and postHandle.userCode != ''"> <if test="postHandle.userCode != null and postHandle.userCode != ''">
AND bu.CODE = #{postHandle.userCode} AND bu.CODE = #{postHandle.userCode}
@ -113,11 +116,14 @@
<if test="postHandle.deptId != null"> <if test="postHandle.deptId != null">
AND mph.DEPT_ID = #{postHandle.deptId} AND mph.DEPT_ID = #{postHandle.deptId}
</if> </if>
<if test="postHandle.userId != null">
AND mph.USER_ID = #{postHandle.userId}
</if>
<if test="postHandle.name != null and postHandle.name != ''"> <if test="postHandle.name != null and postHandle.name != ''">
AND bu.REAL_NAME LIKE CONCAT('%', CONCAT(#{postHandle.name}, '%')) AND bu.REAL_NAME LIKE CONCAT('%', CONCAT(#{postHandle.name}, '%'))
</if> </if>
<if test="postHandle.station != null and postHandle.station != ''"> <if test="postHandle.station != null and postHandle.station != ''">
AND mph.STATION LIKE CONCAT('%', CONCAT(#{postHandle.station}, '%')) AND mph.STATION = #{postHandle.station}
</if> </if>
<if test="postHandle.skill != null"> <if test="postHandle.skill != null">
AND mph.SKILL = #{postHandle.skill} AND mph.SKILL = #{postHandle.skill}

@ -10,6 +10,7 @@ import org.springblade.desk.jobtransfer.pojo.request.PostHandleQuery;
import org.springblade.desk.jobtransfer.pojo.vo.PostHandleVO; import org.springblade.desk.jobtransfer.pojo.vo.PostHandleVO;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.system.pojo.entity.User;
import java.util.List; import java.util.List;
@ -99,4 +100,12 @@ public interface IPostHandleService extends BaseService<PostHandleEntity> {
* @return * @return
*/ */
R depart(PostHandleEntity postHandleEntity); R depart(PostHandleEntity postHandleEntity);
/**
* 岗位转人员
*
* @param postHandle
* @return
*/
User convertToUser(PostHandleEntity postHandle);
} }

@ -1,5 +1,6 @@
package org.springblade.desk.jobtransfer.service.impl; package org.springblade.desk.jobtransfer.service.impl;
import com.alibaba.csp.sentinel.util.StringUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
@ -20,6 +21,8 @@ import org.springblade.desk.jobtransfer.service.ICultivateDetailService;
import org.springblade.desk.jobtransfer.service.IEquipmentMaintenanceService; import org.springblade.desk.jobtransfer.service.IEquipmentMaintenanceService;
import org.springblade.desk.jobtransfer.service.IPostHandleService; import org.springblade.desk.jobtransfer.service.IPostHandleService;
import org.springblade.system.cache.UserCache; import org.springblade.system.cache.UserCache;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springblade.system.pojo.entity.UserInfo; import org.springblade.system.pojo.entity.UserInfo;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -45,6 +48,8 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
private IEquipmentMaintenanceService equipmentMaintenanceService; private IEquipmentMaintenanceService equipmentMaintenanceService;
private IRelTeamSetUserService relTeamSetUserService; private IRelTeamSetUserService relTeamSetUserService;
@Resource @Resource
private IUserClient userClient;
@Resource
public void setICultivateDetailService(ICultivateDetailService iCultivateDetailService) { public void setICultivateDetailService(ICultivateDetailService iCultivateDetailService) {
this.iCultivateDetailService = iCultivateDetailService; this.iCultivateDetailService = iCultivateDetailService;
} }
@ -251,6 +256,13 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
if (!saved) { if (!saved) {
return R.fail("操作失败"); return R.fail("操作失败");
} }
//更新用户表中的手机号、岗位、部门、生日
List<User> userList = list.stream()
.filter(Objects::nonNull) // 过滤空对象
.map(this::convertToUser) // 转换实体
.filter(Objects::nonNull) // 过滤转换失败的对象
.collect(Collectors.toList());
userClient.updateUser(userList);
try { try {
createPlan(list); // 确保此方法中的异常能传播出来 createPlan(list); // 确保此方法中的异常能传播出来
} catch (Exception e) { } catch (Exception e) {
@ -260,6 +272,38 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
return R.status(saved); return R.status(saved);
} }
/**
* PostHandleEntity 转换为 User
*/
@Override
public User convertToUser(PostHandleEntity postHandle) {
User user = new User();
if (null == postHandle.getUserId()) {
return null;
}
user.setId(postHandle.getUserId());
// 设置手机号
if (StringUtil.isNotBlank(postHandle.getMobile())) {
user.setPhone(postHandle.getMobile());
}
// 设置岗位
if (StringUtil.isNotBlank(postHandle.getStation())) {
// 这里可能需要根据岗位名称获取岗位ID
user.setPostId(postHandle.getStation());
}
// 设置部门
if (postHandle.getDeptId() != null) {
user.setDeptId(String.valueOf(postHandle.getDeptId()));
}
// 设置生日
if (postHandle.getDataBirth() != null) {
user.setBirthday(postHandle.getDataBirth());
}
return user;
}
@Override @Override
public R jobTransfer(JobTransferSave jobTransferSave) { public R jobTransfer(JobTransferSave jobTransferSave) {
if (!(PostHandleStatusEnum.JOB_TRANSFER_TRAINED.getCode().shortValue() == jobTransferSave.getPhStatus())) { if (!(PostHandleStatusEnum.JOB_TRANSFER_TRAINED.getCode().shortValue() == jobTransferSave.getPhStatus())) {
@ -317,11 +361,17 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
entity.setName(userByCode.getUser().getRealName()); entity.setName(userByCode.getUser().getRealName());
entity.setDeptId(Long.valueOf(userByCode.getUser().getDeptId())); entity.setDeptId(Long.valueOf(userByCode.getUser().getDeptId()));
//技能等级 //技能等级
if (-1 != SkillEnum.of(excel.getSkillName()).getCode().shortValue()) {
entity.setSkill(SkillEnum.of(excel.getSkillName()).getCode().shortValue()); entity.setSkill(SkillEnum.of(excel.getSkillName()).getCode().shortValue());
}
//婚姻状态 //婚姻状态
entity.setMarriage(MarriageEnum.of(excel.getMarriageName()).getCode().toString()); entity.setMarriage(MarriageEnum.of(excel.getMarriageName()).getCode().toString());
//性别 //性别
entity.setGender(GenderEnum.of(excel.getGender()).getCode().toString()); entity.setGender(userByCode.getUser().getSex().toString());
//手机
entity.setMobile(userByCode.getUser().getPhone());
//岗位
entity.setStation(userByCode.getUser().getPostId());
// 如果是正式工状态为正常 // 如果是正式工状态为正常
if (entity.getStaffType() == StaffTypeEnum.FORMAL.getCode().shortValue()) { if (entity.getStaffType() == StaffTypeEnum.FORMAL.getCode().shortValue()) {
entity.setPhStatus(PostHandleStatusEnum.NORMALITY.getCode().shortValue()); entity.setPhStatus(PostHandleStatusEnum.NORMALITY.getCode().shortValue());

@ -150,6 +150,12 @@ public class UserClient implements IUserClient {
return R.data(service.submit(user)); return R.data(service.submit(user));
} }
@Override
@PostMapping(UPDATE_USER)
public R<Boolean> updateUser(@RequestBody List<User> userList) {
return R.data(service.saveOrUpdateBatch(userList));
}
@Override @Override
@PostMapping(REGISTER_USER) @PostMapping(REGISTER_USER)
public R<String> registerUser(User user) { public R<String> registerUser(User user) {

Loading…
Cancel
Save