ludc
2024-12-04 e405b861b9521f5ea38c5402203a5b05988f9de2
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package com.vci.web.controller;
 
import com.vci.corba.common.PLException;
import com.vci.dto.*;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsPvolumesServiceI;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
 
/**
 * 文件柜管理的控制器
 * @author yuxc
 * @date 2024-10-14
 */
@RequestMapping("/pvolumesController")
@RestController
public class OsPvolumesController {
 
    /**
     * Action服务
     */
    @Autowired
    private OsPvolumesServiceI osPvolumesServiceI;
 
    /**
     * 分页查询卷
     * @param pageSize 第几页
     * @param pageIndex 页数
     * @return 分页数据
     */
    @GetMapping("/getPvolumesPage")
    public BaseResult getPvolumesPage(Integer pageSize, Integer pageIndex){
        try {
            if(pageIndex == null){
                pageIndex = 1000 ;
            }
            if(pageSize == null){
                pageSize = 0;
            }
            return osPvolumesServiceI.getPvolumesPage(pageSize.shortValue(), pageIndex.shortValue());
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        }
    }
 
    /**
     * 增加卷
     * @param dto 卷的传输信息
     * @return 保存结果
     */
    @PostMapping("/savePvolume")
    public BaseResult savePvolume(@RequestBody OsPvolumeDTO dto){
        try {
            return osPvolumesServiceI.savePvolume(dto);
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        }
    }
 
    /**
     * 修改卷
     * @param dto 卷的传输信息
     * @return 修改结果
     */
    @PostMapping("/updatePvolume")
    public BaseResult updatePvolume(@RequestBody OsPvolumeDTO dto){
        try {
            return osPvolumesServiceI.updatePvolume(dto);
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        }
    }
 
    /**
     * 删除卷
     * @param ids 主键集合
     * @return 删除结果
     */
    @DeleteMapping("/deletePvolume")
    public BaseResult deletePvolume(String ids){
        try {
            return osPvolumesServiceI.deletePvolume(ids);
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        }
    }
 
    /**
     * 为文件柜分配成员
     * @param pvolumId
     * @param userIds
     * @return
     */
    @PostMapping("/savePvolumeUser")
    public BaseResult savePvolumeUser(String pvolumId ,String userIds){
        try {
            return osPvolumesServiceI.savePvolumeUser(pvolumId,Func.toStrList(userIds)) ? BaseResult.success("文件柜分配成员成功!"):BaseResult.fail("文件柜分配成员失败!");
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        }
    }
 
    /**
     * 导出选中的文件柜信息
     * @param exportFileName 导出的文件名
     * @param pvolumeIds 需要导出的属性英文名称
     * @param response
     */
    @GetMapping( "/exportPvolumes")
    @VciBusinessLog(operateName = "导出选中的文件柜信息")
    public void exportPvolumes(String exportFileName, String pvolumeIds, HttpServletResponse response){
        try {
            String excelPath = osPvolumesServiceI.exportPvolumes(exportFileName,pvolumeIds);
            ControllerUtil.writeFileToResponse(response,excelPath);
        } catch (Exception e) {
            String msg = "导出文件柜时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            try {
                e.printStackTrace();
                ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null);
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
    }
 
}