职位管理

This commit is contained in:
luolm 2025-01-26 16:54:47 +08:00
parent dc3f7e3fcc
commit f707ee9a89
30 changed files with 419 additions and 2575 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,146 @@
package com.nflg.mobilebroken.admin.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.mobilebroken.admin.pojo.dto.PositionDetailDTO;
import com.nflg.mobilebroken.admin.pojo.query.DepartmentQuery;
import com.nflg.mobilebroken.admin.pojo.query.PositionQuery;
import com.nflg.mobilebroken.admin.pojo.vo.PositionDetailVO;
import com.nflg.mobilebroken.admin.pojo.vo.PositionLanguageVO;
import com.nflg.mobilebroken.common.constant.STATE;
import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.pojo.PageData;
import com.nflg.mobilebroken.common.pojo.vo.TBaseAreaVO;
import com.nflg.mobilebroken.common.util.TokenUtil;
import com.nflg.mobilebroken.common.util.VUtils;
import com.nflg.mobilebroken.repository.entity.Language;
import com.nflg.mobilebroken.repository.entity.TBasePosition;
import com.nflg.mobilebroken.repository.service.ILanguageService;
import com.nflg.mobilebroken.repository.service.ITBasePositionService;
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.print.DocFlavor;
import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 职位管理
*
* @author
*/
@RestController
@RequestMapping("/position")
public class PositionController {
@Resource
ITBasePositionService positionService;
@Resource
ILanguageService languageService;
/**
* 获取职位列表
*
* @param query
* @return
*/
@PostMapping("getList")
@MethodInfoMark(value = "获取职位列表", menuName = "职位管理")
public ApiResult<PageData<TBasePosition>> getList(@RequestBody PositionQuery query) {
Page<TBasePosition> result = positionService.getList(new Page<>(query.getPage(), query.getPageSize()), query);
return ApiResult.success(result.getRecords(), query, result.getTotal());
}
/**
* 获取明细
*
* @param id
* @return
*/
@GetMapping("getPositionDetail")
@MethodInfoMark(value = "获取职位明细", menuName = "职位管理")
public ApiResult<PositionDetailVO> getPositionDetail(@RequestParam("id") Integer id) {
TBasePosition ent = positionService.getById(id);
VUtils.trueThrow(null == ent).throwMessage(STATE.ParamErr, "职位不存在");
PositionDetailVO result = Convert.convert(PositionDetailVO.class, ent);
List<Language> allLanguage = languageService.lambdaQuery().eq(Language::getEnable, true).list();
List<PositionLanguageVO> positionLanguage = JSON.parseArray(ent.getPositionLanguage(), PositionLanguageVO.class);
Map<String, String> positionLanguageMp = positionLanguage.stream()
.collect(Collectors.toMap(PositionLanguageVO::getCode, PositionLanguageVO::getLanguageValue));
List<PositionLanguageVO> positionLanguageResult = Convert.toList(PositionLanguageVO.class, allLanguage);
for (PositionLanguageVO lan : positionLanguageResult) {
if (positionLanguageMp.containsKey(lan.getCode())) {
lan.setLanguageValue(positionLanguageMp.get(lan.getCode()));
}
}
result.setLanguage(positionLanguageResult);
return ApiResult.success(result);
}
/**
* 获取语言列表-新增时调用
* @return
*/
@GetMapping("getLanguage")
public ApiResult<List<PositionLanguageVO> > getLanguage() {
List<Language> allLanguage = languageService.lambdaQuery().eq(Language::getEnable, true).list();
return ApiResult.success(Convert.toList(PositionLanguageVO.class,allLanguage));
}
@PostMapping("add")
@MethodInfoMark(value = "新增", menuName = "职位管理")
public ApiResult<Boolean> add(@Valid @RequestBody PositionDetailDTO positionDetailDto) {
TBasePosition ent = Convert.convert(TBasePosition.class, positionDetailDto);
ent.setPositionLanguage(JSON.toJSONString(positionDetailDto.getLanguage()));
ent.setDataCreateUserNo(TokenUtil.getUserNo());
ent.setDataCreateUserName(TokenUtil.getUserName());
ent.setDataCreateTime(LocalDateTime.now());
ent.setDataModifyUserNo(TokenUtil.getUserNo());
ent.setDataModifyUserName(TokenUtil.getUserName());
ent.setDataModifyTime(LocalDateTime.now());
positionService.save(ent);
return ApiResult.success(true);
}
@PostMapping("update")
@MethodInfoMark(value = "编辑", menuName = "职位管理")
public ApiResult<Boolean> update(@Valid @RequestBody PositionDetailDTO positionDetailDto) {
VUtils.trueThrow(positionDetailDto.getId()<=0).throwMessage(STATE.ParamErr,"编辑时ID不能等于0");
TBasePosition ent = Convert.convert(TBasePosition.class, positionDetailDto);
ent.setPositionLanguage(JSON.toJSONString(positionDetailDto.getLanguage()));
ent.setDataModifyUserNo(TokenUtil.getUserNo());
ent.setDataModifyUserName(TokenUtil.getUserName());
ent.setDataModifyTime(LocalDateTime.now());
positionService.save(ent);
return ApiResult.success(true);
}
@PostMapping("del")
@MethodInfoMark(value = "删除", menuName = "职位管理")
public ApiResult<Boolean> del(@Valid @RequestBody List<Integer> ids) {
VUtils.trueThrow(CollUtil.isEmpty(ids)).throwMessage(STATE.ParamErr,"请选择要删除的行");
positionService.delByIds(ids);
return ApiResult.success(true);
}
}

