feat: 设备工单

master
李小林 8 months ago
parent 95c61f2679
commit 76722e3aff
  1. 16
      src/main/java/com/bellmann/controller/OrderInfoController.java
  2. 2
      src/main/java/com/bellmann/mapper/OrderInfoMapper.java
  3. 21
      src/main/java/com/bellmann/model/query/DeviceOrderQuery.java
  4. 5
      src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java
  5. 7
      src/main/java/com/bellmann/service/OrderInfoService.java
  6. 3
      src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java
  7. 106
      src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java
  8. 35
      src/main/resources/mapper/OrderInfoMapper.xml

@ -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;
/**
* <p>
* 前端控制器
@ -72,5 +75,18 @@ public class OrderInfoController {
public Result<String> bindingOuiSno(@PathVariable String devOuiSno, @PathVariable Long orderId){
return orderInfoService.bindingOuiSno(devOuiSno,orderId);
}
@PostMapping("device-order/page")
@Operation(summary = "设备工单表格分页")
public PageResult<OrderInfoTableVO> deviceOrderPage(@RequestBody DeviceOrderQuery query){
Page<OrderInfoTableVO> page = orderInfoService.deviceOrderPage(query);
return PageResult.success(page);
}
@GetMapping("check-dev/{devSnoOui}")
@Operation(summary = "检验设备是否存在")
public Result<Map<Object,Object>> checkDev(@PathVariable String devSnoOui){
return orderInfoService.checkDev(devSnoOui);
}
}

@ -28,4 +28,6 @@ public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
OrderInfo orderSnoOuiPppoeUnique(@Param("orderId") Long orderId);
String selectOui(@Param("devOuiSno") String devOuiSno, @Param("userSnNo") String userSnNo);
List<OrderInfoTableVO> deviceOrderPage(Page<OrderInfoTableVO> page,@Param("devSnoOui") String devSnoOui,@Param("pppoeAccount") String pppoeAccount,@Param("domain") Long domain);
}

@ -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;
}

@ -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;

@ -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;
/**
* <p>
* 服务类
@ -30,4 +33,8 @@ public interface OrderInfoService {
Result<String> updateForm(ModifyOrderForm form);
Result<String> bindingOuiSno(String devOuiSno, Long orderId);
Page<OrderInfoTableVO> deviceOrderPage(DeviceOrderQuery query);
Result<Map<Object,Object>> checkDev(String devSnoOui);
}

@ -286,7 +286,7 @@ public class DeviceStaticServiceImpl implements DeviceStaticService {
RemoteDevInfoVO remoteDevInfoVO = new RemoteDevInfoVO();
DeviceStatic deviceStatic = deviceStaticMapper.selectOne(
new QueryWrapper<DeviceStatic>()
.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<DeviceStaticDetail>()

@ -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;
/**
* <p>
@ -68,32 +71,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
Page<OrderInfoTableVO> page = new Page<>(pageNum,pageSize);
Long domain = SecurityUtils.getGroupId();
List<OrderInfoTableVO> 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()){
if (pppoe==null ||pppoe.isEmpty()) {
return status;
}
return null;
}
if (!devSnoOui.contains("-")){
devSno = devSnoOui.trim();
}else {
String[] devOS = devSnoOui.trim().split("-");
devOui = devOS[0];
devSno = devOS[1];
}
return "无设备上线记录";
}
@Override
@ -394,4 +381,69 @@ public class OrderInfoServiceImpl implements OrderInfoService {
throw new BusinessException(ResultCode.LOGICID_ALREADY_DEVICE);
}
}
@Override
public Page<OrderInfoTableVO> deviceOrderPage(DeviceOrderQuery query) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Page<OrderInfoTableVO> page = new Page<>(pageNum,pageSize);
Long domain = SecurityUtils.getGroupId();
String devSnoOui = query.getDevOui() + "-"+ query.getDevSno();
String pppoeAccount = query.getPppoeAccount();
List<OrderInfoTableVO> list = orderInfoMapper.deviceOrderPage(page,devSnoOui,pppoeAccount ,domain);
return getOrderInfoTableVOPage(page, list);
}
private Page<OrderInfoTableVO> getOrderInfoTableVOPage(Page<OrderInfoTableVO> page, List<OrderInfoTableVO> 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<Map<Object,Object>> 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<DeviceStatic>()
.eq("dev_sno", split[1])
.eq("dev_remark3", split[0])
.select("dev_id","type_and_ver_id")
);
if (deviceStatic!=null){
Map<Object, Object> map = MapUtil
.builder()
.put("devId", deviceStatic.getDevId())
.put("typeAndVerId", deviceStatic.getTypeAndVerId())
.build();
return Result.success(map);
}
return Result.failed(ResultCode.NOT_GET_DEVICE);
}
}

@ -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}
</select>
<select id="deviceOrderPage" resultType="com.bellmann.model.vo.OrderInfoTableVO">
SELECT
aa.order_id,
aa.received_order_id,
aa.received_order_lhs,
aa.order_date,
aa.ad_no,
aa.order_status,
aa.order_remark,
aa.order_service_type,
aa.oper_remark,
bb.detail_remark3 AS port,
aa.pppoe_account,
bb.voip_phone AS telNum,
aa.system_domain,
aa.remark3,
aa.received_date,
aa.dev_sno_oui,
aa.dummy_flag
FROM
ITMS_ORDER_INFO AA
LEFT JOIN ITMS_ORDER_INFO_DETAIL BB ON AA.ORDER_ID = BB.ORDER_ID
where
aa.system_domain &gt;= #{domain}
<if test="devSnoOui !=null and devSnoOui!= ''">
and aa.dev_sno_oui = #{devSnoOui}
</if>
<if test="pppoeAccount!=null and pppoeAccount!= ''">
and aa.pppoe_account = #{pppoeAccount}
</if>
</select>
</mapper>

Loading…
Cancel
Save