feat: 合并工单管理

master
李小林 6 months ago
parent 086471ed4d
commit 171e1bfbe1
  1. 37
      src/main/java/com/bellmann/controller/OrderInfoController.java
  2. 13
      src/main/java/com/bellmann/controller/OrderServiceController.java
  3. 2
      src/main/java/com/bellmann/converter/OrderInfoConverter.java
  4. 9
      src/main/java/com/bellmann/converter/OrderServiceConverter.java
  5. 9
      src/main/java/com/bellmann/mapper/MergeOrderInfoDetailMapper.java
  6. 13
      src/main/java/com/bellmann/mapper/MergeOrderInfoMapper.java
  7. 12
      src/main/java/com/bellmann/mapper/MergeOrderServiceMapper.java
  8. 3
      src/main/java/com/bellmann/mapper/OrderInfoMapper.java
  9. 102
      src/main/java/com/bellmann/model/entity/MergeOrderInfo.java
  10. 90
      src/main/java/com/bellmann/model/entity/MergeOrderInfoDetail.java
  11. 42
      src/main/java/com/bellmann/model/entity/MergeOrderService.java
  12. 12
      src/main/java/com/bellmann/service/OrderInfoService.java
  13. 6
      src/main/java/com/bellmann/service/OrderServiceService.java
  14. 1
      src/main/java/com/bellmann/service/impl/CraftOrderServiceImpl.java
  15. 184
      src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java
  16. 54
      src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java
  17. 128
      src/main/resources/mapper/MergeOrderInfoMapper.xml
  18. 32
      src/main/resources/mapper/MergeOrderServiceMapper.xml
  19. 38
      src/main/resources/mapper/OrderInfoMapper.xml

