Browse Source

小程序已完成工单接口

tags/v1.0.0^2
chengwang 1 year ago
parent
commit
5508b73227
6 changed files with 192 additions and 8 deletions
  1. +10
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/controller/WorkOrderController.java
  2. +2
    -1
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/enums/WorkOrderEnum.java
  3. +2
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/IWorkOrderService.java
  4. +168
    -7
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/impl/WorkOrderServiceImpl.java
  5. +5
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/vo/WorkOrderHandleVo.java
  6. +5
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/vo/WorkOrderInfoVo.java

+ 10
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/controller/WorkOrderController.java View File

@@ -59,6 +59,16 @@ public class WorkOrderController extends BaseController {
return workOrderService.handle(query);
}

/**
* 已完成工单
* @param query
* @return
*/
@GetMapping("/completed")
public JsonResult completed(WorkOrderQuery query){
return workOrderService.getCompleted(query);
}





+ 2
- 1
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/enums/WorkOrderEnum.java View File

@@ -14,7 +14,8 @@ public enum WorkOrderEnum {
DEPT_ID_IS_NULL(1210105, "部门id为空"),
DATA_IS_NULL(1210106, "数据为空"),
WORK_ORDER_ID_IS_NULL(1210107, "工单id为空"),
INSPECTION_ID_IS_NULL(1210108, "任务id为空");
INSPECTION_ID_IS_NULL(1210108, "任务id为空"),
ASSIGN_USER_IS_EXIST(1210109, "被分配人id为空");

/**
* 错误码

+ 2
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/IWorkOrderService.java View File

@@ -20,4 +20,6 @@ public interface IWorkOrderService extends IBaseService<WorkOrder> {

JsonResult handle(HandleQuery query);

JsonResult getCompleted(WorkOrderQuery query);

}

+ 168
- 7
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/impl/WorkOrderServiceImpl.java View File

@@ -195,12 +195,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if(null == workPageData.getRecords()){
return null;
}
List<WorkOrderInfoVo> WorkOrderInfoList = new ArrayList<>();
//设置每条工单对应的各状态问题数量
List<WorkOrderInfoVo> workOrderList = workPageData.getRecords().stream().map(x -> {
WorkOrderInfoVo vo = new WorkOrderInfoVo();
//BeanUtils.copyProperties(x, vo);
vo.setCode(x.getCode());
vo.setCreateTime(x.getCreateTime());
BeanUtils.copyProperties(x, vo);
// vo.setCode(x.getCode());
// vo.setCreateTime(x.getCreateTime());
//被分配人员对应id
String assignUser = x.getAssignUser();
String[] assignUserId = assignUser.split(",");
@@ -210,8 +211,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
List<String> list = new ArrayList<>();
for (String userId : assignUserId) {
User userInfo = userMapper.selectById(userId);
String username1 = userInfo.getUsername();
list.add(username1);
if (ObjectUtil.isNotNull(userInfo)) {
list.add(userInfo.getUsername());
}
}
String usernames = list.stream().map(String::valueOf).collect(Collectors.joining("、"));
vo.setAssignUserName(usernames);
@@ -240,9 +242,24 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
long count1 = inspectionFileList.stream().filter(t -> t.getStatus() == 25).count();
vo.setPromProcessed((int) count1);

return vo;
return vo;
}).collect(Collectors.toList());
pageData.setRecords(workOrderList);
//当待处理问题总数为0时,此工单不出现在代办工单列表并且工单状态修改为15已完成
List<WorkOrderInfoVo> collect = workOrderList.stream().filter(f -> f.getPromTodo() == 0).collect(Collectors.toList());
if(null != collect){
for (WorkOrderInfoVo workOrderInfoVo : collect) {
//每一个工单对应的状态发生改变,一个工单id对应一个工单
WorkOrder workOrder = workOrderMapper.selectById(workOrderInfoVo.getId());
if(ObjectUtil.isNotNull(workOrder)){
workOrder.setStatus(15);
super.update(workOrder);
}
}
}
//工单的待处理问题个数不为0时 重新返回
WorkOrderInfoList = workOrderList.stream().filter(h -> h.getPromTodo() != 0).collect(Collectors.toList());
pageData.setRecords(WorkOrderInfoList);

return JsonResult.success(pageData);
}
return JsonResult.error(WorkOrderEnum.DATA_IS_NULL.getCode(),WorkOrderEnum.DATA_IS_NULL.getMsg());
@@ -313,5 +330,149 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return JsonResult.success(pageData);
}

/**
* 已完成工单
* @param query
* @return
*/
@Override
public JsonResult getCompleted(WorkOrderQuery query) {
// if(query.getOrderEndTime()==null && query.getOrderStartTime()==null){
// throw new ServiceException(ServiceExceptionEnum.PARAMETER_IS_NULL);
// }
if(query.getLimit()==null && query.getPage()==null){
throw new ServiceException(ServiceExceptionEnum.PARAMETER_IS_NULL);
}
//String username = SecurityUserUtils.username();
String username = "admin";
if(null ==username){
return JsonResult.error(WorkOrderEnum.USER_NAME_IS_NULL.getCode(),WorkOrderEnum.USER_NAME_IS_NULL.getMsg());
}
User user = userMapper.selectOne(Wrappers.<User>lambdaQuery()
.eq(User::getMark, 1)
.eq(User::getUsername, username));
if(ObjectUtil.isNull(user)){
return JsonResult.error(WorkOrderEnum.USER_IS_NOT_EXIST.getCode(),WorkOrderEnum.USER_IS_NOT_EXIST.getMsg());
}
String tenantId = user.getTenantId();
if(null == tenantId){
return JsonResult.error(WorkOrderEnum.DEPT_ID_IS_NULL.getCode(),WorkOrderEnum.DEPT_ID_IS_NULL.getMsg());
}
query.setTenantId(tenantId);
//根据登录用户判断角色 1超级管理员 2部门管理员 3普通用户
Integer type = user.getType();
//获取分页数据
IPage<WorkOrder> page = new Page<>(query.getPage(),query.getLimit());
IPage<WorkOrderInfoVo> pageData = new Page<>(query.getPage(),query.getLimit());
//时间处理
Date startTime = null;
Date endTime = null;
if(StringUtils.isNotEmpty(query.getStartTime()) && StringUtils.isNotEmpty(query.getEndTime())){
startTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS,query.getStartTime()+" 00:00:00");
endTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS,query.getEndTime()+" 23:59:59");
}
query.setOrderStartTime(startTime);
query.setOrderEndTime(endTime);
//用户角色为2部门管理员 3普通用户
if(UserTypeEnum.SUPER_ADMIN.getCode()==type){
//超级管理员可查看系统内所有已处理工单
IPage<WorkOrder> workPageData = workOrderMapper.selectPage(page, new LambdaQueryWrapper<WorkOrder>()
.eq(WorkOrder::getStatus, 15)
.eq(WorkOrder::getTenantId, tenantId)
.between(null != query.getOrderStartTime() && null != query.getOrderEndTime(), WorkOrder::getCreateTime, query.getOrderStartTime(), query.getOrderEndTime())
.eq(WorkOrder::getMark, 1));
//判空
if(StringUtils.isEmpty(workPageData.getRecords())){
return null;
}
//设置每条工单对应的已完成问题数量 问题状态为25问题已处理
List<WorkOrderInfoVo> collect = workPageData.getRecords().stream().map(s -> {
WorkOrderInfoVo vo = new WorkOrderInfoVo();
BeanUtils.copyProperties(s, vo);
//被分配人员对应的id
String assignUser = s.getAssignUser();
if (StringUtils.isEmpty(assignUser)) {
throw new ServiceException(ServiceExceptionEnum.PARAMETER_IS_NULL);
}
String[] assignUserId = assignUser.split(",");
List<String> list = new ArrayList<>();
for (String userId : assignUserId) {
User userInfo = userMapper.selectById(userId);
if (ObjectUtil.isNotNull(userInfo)) {
list.add(userInfo.getUsername());
}
}
String usernames = list.stream().map(String::valueOf).collect(Collectors.joining("、"));
vo.setAssignUserName(usernames);
//问题总数
List<WorkOrderFile> workOrderFiles = workOrderFileMapper.selectList(Wrappers.<WorkOrderFile>lambdaQuery()
.eq(WorkOrderFile::getWorkOrderId, s.getId()));
if (null == workOrderFiles) {
throw new ServiceException(ServiceExceptionEnum.PARAMETER_IS_NULL);
}
vo.setPromTotal(workOrderFiles.size());
//已解决问题=问题总数
vo.setPromProcessed(workOrderFiles.size());
return vo;
}).collect(Collectors.toList());
pageData.setRecords(collect);

return JsonResult.success(pageData);
}
//用户角色为2部门管理员 3普通用户
if(UserTypeEnum.ADMIN.getCode()== user.getType() || UserTypeEnum.ORDINARY_USER.getCode()== user.getType()){
//获取部门
String deptId = user.getDeptId();
if(StringUtils.isEmpty(deptId)){
throw new ServiceException(ServiceExceptionEnum.PARAMETER_IS_NULL);
}
//获取当前分配人对应的工单分页数据
IPage<WorkOrder> workPageData1 = workOrderMapper.selectPage(page, Wrappers.<WorkOrder>lambdaQuery()
.eq(WorkOrder::getAssignDeptId, deptId)
.eq(WorkOrder::getStatus, 15)
.like(StringUtils.isNotEmpty(user.getId()), WorkOrder::getAssignUser, user.getId())
.eq(WorkOrder::getTenantId, tenantId)
.between(null != query.getOrderStartTime() && null != query.getOrderEndTime(), WorkOrder::getCreateTime, query.getOrderStartTime(), query.getOrderEndTime())
.eq(WorkOrder::getMark, 1));
if(StringUtils.isEmpty(workPageData1.getRecords())){
return null;
}
//设置每条工单对应的状态问题数量
List<WorkOrderInfoVo> collect1 = workPageData1.getRecords().stream().map(g -> {
WorkOrderInfoVo vo = new WorkOrderInfoVo();
BeanUtils.copyProperties(g, vo);
//被分配人员对应的id
String assignUser = g.getAssignUser();
if (StringUtils.isEmpty(assignUser)) {
throw new ServiceException(ServiceExceptionEnum.PARAMETER_IS_NULL);
}
String[] assignUserId = assignUser.split(",");
List<String> list = new ArrayList<>();
for (String userId : assignUserId) {
User userInfo = userMapper.selectById(userId);
if (ObjectUtil.isNotNull(userInfo)) {
list.add(userInfo.getUsername());
}
}
String usernames = list.stream().map(String::valueOf).collect(Collectors.joining("、"));
vo.setAssignUserName(usernames);
//问题总数
List<WorkOrderFile> workOrderFiles = workOrderFileMapper.selectList(Wrappers.<WorkOrderFile>lambdaQuery()
.eq(WorkOrderFile::getWorkOrderId, g.getId()));
if (null == workOrderFiles) {
throw new ServiceException(ServiceExceptionEnum.PARAMETER_IS_NULL);
}
vo.setPromTotal(workOrderFiles.size());
//已解决问题=问题总数
vo.setPromProcessed(workOrderFiles.size());
return vo;
}).collect(Collectors.toList());
pageData.setRecords(collect1);
return JsonResult.success(pageData);
}

return JsonResult.error(WorkOrderEnum.DATA_IS_NULL.getCode(),WorkOrderEnum.DATA_IS_NULL.getMsg());
}


}

+ 5
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/vo/WorkOrderHandleVo.java View File

@@ -13,6 +13,11 @@ import java.util.Date;
@Data
public class WorkOrderHandleVo {

/**
* 问题id
*/
private String id;

/**
* 任务名称
*/

+ 5
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/vo/WorkOrderInfoVo.java View File

@@ -13,6 +13,11 @@ import java.util.Date;
@Data
public class WorkOrderInfoVo {

/**
* 工单id
*/
private String id;

/**
* 工单编号
*/

Loading…
Cancel
Save