feat: 一些调整
This commit is contained in:
parent
1f7e2ca89d
commit
95dcd856e3
|
|
@ -12,10 +12,7 @@ import com.nflg.mobilebroken.common.pojo.ApiResult;
|
|||
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.SSEMessageDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AddChatMessageRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AdminTicketSearchRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AssignmentTicketRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.FollowRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.TicketInfoVO;
|
||||
|
|
@ -84,6 +81,9 @@ public class TicketController extends ControllerBase {
|
|||
@Resource
|
||||
private IAppAreaService appAreaService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemService dictionaryItemService;
|
||||
|
||||
/**
|
||||
* 获取问题类型
|
||||
*
|
||||
|
|
@ -114,8 +114,16 @@ public class TicketController extends ControllerBase {
|
|||
*/
|
||||
@PostMapping("searchTicket")
|
||||
@ApiMark(moduleName = "工单管理", apiName = "搜索工单")
|
||||
public ApiResult<PageData<AdminTicketVO>> searchTicket(@RequestBody AdminTicketSearchRequest request) {
|
||||
return ApiResult.success(PageUtil.convert(ticketService.searchPage(request), d -> d));
|
||||
public ApiResult<PageData<AdminTicketVO>> searchTicket(@Valid @RequestBody AdminTicketSearchRequest request) {
|
||||
return ApiResult.success(PageUtil.convert(ticketService.searchPage(request), d -> {
|
||||
if (StrUtil.isNotBlank(d.getHandle())) {
|
||||
List<AdminUser> adminUsers = adminUserService.listByIds(StrUtil.split(d.getHandle(), ",").stream().map(Integer::parseInt).collect(Collectors.toList()));
|
||||
d.setHandleBy(adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.toList()));
|
||||
}
|
||||
AppUser primaryUser = appUserService.getPrimaryByCompanyId(d.getCompanyId());
|
||||
d.setPrimaryUserName(primaryUser.getName());
|
||||
return d;
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -155,13 +163,13 @@ public class TicketController extends ControllerBase {
|
|||
|
||||
/**
|
||||
* 关闭工单
|
||||
* @param ids 工单id列表
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("closeTicket")
|
||||
@MethodInfoMark(value = "关闭工单", menuName = "工单管理")
|
||||
@ApiMark(moduleName = "工单管理", apiName = "关闭工单")
|
||||
public ApiResult<Void> closeTicket(@Valid @RequestBody @NotEmpty List<Integer> ids) {
|
||||
ticketService.closeTicket(ids);
|
||||
public ApiResult<Void> closeTicket(@Valid @RequestBody TicketCloseRequest request) {
|
||||
ticketService.closeTicket(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
@ -248,7 +256,6 @@ public class TicketController extends ControllerBase {
|
|||
|
||||
/**
|
||||
* 获取工单详情
|
||||
*
|
||||
* @param id 工单编号
|
||||
* @return 工单详情
|
||||
**/
|
||||
|
|
@ -259,20 +266,35 @@ public class TicketController extends ControllerBase {
|
|||
AppArea appArea = appAreaService.getById(user.getAreaId());
|
||||
TBaseCustomer company = customerService.getById(Integer.valueOf(user.getCompanyId()));
|
||||
DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo());
|
||||
String warrantyStateDesc = "";
|
||||
if (Objects.nonNull(device.getWarrantyState())) {
|
||||
DictionaryItem warrantyState = dictionaryItemService.getById(device.getWarrantyState());
|
||||
warrantyStateDesc = warrantyState.getName();
|
||||
}
|
||||
String handle = ticket.getHandle();
|
||||
if (StrUtil.isNotBlank(handle)) {
|
||||
List<AdminUser> adminUsers = adminUserService.listByIds(Arrays.stream(handle.split(",")).map(Integer::parseInt).collect(Collectors.toList()));
|
||||
handle = adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.joining(","));
|
||||
}
|
||||
AppUser primaryUser = appUserService.getPrimaryByCompanyId(user.getCompanyId());
|
||||
TicketInfoVO vo = new TicketInfoVO()
|
||||
.setId(ticket.getId())
|
||||
.setTitle(ticket.getTitle())
|
||||
.setDeviceNo(ticket.getDeviceNo())
|
||||
.setModelNo(device.getModelNo())
|
||||
.setDeviceType(device.getDeviceType())
|
||||
.setComponent(ticket.getComponent())
|
||||
.setUseTime(ticket.getUseTime())
|
||||
.setDescription(ticket.getDescription())
|
||||
.setState(ticket.getState())
|
||||
.setShipmentDate(device.getShipmentDate())
|
||||
.setStartWarrantyDate(device.getStartWarrantyDate())
|
||||
.setWarrantyMonth(device.getWarrantyMonth())
|
||||
.setQuestion(ticket.getQuestion())
|
||||
.setWarrantyStateDesc(warrantyStateDesc)
|
||||
.setUrgency(ticket.getUrgency())
|
||||
.setDeviceTypeSub(device.getDeviceTypeSub())
|
||||
.setPrimaryUserName(primaryUser.getName())
|
||||
.setImages(StrUtil.isNotBlank(ticket.getImages()) ? StrUtil.split(ticket.getImages(), ",") : Collections.emptyList())
|
||||
.setAttachments(StrUtil.isNotBlank(ticket.getAttachments()) ? StrUtil.split(ticket.getAttachments(), ",") : Collections.emptyList())
|
||||
.setCreateUserId(ticket.getUserId())
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class TicketCloseRequest {
|
||||
|
||||
//工单id
|
||||
private Integer ticketId;
|
||||
|
||||
//解决方案
|
||||
private String solution;
|
||||
|
||||
//附件
|
||||
private List<String> attachments;
|
||||
}
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.nflg.mobilebroken.common.constant.TicketState;
|
||||
import com.nflg.mobilebroken.common.constant.TicketUrgency;
|
||||
|
|
@ -63,11 +62,15 @@ public class AdminTicketVO {
|
|||
|
||||
//代理商名称
|
||||
@ExcelColumn("代理商")
|
||||
private String companyName;
|
||||
private String primaryUserName;
|
||||
|
||||
@JsonIgnore
|
||||
@IgnoreExport
|
||||
private String companyId;
|
||||
|
||||
//客户
|
||||
@ExcelColumn("客户")
|
||||
private String createUserName;
|
||||
private String companyName;
|
||||
|
||||
//设备编号
|
||||
@ExcelColumn("设备编号")
|
||||
|
|
@ -144,10 +147,6 @@ public class AdminTicketVO {
|
|||
return TicketUrgency.findByValue(urgency).getDescription();
|
||||
}
|
||||
|
||||
public List<String> getHandleBy() {
|
||||
return StrUtil.split(handle, ",");
|
||||
}
|
||||
|
||||
public String getFollowedDesc() {
|
||||
return followed ? "已关注" : "未关注";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ public class AppUserVO {
|
|||
//头像
|
||||
private String avatar;
|
||||
|
||||
//是否启用
|
||||
private boolean enable;
|
||||
//状态,0:待激活,1-启用,2:禁用
|
||||
private byte userState;
|
||||
|
||||
//创建人
|
||||
private String createBy;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
|||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
|
|
@ -17,6 +18,24 @@ public class DeviceInfoVO {
|
|||
//设备机型
|
||||
private String modelNo;
|
||||
|
||||
//设备类型
|
||||
private String deviceType;
|
||||
|
||||
//设备细分类
|
||||
private String deviceTypeSub;
|
||||
|
||||
//质保状态(关联字典项)
|
||||
private Integer warrantyState;
|
||||
|
||||
//发货日期
|
||||
private LocalDate shipmentDate;
|
||||
|
||||
//质保开始日期
|
||||
private LocalDate startWarrantyDate;
|
||||
|
||||
//质保期(月)
|
||||
private Integer warrantyMonth;
|
||||
|
||||
//机型部件
|
||||
@JsonIgnore
|
||||
private String component;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.nflg.mobilebroken.common.pojo.vo;
|
|||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -34,7 +35,10 @@ public class TicketInfoVO {
|
|||
//工单状态
|
||||
private Byte state;
|
||||
|
||||
//所属公司
|
||||
//代理商
|
||||
private String primaryUserName;
|
||||
|
||||
//客户名称
|
||||
private String companyName;
|
||||
|
||||
//所属区域
|
||||
|
|
@ -46,6 +50,24 @@ public class TicketInfoVO {
|
|||
//设备机型
|
||||
private String modelNo;
|
||||
|
||||
//设备类型
|
||||
private String deviceType;
|
||||
|
||||
//设备细分类
|
||||
private String deviceTypeSub;
|
||||
|
||||
//质保状态
|
||||
private String warrantyStateDesc;
|
||||
|
||||
//发货日期
|
||||
private LocalDate shipmentDate;
|
||||
|
||||
//质保开始日期
|
||||
private LocalDate startWarrantyDate;
|
||||
|
||||
//质保期(月)
|
||||
private Integer warrantyMonth;
|
||||
|
||||
//问题部位
|
||||
private String component;
|
||||
|
||||
|
|
@ -55,6 +77,12 @@ public class TicketInfoVO {
|
|||
//处理人
|
||||
private String handle;
|
||||
|
||||
//问题类型
|
||||
private String question;
|
||||
|
||||
//紧急程度,0:非紧急;1:普通;2:紧急
|
||||
private Byte urgency;
|
||||
|
||||
//图片
|
||||
private List<String> images;
|
||||
|
||||
|
|
|
|||
|
|
@ -97,6 +97,11 @@ public class Ticket implements Serializable {
|
|||
*/
|
||||
private String solution;
|
||||
|
||||
/**
|
||||
* 解决方案附件
|
||||
*/
|
||||
private String solutionAttachments;
|
||||
|
||||
/**
|
||||
* 解决时间
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -26,12 +26,10 @@ public interface TicketMapper extends BaseMapper<Ticket> {
|
|||
|
||||
IPage<TicketVO> searchArea(IPage<?> page, TicketSearchRequest request, List<Integer> companyIds);
|
||||
|
||||
IPage<AdminTicketVO> searchFromAdmin(AdminTicketSearchRequest request, IPage<?> page);
|
||||
IPage<AdminTicketVO> searchFromAdmin(AdminTicketSearchRequest request, Integer userId, IPage<?> page);
|
||||
|
||||
void completeTicket(List<Integer> ids, Integer userId);
|
||||
|
||||
void closeTicket(List<Integer> ids);
|
||||
|
||||
List<AdminTicketVO> searchAllFromAdmin(AdminTicketSearchRequest request);
|
||||
|
||||
IPage<AdminTicketVO> searchFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId, IPage<?> page);
|
||||
|
|
|
|||
|
|
@ -52,4 +52,6 @@ public interface IAppUserService extends IService<AppUser> {
|
|||
void activateUser(UserActivateRequest request);
|
||||
|
||||
void forgetPassword(String email, String password);
|
||||
|
||||
AppUser getPrimaryByCompanyId(String companyId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,7 @@ package com.nflg.mobilebroken.repository.service;
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.UserDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AdminTicketSearchRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AssignmentTicketRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TicketAddRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TicketSearchRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.TicketVO;
|
||||
import com.nflg.mobilebroken.repository.entity.Ticket;
|
||||
|
|
@ -33,7 +30,7 @@ public interface ITicketService extends IService<Ticket> {
|
|||
|
||||
void completeTicket(List<Integer> ids);
|
||||
|
||||
void closeTicket(List<Integer> ids);
|
||||
void closeTicket(TicketCloseRequest request);
|
||||
|
||||
List<AdminTicketVO> exportSearch(AdminTicketSearchRequest request);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package com.nflg.mobilebroken.repository.service.impl;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
|
@ -193,9 +192,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
|
||||
@Override
|
||||
public void migrate(MigrateAppUserRequest request) {
|
||||
QueryWrapper<AppUser> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.apply("FIND_IN_SET({0}, company_id)", request.getCompanyId());
|
||||
AppUser appUser = appUserService.getBaseMapper().selectOne(queryWrapper);
|
||||
AppUser appUser = getPrimaryByCompanyId(request.getCompanyId().toString());
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(appUser)).throwMessage("该公司还未设置主账号");
|
||||
lambdaUpdate()
|
||||
.set(AppUser::getCompanyId, request.getCompanyId())
|
||||
|
|
@ -418,6 +415,14 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
updateById(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AppUser getPrimaryByCompanyId(String companyId) {
|
||||
LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AppUser::getIsPrimary, true);
|
||||
queryWrapper.apply("FIND_IN_SET({0}, company_id)>0", companyId);
|
||||
return appUserService.getBaseMapper().selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
private List<AppUserVO> getByCompanyId(Long companyId) {
|
||||
return lambdaQuery()
|
||||
.eq(AppUser::getCompanyId, companyId.toString())
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.nflg.mobilebroken.repository.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
@ -8,10 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
import com.nflg.mobilebroken.common.constant.TicketState;
|
||||
import com.nflg.mobilebroken.common.constant.TicketUrgency;
|
||||
import com.nflg.mobilebroken.common.pojo.dto.UserDTO;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AdminTicketSearchRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AssignmentTicketRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TicketAddRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TicketSearchRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.TicketVO;
|
||||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||
|
|
@ -28,7 +24,6 @@ import java.time.LocalDateTime;
|
|||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -85,7 +80,7 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
|
|||
if (request.getType() == 2) {
|
||||
return baseMapper.searchFromAdminAndFollow(request, AdminUserUtil.getUserId(), new Page<>(request.getPage(), request.getPageSize()));
|
||||
} else if (request.getType() == 4) {
|
||||
return baseMapper.searchFromAdmin(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||
return baseMapper.searchFromAdmin(request, AdminUserUtil.getUserId(), new Page<>(request.getPage(), request.getPageSize()));
|
||||
}
|
||||
return new Page<>(request.getPage(), request.getPageSize(), 0);
|
||||
}
|
||||
|
|
@ -113,12 +108,17 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
|
|||
}
|
||||
|
||||
@Override
|
||||
public void closeTicket(List<Integer> ids) {
|
||||
List<Ticket> tickets = listByIds(ids);
|
||||
List<Integer> tids = tickets.stream().map(Ticket::getId).filter(cqm -> Objects.equals(AdminUserUtil.getUserId(), cqm)).collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(tids)) {
|
||||
baseMapper.closeTicket(ids);
|
||||
}
|
||||
public void closeTicket(TicketCloseRequest request) {
|
||||
Ticket ticket = getById(request.getTicketId());
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单");
|
||||
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState()))
|
||||
.throwMessage("工单状态不允许关闭");
|
||||
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getCqm(), AdminUserUtil.getUserId()))
|
||||
.throwMessage("当前工单未归属当前CQM负责人");
|
||||
ticket.setState(TicketState.Closed.getState());
|
||||
ticket.setSolutionAttachments(StrUtil.join(",", request.getAttachments()));
|
||||
ticket.setSolveTime(LocalDateTime.now());
|
||||
updateById(ticket);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
</foreach>
|
||||
</select>
|
||||
<select id="getInfo" resultType="com.nflg.mobilebroken.common.pojo.vo.AppUserVO">
|
||||
SELECT u.id,u.area_id AS 'areaId',c.agency_company_name AS 'companyName',u.`name`,u.email,u.avatar,a.`name` AS 'areaName',u.`enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy',u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary'
|
||||
SELECT u.id,u.area_id AS 'areaId',c.agency_company_name AS 'companyName',u.`name`,u.email,u.avatar,a.`name` AS 'areaName',u.state AS 'userState',uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy',u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary'
|
||||
FROM app_user u
|
||||
INNER JOIN t_base_customer c ON u.company_id=c.id
|
||||
INNER JOIN app_area a ON u.area_id=a.id
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</select>
|
||||
|
||||
<select id="searchByCompany" parameterType="com.nflg.mobilebroken.common.pojo.request.UserSearchRequest" resultType="com.nflg.mobilebroken.common.pojo.vo.AppUserVO">
|
||||
SELECT u.id,u.phone,u.title_id AS 'titleId',u.area_id AS 'areaId',u.company_id AS 'companyId',p.position_name AS 'title',u.expire_time AS 'expireTime',c.agency_company_name AS 'companyName',u.login_name AS 'loginName',u.`name`,u.email,u.avatar,a.`name` AS 'areaName',u.`enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy',u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary',IF(u.expire_time>now(),1,2) AS 'state'
|
||||
SELECT u.id,u.phone,u.state AS 'userState',u.title_id AS 'titleId',u.area_id AS 'areaId',u.company_id AS 'companyId',p.position_name AS 'title',u.expire_time AS 'expireTime',c.agency_company_name AS 'companyName',u.login_name AS 'loginName',u.`name`,u.email,u.avatar,a.`name` AS 'areaName',u.`enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy',u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary',IF(u.expire_time>now(),1,2) AS 'state'
|
||||
FROM app_user u
|
||||
INNER JOIN t_base_customer c ON u.company_id=c.id
|
||||
INNER JOIN app_area a ON u.area_id=a.id
|
||||
|
|
@ -70,7 +70,7 @@
|
|||
</if>
|
||||
</where>
|
||||
UNION
|
||||
SELECT u.id,u.user_phone AS 'phone',u.title_id AS 'titleId',u.area_id AS 'areaId',u.company_id AS 'companyId',p.position_name AS 'title',null AS 'expireTime',c.agency_company_name AS 'companyName',u.user_email AS 'loginName',u.user_name AS 'name',u.user_email AS 'email',u.user_avatar AS 'avatar',a.`name` AS 'areaName',false AS `enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',null AS 'updateBy',null AS 'updateTime',null AS 'lastLoginTime',null AS 'expireTime',false AS 'isPrimary',0 AS 'state'
|
||||
SELECT u.id,u.user_phone AS 'phone',0 AS 'userState',u.title_id AS 'titleId',u.area_id AS 'areaId',u.company_id AS 'companyId',p.position_name AS 'title',null AS 'expireTime',c.agency_company_name AS 'companyName',u.user_email AS 'loginName',u.user_name AS 'name',u.user_email AS 'email',u.user_avatar AS 'avatar',a.`name` AS 'areaName',false AS `enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',null AS 'updateBy',null AS 'updateTime',null AS 'lastLoginTime',null AS 'expireTime',false AS 'isPrimary',0 AS 'state'
|
||||
FROM app_user_applyfor u
|
||||
INNER JOIN t_base_customer c ON u.company_id=c.id
|
||||
INNER JOIN app_area a ON u.area_id=a.id
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
<mapper namespace="com.nflg.mobilebroken.repository.mapper.DeviceMapper">
|
||||
|
||||
<select id="getByDeviceNo" resultType="com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO">
|
||||
SELECT d.device_no AS 'deviceNo',d.model_no AS 'modelNo',dc.component AS 'component'
|
||||
SELECT d.device_no AS 'deviceNo',d.model_no AS 'modelNo',dc.component AS 'component',d.device_type AS 'deviceType'
|
||||
,d.device_type_sub AS 'deviceTypeSub',d.warranty_state AS 'warrantyState',d.shipment_date AS 'shipmentDate'
|
||||
,d.start_warranty_date AS 'startWarrantyDate',d.warranty_month AS 'warrantyMonth'
|
||||
FROM device d
|
||||
LEFT JOIN device_component dc ON d.model_no=dc.model_no AND dc.`enable`=1
|
||||
WHERE d.device_no=#{deviceNo}
|
||||
|
|
|
|||
|
|
@ -98,14 +98,16 @@
|
|||
|
||||
<select id="searchFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName'
|
||||
,c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc'
|
||||
,c.agency_company_name AS 'companyName',u.company_id AS 'companyId',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType'
|
||||
,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',IF(tf.id IS NULL, false, true) AS 'followed'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
LEFT JOIN device d ON t.device_no=d.device_no AND d.data_valid_state=1
|
||||
LEFT JOIN dictionary_item di ON d.warranty_state=di.id
|
||||
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1
|
||||
<include refid="adminSearchWhereCondition"/>
|
||||
</select>
|
||||
|
||||
|
|
@ -118,18 +120,9 @@
|
|||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="closeTicket">
|
||||
UPDATE ticket
|
||||
SET state=3,update_time=NOW()
|
||||
WHERE state=2 AND id IN
|
||||
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="searchAllFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName'
|
||||
,c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,c.agency_company_name AS 'companyName',u.company_id AS 'companyId',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
|
|
@ -142,8 +135,9 @@
|
|||
|
||||
<select id="searchFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName'
|
||||
,c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc',IF(tf.id IS NULL, false, true) AS 'followed'
|
||||
,c.agency_company_name AS 'companyName',u.company_id AS 'companyId',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType'
|
||||
,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',IF(tf.id IS NULL, false, true) AS 'followed'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
|
|
@ -156,7 +150,7 @@
|
|||
|
||||
<select id="searchAllFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName'
|
||||
,c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,c.agency_company_name AS 'companyName',u.company_id AS 'companyId',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc',IF(tf.id IS NULL, false, true) AS 'followed'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
|
|
|
|||
Loading…
Reference in New Issue