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
package com.ruoyi.web.controller.bussiness;
 
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.ruoyi.bussiness.domain.Placement;
import com.ruoyi.bussiness.domain.PlacementBatchHousehold;
import com.ruoyi.bussiness.object.request.placement.PlacementIdRequest;
import com.ruoyi.bussiness.object.request.placement.PlacementImportRequest;
import com.ruoyi.bussiness.object.request.placement.PlacementPageRequest;
import com.ruoyi.bussiness.object.response.placement.GetHouseHistoryRequest;
import com.ruoyi.bussiness.object.response.placement.PlacementPageResponse;
import com.ruoyi.bussiness.service.PlacementBatchHouseholdService;
import com.ruoyi.bussiness.service.PlacementService;
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 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")
public class PlacementController {
 
    @Autowired
    private PlacementService placementService;
    @Autowired
    private ISysDictTypeService dictTypeService;
 
    @ApiOperation(value = "列表", notes = "列表")
    @PostMapping(value = "/page")
    public BaseResult<PlacementPageResponse> page(@RequestBody PlacementPageRequest request) {
        PlacementPageResponse response = placementService.page(request);
        return ResponseUtils.successResponse(response);
    }
 
    @ApiOperation(value = "查询安置购房信息", notes = "查询安置购房信息")
    @PostMapping(value = "/get-house-history")
    public BaseResult<List<PlacementBatchHousehold>> getHouseHistory(@RequestBody GetHouseHistoryRequest request){
//        List<PlacementBatchHousehold> households = placementBatchHouseholdService.getHouseHistory(request);
//        return ResponseUtils.successResponse(households);
        return ResponseUtils.successResponse(null);
    }
 
    @RepeatSubmit
    @ApiOperation(value = "新增", notes = "新增")
    @PostMapping(value = "/add")
    public BaseResult<Object> add(@RequestBody Placement placement) {
        placementService.add(placement);
        return ResponseUtils.successResponse();
    }
 
    @ApiOperation(value = "编辑", notes = "编辑")
    @PostMapping(value = "/edit")
    public BaseResult<Object> edit(@RequestBody Placement placement) {
        placementService.update(placement);
        return ResponseUtils.successResponse();
    }
 
    @ApiOperation(value = "详情", notes = "详情")
    @PostMapping(value = "/detail")
    public BaseResult<Placement> detail(@RequestBody PlacementIdRequest request) {
        Placement placement = placementService.detail(request);
        return ResponseUtils.successResponse(placement);
    }
 
    @ApiOperation(value = "删除", notes = "删除")
    @PostMapping(value = "/del")
    public BaseResult<Object> del(@RequestBody PlacementIdRequest request) {
        placementService.del(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");
            List<SysDictData> relation = dictTypeService.selectDictDataByType("relation");
            TemplateFileTypeEnum pathByFileType = TemplateFileTypeEnum.getEnumByFileType(1);
            Method generateExampleDataMethod = pathByFileType.getClazz().getMethod("generateExampleData");
            Method generateHeaderDataMethod = pathByFileType.getClazz().getMethod("generateHeaderData",List.class,List.class);
            Object exampleData = generateExampleDataMethod.invoke(null);
            Object headerData = generateHeaderDataMethod.invoke(null,street,relation);
 
            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("导出模版失败");
        }
    }
 
    @ApiOperation(value = "导入", notes = "导入")
    @PostMapping(value = "/imports")
    public BaseResult<Object> imports(PlacementImportRequest request) {
        placementService.imports(request);
        return ResponseUtils.successResponse();
    }
 
 
}