feat: 工单管理列表

master
李小林 9 months ago
parent d78105ab38
commit 5c2b705289
  1. 24
      src/main/java/com/bellmann/common/enums/OrderOperateEnum.java
  2. 37
      src/main/java/com/bellmann/common/enums/OrderServiceTypeEnum.java
  3. 33
      src/main/java/com/bellmann/common/enums/OrderStatusEnum.java
  4. 40
      src/main/java/com/bellmann/controller/OrderInfoController.java
  5. 24
      src/main/java/com/bellmann/mapper/OrderInfoMapper.java
  6. 102
      src/main/java/com/bellmann/model/entity/OrderInfo.java
  7. 55
      src/main/java/com/bellmann/model/vo/OrderInfoTableVO.java
  8. 18
      src/main/java/com/bellmann/service/OrderInfoService.java
  9. 79
      src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java
  10. 87
      src/main/resources/mapper/OrderInfoMapper.xml
  11. 4
      src/test/java/com/bellmann/BellmannBootApplicationTests.java

@ -0,0 +1,24 @@
package com.bellmann.common.enums;
import com.bellmann.common.base.IBaseEnum;
import lombok.Getter;
public enum OrderOperateEnum implements IBaseEnum<String> {
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;
}
}

@ -0,0 +1,37 @@
package com.bellmann.common.enums;
import com.bellmann.common.base.IBaseEnum;
import lombok.Getter;
public enum OrderServiceTypeEnum implements IBaseEnum<String> {
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;
}
}

@ -0,0 +1,33 @@
package com.bellmann.common.enums;
import com.bellmann.common.base.IBaseEnum;
import lombok.Getter;
public enum OrderStatusEnum implements IBaseEnum<String> {
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;
}
}

@ -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;
/**
* <p>
* 前端控制器
* </p>
*
* @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<OrderInfoTableVO> page(@RequestBody SelectQuery query){
Page<OrderInfoTableVO> page = orderInfoService.tablePage(query);
return PageResult.success(page);
}
}

@ -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;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 李小林
* @since 2024-06-12
*/
@Mapper
public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
List<OrderInfoTableVO> tablePage(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_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;
}

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

@ -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;
/**
* <p>
* 服务类
* </p>
*
* @author 李小林
* @since 2024-06-12
*/
public interface OrderInfoService {
Page<OrderInfoTableVO> tablePage(SelectQuery query);
}

@ -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;
/**
* <p>
* 服务实现类
* </p>
*
* @author 李小林
* @since 2024-06-12
*/
@Service
@RequiredArgsConstructor
public class OrderInfoServiceImpl implements OrderInfoService {
private final OrderInfoMapper orderInfoMapper;
private final RedisTemplate<String, Object> redisTemplate;
@Override
public Page<OrderInfoTableVO> tablePage(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.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;
}
}

@ -0,0 +1,87 @@
<?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.OrderInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.OrderInfo">
<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="tablePage" 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="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>
</mapper>

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

Loading…
Cancel
Save