无关风月
2025-03-06 40158f61b8bf3f07c3ebc928ccd8e5ccbc2e22ff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package com.ruoyi.web.controller.api;
 
 
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.model.TItem;
import com.ruoyi.system.model.TItemType;
import com.ruoyi.system.query.TItemTypeQuery;
import com.ruoyi.system.service.TItemService;
import com.ruoyi.system.service.TItemTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import java.util.List;
 
/**
 * <p>
 * 维修物品分类 前端控制器
 * </p>
 *
 * @author xiaochen
 * @since 2025-01-17
 */
@Api(tags = "维修物品分类管理")
@RestController
@RequestMapping("/t-item-type")
public class TItemTypeController {
 
    private final TItemTypeService itemTypeService;
    private final TItemService itemService;
    @Autowired
    public TItemTypeController(TItemTypeService itemTypeService, TItemService itemService) {
        this.itemTypeService = itemTypeService;
        this.itemService = itemService;
    }
 
    /**
     * 获取维修物品分类管理列表
     */
    @PreAuthorize("@ss.hasPermi('houseManage:class_list')")
    @ApiOperation(value = "获取维修物品分类分页列表")
    @PostMapping(value = "/pageList")
    public R<PageInfo<TItemType>> pageList(@RequestBody TItemTypeQuery query) {
        return R.ok(itemTypeService.pageList(query));
    }
 
    /**
     * 获取维修物品分类管理列表
     */
    @ApiOperation(value = "获取维修物品分类列表")
    @PostMapping(value = "/list")
    public R<List<TItemType>> list() {
        return R.ok(itemTypeService.list(Wrappers.lambdaQuery(TItemType.class).orderByDesc(TItemType::getSortBy).orderByDesc(TItemType::getCreateTime)));
    }
 
    /**
     * 添加维修物品分类管理
     */
    @PreAuthorize("@ss.hasPermi('houseManage:class:add')")
    @Log(title = "维修物品分类信息-新增维修物品分类", businessType = BusinessType.INSERT)
    @ApiOperation(value = "添加维修物品分类")
    @PostMapping(value = "/add")
    public R<Boolean> add(@Validated @RequestBody TItemType dto) {
        if (itemTypeService.isExit(dto)) {
            return R.fail("维修物品分类名称已存在");
        }
        return R.ok(itemTypeService.save(dto));
    }
 
    /**
     * 修改维修物品分类
     */
    @PreAuthorize("@ss.hasPermi('houseManage:class:edit')")
    @Log(title = "维修物品分类信息-修改维修物品分类", businessType = BusinessType.UPDATE)
    @ApiOperation(value = "修改维修物品分类")
    @PostMapping(value = "/update")
    public R<Boolean> update(@Validated @RequestBody TItemType dto) {
        if (itemTypeService.isExit(dto)) {
            return R.fail("维修物品分类名称已存在");
        }
        return R.ok(itemTypeService.updateById(dto));
    }
 
    /**
     * 查看维修物品分类详情
     */
    @PreAuthorize("@ss.hasPermi('houseManage:class:edit')")
    @ApiOperation(value = "查看维修物品分类详情")
    @GetMapping(value = "/getDetailById")
    public R<TItemType> getDetailById(@RequestParam String id) {
        return R.ok(itemTypeService.getById(id));
    }
 
    /**
     * 删除维修物品分类
     */
    @PreAuthorize("@ss.hasPermi('houseManage:class:delete')")
    @Log(title = "维修物品分类信息-删除维修物品分类", businessType = BusinessType.DELETE)
    @ApiOperation(value = "删除维修物品分类")
    @DeleteMapping(value = "/deleteById")
    public R<Boolean> deleteById(@RequestParam String id) {
        long count = itemService.count(Wrappers.lambdaQuery(TItem.class).eq(TItem::getTypeId, id));
        if (count>0) {
            return R.fail("该分类下有维修物品,无法删除");
        }
        return R.ok(itemTypeService.removeById(id));
    }
 
    /**
     * 批量删除维修物品分类
     */
    @PreAuthorize("@ss.hasPermi('houseManage:class:delete')")
    @Log(title = "维修物品分类信息-删除维修物品分类", businessType = BusinessType.DELETE)
    @ApiOperation(value = "批量删除维修物品分类")
    @DeleteMapping(value = "/deleteByIds")
    public R<Boolean> deleteByIds(@RequestBody List<String> ids) {
        List<TItem> items = itemService.list(Wrappers.lambdaQuery(TItem.class).in(TItem::getTypeId, ids));
        for (String id : ids) {
            if (items.stream().anyMatch(t -> t.getTypeId().equals(id))) {
                TItemType itemType = itemTypeService.getById(id);
                return R.fail("该分类["+itemType.getTypeName()+"]下有维修物品,无法删除");
            }
        }
        return R.ok(itemTypeService.removeByIds(ids));
    }
    
}