From 76722e3aff53bdc7167575d999fb295766021bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=9E=97?= <320730042@qq.com> Date: Tue, 2 Jul 2024 17:19:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AE=BE=E5=A4=87=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrderInfoController.java | 16 +++ .../com/bellmann/mapper/OrderInfoMapper.java | 2 + .../model/query/DeviceOrderQuery.java | 21 ++++ .../bellmann/model/vo/RemoteDevInfoVO.java | 5 + .../bellmann/service/OrderInfoService.java | 7 ++ .../service/impl/DeviceStaticServiceImpl.java | 3 +- .../service/impl/OrderInfoServiceImpl.java | 108 +++++++++++++----- src/main/resources/mapper/OrderInfoMapper.xml | 35 +++++- 8 files changed, 167 insertions(+), 30 deletions(-) create mode 100644 src/main/java/com/bellmann/model/query/DeviceOrderQuery.java diff --git a/src/main/java/com/bellmann/controller/OrderInfoController.java b/src/main/java/com/bellmann/controller/OrderInfoController.java index 6e4ac4d..a28d0dd 100644 --- a/src/main/java/com/bellmann/controller/OrderInfoController.java +++ b/src/main/java/com/bellmann/controller/OrderInfoController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; import com.bellmann.model.form.ModifyOrderForm; +import com.bellmann.model.query.DeviceOrderQuery; import com.bellmann.model.query.SelectQuery; import com.bellmann.model.vo.OrderInfoTableVO; import com.bellmann.model.vo.OrderInfoVO; @@ -15,6 +16,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import java.util.Map; + /** *

* 前端控制器 @@ -72,5 +75,18 @@ public class OrderInfoController { public Result bindingOuiSno(@PathVariable String devOuiSno, @PathVariable Long orderId){ return orderInfoService.bindingOuiSno(devOuiSno,orderId); } + + @PostMapping("device-order/page") + @Operation(summary = "设备工单表格分页") + public PageResult deviceOrderPage(@RequestBody DeviceOrderQuery query){ + + Page page = orderInfoService.deviceOrderPage(query); + return PageResult.success(page); + } + @GetMapping("check-dev/{devSnoOui}") + @Operation(summary = "检验设备是否存在") + public Result> checkDev(@PathVariable String devSnoOui){ + return orderInfoService.checkDev(devSnoOui); + } } diff --git a/src/main/java/com/bellmann/mapper/OrderInfoMapper.java b/src/main/java/com/bellmann/mapper/OrderInfoMapper.java index b1de70c..f5175fe 100644 --- a/src/main/java/com/bellmann/mapper/OrderInfoMapper.java +++ b/src/main/java/com/bellmann/mapper/OrderInfoMapper.java @@ -28,4 +28,6 @@ public interface OrderInfoMapper extends BaseMapper { OrderInfo orderSnoOuiPppoeUnique(@Param("orderId") Long orderId); String selectOui(@Param("devOuiSno") String devOuiSno, @Param("userSnNo") String userSnNo); + + List deviceOrderPage(Page page,@Param("devSnoOui") String devSnoOui,@Param("pppoeAccount") String pppoeAccount,@Param("domain") Long domain); } diff --git a/src/main/java/com/bellmann/model/query/DeviceOrderQuery.java b/src/main/java/com/bellmann/model/query/DeviceOrderQuery.java new file mode 100644 index 0000000..46fa605 --- /dev/null +++ b/src/main/java/com/bellmann/model/query/DeviceOrderQuery.java @@ -0,0 +1,21 @@ +package com.bellmann.model.query; + +import com.bellmann.common.base.BasePageQuery; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Schema(description ="设备工单分页查询对象") +@Data +public class DeviceOrderQuery extends BasePageQuery { + + @Schema(description="设备序列号") + private String devSno; + + @Schema(description="Oui") + private String devOui; + @Schema(description = "pppoe账号") + private String pppoeAccount; + +} diff --git a/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java b/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java index 871c44f..bcd66c1 100644 --- a/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java +++ b/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java @@ -46,6 +46,8 @@ public class RemoteDevInfoVO { private String devIp; + private String devOnline; + private String devStatus; private String customType; @@ -55,6 +57,9 @@ public class RemoteDevInfoVO { @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") private LocalDateTime devOnlineTime; + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + private LocalDateTime devCreateTime; + private String devAccessType; private String devTypeNameDetail; diff --git a/src/main/java/com/bellmann/service/OrderInfoService.java b/src/main/java/com/bellmann/service/OrderInfoService.java index b237bda..f8ee5b9 100644 --- a/src/main/java/com/bellmann/service/OrderInfoService.java +++ b/src/main/java/com/bellmann/service/OrderInfoService.java @@ -3,10 +3,13 @@ package com.bellmann.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.result.Result; import com.bellmann.model.form.ModifyOrderForm; +import com.bellmann.model.query.DeviceOrderQuery; import com.bellmann.model.query.SelectQuery; import com.bellmann.model.vo.OrderInfoTableVO; import com.bellmann.model.vo.OrderInfoVO; +import java.util.Map; + /** *

* 服务类 @@ -30,4 +33,8 @@ public interface OrderInfoService { Result updateForm(ModifyOrderForm form); Result bindingOuiSno(String devOuiSno, Long orderId); + + Page deviceOrderPage(DeviceOrderQuery query); + + Result> checkDev(String devSnoOui); } diff --git a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java index ad2effd..0a0452e 100644 --- a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java @@ -286,7 +286,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { RemoteDevInfoVO remoteDevInfoVO = new RemoteDevInfoVO(); DeviceStatic deviceStatic = deviceStaticMapper.selectOne( new QueryWrapper() - .select("dev_id","dev_ad_no","dev_sno","region_area_id","dev_remark1","dev_remark4","dev_status","cust_id as custom_id","type_and_ver_id") + .select("dev_create_time","dev_id","dev_ad_no","dev_sno","region_area_id","dev_remark1","dev_remark4","dev_remark3","dev_status","cust_id as custom_id","type_and_ver_id") .eq("dev_id",devId) ); BeanUtils.copyProperties(deviceStatic,remoteDevInfoVO); @@ -314,6 +314,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { if (deviceDynamic!=null){ remoteDevInfoVO.setDevOnlineTime(deviceDynamic.getDevOnlineTime()); remoteDevInfoVO.setDevIp(deviceDynamic.getDevIp()); + remoteDevInfoVO.setDevOnline(IBaseEnum.getLabelByValue(deviceDynamic.getDevOnline(), DevOnlineEnum.class)); } DeviceStaticDetail staticDetail = deviceStaticDetailMapper.selectOne(new QueryWrapper() diff --git a/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java index 14bfe3f..70e19bb 100644 --- a/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.bellmann.service.impl; +import cn.hutool.core.map.MapUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -18,6 +19,7 @@ import com.bellmann.model.entity.DeviceStatic; import com.bellmann.model.entity.OrderInfo; import com.bellmann.model.entity.OrderService; import com.bellmann.model.form.ModifyOrderForm; +import com.bellmann.model.query.DeviceOrderQuery; import com.bellmann.model.query.SelectQuery; import com.bellmann.model.vo.OrderInfoTableVO; import com.bellmann.model.vo.OrderInfoVO; @@ -33,6 +35,7 @@ import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; +import java.util.Map; /** *

@@ -68,32 +71,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { Page page = new Page<>(pageNum,pageSize); Long domain = SecurityUtils.getGroupId(); List list = orderInfoMapper.tablePage(page, column, value,domain); - list.forEach(obj->{ - Long systemDomain = obj.getSystemDomain(); - String orderServiceType = obj.getOrderServiceType(); - String orderStatus = obj.getOrderStatus(); - String orderRemark = obj.getOrderRemark(); - String dummyFlag = obj.getDummyFlag(); - if (systemDomain!=null){ - obj.setDomain((String) redisTemplate.opsForHash().get(SecurityConstants.DOMAIN_PREFIX,systemDomain.toString())); - } - if (orderServiceType!=null){ - obj.setOrderServiceType(IBaseEnum.getLabelByValue(orderServiceType, OrderServiceTypeEnum.class)); - } - if (orderStatus!=null){ - obj.setOrderStatus(IBaseEnum.getLabelByValue(orderStatus, OrderStatusEnum.class)); - } - if (orderRemark!=null){ - obj.setOrderRemark(IBaseEnum.getLabelByValue(orderRemark, OrderOperateEnum.class)); - } - //如果是虚拟工单 不显示 pppoe帐户 和 电话号码 反之则显示 0虚拟单 1是非虚拟单 - if ("0".equals(dummyFlag)){ - obj.setTelNum(""); - obj.setPppoeAccount(""); - } - obj.setDevOnLineStatus(devOnlineStatus(obj.getDevSnoOui(), obj.getPppoeAccount())); - }); - return page.setRecords(list); + return getOrderInfoTableVOPage(page, list); } private String devOnlineStatus(String devSnoOui,String pppoe){ @@ -101,9 +79,18 @@ public class OrderInfoServiceImpl implements OrderInfoService { String devSno=""; String status = "无设备上线记录"; if (devSnoOui==null || devSnoOui.isEmpty()){ - return status; + if (pppoe==null ||pppoe.isEmpty()) { + return status; + } + } + if (!devSnoOui.contains("-")){ + devSno = devSnoOui.trim(); + }else { + String[] devOS = devSnoOui.trim().split("-"); + devOui = devOS[0]; + devSno = devOS[1]; } - return null; + return "无设备上线记录"; } @Override @@ -394,4 +381,69 @@ public class OrderInfoServiceImpl implements OrderInfoService { throw new BusinessException(ResultCode.LOGICID_ALREADY_DEVICE); } } + + @Override + public Page deviceOrderPage(DeviceOrderQuery query) { + int pageNum = query.getPageNum(); + int pageSize = query.getPageSize(); + Page page = new Page<>(pageNum,pageSize); + Long domain = SecurityUtils.getGroupId(); + String devSnoOui = query.getDevOui() + "-"+ query.getDevSno(); + String pppoeAccount = query.getPppoeAccount(); + List list = orderInfoMapper.deviceOrderPage(page,devSnoOui,pppoeAccount ,domain); + return getOrderInfoTableVOPage(page, list); + } + + private Page getOrderInfoTableVOPage(Page page, List list) { + list.forEach(obj->{ + Long systemDomain = obj.getSystemDomain(); + String orderServiceType = obj.getOrderServiceType(); + String orderStatus = obj.getOrderStatus(); + String orderRemark = obj.getOrderRemark(); + String dummyFlag = obj.getDummyFlag(); + if (systemDomain!=null){ + obj.setDomain((String) redisTemplate.opsForHash().get(SecurityConstants.DOMAIN_PREFIX,systemDomain.toString())); + } + if (orderServiceType!=null){ + obj.setOrderServiceType(IBaseEnum.getLabelByValue(orderServiceType, OrderServiceTypeEnum.class)); + } + if (orderStatus!=null){ + obj.setOrderStatus(IBaseEnum.getLabelByValue(orderStatus, OrderStatusEnum.class)); + } + if (orderRemark!=null){ + obj.setOrderRemark(IBaseEnum.getLabelByValue(orderRemark, OrderOperateEnum.class)); + } + //如果是虚拟工单 不显示 pppoe帐户 和 电话号码 反之则显示 0虚拟单 1是非虚拟单 + if ("0".equals(dummyFlag)){ + obj.setTelNum(""); + obj.setPppoeAccount(""); + } + obj.setDevOnLineStatus(devOnlineStatus(obj.getDevSnoOui(), obj.getPppoeAccount())); + }); + return page.setRecords(list); + } + + @Override + public Result> checkDev(String devSnoOui) { + if (devSnoOui==null || !devSnoOui.contains("-")){ + return Result.failed(ResultCode.NOT_GET_DEVICE); + } + + String[] split = devSnoOui.split("-"); + DeviceStatic deviceStatic = deviceStaticMapper.selectOne(new QueryWrapper() + .eq("dev_sno", split[1]) + .eq("dev_remark3", split[0]) + .select("dev_id","type_and_ver_id") + ); + + if (deviceStatic!=null){ + Map map = MapUtil + .builder() + .put("devId", deviceStatic.getDevId()) + .put("typeAndVerId", deviceStatic.getTypeAndVerId()) + .build(); + return Result.success(map); + } + return Result.failed(ResultCode.NOT_GET_DEVICE); + } } diff --git a/src/main/resources/mapper/OrderInfoMapper.xml b/src/main/resources/mapper/OrderInfoMapper.xml index 546595e..e75d014 100644 --- a/src/main/resources/mapper/OrderInfoMapper.xml +++ b/src/main/resources/mapper/OrderInfoMapper.xml @@ -104,7 +104,8 @@ aa.system_domain, aa.order_customer_kind, aa.order_done_flag, - aa.dummy_flag + aa.dummy_flag, + aa.dev_sno_oui FROM ITMS_ORDER_INFO AA WHERE @@ -135,4 +136,36 @@ AND order_status IN ( '0', '1', '2' ) AND user_sn_no != #{userSnNo} + +