Commit ba506bca authored by shangtx's avatar shangtx

feat: web端派单接口

parent 69553f3b
......@@ -6,6 +6,7 @@ import com.onsiteservice.admin.controller.order.vo.OrderPageVO;
import com.onsiteservice.admin.service.order.AdminOrderService;
import com.onsiteservice.common.annotation.dict.Dict;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.common.order.dto.DispatchServiceOrderDTO;
import com.onsiteservice.common.order.dto.SendServiceOrderDTO;
import com.onsiteservice.common.order.dto.ValuationServiceOrderDTO;
import com.onsiteservice.constant.enums.ServiceOrderOpSourceEnum;
......@@ -78,4 +79,16 @@ public class ServiceOrderController {
return serviceOrderService.sendOrder(dto, userId, ServiceOrderOpSourceEnum.WEB) == 1 ? success() : fail("发送失败");
}
@ApiOperation(value = "派单")
@PostMapping("dispatch")
public Result dispatch(@RequestBody @NonNull @Validated DispatchServiceOrderDTO dto, @CurrentUserId Long userId) {
return serviceOrderService.dispatch(dto, userId, ServiceOrderOpSourceEnum.WEB) == 1 ? success() : fail("派单失败");
}
@ApiOperation(value = "修改派单")
@PostMapping("redispatch")
public Result redispatch(@RequestBody @NonNull @Validated DispatchServiceOrderDTO dto, @CurrentUserId Long userId) {
return serviceOrderService.redispatch(dto, userId, ServiceOrderOpSourceEnum.WEB) == 1 ? success() : fail("修改派单失败");
}
}
......@@ -5,6 +5,7 @@ import com.onsiteservice.admin.controller.service.dto.SaveServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.dto.UpdateServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.vo.ServiceWorkerKindVO;
import com.onsiteservice.admin.controller.service.vo.ServiceWorkerVO;
import com.onsiteservice.admin.controller.service.vo.WorkerInfoVO;
import com.onsiteservice.admin.service.service.ServiceWorkerService;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.core.result.Result;
......@@ -16,6 +17,7 @@ import io.swagger.annotations.ApiParam;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
......@@ -49,11 +51,17 @@ public class ServiceWorkerController {
}
@ApiOperation(value = "根据id查询")
@GetMapping("get/{id}")
@GetMapping("/{id}")
public Result<ServiceWorkerVO> getDetails(@ApiParam(name = "id", value = "维修工id") @PathVariable @Positive Long id) {
return success(serviceWorkerService.selectById(id));
}
@ApiOperation(value = "根据id查询")
@GetMapping("search")
public Result<List<WorkerInfoVO>> searchByName(@RequestParam(name = "name", required = false) String name) {
return success(serviceWorkerService.selectByName(name));
}
@ApiOperation(value = "新增")
@PostMapping("save")
public Result save(@RequestBody @NonNull @Validated SaveServiceWorkerDTO dto, @CurrentUserId Long userId) {
......@@ -72,6 +80,7 @@ public class ServiceWorkerController {
return serviceWorkerService.delete(id, userId) == 1 ? success() : fail("删除失败");
}
@ApiIgnore
@ApiOperation(value = "维修工种类")
@GetMapping("kind")
public Result<List<ServiceWorkerKindVO>> kind() {
......@@ -79,5 +88,4 @@ public class ServiceWorkerController {
}
}
package com.onsiteservice.admin.controller.service.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class WorkerInfoVO {
@ApiModelProperty(value = "维修工id")
private Long id;
@ApiModelProperty(value = "维修工姓名")
private String name;
@ApiModelProperty(value = "维修工手机号")
private String phone;
@ApiModelProperty(value = "工种")
private String kindName;
@ApiModelProperty(value = "维修工已被指派的时间")
private List<String> assignTime;
}
package com.onsiteservice.admin.service.service;
import com.github.pagehelper.PageHelper;
import com.google.common.collect.Lists;
import com.onsiteservice.admin.controller.service.dto.PageServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.dto.SaveServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.dto.UpdateServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.vo.ServiceWorkerKindVO;
import com.onsiteservice.admin.controller.service.vo.ServiceWorkerVO;
import com.onsiteservice.admin.controller.service.vo.WorkerInfoVO;
import com.onsiteservice.admin.mapper.service.ServiceWorkerBizMapper;
import com.onsiteservice.constant.constant.BizConstants;
import com.onsiteservice.constant.enums.BizCodeEnum;
import com.onsiteservice.constant.enums.ServiceUserTypeEnum;
import com.onsiteservice.constant.enums.ServiceWorkerEnum;
......@@ -15,21 +18,23 @@ import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.mapper.service.ServiceWorkerAssignMapper;
import com.onsiteservice.dao.mapper.service.ServiceWorkerMapper;
import com.onsiteservice.dao.mapper.user.UserMapper;
import com.onsiteservice.entity.service.ServiceWorker;
import com.onsiteservice.entity.service.ServiceWorkerAssign;
import com.onsiteservice.entity.user.User;
import com.onsiteservice.util.AttrCopyUtils;
import com.onsiteservice.util.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
@Service
......@@ -42,9 +47,10 @@ public class ServiceWorkerService extends AbstractMapper<ServiceWorker> {
@Resource
private ServiceWorkerBizMapper serviceWorkerBizMapper;
@Resource
private UserMapper userMapper;
@Resource
private ServiceWorkerAssignMapper serviceWorkerAssignMapper;
/**
* 分页查询列表
......@@ -117,4 +123,43 @@ public class ServiceWorkerService extends AbstractMapper<ServiceWorker> {
}
public List<WorkerInfoVO> selectByName(String name) {
log.info("worker selectByName name: {}", name);
List<ServiceWorker> workerList;
Condition condition = new Condition(ServiceWorker.class);
var criteria = condition.createCriteria();
if (StringUtils.isNotEmpty(name)) {
criteria.andLike("name", name);
}
workerList = serviceWorkerMapper.selectByCondition(condition);
return handle(workerList);
}
private List<WorkerInfoVO> handle(List<ServiceWorker> serviceWorkerList) {
if (CollectionUtils.isEmpty(serviceWorkerList)) {
return Lists.newArrayList();
}
// 维修工id列表
List<Long> workerIds = serviceWorkerList.parallelStream().map(ServiceWorker::getId).collect(Collectors.toList());
// 已被指派的时间
List<ServiceWorkerAssign> serviceWorkerAssignList = serviceWorkerAssignMapper.selectByDeletedAndIdListAndAssignTime(workerIds);
Map<Long, List<ServiceWorkerAssign>> serviceWorkerAssignMap =
serviceWorkerAssignList.parallelStream()
.collect(Collectors.groupingBy(ServiceWorkerAssign::getWorkerId));
return serviceWorkerList.parallelStream().map(e1 -> {
WorkerInfoVO serviceWorkerVO = AttrCopyUtils.copy(e1, new WorkerInfoVO());
// 维修工已经被指派的时间
List<ServiceWorkerAssign> assigns = serviceWorkerAssignMap.getOrDefault(e1.getId(), Lists.newArrayList());
String dateFormat = "yyyy-MM-dd HH:mm";
List<String> assignTimes = assigns.parallelStream()
.map(assign -> DateUtils.formatDate(assign.getAssignTime(), dateFormat)).collect(Collectors.toList());
serviceWorkerVO.setAssignTime(assignTimes);
return serviceWorkerVO;
}).collect(Collectors.toList());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment