package doumeemes.api.ext;
|
|
import doumeemes.api.BaseController;
|
import doumeemes.core.annotation.excel.ExcelExporter;
|
import doumeemes.core.annotation.pr.PreventRepeat;
|
import doumeemes.core.model.ApiResponse;
|
import doumeemes.core.model.PageData;
|
import doumeemes.core.model.PageWrap;
|
import doumeemes.core.utils.Constants;
|
import doumeemes.dao.business.model.Category;
|
import doumeemes.dao.ext.dto.QueryCategoryExtDTO;
|
import doumeemes.dao.ext.vo.CategoryExtListVO;
|
import doumeemes.service.business.CategoryService;
|
import doumeemes.service.ext.CategoryExtService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 设置类分类信息表接口
|
*
|
* @author 江蹄蹄
|
* @date 2022/04/27 16:15
|
*/
|
@RestController
|
@RequestMapping("/ext/categoryExt")
|
@Api(tags = "设置类分类信息表接口")
|
public class CategoryExtController extends BaseController {
|
|
@Autowired
|
private CategoryExtService categoryExtService;
|
|
@Autowired
|
private CategoryService categoryService;
|
|
|
@PreventRepeat
|
@ApiOperation("新建")
|
@PostMapping("/create")
|
@RequiresPermissions("ext:categoryext:create")
|
public ApiResponse create(@RequestBody Category category) {
|
|
if(StringUtils.isBlank(category.getCode())){
|
category.setCode(categoryService.getNextCode(getLoginUser().getCompany().getId()));
|
}
|
|
Category query = new Category();
|
query.setDeleted(Constants.ZERO);
|
query.setRootDepartId(getLoginUser().getRootDepartment().getId());
|
query.setCode(category.getCode());
|
List<Category> list = categoryService.findList(query);
|
|
Category query1 = new Category();
|
query1.setDeleted(Constants.ZERO);
|
query1.setRootDepartId(getLoginUser().getRootDepartment().getId());
|
query1.setName(category.getName());
|
List<Category> list1 = categoryService.findList(query1);
|
if (list.size() > 0 || list1.size() > 0) {
|
return ApiResponse.failed("分类编码/分类名称已存在,不允许添加");
|
}
|
category.setDeleted(Constants.ZERO);
|
category.setCreateTime(new Date());
|
category.setCreateUser(getLoginUser().getId());
|
category.setRootDepartId(getLoginUser().getRootDepartment().getId());
|
int r = categoryService.create(category);
|
categoryExtService.loadCom(getLoginUser().getCompany());
|
return ApiResponse.success(r );
|
}
|
|
@ApiOperation("根据ID删除")
|
@ApiImplicitParam(value = "主键id", name = "id", paramType = "query", dataType = "Integer")
|
@GetMapping("/delete/{id}")
|
@RequiresPermissions("ext:categoryext:delete")
|
public ApiResponse deleteById(@PathVariable Integer id) {
|
Category category = categoryService.findById(Integer.valueOf(id));
|
category.setDeleted(Constants.ONE);
|
categoryService.updateById(category);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("批量删除")
|
@ApiImplicitParam(value = "主键ids", name = "ids", paramType = "query", dataType = "Integer")
|
@GetMapping("/delete/batch")
|
@RequiresPermissions("ext:categoryext:delete")
|
public ApiResponse deleteByIds(@RequestParam String ids) {
|
String[] idArray = ids.split(",");
|
List<Category> idList = new ArrayList<>();
|
for (String id : idArray) {
|
Category category = categoryService.findById(Integer.valueOf(id));
|
category.setDeleted(Constants.ONE);
|
idList.add(category);
|
}
|
categoryService.updateByIdInBatch(idList);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("根据ID修改")
|
@PostMapping("/updateById")
|
@RequiresPermissions("ext:categoryext:update")
|
public ApiResponse updateById(@RequestBody Category category) {
|
|
Category query = new Category();
|
query.setDeleted(Constants.ZERO);
|
query.setRootDepartId(getLoginUser().getRootDepartment().getId());
|
query.setCode(category.getCode());
|
List<Category> list = categoryService.findList(query);
|
if (list.size() > 0) {
|
if (!Constants.equalsInteger(list.get(0).getId(),category.getId()) ) {
|
return ApiResponse.failed("分类编码/分类名称已存在,不允许编辑");
|
}
|
}
|
|
Category query1 = new Category();
|
query1.setDeleted(Constants.ZERO);
|
query1.setRootDepartId(getLoginUser().getRootDepartment().getId());
|
query1.setName(category.getName());
|
List<Category> list1 = categoryService.findList(query1);
|
if (list1.size() > 0) {
|
if (!Constants.equalsInteger(list1.get(0).getId(),category.getId())) {
|
return ApiResponse.failed("分类编码/分类名称已存在,不允许编辑");
|
}
|
}
|
|
Category find= categoryService.findById(category.getId());
|
find.setUpdateTime(new Date());
|
find.setCateType(category.getCateType());
|
find.setCode(category.getCode());
|
find.setName(category.getName());
|
find.setType(category.getType());
|
find.setParentId(category.getParentId());
|
category.setUpdateUser(getLoginUser().getId());
|
categoryService.updateById(find);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("分页查询")
|
@PostMapping("/page")
|
@RequiresPermissions("ext:categoryext:query")
|
public ApiResponse<PageData<CategoryExtListVO>> findPage(@RequestBody PageWrap<QueryCategoryExtDTO> pageWrap) {
|
pageWrap.getModel().setDeleted(Constants.ZERO);
|
pageWrap.getModel().setRootDepartId(getLoginUser().getRootDepartment().getId());
|
return ApiResponse.success(categoryExtService.findPage(pageWrap));
|
}
|
|
@ApiOperation("导出Excel")
|
@PostMapping("/exportExcel")
|
@RequiresPermissions("ext:categoryext:exportExcel")
|
public void exportExcel(@RequestBody PageWrap<QueryCategoryExtDTO> pageWrap, HttpServletResponse response) {
|
ExcelExporter.build(CategoryExtListVO.class).export(categoryExtService.findPage(pageWrap).getRecords(), "设置类分类信息表", response);
|
}
|
|
@ApiOperation("根据ID查询")
|
@ApiImplicitParam(value = "主键id", name = "id", paramType = "query", dataType = "Integer")
|
@GetMapping("/{id}")
|
@RequiresPermissions("ext:categoryext:query")
|
public ApiResponse<Category> findById(@PathVariable Integer id) {
|
return ApiResponse.success(categoryService.findById(id));
|
}
|
|
@ApiOperation("查询当前用户主组织下所有从属属性名称")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "分类属性0大类 1中类 2小类", name = "type", paramType = "query", required = true, dataType = "String"),
|
@ApiImplicitParam(value = "型 0物料 1客户 2工装器具 3不良品", name = "cateType", paramType = "query", required = true, dataType = "String"),
|
@ApiImplicitParam(value = "主类型id", name = "id", paramType = "query", required = false, dataType = "String")
|
})
|
@GetMapping("/getListByType")
|
public ApiResponse<List<CategoryExtListVO>> getListByType(@RequestParam String type, @RequestParam String cateType,String id) {
|
if (StringUtils.isEmpty(type)) {
|
return ApiResponse.failed("参数不正确");
|
}
|
return ApiResponse.success(categoryExtService.getListByType(type, getLoginUser().getRootDepartment().getId(), cateType,id));
|
}
|
|
|
@ApiOperation("分类导入Excel")
|
@PostMapping("/importExcel")
|
@RequiresPermissions("ext:categoryext:importExcel")
|
public ApiResponse importExcel(@RequestParam(name = "file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
categoryService.importcategory(file);
|
return ApiResponse.success(null);
|
}
|
|
|
@ApiOperation("分类树形列表查询")
|
@PostMapping("/treeCategoryList")
|
public ApiResponse<List<CategoryExtListVO>> treeCategoryList (@RequestBody QueryCategoryExtDTO pageWrap) {
|
return ApiResponse.success(categoryExtService.treeCategoryList(pageWrap));
|
}
|
}
|