diff --git a/src/main/java/com/bellmann/common/enums/OrderOperateEnum.java b/src/main/java/com/bellmann/common/enums/OrderOperateEnum.java new file mode 100644 index 0000000..d5b4a8e --- /dev/null +++ b/src/main/java/com/bellmann/common/enums/OrderOperateEnum.java @@ -0,0 +1,24 @@ +package com.bellmann.common.enums; + +import com.bellmann.common.base.IBaseEnum; +import lombok.Getter; + +public enum OrderOperateEnum implements IBaseEnum { + + NORMAL_CONSTRUCTION("0","正常施工"), + + CANCEL_THE_ORDER("1","撤单"), + + ; + + @Getter + private String value; + + @Getter + private String label; + + OrderOperateEnum(String value, String label){ + this.label = label; + this.value = value; + } +} diff --git a/src/main/java/com/bellmann/common/enums/OrderServiceTypeEnum.java b/src/main/java/com/bellmann/common/enums/OrderServiceTypeEnum.java new file mode 100644 index 0000000..bf3996e --- /dev/null +++ b/src/main/java/com/bellmann/common/enums/OrderServiceTypeEnum.java @@ -0,0 +1,37 @@ +package com.bellmann.common.enums; + +import com.bellmann.common.base.IBaseEnum; +import lombok.Getter; + +public enum OrderServiceTypeEnum implements IBaseEnum { + + NEW_OUTFIT("0","新装"), + + DISMANTLE("1","拆机"), + + NAME_CHANGE_AND_TRANSFER("2","改名过户"), + + BUSINESS_CHANGES("3","业务变更"), + + SHUTDOWN("4","停机"), + + RESUMPTION_OF_THE_MACHINE("5","复机"), + + SPLIT("6","割接"), + + EQUIPMENT_REPLACEMENT("7","设备更换"), + + MOVE("8","移机") + ; + + @Getter + private String value; + + @Getter + private String label; + + OrderServiceTypeEnum(String value, String label){ + this.label = label; + this.value = value; + } +} diff --git a/src/main/java/com/bellmann/common/enums/OrderStatusEnum.java b/src/main/java/com/bellmann/common/enums/OrderStatusEnum.java new file mode 100644 index 0000000..3d9ed5d --- /dev/null +++ b/src/main/java/com/bellmann/common/enums/OrderStatusEnum.java @@ -0,0 +1,33 @@ +package com.bellmann.common.enums; + +import com.bellmann.common.base.IBaseEnum; +import lombok.Getter; + +public enum OrderStatusEnum implements IBaseEnum { + + NOT_PROCESSED("0","未处理"), + + PROCESSING("1","处理中"), + + PROCESSING_FAILED("2","处理失败"), + + RECEIPT("3","回单"), + + MANUAL_INTERVENTION("4","手工干预"), + + CHARGEBACKS("5","退单"), + + TERMINATE_THE_PROVISION("6","终止开通"), + ; + + @Getter + private String value; + + @Getter + private String label; + + OrderStatusEnum(String value, String label){ + this.label = label; + this.value = value; + } +} diff --git a/src/main/java/com/bellmann/controller/OrderInfoController.java b/src/main/java/com/bellmann/controller/OrderInfoController.java new file mode 100644 index 0000000..30ad9b4 --- /dev/null +++ b/src/main/java/com/bellmann/controller/OrderInfoController.java @@ -0,0 +1,40 @@ +package com.bellmann.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.common.result.PageResult; +import com.bellmann.model.query.SelectQuery; +import com.bellmann.model.vo.OrderInfoTableVO; +import com.bellmann.service.OrderInfoService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author 李小林 + * @since 2024-06-12 + */ +@Tag(name = "20.工单管理") +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/order/v1") +public class OrderInfoController { + + private final OrderInfoService orderInfoService; + @PostMapping("page") + public PageResult page(@RequestBody SelectQuery query){ + + Page page = orderInfoService.tablePage(query); + return PageResult.success(page); + } + +} + diff --git a/src/main/java/com/bellmann/mapper/OrderInfoMapper.java b/src/main/java/com/bellmann/mapper/OrderInfoMapper.java new file mode 100644 index 0000000..72bcc66 --- /dev/null +++ b/src/main/java/com/bellmann/mapper/OrderInfoMapper.java @@ -0,0 +1,24 @@ +package com.bellmann.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.model.entity.OrderInfo; +import com.bellmann.model.vo.OrderInfoTableVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 李小林 + * @since 2024-06-12 + */ +@Mapper +public interface OrderInfoMapper extends BaseMapper { + + List tablePage(Page page, @Param("column") String column, @Param("value") Object value, @Param("domain") Long domain); +} diff --git a/src/main/java/com/bellmann/model/entity/OrderInfo.java b/src/main/java/com/bellmann/model/entity/OrderInfo.java new file mode 100644 index 0000000..8b343d9 --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/OrderInfo.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_info") +public class OrderInfo 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/vo/OrderInfoTableVO.java b/src/main/java/com/bellmann/model/vo/OrderInfoTableVO.java new file mode 100644 index 0000000..1c434c3 --- /dev/null +++ b/src/main/java/com/bellmann/model/vo/OrderInfoTableVO.java @@ -0,0 +1,55 @@ +package com.bellmann.model.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Schema(description = "工单管理表格列表视图") +public class OrderInfoTableVO { + + private Long orderId; + + private String receivedOrderId; + + private String receivedOrderLhs; + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + private LocalDateTime orderDate; + + private String adNo; + + private String orderStatus; + + private String orderRemark; + + private String orderServiceType; + + private String operRemark; + + private String port; + + private String pppoeAccount; + + private String telNum; + + @JsonIgnore + private Long systemDomain; + + private String domain; + + private String remark3; + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + private LocalDateTime receivedDate; + + @JsonIgnore + private String devSnoOui; + + @JsonIgnore + private String dummyFlag; + + private String devOnLineStatus; + +} diff --git a/src/main/java/com/bellmann/service/OrderInfoService.java b/src/main/java/com/bellmann/service/OrderInfoService.java new file mode 100644 index 0000000..45ce859 --- /dev/null +++ b/src/main/java/com/bellmann/service/OrderInfoService.java @@ -0,0 +1,18 @@ +package com.bellmann.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.model.query.SelectQuery; +import com.bellmann.model.vo.OrderInfoTableVO; + +/** + *

+ * 服务类 + *

+ * + * @author 李小林 + * @since 2024-06-12 + */ +public interface OrderInfoService { + + Page tablePage(SelectQuery query); +} diff --git a/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java new file mode 100644 index 0000000..7c39698 --- /dev/null +++ b/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java @@ -0,0 +1,79 @@ +package com.bellmann.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.common.base.IBaseEnum; +import com.bellmann.common.constant.SecurityConstants; +import com.bellmann.common.enums.OrderOperateEnum; +import com.bellmann.common.enums.OrderServiceTypeEnum; +import com.bellmann.common.enums.OrderStatusEnum; +import com.bellmann.mapper.OrderInfoMapper; +import com.bellmann.model.query.SelectQuery; +import com.bellmann.model.vo.OrderInfoTableVO; +import com.bellmann.security.util.SecurityUtils; +import com.bellmann.service.OrderInfoService; +import lombok.RequiredArgsConstructor; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author 李小林 + * @since 2024-06-12 + */ +@Service +@RequiredArgsConstructor +public class OrderInfoServiceImpl implements OrderInfoService { + + private final OrderInfoMapper orderInfoMapper; + + private final RedisTemplate redisTemplate; + @Override + public Page tablePage(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.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); + } + + private String devOnlineStatus(String devSnoOui,String pppoe){ + String status = "无设备上线记录"; + if (devSnoOui==null || devSnoOui.isEmpty()){ + return status; + } + return null; + } +} diff --git a/src/main/resources/mapper/OrderInfoMapper.xml b/src/main/resources/mapper/OrderInfoMapper.xml new file mode 100644 index 0000000..b7604f3 --- /dev/null +++ b/src/main/resources/mapper/OrderInfoMapper.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/test/java/com/bellmann/BellmannBootApplicationTests.java b/src/test/java/com/bellmann/BellmannBootApplicationTests.java index 3b7aa31..01e26ad 100644 --- a/src/test/java/com/bellmann/BellmannBootApplicationTests.java +++ b/src/test/java/com/bellmann/BellmannBootApplicationTests.java @@ -1,9 +1,11 @@ package com.bellmann; +import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -@SpringBootTest +@SpringBootTest(classes = BellmannBootApplication.class) +@Slf4j class BellmannBootApplicationTests { @Test