未符合项/重点问题管理
This commit is contained in:
+121
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
+16
@@ -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> {
|
||||
|
||||
}
|
||||
+116
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
+69
@@ -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;
|
||||
}
|
||||
+16
@@ -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;
|
||||
}
|
||||
+12
@@ -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;
|
||||
}
|
||||
+49
@@ -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);
|
||||
}
|
||||
+145
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
package com.adc.da.slrs.sarStandIssueControlProduct.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.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.adc.da.slrs.sarStandIssueControlCause.service.ISarStandIssueControlCauseService;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProductPage;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductExcelVO;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductListVO;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.service.ISarStandIssueControlProductService;
|
||||
import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified;
|
||||
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.sarStandIssueControlProduct.entity.SarStandIssueControlProduct;
|
||||
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 zxy
|
||||
* @since 2021-06-17
|
||||
*/
|
||||
@RestController
|
||||
@Api(tags = "|重点问题项管控-产品规划部|")
|
||||
@RequestMapping("/sarStandIssueControlProduct/sar-stand-issue-control-product")
|
||||
public class SarStandIssueControlProductController extends BaseController<SarStandIssueControlProduct> {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SarStandardsInfoController.class);
|
||||
|
||||
@Autowired
|
||||
private ISarStandIssueControlProductService sarStandIssueControlProductService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param sarStandIssueControlProductPage:筛选、分页信息
|
||||
* @return ResponseMessage<IPage<SarStandIssueControlCause>>
|
||||
*/
|
||||
@ApiOperation("分页查询")
|
||||
@GetMapping
|
||||
public ResponseMessage<IPage<SarStandIssueControlProduct>> getSarStandIssueControlProductPage(SarStandIssueControlProductPage sarStandIssueControlProductPage){
|
||||
IPage<SarStandIssueControlProduct> sarStandIssueControlCauseIPage=sarStandIssueControlProductService.getSarStandIssueControlProductPage(sarStandIssueControlProductPage);
|
||||
return Result.success(sarStandIssueControlCauseIPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询历史数据
|
||||
* @param sarStandIssueControlProductPage:筛选、分页信息
|
||||
* @return ResponseMessage<IPage<SarStandUnqualified>>
|
||||
*/
|
||||
@ApiOperation("分页查询历史数据")
|
||||
@GetMapping("/history")
|
||||
public ResponseMessage<IPage<SarStandIssueControlProduct>> getSarStandIssueControlProductHistoryPage(SarStandIssueControlProductPage sarStandIssueControlProductPage){
|
||||
IPage<SarStandIssueControlProduct> sarStandIssueControlProductIPage=sarStandIssueControlProductService.getSarStandIssueControlProductHistoryPage(sarStandIssueControlProductPage);
|
||||
return Result.success(sarStandIssueControlProductIPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量关闭
|
||||
* @param standIssueControlProductListVO:重大问题ID列表
|
||||
* @return ResponseMessage<List<String>>:关闭失败的重大问题ID列表
|
||||
*/
|
||||
@ApiOperation("批量关闭")
|
||||
@PostMapping("/close")
|
||||
public ResponseMessage<List<String>> closeSarStandIssueControlCause(@RequestBody StandIssueControlProductListVO standIssueControlProductListVO){
|
||||
if(standIssueControlProductListVO==null||standIssueControlProductListVO.getIds().size()==0){
|
||||
return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"未传入ID",null);
|
||||
}
|
||||
List<String> failIds=sarStandIssueControlProductService.closeSarStandIssueControlProductList(standIssueControlProductListVO);
|
||||
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(StandIssueControlProductExcelVO standIssueControlProductExcelVO, HttpServletResponse response) throws Exception {
|
||||
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
|
||||
try {
|
||||
response.setContentType("application/vnd.ms-excel");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
||||
if(standIssueControlProductExcelVO.getExportName()==null){
|
||||
standIssueControlProductExcelVO.setExportName("产品规划部重点问题项管控");
|
||||
}
|
||||
String fileName = URLEncoder.encode(standIssueControlProductExcelVO.getExportName(), "UTF-8").replaceAll("\\+", "%20");
|
||||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
|
||||
List<SarStandIssueControlProduct> data=sarStandIssueControlProductService.getStandIssueControlProductExcelData(standIssueControlProductExcelVO);
|
||||
// 这里需要设置不关闭流
|
||||
EasyExcel.write(response.getOutputStream(), SarStandIssueControlProduct.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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.adc.da.slrs.sarStandIssueControlProduct.dao;
|
||||
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProduct;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author super_liu
|
||||
* @since 2021-06-17
|
||||
*/
|
||||
public interface SarStandIssueControlProductDao extends BaseMapper<SarStandIssueControlProduct> {
|
||||
|
||||
}
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
package com.adc.da.slrs.sarStandIssueControlProduct.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-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value="SarStandIssueControlProduct对象", description="产品规划部重大问题管控")
|
||||
public class SarStandIssueControlProduct 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;
|
||||
|
||||
@ExcelIgnore
|
||||
@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("PLATFORM")
|
||||
private String platform;
|
||||
|
||||
@ExcelProperty("业务")
|
||||
@ApiModelProperty(value = "业务")
|
||||
@TableField("BUSINESS")
|
||||
private String business;
|
||||
|
||||
@ExcelProperty("符合性状态")
|
||||
@ApiModelProperty(value = "符合性状态")
|
||||
@TableField("CONFORMANCE_STATE")
|
||||
private String conformanceState;
|
||||
|
||||
@ExcelProperty("责任工程师")
|
||||
@ApiModelProperty(value = "责任工程师")
|
||||
@TableField("DUTY_ENGINEER")
|
||||
private String dutyEngineer;
|
||||
|
||||
@ExcelProperty("责任部门")
|
||||
@ApiModelProperty(value = "责任部门")
|
||||
@TableField("RESPONSIBLE_UNIT")
|
||||
private String responsibleUnit;
|
||||
|
||||
@ExcelProperty("实施要求")
|
||||
@ApiModelProperty(value = "实施要求")
|
||||
@TableField("IMPLEMENT_DEMAND")
|
||||
private String implementDemand;
|
||||
|
||||
@ExcelProperty(value = "实施时间",converter = TimestampConverter.class)
|
||||
@ApiModelProperty(value = "实施时间")
|
||||
@TableField("IMPLEMENT_TIME")
|
||||
private Timestamp implementTime;
|
||||
|
||||
@ExcelProperty("当前节点")
|
||||
@ApiModelProperty(value = "当前节点")
|
||||
@TableField("CURRENT_NODE")
|
||||
private String currentNode;
|
||||
|
||||
@ExcelProperty(value = "标准名称/政策名称")
|
||||
@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;
|
||||
|
||||
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
package com.adc.da.slrs.sarStandIssueControlProduct.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@ApiModel(description = "产品规划部重大问题管控分页")
|
||||
public class SarStandIssueControlProductPage {
|
||||
|
||||
@ApiModelProperty(value = "创建部门")
|
||||
@TableField("CREATE_DEPT_ID")
|
||||
private String createDeptId;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
@TableField("CREATE_BY_ID")
|
||||
private String createById;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField("CREATE_TIME")
|
||||
private Timestamp createTime;
|
||||
|
||||
@ApiModelProperty(value = "关闭状态(1为开启,2为关闭)")
|
||||
@TableField("CLOSE_STATE")
|
||||
private Integer closeState;
|
||||
|
||||
@ApiModelProperty(value = "实际关闭时间")
|
||||
@TableField("ACTUAL_CLOSE_TIME")
|
||||
private Timestamp actualCloseTime;
|
||||
|
||||
@ApiModelProperty(value = "要求关闭时间")
|
||||
@TableField("REQUIRE_CLOSE_TIME")
|
||||
private Timestamp requireCloseTime;
|
||||
|
||||
@ApiModelProperty(value = "平台")
|
||||
@TableField("PLANTFORM")
|
||||
private String plantform;
|
||||
|
||||
@ApiModelProperty(value = "业务")
|
||||
@TableField("BUSINESS")
|
||||
private String business;
|
||||
|
||||
@ApiModelProperty(value = "符合性状态")
|
||||
@TableField("CONFORMANCE_STATE")
|
||||
private String conformanceState;
|
||||
|
||||
@ApiModelProperty(value = "责任工程师")
|
||||
@TableField("DUTY_ENGINEER")
|
||||
private String dutyEngineer;
|
||||
|
||||
@ApiModelProperty(value = "责任部门")
|
||||
@TableField("RESPONSIBLE_UNIT")
|
||||
private String responsibleUnit;
|
||||
|
||||
@ApiModelProperty(value = "实施要求")
|
||||
@TableField("IMPLEMEN_DEMAND")
|
||||
private String implemenDemand;
|
||||
|
||||
@ApiModelProperty(value = "实施时间")
|
||||
@TableField("IMPLEMENT_TIME")
|
||||
private Timestamp implementTime;
|
||||
|
||||
@ApiModelProperty(value = "当前节点")
|
||||
@TableField("CURRENT_NODE")
|
||||
private String currentNode;
|
||||
|
||||
@ApiModelProperty(value = "标准名称/政策名称")
|
||||
@TableField("STAND_NAME")
|
||||
private String standName;
|
||||
|
||||
@ApiModelProperty(value = "标准编号/政策编号")
|
||||
@TableField("STAND_ID")
|
||||
private String standId;
|
||||
|
||||
@ApiModelProperty(value = "主键")
|
||||
@TableId("ID")
|
||||
private String id;
|
||||
|
||||
|
||||
@ApiModelProperty("当前页")
|
||||
private Integer current;
|
||||
|
||||
@ApiModelProperty("每页条数")
|
||||
private Integer size;
|
||||
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.adc.da.slrs.sarStandIssueControlProduct.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel(description = "ExcelVO类")
|
||||
public class StandIssueControlProductExcelVO {
|
||||
@ApiModelProperty("文件名")
|
||||
String exportName;
|
||||
@ApiModelProperty("导出的ID列表")
|
||||
List<String> ids;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.adc.da.slrs.sarStandIssueControlProduct.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class StandIssueControlProductListVO {
|
||||
@ApiModelProperty("ID列表")
|
||||
private List<String> Ids;
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.adc.da.slrs.sarStandIssueControlProduct.service;
|
||||
|
||||
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause;
|
||||
import com.adc.da.slrs.sarStandIssueControlCause.entity.StandIssueControlCauseExcelVO;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProduct;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProductPage;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductExcelVO;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductListVO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author zxy
|
||||
* @since 2021-06-17
|
||||
*/
|
||||
public interface ISarStandIssueControlProductService extends IService<SarStandIssueControlProduct> {
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param sarStandIssueControlProductPage:筛选、分页信息
|
||||
* @return IPage<SarStandIssueControlProduct>
|
||||
*/
|
||||
IPage<SarStandIssueControlProduct> getSarStandIssueControlProductPage(SarStandIssueControlProductPage sarStandIssueControlProductPage);
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param sarStandIssueControlProductPage:筛选、分页信息
|
||||
* @return IPage<SarStandIssueControlProduct>
|
||||
*/
|
||||
IPage<SarStandIssueControlProduct> getSarStandIssueControlProductHistoryPage(SarStandIssueControlProductPage sarStandIssueControlProductPage);
|
||||
|
||||
/**
|
||||
* 批量关闭
|
||||
* @param standIssueControlProductListVO:关闭ID列表
|
||||
* @return List<String>:关闭失败的ID
|
||||
*/
|
||||
List<String> closeSarStandIssueControlProductList(StandIssueControlProductListVO standIssueControlProductListVO);
|
||||
|
||||
/**
|
||||
* 获得导出excel的数据
|
||||
* @param standIssueControlProductExcelVO:导出的数据ID
|
||||
* @return List<SarStandIssueControlProduct>
|
||||
*/
|
||||
List<SarStandIssueControlProduct> getStandIssueControlProductExcelData(StandIssueControlProductExcelVO standIssueControlProductExcelVO);
|
||||
}
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
package com.adc.da.slrs.sarStandIssueControlProduct.service.impl;
|
||||
|
||||
import com.adc.da.slrs.sarStandIssueControlCause.entity.SarStandIssueControlCause;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProduct;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.dao.SarStandIssueControlProductDao;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProductPage;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductExcelVO;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductListVO;
|
||||
import com.adc.da.slrs.sarStandIssueControlProduct.service.ISarStandIssueControlProductService;
|
||||
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-17
|
||||
*/
|
||||
@Service
|
||||
public class SarStandIssueControlProductServiceImpl extends ServiceImpl<SarStandIssueControlProductDao, SarStandIssueControlProduct> implements ISarStandIssueControlProductService {
|
||||
@Autowired
|
||||
private SarStandIssueControlProductDao sarStandIssueControlProductDao;
|
||||
/**
|
||||
* 分页查询
|
||||
* @param sarStandIssueControlProductPage:筛选、分页信息
|
||||
* @return IPage<SarStandIssueControlProduct>
|
||||
*/
|
||||
@Override
|
||||
public IPage<SarStandIssueControlProduct> getSarStandIssueControlProductPage(SarStandIssueControlProductPage sarStandIssueControlProductPage) {
|
||||
QueryWrapper<SarStandIssueControlProduct> sarStandIssueControlProductQueryWrapper=new QueryWrapper<>();
|
||||
//仅查询未关闭的
|
||||
sarStandIssueControlProductQueryWrapper.eq("close_state",1);
|
||||
if(sarStandIssueControlProductPage.getStandId()!=null){
|
||||
sarStandIssueControlProductQueryWrapper.eq("stand_id",sarStandIssueControlProductPage.getStandId()).or().like("stand_name","%"+sarStandIssueControlProductPage.getStandName()+"%");
|
||||
}
|
||||
if(sarStandIssueControlProductPage.getResponsibleUnit()!=null){
|
||||
sarStandIssueControlProductQueryWrapper.eq("responsible_unit",sarStandIssueControlProductPage.getResponsibleUnit());
|
||||
}
|
||||
Page<SarStandIssueControlProduct> standIssueControlCausePage=new Page<>();
|
||||
//判断前端是否提供页码和每页条数
|
||||
if(sarStandIssueControlProductPage.getCurrent()!=null&&sarStandIssueControlProductPage.getSize()!=null){
|
||||
standIssueControlCausePage=new Page<>(sarStandIssueControlProductPage.getCurrent(),sarStandIssueControlProductPage.getSize());
|
||||
}
|
||||
return sarStandIssueControlProductDao.selectPage(standIssueControlCausePage,sarStandIssueControlProductQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param sarStandIssueControlProductPage:筛选、分页信息
|
||||
* @return IPage<SarStandIssueControlProduct>
|
||||
*/
|
||||
@Override
|
||||
public IPage<SarStandIssueControlProduct> getSarStandIssueControlProductHistoryPage(SarStandIssueControlProductPage sarStandIssueControlProductPage) {
|
||||
QueryWrapper<SarStandIssueControlProduct> sarStandIssueControlProductQueryWrapper=new QueryWrapper<>();
|
||||
//仅查询关闭的
|
||||
sarStandIssueControlProductQueryWrapper.eq("close_state",2);
|
||||
if(sarStandIssueControlProductPage.getStandId()!=null){
|
||||
sarStandIssueControlProductQueryWrapper.eq("stand_id",sarStandIssueControlProductPage.getStandId()).or().like("stand_name","%"+sarStandIssueControlProductPage.getStandName()+"%");
|
||||
}
|
||||
if(sarStandIssueControlProductPage.getResponsibleUnit()!=null){
|
||||
sarStandIssueControlProductQueryWrapper.eq("responsible_unit",sarStandIssueControlProductPage.getResponsibleUnit());
|
||||
}
|
||||
Page<SarStandIssueControlProduct> standIssueControlCausePage=new Page<>();
|
||||
//判断前端是否提供页码和每页条数
|
||||
if(sarStandIssueControlProductPage.getCurrent()!=null&&sarStandIssueControlProductPage.getSize()!=null){
|
||||
standIssueControlCausePage=new Page<>(sarStandIssueControlProductPage.getCurrent(),sarStandIssueControlProductPage.getSize());
|
||||
}
|
||||
return sarStandIssueControlProductDao.selectPage(standIssueControlCausePage,sarStandIssueControlProductQueryWrapper);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量关闭
|
||||
* @param standIssueControlProductListVO:关闭ID列表
|
||||
* @return List<String>:关闭失败的ID
|
||||
*/
|
||||
@Override
|
||||
public List<String> closeSarStandIssueControlProductList(StandIssueControlProductListVO standIssueControlProductListVO) {
|
||||
List<String> failIds=new ArrayList<>();
|
||||
for(String id:standIssueControlProductListVO.getIds()){
|
||||
boolean success=closeSarStandIssueControlProduct(id);
|
||||
if(!success){
|
||||
failIds.add(id);
|
||||
}
|
||||
}
|
||||
return failIds;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得导出excel的数据
|
||||
* @param standIssueControlProductExcelVO:导出的数据ID
|
||||
* @return List<SarStandIssueControlProduct>
|
||||
*/
|
||||
@Override
|
||||
public List<SarStandIssueControlProduct> getStandIssueControlProductExcelData(StandIssueControlProductExcelVO standIssueControlProductExcelVO) {
|
||||
QueryWrapper<SarStandIssueControlProduct> sarStandIssueControlProductQueryWrapper=new QueryWrapper<>();
|
||||
sarStandIssueControlProductQueryWrapper.eq("close_state",1);
|
||||
if(standIssueControlProductExcelVO.getIds()!=null&&standIssueControlProductExcelVO.getIds().size()>0){
|
||||
sarStandIssueControlProductQueryWrapper.in("id",standIssueControlProductExcelVO.getIds());
|
||||
}
|
||||
return sarStandIssueControlProductDao.selectList(sarStandIssueControlProductQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 问题关闭
|
||||
* @param standIssueControlCauseId:ID
|
||||
* @return boolean
|
||||
*/
|
||||
private boolean closeSarStandIssueControlProduct(String standIssueControlCauseId){
|
||||
SarStandIssueControlProduct sarStandIssueControlProduct=sarStandIssueControlProductDao.selectById(standIssueControlCauseId);
|
||||
//判断是否存在
|
||||
if(sarStandIssueControlProduct==null){
|
||||
return false;
|
||||
}
|
||||
//判断是否已关闭
|
||||
if(sarStandIssueControlProduct.getCloseState()==2){
|
||||
return false;
|
||||
}
|
||||
sarStandIssueControlProduct.setCloseState(2);
|
||||
sarStandIssueControlProduct.setActualCloseTime(new Timestamp(new Date().getTime()));
|
||||
sarStandIssueControlProductDao.updateById(sarStandIssueControlProduct);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
+1
-11
@@ -2,17 +2,7 @@ package com.adc.da.slrs.sarStandProjectLibrary.service;
|
||||
|
||||
import com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibrary;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author super_liu
|
||||
* @since 2021-06-02
|
||||
*/
|
||||
public interface ISarStandProjectLibraryService extends IService<SarStandProjectLibrary> {
|
||||
|
||||
public interface ISarStandProjectLibraryService {
|
||||
IPage<SarStandProjectLibrary> queryMaintenanceProject(int current, int pageSize);
|
||||
}
|
||||
|
||||
+100
-2
@@ -1,15 +1,42 @@
|
||||
package com.adc.da.slrs.sarStandUnqualified.controller;
|
||||
|
||||
|
||||
import com.adc.da.common.ReadExcel;
|
||||
import com.adc.da.exception.AdcDaBaseException;
|
||||
import com.adc.da.http.ResponseMessage;
|
||||
import com.adc.da.http.ResponseMessageCodeEnum;
|
||||
import com.adc.da.http.Result;
|
||||
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.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo;
|
||||
import com.adc.da.slrs.sarStandardsInfo.entity.StandardsInfoExcelVO;
|
||||
import com.adc.da.utils.util.StandExportUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.adc.da.base.web.BaseController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 前端控制器
|
||||
@@ -22,8 +49,79 @@ import com.adc.da.base.web.BaseController;
|
||||
@Api(tags = "未符合项整改")
|
||||
@RequestMapping("/sarStandUnqualified/sar-stand-unqualified")
|
||||
public class SarStandUnqualifiedController extends BaseController<SarStandUnqualified> {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SarStandardsInfoController.class);
|
||||
|
||||
@Autowired
|
||||
private ISarStandUnqualifiedService sarStandUnqualifiedService;
|
||||
|
||||
/**
|
||||
* 分页查询未符合项
|
||||
* @param sarStandUnqualifiedPage:筛选、分页信息
|
||||
* @return ResponseMessage<IPage<SarStandUnqualified>>
|
||||
*/
|
||||
@ApiOperation("分页查询未符合项")
|
||||
@GetMapping
|
||||
public ResponseMessage<IPage<SarStandUnqualified>> getSarStandUnqualifiedPage(SarStandUnqualifiedPage sarStandUnqualifiedPage){
|
||||
IPage<SarStandUnqualified> sarStandUnqualifiedIPage=sarStandUnqualifiedService.getSarStandUnqualifiedPage(sarStandUnqualifiedPage);
|
||||
return Result.success(sarStandUnqualifiedIPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询未符合项历史数据
|
||||
* @param sarStandUnqualifiedPage:筛选、分页信息
|
||||
* @return ResponseMessage<IPage<SarStandUnqualified>>
|
||||
*/
|
||||
@ApiOperation("分页查询未符合项历史数据")
|
||||
@GetMapping("/history")
|
||||
public ResponseMessage<IPage<SarStandUnqualified>> getSarStandUnqualifiedHistoryPage(SarStandUnqualifiedPage sarStandUnqualifiedPage){
|
||||
IPage<SarStandUnqualified> sarStandUnqualifiedIPage=sarStandUnqualifiedService.getSarStandUnqualifiedHistoryPage(sarStandUnqualifiedPage);
|
||||
return Result.success(sarStandUnqualifiedIPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量关闭未符合项
|
||||
* @param standUnqualifiedListVO:未符合项ID列表
|
||||
* @return ResponseMessage<List<String>>:关闭失败的未符合项ID
|
||||
*/
|
||||
@ApiOperation("批量关闭未符合项")
|
||||
@PostMapping("/close")
|
||||
public ResponseMessage<List<String>> closeSarStandUnqualified(@RequestBody StandUnqualifiedListVO standUnqualifiedListVO){
|
||||
if(standUnqualifiedListVO==null||standUnqualifiedListVO.getIds().size()==0){
|
||||
return Result.error(ResponseMessageCodeEnum.ERROR.getCode(),"未传入未符合项ID",null);
|
||||
}
|
||||
List<String> failIds=sarStandUnqualifiedService.closeSarStandUnqualifiedList(standUnqualifiedListVO);
|
||||
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(StandUnqualifiedExcelVO standUnqualifiedExcelVO, HttpServletResponse response) throws Exception {
|
||||
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
|
||||
try {
|
||||
response.setContentType("application/vnd.ms-excel");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
||||
if(standUnqualifiedExcelVO.getExportName()==null){
|
||||
standUnqualifiedExcelVO.setExportName("未符合项信息");
|
||||
}
|
||||
String fileName = URLEncoder.encode(standUnqualifiedExcelVO.getExportName(), "UTF-8").replaceAll("\\+", "%20");
|
||||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
|
||||
List<SarStandUnqualified> data=sarStandUnqualifiedService.getStandUnqualifiedExcelData(standUnqualifiedExcelVO);
|
||||
// 这里需要设置不关闭流
|
||||
EasyExcel.write(response.getOutputStream(), SarStandUnqualified.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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+28
-4
@@ -1,7 +1,13 @@
|
||||
package com.adc.da.slrs.sarStandUnqualified.entity;
|
||||
|
||||
import com.adc.da.base.entity.BaseEntity;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import com.adc.da.slrs.sarStandUnqualified.utils.ProductTypeConverter;
|
||||
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;
|
||||
@@ -26,74 +32,92 @@ public class SarStandUnqualified 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 LocalDateTime createTime;
|
||||
private Timestamp createTime;
|
||||
|
||||
@ExcelIgnore
|
||||
@ApiModelProperty(value = "关闭状态(1为开启,2为关闭)")
|
||||
@TableField("CLOSE_STATE")
|
||||
private Integer closeState;
|
||||
|
||||
@ExcelIgnore
|
||||
@ApiModelProperty(value = "实际关闭时间")
|
||||
@TableField("ACTUAL_CLOSE_TIME")
|
||||
private LocalDateTime actualCloseTime;
|
||||
private Timestamp actualCloseTime;
|
||||
|
||||
@ExcelProperty(value = "计划关闭时间",converter = TimestampConverter.class)
|
||||
@ApiModelProperty(value = "计划关闭时间")
|
||||
@TableField("PLAN_CLOSE_TIME")
|
||||
private LocalDateTime planCloseTime;
|
||||
private Timestamp planCloseTime;
|
||||
|
||||
@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(value = "产品类型",converter = ProductTypeConverter.class)
|
||||
@ApiModelProperty(value = "产品类型(research为在研产品,product为在产产品)")
|
||||
@TableField("PRODUCT_TYPE")
|
||||
private String productType;
|
||||
|
||||
@ExcelProperty("条款名称")
|
||||
@ApiModelProperty(value = "条款名称")
|
||||
@TableField("ITEMS_NAME")
|
||||
private String itemsName;
|
||||
|
||||
@ExcelProperty("条款号")
|
||||
@ApiModelProperty(value = "条款号")
|
||||
@TableField("ITEMS_NUM")
|
||||
private String itemsNum;
|
||||
|
||||
@ExcelProperty("标准名称")
|
||||
@ApiModelProperty(value = "标准名称")
|
||||
@TableField("STAND_NAME")
|
||||
private String standName;
|
||||
|
||||
@ExcelProperty("标准编号")
|
||||
@ApiModelProperty(value = "标准ID")
|
||||
@TableField("STAND_ID")
|
||||
private String standId;
|
||||
|
||||
@ExcelIgnore
|
||||
@ApiModelProperty(value = "主键")
|
||||
@TableId("ID")
|
||||
private String id;
|
||||
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
package com.adc.da.slrs.sarStandUnqualified.entity;
|
||||
|
||||
import com.adc.da.base.entity.BaseEntity;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||
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-15
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value="SarStandUnqualifiedPage对象", description="")
|
||||
public class SarStandUnqualifiedPage {
|
||||
|
||||
@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 planCloseTime;
|
||||
|
||||
@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 = "产品类型(research为在研产品,product为在产产品)")
|
||||
private String productType;
|
||||
|
||||
@ApiModelProperty(value = "条款名称")
|
||||
private String itemsName;
|
||||
|
||||
@ApiModelProperty(value = "条款号")
|
||||
private String itemsNum;
|
||||
|
||||
@ApiModelProperty(value = "标准名称")
|
||||
private String standName;
|
||||
|
||||
@ApiModelProperty(value = "标准ID")
|
||||
private String standId;
|
||||
|
||||
@ApiModelProperty(value = "主键")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("当前页")
|
||||
private Integer current;
|
||||
|
||||
@ApiModelProperty("每页条数")
|
||||
private Integer size;
|
||||
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.adc.da.slrs.sarStandUnqualified.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel(description = "未符合项ExcelVO类")
|
||||
public class StandUnqualifiedExcelVO {
|
||||
@ApiModelProperty("文件名")
|
||||
String exportName;
|
||||
@ApiModelProperty("导出的未符合项ID列表")
|
||||
List<String> ids;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.adc.da.slrs.sarStandUnqualified.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class StandUnqualifiedListVO {
|
||||
@ApiModelProperty("未符合项ID列表")
|
||||
private List<String> Ids;
|
||||
}
|
||||
+33
@@ -1,8 +1,14 @@
|
||||
package com.adc.da.slrs.sarStandUnqualified.service;
|
||||
|
||||
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.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
@@ -13,4 +19,31 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface ISarStandUnqualifiedService extends IService<SarStandUnqualified> {
|
||||
|
||||
/**
|
||||
* 分页查询未符合项
|
||||
* @param sarStandUnqualifiedPage:筛选、分页信息
|
||||
* @return:IPage<SarStandUnqualified>
|
||||
*/
|
||||
IPage<SarStandUnqualified> getSarStandUnqualifiedPage(SarStandUnqualifiedPage sarStandUnqualifiedPage);
|
||||
|
||||
/**
|
||||
* 分页查询未符合项历史数据
|
||||
* @param sarStandUnqualifiedPage:筛选、分页信息
|
||||
* @return:IPage<SarStandUnqualified>
|
||||
*/
|
||||
IPage<SarStandUnqualified> getSarStandUnqualifiedHistoryPage(SarStandUnqualifiedPage sarStandUnqualifiedPage);
|
||||
|
||||
/**
|
||||
* 批量关闭未符合项
|
||||
* @param standUnqualifiedListVO :要关闭的未符合项目列表
|
||||
* @return
|
||||
*/
|
||||
List<String> closeSarStandUnqualifiedList(StandUnqualifiedListVO standUnqualifiedListVO);
|
||||
|
||||
/**
|
||||
* 获取导出excel的数据
|
||||
* @param standUnqualifiedExcelVO:ids
|
||||
* @return List<SarStandUnqualified>
|
||||
*/
|
||||
List<SarStandUnqualified> getStandUnqualifiedExcelData(StandUnqualifiedExcelVO standUnqualifiedExcelVO);
|
||||
}
|
||||
|
||||
+119
@@ -2,9 +2,23 @@ package com.adc.da.slrs.sarStandUnqualified.service.impl;
|
||||
|
||||
import com.adc.da.slrs.sarStandUnqualified.entity.SarStandUnqualified;
|
||||
import com.adc.da.slrs.sarStandUnqualified.dao.SarStandUnqualifiedDao;
|
||||
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.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 org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -17,4 +31,109 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class SarStandUnqualifiedServiceImpl extends ServiceImpl<SarStandUnqualifiedDao, SarStandUnqualified> implements ISarStandUnqualifiedService {
|
||||
|
||||
@Autowired
|
||||
private SarStandUnqualifiedDao sarStandUnqualifiedDao;
|
||||
/**
|
||||
* 分页查询未符合项
|
||||
* @param sarStandUnqualifiedPage:筛选、分页信息
|
||||
* @return:IPage<SarStandUnqualified>
|
||||
*/
|
||||
@Override
|
||||
public IPage<SarStandUnqualified> getSarStandUnqualifiedPage(SarStandUnqualifiedPage sarStandUnqualifiedPage) {
|
||||
QueryWrapper<SarStandUnqualified> sarStandUnqualifiedQueryWrapper=new QueryWrapper<>();
|
||||
//仅查询未关闭的
|
||||
sarStandUnqualifiedQueryWrapper.eq("close_state",1);
|
||||
if(sarStandUnqualifiedPage.getStandId()!=null){
|
||||
sarStandUnqualifiedQueryWrapper.eq("stand_id",sarStandUnqualifiedPage.getStandId()).or().like("stand_name","%"+sarStandUnqualifiedPage.getStandName()+"%");
|
||||
}
|
||||
if(sarStandUnqualifiedPage.getProductName()!=null){
|
||||
sarStandUnqualifiedQueryWrapper.like("product_name","%"+sarStandUnqualifiedPage.getProductName()+"%");
|
||||
}
|
||||
if(sarStandUnqualifiedPage.getResponsibleUnit()!=null){
|
||||
sarStandUnqualifiedQueryWrapper.eq("responsible_unit",sarStandUnqualifiedPage.getResponsibleUnit());
|
||||
}
|
||||
Page<SarStandUnqualified> standUnqualifiedPage=new Page<>();
|
||||
//判断前端是否提供页码和每页条数
|
||||
if(sarStandUnqualifiedPage.getCurrent()!=null&&sarStandUnqualifiedPage.getSize()!=null){
|
||||
standUnqualifiedPage=new Page<>(sarStandUnqualifiedPage.getCurrent(),sarStandUnqualifiedPage.getSize());
|
||||
}
|
||||
return sarStandUnqualifiedDao.selectPage(standUnqualifiedPage,sarStandUnqualifiedQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询未符合项历史数据
|
||||
* @param sarStandUnqualifiedPage:筛选、分页信息
|
||||
* @return:IPage<SarStandUnqualified>
|
||||
*/
|
||||
@Override
|
||||
public IPage<SarStandUnqualified> getSarStandUnqualifiedHistoryPage(SarStandUnqualifiedPage sarStandUnqualifiedPage) {
|
||||
QueryWrapper<SarStandUnqualified> sarStandUnqualifiedQueryWrapper=new QueryWrapper<>();
|
||||
//仅查询关闭的
|
||||
sarStandUnqualifiedQueryWrapper.eq("close_state",2);
|
||||
if(sarStandUnqualifiedPage.getStandId()!=null){
|
||||
sarStandUnqualifiedQueryWrapper.eq("stand_id",sarStandUnqualifiedPage.getStandId()).or().like("stand_name","%"+sarStandUnqualifiedPage.getStandName()+"%");
|
||||
}
|
||||
if(sarStandUnqualifiedPage.getProductName()!=null){
|
||||
sarStandUnqualifiedQueryWrapper.like("product_name","%"+sarStandUnqualifiedPage.getProductName()+"%");
|
||||
}
|
||||
if(sarStandUnqualifiedPage.getResponsibleUnit()!=null){
|
||||
sarStandUnqualifiedQueryWrapper.eq("responsible_unit",sarStandUnqualifiedPage.getResponsibleUnit());
|
||||
}
|
||||
Page<SarStandUnqualified> standUnqualifiedPage=new Page<>();
|
||||
//判断前端是否提供页码和每页条数
|
||||
if(sarStandUnqualifiedPage.getCurrent()!=null&&sarStandUnqualifiedPage.getSize()!=null){
|
||||
standUnqualifiedPage=new Page<>(sarStandUnqualifiedPage.getCurrent(),sarStandUnqualifiedPage.getSize());
|
||||
}
|
||||
return sarStandUnqualifiedDao.selectPage(standUnqualifiedPage,sarStandUnqualifiedQueryWrapper);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量关闭未符合项
|
||||
* @param standUnqualifiedListVO :要关闭的未符合项目列表
|
||||
* @return List<String>:失败的ID列表
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public List<String> closeSarStandUnqualifiedList(StandUnqualifiedListVO standUnqualifiedListVO) {
|
||||
List<String> failIds=new ArrayList<>();
|
||||
for(String id:standUnqualifiedListVO.getIds()){
|
||||
boolean success=closeSarStandUnqualified(id);
|
||||
if(!success){
|
||||
failIds.add(id);
|
||||
}
|
||||
}
|
||||
return failIds;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导出excel的数据
|
||||
* @param standUnqualifiedExcelVO:ids
|
||||
* @return List<SarStandUnqualified>
|
||||
*/
|
||||
@Override
|
||||
public List<SarStandUnqualified> getStandUnqualifiedExcelData(StandUnqualifiedExcelVO standUnqualifiedExcelVO) {
|
||||
QueryWrapper<SarStandUnqualified> sarStandUnqualifiedQueryWrapper=new QueryWrapper<>();
|
||||
sarStandUnqualifiedQueryWrapper.eq("close_state",1);
|
||||
if(standUnqualifiedExcelVO.getIds()!=null&&standUnqualifiedExcelVO.getIds().size()>0){
|
||||
sarStandUnqualifiedQueryWrapper.in("id",standUnqualifiedExcelVO.getIds());
|
||||
}
|
||||
return sarStandUnqualifiedDao.selectList(sarStandUnqualifiedQueryWrapper);
|
||||
}
|
||||
|
||||
private boolean closeSarStandUnqualified(String standUnqualifiedId){
|
||||
SarStandUnqualified sarStandUnqualified=sarStandUnqualifiedDao.selectById(standUnqualifiedId);
|
||||
//判断是否存在
|
||||
if(sarStandUnqualified==null){
|
||||
return false;
|
||||
}
|
||||
//判断是否已关闭
|
||||
if(sarStandUnqualified.getCloseState()==2){
|
||||
return false;
|
||||
}
|
||||
sarStandUnqualified.setCloseState(2);
|
||||
sarStandUnqualified.setActualCloseTime(new Timestamp(new Date().getTime()));
|
||||
sarStandUnqualifiedDao.updateById(sarStandUnqualified);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package com.adc.da.slrs.sarStandUnqualified.utils;
|
||||
|
||||
import com.alibaba.excel.converters.Converter;
|
||||
import com.alibaba.excel.enums.CellDataTypeEnum;
|
||||
import com.alibaba.excel.metadata.CellData;
|
||||
import com.alibaba.excel.metadata.GlobalConfiguration;
|
||||
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
||||
|
||||
/**
|
||||
* excel产品类型转换
|
||||
*/
|
||||
public class ProductTypeConverter implements Converter<String> {
|
||||
//在java中性别是用 0 1 来标识的 所以是int
|
||||
@Override
|
||||
public Class<?> supportJavaTypeKey() {return String.class;}
|
||||
// 在excel中是男女 所以是string
|
||||
@Override
|
||||
public CellDataTypeEnum supportExcelTypeKey() {return CellDataTypeEnum.STRING;}
|
||||
//将excel的数据类型转为java数据类型
|
||||
@Override
|
||||
public String convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
|
||||
String stringValue = cellData.getStringValue();
|
||||
if (stringValue != null) {
|
||||
if(stringValue.equals("在研产品")){
|
||||
return "research";
|
||||
}
|
||||
if(stringValue.equals("在产产品")){
|
||||
return "product";
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CellData<String> convertToExcelData(String s, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
|
||||
if(s!=null){
|
||||
if(s.equals("research")){
|
||||
return new CellData<>("在研产品");
|
||||
}
|
||||
if(s.equals("product")){
|
||||
return new CellData<>("在产产品");
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package com.adc.da.slrs.sarStandUnqualified.utils;
|
||||
|
||||
import com.adc.da.utils.util.DateUtil;
|
||||
import com.alibaba.excel.converters.Converter;
|
||||
import com.alibaba.excel.enums.CellDataTypeEnum;
|
||||
import com.alibaba.excel.metadata.CellData;
|
||||
import com.alibaba.excel.metadata.GlobalConfiguration;
|
||||
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.text.ParseException;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* excel输出时Timestamp和String的转换
|
||||
*/
|
||||
public class TimestampConverter implements Converter<Timestamp> {
|
||||
|
||||
@Override
|
||||
public Class<Timestamp> supportJavaTypeKey() {
|
||||
return Timestamp.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CellDataTypeEnum supportExcelTypeKey() {
|
||||
return CellDataTypeEnum.STRING;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Timestamp convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
|
||||
GlobalConfiguration globalConfiguration) throws ParseException {
|
||||
return new Timestamp(DateUtil.stingToDate(cellData.getDataFormatString(),"yyyy-MM-dd HH:mm:ss").getTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CellData<String> convertToExcelData(Timestamp value, ExcelContentProperty contentProperty,
|
||||
GlobalConfiguration globalConfiguration) {
|
||||
return new CellData<>(DateUtil.dateToString(new Date(value.getTime()),"yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -55,6 +55,36 @@ public class DateUtil {
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将日期对象转换为指定的日期字符串
|
||||
*
|
||||
* @param date 传入的日期对象
|
||||
* @param format 格式
|
||||
* @return 日期字符串
|
||||
* @author 赵肖云
|
||||
*/
|
||||
public static String dateToString(Date date, String format) {
|
||||
String string = "";
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
|
||||
if (date != null) {
|
||||
string = simpleDateFormat.format(date);
|
||||
}
|
||||
return string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将日期字符串转换为一个日期对象
|
||||
*
|
||||
* @param datestr 日期字符串
|
||||
* @param format 格式
|
||||
* @return Date
|
||||
* @author 赵肖云
|
||||
*/
|
||||
public static Date stingToDate(String datestr, String format) throws ParseException {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
|
||||
return simpleDateFormat.parse(datestr);
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
String utcTime = "2021-04-15T01:43:54.296Z";
|
||||
|
||||
Reference in New Issue
Block a user