diff --git a/src/main/java/com/bellmann/controller/OrderInfoController.java b/src/main/java/com/bellmann/controller/OrderInfoController.java index 2109d22..b9fafe1 100644 --- a/src/main/java/com/bellmann/controller/OrderInfoController.java +++ b/src/main/java/com/bellmann/controller/OrderInfoController.java @@ -42,24 +42,55 @@ public class OrderInfoController { Page page = orderInfoService.tablePage(query); return PageResult.success(page); } + @PostMapping("/merge/page") + @PreAuthorize("@ss.hasPerm('order:index:query')") + @Operation(summary = "合并工单管理表格分页") + public PageResult mergePage(@RequestBody SelectQuery query){ + + Page page = orderInfoService.mergePage(query); + return PageResult.success(page); + } @GetMapping("info/{orderId}") @Operation(summary = "工单管理获取工单详细信息") public Result getOrderById(@PathVariable Long orderId){ return orderInfoService.getOrderById(orderId); } + @GetMapping("/merge/info/{orderId}") + @Operation(summary = "合并工单管理获取工单详细信息") + public Result getMergeOrderById(@PathVariable Long orderId){ + return orderInfoService.getMergeOrderById(orderId); + } @PutMapping("update-order-status/{orderId}/{orderStatus}") @Operation(summary = "修改工单状态") @PreAuthorize("@ss.hasPerm('order:detail:update:status')") public Result updateOrderStatus(@PathVariable Long orderId, @PathVariable String orderStatus){ return orderInfoService.updateOrderStatus(orderId,orderStatus); } + @PutMapping("/merge/update-order-status/{orderId}/{orderStatus}") + @Operation(summary = "修改合并工单状态") + @PreAuthorize("@ss.hasPerm('order:detail:update:status')") + public Result mergeUpdateOrderStatus(@PathVariable Long orderId, @PathVariable String orderStatus){ + return orderInfoService.mergeUpdateOrderStatus(orderId,orderStatus); + } @PutMapping("execute-order/{orderId}") @PreAuthorize("@ss.hasPerm('family:operate:order:execute')") @Operation(summary = "手动执行工单") public Result executeOrder(@PathVariable Long orderId){ return orderInfoService.executeOrder(orderId); } + @PutMapping("/merge/execute-order/{orderId}") + @PreAuthorize("@ss.hasPerm('family:operate:order:execute')") + @Operation(summary = "手动执行合并工单") + public Result executeMergeOrder(@PathVariable Long orderId){ + return orderInfoService.executeMergeOrder(orderId); + } + + @GetMapping("/merge/modify-form/{orderId}") + @Operation(summary = "获取修改合并工单表单") + public Result mergeModifyForm(@PathVariable Long orderId){ + return orderInfoService.mergeModifyForm(orderId); + } @GetMapping("modify-form/{orderId}") @Operation(summary = "获取修改工单表单") public Result modifyForm(@PathVariable Long orderId){ @@ -72,6 +103,12 @@ public class OrderInfoController { public Result updateForm(@RequestBody ModifyOrderForm form){ return orderInfoService.updateForm(form); } + @PostMapping("/merge/update-form") + @Operation(summary = "修改合并工单表单") + @PreAuthorize("@ss.hasPerm('order:detail:update')") + public Result updateMergeOrderForm(@RequestBody ModifyOrderForm form){ + return orderInfoService.updateMergeOrderForm(form); + } @PutMapping("binding-dev-oui-sno/{orderId}/{devOuiSno}") diff --git a/src/main/java/com/bellmann/controller/OrderServiceController.java b/src/main/java/com/bellmann/controller/OrderServiceController.java index ddec9df..2deedc9 100644 --- a/src/main/java/com/bellmann/controller/OrderServiceController.java +++ b/src/main/java/com/bellmann/controller/OrderServiceController.java @@ -35,14 +35,27 @@ public class OrderServiceController { public PageResult orderInfoBusinessPage(@RequestBody BasePageQuery query, @PathVariable Long orderId){ return orderServiceService.orderInfoBusinessPage(query,orderId); } + @PostMapping("/merge/order-info-service/{orderId}") + @Operation(summary = "工单业务列表") + public PageResult mergeOrderInfoBusinessPage(@RequestBody BasePageQuery query, @PathVariable Long orderId){ + return orderServiceService.mergeOrderInfoBusinessPage(query,orderId); + } @PostMapping("/order-service-parameter/{orderId}/{service}") public PageResult orderServiceParameterPage(@RequestBody BasePageQuery query,@PathVariable Long orderId, @PathVariable String service){ return orderServiceService.orderServiceParameterPage(query,orderId,service); } + @PostMapping("/merge/order-service-parameter/{orderId}/{service}") + public PageResult mergeOrderServiceParameterPage(@RequestBody BasePageQuery query,@PathVariable Long orderId, @PathVariable String service){ + return orderServiceService.mergeOrderServiceParameterPage(query,orderId,service); + } @PostMapping("/service-parameter-update/{orderId}/{service}/{serviceFlag}") public Result updateOrderServiceParameter(@RequestBody List list, @PathVariable Long orderId, @PathVariable String service, @PathVariable String serviceFlag){ return orderServiceService.updateOrderServiceParameter(list,orderId,service,serviceFlag); } + @PostMapping("/merge/service-parameter-update/{orderId}/{service}/{serviceFlag}") + public Result updateMergeOrderServiceParameter(@RequestBody List list, @PathVariable Long orderId, @PathVariable String service, @PathVariable String serviceFlag){ + return orderServiceService.updateMergeOrderServiceParameter(list,orderId,service,serviceFlag); + } } diff --git a/src/main/java/com/bellmann/converter/OrderInfoConverter.java b/src/main/java/com/bellmann/converter/OrderInfoConverter.java index cdb39c1..2e6a564 100644 --- a/src/main/java/com/bellmann/converter/OrderInfoConverter.java +++ b/src/main/java/com/bellmann/converter/OrderInfoConverter.java @@ -1,5 +1,6 @@ package com.bellmann.converter; +import com.bellmann.model.entity.MergeOrderInfo; import com.bellmann.model.entity.OrderInfo; import com.bellmann.model.form.ModifyOrderForm; import org.mapstruct.Mapper; @@ -11,4 +12,5 @@ public interface OrderInfoConverter { ModifyOrderForm entity2ModifyForm(OrderInfo orderInfo); + ModifyOrderForm mergeEntity2MergeModifyForm(MergeOrderInfo orderInfo); } diff --git a/src/main/java/com/bellmann/converter/OrderServiceConverter.java b/src/main/java/com/bellmann/converter/OrderServiceConverter.java index eeed920..7ddf5b4 100644 --- a/src/main/java/com/bellmann/converter/OrderServiceConverter.java +++ b/src/main/java/com/bellmann/converter/OrderServiceConverter.java @@ -1,6 +1,7 @@ package com.bellmann.converter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.model.entity.MergeOrderService; import com.bellmann.model.entity.OrderService; import com.bellmann.model.vo.OrderInfoBusinessVO; import com.bellmann.model.vo.OrderServiceVO; @@ -30,5 +31,13 @@ public interface OrderServiceConverter { Page entity2VOPage(Page voPage); List vos2Entities(List 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 mergeEntity2MergePageVo(Page dataPage); + + Page mergeEntity2MergeVOPage(Page voPage); + List mergeVO2Entities(List list); } diff --git a/src/main/java/com/bellmann/mapper/MergeOrderInfoDetailMapper.java b/src/main/java/com/bellmann/mapper/MergeOrderInfoDetailMapper.java new file mode 100644 index 0000000..c8f4159 --- /dev/null +++ b/src/main/java/com/bellmann/mapper/MergeOrderInfoDetailMapper.java @@ -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 { +} diff --git a/src/main/java/com/bellmann/mapper/MergeOrderInfoMapper.java b/src/main/java/com/bellmann/mapper/MergeOrderInfoMapper.java new file mode 100644 index 0000000..9111b8a --- /dev/null +++ b/src/main/java/com/bellmann/mapper/MergeOrderInfoMapper.java @@ -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 { + OrderInfoVO getMergeOrderById(Long orderId); + + MergeOrderInfo orderSnoOuiPppoeUnique(Long orderId); +} diff --git a/src/main/java/com/bellmann/mapper/MergeOrderServiceMapper.java b/src/main/java/com/bellmann/mapper/MergeOrderServiceMapper.java new file mode 100644 index 0000000..71040ca --- /dev/null +++ b/src/main/java/com/bellmann/mapper/MergeOrderServiceMapper.java @@ -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 { + Page orderInfoBusinessPage(Page page, @Param("orderId") Long orderId); +} diff --git a/src/main/java/com/bellmann/mapper/OrderInfoMapper.java b/src/main/java/com/bellmann/mapper/OrderInfoMapper.java index 6e55a3b..2b9b320 100644 --- a/src/main/java/com/bellmann/mapper/OrderInfoMapper.java +++ b/src/main/java/com/bellmann/mapper/OrderInfoMapper.java @@ -32,4 +32,7 @@ public interface OrderInfoMapper extends BaseMapper { List deviceOrderPage(Page page,@Param("devAdNo") String devAdNo,@Param("domain") Long domain); String getCustomerKindBySn(@Param("userSnNo") String userSnNo); + + List mergePage(Page page, @Param("column") String column, @Param("value") Object value, @Param("domain") Long domain); + } diff --git a/src/main/java/com/bellmann/model/entity/MergeOrderInfo.java b/src/main/java/com/bellmann/model/entity/MergeOrderInfo.java new file mode 100644 index 0000000..389488a --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/MergeOrderInfo.java @@ -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; + +/** + *

+ * + *

+ * + * @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; + + +} diff --git a/src/main/java/com/bellmann/model/entity/MergeOrderInfoDetail.java b/src/main/java/com/bellmann/model/entity/MergeOrderInfoDetail.java new file mode 100644 index 0000000..c9cfa70 --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/MergeOrderInfoDetail.java @@ -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; + +/** + *

+ * + *

+ * + * @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; + + +} diff --git a/src/main/java/com/bellmann/model/entity/MergeOrderService.java b/src/main/java/com/bellmann/model/entity/MergeOrderService.java new file mode 100644 index 0000000..c84d426 --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/MergeOrderService.java @@ -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; + +/** + *

+ * + *

+ * + * @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; + + +} diff --git a/src/main/java/com/bellmann/service/OrderInfoService.java b/src/main/java/com/bellmann/service/OrderInfoService.java index 3a8706d..f90e172 100644 --- a/src/main/java/com/bellmann/service/OrderInfoService.java +++ b/src/main/java/com/bellmann/service/OrderInfoService.java @@ -40,4 +40,16 @@ public interface OrderInfoService { Result> checkDev(String adNo); Result mergeOrder(MergeOrderForm form); + + Page mergePage(SelectQuery query); + + Result getMergeOrderById(Long orderId); + + Result mergeUpdateOrderStatus(Long orderId, String orderStatus); + + Result mergeModifyForm(Long orderId); + + Result updateMergeOrderForm(ModifyOrderForm form); + + Result executeMergeOrder(Long orderId); } diff --git a/src/main/java/com/bellmann/service/OrderServiceService.java b/src/main/java/com/bellmann/service/OrderServiceService.java index 88a8ccd..d938e31 100644 --- a/src/main/java/com/bellmann/service/OrderServiceService.java +++ b/src/main/java/com/bellmann/service/OrderServiceService.java @@ -23,4 +23,10 @@ public interface OrderServiceService { PageResult orderServiceParameterPage(BasePageQuery query, Long orderId, String service); Result updateOrderServiceParameter(List list, Long orderId, String service, String serviceFlag); + + PageResult mergeOrderInfoBusinessPage(BasePageQuery query, Long orderId); + + PageResult mergeOrderServiceParameterPage(BasePageQuery query, Long orderId, String service); + + Result updateMergeOrderServiceParameter(List list, Long orderId, String service, String serviceFlag); } diff --git a/src/main/java/com/bellmann/service/impl/CraftOrderServiceImpl.java b/src/main/java/com/bellmann/service/impl/CraftOrderServiceImpl.java index c25b4c2..6d60e00 100644 --- a/src/main/java/com/bellmann/service/impl/CraftOrderServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/CraftOrderServiceImpl.java @@ -256,7 +256,6 @@ public class CraftOrderServiceImpl implements CraftOrderService { throw new BusinessException(ResultCode.PLEASE_SELECT_A_CUSTOMER_TYPE); } String xml = OrderUtils.formatOrderXml(orderTempBO); - System.out.println(xml); HttpClientResult result = sendOrderToStartNBI(xml); if (result.getCode()== HttpStatus.HTTP_OK){ return Result.success(); diff --git a/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java index 1f96598..7808f62 100644 --- a/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java @@ -17,9 +17,7 @@ import com.bellmann.converter.OrderInfoConverter; import com.bellmann.mapper.*; import com.bellmann.model.bo.DevOnlineStatus; import com.bellmann.model.bo.DeviceDetailBO; -import com.bellmann.model.entity.DeviceStatic; -import com.bellmann.model.entity.OrderInfo; -import com.bellmann.model.entity.OrderService; +import com.bellmann.model.entity.*; import com.bellmann.model.form.MergeOrderForm; import com.bellmann.model.form.ModifyOrderForm; import com.bellmann.model.query.DeviceOrderQuery; @@ -63,12 +61,16 @@ public class OrderInfoServiceImpl implements OrderInfoService { private final OrderServiceMapper orderServiceMapper; + private final MergeOrderServiceMapper mergeOrderServiceMapper; + private final DeviceStaticMapper deviceStaticMapper; private final OrderInfoConverter orderInfoConverter; private final DeviceTypeVerMapper deviceTypeVerMapper; + private final MergeOrderInfoMapper mergeOrderInfoMapper; + @Override public Page tablePage(SelectQuery query) { int pageNum = query.getPageNum(); @@ -181,6 +183,31 @@ public class OrderInfoServiceImpl implements OrderInfoService { return Result.success(); } + @Override + public Result 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() + .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() + .eq(MergeOrderInfo::getOrderId, orderId) + .set(MergeOrderInfo::getOrderStatus, orderStatus) + ); + if (OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderStatus)) { + mergeOrderServiceMapper.update(null, new LambdaUpdateWrapper() + .eq(MergeOrderService::getOrderId, orderId) + .set(MergeOrderService::getServiceId, -999) + ); + } + return Result.success(); + } + @Override public Result executeOrder(Long orderId) { OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper() @@ -255,6 +282,80 @@ public class OrderInfoServiceImpl implements OrderInfoService { return Result.success(); } + @Override + public Result executeMergeOrder(Long orderId) { + MergeOrderInfo orderInfo = mergeOrderInfoMapper.selectOne(new QueryWrapper() + .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() + .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) { RDeviceDetailStruct struct = new RDeviceDetailStruct(); RDeviceDynamicStruct devDynamic = new RDeviceDynamicStruct(); @@ -328,6 +429,23 @@ public class OrderInfoServiceImpl implements OrderInfoService { return Result.success(form); } + @Override + public Result mergeModifyForm(Long orderId) { + MergeOrderInfo orderInfo = mergeOrderInfoMapper.selectOne(new QueryWrapper() + .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 public Result updateForm(ModifyOrderForm form) { orderInfoMapper.update(null, new LambdaUpdateWrapper() @@ -342,6 +460,20 @@ public class OrderInfoServiceImpl implements OrderInfoService { return Result.success(); } + @Override + public Result updateMergeOrderForm(ModifyOrderForm form) { + mergeOrderInfoMapper.update(null, new LambdaUpdateWrapper() + .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 public Result bindingOuiSno(String devOuiSno, Long orderId) { checkDevice(devOuiSno, orderId); @@ -487,4 +619,50 @@ public class OrderInfoServiceImpl implements OrderInfoService { } return Result.failed(result); } + + @Override + public Page mergePage(SelectQuery query) { + int pageNum = query.getPageNum(); + int pageSize = query.getPageSize(); + Object value = query.getSelectValue(); + String column = query.getSelectName(); + Page page = new Page<>(pageNum, pageSize); + Long domain = SecurityUtils.getGroupId(); + List list = orderInfoMapper.mergePage(page, column, value, domain); + return getOrderInfoTableVOPage(page, list); + } + + @Override + public Result 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); + } } diff --git a/src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java b/src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java index ef938ee..b656a01 100644 --- a/src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java @@ -9,8 +9,12 @@ import com.bellmann.common.enums.ServiceFlagEnum; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; import com.bellmann.converter.OrderServiceConverter; +import com.bellmann.mapper.MergeOrderInfoDetailMapper; +import com.bellmann.mapper.MergeOrderServiceMapper; import com.bellmann.mapper.OrderInfoDetailMapper; 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.OrderService; import com.bellmann.model.vo.OrderInfoBusinessVO; @@ -36,10 +40,14 @@ public class OrderServiceServiceImpl implements OrderServiceService { private final OrderServiceMapper orderServiceMapper; + private final MergeOrderServiceMapper mergeOrderServiceMapper; + private final OrderServiceConverter orderServiceConverter; private final OrderInfoDetailMapper orderInfoDetailMapper; + private final MergeOrderInfoDetailMapper mergeOrderInfoDetailMapper; + @Override public PageResult orderInfoBusinessPage(BasePageQuery query, Long orderId) { int pageNum = query.getPageNum(); @@ -49,6 +57,15 @@ public class OrderServiceServiceImpl implements OrderServiceService { return PageResult.success(orderServiceConverter.entity2PageVo(dataPage)); } + @Override + public PageResult mergeOrderInfoBusinessPage(BasePageQuery query, Long orderId) { + int pageNum = query.getPageNum(); + int pageSize = query.getPageSize(); + Page page = new Page<>(pageNum, pageSize); + Page dataPage = mergeOrderServiceMapper.orderInfoBusinessPage(page, orderId); + return PageResult.success(orderServiceConverter.mergeEntity2MergePageVo(dataPage)); + } + @Override public PageResult orderServiceParameterPage(BasePageQuery query, Long orderId, String service) { int pageNum = query.getPageNum(); @@ -61,6 +78,18 @@ public class OrderServiceServiceImpl implements OrderServiceService { return PageResult.success(orderServiceConverter.entity2VOPage(voPage)); } + @Override + public PageResult mergeOrderServiceParameterPage(BasePageQuery query, Long orderId, String service) { + int pageNum = query.getPageNum(); + int pageSize = query.getPageSize(); + Page page = new Page<>(pageNum, pageSize); + Page voPage = mergeOrderServiceMapper.selectPage(page, new LambdaQueryWrapper() + .eq(MergeOrderService::getOrderId, orderId) + .eq(MergeOrderService::getService, service) + ); + return PageResult.success(orderServiceConverter.mergeEntity2MergeVOPage(voPage)); + } + @Override @Transactional public Result updateOrderServiceParameter(List list, Long orderId, String service, String serviceFlag) { @@ -87,4 +116,29 @@ public class OrderServiceServiceImpl implements OrderServiceService { return Result.success(); } + + @Override + public Result updateMergeOrderServiceParameter(List list, Long orderId, String service, String serviceFlag) { + int rows = mergeOrderServiceMapper.delete(new LambdaQueryWrapper() + .eq(MergeOrderService::getService, service) + .eq(MergeOrderService::getOrderId, orderId) + ); + if (rows > 0) { + List 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() + .eq(MergeOrderInfoDetail::getOrderId, orderService.getOrderId()) + .set(MergeOrderInfoDetail::getDetailRemark3, orderService.getArgsValueNew()) + ); + } + } + } + + return Result.success(); + } } diff --git a/src/main/resources/mapper/MergeOrderInfoMapper.xml b/src/main/resources/mapper/MergeOrderInfoMapper.xml new file mode 100644 index 0000000..e2a379d --- /dev/null +++ b/src/main/resources/mapper/MergeOrderInfoMapper.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + diff --git a/src/main/resources/mapper/MergeOrderServiceMapper.xml b/src/main/resources/mapper/MergeOrderServiceMapper.xml new file mode 100644 index 0000000..343d9e1 --- /dev/null +++ b/src/main/resources/mapper/MergeOrderServiceMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + order_id, service, service_id, service_flag, args_name, args_value_new, args_value_old + + + + diff --git a/src/main/resources/mapper/OrderInfoMapper.xml b/src/main/resources/mapper/OrderInfoMapper.xml index 602b18d..a9d4c7b 100644 --- a/src/main/resources/mapper/OrderInfoMapper.xml +++ b/src/main/resources/mapper/OrderInfoMapper.xml @@ -85,6 +85,44 @@ and aa.pppoe_account = #{value} +