From 46445669af8bed769a5bc11222d797f7f2c6aeea Mon Sep 17 00:00:00 2001 From: yuyang Date: Thu, 22 Sep 2022 14:16:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=89=88=E6=9C=AC=E5=A5=BD?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WorkOrderController.java | 8 +--- .../activity/service/WorkOrderService.java | 4 +- .../service/impl/WorkOrderServiceImpl.java | 36 +++++---------- .../service/XhpcPileEditionServiceImpl.java | 4 -- .../xhpc/common/api/WorkOrderYuService.java | 6 +-- .../api/factory/WorkOrderFallbackFactory.java | 6 +-- .../order/api/XhpcPileOrderController.java | 2 +- .../XhpcHistoryOrderController.java | 2 +- .../XhpcPileRegularInspectController.java | 5 +- .../mapper/XhpcPileRegularInspectMapper.java | 2 +- .../IXhpcPileRegularInspectService.java | 4 +- .../XhpcPileRegularInspectServiceImpl.java | 46 +++++++++---------- .../mapper/XhpcPileRegularInspectMapper.xml | 11 +++-- .../controller/XhpcRefundAuditController.java | 2 +- .../controller/XhpcInvoiceController.java | 2 +- 15 files changed, 56 insertions(+), 84 deletions(-) diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkOrderController.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkOrderController.java index 7fe8f8dc..680071df 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkOrderController.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkOrderController.java @@ -78,8 +78,8 @@ public class WorkOrderController extends BaseController { @GetMapping("/addNewOrder") - public R addNewOrder(@RequestParam(value = "type") String type, @RequestParam(value = "title") String title, @RequestParam(value = "content")String content, @RequestParam(value = "faultTime") Date faultTime, @RequestParam(value = "reason")String reason){ - return R.ok(workOrderService.addNewOrder(type, title, content, faultTime, reason)); + public R addNewOrder(@RequestParam(value = "type") String type, @RequestParam(value = "title") String title, @RequestParam(value = "content")String content, @RequestParam(value = "faultTime") Date faultTime, @RequestParam(value = "reason")String reason, @RequestParam(value = "stationId")Long stationId, @RequestParam(value = "deviceType")String deviceType,@RequestParam(value = "serialNumber")String serialNumber){ + return R.ok(workOrderService.addNewOrder(type, title, content, faultTime, reason,stationId,deviceType,serialNumber)); } @GetMapping("/workOrderMessage") @@ -87,10 +87,6 @@ public class WorkOrderController extends BaseController { return workOrderService.workOrderMessage(type, time); } - @GetMapping("//addMaintenanceNewOrder") - public R addMaintenanceNewOrder(@RequestParam(value = "map") Map map){ - return workOrderService.addMaintenanceNewOrder(map); - } } diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkOrderService.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkOrderService.java index 9fcde23b..b651200f 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkOrderService.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkOrderService.java @@ -23,9 +23,7 @@ public interface WorkOrderService { Boolean deleteOrder(Long orderId) throws Exception; - Boolean addNewOrder(String type, String title, String content, Date faultTime, String reason); + Boolean addNewOrder(String type, String title, String content, Date faultTime, String reason,Long stationId,String deviceType,String serialNumber); R workOrderMessage(Integer type, String time); - - R addMaintenanceNewOrder(Map map); } diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java index a13dedcf..2b8bda20 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkOrderServiceImpl.java @@ -227,15 +227,24 @@ public class WorkOrderServiceImpl implements WorkOrderService { } @Override - public Boolean addNewOrder(String type, String title, String content, Date faultTime, String reason) { + public Boolean addNewOrder(String type, String title, String content, Date faultTime, String reason,Long stationId,String deviceType,String serialNumber) { try{ XhpcWorkOrderDomain domain =new XhpcWorkOrderDomain(); domain.setType(Integer.parseInt(type)); domain.setTitle(title); domain.setContent(content); - domain.setFaultTime(faultTime); + domain.setFaultTime(new Date()); domain.setContent(content); domain.setCreateTime(faultTime); + if(stationId!=null){ + domain.setStationId(stationId); + } + if(deviceType!=null){ + domain.setDeviceType(deviceType); + } + if(serialNumber!=null){ + domain.setSerialNumber(serialNumber); + } Short s =0; domain.setStatus(s); orderMapper.insertSelective(domain); @@ -256,29 +265,6 @@ public class WorkOrderServiceImpl implements WorkOrderService { return R.ok(); } - @Override - public R addMaintenanceNewOrder(Map map) { - - try{ - XhpcWorkOrderDomain domain =new XhpcWorkOrderDomain(); - domain.setType(Integer.parseInt(map.get("type").toString())); - domain.setTitle(map.get("title").toString()); - domain.setContent(map.get("content").toString()); - domain.setFaultTime((java.sql.Date)map.get("faultTime")); - domain.setDeviceType(map.get("deviceType").toString()); - domain.setSerialNumber(map.get("serialNumber").toString()); - domain.setStationId(Long.parseLong(map.get("stationId").toString())); - Short s =0; - domain.setStatus(s); - orderMapper.insertSelective(domain); - return R.fail(); - }catch (Exception e){ - e.printStackTrace(); - } - - return R.ok(); - } - private void sendSms(String userIds, String orderId){ diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcPileEditionServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcPileEditionServiceImpl.java index 0d4f48e5..3351b6fb 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcPileEditionServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcPileEditionServiceImpl.java @@ -3,16 +3,12 @@ package com.xhpc.charging.station.service; import com.xhpc.charging.station.mapper.XhpcPileEditionMapper; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.service.BaseService; -import com.xhpc.common.domain.XhpcChargingStation; import com.xhpc.common.domain.XhpcPileEdition; import com.xhpc.common.security.service.TokenService; import com.xhpc.common.util.UserTypeUtil; import com.xhpc.system.api.domain.SysUser; import com.xhpc.system.api.model.LoginUser; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/WorkOrderYuService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/WorkOrderYuService.java index f6ed1d6a..543510bf 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/WorkOrderYuService.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/WorkOrderYuService.java @@ -22,7 +22,7 @@ public interface WorkOrderYuService { * @return */ @GetMapping("/order/addNewOrder") - R addNewOrder(@RequestParam(value = "type") String type, @RequestParam(value = "title") String title, @RequestParam(value = "content")String content, @RequestParam(value = "faultTime") Date faultTime, @RequestParam(value = "reason")String reason); + R addNewOrder(@RequestParam(value = "type") String type, @RequestParam(value = "title") String title, @RequestParam(value = "content")String content, @RequestParam(value = "faultTime") Date faultTime, @RequestParam(value = "reason")String reason,@RequestParam(value = "stationId")Long stationId,@RequestParam(value = "deviceType")String deviceType,@RequestParam(value = "serialNumber")String serialNumber); /** * 查询工单今日是否生成 @@ -32,8 +32,4 @@ public interface WorkOrderYuService { R workOrderMessage(@RequestParam(value = "type") Integer type,@RequestParam(value = "time")String time); - @GetMapping("/order/addMaintenanceNewOrder") - R addMaintenanceNewOrder(@RequestParam(value = "map") Map map); - - } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/WorkOrderFallbackFactory.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/WorkOrderFallbackFactory.java index 75c195dc..70198d25 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/WorkOrderFallbackFactory.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/WorkOrderFallbackFactory.java @@ -24,7 +24,7 @@ public class WorkOrderFallbackFactory implements FallbackFactory map) { - return R.fail("工单生成失败调用失败:" + cause.getMessage()); - } }; } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java index c1c31b58..59187c48 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java @@ -799,7 +799,7 @@ public R pileStartUpBy3rd(@RequestParam(value = "internetSerialNumber") String i private void extracted() { Date date = DateUtil.date(); - workOrderYuService.addNewOrder("28","有异常订单订单且该桩进行校时效价处理","定时任务自动扫描异常订单",date,""); + workOrderYuService.addNewOrder("28","有异常订单订单且该桩进行校时效价处理","定时任务自动扫描异常订单",date,"",null,null,null); } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java index f5edf145..9b5928a0 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcHistoryOrderController.java @@ -933,7 +933,7 @@ public class XhpcHistoryOrderController extends BaseController { String format = DateUtil.format(date, "yyyy-MM-dd"); R r = workOrderYuService.workOrderMessage(2, format); if(r.getCode()==200){ - workOrderYuService.addNewOrder("2","有异常订单订单待处理","定时任务自动扫描申请异常订单",date,""); + workOrderYuService.addNewOrder("2","有异常订单订单待处理","定时任务自动扫描申请异常订单",date,"",null,null,null); } } }catch (Exception e){ diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPileRegularInspectController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPileRegularInspectController.java index 34865013..0d907317 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPileRegularInspectController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/controller/XhpcPileRegularInspectController.java @@ -8,6 +8,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; @RestController @RequestMapping("/pileRegularInspect") @@ -28,9 +29,9 @@ public class XhpcPileRegularInspectController extends BaseController { @PostMapping("/addPileRegularInspect") - public AjaxResult addPileRegularInspect(@RequestBody XhpcPileRegularInspect xhpcPileRegularInspect) + public AjaxResult addPileRegularInspect(HttpServletRequest request, @RequestBody XhpcPileRegularInspect xhpcPileRegularInspect) { - return xhpcPileRegularInspectService.addPileRegularInspect(xhpcPileRegularInspect); + return xhpcPileRegularInspectService.addPileRegularInspect(request,xhpcPileRegularInspect); } //版本号定时任务 diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcPileRegularInspectMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcPileRegularInspectMapper.java index bd3463d9..b8510731 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcPileRegularInspectMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcPileRegularInspectMapper.java @@ -10,7 +10,7 @@ public interface XhpcPileRegularInspectMapper { Map getPileRegularInspectTenantId(@Param("tenantId")String tenantId); - int addPileRegularInspect(XhpcPileRegularInspect xhpcPileRegularInspect); + int insertPileRegularInspect(XhpcPileRegularInspect xhpcPileRegularInspect); int updatePileRegularInspect(XhpcPileRegularInspect xhpcPileRegularInspect); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcPileRegularInspectService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcPileRegularInspectService.java index bdcfce5a..4b3358ee 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcPileRegularInspectService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcPileRegularInspectService.java @@ -3,12 +3,14 @@ package com.xhpc.order.service; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.order.domain.XhpcPileRegularInspect; +import javax.servlet.http.HttpServletRequest; + public interface IXhpcPileRegularInspectService { AjaxResult getPileRegularInspectTenantId(); - AjaxResult addPileRegularInspect(XhpcPileRegularInspect xhpcPileRegularInspect); + AjaxResult addPileRegularInspect(HttpServletRequest request, XhpcPileRegularInspect xhpcPileRegularInspect); void getVersionTimer(); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcPileRegularInspectServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcPileRegularInspectServiceImpl.java index 4ad11bfe..d751a800 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcPileRegularInspectServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcPileRegularInspectServiceImpl.java @@ -2,9 +2,9 @@ package com.xhpc.order.service.impl; import cn.hutool.core.date.DateUtil; import com.xhpc.common.api.WorkOrderYuService; +import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.service.BaseService; -import com.xhpc.common.enums.StationDeviceEnum; import com.xhpc.common.redis.service.RedisService; import com.xhpc.common.security.service.TokenService; import com.xhpc.order.domain.XhpcPileRegularInspect; @@ -14,6 +14,7 @@ import com.xhpc.system.api.model.LoginUser; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -48,9 +49,9 @@ public class XhpcPileRegularInspectServiceImpl extends BaseService implements IX } @Override - public AjaxResult addPileRegularInspect(XhpcPileRegularInspect xhpcPileRegularInspect) { + public AjaxResult addPileRegularInspect(HttpServletRequest request, XhpcPileRegularInspect xhpcPileRegularInspect) { - LoginUser loginUser = tokenService.getLoginUser(); + LoginUser loginUser = tokenService.getLoginUser(request); String tenantId =loginUser.getTenantId(); if(tenantId==null || "".equals(tenantId)){ return AjaxResult.error(500, "请重新登录"); @@ -114,10 +115,10 @@ public class XhpcPileRegularInspectServiceImpl extends BaseService implements IX if(xhpcPileRegularInspect.getPileRegularInspectId()==null){ Map map = xhpcPileRegularInspectMapper.getPileRegularInspectTenantId(tenantId); if(map !=null){ - return AjaxResult.error(500, "请重新登录!"); + return AjaxResult.error(500, "请重新刷新页面上传数据"); } - xhpcPileRegularInspect.setTenantId(tenantId); - int i = xhpcPileRegularInspectMapper.addPileRegularInspect(xhpcPileRegularInspect); + //xhpcPileRegularInspect.setTenantId(tenantId); + int i = xhpcPileRegularInspectMapper.insertPileRegularInspect(xhpcPileRegularInspect); if(i>0){ return AjaxResult.success(); } @@ -137,42 +138,39 @@ public class XhpcPileRegularInspectServiceImpl extends BaseService implements IX @Override public void getVersionTimer() { try{ + System.out.println("============版本号-1-1-1-1-1-1-1===================="); //获取所有桩需要核对的版本号 List> list = xhpcPileRegularInspectMapper.verificationPileRepeat(); for (int i = 0; i map=list.get(i); - String serialNumber = map.get("serialNumber").toString(); - String directNumber = map.get("directNumber").toString(); - String communicationNumber = map.get("communicationNumber").toString(); - Integer type =Integer.parseInt(map.get("type").toString()); + System.out.println("============版本号-2-2-2-12-2-2-21===================="); + Map map1=list.get(i); + String serialNumber = map1.get("serialNumber").toString(); + String directNumber = map1.get("directNumber").toString(); + String communicationNumber = map1.get("communicationNumber").toString(); + Integer type =Integer.parseInt(map1.get("type").toString()); Map cachePile = redisService.getCacheMap("pile:" + serialNumber); //Long rateModelId = (Long) cachePile.get("rateModelId"); - Map mapOrder =new HashMap<>(); + Map map =new HashMap<>(); Date date = DateUtil.date(); - mapOrder.put("type",12); - mapOrder.put("title","版本号不一致"); - mapOrder.put("content","该桩版本号和系统设置的版本号不一致"); - mapOrder.put("faultTime",date); - mapOrder.put("deviceType", "PILE"); - mapOrder.put("serialNumber",serialNumber); - mapOrder.put("stationId",Long.valueOf(map.get("chargingStationId").toString())); + Long chargingStationId = Long.valueOf(map1.get("chargingStationId").toString()); System.out.println("============版本号000===================="); if(cachePile==null || cachePile.get("firmwareVersion")==null){ System.out.println("============版本号111===================="); - workOrderService.addMaintenanceNewOrder(mapOrder); + R r = workOrderService.addNewOrder("12","版本号不一致","该桩版本号和系统设置的版本号不一致",null,null,chargingStationId,"PILE",serialNumber); + System.out.println("============r===================="+r.getCode()); }else{ String firmwareVersion = cachePile.get("firmwareVersion").toString(); if(type==1){ if(!directNumber.equals(firmwareVersion)){ //添加一条工单 - System.out.println("============版本号2222===================="); - workOrderService.addMaintenanceNewOrder(mapOrder); + R r = workOrderService.addNewOrder("12","版本号不一致","该桩版本号和系统设置的版本号不一致",null,null,chargingStationId,"PILE",serialNumber); + System.out.println("============r===================="+r.getCode()); } }else{ if(!communicationNumber.equals(firmwareVersion)){ //添加一条工单 - System.out.println("============版本号3333===================="); - workOrderService.addMaintenanceNewOrder(mapOrder); + R r = workOrderService.addNewOrder("12","版本号不一致","该桩版本号和系统设置的版本号不一致",null,null,chargingStationId,"PILE",serialNumber); + System.out.println("============r===================="+r.getCode()); } } } diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPileRegularInspectMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPileRegularInspectMapper.xml index 20d580df..6290b320 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPileRegularInspectMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcPileRegularInspectMapper.xml @@ -20,7 +20,7 @@ - insert into xhpc_pile_regular_inspect @@ -122,7 +122,10 @@ copying_administrator_time as copyingAdministratorTime, tenant_id as tenantId from xhpc_pile_regular_inspect - where tenant_id=#{tenantId} and del_flag =0 + where del_flag =0 + + and tenant_id=#{tenantId} + diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundAuditController.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundAuditController.java index 345c937a..9d7914cf 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundAuditController.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundAuditController.java @@ -756,7 +756,7 @@ public class XhpcRefundAuditController extends BaseController { String format = DateUtil.format(date, "yyyy-MM-dd"); R r = workOrderService.workOrderMessage(3, format); if(r.getCode()==200){ - workOrderService.addNewOrder("3","有退款订单待处理","定时任务自动扫描退款订单",date,""); + workOrderService.addNewOrder("3","有退款订单待处理","定时任务自动扫描退款订单",date,"",null,null,null); } } }catch (Exception e){ diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcInvoiceController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcInvoiceController.java index 10887c17..9a81e310 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcInvoiceController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcInvoiceController.java @@ -218,7 +218,7 @@ public class XhpcInvoiceController extends BaseController { String format = DateUtil.format(date, "yyyy-MM-dd"); R r = workOrderMessage.workOrderMessage(5, format); if(r.getCode()==200){ - workOrderMessage.addNewOrder("5","有申请发票订单待处理","定时任务自动扫描申请发票订单",date,""); + workOrderMessage.addNewOrder("5","有申请发票订单待处理","定时任务自动扫描申请发票订单",date,"",null,null,null); } } }catch (Exception e){