@ -42,24 +42,55 @@ public class OrderInfoController {
Page<OrderInfoTableVO> page = orderInfoService.tablePage(query); Page<OrderInfoTableVO> page = orderInfoService.tablePage(query);
return PageResult.success(page); return PageResult.success(page);
} }
@PostMapping("/merge/page")
@PreAuthorize("@ss.hasPerm('order:index:query')")
@Operation(summary = "合并工单管理表格分页")
public PageResult<OrderInfoTableVO> mergePage(@RequestBody SelectQuery query){
Page<OrderInfoTableVO> page = orderInfoService.mergePage(query);
return PageResult.success(page);
}
@GetMapping("info/{orderId}") @GetMapping("info/{orderId}")
@Operation(summary = "工单管理获取工单详细信息") @Operation(summary = "工单管理获取工单详细信息")
public Result<OrderInfoVO> getOrderById(@PathVariable Long orderId){ public Result<OrderInfoVO> getOrderById(@PathVariable Long orderId){
return orderInfoService.getOrderById(orderId); return orderInfoService.getOrderById(orderId);
} }
@GetMapping("/merge/info/{orderId}")
@Operation(summary = "合并工单管理获取工单详细信息")
public Result<OrderInfoVO> getMergeOrderById(@PathVariable Long orderId){
return orderInfoService.getMergeOrderById(orderId);
}
@PutMapping("update-order-status/{orderId}/{orderStatus}") @PutMapping("update-order-status/{orderId}/{orderStatus}")
@Operation(summary = "修改工单状态") @Operation(summary = "修改工单状态")
@PreAuthorize("@ss.hasPerm('order:detail:update:status')") @PreAuthorize("@ss.hasPerm('order:detail:update:status')")
public Result<String> updateOrderStatus(@PathVariable Long orderId, @PathVariable String orderStatus){ public Result<String> updateOrderStatus(@PathVariable Long orderId, @PathVariable String orderStatus){
return orderInfoService.updateOrderStatus(orderId,orderStatus); return orderInfoService.updateOrderStatus(orderId,orderStatus);
} }
@PutMapping("/merge/update-order-status/{orderId}/{orderStatus}")
@Operation(summary = "修改合并工单状态")
@PreAuthorize("@ss.hasPerm('order:detail:update:status')")
public Result<String> mergeUpdateOrderStatus(@PathVariable Long orderId, @PathVariable String orderStatus){
return orderInfoService.mergeUpdateOrderStatus(orderId,orderStatus);
}
@PutMapping("execute-order/{orderId}") @PutMapping("execute-order/{orderId}")
@PreAuthorize("@ss.hasPerm('family:operate:order:execute')") @PreAuthorize("@ss.hasPerm('family:operate:order:execute')")
@Operation(summary = "手动执行工单") @Operation(summary = "手动执行工单")
public Result<String> executeOrder(@PathVariable Long orderId){ public Result<String> executeOrder(@PathVariable Long orderId){
return orderInfoService.executeOrder(orderId); return orderInfoService.executeOrder(orderId);
} }
@PutMapping("/merge/execute-order/{orderId}")
@PreAuthorize("@ss.hasPerm('family:operate:order:execute')")
@Operation(summary = "手动执行合并工单")
public Result<String> executeMergeOrder(@PathVariable Long orderId){
return orderInfoService.executeMergeOrder(orderId);
}
@GetMapping("/merge/modify-form/{orderId}")
@Operation(summary = "获取修改合并工单表单")
public Result<ModifyOrderForm> mergeModifyForm(@PathVariable Long orderId){
return orderInfoService.mergeModifyForm(orderId);
}
@GetMapping("modify-form/{orderId}") @GetMapping("modify-form/{orderId}")
@Operation(summary = "获取修改工单表单") @Operation(summary = "获取修改工单表单")
public Result<ModifyOrderForm> modifyForm(@PathVariable Long orderId){ public Result<ModifyOrderForm> modifyForm(@PathVariable Long orderId){
@ -72,6 +103,12 @@ public class OrderInfoController {
public Result<String> updateForm(@RequestBody ModifyOrderForm form){ public Result<String> updateForm(@RequestBody ModifyOrderForm form){
return orderInfoService.updateForm(form); return orderInfoService.updateForm(form);
} }
@PostMapping("/merge/update-form")
@Operation(summary = "修改合并工单表单")
@PreAuthorize("@ss.hasPerm('order:detail:update')")
public Result<String> updateMergeOrderForm(@RequestBody ModifyOrderForm form){
return orderInfoService.updateMergeOrderForm(form);
}
@PutMapping("binding-dev-oui-sno/{orderId}/{devOuiSno}") @PutMapping("binding-dev-oui-sno/{orderId}/{devOuiSno}")

@ -35,14 +35,27 @@ public class OrderServiceController {
public PageResult<OrderInfoBusinessVO> orderInfoBusinessPage(@RequestBody BasePageQuery query, @PathVariable Long orderId){ public PageResult<OrderInfoBusinessVO> orderInfoBusinessPage(@RequestBody BasePageQuery query, @PathVariable Long orderId){
return orderServiceService.orderInfoBusinessPage(query,orderId); return orderServiceService.orderInfoBusinessPage(query,orderId);
} }
@PostMapping("/merge/order-info-service/{orderId}")
@Operation(summary = "工单业务列表")
public PageResult<OrderInfoBusinessVO> mergeOrderInfoBusinessPage(@RequestBody BasePageQuery query, @PathVariable Long orderId){
return orderServiceService.mergeOrderInfoBusinessPage(query,orderId);
}
@PostMapping("/order-service-parameter/{orderId}/{service}") @PostMapping("/order-service-parameter/{orderId}/{service}")
public PageResult<OrderServiceVO> orderServiceParameterPage(@RequestBody BasePageQuery query,@PathVariable Long orderId, @PathVariable String service){ public PageResult<OrderServiceVO> orderServiceParameterPage(@RequestBody BasePageQuery query,@PathVariable Long orderId, @PathVariable String service){
return orderServiceService.orderServiceParameterPage(query,orderId,service); return orderServiceService.orderServiceParameterPage(query,orderId,service);
} }
@PostMapping("/merge/order-service-parameter/{orderId}/{service}")
public PageResult<OrderServiceVO> mergeOrderServiceParameterPage(@RequestBody BasePageQuery query,@PathVariable Long orderId, @PathVariable String service){
return orderServiceService.mergeOrderServiceParameterPage(query,orderId,service);
}
@PostMapping("/service-parameter-update/{orderId}/{service}/{serviceFlag}") @PostMapping("/service-parameter-update/{orderId}/{service}/{serviceFlag}")
public Result<String> updateOrderServiceParameter(@RequestBody List<OrderServiceVO> list, @PathVariable Long orderId, @PathVariable String service, @PathVariable String serviceFlag){ public Result<String> updateOrderServiceParameter(@RequestBody List<OrderServiceVO> list, @PathVariable Long orderId, @PathVariable String service, @PathVariable String serviceFlag){
return orderServiceService.updateOrderServiceParameter(list,orderId,service,serviceFlag); return orderServiceService.updateOrderServiceParameter(list,orderId,service,serviceFlag);
} }
@PostMapping("/merge/service-parameter-update/{orderId}/{service}/{serviceFlag}")
public Result<String> updateMergeOrderServiceParameter(@RequestBody List<OrderServiceVO> list, @PathVariable Long orderId, @PathVariable String service, @PathVariable String serviceFlag){
return orderServiceService.updateMergeOrderServiceParameter(list,orderId,service,serviceFlag);
}
} }

@ -1,5 +1,6 @@
package com.bellmann.converter; package com.bellmann.converter;
import com.bellmann.model.entity.MergeOrderInfo;
import com.bellmann.model.entity.OrderInfo; import com.bellmann.model.entity.OrderInfo;
import com.bellmann.model.form.ModifyOrderForm; import com.bellmann.model.form.ModifyOrderForm;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@ -11,4 +12,5 @@ public interface OrderInfoConverter {
ModifyOrderForm entity2ModifyForm(OrderInfo orderInfo); ModifyOrderForm entity2ModifyForm(OrderInfo orderInfo);
ModifyOrderForm mergeEntity2MergeModifyForm(MergeOrderInfo orderInfo);
} }

@ -1,6 +1,7 @@
package com.bellmann.converter; package com.bellmann.converter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.entity.MergeOrderService;
import com.bellmann.model.entity.OrderService; import com.bellmann.model.entity.OrderService;
import com.bellmann.model.vo.OrderInfoBusinessVO; import com.bellmann.model.vo.OrderInfoBusinessVO;
import com.bellmann.model.vo.OrderServiceVO; import com.bellmann.model.vo.OrderServiceVO;
@ -30,5 +31,13 @@ public interface OrderServiceConverter {
Page<OrderServiceVO> entity2VOPage(Page<OrderService> voPage); Page<OrderServiceVO> entity2VOPage(Page<OrderService> voPage);
List<OrderService> vos2Entities(List<OrderServiceVO> list); List<OrderService> vos2Entities(List<OrderServiceVO> list);
@Mappings({
@Mapping(target = "serviceFlag", expression = "java(com.bellmann.common.base.IBaseEnum.getLabelByValue(entity.getServiceFlag(), com.bellmann.common.enums.ServiceFlagEnum.class))"),
})
OrderInfoBusinessVO mergeEntity2MergePageVo(MergeOrderService entity);
Page<OrderInfoBusinessVO> mergeEntity2MergePageVo(Page<MergeOrderService> dataPage);
Page<OrderServiceVO> mergeEntity2MergeVOPage(Page<MergeOrderService> voPage);
List<MergeOrderService> mergeVO2Entities(List<OrderServiceVO> list);
} }

