From a1fee557af642c8b550a3e2ff5c0271d3460f6b9 Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Sun, 5 Dec 2021 18:42:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EarlyWarningEOController.java | 40 ++++++++++ .../dao/EarlyWarningEODao.java | 4 +- .../entity/EarlyWarningEO.java | 19 ++++- .../entity/StandWarningEO.java | 21 ++++- .../entity/WarningExcelVO.java | 15 ++++ .../service/EarlyWarningEOService.java | 3 + .../Impl/EarlyWarningEOServiceImpl.java | 14 +++- .../sarStandWarning/EarlyWraningEOMapper.xml | 77 +++++++++++-------- 8 files changed, 156 insertions(+), 37 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/WarningExcelVO.java diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/controller/EarlyWarningEOController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/controller/EarlyWarningEOController.java index 3b034a1f..fa91fe23 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/controller/EarlyWarningEOController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/controller/EarlyWarningEOController.java @@ -4,10 +4,15 @@ package com.adc.da.slrs.sarStandWarning.controller; import com.adc.da.base.web.BaseController; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.SarStandIssueControlProduct; +import com.adc.da.slrs.sarStandIssueControlProduct.entity.StandIssueControlProductExcelVO; import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO; import com.adc.da.slrs.sarStandWarning.entity.StandWarningEO; +import com.adc.da.slrs.sarStandWarning.entity.WarningExcelVO; import com.adc.da.slrs.sarStandWarning.service.Impl.EarlyWarningEOServiceImpl; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -17,6 +22,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -113,4 +120,37 @@ public class EarlyWarningEOController extends BaseController { return Result.success("200",listMap); } + + + + + @GetMapping("/exprotWarning") + @ApiOperation("导出预警") + public void exportStandardsInfoExcel(WarningExcelVO excelVO, HttpServletResponse response) throws Exception { + // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman + try { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + if(excelVO.getExportName()==null){ + excelVO.setExportName("标准预警"); + } + String fileName = URLEncoder.encode(excelVO.getExportName(), "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + + List exportExcel = earlyWarningEOService.getExportExcel(excelVO); + + + // 这里需要设置不关闭流 + EasyExcel.write(response.getOutputStream(), SarStandIssueControlProduct.class).autoCloseStream(Boolean.FALSE).sheet("sheet1") + .doWrite(exportExcel); + } 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())); + } + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/dao/EarlyWarningEODao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/dao/EarlyWarningEODao.java index 853cf4d4..0aac00c8 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/dao/EarlyWarningEODao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/dao/EarlyWarningEODao.java @@ -7,8 +7,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface EarlyWarningEODao extends BaseMapper { - IPage selectWarningPage(IPage page, @Param("waringEO") StandWarningEO warningEO); + IPage selectWarningPage(IPage page, @Param("waringEO") StandWarningEO warningEO,@Param("idList") List ids); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/EarlyWarningEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/EarlyWarningEO.java index 0fde3f51..0471434c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/EarlyWarningEO.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/EarlyWarningEO.java @@ -1,6 +1,8 @@ package com.adc.da.slrs.sarStandWarning.entity; import com.adc.da.base.entity.BaseEntity; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -25,64 +27,79 @@ public class EarlyWarningEO extends BaseEntity { private static final long serialVersionUID = 1L; + @ExcelIgnore @ApiModelProperty("id") @TableId("ID") private String id; + @ExcelIgnore @ApiModelProperty("标准id") @TableField("STAND_ID") private String standId; + @ExcelIgnore @ApiModelProperty("标准类别") @TableField(exist = false) private String standType; + @ExcelProperty("标准号") @ApiModelProperty("标准号") @TableField(exist = false) private String standCode; + @ExcelProperty("标准名称") @ApiModelProperty("标准名称") @TableField(exist = false) private String standName; + @ExcelProperty("发布日期") @ApiModelProperty("发布日期") @TableField(exist = false) @DateTimeFormat(pattern="yyyy-MM-dd") private Date putTime; + @ExcelIgnore @TableField(exist = false) private Date lastTime; + @ExcelProperty("适用车型") @ApiModelProperty("适用车型") @TableField(exist = false) private String applyType; + @ExcelProperty("责任工程师") @ApiModelProperty("责任工程师") @TableField(exist = false) private String dutyEngineer; + @ExcelIgnore @ApiModelProperty("条款(分解单)id") @TableField(exist = false) private String itemsId; + @ExcelProperty("条款(分解单)编号") @ApiModelProperty("条款(分解单)编号") @TableField(exist = false) private String itemsNum; + @ExcelProperty("条款(分解单)名称") @ApiModelProperty("条款(分解单)名称") @TableField(exist = false) private String itemsName; + @ExcelIgnore @TableField("POLICY_ID") private String policyId; + @ExcelIgnore @TableField(exist = false) private String policyName; - + @ExcelIgnore @TableField("MARK") private String mark; + @ExcelIgnore @TableField("POWER") private String power; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/StandWarningEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/StandWarningEO.java index b4c77336..b1604d9a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/StandWarningEO.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/StandWarningEO.java @@ -1,5 +1,7 @@ package com.adc.da.slrs.sarStandWarning.entity; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; @@ -11,62 +13,79 @@ import java.util.Date; @Accessors(chain = true) public class StandWarningEO extends EarlyWarningEO { private static final long serialVersionUID = 1L; + + @ExcelProperty("新车型实施日期") @ApiModelProperty("新车型实施日期") @DateTimeFormat(pattern = "YYYY-MM-dd") private String XCXSSRQ; + @ExcelProperty("在产车实施日期") @ApiModelProperty("在产车实施日期") @DateTimeFormat(pattern = "YYYY-MM-dd") private String ZCCSSRQ; + @ExcelProperty("实施日期") @ApiModelProperty("实施日期") @DateTimeFormat(pattern = "YYYY-MM-dd") private String SSRQ; + @ExcelProperty("标准编号") private String standNum; + @ExcelProperty("标准类别") private String standSort; + @ExcelProperty("标准年份") private String standYear; + @ExcelProperty("发布日期") private String issueTime; + @ExcelIgnore private Integer page; + @ExcelIgnore private Integer pageSize; + @ExcelIgnore @ApiModelProperty("范围查询新车型实施日期开始") @DateTimeFormat(pattern = "YYYY-MM-dd") private String startXCXSSRQ; + @ExcelIgnore @ApiModelProperty("范围查询新车型实施日期结束") @DateTimeFormat(pattern = "YYYY-MM-dd") private String endXCXSSRQ; + @ExcelIgnore @ApiModelProperty("范围查询在产车实施日期开始") @DateTimeFormat(pattern = "YYYY-MM-dd") private String startZCCSSRQ; + @ExcelIgnore @ApiModelProperty("范围查询在产车实施日期结束") @DateTimeFormat(pattern = "YYYY-MM-dd") private String endZCCSSRQ; + @ExcelIgnore @ApiModelProperty("范围查询实施日期开始") @DateTimeFormat(pattern = "YYYY-MM-dd") private String startSSRQ; + @ExcelIgnore @ApiModelProperty("范围查询实施日期结束") @DateTimeFormat(pattern = "YYYY-MM-dd") private String endSSRQ; + @ExcelIgnore @ApiModelProperty("范围查询发布日期开始") @DateTimeFormat(pattern = "YYYY-MM-dd") private String startPutTime; - + @ExcelIgnore @ApiModelProperty("范围查询发布日期结束") @DateTimeFormat(pattern = "YYYY-MM-dd") private String endPutTime; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/WarningExcelVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/WarningExcelVO.java new file mode 100644 index 00000000..179e4d3f --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/WarningExcelVO.java @@ -0,0 +1,15 @@ +package com.adc.da.slrs.sarStandWarning.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + + +@Data +public class WarningExcelVO { + @ApiModelProperty("文件名") + String exportName; + @ApiModelProperty("导出的ID列表") + List ids; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/service/EarlyWarningEOService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/service/EarlyWarningEOService.java index 89ce035e..fea9090f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/service/EarlyWarningEOService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/service/EarlyWarningEOService.java @@ -3,6 +3,7 @@ package com.adc.da.slrs.sarStandWarning.service; import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO; import com.adc.da.slrs.sarStandWarning.entity.StandWarningEO; +import com.adc.da.slrs.sarStandWarning.entity.WarningExcelVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -20,4 +21,6 @@ public interface EarlyWarningEOService extends IService { IPage getStandWarning(StandWarningEO queryPage); + + List getExportExcel(WarningExcelVO excelVO); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/service/Impl/EarlyWarningEOServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/service/Impl/EarlyWarningEOServiceImpl.java index fa113ac5..d22a9db3 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/service/Impl/EarlyWarningEOServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/service/Impl/EarlyWarningEOServiceImpl.java @@ -4,6 +4,7 @@ package com.adc.da.slrs.sarStandWarning.service.Impl; import com.adc.da.slrs.sarStandWarning.dao.EarlyWarningEODao; import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO; import com.adc.da.slrs.sarStandWarning.entity.StandWarningEO; +import com.adc.da.slrs.sarStandWarning.entity.WarningExcelVO; import com.adc.da.slrs.sarStandWarning.service.EarlyWarningEOService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -111,9 +112,20 @@ public class EarlyWarningEOServiceImpl extends ServiceImpl getStandWarning(StandWarningEO queryPage) { IPage iPage = new Page<>(queryPage.getPage(),queryPage.getPageSize()); - return earlyWarningEODao.selectWarningPage(iPage,queryPage); + return earlyWarningEODao.selectWarningPage(iPage,queryPage,null); } + /** + * 导出预警 + * @return + */ + @Override + public List getExportExcel(WarningExcelVO excelVO){ + IPage standWarningEOIPage = earlyWarningEODao.selectWarningPage(null, null, excelVO.getIds()); + return standWarningEOIPage.getRecords(); + } + + private IPage getEarlyWarningEOIPage(int current,int pageSize, QueryWrapper wrapper) { wrapper.eq("power",1); Page page = new Page<>(current, pageSize); diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandWarning/EarlyWraningEOMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandWarning/EarlyWraningEOMapper.xml index 539c96ec..08718b4e 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandWarning/EarlyWraningEOMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandWarning/EarlyWraningEOMapper.xml @@ -37,40 +37,51 @@ - - AND trim(replace(CONCAT( - sarInfo.STAND_SORT, - ' ', - sarInfo.STAND_NUMBER, - '-', - sarInfo.STAND_YEAR - ),' ','')) LIKE trim(replace(CONCAT('%',#{waringEO.standCode},'%'),' ','')) - - - AND sarInfo.STAND_NAME like concat('%', #{waringEO.standName},'%') - - - AND ( - DATE_FORMAT(sarInfo.PUT_TIME, '%Y-%m-%d') >= DATE_FORMAT( - #{waringEO.endPutTime}, - '%Y-%m-%d' - ) - AND - DATE_FORMAT( sarInfo.PUT_TIME, '%Y-%m-%d') <= DATE_FORMAT( - #{waringEO.endPutTime}, - '%Y-%m-%d' - ) - ) - - - AND ( - sarInfo.ID IN (SELECT DISTINCT law_id FROM warning_date as t WHERE - DATE_FORMAT(t.SSRQ, '%Y-%m-%d') >= DATE_FORMAT(#{waringEO.startSSRQ}, '%Y-%m-%d') - AND - DATE_FORMAT(t.SSRQ, '%Y-%m-%d') <= DATE_FORMAT(#{waringEO.endSSRQ}, '%Y-%m-%d') AND t.time_name = 'SSRQ' ) - ) - + + + warning.ID + IN + + + #{id} + + + + + + AND trim(replace(CONCAT( + sarInfo.STAND_SORT, + ' ', + sarInfo.STAND_NUMBER, + '-', + sarInfo.STAND_YEAR + ),' ','')) LIKE trim(replace(CONCAT('%',#{waringEO.standCode},'%'),' ','')) + + + AND sarInfo.STAND_NAME like concat('%', #{waringEO.standName},'%') + + + AND ( + DATE_FORMAT(sarInfo.PUT_TIME, '%Y-%m-%d') >= DATE_FORMAT( + #{waringEO.endPutTime}, + '%Y-%m-%d' + ) + AND + DATE_FORMAT( sarInfo.PUT_TIME, '%Y-%m-%d') <= DATE_FORMAT( + #{waringEO.endPutTime}, + '%Y-%m-%d' + ) + ) + + + AND ( + sarInfo.ID IN (SELECT DISTINCT law_id FROM warning_date as t WHERE + DATE_FORMAT(t.SSRQ, '%Y-%m-%d') >= DATE_FORMAT(#{waringEO.startSSRQ}, '%Y-%m-%d') + AND + DATE_FORMAT(t.SSRQ, '%Y-%m-%d') <= DATE_FORMAT(#{waringEO.endSSRQ}, '%Y-%m-%d') AND t.time_name = 'SSRQ' ) + ) +