View File

@ -0,0 +1,45 @@
package com.nflg.mobilebroken.admin.pojo.dto;
import com.nflg.mobilebroken.admin.pojo.vo.PositionLanguageVO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.List;
/**
* 职位详情
*/
@Data
public class PositionDetailDTO {
private Integer id=0;
/**
* 职位编码
*/
@NotBlank(message = "职位编码不能为空")
private String positionCode;
/**
* 职位名称
*/
@NotBlank(message = "职位名称不能为空")
private String positionName;
/**
* 职位属性 1-内部使用 2-外部使用 3-公用
*/
@NotBlank(message = "属性不能为空")
private Integer positionAttribute;
/**
* 职位语言
*/
List<PositionLanguageVO> language;
}

View File

@ -0,0 +1,18 @@
package com.nflg.mobilebroken.admin.pojo.query;
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
import lombok.Data;
@Data
public class PositionQuery extends PageBaseQuery {
/**
* 职位编码
*/
private String positionCode;
/**
* 职位名称
*/
private String positionName;
}

View File

@ -0,0 +1,66 @@
package com.nflg.mobilebroken.admin.pojo.vo;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 职位详情
*/
@Data
public class PositionDetailVO {
private Integer id;
/**
* 职位编码
*/
private String positionCode;
/**
* 职位名称
*/
private String positionName;
/**
* 职位属性 1-内部使用 2-外部使用 3-公用
*/
private Integer positionAttribute;
/**
* 创建人-账号
*/
private String dataCreateUserNo;
/**
* 创建人姓名
*/
private String dataCreateUserName;
/**
* 创建时间
*/
private LocalDateTime dataCreateTime;
/**
* 修改人-账号
*/
private String dataModifyUserNo;
/**
* 修改人姓名
*/
private String dataModifyUserName;
/**
* 修改时间
*/
private LocalDateTime dataModifyTime;
/**
* 职位语言
*/
List<PositionLanguageVO> language;
}

View File

@ -0,0 +1,25 @@
package com.nflg.mobilebroken.admin.pojo.vo;
import lombok.Data;
/**
* 职位多-语言
*/
@Data
public class PositionLanguageVO {
/**
* 语言编码
*/
private String code;
/**
* 语言名称
*/
private String name;
/**
* 内容
*/
private String languageValue;
}

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter
@ -59,9 +59,9 @@ public class AppUser implements Serializable {
private String phone;
/**
* 是否启用1启用0启用
* 是否启用
*/
private Byte state;
private Boolean enable;
/**
* 区域id

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -11,7 +11,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter
@ -32,6 +32,11 @@ public class Device implements Serializable {
*/
private String deviceNo;
/**
* 设备名称
*/
private String deviceName;
/**
* 设备类型
*/

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -3,7 +3,6 @@ package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@ -14,7 +13,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter
@ -55,24 +54,4 @@ public class Language implements Serializable {
* 是否启用
*/
private Boolean enable;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 最后更新人
*/
private String updateBy;
/**
* 最后更新时间
*/
private LocalDateTime updateTime;
}

View File

@ -3,20 +3,19 @@ package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 参数配置
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -13,7 +13,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author 代码生成器生成
* @since 2025-01-25
* @since 2025-01-26
*/
@Getter
@Setter

View File

@ -12,7 +12,7 @@
</sql>
<select id="getList" resultType="com.nflg.mobilebroken.common.pojo.vo.TBaseAreaVO">
select * from t_base_area where parent_area_row_id=0
select * from t_base_area where parent_area_row_id=0 <include refid="whr" />
</select>