@ -0,0 +1,9 @@
package com.bellmann.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bellmann.model.entity.MergeOrderInfoDetail;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface MergeOrderInfoDetailMapper extends BaseMapper<MergeOrderInfoDetail> {
}

@ -0,0 +1,13 @@
package com.bellmann.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bellmann.model.entity.MergeOrderInfo;
import com.bellmann.model.vo.OrderInfoVO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface MergeOrderInfoMapper extends BaseMapper<MergeOrderInfo> {
OrderInfoVO getMergeOrderById(Long orderId);
MergeOrderInfo orderSnoOuiPppoeUnique(Long orderId);
}

@ -0,0 +1,12 @@
package com.bellmann.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.entity.MergeOrderService;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface MergeOrderServiceMapper extends BaseMapper<MergeOrderService> {
Page<MergeOrderService> orderInfoBusinessPage(Page<MergeOrderService> page, @Param("orderId") Long orderId);
}

@ -32,4 +32,7 @@ public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
List<OrderInfoTableVO> deviceOrderPage(Page<OrderInfoTableVO> page,@Param("devAdNo") String devAdNo,@Param("domain") Long domain); List<OrderInfoTableVO> deviceOrderPage(Page<OrderInfoTableVO> page,@Param("devAdNo") String devAdNo,@Param("domain") Long domain);
String getCustomerKindBySn(@Param("userSnNo") String userSnNo); String getCustomerKindBySn(@Param("userSnNo") String userSnNo);
List<OrderInfoTableVO> mergePage(Page<OrderInfoTableVO> page, @Param("column") String column, @Param("value") Object value, @Param("domain") Long domain);
} }

@ -0,0 +1,102 @@
package com.bellmann.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-06-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("itms_order_merger")
public class MergeOrderInfo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "order_id", type = IdType.AUTO)
private Long orderId;
private String receivedOrderId;
private String receivedOrderLhs;
private LocalDateTime orderDate;
private String orderServiceType;
private String orderRemark;
private Date orderDeadline;
private String customerNameNew;
private String customerNameOld;
private String orderCustomerKind;
private Long systemDomain;
private Long corporationDomain;
private String adNo;
private String pppoeAccount;
private String contactPersonNew;
private String contactPersonOld;
private LocalDateTime receivedDate;
private String orderStatus;
private Date orderDealDate;
private String orderDoneFlag;
private Date orderDoneDate;
private String dummyFlag;
private String remark;
private String devSnoOui;
private String pppoePassword;
private String customerAddrNew;
private String customerAddrOld;
private String flowType;
private String userSnNo;
private String userSnKey;
private String uniqueUserId;
private String operRemark;
private String remark1;
private String remark2;
private String remark3;
private Long lifetime;
}

@ -0,0 +1,90 @@
package com.bellmann.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-06-20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("itms_order_merger_detail")
public class MergeOrderInfoDetail implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 工单编号ID
*/
private Long orderId;
/**
* 电话号码
*/
private String voipPhone;
/**
* IPTV路数
*/
private String iptvPort;
/**
* IPTV接入号
*/
private String iptvAccess;
/**
* 宽带接入号
*/
private String bandAccess;
/**
* 上行速率
*/
private String upRate;
/**
* 下行速率
*/
private String downRate;
/**
* 预留字段1
*/
private String detailRemark1;
/**
* 预留字段2
*/
private String detailRemark2;
/**
* 预留字段3
*/
private String detailRemark3;
/**
* 工单类型: 0表示家庭用户工单, 1表示政企用户工单
*/
private String orderKind;
/**
* 机卡分离工单的卡序列号
*/
private String cardId;
/**
* 机卡分离工单的卡密钥
*/
private String cardKey;
}

@ -0,0 +1,42 @@
package com.bellmann.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-06-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("itms_order_merger_service")
public class MergeOrderService implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "order_id", type = IdType.AUTO)
private Long orderId;
private String service;
private Long serviceId;
private String serviceFlag;
private String argsName;
private String argsValueNew;
private String argsValueOld;
}

