未符合项/重点问题管理

This commit is contained in:
root
2021-06-17 11:20:10 +08:00
parent 4ffd46b830
commit 2bb3aab2e0
31 changed files with 1641 additions and 17 deletions
@@ -0,0 +1,121 @@
package com.adc.da.slrs.sarStandIssueControlCause.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.ResponseMessageCodeEnum;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCausePage;
import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO;
import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseListVO;
import com.adc.da.slrs.sarStandIssueControlCause.service.ISarStandIssueControlCauseService;
import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified;
import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualifiedPage;
import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedExcelVO;
import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedListVO;
import com.adc.da.slrs.sarStandUnqualified.service.ISarStandUnqualifiedService;
import com.adc.da.slrs.sarStandardsInfo.controller.SarStandardsInfoController;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause;
import io.swagger.annotations.Api;
import com.adc.da.base.web.BaseController;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author super_liu
* @since 2021-06-16
*/
@RestController
@Api(tags = "|重点问题项管控模块-事业部|")
@RequestMapping("/sarStandIssueControlCause/sar-stand-issue-control-cause")
public class SarStandIssueControlCauseController extends BaseController<SarStandIssueControlCause> {
private static final Logger logger = LoggerFactory.getLogger(SarStandardsInfoController.class);
@Autowired
private ISarStandIssueControlCauseService sarStandIssueControlCauseService;
/**
* 分页查询
* @param sarStandIssueControlCausePage:筛选、分页信息
* @return ResponseMessage<IPage<SarStandIssueControlCause>>
*/
@ApiOperation("分页查询")
@GetMapping
public ResponseMessage<IPage<SarStandIssueControlCause>> getSarStandIssueControlCausePage(SarStandIssueControlCausePage sarStandIssueControlCausePage){
IPage<SarStandIssueControlCause> sarStandIssueControlCauseIPage=sarStandIssueControlCauseService.getSarStandIssueControlCausePage(sarStandIssueControlCausePage);
return Result.success(sarStandIssueControlCauseIPage);
}
/**
* 分页查询历史数据
* @param sarStandIssueControlCausePage:筛选、分页信息
* @return ResponseMessage<IPage<SarStandUnqualified>>
*/
@ApiOperation("分页查询历史数据")
@GetMapping("/history")
public ResponseMessage<IPage<SarStandIssueControlCause>> getSarStandIssueControlCauseHistoryPage(SarStandIssueControlCausePage sarStandIssueControlCausePage){
IPage<SarStandIssueControlCause> sarStandIssueControlCauseIPage=sarStandIssueControlCauseService.getSarStandIssueControlCauseHistoryPage(sarStandIssueControlCausePage);
return Result.success(sarStandIssueControlCauseIPage);
}
/**
* 批量关闭
* @param standIssueControlCauseListVO:事业部重大问题ID列表
* @return ResponseMessage<List<String>>:关闭失败的事业部重大问题ID列表
*/
@ApiOperation("批量关闭")
@PostMapping("/close")
public ResponseMessage<List<String>> closeSarStandIssueControlCause(@RequestBody StandIssueControlCauseListVO standIssueControlCauseListVO){
if(standIssueControlCauseListVO==null||standIssueControlCauseListVO.getIds().size()==0){
return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"未传入ID",null);
}
List<String> failIds=sarStandIssueControlCauseService.closeSarStandIssueControlCauseList(standIssueControlCauseListVO);
if(failIds==null||failIds.size()==0){
return Result.success(null);
}else {
return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"部分关闭失败",null);
}
}
@ApiOperation("导出Excel表")
@GetMapping(value = "/exportStandUnqulifiedExcel")
public void exportStandardsInfoExcel(StandIssueControlCauseExcelVO standIssueControlCauseExcelVO, HttpServletResponse response) throws Exception {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
try {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
if(standIssueControlCauseExcelVO.getExportName()==null){
standIssueControlCauseExcelVO.setExportName("事业部重点问题项管控");
}
String fileName = URLEncoder.encode(standIssueControlCauseExcelVO.getExportName(), "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
List<SarStandIssueControlCause> data=sarStandIssueControlCauseService.getStandIssueControlCauseExcelData(standIssueControlCauseExcelVO);
// 这里需要设置不关闭流
EasyExcel.write(response.getOutputStream(), SarStandIssueControlCause.class).autoCloseStream(Boolean.FALSE).sheet("sheet1")
.doWrite(data);
} catch (Exception e) {
System.out.println(e);
// 重置response
response.reset();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
response.getWriter().println(JSON.toJSONString(Result.error()));
}
}
}
@@ -0,0 +1,16 @@
package com.adc.da.slrs.sarStandIssueControlCause.dao;
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author super_liu
* @since 2021-06-16
*/
public interface SarStandIssueControlCauseDao extends BaseMapper<SarStandIssueControlCause> {
}
@@ -0,0 +1,116 @@
package com.adc.da.slrs.sarStandIssueControlCause.entity;
import com.adc.da.base.entity.BaseEntity;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import com.adc.da.slrs.sarStandUnqualified.utils.TimestampConverter;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author super_liu
* @since 2021-06-16
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="SarStandIssueControlCause对象", description="")
public class SarStandIssueControlCause extends BaseEntity {
private static final long serialVersionUID = 1L;
@ExcelProperty("创建部门")
@ApiModelProperty(value = "创建部门")
@TableField("CREATE_DEPT_ID")
private String createDeptId;
@ExcelProperty("创建人")
@ApiModelProperty(value = "创建人")
@TableField("CREATE_BY_ID")
private String createById;
@ExcelProperty(value = "创建时间",converter = TimestampConverter.class)
@ApiModelProperty(value = "创建时间")
@TableField("CREATE_TIME")
private Timestamp createTime;
@ExcelProperty("关闭状态")
@ApiModelProperty(value = "关闭状态(1为开启,2为关闭)")
@TableField("CLOSE_STATE")
private Integer closeState;
@ExcelIgnore
@ApiModelProperty(value = "实际关闭时间")
@TableField("ACTUAL_CLOSE_TIME")
private Timestamp actualCloseTime;
@ExcelProperty(value = "要求关闭时间",converter = TimestampConverter.class)
@ApiModelProperty(value = "要求关闭时间")
@TableField("REQUIRE_CLOSE_TIME")
private Timestamp requireCloseTime;
@ExcelProperty("质量工程师")
@ApiModelProperty(value = "质量工程师")
@TableField("QA_ENGINEER")
private String qaEngineer;
@ExcelProperty("认证工程师")
@ApiModelProperty(value = "认证工程师")
@TableField("AUTH_ENGINEER")
private String authEngineer;
@ExcelProperty("责任工程师")
@ApiModelProperty(value = "责任工程师")
@TableField("DUTY_ENGINEER")
private String dutyEngineer;
@ExcelProperty("责任部门")
@ApiModelProperty(value = "责任部门")
@TableField("RESPONSIBLE_UNIT")
private String responsibleUnit;
@ExcelProperty("项目名称")
@ApiModelProperty(value = "项目名称")
@TableField("PRODUCT_NAME")
private String productName;
@ExcelProperty("产品线")
@ApiModelProperty(value = "产品线")
@TableField("PRODUCT_LINE")
private String productLine;
@ExcelProperty("当前节点")
@ApiModelProperty(value = "当前节点")
@TableField("CURRENT_NODE")
private String currentNode;
@ExcelProperty("标准名称")
@ApiModelProperty(value = "标准名称")
@TableField("STAND_NAME")
private String standName;
@ExcelProperty("标准编号")
@ApiModelProperty(value = "标准编号")
@TableField("STAND_ID")
private String standId;
@ExcelIgnore
@ApiModelProperty(value = "主键")
@TableId("ID")
private String id;
}
@@ -0,0 +1,69 @@
package com.adc.da.slrs.sarStandIssueControlCause.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.sql.Timestamp;
@Data
@ApiModel(value="SarStandIssueControlCausePage对象", description="")
public class SarStandIssueControlCausePage{
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "创建部门")
private String createDeptId;
@ApiModelProperty(value = "创建人")
private String createById;
@ApiModelProperty(value = "创建时间")
private Timestamp createTime;
@ApiModelProperty(value = "关闭状态(1为开启,2为关闭)")
private Integer closeState;
@ApiModelProperty(value = "实际关闭时间")
private Timestamp actualCloseTime;
@ApiModelProperty(value = "要求关闭时间")
private Timestamp requireCloseTime;
@ApiModelProperty(value = "质量工程师")
private String qaEngineer;
@ApiModelProperty(value = "认证工程师")
private String authEngineer;
@ApiModelProperty(value = "责任工程师")
private String dutyEngineer;
@ApiModelProperty(value = "责任部门")
private String responsibleUnit;
@ApiModelProperty(value = "项目名称")
private String productName;
@ApiModelProperty(value = "产品线")
private String productLine;
@ApiModelProperty(value = "当前节点")
private String currentNode;
@ApiModelProperty(value = "标准名称")
private String standName;
@ApiModelProperty(value = "标准编号")
private String standId;
@ApiModelProperty(value = "主键")
private String id;
@ApiModelProperty("当前页")
private Integer current;
@ApiModelProperty("每页条数")
private Integer size;
}
@@ -0,0 +1,16 @@
package com.adc.da.slrs.sarStandIssueControlCause.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(description = "ExcelVO类")
public class StandIssueControlCauseExcelVO {
@ApiModelProperty("文件名")
String exportName;
@ApiModelProperty("导出的ID列表")
List<String> ids;
}
@@ -0,0 +1,12 @@
package com.adc.da.slrs.sarStandIssueControlCause.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class StandIssueControlCauseListVO {
@ApiModelProperty("ID列表")
private List<String> Ids;
}
@@ -0,0 +1,49 @@
package com.adc.da.slrs.sarStandIssueControlCause.service;
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause;
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCausePage;
import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO;
import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseListVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author super_liu
* @since 2021-06-16
*/
public interface ISarStandIssueControlCauseService extends IService<SarStandIssueControlCause> {
/**
* 分页查询
* @param sarStandIssueControlCausePage:筛选信息、分页信息
* @return IPage<SarStandIssueControlCause>
*/
IPage<SarStandIssueControlCause> getSarStandIssueControlCausePage(SarStandIssueControlCausePage sarStandIssueControlCausePage);
/**
* 分页查询历史数据
* @param sarStandIssueControlCausePage:筛选信息、分页信息
* @return IPage<SarStandIssueControlCause>
*/
IPage<SarStandIssueControlCause> getSarStandIssueControlCauseHistoryPage(SarStandIssueControlCausePage sarStandIssueControlCausePage);
/**
* 批量关闭
* @param standIssueControlCauseListVO:问题ID列表
* @return List<String>:关闭失败的ID列表
*/
List<String> closeSarStandIssueControlCauseList(StandIssueControlCauseListVO standIssueControlCauseListVO);
/**
* 获得excel导出的数据
* @param standIssueControlCauseExcelVO :筛选ID
* @return List<SarStandIssueControlCause>
*/
List<SarStandIssueControlCause> getStandIssueControlCauseExcelData(StandIssueControlCauseExcelVO standIssueControlCauseExcelVO);
}
@@ -0,0 +1,145 @@
package com.adc.da.slrs.sarStandIssueControlCause.service.impl;
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause;
import com.adc.da.slrs.sarStandIssueControlCause.dao.SarStandIssueControlCauseDao;
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCausePage;
import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO;
import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseListVO;
import com.adc.da.slrs.sarStandIssueControlCause.service.ISarStandIssueControlCauseService;
import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified;
import com.adc.da.slrs.sarStandUnqualified.entity.StandUnqualifiedExcelVO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author super_liu
* @since 2021-06-16
*/
@Service
public class SarStandIssueControlCauseServiceImpl extends ServiceImpl<SarStandIssueControlCauseDao, SarStandIssueControlCause> implements ISarStandIssueControlCauseService {
@Autowired
private SarStandIssueControlCauseDao sarStandIssueControlCauseDao;
/**
* 分页查询
* @param sarStandIssueControlCausePage:筛选信息、分页信息
* @return SarStandIssueControlCause
*/
@Override
public IPage<SarStandIssueControlCause> getSarStandIssueControlCausePage(SarStandIssueControlCausePage sarStandIssueControlCausePage) {
QueryWrapper<SarStandIssueControlCause> sarStandIssueControlCauseQueryWrapper=new QueryWrapper<>();
//仅查询未关闭的
sarStandIssueControlCauseQueryWrapper.eq("close_state",1);
if(sarStandIssueControlCausePage.getStandId()!=null){
sarStandIssueControlCauseQueryWrapper.eq("stand_id",sarStandIssueControlCausePage.getStandId()).or().like("stand_name","%"+sarStandIssueControlCausePage.getStandName()+"%");
}
if(sarStandIssueControlCausePage.getProductName()!=null){
sarStandIssueControlCauseQueryWrapper.like("product_name","%"+sarStandIssueControlCausePage.getProductName()+"%");
}
if(sarStandIssueControlCausePage.getResponsibleUnit()!=null){
sarStandIssueControlCauseQueryWrapper.eq("responsible_unit",sarStandIssueControlCausePage.getResponsibleUnit());
}
Page<SarStandIssueControlCause> standIssueControlCausePage=new Page<>();
//判断前端是否提供页码和每页条数
if(sarStandIssueControlCausePage.getCurrent()!=null&&sarStandIssueControlCausePage.getSize()!=null){
standIssueControlCausePage=new Page<>(sarStandIssueControlCausePage.getCurrent(),sarStandIssueControlCausePage.getSize());
}
return sarStandIssueControlCauseDao.selectPage(standIssueControlCausePage,sarStandIssueControlCauseQueryWrapper);
}
/**
* 分页查询历史数据
* @param sarStandIssueControlCausePage:筛选信息、分页信息
* @return IPage<SarStandIssueControlCause>
*/
@Override
public IPage<SarStandIssueControlCause> getSarStandIssueControlCauseHistoryPage(SarStandIssueControlCausePage sarStandIssueControlCausePage) {
QueryWrapper<SarStandIssueControlCause> sarStandIssueControlCauseQueryWrapper=new QueryWrapper<>();
//仅查询关闭的
sarStandIssueControlCauseQueryWrapper.eq("close_state",2);
if(sarStandIssueControlCausePage.getStandId()!=null){
sarStandIssueControlCauseQueryWrapper.eq("stand_id",sarStandIssueControlCausePage.getStandId()).or().like("stand_name","%"+sarStandIssueControlCausePage.getStandName()+"%");
}
if(sarStandIssueControlCausePage.getProductName()!=null){
sarStandIssueControlCauseQueryWrapper.like("product_name","%"+sarStandIssueControlCausePage.getProductName()+"%");
}
if(sarStandIssueControlCausePage.getResponsibleUnit()!=null){
sarStandIssueControlCauseQueryWrapper.eq("responsible_unit",sarStandIssueControlCausePage.getResponsibleUnit());
}
Page<SarStandIssueControlCause> standIssueControlCausePage=new Page<>();
//判断前端是否提供页码和每页条数
if(sarStandIssueControlCausePage.getCurrent()!=null&&sarStandIssueControlCausePage.getSize()!=null){
standIssueControlCausePage=new Page<>(sarStandIssueControlCausePage.getCurrent(),sarStandIssueControlCausePage.getSize());
}
return sarStandIssueControlCauseDao.selectPage(standIssueControlCausePage,sarStandIssueControlCauseQueryWrapper);
}
/**
* 批量关闭
* @param standIssueControlCauseListVO:问题ID列表
* @return List<String>:关闭失败的ID列表
*/
@Override
public List<String> closeSarStandIssueControlCauseList(StandIssueControlCauseListVO standIssueControlCauseListVO) {
List<String> failIds=new ArrayList<>();
for(String id:standIssueControlCauseListVO.getIds()){
boolean success=closeSarStandIssueControlCause(id);
if(!success){
failIds.add(id);
}
}
return failIds;
}
/**
* 获得excel导出的数据
* @param standIssueControlCauseExcelVO :筛选ID
* @return List<SarStandIssueControlCause>
*/
@Override
public List<SarStandIssueControlCause> getStandIssueControlCauseExcelData(StandIssueControlCauseExcelVO standIssueControlCauseExcelVO) {
QueryWrapper<SarStandIssueControlCause> sarStandIssueControlCauseQueryWrapper=new QueryWrapper<>();
sarStandIssueControlCauseQueryWrapper.eq("close_state",1);
if(standIssueControlCauseExcelVO.getIds()!=null&&standIssueControlCauseExcelVO.getIds().size()>0){
sarStandIssueControlCauseQueryWrapper.in("id",standIssueControlCauseExcelVO.getIds());
}
return sarStandIssueControlCauseDao.selectList(sarStandIssueControlCauseQueryWrapper);
}
/**
* 问题关闭
* @param standIssueControlCauseId:ID
* @return boolean
*/
private boolean closeSarStandIssueControlCause(String standIssueControlCauseId){
SarStandIssueControlCause sarStandIssueControlCause=sarStandIssueControlCauseDao.selectById(standIssueControlCauseId);
//判断是否存在
if(sarStandIssueControlCause==null){
return false;
}
//判断是否已关闭
if(sarStandIssueControlCause.getCloseState()==2){
return false;
}
sarStandIssueControlCause.setCloseState(2);
sarStandIssueControlCause.setActualCloseTime(new Timestamp(new Date().getTime()));
sarStandIssueControlCauseDao.updateById(sarStandIssueControlCause);
return true;
}
}