dao/pom.xml
@@ -19,6 +19,10 @@ <groupId>com.sandu.ximon</groupId> <artifactId>sandu-common</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> </dependency> </dependencies> </project> dao/src/main/java/com/sandu/ximon/dao/bo/LightReportDataBo.java
@@ -1,5 +1,6 @@ package com.sandu.ximon.dao.bo; import com.alibaba.excel.annotation.ExcelProperty; import com.sandu.ximon.dao.domain.LightReportData; import lombok.Data; @@ -10,5 +11,6 @@ @Data public class LightReportDataBo extends LightReportData { @ExcelProperty("ç¯æåç§°") private String poleName; } dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java
@@ -1,11 +1,15 @@ package com.sandu.ximon.dao.domain; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.time.LocalDateTime; import javafx.util.converter.LocalDateStringConverter; import lombok.Data; /** @@ -19,83 +23,101 @@ * */ @TableId(type = IdType.AUTO) @ExcelProperty("id") private Long lightReportDataId; /** * 设å¤mac */ @ExcelProperty("设å¤mac") private String deviceCode; /** * å¸çµçµå */ @ExcelProperty("å¸çµçµå") private Double voltage; /** * å¸çµçµæµ */ @ExcelProperty("å¸çµçµæµ") private Double electricCurrent; /** * è®¾å¤æ¸©åº¦ */ @ExcelProperty("è®¾å¤æ¸©åº¦") private Double deviceTemperature; /** * åçå ç´ */ @ExcelProperty("åçå ç´ ") private Double powerFactor; /** * æååç */ @ExcelProperty("æååç") private Double activePower; /** * æ ååç */ @ExcelProperty("æ ååç") private Double reactivePower; /** * ç¯1亮度ç¾åæ¯ï¼0-100 */ @ExcelProperty("ç¯1亮度ç¾åæ¯ï¼0-100") private Integer lightPercent; /** * ç¯2亮度ç¾åæ¯ */ @ExcelProperty("ç¯2亮度ç¾åæ¯") private Integer light2Percent; /** * æè¿ä¸æ¬¡äº®ç¯æ¶é´ */ @ExcelProperty("æè¿ä¸æ¬¡äº®ç¯æ¶é´") private Long recentlyLightSec; /** * æ»äº®ç¯æ¶é´ */ @ExcelProperty("æ»äº®ç¯æ¶é´") private Long totalLightSec; /** * æè¿ä¸æ¬¡ç¨çµé */ @ExcelProperty("æè¿ä¸æ¬¡ç¨çµé") private Double recentlyUsingPower; /** * æ»ç¨çµé */ @ExcelProperty("æ»ç¨çµé") private Double totalUsingPower; /** * å建æ¶é´ */ // @ExcelProperty(value = "å建æ¶é´",converter = LocalDateStringConverter.class) private LocalDateTime createTime; /** * */ @ExcelProperty("æ´æ°æ¶é´") private LocalDateTime updateTime; @TableField(exist = false) @ExcelIgnore private static final long serialVersionUID = 1L; } dao/src/main/java/com/sandu/ximon/dao/domain/SingleLampData.java
ÎļþÒÑɾ³ý dao/src/main/java/com/sandu/ximon/dao/domain/SingleLampFault.java
ÎļþÒÑɾ³ý dao/src/main/java/com/sandu/ximon/dao/mapper/SingleLampDataMapper.java
ÎļþÒÑɾ³ý dao/src/main/resources/mapper/SingleLampDataMapper.xml
ÎļþÒÑɾ³ý pom.xml
@@ -110,6 +110,23 @@ <artifactId>jfinal-utils</artifactId> <version>0.2</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.10</version> </dependency> <!--xls--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> </dependencies> </dependencyManagement> ximon-admin/pom.xml
@@ -62,6 +62,11 @@ <artifactId>jfinal-utils</artifactId> <version>0.2</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.10</version> </dependency> <!--é¿éäºç©èç½ --> </dependencies> ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
@@ -205,17 +205,17 @@ throw new BusinessException("请è¾å ¥æ£ç¡®ç订åid"); } C3mOrder order = c3mOrderService.getById(param.getOrderId()); if (order == null) { throw new BusinessException("订åä¸åå¨"); } if((OrderType.ALIPAY.getCode()).equals(order.getOrderType())){ return ResponseUtil.success(AliPayUtils.alipayQuery(order.getOutTradeNo(),param.getPoleId())); }else if((OrderType.WXPAY.getCode()).equals(order.getOrderType())){ return ResponseUtil.success(wxPayService.WxOrderQuery(param.getPoleId(), order.getOutTradeNo())); } else { return ResponseUtil.success("æ¯ä»æ¹å¼å¼å¸¸"); } return ResponseUtil.success(null); } } ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightController.java
@@ -58,15 +58,30 @@ @GetMapping("/report/list") public ResponseVO<Object> listReportData(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword, @RequestParam(required = false) String deviceCode) { List<LightReportDataBo> list = lightReportDataService.listReportData(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, deviceCode); return ResponseUtil.successPage(list); return ResponseUtil.success(list); } /** * 导åºExcel * @param conditionVO * @param keyword * @param deviceCode * @return */ @GetMapping("/report/exportList") public ResponseVO<Object> exportList(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword, @RequestParam(required = false) String deviceCode) { String url = lightReportDataService.exportList(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, deviceCode); return ResponseUtil.success(url); } @GetMapping("/error/list") public ResponseVO<Object> listReportError(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword) { List<LightReportErrorBo> list = lightReportErrorService.listReportError(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword); return ResponseUtil.successPage(list); return ResponseUtil.success(list); } // 亮度æ§å¶ @PostMapping("/control") public ResponseVO<Object> controlBrightness(@RequestBody @Validated List<LightControlParam> paramList) { ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/WxOrderDto.java
ÎļþÃû´Ó ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/WxOrderDto.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.sandu.ximon.admin.dto.wxquery; package com.sandu.ximon.admin.dto.wxquerydto; import lombok.Data; ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/amount.java
ÎļþÃû´Ó ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/amount.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.sandu.ximon.admin.dto.wxquery; package com.sandu.ximon.admin.dto.wxquerydto; import lombok.Data; ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/goods_detail.java
ÎļþÃû´Ó ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/goods_detail.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.sandu.ximon.admin.dto.wxquery; package com.sandu.ximon.admin.dto.wxquerydto; import lombok.Data; ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/payer.java
ÎļþÃû´Ó ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/payer.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.sandu.ximon.admin.dto.wxquery; package com.sandu.ximon.admin.dto.wxquerydto; import lombok.Data; ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/promotion_detail.java
ÎļþÃû´Ó ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/promotion_detail.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.sandu.ximon.admin.dto.wxquery; package com.sandu.ximon.admin.dto.wxquerydto; import lombok.Data; ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/scene_info.java
ÎļþÃû´Ó ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/scene_info.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.sandu.ximon.admin.dto.wxquery; package com.sandu.ximon.admin.dto.wxquerydto; import lombok.Data; ximon-admin/src/main/java/com/sandu/ximon/admin/pay/OrderStatusEnums.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package com.sandu.ximon.admin.pay; public enum OrderStatusEnums { /** * 订åç¶æï¼// æªæ¯ä»(0)ï¼å·²æ¯ä»(1),已鿬¾(2),鿬¾ä¸(3),鿬¾å¤±è´¥(4),订å宿(5) */ UNPAID(0, "æªä»æ¬¾"), PAID(1, "已仿¬¾"), REFUNDED(2, "已鿬¾"), REFUNDING(3, "鿬¾ä¸"), REFUND_FAILUE(4, "鿬¾å¤±è´¥"), FINISH(5,"订å宿") ; private final Integer code; private final String message; public static String getValue(Integer code) { for (OrderStatusEnums ut : OrderStatusEnums.values()) { if (ut.getCode().equals(code)) { return ut.message; } } return null; } OrderStatusEnums(Integer code, String message) { this.code = code; this.message = message; } public Integer getCode() { return code; } public String getMessage() { return message; } } ximon-admin/src/main/java/com/sandu/ximon/admin/pay/PayCallBackController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,117 @@ package com.sandu.ximon.admin.pay; import com.alipay.api.AlipayApiException; import com.alipay.api.internal.util.AlipaySignature; import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; import com.sandu.common.security.annotation.AnonymousAccess; import com.sandu.ximon.admin.pay.alipay.UsrAlipayConfigService; import com.sandu.ximon.admin.service.C3mOrderService; import com.sandu.ximon.dao.domain.AliConfigEntity; import com.sandu.ximon.dao.domain.C3mOrder; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @RestController @AllArgsConstructor @RequestMapping("/callback/pay") @Slf4j public class PayCallBackController { private final C3mOrderService userOrderService; private final UsrAlipayConfigService alipayConfigService; // private final UserPayRecordService userPayRecordService; /** * 微信æ¯ä»åè° * * @param xmlData * @return */ @AnonymousAccess @RequestMapping("wechatCallback") public Object wechatNotify(@RequestBody String xmlData) { return userOrderService.payWechatNotify(xmlData); } /** * æ¯ä»å®æ¯ä»åè° * * @return */ @AnonymousAccess @RequestMapping("alipayCallback") public Object alipayCallback(HttpServletRequest request) { log.info("è¿éæ¯æ¯ä»å®åè°"); //è·åæ¯ä»å®POSTè¿æ¥åé¦ä¿¡æ¯ Map<String, String> params = new HashMap<String, String>(); Map requestParams = request.getParameterMap(); for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) { String name = (String) iter.next(); String[] values = (String[]) requestParams.get(name); String valueStr = ""; for (int i = 0; i < values.length; i++) { valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ","; } //ä¹±ç è§£å³ï¼è¿æ®µä»£ç å¨åºç°ä¹±ç æ¶ä½¿ç¨ã //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); params.put(name, valueStr); } log.info(params.toString()); String orderSn = params.get("out_trade_no"); C3mOrder userOrder = userOrderService.getByOrderSn(orderSn); // Long poleId = userOrder.getPoleId(); AliConfigEntity aliConfig = alipayConfigService.getConfigByPoleId(userOrder.getPoleId()); //åè®°alipaypublickeyæ¯æ¯ä»å®çå ¬é¥ï¼è¯·å»open.alipay.com对åºåºç¨ä¸æ¥çã //boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type) boolean flag = false; try { flag = AlipaySignature.rsaCheckV1(params, aliConfig.getPublicKey(), "UTF-8", "RSA2"); } catch (AlipayApiException e) { e.printStackTrace(); } if (flag) { if (!"TRADE_SUCCESS".equals(params.get("trade_status"))) { return "success"; } if (userOrder == null) { return "订åä¸åå¨"; } // æ£æ¥è¿ä¸ªè®¢åæ¯å¦å·²ç»å¤çè¿ if (!OrderStatusEnums.UNPAID.getCode().equals(userOrder.getOrderStatus())) { return WxPayNotifyResponse.success("订åå·²ç»å¤çæå!"); } String transactionId = params.get("out_trade_no"); C3mOrder update = new C3mOrder(); update.setOrderId(userOrder.getOrderId()); update.setOutTradeNo(transactionId); update.setPayTimestamp(new Date().getTime()); update.setOrderStatus(OrderStatusEnums.PAID.getCode()); if (!userOrderService.updateById(update)) { return WxPayNotifyResponse.fail("æ´æ°æ°æ®å·²å¤±æ"); } // UserPayRecord userPayRecord = new UserPayRecord(); // userPayRecord.setOrderId(userOrder.getId()); // userPayRecord.setPayAmount(userOrder.getTotalPrice()); // userPayRecord.setPayDate(userOrder.getPayTime()); // userPayRecord.setPayType(PayTypeEnums.ALIPAY.getCode()); // userPayRecord.setUserId(userOrder.getUserId()); // userPayRecordService.save(userPayRecord); return "success"; } return null; } } ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wx/WxFastPayService.java
@@ -15,8 +15,7 @@ import com.github.binarywang.wxpay.service.WxPayService; import com.sandu.common.execption.BusinessException; import com.sandu.common.util.IpUtil; import com.sandu.ximon.admin.dto.YSY_AccessTokenDto; import com.sandu.ximon.admin.dto.wxquery.WxOrderDto; import com.sandu.ximon.admin.dto.wxquerydto.WxOrderDto; import com.sandu.ximon.admin.pay.wxpay.UsrWxPayConfigService; import com.sandu.ximon.dao.domain.WxConfigEntity; import lombok.AllArgsConstructor; @@ -128,15 +127,18 @@ * @param outTradeNo * @return */ private Object WxOrderQuery(Long poleId,String outTradeNo){ public boolean WxOrderQuery(Long poleId,String outTradeNo){ WxConfigEntity wxConfig = wxPayConfigService.getConfigByPoleId(poleId); if(wxConfig==null){ throw new BusinessException("è·å微信æ¯ä»é 置失败"); } String s = HttpUtil.get(WECHAT_ORDER_QUETY_URL + outTradeNo + WECHAT_ORDER_QUETY + wxConfig.getMchId());//WxOrderDto WxOrderDto wxOrderDto = JSON.parseObject(s, WxOrderDto.class); if(("SUCCESS").equals(wxOrderDto.getTrade_state())){ return true; } return wxOrderDto.getTrade_state(); return false; } /** @@ -162,7 +164,7 @@ return sign; } public WxPayOrderNotifyResult parseOrderNotifyResult(WxPayService wxPayService, String xmlData) { public WxPayOrderNotifyResult parseOrderNotifyResult(String xmlData) { try { return wxPayService.parseOrderNotifyResult(xmlData); } catch (WxPayException e) { @@ -171,7 +173,7 @@ } } public WxPayRefundNotifyResult parseRefundNotifyResult(WxPayService wxPayService, String xmlData) { public WxPayRefundNotifyResult parseRefundNotifyResult( String xmlData) { try { return wxPayService.parseRefundNotifyResult(xmlData); } catch (WxPayException e) { @@ -189,7 +191,7 @@ * @param callbackUrl * @return */ public boolean refundOrder(WxPayService wxPayService, String orderId, String refundSn, Integer refundFee, String callbackUrl) { public boolean refundOrder( String orderId, String refundSn, Integer refundFee, String callbackUrl) { WxPayRefundRequest refundRequest = new WxPayRefundRequest(); refundRequest.setOutTradeNo(orderId); refundRequest.setOutRefundNo(refundSn); @@ -214,7 +216,7 @@ /** * çæäºç»´ç 仿¬¾ */ public String generateQRCodePay(WxPayService wxPayService, String body, public String generateQRCodePay( String body, String orderId, int totalFee, String callbackUrl) { WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest(); wxPayUnifiedOrderRequest.setBody(body); ximon-admin/src/main/java/com/sandu/ximon/admin/security/LocalDateStringConverter.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package com.sandu.ximon.admin.security; 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.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * èªå®ä¹LocalDateStringConverter * ç¨äºè§£å³ä½¿ç¨easyexcel导åºè¡¨æ ¼æ¶åï¼é»è®¤ä¸æ¯æLocalDateTimeæ¥ææ ¼å¼ * * å¨éè¦ç屿§ä¸æ·»å 注解 @ExcelProperty(value = "å ¥èæ¶é´", converter = LocalDateStringConverter.class) */ public class LocalDateStringConverter implements Converter<LocalDateTime> { @Override public Class supportJavaTypeKey() { return LocalDateTime.class; } @Override public CellDataTypeEnum supportExcelTypeKey() { return CellDataTypeEnum.STRING; } @Override public LocalDateTime convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { return LocalDateTime.parse(cellData.getStringValue(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); } @Override public CellData convertToExcelData(LocalDateTime localDateTime, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String format = formatter.format(localDateTime); return new CellData(format); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java
@@ -1,9 +1,14 @@ package com.sandu.ximon.admin.service; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; import com.sandu.common.execption.BusinessException; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.config.C3mRedisConfig; import com.sandu.ximon.admin.pay.OrderStatusEnums; import com.sandu.ximon.admin.pay.wx.WxFastPayService; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.security.order.OrderQueryListener; @@ -21,7 +26,9 @@ import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * @Author liuhaonan @@ -133,8 +140,50 @@ ); // æ¨éå°èªå¨æ¥è¯¢æ¨¡åï¼è¿è¡æ«æå¯å¨ orderQueryListener.startScan(OrderScanType.C3M.getType()); if(b){ save(c3mOrderEntity); } return b ? c3mOrderEntity : null; } /** * 微信æ¯ä»åè° */ public Object payWechatNotify(String xmlData) { WxPayOrderNotifyResult wxPayOrderNotifyResult = fastPayService.parseOrderNotifyResult(xmlData); String orderSn = wxPayOrderNotifyResult.getOutTradeNo(); String transactionId = wxPayOrderNotifyResult.getOutTradeNo(); C3mOrder userOrder = getByOrderSn(orderSn); if (userOrder == null) { return WxPayNotifyResponse.fail("订åä¸åå¨ sn=" + orderSn); } // æ£æ¥è¿ä¸ªè®¢åæ¯å¦å·²ç»å¤çè¿ if (!OrderStatusEnums.UNPAID.getCode().equals(userOrder.getOrderStatus())) { return WxPayNotifyResponse.success("订åå·²ç»å¤çæå!"); } userOrder.setOutTradeNo(transactionId); userOrder.setPayTimestamp(new Date().getTime()); userOrder.setOrderStatus(OrderStatusEnums.PAID.getCode()); if (!updateById(userOrder)) { return WxPayNotifyResponse.fail("æ´æ°æ°æ®å·²å¤±æ"); } // UserPayRecord userPayRecord = new UserPayRecord(); // userPayRecord.setOrderId(userOrder.getId()); // userPayRecord.setPayAmount(userOrder.getTotalPrice()); // userPayRecord.setPayType(PayTypeEnums.WECHAT.getCode()); // userPayRecord.setPayDate(userOrder.getPayTime()); // userPayRecord.setUserId(userOrder.getUserId()); // userPayRecordService.save(userPayRecord); return WxPayNotifyResponse.success("æ´æ°æ°æ®æå"); } public C3mOrder getByOrderSn(String orderSn) { LambdaQueryWrapper<C3mOrder> wrapper = Wrappers.lambdaQuery(C3mOrder.class).eq(C3mOrder::getOutTradeNo, orderSn).last("limit 1"); return getOne(wrapper); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
@@ -1,16 +1,25 @@ package com.sandu.ximon.admin.service; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.RandomUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.github.pagehelper.PageHelper; import com.sandu.common.file.config.FileProperties; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.dto.LightDataDto; import com.sandu.common.util.ResUtils; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightHeartbeatReportInnerFrame; import com.sandu.ximon.dao.bo.LightBo; import com.sandu.ximon.dao.bo.LightReportDataBo; import com.sandu.ximon.dao.domain.LightReportData; import com.sandu.ximon.dao.mapper.LightReportDataMapper; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import org.springframework.beans.BeanUtils; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; import java.io.File; import java.util.List; /** @@ -19,8 +28,10 @@ * ç¯ä¸æ¥æ°æ® service */ @Service @AllArgsConstructor public class LightReportDataService extends BaseServiceImpl<LightReportDataMapper, LightReportData> { private final FileProperties properties; /** * ä¿å䏿¥çç¯å¿è·³æ°æ® @@ -37,6 +48,7 @@ /** * è·åæå®è®¾å¤ç ææ°çä¸å¤©ä¸æ¥æ°æ® * * @param deviceCodeList 设å¤ç å表 * @return 䏿¥æ°æ® */ @@ -46,6 +58,7 @@ /** * è·å䏿¥æ°æ® * * @param keyword å ³é®è¯ * @param deviceCode 设å¤ç */ @@ -53,4 +66,26 @@ PageHelper.startPage(pageNo,pageSize); return baseMapper.listReportData(keyword,deviceCode); } @SneakyThrows public String exportList(int pageNo, int pageSize, String keyword, String deviceCode) { PageHelper.startPage(pageNo, pageSize); List<LightReportDataBo> list = baseMapper.listReportData(keyword, deviceCode); File file = new File(properties.getUploadRootPath() + "export" + File.separator + RandomUtil.randomString(12) + ".xlsx"); // File file = new File(properties.getUploadRootPath() + "export" + File.separator + RandomUtil.randomString(12) + ".xlsx"); // ClassPathResource cpr = new ClassPathResource("public/exportOrder.xlsx"); // FileUtil.mkParentDirs(file); // // ExcelWriter excelWriter = EasyExcel.write(file).withTemplate(cpr.getInputStream()).build(); // WriteSheet writeSheet = EasyExcel.writerSheet().build(); // excelWriter.fill(list, writeSheet); // excelWriter.finish(); EasyExcel.write(file, LightReportDataBo.class).sheet("模æ¿").doWrite(list); String url = file.getPath().replace(properties.getUploadRootPath(), ""); return ResUtils.addPrefix(url); // return list; } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/SingleLampDataService.java
ÎļþÒÑɾ³ý