@ -40,4 +40,16 @@ public interface OrderInfoService {
Result<Map<Object,Object>> checkDev(String adNo); Result<Map<Object,Object>> checkDev(String adNo);
Result<String> mergeOrder(MergeOrderForm form); Result<String> mergeOrder(MergeOrderForm form);
Page<OrderInfoTableVO> mergePage(SelectQuery query);
Result<OrderInfoVO> getMergeOrderById(Long orderId);
Result<String> mergeUpdateOrderStatus(Long orderId, String orderStatus);
Result<ModifyOrderForm> mergeModifyForm(Long orderId);
Result<String> updateMergeOrderForm(ModifyOrderForm form);
Result<String> executeMergeOrder(Long orderId);
} }

@ -23,4 +23,10 @@ public interface OrderServiceService {
PageResult<OrderServiceVO> orderServiceParameterPage(BasePageQuery query, Long orderId, String service); PageResult<OrderServiceVO> orderServiceParameterPage(BasePageQuery query, Long orderId, String service);
Result<String> updateOrderServiceParameter(List<OrderServiceVO> list, Long orderId, String service, String serviceFlag); Result<String> updateOrderServiceParameter(List<OrderServiceVO> list, Long orderId, String service, String serviceFlag);
PageResult<OrderInfoBusinessVO> mergeOrderInfoBusinessPage(BasePageQuery query, Long orderId);
PageResult<OrderServiceVO> mergeOrderServiceParameterPage(BasePageQuery query, Long orderId, String service);
Result<String> updateMergeOrderServiceParameter(List<OrderServiceVO> list, Long orderId, String service, String serviceFlag);
} }

