wujianwei
6 天以前 849648e82e5dec96f9f30fcc9c9bd799268b1f4c
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
package com.ruoyi.cwgl.controller;
 
import java.util.List;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.utils.file.DownloadExportUtil;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.cwgl.domain.VoucherSubjectSetting;
import com.ruoyi.cwgl.service.IVoucherSubjectSettingService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
 
/**
 * 凭证科目设置Controller
 *
 * @author ruoyi
 * @date 2026-01-19
 */
@RestController
@RequestMapping("/cwgl/voucherSubjectSetting")
public class VoucherSubjectSettingController extends BaseController
{
    @Autowired
    private IVoucherSubjectSettingService voucherSubjectSettingService;
 
 
 
    /**
     * 查询凭证科目设置列表
     */
    @PreAuthorize("@ss.hasPermi('cwgl:voucherSubjectSetting:list')")
    @GetMapping("/list")
    public TableDataInfo list(VoucherSubjectSetting voucherSubjectSetting)
    {
        startPage();
        List<VoucherSubjectSetting> list = voucherSubjectSettingService.selectVoucherSubjectSettingList(voucherSubjectSetting);
        return getDataTable(list);
    }
 
    /**
     * 导出凭证科目设置列表
     * @param voucherSubjectSetting 查询条件对象
     */
    @PreAuthorize("@ss.hasPermi('cwgl:voucherSubjectSetting:export')")
    @Log(title = "凭证科目设置", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(VoucherSubjectSetting voucherSubjectSetting,String exportKey)
    {
        voucherSubjectSettingService.export(voucherSubjectSetting,exportKey);
        return AjaxResult.success("导出请求成功,请稍后点击下载...!");
    }
 
 
 
    /**
     * 获取凭证科目设置详细信息
     */
    @PreAuthorize("@ss.hasPermi('cwgl:voucherSubjectSetting:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable Integer id)
    {
        VoucherSubjectSetting subject = voucherSubjectSettingService.selectVoucherSubjectSettingById(id);
        if (subject != null && subject.getAccountingItems() != null) {
            subject.setAccountingItemsDesc(subject.getAccountingItemsDesc());
        }
        return AjaxResult.success(subject);
    }
 
    /**
     * 新增凭证科目设置
     */
    @PreAuthorize("@ss.hasPermi('cwgl:voucherSubjectSetting:add')")
    @Log(title = "凭证科目设置", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody VoucherSubjectSetting voucherSubjectSetting)
    {
        if (!"0".equals(voucherSubjectSettingService.checkSubjectCodeUnique(voucherSubjectSetting)))
        {
            return AjaxResult.error("新增科目'" + voucherSubjectSetting.getSubjectCode() + "'失败,科目代码已存在");
        }
        return toAjax(voucherSubjectSettingService.insertVoucherSubjectSetting(voucherSubjectSetting));
    }
 
    /**
     * 修改凭证科目设置
     */
    @PreAuthorize("@ss.hasPermi('cwgl:voucherSubjectSetting:edit')")
    @Log(title = "凭证科目设置", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody VoucherSubjectSetting voucherSubjectSetting)
    {
        // 获取原始数据用于比较科目代码是否改变
        VoucherSubjectSetting original = voucherSubjectSettingService.selectVoucherSubjectSettingById(voucherSubjectSetting.getId());
        
        // 只有当科目代码发生改变时才进行唯一性校验
        if (original != null && !original.getSubjectCode().equals(voucherSubjectSetting.getSubjectCode())) {
            if (!"0".equals(voucherSubjectSettingService.checkSubjectCodeUnique(voucherSubjectSetting)))
            {
                return AjaxResult.error("修改科目'" + voucherSubjectSetting.getSubjectCode() + "'失败,科目代码已存在");
            }
        }
        
        return toAjax(voucherSubjectSettingService.updateVoucherSubjectSetting(voucherSubjectSetting,original));
    }
 
    /**
     * 删除凭证科目设置
     */
    @PreAuthorize("@ss.hasPermi('cwgl:voucherSubjectSetting:remove')")
    @Log(title = "凭证科目设置", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Integer[] ids)
    {
        return toAjax(voucherSubjectSettingService.deleteVoucherSubjectSettingByIds(ids));
    }
}