package com.qianwen.smartman.modules.system.controller;
|
|
import java.util.List;
|
|
import javax.validation.Valid;
|
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import com.qianwen.core.boot.ctrl.BladeController;
|
import com.qianwen.core.cache.utils.CacheUtil;
|
import com.qianwen.core.excel.util.ExcelUtil;
|
import com.qianwen.core.log.annotation.ApiLog;
|
import com.qianwen.core.mp.support.Condition;
|
import com.qianwen.core.mp.support.Query;
|
import com.qianwen.core.oss.model.BladeFile;
|
import com.qianwen.core.scanner.modular.annotation.GetResource;
|
import com.qianwen.core.scanner.modular.annotation.PostResource;
|
import com.qianwen.core.scanner.modular.stereotype.ApiResource;
|
import com.qianwen.core.secure.BladeUser;
|
import com.qianwen.core.secure.annotation.PreAuth;
|
import com.qianwen.core.tenant.annotation.NonDS;
|
import com.qianwen.core.tool.api.R;
|
import com.qianwen.core.tool.utils.DateUtil;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.common.cache.RegionCache;
|
import com.qianwen.smartman.common.constant.CommonConstant;
|
import com.qianwen.smartman.common.constant.ExtCacheConstant;
|
import com.qianwen.smartman.common.validator.ValidatorGroup;
|
import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder;
|
import com.qianwen.smartman.modules.resource.enums.TemplateEnum;
|
import com.qianwen.smartman.modules.resource.service.ISystemResourceService;
|
import com.qianwen.smartman.modules.system.convert.PostConvert;
|
import com.qianwen.smartman.modules.system.entity.Post;
|
import com.qianwen.smartman.modules.system.excel.PostExcel;
|
import com.qianwen.smartman.modules.system.excel.PostImport;
|
import com.qianwen.smartman.modules.system.service.IPostService;
|
import com.qianwen.smartman.modules.system.vo.PostDetailVO;
|
import com.qianwen.smartman.modules.system.vo.PostSelectVO;
|
import com.qianwen.smartman.modules.system.vo.PostVO;
|
import com.qianwen.smartman.modules.system.wrapper.PostWrapper;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
|
@Api(value = "岗位", tags = {"岗位"})
|
@RestController
|
@ApiResource({"blade-system/post"})
|
@NonDS
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/controller/PostController.class */
|
public class PostController extends BladeController {
|
private final IPostService postService;
|
private final OssBuilder ossBuilder;
|
private final ISystemResourceService systemResourceService;
|
|
public PostController(final IPostService postService, final OssBuilder ossBuilder, final ISystemResourceService systemResourceService) {
|
this.postService = postService;
|
this.ossBuilder = ossBuilder;
|
this.systemResourceService = systemResourceService;
|
}
|
|
@ApiOperationSupport(order = 1)
|
@ApiLog("岗位详情")
|
@GetResource({"/detail"})
|
@ApiOperation(value = "详情", notes = "传入post")
|
public R<PostVO> detail(Post post) {
|
Post detail = (Post) this.postService.getOne(Condition.getQueryWrapper(post));
|
return R.data(PostWrapper.build().entityVO(detail));
|
}
|
|
@ApiOperationSupport(order = 2)
|
@ApiLog("岗位分页列表")
|
@GetResource({"/list"})
|
@ApiOperation(value = "分页", notes = "传入post")
|
public R<IPage<PostVO>> list(Post post, Query query) {
|
IPage<Post> pages = this.postService.page(Condition.getPage(query), Condition.getQueryWrapper(post).lambda().orderByAsc(Post::getSort));
|
/*
|
IPage<Post> pages = this.postService.page(Condition.getPage(query), (Wrapper) Condition.getQueryWrapper(post).lambda().orderByAsc((v0) -> {
|
return v0.getSort();
|
}));*/
|
return R.data(PostWrapper.build().pageVO(pages));
|
}
|
|
@ApiOperationSupport(order = 3)
|
@ApiLog("岗位分页列表")
|
@GetResource({"/page"})
|
@ApiOperation(value = "分页", notes = "传入post")
|
@PreAuth
|
public R<IPage<PostDetailVO>> page(PostSelectVO postSelectVO, Query query) {
|
if (postSelectVO.getStatus() == null) {
|
postSelectVO.setStatus(CommonConstant.ENABLE);
|
}
|
IPage<PostDetailVO> pages = this.postService.selectPostPage(Condition.getPage(query), postSelectVO);
|
return R.data(pages);
|
}
|
|
@ApiOperationSupport(order = 4)
|
@PostResource({"/save"})
|
@ApiLog("新增岗位")
|
@ApiOperation(value = "新增", notes = "传入post")
|
public R save(@RequestBody @Validated({ValidatorGroup.add.class}) Post post) {
|
CacheUtil.clear("blade:sys", ExtCacheConstant.TENANT_MODE);
|
this.postService.checkExistPostNameOrCode(post);
|
return R.status(this.postService.save(post));
|
}
|
|
@ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL)
|
@PostResource({"/update"})
|
@ApiLog("修改岗位")
|
@ApiOperation(value = "修改", notes = "传入post")
|
@PreAuth
|
public R update(@Valid @RequestBody Post post) {
|
CacheUtil.clear("blade:sys", ExtCacheConstant.TENANT_MODE);
|
this.postService.checkExistPostNameOrCode(post);
|
return R.status(this.postService.updateById(post));
|
}
|
|
@ApiOperationSupport(order = 6)
|
@PostResource({"/submit"})
|
@ApiLog("新增或修改岗位")
|
@ApiOperation(value = "新增或修改", notes = "传入post")
|
@PreAuth
|
public R<Post> submit(@Valid @RequestBody Post post) {
|
CacheUtil.clear("blade:sys", ExtCacheConstant.TENANT_MODE);
|
this.postService.checkExistPostNameOrCode(post);
|
this.postService.insertNewPost(post);
|
return R.data(post);
|
}
|
|
@ApiOperationSupport(order = 7)
|
@PostResource({"/remove"})
|
@ApiLog("删除岗位")
|
@ApiOperation(value = "逻辑删除", notes = "传入ids")
|
@PreAuth
|
public R remove(@RequestParam @ApiParam(value = "主键集合", required = true) String ids, @RequestParam("type") @ApiParam("删除传0 停用传1") Integer type) {
|
return R.status(this.postService.removePost(Func.toLongList(ids), type).booleanValue());
|
}
|
|
@ApiOperationSupport(order = 8)
|
@GetResource({"/select"})
|
@ApiOperation(value = "下拉数据源", notes = "传入post")
|
public R<List<Post>> select(String tenantId, BladeUser bladeUser) {
|
List<Post> list = this.postService.list(Wrappers.<Post>query().lambda().eq(Post::getTenantId, Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())));
|
/*
|
List<Post> list = this.postService.list((Wrapper) Wrappers.query().lambda().eq((v0) -> {
|
return v0.getTenantId();
|
}, Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())));*/
|
return R.data(list);
|
}
|
|
@ApiOperationSupport(order = 9)
|
@GetResource({"/export-template"})
|
@ApiOperation("导出模板")
|
@PreAuth
|
public R<BladeFile> exportTemplate() {
|
return R.data(this.systemResourceService.getBusinessTemplateInfo(TemplateEnum.POST));
|
}
|
|
@ApiOperationSupport(order = 10)
|
@PostResource({"/import-post"})
|
@ApiOperation("导入岗位")
|
@PreAuth
|
public R<BladeFile> importPost(MultipartFile file) {
|
List<PostImport> data = ExcelUtil.read(file, 0, 2, PostImport.class);
|
return R.data(this.postService.importPost(data));
|
}
|
|
@ApiOperationSupport(order = 11)
|
@GetResource({"/export-post"})
|
@ApiOperation("导出岗位")
|
@PreAuth
|
public R<BladeFile> exportPost(PostSelectVO postSelectVO) {
|
IPage<PostDetailVO> pages = this.postService.selectPostPage(Condition.getPage(new Query().setCurrent(1).setSize(-1)), postSelectVO);
|
List<PostDetailVO> records = pages.getRecords();
|
String fileName = String.format("%s-%s.xlsx", "岗位数据", DateUtil.time());
|
MultipartFile multipartFile = ExcelUtil.exportToMultipartFile(fileName, "岗位数据表", PostConvert.INSTANCE.convert(records), PostExcel.class);
|
BladeFile bladeFile = this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile);
|
return R.data(bladeFile);
|
}
|
}
|