@ -256,7 +256,6 @@ public class CraftOrderServiceImpl implements CraftOrderService {
throw new BusinessException(ResultCode.PLEASE_SELECT_A_CUSTOMER_TYPE); throw new BusinessException(ResultCode.PLEASE_SELECT_A_CUSTOMER_TYPE);
} }
String xml = OrderUtils.formatOrderXml(orderTempBO); String xml = OrderUtils.formatOrderXml(orderTempBO);
System.out.println(xml);
HttpClientResult result = sendOrderToStartNBI(xml); HttpClientResult result = sendOrderToStartNBI(xml);
if (result.getCode()== HttpStatus.HTTP_OK){ if (result.getCode()== HttpStatus.HTTP_OK){
return Result.success(); return Result.success();

@ -17,9 +17,7 @@ import com.bellmann.converter.OrderInfoConverter;
import com.bellmann.mapper.*; import com.bellmann.mapper.*;
import com.bellmann.model.bo.DevOnlineStatus; import com.bellmann.model.bo.DevOnlineStatus;
import com.bellmann.model.bo.DeviceDetailBO; import com.bellmann.model.bo.DeviceDetailBO;
import com.bellmann.model.entity.DeviceStatic; import com.bellmann.model.entity.*;
import com.bellmann.model.entity.OrderInfo;
import com.bellmann.model.entity.OrderService;
import com.bellmann.model.form.MergeOrderForm; import com.bellmann.model.form.MergeOrderForm;
import com.bellmann.model.form.ModifyOrderForm; import com.bellmann.model.form.ModifyOrderForm;
import com.bellmann.model.query.DeviceOrderQuery; import com.bellmann.model.query.DeviceOrderQuery;
@ -63,12 +61,16 @@ public class OrderInfoServiceImpl implements OrderInfoService {
private final OrderServiceMapper orderServiceMapper; private final OrderServiceMapper orderServiceMapper;
private final MergeOrderServiceMapper mergeOrderServiceMapper;
private final DeviceStaticMapper deviceStaticMapper; private final DeviceStaticMapper deviceStaticMapper;
private final OrderInfoConverter orderInfoConverter; private final OrderInfoConverter orderInfoConverter;
private final DeviceTypeVerMapper deviceTypeVerMapper; private final DeviceTypeVerMapper deviceTypeVerMapper;
private final MergeOrderInfoMapper mergeOrderInfoMapper;
@Override @Override
public Page<OrderInfoTableVO> tablePage(SelectQuery query) { public Page<OrderInfoTableVO> tablePage(SelectQuery query) {
int pageNum = query.getPageNum(); int pageNum = query.getPageNum();
@ -181,6 +183,31 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return Result.success(); return Result.success();
} }
@Override
public Result<String> mergeUpdateOrderStatus(Long orderId, String orderStatus) {
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderStatus)) {
throw new BusinessException(ResultCode.BAN_UPDATE_ORDER_STATUS_MANUAL_INTERVENTION);
}
MergeOrderInfo orderInfo = mergeOrderInfoMapper.selectOne(new QueryWrapper<MergeOrderInfo>()
.select("order_status")
.eq("order_id", orderId)
);
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderInfo.getOrderStatus())) {
throw new BusinessException(ResultCode.BAN_UPDATE_ORDER_STATUS_MANUAL_INTERVENTION);
}
mergeOrderInfoMapper.update(null, new LambdaUpdateWrapper<MergeOrderInfo>()
.eq(MergeOrderInfo::getOrderId, orderId)
.set(MergeOrderInfo::getOrderStatus, orderStatus)
);
if (OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderStatus)) {
mergeOrderServiceMapper.update(null, new LambdaUpdateWrapper<MergeOrderService>()
.eq(MergeOrderService::getOrderId, orderId)
.set(MergeOrderService::getServiceId, -999)
);
}
return Result.success();
}
@Override @Override
public Result<String> executeOrder(Long orderId) { public Result<String> executeOrder(Long orderId) {
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>() OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
@ -255,6 +282,80 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return Result.success(); return Result.success();
} }
@Override
public Result<String> executeMergeOrder(Long orderId) {
MergeOrderInfo orderInfo = mergeOrderInfoMapper.selectOne(new QueryWrapper<MergeOrderInfo>()
.select("order_status", "pppoe_account", "dev_sno_oui", "unique_user_id", "order_service_type")
.eq("order_id", orderId)
);
if (!OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderInfo.getOrderStatus())) {
throw new BusinessException(ResultCode.NOT_OPERATE_ORDER);
}
mergeOrderInfoMapper.update(null, new LambdaUpdateWrapper<MergeOrderInfo>()
.eq(MergeOrderInfo::getOrderId, orderId)
.set(MergeOrderInfo::getOrderStatus, OrderStatusEnum.NOT_PROCESSED.getValue())
.set(MergeOrderInfo::getOrderDoneFlag, OrderDoneFlagEnum.THE_ORDER_HAS_NOT_BEEN_RETURNED.getValue())
);
boolean ouiFlag = false;
boolean pppoeFlag = false;
boolean uniqueUserIdFlag = false;
DeviceDetailBO bo = null;
MergeOrderInfo obj = mergeOrderInfoMapper.orderSnoOuiPppoeUnique(orderId);
String devSnoOui = obj.getDevSnoOui();
if (devSnoOui != null && !devSnoOui.trim().isEmpty()) {
if (devSnoOui.startsWith("12$")) {
devSnoOui = orderInfo.getDevSnoOui();
if (devSnoOui.isEmpty()) {
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}
}
String sno = "";
String oui = "";
if (devSnoOui.contains("-")) {
String[] split = devSnoOui.split("-");
sno = split[0];
oui = split[1];
}
bo = deviceStaticMapper.orderByDevSnoOui(sno, oui, null);
if (bo == null) {
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
} else {
ouiFlag = true;
}
}
String uniqueUserId = obj.getUniqueUserId();
if (
uniqueUserId != null &&
!uniqueUserId.isEmpty() &&
!ouiFlag &&
!OrderServiceTypeEnum.EQUIPMENT_REPLACEMENT.getValue().equals(orderInfo.getOrderServiceType())
) {
DeviceDetailBO deviceDetailBO = deviceStaticMapper.orderByDevSnoOui(null, null, uniqueUserId);
if (deviceDetailBO != null) {
bo = deviceDetailBO;
uniqueUserIdFlag = true;
}
}
String pppoeAccount = obj.getPppoeAccount();
if (pppoeAccount != null && !pppoeAccount.isEmpty() && !ouiFlag && uniqueUserIdFlag) {
DeviceDetailBO deviceDetailBO = deviceStaticMapper.orderByPppoeAccount(DevStatusEnum.NORMAL.getValue(), pppoeAccount);
if (deviceDetailBO != null) {
bo = deviceDetailBO;
pppoeFlag = true;
}
}
if (!pppoeFlag && !ouiFlag && !uniqueUserIdFlag) {
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}
RDeviceDetailStruct struct = conversionStruct(bo);
int res = NBIManager.informConfigure(struct, orderId, true);
if (res != 0) {
throw new BusinessException(ResultCode.NBI_ERROR);
}
return Result.success();
}
private RDeviceDetailStruct conversionStruct(DeviceDetailBO bo) { private RDeviceDetailStruct conversionStruct(DeviceDetailBO bo) {
RDeviceDetailStruct struct = new RDeviceDetailStruct(); RDeviceDetailStruct struct = new RDeviceDetailStruct();
RDeviceDynamicStruct devDynamic = new RDeviceDynamicStruct(); RDeviceDynamicStruct devDynamic = new RDeviceDynamicStruct();
@ -328,6 +429,23 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return Result.success(form); return Result.success(form);
} }
@Override
public Result<ModifyOrderForm> mergeModifyForm(Long orderId) {
MergeOrderInfo orderInfo = mergeOrderInfoMapper.selectOne(new QueryWrapper<MergeOrderInfo>()
.select("order_id",
"order_service_type",
"order_customer_kind",
"received_order_id",
"order_date",
"pppoe_account",
"ad_no"
)
.eq("order_id", orderId)
);
ModifyOrderForm form = orderInfoConverter.mergeEntity2MergeModifyForm(orderInfo);
return Result.success(form);
}
@Override @Override
public Result<String> updateForm(ModifyOrderForm form) { public Result<String> updateForm(ModifyOrderForm form) {
orderInfoMapper.update(null, new LambdaUpdateWrapper<OrderInfo>() orderInfoMapper.update(null, new LambdaUpdateWrapper<OrderInfo>()
@ -342,6 +460,20 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return Result.success(); return Result.success();
} }
@Override
public Result<String> updateMergeOrderForm(ModifyOrderForm form) {
mergeOrderInfoMapper.update(null, new LambdaUpdateWrapper<MergeOrderInfo>()
.eq(MergeOrderInfo::getOrderId, form.getOrderId())
.set(MergeOrderInfo::getOrderServiceType, form.getOrderServiceType())
.set(MergeOrderInfo::getOrderDate, form.getOrderDate())
.set(MergeOrderInfo::getAdNo, form.getAdNo())
.set(MergeOrderInfo::getPppoeAccount, form.getPppoeAccount())
.set(MergeOrderInfo::getOrderCustomerKind, form.getOrderCustomerKind())
.set(MergeOrderInfo::getReceivedOrderId, form.getReceivedOrderId())
);
return Result.success();
}
@Override @Override
public Result<String> bindingOuiSno(String devOuiSno, Long orderId) { public Result<String> bindingOuiSno(String devOuiSno, Long orderId) {
checkDevice(devOuiSno, orderId); checkDevice(devOuiSno, orderId);
@ -487,4 +619,50 @@ public class OrderInfoServiceImpl implements OrderInfoService {
} }
return Result.failed(result); return Result.failed(result);
} }
@Override
public Page<OrderInfoTableVO> mergePage(SelectQuery query) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Object value = query.getSelectValue();
String column = query.getSelectName();
Page<OrderInfoTableVO> page = new Page<>(pageNum, pageSize);
Long domain = SecurityUtils.getGroupId();
List<OrderInfoTableVO> list = orderInfoMapper.mergePage(page, column, value, domain);
return getOrderInfoTableVOPage(page, list);
}
@Override
public Result<OrderInfoVO> getMergeOrderById(Long orderId) {
OrderInfoVO orderInfoVO = mergeOrderInfoMapper.getMergeOrderById(orderId);
orderInfoVO.setOrderCustomerKind(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderCustomerKind(), CustomTypeEnum.class));
orderInfoVO.setOrderServiceType(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderServiceType(), OrderServiceTypeEnum.class));
orderInfoVO.setOrderRemark(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderRemark(), OrderOperateEnum.class));
orderInfoVO.setDummyFlag(
IBaseEnum.getLabelByValue(
orderInfoVO.getDummyFlag(), DummyFlagEnum.class));
orderInfoVO.setOrderDoneFlag(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderDoneFlag(), OrderDoneFlagEnum.class));
orderInfoVO.setDomain(
(String) redisTemplate
.opsForHash()
.get(SecurityConstants.DOMAIN_PREFIX,
orderInfoVO.getSystemDomain().toString()));
orderInfoVO.setDevOnlineStatus(devOnlineStatus(orderInfoVO.getDevSnoOui(), orderInfoVO.getPppoeAccount()));
if (orderInfoVO.getAdNo() != null) {
String devAccessType = deviceTypeVerDetailMapper.findDevAccessType(orderInfoVO.getAdNo());
if (devAccessType != null) {
orderInfoVO.setDevAccessType(IBaseEnum.getLabelByValue(
devAccessType, DevAccessTypeEnum.class));
}
}
return Result.success(orderInfoVO);
}
} }

