yanghb
2025-05-07 bf8f34752cc7584193d490cd6c1fe5850d31a269
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package com.ruoyi.web.controller.bussiness;
 
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.ruoyi.bussiness.domain.PlacementApplyRecord;
import com.ruoyi.bussiness.object.request.placementApply.*;
import com.ruoyi.bussiness.object.response.placementApply.PlacementApplyPageResponse;
import com.ruoyi.bussiness.object.response.placementApply.PlacementApplyRecordIdRequest;
import com.ruoyi.bussiness.object.response.placementApply.PlacementApplyRecordPageResponse;
import com.ruoyi.bussiness.service.PlacementApplyService;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.domain.BaseResult;
import com.ruoyi.common.core.domain.ResponseUtils;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.easyExcel.MultiDropdownWriteHandler;
import com.ruoyi.common.exception.GlobalException;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.system.service.ISysDictTypeService;
import com.ruoyi.bussiness.enums.TemplateFileTypeEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
 
@Validated
@Api(value = "自主购房安置申请批次表",tags = "自主购房安置申请批次表")
@RestController
@RequestMapping(value = "/placement-apply")
public class PlacementApplyController {
 
    @Autowired
    private PlacementApplyService placementApplyService;
    @Autowired
    private ISysDictTypeService dictTypeService;
 
    @ApiOperation(value = "自主购房安置申请批次表-列表", notes = "自主购房安置申请批次表-列表")
    @PostMapping(value = "/page")
    public BaseResult<PlacementApplyPageResponse> page(@RequestBody PlacementApplyPageRequest request) {
        PlacementApplyPageResponse response = placementApplyService.page(request);
        return ResponseUtils.successResponse(response);
    }
 
    @ApiOperation(value = "自主购房安置申请批次表-详情", notes = "自主购房安置申请批次表-详情")
    @PostMapping(value = "/detail")
    public BaseResult<PlacementApplyRecordPageResponse> detail(@Valid @RequestBody PlacementApplyRecordPageRequest request) {
        PlacementApplyRecordPageResponse response = placementApplyService.detail(request);
        return ResponseUtils.successResponse(response);
    }
 
    @ApiOperation(value = "自主购房安置申请批次表-删除", notes = "自主购房安置申请批次表-删除")
    @PostMapping(value = "/del")
    public BaseResult<Object> del(@RequestBody PlacementApplyIdRequest request) {
        placementApplyService.del(request);
        return ResponseUtils.successResponse();
    }
 
    @RepeatSubmit
    @ApiOperation(value = "数据审核", notes = "数据审核")
    @PostMapping(value = "/data-approve")
    public BaseResult<Object> dataApprove(@RequestBody PlacementApplyIdRequest request){
        placementApplyService.dataApprove(request);
        return ResponseUtils.successResponse();
    }
 
    @RepeatSubmit
    @ApiOperation(value = "数据核对", notes = "数据核对")
    @PostMapping(value = "/record-check")
    public BaseResult<Object> recordCheck(@Valid @RequestBody PlacementApplyRecordIdRequest request){
        placementApplyService.recordCheck(request);
        return ResponseUtils.successResponse();
    }
 
 
    @RepeatSubmit
    @ApiOperation(value = "自主购房安置申请批次表-审核", notes = "自主购房安置申请批次表-审核")
    @PostMapping(value = "/approve")
    public BaseResult<Object> approve(@Valid @RequestBody PlacementApplyApproveRequest request) {
        placementApplyService.approve(request);
        return ResponseUtils.successResponse();
    }
 
    @ApiOperation(value = "下载自主购房申请批次表模版", notes = "下载自主购房申请批次表模版")
    @PostMapping(value = "/download-template")
    public void downloadTemplate(HttpServletResponse response) throws IOException {
        try {
            //街道
            List<SysDictData> street = dictTypeService.selectDictDataByType("street");
            TemplateFileTypeEnum pathByFileType = TemplateFileTypeEnum.getEnumByFileType(2);
            Method generateExampleDataMethod = pathByFileType.getClazz().getMethod("generateExampleData");
            Method generateHeaderDataMethod = pathByFileType.getClazz().getMethod("generateHeaderData", List.class);
            Object exampleData = generateExampleDataMethod.invoke(null);
            Object headerData = generateHeaderDataMethod.invoke(null, street);
 
            FileUtils.setExcelResponseHeader(response, pathByFileType.getFileName());
            ExcelWriterBuilder write = EasyExcelFactory.write(response.getOutputStream(), pathByFileType.getClazz());
            if (Objects.nonNull(headerData)) {
                write.registerWriteHandler((MultiDropdownWriteHandler) headerData);
            }
            write.sheet("sheet")
                    .doWrite(Collections.singletonList(exampleData));
            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
        } catch (Exception e) {
            throw new GlobalException("导出模版失败");
        }
    }
 
    /**
     * 1.最外面的导入:没有申请表id的情况,需要汇总数据到申请汇总表,需要新建申请表
     * 2.详情里面的导入:有申请表id的情况,直接追加数据到现有的申请表
     * @return
     */
    @ApiOperation(value = "导入自主购房申请批次表", notes = "导入自主购房申请批次表")
    @PostMapping(value = "/imports")
    public BaseResult<Object> imports(PlacementImportsRequest request) throws IOException {
        placementApplyService.imports(request);
        return ResponseUtils.successResponse();
    }
 
    @ApiOperation(value = "自主购房申请批次表-记录添加")
    @PostMapping(value = "/record-add")
    public BaseResult<Object> recordAdd(@RequestBody PlacementApplyRecord placementApplyRecord){
        placementApplyService.recordAdd(placementApplyRecord);
        return ResponseUtils.successResponse();
    }
 
    @ApiOperation(value = "自主购房申请批次表-记录编辑")
    @PostMapping(value = "/record-detail")
    public BaseResult<PlacementApplyRecord> recordDetail(@Valid @RequestBody PlacementApplyIdRequest placementApplyRecord) {
        PlacementApplyRecord record = placementApplyService.recordDetail(placementApplyRecord);
        return ResponseUtils.successResponse(record);
    }
 
    @ApiOperation(value = "自主购房申请批次表-记录删除")
    @PostMapping(value = "/record-del")
    public BaseResult<Object> recordDel(@RequestBody PlacementApplyRecordIdRequest request){
        placementApplyService.recordDel(request);
        return ResponseUtils.successResponse();
    }
 
    @ApiOperation(value = "自主购房申请批次表-记录编辑")
    @PostMapping(value = "/record-edit")
    public BaseResult<Object> recordEdit(@RequestBody PlacementApplyRecord placementApplyRecord){
        placementApplyService.recordEdit(placementApplyRecord);
        return ResponseUtils.successResponse();
    }
 
    @ApiOperation(value = "自主购房申请批次表-问题数据导出")
    @PostMapping(value = "/problem-export")
    public void problemExport(@RequestBody ApplyProblemExportRequest request, HttpServletResponse response) throws IOException {
        placementApplyService.problemExport(request,response);
    }
 
    @ApiOperation(value = "自主购房申请批次表-全部数据导出")
    @PostMapping(value = "/exports")
    public void exports(@RequestBody ApplyAllExportRequest request, HttpServletResponse response) throws IOException {
        placementApplyService.allExport(request,response);
    }
 
}