package com.chinaztt.mes.quality.controller;
|
|
import cn.hutool.core.date.DateUtil;
|
import com.alibaba.excel.EasyExcel;
|
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
|
import com.chinaztt.mes.quality.dto.*;
|
import com.chinaztt.mes.quality.entity.Result;
|
import com.chinaztt.mes.quality.service.ResultService;
|
import com.chinaztt.mes.warehouse.entity.Stock;
|
import com.chinaztt.ztt.common.core.util.R;
|
import com.chinaztt.ztt.common.log.annotation.SysLog;
|
import com.chinaztt.ztt.common.security.annotation.Inner;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.AllArgsConstructor;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.net.URLEncoder;
|
import java.sql.Timestamp;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
|
/**
|
* 检测结果表
|
*
|
* @author cxf
|
* @date 2021-04-21 13:21:49
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/result")
|
@Api(value = "result", tags = "检测结果表管理")
|
public class ResultController {
|
|
private final ResultService resultService;
|
|
/**
|
* 分页查询
|
*
|
* @param page 分页对象
|
* @param resultDTO 检测结果表
|
* @return
|
*/
|
@ApiOperation(value = "分页查询", notes = "分页查询")
|
@GetMapping("/page")
|
@PreAuthorize("@pms.hasPermission('quality_result_view')")
|
public R getResultPage(Page page, ResultDTO resultDTO) {
|
return R.ok(resultService.getResultPage(page, QueryWrapperUtil.gen(resultDTO)));
|
}
|
|
|
/**
|
* 通过id查询检测结果表
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id查询", notes = "通过id查询")
|
@GetMapping("/{id}")
|
@PreAuthorize("@pms.hasPermission('quality_result_view')")
|
public R getById(@PathVariable("id") Long id) {
|
return R.ok(resultService.getById(id));
|
}
|
|
/**
|
* 新增检测结果表
|
*
|
* @param result 检测结果表
|
* @return R
|
*/
|
@ApiOperation(value = "新增检测结果表", notes = "新增检测结果表")
|
@SysLog("新增检测结果表")
|
@PostMapping
|
@PreAuthorize("@pms.hasPermission('quality_result_add')")
|
public R save(@RequestBody Result result) {
|
return R.ok(resultService.save(result));
|
}
|
|
/**
|
* 修改检测结果表
|
*
|
* @param result 检测结果表
|
* @return R
|
*/
|
@ApiOperation(value = "修改检测结果表", notes = "修改检测结果表")
|
@SysLog("修改检测结果表")
|
@PutMapping
|
@PreAuthorize("@pms.hasPermission('quality_result_edit')")
|
public R updateById(@RequestBody Result result) {
|
return R.ok(resultService.updateById(result));
|
}
|
|
/**
|
* 通过id删除检测结果表
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id删除检测结果表", notes = "通过id删除检测结果表")
|
@SysLog("通过id删除检测结果表")
|
@DeleteMapping("/{id}")
|
@PreAuthorize("@pms.hasPermission('quality_result_del')")
|
public R removeById(@PathVariable Long id) {
|
return R.ok(resultService.removeById(id));
|
}
|
|
/**
|
* 批量修改
|
*
|
* @param resultList 检测结果表
|
* @return R
|
*/
|
@ApiOperation(value = "批量修改", notes = "批量修改")
|
@SysLog("批量修改检测结果表")
|
@PostMapping("/updateIsUsed")
|
public R updateIsUsed(@RequestBody List<Result> resultList) {
|
return R.ok(resultService.updateBatchById(resultList));
|
}
|
|
/**
|
* 根据系统号批量修改
|
*
|
* @param resultList 检测结果表
|
* @return R
|
*/
|
@ApiOperation(value = "根据系统号批量修改", notes = "根据系统号批量修改")
|
@SysLog("批量修改检测结果表")
|
@PostMapping("/batchUpdateResultBySystemNo")
|
@PreAuthorize("@pms.hasPermission('quality_result_batchUpdateResultBySystemNo')")
|
public R batchUpdateResultBySystemNo(@RequestBody List<ResultDTO> resultList) {
|
return R.ok(resultService.batchUpdateResultById(resultList));
|
}
|
|
/**
|
* 根据入库单库存生成对应检测结果
|
*
|
* @param stockList 入库单库存
|
* @return R
|
*/
|
@ApiOperation(value = "根据入库单库存生成对应检测结果", notes = "根据入库单库存生成对应检测结果")
|
@PostMapping("/addResultByReceiving")
|
public R addResultByReceiving(@RequestBody List<Stock> stockList) {
|
return R.ok(resultService.addResultByReceiving(stockList));
|
}
|
|
/**
|
* 根据id 显示检测项
|
*
|
* @param id
|
* @return
|
*/
|
@ApiOperation(value = "根据结果id显示检测项")
|
@GetMapping("/getSampleItems")
|
public R getSampleItems(Long id) {
|
return R.ok(resultService.getSampleItems(id));
|
}
|
|
/**
|
* 检测结果2
|
*
|
* @param page
|
* @param queryDTO
|
* @return
|
*/
|
@ApiOperation(value = "检测结果2")
|
@GetMapping(value = "/getResultPageTwo")
|
public R getResultPageTwo(Page page, ResultPageTwoQueryDTO queryDTO) {
|
return R.ok(resultService.getResultPageTwo(page, queryDTO));
|
}
|
|
/**
|
* 检测结果V2
|
*/
|
@ApiOperation(value = "检测结果V2")
|
@GetMapping(value = "/getResultPageV2")
|
public R getResultPageV2(Page page, ResultPageV2QueryDTO queryDTO) {
|
return R.ok(resultService.getResultPageV2(page, queryDTO));
|
}
|
|
/**
|
* 检测结果V2导出
|
*/
|
@ApiOperation(value = "检测结果V2导出")
|
@GetMapping(value = "/exportResultV2")
|
public void exportResultV2(HttpServletResponse response, ResultPageV2QueryDTO queryDTO) throws IOException {
|
response.setContentType("application/vnd.ms-excel");
|
response.setCharacterEncoding("UTF-8");
|
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
String fileName = URLEncoder.encode("检测结果", "UTF-8");
|
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
Map<String, List<List<String>>> result = resultService.getResultListV2(queryDTO);
|
EasyExcel.write(response.getOutputStream()).head(result.get("head")).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
.sheet().doWrite(result.get("data"));
|
}
|
|
|
/**
|
* 检测汇报项的结果导出
|
*
|
* @param reportSampleDTO 检测结果
|
* @return
|
*/
|
@GetMapping("download")
|
public void download(HttpServletResponse response, ResultPageTwoQueryDTO reportSampleDTO) throws IOException {
|
response.setContentType("application/vnd.ms-excel");
|
response.setCharacterEncoding("UTF-8");
|
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
String fileName = URLEncoder.encode("检测结果", "UTF-8");
|
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
Map<String, List<List<String>>> result = resultService.getTestReportResult(reportSampleDTO);
|
EasyExcel.write(response.getOutputStream()).head(result.get("head")).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
.sheet(reportSampleDTO.getPartNo()).doWrite(result.get("data"));
|
}
|
|
@ApiOperation(value = "成品稽查明细表")
|
@GetMapping("auditingDetailReport")
|
@Inner(false)
|
public String auditingDetailReport(HttpServletRequest request) {
|
String beginTime = request.getParameter("createtime_begin");
|
String endTime = request.getParameter("createtime_end");
|
if (StringUtils.isBlank(beginTime)) {
|
beginTime = DateUtil.formatDate(new Date());
|
}
|
if (StringUtils.isBlank(endTime)) {
|
endTime = DateUtil.formatDate(new Date());
|
}
|
Timestamp begin = DateUtil.beginOfDay(DateUtil.parseDate(beginTime)).toTimestamp();
|
Timestamp end = DateUtil.endOfDay(DateUtil.parseDate(endTime)).toTimestamp();
|
List<AuditingDetailReportDTO> list = resultService.getAuditingDetailReport(begin, end);
|
JSONObject jo = new JSONObject();
|
jo.put("data", list);
|
return JSONObject.toJSONString(jo, SerializerFeature.WriteNullStringAsEmpty);
|
}
|
|
@ApiOperation(value = "成品稽查总表")
|
@GetMapping("auditingReport")
|
@Inner(false)
|
public String auditingReport(HttpServletRequest request) {
|
String beginTime = request.getParameter("createtime_begin");
|
String endTime = request.getParameter("createtime_end");
|
if (StringUtils.isBlank(beginTime)) {
|
beginTime = DateUtil.formatDate(new Date());
|
}
|
if (StringUtils.isBlank(endTime)) {
|
endTime = DateUtil.formatDate(new Date());
|
}
|
Timestamp begin = DateUtil.beginOfDay(DateUtil.parseDate(beginTime)).toTimestamp();
|
Timestamp end = DateUtil.endOfDay(DateUtil.parseDate(endTime)).toTimestamp();
|
List<AuditingReportDTO> list = resultService.getAuditingReport(begin, end);
|
JSONObject jo = new JSONObject();
|
jo.put("data", list);
|
return JSONObject.toJSONString(jo, SerializerFeature.WriteNullStringAsEmpty);
|
}
|
}
|