@ -9,8 +9,12 @@ import com.bellmann.common.enums.ServiceFlagEnum;
import com.bellmann.common.result.PageResult; import com.bellmann.common.result.PageResult;
import com.bellmann.common.result.Result; import com.bellmann.common.result.Result;
import com.bellmann.converter.OrderServiceConverter; import com.bellmann.converter.OrderServiceConverter;
import com.bellmann.mapper.MergeOrderInfoDetailMapper;
import com.bellmann.mapper.MergeOrderServiceMapper;
import com.bellmann.mapper.OrderInfoDetailMapper; import com.bellmann.mapper.OrderInfoDetailMapper;
import com.bellmann.mapper.OrderServiceMapper; import com.bellmann.mapper.OrderServiceMapper;
import com.bellmann.model.entity.MergeOrderInfoDetail;
import com.bellmann.model.entity.MergeOrderService;
import com.bellmann.model.entity.OrderInfoDetail; import com.bellmann.model.entity.OrderInfoDetail;
import com.bellmann.model.entity.OrderService; import com.bellmann.model.entity.OrderService;
import com.bellmann.model.vo.OrderInfoBusinessVO; import com.bellmann.model.vo.OrderInfoBusinessVO;
@ -36,10 +40,14 @@ public class OrderServiceServiceImpl implements OrderServiceService {
private final OrderServiceMapper orderServiceMapper; private final OrderServiceMapper orderServiceMapper;
private final MergeOrderServiceMapper mergeOrderServiceMapper;
private final OrderServiceConverter orderServiceConverter; private final OrderServiceConverter orderServiceConverter;
private final OrderInfoDetailMapper orderInfoDetailMapper; private final OrderInfoDetailMapper orderInfoDetailMapper;
private final MergeOrderInfoDetailMapper mergeOrderInfoDetailMapper;
@Override @Override
public PageResult<OrderInfoBusinessVO> orderInfoBusinessPage(BasePageQuery query, Long orderId) { public PageResult<OrderInfoBusinessVO> orderInfoBusinessPage(BasePageQuery query, Long orderId) {
int pageNum = query.getPageNum(); int pageNum = query.getPageNum();
@ -49,6 +57,15 @@ public class OrderServiceServiceImpl implements OrderServiceService {
return PageResult.success(orderServiceConverter.entity2PageVo(dataPage)); return PageResult.success(orderServiceConverter.entity2PageVo(dataPage));
} }
@Override
public PageResult<OrderInfoBusinessVO> mergeOrderInfoBusinessPage(BasePageQuery query, Long orderId) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Page<MergeOrderService> page = new Page<>(pageNum, pageSize);
Page<MergeOrderService> dataPage = mergeOrderServiceMapper.orderInfoBusinessPage(page, orderId);
return PageResult.success(orderServiceConverter.mergeEntity2MergePageVo(dataPage));
}
@Override @Override
public PageResult<OrderServiceVO> orderServiceParameterPage(BasePageQuery query, Long orderId, String service) { public PageResult<OrderServiceVO> orderServiceParameterPage(BasePageQuery query, Long orderId, String service) {
int pageNum = query.getPageNum(); int pageNum = query.getPageNum();
@ -61,6 +78,18 @@ public class OrderServiceServiceImpl implements OrderServiceService {
return PageResult.success(orderServiceConverter.entity2VOPage(voPage)); return PageResult.success(orderServiceConverter.entity2VOPage(voPage));
} }
@Override
public PageResult<OrderServiceVO> mergeOrderServiceParameterPage(BasePageQuery query, Long orderId, String service) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Page<MergeOrderService> page = new Page<>(pageNum, pageSize);
Page<MergeOrderService> voPage = mergeOrderServiceMapper.selectPage(page, new LambdaQueryWrapper<MergeOrderService>()
.eq(MergeOrderService::getOrderId, orderId)
.eq(MergeOrderService::getService, service)
);
return PageResult.success(orderServiceConverter.mergeEntity2MergeVOPage(voPage));
}
@Override @Override
@Transactional @Transactional
public Result<String> updateOrderServiceParameter(List<OrderServiceVO> list, Long orderId, String service, String serviceFlag) { public Result<String> updateOrderServiceParameter(List<OrderServiceVO> list, Long orderId, String service, String serviceFlag) {
@ -87,4 +116,29 @@ public class OrderServiceServiceImpl implements OrderServiceService {
return Result.success(); return Result.success();
} }
@Override
public Result<String> updateMergeOrderServiceParameter(List<OrderServiceVO> list, Long orderId, String service, String serviceFlag) {
int rows = mergeOrderServiceMapper.delete(new LambdaQueryWrapper<MergeOrderService>()
.eq(MergeOrderService::getService, service)
.eq(MergeOrderService::getOrderId, orderId)
);
if (rows > 0) {
List<MergeOrderService> serviceList = orderServiceConverter.mergeVO2Entities(list);
for (MergeOrderService orderService : serviceList) {
orderService.setServiceId(-999L);
orderService.setServiceFlag((String) IBaseEnum.getValueByLabel(serviceFlag, ServiceFlagEnum.class));
mergeOrderServiceMapper.insert(orderService);
if (orderService.getArgsName().equals("user_tid") || orderService.getArgsName().equals("rg_port_id")) {
mergeOrderInfoDetailMapper.update(null,
new LambdaUpdateWrapper<MergeOrderInfoDetail>()
.eq(MergeOrderInfoDetail::getOrderId, orderService.getOrderId())
.set(MergeOrderInfoDetail::getDetailRemark3, orderService.getArgsValueNew())
);
}
}
}
return Result.success();
}
} }

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bellmann.mapper.MergeOrderInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.MergeOrderInfo">
<id column="order_id" property="orderId" />
<result column="received_order_id" property="receivedOrderId" />
<result column="received_order_lhs" property="receivedOrderLhs" />
<result column="order_date" property="orderDate" />
<result column="order_service_type" property="orderServiceType" />
<result column="order_remark" property="orderRemark" />
<result column="order_deadline" property="orderDeadline" />
<result column="customer_name_new" property="customerNameNew" />
<result column="customer_name_old" property="customerNameOld" />
<result column="order_customer_kind" property="orderCustomerKind" />
<result column="system_domain" property="systemDomain" />
<result column="corporation_domain" property="corporationDomain" />
<result column="ad_no" property="adNo" />
<result column="pppoe_account" property="pppoeAccount" />
<result column="contact_person_new" property="contactPersonNew" />
<result column="contact_person_old" property="contactPersonOld" />
<result column="received_date" property="receivedDate" />
<result column="order_status" property="orderStatus" />
<result column="order_deal_date" property="orderDealDate" />
<result column="order_done_flag" property="orderDoneFlag" />
<result column="order_done_date" property="orderDoneDate" />
<result column="dummy_flag" property="dummyFlag" />
<result column="remark" property="remark" />
<result column="dev_sno_oui" property="devSnoOui" />
<result column="pppoe_password" property="pppoePassword" />
<result column="customer_addr_new" property="customerAddrNew" />
<result column="customer_addr_old" property="customerAddrOld" />
<result column="flow_type" property="flowType" />
<result column="user_sn_no" property="userSnNo" />
<result column="user_sn_key" property="userSnKey" />
<result column="unique_user_id" property="uniqueUserId" />
<result column="oper_remark" property="operRemark" />
<result column="remark1" property="remark1" />
<result column="remark2" property="remark2" />
<result column="remark3" property="remark3" />
<result column="lifetime" property="lifetime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
order_id, received_order_id, received_order_lhs, order_date, order_service_type, order_remark, order_deadline, customer_name_new, customer_name_old, order_customer_kind, system_domain, corporation_domain, ad_no, pppoe_account, contact_person_new, contact_person_old, received_date, order_status, order_deal_date, order_done_flag, order_done_date, dummy_flag, remark, dev_sno_oui, pppoe_password, customer_addr_new, customer_addr_old, flow_type, user_sn_no, user_sn_key, unique_user_id, oper_remark, remark1, remark2, remark3, lifetime
</sql>
<select id="mergePage" 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.order_deal_date,
aa.dev_sno_oui,
aa.dummy_flag
FROM
ITMS_ORDER_MERGER AA
LEFT JOIN ITMS_ORDER_MERGER_DETAIL BB ON AA.ORDER_ID = BB.ORDER_ID
where
aa.system_domain &gt;= #{domain}
<if test="column=='logicId' and column !=null and column!= ''">
and aa.user_sn_no = #{value}
</if>
<if test="column=='adNo' and column!=null and column!= ''">
and aa.ad_no = #{value}
</if>
<if test="column=='receiveOrderId' and column!=null and column!= ''">
and aa.RECEIVED_ORDER_ID = #{value}
</if>
<if test="column=='pppoe' and column!=null and column!= ''">
and aa.pppoe_account = #{value}
</if>
</select>
<select id="getMergeOrderById" resultType="com.bellmann.model.vo.OrderInfoVO">
SELECT
aa.order_id,
aa.received_order_id,
aa.received_order_lhs,
aa.order_remark,
aa.order_service_type,
aa.order_date,
aa.received_date,
aa.order_deal_date,
aa.order_deadline,
aa.ad_no,
aa.order_status,
aa.pppoe_account,
aa.user_sn_no,
aa.remark,
aa.user_sn_key,
aa.system_domain,
aa.order_customer_kind,
aa.order_done_flag,
aa.dummy_flag,
aa.dev_sno_oui
FROM
ITMS_ORDER_MERGER AA
WHERE
aa.order_id = #{orderId}
</select>
<select id="orderSnoOuiPppoeUnique" resultType="com.bellmann.model.entity.MergeOrderInfo">
SELECT
aa.order_id,
aa.unique_user_id,
aa.pppoe_account,
aa.dev_sno_oui
FROM
ITMS_ORDER_MERGER AA
LEFT JOIN ITMS_ORDER_MERGER_DETAIL BB ON AA.ORDER_ID = BB.ORDER_ID
where
aa.order_id = #{orderId}
</select>
</mapper>

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bellmann.mapper.MergeOrderServiceMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.MergeOrderService">
<id column="order_id" property="orderId" />
<result column="service" property="service" />
<result column="service_id" property="serviceId" />
<result column="service_flag" property="serviceFlag" />
<result column="args_name" property="argsName" />
<result column="args_value_new" property="argsValueNew" />
<result column="args_value_old" property="argsValueOld" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
order_id, service, service_id, service_flag, args_name, args_value_new, args_value_old
</sql>
<select id="orderInfoBusinessPage" resultMap="BaseResultMap">
SELECT
DISTINCT
order_id,
service,
service_flag
FROM
itms_order_merger_service
WHERE
order_id = #{orderId}
</select>
</mapper>

@ -85,6 +85,44 @@
and aa.pppoe_account = #{value} and aa.pppoe_account = #{value}
</if> </if>
</select> </select>
<select id="mergePage" 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.order_deal_date,
aa.dev_sno_oui,
aa.dummy_flag
FROM
ITMS_ORDER_MERGER AA
LEFT JOIN ITMS_ORDER_MERGER_DETAIL BB ON AA.ORDER_ID = BB.ORDER_ID
where
aa.system_domain &gt;= #{domain}
<if test="column=='logicId' and column !=null and column!= ''">
and aa.user_sn_no = #{value}
</if>
<if test="column=='adNo' and column!=null and column!= ''">
and aa.ad_no = #{value}
</if>
<if test="column=='receiveOrderId' and column!=null and column!= ''">
and aa.RECEIVED_ORDER_ID = #{value}
</if>
<if test="column=='pppoe' and column!=null and column!= ''">
and aa.pppoe_account = #{value}
</if>
</select>
<select id="getOrderById" resultType="com.bellmann.model.vo.OrderInfoVO"> <select id="getOrderById" resultType="com.bellmann.model.vo.OrderInfoVO">
SELECT SELECT
aa.order_id, aa.order_id,

Loading…
Cancel
Save