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 list = categoryService.findList(query); Category query1 = new Category(); query1.setDeleted(Constants.ZERO); query1.setRootDepartId(getLoginUser().getRootDepartment().getId()); query1.setName(category.getName()); List 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 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 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 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> findPage(@RequestBody PageWrap 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 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 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> 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> treeCategoryList (@RequestBody QueryCategoryExtDTO pageWrap) { return ApiResponse.success(categoryExtService.treeCategoryList(pageWrap)); } }