diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index b5f32733..2059bc9c 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -574,7 +574,6 @@ public class TicketController extends ControllerBase { List adminUsers = adminUserService.listByIds(Arrays.stream(handle.split(",")).map(Integer::parseInt).collect(Collectors.toList())); handle = adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.joining(",")); } - AppUser primaryUser = user.getIsPrimary()?user:appUserService.getPrimaryByCompanyId(user.getCompanyId()); TicketInfoVO vo = new TicketInfoVO() .setId(ticket.getId()) .setNo(ticket.getNo()) @@ -594,7 +593,7 @@ public class TicketController extends ControllerBase { .setUrgency(ticket.getUrgency()) .setSolveTime(ticket.getSolveTime()) .setDeviceTypeSub(device.getDeviceTypeSub()) - .setPrimaryUserName(primaryUser.getName()) + .setPrimaryUserName(device.getAgentName()) .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()) diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileSearchRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileSearchRequest.java index 732233cd..60f88ab9 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileSearchRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileSearchRequest.java @@ -15,6 +15,9 @@ public class FileSearchRequest extends PageRequest { //文件来源,0:工单 private Integer source; + //文件来源id + private Integer sourceId; + //文件类型 private String fileType; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/CompanySimpleVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/CompanySimpleVO.java index 48c7a481..bbf8eacc 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/CompanySimpleVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/CompanySimpleVO.java @@ -1,8 +1,13 @@ package com.nflg.mobilebroken.common.pojo.vo; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.experimental.Accessors; +import java.util.Collections; +import java.util.List; + @Data @Accessors(chain = true) public class CompanySimpleVO { @@ -15,4 +20,18 @@ public class CompanySimpleVO { // 公司名称 private String name; + + // 区域名称 + @JsonIgnore + private String areaName; + + // 区域名称列表 + private List areaNames; + + public List getAreaNames() { + if (StrUtil.isBlank(areaName)){ + return Collections.emptyList(); + } + return StrUtil.split(areaName, ","); + } } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java index 9bc42c31..b4a0a9fe 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java @@ -41,6 +41,9 @@ public class DeviceInfoVO { //客户名称 private String customerName; + //代理商名称 + private String agentName; + @JsonIgnore private Integer componentId; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminRoleMenuMapServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminRoleMenuMapServiceImpl.java index 2487258a..ceaf44c9 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminRoleMenuMapServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminRoleMenuMapServiceImpl.java @@ -4,12 +4,17 @@ import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.pojo.request.AuthorizeMenuRequest; +import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.repository.entity.AdminRole; import com.nflg.mobilebroken.repository.entity.AdminRoleMenuMap; import com.nflg.mobilebroken.repository.mapper.AdminRoleMenuMapMapper; import com.nflg.mobilebroken.repository.service.IAdminRoleMenuMapService; +import com.nflg.mobilebroken.repository.service.IAdminRoleService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; @@ -24,6 +29,9 @@ import java.util.stream.Collectors; @Service public class AdminRoleMenuMapServiceImpl extends ServiceImpl implements IAdminRoleMenuMapService { + @Resource + private IAdminRoleService roleService; + @Transactional @Override public void authorize(AuthorizeMenuRequest request) { @@ -35,5 +43,10 @@ public class AdminRoleMenuMapServiceImpl extends ServiceImpl(request.getPage(), request.getPageSize())); PageData pageData = new PageData<>(); pageData.setPage((int) page.getCurrent()); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java index 815dbe9e..2d672e02 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java @@ -357,8 +357,8 @@ public class AppUserServiceImpl extends ServiceImpl impl .setSalesUserName(appUser.getSalesUserName()) .setTitleId(appUser.getTitleId()) .setTitle(positionService.getById(appUser.getTitleId()).getPositionName()) - .setState(appUser.getExpireTime().isAfter(LocalDate.now()) ?1:2); - AppUserApplyfor applyFor=appUserApplyforService.lambdaQuery() + .setState(appUser.getExpireTime().isAfter(LocalDate.now()) ? 1 : 2); + AppUserApplyfor applyFor = appUserApplyforService.lambdaQuery() .eq(AppUserApplyfor::getUserId, appUser.getId()) .eq(AppUserApplyfor::getState, AppUserApplyForState.PENDINGAPPROVAL.getState().byteValue()) .ne(AppUserApplyfor::getType, AppUserApplyforType.ADD.getState().byteValue()) @@ -371,7 +371,11 @@ public class AppUserServiceImpl extends ServiceImpl impl primary.getChildren().add(d); }); datas.removeAll(subs); - List page=primarys.stream().skip((long) (request.getPage() - 1) *request.getPageSize()).limit(request.getPageSize()).collect(Collectors.toList()); + List page = primarys.stream() + .sorted(Comparator.comparingInt(AppUserForAdminVO::getUserState).thenComparing(Comparator.comparingInt(AppUserForAdminVO::getId).reversed())) + .skip((long) (request.getPage() - 1) * request.getPageSize()) + .limit(request.getPageSize()) + .collect(Collectors.toList()); return new PageData().setPage(request.getPage()).setPageSize(request.getPageSize()).setTotal(primarys.size()).setItems(page); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/FileUploadRecordServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/FileUploadRecordServiceImpl.java index 6989c2e6..d987aafc 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/FileUploadRecordServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/FileUploadRecordServiceImpl.java @@ -34,6 +34,7 @@ public class FileUploadRecordServiceImpl extends ServiceImpl datas = lambdaQuery() .eq(Objects.nonNull(request.getSource()), FileUploadRecord::getSource, request.getSource()) + .eq(Objects.nonNull(request.getSourceId()), FileUploadRecord::getSourceId, request.getSourceId()) .eq(Objects.nonNull(request.getFileType()), FileUploadRecord::getFileType, request.getFileType()) .and(Objects.nonNull(request.getKey()), (wq) -> wq .like(FileUploadRecord::getFileName, request.getKey()) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBaseCustomerServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBaseCustomerServiceImpl.java index b67c430c..cf16fea2 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBaseCustomerServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBaseCustomerServiceImpl.java @@ -99,7 +99,8 @@ public class TBaseCustomerServiceImpl extends ServiceImpl new CompanySimpleVO() .setId(d.getId()) .setName(d.getAgencyCompanyName()) - .setCode(d.getAgencyCompanyCode())) + .setCode(d.getAgencyCompanyCode()) + .setAreaName(d.getAreaName())) .collect(Collectors.toList()); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java index 569f54f1..b10a8a46 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java @@ -1,5 +1,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.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -16,21 +17,16 @@ import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.common.util.TicketUtl; import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.AdminUser; +import com.nflg.mobilebroken.repository.entity.FileUploadRecord; import com.nflg.mobilebroken.repository.entity.Ticket; import com.nflg.mobilebroken.repository.entity.TicketEvaluate; import com.nflg.mobilebroken.repository.mapper.TicketMapper; -import com.nflg.mobilebroken.repository.service.IAdminUserService; -import com.nflg.mobilebroken.repository.service.IAppAreaService; -import com.nflg.mobilebroken.repository.service.ITicketEvaluateService; -import com.nflg.mobilebroken.repository.service.ITicketService; +import com.nflg.mobilebroken.repository.service.*; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -53,6 +49,9 @@ public class TicketServiceImpl extends ServiceImpl impleme @Resource private IAdminUserService adminUserService; + @Resource + private IFileUploadRecordService fileUploadRecordService; + @Override public Ticket add(TicketAddRequest request, Integer userId) { Ticket lastTicket=lambdaQuery() @@ -74,6 +73,26 @@ public class TicketServiceImpl extends ServiceImpl impleme .setUserId(userId) .setCreateTime(LocalDateTime.now()); save(ticket); + Collection files=CollectionUtil.addAll(request.getImages(),request.getAttachments()); + if (CollectionUtil.isNotEmpty(files)){ + List fileUploadRecords=new ArrayList<>(); + for (String url : files) { + String fileName=url.substring(url.lastIndexOf("/")+1); + String pre=fileName.substring(0,fileName.lastIndexOf(".")); + String end=fileName.substring(fileName.lastIndexOf(".")); + FileUploadRecord fileUploadRecord = new FileUploadRecord() + .setFrom("app") + .setUrl(url) + .setFileName(pre) + .setFileType(end) + .setSource((byte) 0) + .setSourceId(ticket.getId()) + .setCreateBy(AppUserUtil.getUserName()) + .setCreateTime(LocalDateTime.now()); + fileUploadRecords.add(fileUploadRecord); + } + fileUploadRecordService.saveBatch(fileUploadRecords); + } return ticket; } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml index 84730754..75fa3710 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml @@ -6,7 +6,7 @@ SELECT d.device_no AS 'deviceNo',d.model_no AS 'modelNo',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',d.customer_name AS 'customerName' - ,dc.id AS 'componentId' + ,dc.id AS 'componentId',d.agent_name FROM device d LEFT JOIN device_component dc ON d.model_no=dc.model_no AND dc.`enable`=1 WHERE d.device_no=#{deviceNo} diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml index db71b0ab..88030f05 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml @@ -125,27 +125,17 @@ ,t.handle_name AS 'handle' 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 a2 ON u.area_id=a2.id - LEFT JOIN device d ON t.device_no=d.device_no AND d.data_valid_state=1 + LEFT JOIN device d ON t.device_no=d.device_no LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type 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 LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auh ON t.current_handle=auh.id - ORDER BY t.id DESC + ORDER BY t.state,t.id DESC - - - - - - - - -