feat: 工单管理手动绑定设备

master
李小林 8 months ago
parent 5ec417ac34
commit 252ca9a3d1
  1. 4
      src/main/java/com/bellmann/common/result/ResultCode.java
  2. 17
      src/main/java/com/bellmann/common/util/CommonUtils.java
  3. 2
      src/main/java/com/bellmann/controller/OrderInfoController.java
  4. 2
      src/main/java/com/bellmann/mapper/DeviceTypeVerMapper.java
  5. 56
      src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java
  6. 15
      src/main/resources/mapper/DeviceTypeVerMapper.xml

@ -111,7 +111,9 @@ public enum ResultCode implements IResultCode, Serializable {
DEVICE_ALREADY_BINDING_OTHER_LOGIC("F0020", "该设备已经绑定了其他逻辑ID,请解绑此设备后再操作!"),
LOGICID_ALREADY_DEVICE("F0021","逻辑ID已有绑定设备,如需绑定其他设备,请解绑后操作!"),
LOGICID_ALREADY_UNBINDING_ORDER_ALREADY_EXIST("F0022","逻辑ID已解绑,工单已存在!" ),
UPDATE_DEVICE_FAILED("F0023", "更新设备信息失败");
UPDATE_DEVICE_FAILED("F0023", "更新设备信息失败"),
DEVICE_BINDING_FAILED("F0024","设备更换失败");
@Override
public String getCode() {
return code;

@ -0,0 +1,17 @@
package com.bellmann.common.util;
import java.util.Random;
public class CommonUtils {
public static String getRandomString(int length) { //length表示生成字符串的长度
String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int number = random.nextInt(base.length());
sb.append(base.charAt(number));
}
return "12$"+sb.toString();
}
}

@ -68,7 +68,7 @@ public class OrderInfoController {
@PutMapping("binding-dev-oui-sno/{orderId}/{devOuiSno}")
@Operation(summary = "绑定设备")
@Operation(summary = "绑定前检查设备校验")
public Result<String> bindingOuiSno(@PathVariable String devOuiSno, @PathVariable Long orderId){
return orderInfoService.bindingOuiSno(devOuiSno,orderId);
}

@ -28,4 +28,6 @@ public interface DeviceTypeVerMapper extends BaseMapper<DeviceTypeVer> {
Long countDevTypeStatic(Long typeAndVerId);
DeviceTypeVerForm findDevTypeVerEditForm(@Param("typeAndVerId") Long typeAndVerId);
Long getTypeAndVerId();
}

@ -10,11 +10,9 @@ import com.bellmann.common.enums.*;
import com.bellmann.common.exception.BusinessException;
import com.bellmann.common.result.Result;
import com.bellmann.common.result.ResultCode;
import com.bellmann.common.util.CommonUtils;
import com.bellmann.converter.OrderInfoConverter;
import com.bellmann.mapper.DeviceStaticMapper;
import com.bellmann.mapper.DeviceTypeVerDetailMapper;
import com.bellmann.mapper.OrderInfoMapper;
import com.bellmann.mapper.OrderServiceMapper;
import com.bellmann.mapper.*;
import com.bellmann.model.bo.DeviceDetailBO;
import com.bellmann.model.entity.DeviceStatic;
import com.bellmann.model.entity.OrderInfo;
@ -25,12 +23,15 @@ import com.bellmann.model.vo.OrderInfoTableVO;
import com.bellmann.model.vo.OrderInfoVO;
import com.bellmann.security.util.SecurityUtils;
import com.bellmann.service.OrderInfoService;
import com.zznode.itms.api.InventoryManager;
import com.zznode.itms.api.NBIManager;
import com.zznode.itms.api.Utils;
import com.zznode.itms.idl.resourcedefinition.*;
import lombok.RequiredArgsConstructor;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
@ -56,6 +57,8 @@ public class OrderInfoServiceImpl implements OrderInfoService {
private final DeviceStaticMapper deviceStaticMapper;
private final OrderInfoConverter orderInfoConverter;
private final DeviceTypeVerMapper deviceTypeVerMapper;
@Override
public Page<OrderInfoTableVO> tablePage(SelectQuery query) {
int pageNum = query.getPageNum();
@ -320,6 +323,46 @@ public class OrderInfoServiceImpl implements OrderInfoService {
@Override
public Result<String> bindingOuiSno(String devOuiSno, Long orderId) {
checkDevice(devOuiSno,orderId);
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
.eq("order_id", orderId)
.select("order_id","order_status","unique_user_id","pppoe_account","ad_no")
);
if (OrderStatusEnum.PROCESSING.getValue().equals(orderInfo.getOrderStatus())){
devOuiSno = CommonUtils.getRandomString(14);
createDevice(devOuiSno,orderInfo);
}
int result = NBIManager.bindDevice(orderId, devOuiSno);
if (result!=0){
throw new BusinessException(ResultCode.DEVICE_BINDING_FAILED);
}
return Result.success();
}
private void createDevice(String ouiSno,OrderInfo order){
RDeviceStaticStruct deviceStaticStruct=new RDeviceStaticStruct();
deviceStaticStruct.typeAndVerId = deviceTypeVerMapper.getTypeAndVerId();
deviceStaticStruct.custId= Utils.LONG_NULL;
deviceStaticStruct.regionAreaId=order.getSystemDomain();
deviceStaticStruct.corpAreaId = Utils.LONG_NULL;
deviceStaticStruct.devSNo=ouiSno;
deviceStaticStruct.devMac="";
deviceStaticStruct.devPPPoE=order.getPppoeAccount();
deviceStaticStruct.devADNo=order.getAdNo();
deviceStaticStruct.devCreateTime=new Date().getTime();
deviceStaticStruct.devModifyTime=Utils.LONG_NULL;
deviceStaticStruct.devSoapFlag=true;
deviceStaticStruct.devInformFlag=true;
deviceStaticStruct.devStatus = RDevStatus.DEV_NORMAL;
deviceStaticStruct.devRemark1="";
deviceStaticStruct.devRemark2="";
deviceStaticStruct.devRemark3="";
deviceStaticStruct.devRemark4="";
deviceStaticStruct.devRemark5="1";
RDeviceStaticStructHolder holder=new RDeviceStaticStructHolder(deviceStaticStruct);
int result= InventoryManager.addDevice(holder);
}
private void checkDevice(String devOuiSno,Long orderId){
String[] split = devOuiSno.split("-");
if (split.length!=2){
throw new BusinessException(ResultCode.DEV_OUI_SNO_FORMAT_ERROR);
@ -350,10 +393,5 @@ public class OrderInfoServiceImpl implements OrderInfoService {
if (!"0".equals(devSnoOui)){
throw new BusinessException(ResultCode.LOGICID_ALREADY_DEVICE);
}
orderInfoMapper.update(null,new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getOrderId,orderId)
.set(OrderInfo::getDevSnoOui,devOuiSno)
);
return Result.success();
}
}

@ -108,4 +108,19 @@
WHERE
idtv.type_and_ver_id = #{typeAndVerId}
</select>
<select id="getTypeAndVerId" resultType="java.lang.Long">
SELECT
ITMS_DEVICE_TYPE_VER.TYPE_AND_VER_ID
FROM
ITMS_DEVICE_TYPE_VER_DETAIL,
ITMS_DEVICE_TYPE_VER,
ITMS_DEVICE_TYPE
WHERE
ITMS_DEVICE_TYPE_VER_DETAIL.DEV_TYPE_NAME_NEW = 'ITMS'
AND ITMS_DEVICE_TYPE_VER_DETAIL.TYPE_AND_VER_ID = ITMS_DEVICE_TYPE_VER.TYPE_AND_VER_ID
AND ITMS_DEVICE_TYPE_VER.DEV_TYPE_ID = ITMS_DEVICE_TYPE.DEV_TYPE_ID
AND DEV_TYPE_VER_STATUS = '1'
LIMIT 1
</select>
</mapper>

Loading…
Cancel
Save