春风项目四线(合箱线、总装线)
wujian
2024-04-28 0e3cac8d5d9603cdd5ff8935e4054f0018a35ed9
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
package com.jcdm.main.rm.repairRecord.controller;
 
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
 
import cn.hutool.core.collection.CollUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.jcdm.common.core.domain.R;
import com.jcdm.common.core.domain.entity.SysDictData;
import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
import com.jcdm.main.bs.orderScheduling.vo.FollowReportVO;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
import com.jcdm.main.rm.repairData.domain.RmRepairData;
import com.jcdm.main.rm.repairRecord.vo.RmRepairDataVO;
import com.jcdm.system.service.ISysDictDataService;
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.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord;
import com.jcdm.main.rm.repairRecord.service.IRmRepairRecordService;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
 
/**
 * 返修记录Controller
 * 
 * @author Yi
 * @date 2023-12-22
 */
@RestController
@RequestMapping("/rm/repairRecord")
public class RmRepairRecordController extends BaseController
{
    @Autowired
    private IRmRepairRecordService rmRepairRecordService;
 
    @Resource
    private ISysDictDataService iSysDictDataService;
 
    /**
     * 查询返修记录列表
     */
    @PreAuthorize("@ss.hasPermi('rm:repairRecord:list')")
    @GetMapping("/list")
    public TableDataInfo list(RmRepairRecord rmRepairRecord)
    {
        startPage();
        List<RmRepairRecord> list = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord);
        return getDataTable(list);
    }
 
    /**
     * 获取返修数据列表
     * @param rmRepairRecord
     * @return
     */
    @PreAuthorize("@ss.hasPermi('rm:repairRecord:list')")
    @GetMapping("/getRepairReportList")
    public R getRepairReportList(RmRepairRecord rmRepairRecord)
    {
        RmRepairDataVO repairReportList = rmRepairRecordService.getRepairReportList(rmRepairRecord);
        return R.ok(repairReportList);
    }
 
    @PreAuthorize("@ss.hasPermi('rm:repairRecord:export')")
    @Log(title = "返修数据报表导出", businessType = BusinessType.EXPORT)
    @PostMapping("/exportRepair")
    public void exportRepair(HttpServletResponse response, RmRepairRecord rmRepairRecord)
    {
        RmRepairDataVO repairReportList = rmRepairRecordService.getRepairReportList(rmRepairRecord);
//        List<SysDictData> allDict = iSysDictDataService.selectDictDataList(null);
        String fileName = "追溯报表";
        try {
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
            WriteSheet mainSheet = EasyExcel.writerSheet(0, "返修数据")
                    .head(RmRepairRecord.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            WriteSheet sheet1 = EasyExcel.writerSheet(1, "拧紧数据")
                    .head(DaParamCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            WriteSheet sheet2 = EasyExcel.writerSheet(2, "相机检测")
                    .head(DaParamCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            WriteSheet sheet3 = EasyExcel.writerSheet(3, "外漏检测")
                    .head(DaParamCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            WriteSheet sheet4 = EasyExcel.writerSheet(4, "机油加注")
                    .head(DaParamCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            WriteSheet sheet5 = EasyExcel.writerSheet(5, "工位结果")
                    .head(DaPassingStationCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            excelWriter.write(repairReportList.getMainList(),mainSheet);
            excelWriter.write(repairReportList.getList1(),sheet1);
            excelWriter.write(repairReportList.getList2(),sheet2);
            excelWriter.write(repairReportList.getList3(),sheet3);
            excelWriter.write(repairReportList.getList4(),sheet4);
            excelWriter.write(repairReportList.getList5(),sheet5);
            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setCharacterEncoding("UTF-8");
            response.setHeader("Content-Disposition","attachment;filename="+fileName+".xlsx");
            excelWriter.finish();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
 
 
    /**
     * 不分页查询返修记录列表
     */
    @GetMapping("/noPagelist")
    public TableDataInfo noPagelist(RmRepairRecord rmRepairRecord)
    {
        List<RmRepairRecord> list = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord);
        return getDataTable(list);
    }
 
    /**
     * 导出返修记录列表
     */
    @PreAuthorize("@ss.hasPermi('rm:repairRecord:export')")
    @Log(title = "返修记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, RmRepairRecord rmRepairRecord)
    {
        List<RmRepairRecord> list = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord);
        ExcelUtil<RmRepairRecord> util = new ExcelUtil<RmRepairRecord>(RmRepairRecord.class);
        util.exportExcel(response, list, "返修记录数据");
    }
 
    /**
     * 获取返修记录详细信息
     */
    @PreAuthorize("@ss.hasPermi('rm:repairRecord:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(rmRepairRecordService.selectRmRepairRecordById(id));
    }
 
    /**
     * 新增返修记录
     */
    @PreAuthorize("@ss.hasPermi('rm:repairRecord:add')")
    @Log(title = "返修记录", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody RmRepairRecord rmRepairRecord)
    {
        return toAjax(rmRepairRecordService.insertRmRepairRecord(rmRepairRecord));
    }
 
    /**
     * 修改返修记录
     */
    @PreAuthorize("@ss.hasPermi('rm:repairRecord:edit')")
    @Log(title = "返修记录", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody RmRepairRecord rmRepairRecord)
    {
        return toAjax(rmRepairRecordService.updateRmRepairRecord(rmRepairRecord));
    }
 
    /**
     * 删除返修记录
     */
    @PreAuthorize("@ss.hasPermi('rm:repairRecord:remove')")
    @Log(title = "返修记录", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(rmRepairRecordService.deleteRmRepairRecordByIds(ids));
    }
}