【admin】新增&优化 # 1、新增数据大屏客户总数、设备总数、工单总数、今日工单总数 2、新增大屏客户列表、设备列表、检修员列表 3、新增修改检修员经纬度接口 4、新增切换接单状态接口 5、新增巡检单退单接口 6、优化后台管理巡检单详情接口 7、小程序新增用户地址管理 8、新增数据大屏检修单列表、巡检单列表
parent
8d37c44448
commit
eacfc63a15
|
@ -1,16 +1,32 @@
|
|||
package com.hcy.admin.controller.largeDataScreen;
|
||||
|
||||
import com.hcy.admin.service.client.IClientService;
|
||||
import com.hcy.admin.service.client.IEquipmentService;
|
||||
import com.hcy.admin.service.largeDataScreen.ILargeDataScreenService;
|
||||
import com.hcy.admin.vo.client.EquipmentLargeDataVo;
|
||||
import com.hcy.admin.service.order.IMaintenanceOrderService;
|
||||
import com.hcy.admin.service.order.IRoutingInspectionOrderService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.order.MaintenanceOrderParam;
|
||||
import com.hcy.admin.vo.client.ClientListVo;
|
||||
import com.hcy.admin.vo.client.EquipmentListVo;
|
||||
import com.hcy.admin.vo.largeData.EquipmentLargeDataVo;
|
||||
import com.hcy.admin.vo.largeData.LargeDataVo;
|
||||
import com.hcy.admin.vo.largeData.UserLargeDataVo;
|
||||
import com.hcy.admin.vo.order.MaintenanceOrderListVo;
|
||||
import com.hcy.admin.vo.order.RoutingInspectionOrderListVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.dto.largeDataDto.AdminLargeDataDto;
|
||||
import com.hcy.common.dto.largeDataDto.ClientLargeDataDto;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 数据大屏
|
||||
|
@ -21,6 +37,18 @@ public class LargeDataScreenController {
|
|||
@Resource
|
||||
ILargeDataScreenService iLargeDataScreenService;
|
||||
|
||||
@Resource
|
||||
IClientService iClientService;
|
||||
|
||||
@Resource
|
||||
IEquipmentService iEquipmentService;
|
||||
|
||||
@Resource
|
||||
IRoutingInspectionOrderService iRoutingInspectionOrderService;
|
||||
|
||||
@Resource
|
||||
IMaintenanceOrderService iMaintenanceOrderService;
|
||||
|
||||
/**
|
||||
* 获取所有设备对应状态的数量
|
||||
*
|
||||
|
@ -69,5 +97,93 @@ public class LargeDataScreenController {
|
|||
return AjaxResult.success(adminLargeDataDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取客户总数、设备总数、工单总数、今日工单总数
|
||||
*
|
||||
* @author hcy
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/allNumber")
|
||||
public Object allNumber() {
|
||||
LargeDataVo largeDataVo = iLargeDataScreenService.allNumber();
|
||||
return AjaxResult.success(largeDataVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 客户列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/clientList")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<ClientListVo> list = iClientService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/equipmentList")
|
||||
public Object equipmentList(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<EquipmentListVo> list = iEquipmentService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取检修员列表
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/reconditionList")
|
||||
public Object reconditionList() {
|
||||
List<UserLargeDataVo> list = iLargeDataScreenService.reconditionList();
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检订单列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/routingInspectionOrderList")
|
||||
public Object routingInspectionOrderList(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<RoutingInspectionOrderListVo> list = iRoutingInspectionOrderService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检修订单列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param maintenanceOrderParam 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/maintenanceOrderList")
|
||||
public Object maintenanceOrderList(@Validated PageParam pageParam, MaintenanceOrderParam maintenanceOrderParam) {
|
||||
PageResult<MaintenanceOrderListVo> list = iMaintenanceOrderService.list(pageParam, maintenanceOrderParam);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检订单统计
|
||||
*
|
||||
* @author hcy
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/routingInspectionOrderStats")
|
||||
public Object routingInspectionOrdeStatsr(int orderStastic) {
|
||||
LargeDataVo largeDataVo = iLargeDataScreenService.routingInspectionOrdeStatsr(orderStastic);
|
||||
return AjaxResult.success(largeDataVo);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,8 +14,10 @@ import com.hcy.admin.vo.client.ClientDetailVo;
|
|||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.client.Client;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -36,6 +38,9 @@ public class ClientServiceImpl implements IClientService {
|
|||
@Resource
|
||||
private IDevRegionService regionService;
|
||||
|
||||
@Resource
|
||||
EquipmentMapper equipmentMapper;
|
||||
|
||||
/**
|
||||
* 客户列表
|
||||
*
|
||||
|
@ -48,10 +53,12 @@ public class ClientServiceImpl implements IClientService {
|
|||
Integer page = pageParam.getPageNo();
|
||||
Integer limit = pageParam.getPageSize();
|
||||
|
||||
String clientId = params.get("id");
|
||||
String clientNo = params.get("clientNo");
|
||||
String clientName = params.get("clientName");
|
||||
|
||||
QueryWrapper<Client> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(clientId),"id", clientId);
|
||||
queryWrapper.eq("is_delete", 0);
|
||||
queryWrapper.like(StringUtils.isNotEmpty(clientNo),"client_no",clientNo);
|
||||
queryWrapper.like(StringUtils.isNotEmpty(clientName),"client_name",clientName);
|
||||
|
@ -84,6 +91,12 @@ public class ClientServiceImpl implements IClientService {
|
|||
vo.setProvince(regionMap.get(vo.getProvinceId()));
|
||||
vo.setCity(regionMap.get(vo.getCityId()));
|
||||
vo.setDistrict(regionMap.get(vo.getDistrictId()));
|
||||
//获取客户所有设备
|
||||
List<Equipment> equipment = equipmentMapper.selectList(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("client_id", item.getId())
|
||||
.eq("is_delete", GlobalConstant.NOT_DELETE));
|
||||
vo.setEquipmentList(equipment);
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.hcy.admin.service.largeDataScreen;
|
||||
|
||||
import com.hcy.admin.vo.client.EquipmentLargeDataVo;
|
||||
import com.hcy.admin.vo.largeData.EquipmentLargeDataVo;
|
||||
import com.hcy.admin.vo.largeData.LargeDataVo;
|
||||
import com.hcy.admin.vo.largeData.UserLargeDataVo;
|
||||
import com.hcy.common.dto.largeDataDto.AdminLargeDataDto;
|
||||
import com.hcy.common.dto.largeDataDto.ClientLargeDataDto;
|
||||
|
||||
|
@ -35,4 +37,23 @@ public interface ILargeDataScreenService {
|
|||
* @return
|
||||
*/
|
||||
AdminLargeDataDto personnelStatistics();
|
||||
|
||||
/**
|
||||
* 获取客户总数、设备总数、工单总数、今日工单总数
|
||||
* @return
|
||||
*/
|
||||
LargeDataVo allNumber();
|
||||
|
||||
/**
|
||||
* 获取检修员列表
|
||||
* @return
|
||||
*/
|
||||
List<UserLargeDataVo> reconditionList();
|
||||
|
||||
/**
|
||||
* 巡检订单统计
|
||||
* @param orderStastic
|
||||
* @return
|
||||
*/
|
||||
LargeDataVo routingInspectionOrdeStatsr(int orderStastic);
|
||||
}
|
||||
|
|
|
@ -2,19 +2,34 @@ package com.hcy.admin.service.largeDataScreen.impl;
|
|||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.hcy.admin.service.largeDataScreen.ILargeDataScreenService;
|
||||
import com.hcy.admin.vo.client.EquipmentLargeDataVo;
|
||||
import com.hcy.admin.vo.client.EquipmentListVo;
|
||||
import com.hcy.admin.vo.largeData.EquipmentLargeDataVo;
|
||||
import com.hcy.admin.vo.largeData.LargeDataVo;
|
||||
import com.hcy.admin.vo.largeData.UserLargeDataVo;
|
||||
import com.hcy.common.dto.largeDataDto.AdminLargeDataDto;
|
||||
import com.hcy.common.dto.largeDataDto.ClientLargeDataDto;
|
||||
import com.hcy.common.dto.result.UserLargeDataDto;
|
||||
import com.hcy.common.entity.client.Client;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.entity.order.MaintenanceOrder;
|
||||
import com.hcy.common.entity.order.RoutingInspectionOrder;
|
||||
import com.hcy.common.enums.equipment.EquipmentStateEnum;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import com.hcy.common.mapper.order.MaintenanceOrderMapper;
|
||||
import com.hcy.common.mapper.order.RoutingInspectionOrderMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -32,6 +47,16 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
|||
@Resource
|
||||
SystemAuthAdminMapper systemAuthAdminMapper;
|
||||
|
||||
@Resource
|
||||
RoutingInspectionOrderMapper routingInspectionOrderMapper;
|
||||
|
||||
@Resource
|
||||
MaintenanceOrderMapper maintenanceOrderMapper;
|
||||
|
||||
@Resource
|
||||
UserMapper userMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 获取所有设备对应状态的数量
|
||||
*
|
||||
|
@ -106,5 +131,97 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
|||
return systemAuthAdminMapper.personnelStatistics();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取客户总数、设备总数、工单总数、今日工单总数
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LargeDataVo allNumber() {
|
||||
LargeDataVo vo = new LargeDataVo();
|
||||
//客户总数
|
||||
Integer clientCount = clientMapper.selectCount(
|
||||
new QueryWrapper<Client>()
|
||||
.eq("is_delete", 0));
|
||||
//设备总数
|
||||
Integer equipmentCount = equipmentMapper.selectCount(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("is_delete", 0));
|
||||
//工单总数=检修单总数+维修单总数+巡检单总数
|
||||
//巡检单总数
|
||||
Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
||||
new QueryWrapper<RoutingInspectionOrder>()
|
||||
.eq("is_delete", 0));
|
||||
//检修单总数
|
||||
Integer maintenanceOrderCount = maintenanceOrderMapper.selectCount(
|
||||
new QueryWrapper<MaintenanceOrder>()
|
||||
.eq("is_delete", 0));
|
||||
|
||||
//今日工单总数=今日检修单总数+今日维修单总数+今日巡检单总数
|
||||
LocalDateTime startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN);
|
||||
LocalDateTime endTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MAX);
|
||||
//今日检修单总数
|
||||
Integer todayRoutingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
||||
new QueryWrapper<RoutingInspectionOrder>()
|
||||
.eq("is_delete", 0)
|
||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||
//今日检修单总数
|
||||
Integer todayMaintenanceOrderCount = maintenanceOrderMapper.selectCount(
|
||||
new QueryWrapper<MaintenanceOrder>()
|
||||
.eq("is_delete", 0)
|
||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||
vo.setClientSum(clientCount);
|
||||
vo.setEquipmentSum(equipmentCount);
|
||||
vo.setOrderSum(routingInspectionOrderCount + maintenanceOrderCount);
|
||||
vo.setTodayOrderSum(todayRoutingInspectionOrderCount + todayMaintenanceOrderCount);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取检修员列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<UserLargeDataVo> reconditionList() {
|
||||
List<UserLargeDataDto> userLargeDataDtos = userMapper.reconditionList();
|
||||
List<UserLargeDataVo> list = new ArrayList<>();
|
||||
for (UserLargeDataDto userLargeDataDto : userLargeDataDtos) {
|
||||
UserLargeDataVo vo = new UserLargeDataVo();
|
||||
BeanUtils.copyProperties(userLargeDataDto, vo);
|
||||
list.add(vo);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检订单统计
|
||||
*
|
||||
* @param orderStastic
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LargeDataVo routingInspectionOrdeStatsr(int orderStastic) {
|
||||
//orderStastic 工单统计 0=日 1=月 2=年
|
||||
//今日
|
||||
LocalDateTime startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN);
|
||||
LocalDateTime endTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MAX);
|
||||
//当月
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
LocalDateTime monthStartTime = now.withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0);
|
||||
LocalDateTime monthEndTime = now.withHour(23).withMinute(59).withSecond(59);
|
||||
|
||||
//获取巡检订单总数
|
||||
Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
||||
new QueryWrapper<RoutingInspectionOrder>()
|
||||
.eq("is_delete", 0));
|
||||
//获取已完成订单总数
|
||||
//获取检修中订单总数
|
||||
//获取保修中订单总数
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.admin.service.order.IRoutingInspectionOrderService;
|
||||
import com.hcy.admin.service.region.IDevRegionService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.order.RoutingInspectionOrderParam;
|
||||
import com.hcy.admin.vo.client.EquipmentListVo;
|
||||
import com.hcy.admin.vo.order.RoutingInspectionOrderListVo;
|
||||
import com.hcy.admin.vo.order.RoutingInspectionOrderDetailVo;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
|
@ -14,12 +16,15 @@ import com.hcy.common.core.PageResult;
|
|||
import com.hcy.common.dto.RoutingInspectionOrderDto;
|
||||
import com.hcy.common.entity.client.Client;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.entity.fault.Fault;
|
||||
import com.hcy.common.entity.order.MaintenanceOrder;
|
||||
import com.hcy.common.entity.order.RoutingInspectionOrder;
|
||||
import com.hcy.common.entity.system.SystemAuthAdmin;
|
||||
import com.hcy.common.entity.user.User;
|
||||
import com.hcy.common.enums.order.OrderStateEnum;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import com.hcy.common.mapper.fault.FaultMapper;
|
||||
import com.hcy.common.mapper.order.RoutingInspectionOrderMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
|
@ -53,6 +58,12 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
@Resource
|
||||
UserMapper userMapper;
|
||||
|
||||
@Resource
|
||||
FaultMapper faultMapper;
|
||||
|
||||
@Resource
|
||||
private IDevRegionService regionService;
|
||||
|
||||
/**
|
||||
* 巡检订单列表
|
||||
*
|
||||
|
@ -80,14 +91,10 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
|
||||
Page<RoutingInspectionOrderDto> iPage = routingInspectionOrderMapper.pageList(page, inspectionOrderDto);
|
||||
|
||||
|
||||
|
||||
List<RoutingInspectionOrderListVo> list = new LinkedList<>();
|
||||
for(RoutingInspectionOrderDto item : iPage.getRecords()) {
|
||||
RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setCreateTime(String.valueOf(item.getCreateTime()));
|
||||
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
|
@ -119,23 +126,42 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
.eq("id", model.getClientId())
|
||||
.last("limit 1"));
|
||||
vo.setClientName(client.getClientName());
|
||||
//设备编号、名称、地址
|
||||
//设备信息
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||
Equipment equipment = equipmentMapper.selectOne(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("id", model.getEquipmentId())
|
||||
.last("limit 1"));
|
||||
vo.setEquipmentNo(equipment.getNumber());
|
||||
vo.setEquipmentName(equipment.getName());
|
||||
vo.setDetailedAddress(equipment.getDetailedAddress());
|
||||
EquipmentListVo equipmentListVo = new EquipmentListVo();
|
||||
equipmentListVo.setProvince(regionMap.get(equipment.getProvinceId()));
|
||||
equipmentListVo.setCity(regionMap.get(equipment.getCityId()));
|
||||
equipmentListVo.setDistrict(regionMap.get(equipment.getDistrictId()));
|
||||
BeanUtils.copyProperties(equipment, equipmentListVo);
|
||||
vo.setEquipment(equipmentListVo); //设备信息
|
||||
//接单人
|
||||
SystemAuthAdmin authAdmin = systemAuthAdminMapper.selectOne(
|
||||
new QueryWrapper<SystemAuthAdmin>()
|
||||
User user = userMapper.selectOne(
|
||||
new QueryWrapper<User>()
|
||||
.eq("id", model.getReceiverId())
|
||||
.last("limit 1"));
|
||||
if(authAdmin != null){
|
||||
vo.setReceiverName(authAdmin.getUsername());
|
||||
if(user != null){
|
||||
vo.setReceiverName(user.getUsername());
|
||||
}
|
||||
//故障类别
|
||||
Fault fault = faultMapper.selectOne(
|
||||
new QueryWrapper<Fault>()
|
||||
.eq("id", model.getFaultId())
|
||||
.last("limit 1"));
|
||||
if(fault != null){
|
||||
vo.setFaultName(fault.getName());
|
||||
}
|
||||
//创建人名称
|
||||
SystemAuthAdmin authAdmin = systemAuthAdminMapper.selectOne(
|
||||
new QueryWrapper<SystemAuthAdmin>()
|
||||
.eq("id", model.getCreatorId())
|
||||
.last("limit 1"));
|
||||
if(authAdmin != null){
|
||||
vo.setCreatorName(authAdmin.getUsername());
|
||||
}
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
@ -279,6 +305,10 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
model.setReceiverId(routingInspectionOrderParam.getReceiverId());
|
||||
//如果是退单状态,重新派工后状态改为待接单
|
||||
if(model.getOrderStatus() == OrderStateEnum.RETURNED_ORDER.getStatus()){
|
||||
model.setOrderStatus(OrderStateEnum.PENDING_ORDER.getStatus());
|
||||
}
|
||||
routingInspectionOrderMapper.updateById(model);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
package com.hcy.admin.vo.client;
|
||||
|
||||
import com.hcy.admin.validate.client.ClientParam;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* ClientVo
|
||||
|
@ -39,5 +41,5 @@ public class ClientListVo implements Serializable {
|
|||
private Long creatorId; // 创建人id
|
||||
private Date createTime; // 创建时间
|
||||
private Date updateTime; // 更新时间
|
||||
|
||||
private List<Equipment> equipmentList; //设备列表
|
||||
}
|
||||
|
|
|
@ -26,6 +26,9 @@ public class EquipmentListVo implements Serializable {
|
|||
private Long provinceId; // 省id
|
||||
private Long districtId; // 区id
|
||||
private Long cityId; // 市id
|
||||
private String province; //省
|
||||
private String city; //市
|
||||
private String district; //区
|
||||
private String detailedAddress; // 详细地址
|
||||
private Integer inspectionCycle; // 巡检周期方式(0=天数间隔,1=固定日期)
|
||||
private Integer dailyAudit; // 每隔几天巡检
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.hcy.admin.vo.client;
|
||||
package com.hcy.admin.vo.largeData;
|
||||
|
||||
import lombok.Data;
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.hcy.admin.vo.largeData;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 数据大屏LargeDataVo
|
||||
*/
|
||||
@Data
|
||||
public class LargeDataVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Integer clientSum; //客户总数
|
||||
private Integer equipmentSum; //设备总数
|
||||
private Integer orderSum; //工单总数
|
||||
private Integer todayOrderSum; //今日工单总数
|
||||
|
||||
private Integer doneOrderSum; //已完成订单数
|
||||
private Integer underOverhaulOrderSum; //检修中订单数
|
||||
private Integer underWarrantyOrderSum; //保修中订单数
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
package com.hcy.admin.vo.largeData;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 用户Vo
|
||||
*/
|
||||
@Data
|
||||
public class UserLargeDataVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Integer id; // 主键
|
||||
private Integer sn; // 编号
|
||||
private String avatar; // 用户头像
|
||||
private String realName; // 真实姓名
|
||||
private String nickname; // 用户昵称
|
||||
private String username; // 用户账号
|
||||
private String password; // 用户密码
|
||||
private String mobile; // 用户电话
|
||||
private Integer channel; // 注册渠道
|
||||
private Integer type; // 用户类型:[0=用户端,1=师傅端]
|
||||
private String salt; // 加密盐巴
|
||||
private BigDecimal money; // 用户余额
|
||||
private Integer sex; // 用户性别: [1=男, 2=女]
|
||||
private Integer isDisable; // 是否禁用: [0=否, 1=是]
|
||||
private Integer isDelete; // 是否删除: [0=否, 1=是]
|
||||
private Integer isNew; // 是否新用户: [0=否, 1=是]
|
||||
private String lastLoginIp; // 最后登录IP
|
||||
private Long lastLoginTime; // 最后登录时间
|
||||
private Long createTime; // 创建时间
|
||||
private Long updateTime; // 更新时间
|
||||
private Long deleteTime; // 删除时间
|
||||
private Long distributorId; // 绑定的分销人员Id
|
||||
private Long bindTime; // 绑定的时间
|
||||
private Integer receiveOrderStatus; //接单状态(0=休假/停止接单中 1=作业中 2=可接单)
|
||||
private String longitude; // 经度
|
||||
private String latitude; // 纬度
|
||||
|
||||
}
|
|
@ -1,6 +1,10 @@
|
|||
package com.hcy.admin.vo.order;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.hcy.admin.validate.order.RoutingInspectionOrderParam;
|
||||
import com.hcy.admin.vo.client.EquipmentListVo;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
|
@ -24,17 +28,29 @@ public class RoutingInspectionOrderDetailVo implements Serializable {
|
|||
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
|
||||
private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-巡检中;4-已完成;5-已退单;6-待巡检
|
||||
private Long clientId; // 客户id
|
||||
private Long equipmentId; // 设备id
|
||||
private Long receiverId; // 接单人id
|
||||
private Date receiverTime; // 接单时间
|
||||
private String remark; // 备注
|
||||
private Integer creatorId; // 创建人id
|
||||
private String creatorName; // 创建人名称
|
||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||
private BigDecimal orderDistance; // 订单距离
|
||||
private String clientName; // 客户名称
|
||||
private String equipmentNo; //设备编号
|
||||
private String equipmentName; //设备名称
|
||||
private String detailedAddress; // 设备详细地址
|
||||
private Long equipmentId; // 设备id
|
||||
private EquipmentListVo equipment; //设备信息
|
||||
private String receiverName; // 接单人名称
|
||||
|
||||
private Date createTime; // 创建时间
|
||||
private Long userId; // 用户id
|
||||
private Long faultId; // 故障id
|
||||
private String faultName; // 故障名称
|
||||
private String faultDescription; // 故障描述
|
||||
private Long repairId; // 返修id
|
||||
private Date cancelOrderTime; // 取消订单时间
|
||||
private String cancelCause; // 取消原因
|
||||
private Date orderAccomplishTime; // 订单完成时间
|
||||
private Date updateTime; // 更新时间
|
||||
private Long maintenanceId; //检修单id
|
||||
private Integer inspectionResult; //巡检结果(0=正常 1=异常)
|
||||
private String inspectionPhoto; //巡检照片
|
||||
private String inspectionResultRemark; //巡检结果备注
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ public class RoutingInspectionOrderListVo implements Serializable {
|
|||
private String detailedAddress; // 设备详细地址
|
||||
private Long creatorId; // 创建人id
|
||||
private String creatorName; //创建人名称
|
||||
private String createTime; // 创建时间
|
||||
private Date createTime; // 创建时间
|
||||
private Long faultId; // 故障id
|
||||
private String familiarFaultName; //故障类型
|
||||
private Long orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-巡检中;4-已完成;5-已退单;6-待巡检
|
||||
|
|
|
@ -24,7 +24,7 @@ public class RoutingInspectionOrderDto implements Serializable {
|
|||
private String detailedAddress; // 设备详细地址
|
||||
private Long creatorId; // 创建人id
|
||||
private String creatorName; //创建人名称
|
||||
private String createTime; // 创建时间
|
||||
private Date createTime; // 创建时间
|
||||
private Long faultId; // 故障id
|
||||
private String familiarFaultName; //故障类型
|
||||
private String faultDescription; // 故障描述
|
||||
|
@ -38,4 +38,6 @@ public class RoutingInspectionOrderDto implements Serializable {
|
|||
private double latitude; //纬度
|
||||
private BigDecimal orderDistance; // 订单距离
|
||||
private Integer queryType; // 查询类型 0-离我最近 1-时间优先
|
||||
private Date cancelOrderTime; // 取消订单时间
|
||||
private String cancelCause; // 取消原因
|
||||
}
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
package com.hcy.common.dto.result;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 用户Vo
|
||||
*/
|
||||
@Data
|
||||
public class UserLargeDataDto implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Integer id; // 主键
|
||||
private Integer sn; // 编号
|
||||
private String avatar; // 用户头像
|
||||
private String realName; // 真实姓名
|
||||
private String nickname; // 用户昵称
|
||||
private String username; // 用户账号
|
||||
private String password; // 用户密码
|
||||
private String mobile; // 用户电话
|
||||
private Integer channel; // 注册渠道
|
||||
private Integer type; // 用户类型:[0=用户端,1=师傅端]
|
||||
private String salt; // 加密盐巴
|
||||
private BigDecimal money; // 用户余额
|
||||
private Integer sex; // 用户性别: [1=男, 2=女]
|
||||
private Integer isDisable; // 是否禁用: [0=否, 1=是]
|
||||
private Integer isDelete; // 是否删除: [0=否, 1=是]
|
||||
private Integer isNew; // 是否新用户: [0=否, 1=是]
|
||||
private String lastLoginIp; // 最后登录IP
|
||||
private Long lastLoginTime; // 最后登录时间
|
||||
private Long createTime; // 创建时间
|
||||
private Long updateTime; // 更新时间
|
||||
private Long deleteTime; // 删除时间
|
||||
private Long distributorId; // 绑定的分销人员Id
|
||||
private Long bindTime; // 绑定的时间
|
||||
private Integer receiveOrderStatus; //接单状态(0=休假/停止接单中 1=作业中 2=可接单)
|
||||
private String longitude; // 经度
|
||||
private String latitude; // 纬度
|
||||
|
||||
}
|
|
@ -41,5 +41,7 @@ public class User implements Serializable {
|
|||
private Long distributorId; // 绑定的分销人员Id
|
||||
private Long bindTime; // 绑定的时间
|
||||
private Integer integral; // 积分
|
||||
|
||||
private Integer receiveOrderStatus; //接单状态(0=休假/停止接单中 1=作业中 2=可接单)
|
||||
private String longitude; // 经度
|
||||
private String latitude; // 纬度
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ public enum EquipmentStateEnum {
|
|||
// 设备状态(0=停用,1=正常,2=保修中,3=检修中)
|
||||
STOPWORD(0,"停用"),
|
||||
NORMAL(1, "正常"),
|
||||
UNDERWARRANTY(2,"保修中"),
|
||||
UNDERWARRANTY(2,"报修中"),
|
||||
UNDEROVERHAUL(3, "检修中"),
|
||||
// 巡检周期方式(0=天数间隔,1=固定日期)
|
||||
DAYINTERVAL(0,"天数间隔"),
|
||||
|
|
|
@ -10,9 +10,13 @@ import java.util.Map;
|
|||
*/
|
||||
|
||||
public enum OrderStateEnum {
|
||||
//订单来源 1-系统创建;4-客服创建
|
||||
// 订单来源 0-客户上报;1-系统创建;2-维修员创建;3-检修员创建;4-客服创建;5-维修主管创建
|
||||
CUSTOMER_REPORT(0,"客户上报"),
|
||||
SYSTEM_CREATION(1,"系统创建"),
|
||||
MAINTENANCE_MAN(2,"维修员创建"),
|
||||
MAINTENANCE_MAN_CREATION(3,"检修员创建"),
|
||||
CUSTOMER_SERVICE_CREATION(4,"客服创建"),
|
||||
MAINTENANCE_SUPERVISOR_CREATION(5,"维修主管创建"),
|
||||
|
||||
//订单状态 0-待抢单;1-待接单;2-接单超时;3-巡检中;4-已完成;5-已退单;6-待巡检
|
||||
WAITING_LIST(0,"待抢单"),
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.hcy.common.mapper.user;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hcy.common.core.basics.IBaseMapper;
|
||||
import com.hcy.common.dto.UserDto;
|
||||
import com.hcy.common.dto.result.UserLargeDataDto;
|
||||
import com.hcy.common.dto.result.UserResultDto;
|
||||
import com.hcy.common.entity.user.User;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
@ -36,4 +37,10 @@ public interface UserMapper extends IBaseMapper<User> {
|
|||
*/
|
||||
@Select("select * from la_user where mobile = #{phone}")
|
||||
User getUserByPhone(@Param("phone") String phone);
|
||||
|
||||
/**
|
||||
* 获取检修员列表
|
||||
* @return
|
||||
*/
|
||||
List<UserLargeDataDto> reconditionList();
|
||||
}
|
||||
|
|
|
@ -64,15 +64,15 @@
|
|||
LEFT JOIN la_user as u on i.receiver_id = u.id
|
||||
WHERE
|
||||
i.is_delete = 0
|
||||
and i.receiver_id = #{form.receiverId}
|
||||
and i.receiver_id = #{form.receiverId}
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
and i.order_no like concat('%', #{form.likeWork}, '%')
|
||||
and (i.order_no like concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
OR c.client_name LIKE concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
OR e.number LIKE concat('%', #{form.likeWork}, '%')
|
||||
OR e.number LIKE concat('%', #{form.likeWork}, '%'))
|
||||
</if>
|
||||
<if test="form.orderStatus != null">
|
||||
and i.order_status = #{form.orderStatus}
|
||||
|
@ -104,16 +104,6 @@
|
|||
LEFT JOIN la_user as u on i.receiver_id = u.id
|
||||
WHERE
|
||||
i.is_delete = 0
|
||||
and i.receiver_id = #{form.receiverId}
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
and i.order_no like concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
OR c.client_name LIKE concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
OR e.number LIKE concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.orderStatus != null">
|
||||
and i.order_status = #{form.orderStatus}
|
||||
</if>
|
||||
|
|
|
@ -91,4 +91,19 @@
|
|||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="reconditionList" resultType="com.hcy.common.dto.result.UserLargeDataDto">
|
||||
SELECT
|
||||
u.*
|
||||
FROM
|
||||
la_user AS u
|
||||
JOIN la_system_auth_admin AS aa ON aa.user_id = u.id
|
||||
JOIN la_system_auth_role AS ar ON aa.role = ar.id
|
||||
WHERE
|
||||
aa.is_delete = 0
|
||||
AND u.is_delete = 0
|
||||
AND aa.role = 6
|
||||
and u.longitude is not null
|
||||
and u.latitude is not null
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
@ -64,15 +64,15 @@
|
|||
LEFT JOIN la_user as u on i.receiver_id = u.id
|
||||
WHERE
|
||||
i.is_delete = 0
|
||||
and i.receiver_id = #{form.receiverId}
|
||||
and i.receiver_id = #{form.receiverId}
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
and i.order_no like concat('%', #{form.likeWork}, '%')
|
||||
and (i.order_no like concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
OR c.client_name LIKE concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
OR e.number LIKE concat('%', #{form.likeWork}, '%')
|
||||
OR e.number LIKE concat('%', #{form.likeWork}, '%'))
|
||||
</if>
|
||||
<if test="form.orderStatus != null">
|
||||
and i.order_status = #{form.orderStatus}
|
||||
|
@ -104,16 +104,6 @@
|
|||
LEFT JOIN la_user as u on i.receiver_id = u.id
|
||||
WHERE
|
||||
i.is_delete = 0
|
||||
and i.receiver_id = #{form.receiverId}
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
and i.order_no like concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
OR c.client_name LIKE concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
OR e.number LIKE concat('%', #{form.likeWork}, '%')
|
||||
</if>
|
||||
<if test="form.orderStatus != null">
|
||||
and i.order_status = #{form.orderStatus}
|
||||
</if>
|
||||
|
|
|
@ -91,4 +91,19 @@
|
|||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="reconditionList" resultType="com.hcy.common.dto.result.UserLargeDataDto">
|
||||
SELECT
|
||||
u.*
|
||||
FROM
|
||||
la_user AS u
|
||||
JOIN la_system_auth_admin AS aa ON aa.user_id = u.id
|
||||
JOIN la_system_auth_role AS ar ON aa.role = ar.id
|
||||
WHERE
|
||||
aa.is_delete = 0
|
||||
AND u.is_delete = 0
|
||||
AND aa.role = 6
|
||||
and u.longitude is not null
|
||||
and u.latitude is not null
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.hcy.common.exception.OperateException;
|
|||
import com.hcy.front.FrontThreadLocal;
|
||||
import com.hcy.front.service.IUserService;
|
||||
import com.hcy.front.validate.user.NewUserUpdateValidate;
|
||||
import com.hcy.front.validate.user.UserParam;
|
||||
import com.hcy.front.vo.staff.StaffDetailVo;
|
||||
import com.hcy.front.vo.user.UserCenterVo;
|
||||
import com.hcy.front.vo.user.UserInfoVo;
|
||||
|
@ -143,4 +144,18 @@ public class UserController {
|
|||
UserInfoVo vo = iUserService.userIntegral(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
@PostMapping("/switchingState")
|
||||
@ApiOperation(value="切换接单状态")
|
||||
public Object switchingState(@RequestBody UserParam userParam) {
|
||||
iUserService.switchingState(userParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@PostMapping("/modificationDegree")
|
||||
@ApiOperation(value="修改检修员经纬度")
|
||||
public Object modificationDegree(@RequestBody UserParam userParam) {
|
||||
iUserService.modificationDegree(userParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,4 +117,14 @@ public class RoutingInspectionOrderController {
|
|||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 退单
|
||||
* @param routingInspectionOrderParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/checking")
|
||||
public Object checking(@RequestBody RoutingInspectionOrderParam routingInspectionOrderParam) {
|
||||
iRoutingInspectionOrderService.checking(routingInspectionOrderParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.hcy.front.service;
|
|||
|
||||
import com.hcy.common.entity.user.User;
|
||||
import com.hcy.front.validate.user.NewUserUpdateValidate;
|
||||
import com.hcy.front.validate.user.UserParam;
|
||||
import com.hcy.front.vo.user.UserCenterVo;
|
||||
import com.hcy.front.vo.user.UserInfoVo;
|
||||
|
||||
|
@ -91,4 +92,16 @@ public interface IUserService {
|
|||
* @return
|
||||
*/
|
||||
UserInfoVo userIntegral(Integer id);
|
||||
|
||||
/**
|
||||
* 切换接单状态
|
||||
* @param userParam
|
||||
*/
|
||||
void switchingState(UserParam userParam);
|
||||
|
||||
/**
|
||||
* 修改检修员经纬度
|
||||
* @param userParam
|
||||
*/
|
||||
void modificationDegree(UserParam userParam);
|
||||
}
|
||||
|
|
|
@ -131,7 +131,7 @@ public class UserAddressServiceImpl extends ServiceImpl<UserAddressMapper, UserA
|
|||
model.setUpdateTime(TimeUtil.timestamp());
|
||||
|
||||
// 判定地址经纬度落在哪个服务区域上
|
||||
if (userAddressParam.getDistrictId() > 0) {
|
||||
/*if (userAddressParam.getDistrictId() > 0) {
|
||||
// 查找是否有服务区域
|
||||
String pointString = "POINT(" + userAddressParam.getLongitude() + " " + userAddressParam.getLatitude() + ")";
|
||||
List<ServiceAreaResultDto> serviceAreaResultDto = serviceAreaMapper.selectByPoint(userAddressParam.getDistrictId(),
|
||||
|
@ -148,7 +148,7 @@ public class UserAddressServiceImpl extends ServiceImpl<UserAddressMapper, UserA
|
|||
log.warn(wstr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
userAddressMapper.insert(model);
|
||||
}
|
||||
|
@ -180,7 +180,7 @@ public class UserAddressServiceImpl extends ServiceImpl<UserAddressMapper, UserA
|
|||
}
|
||||
|
||||
// 重新更新服务区域
|
||||
String pointString = "POINT(" + userAddressParam.getLongitude() + " " + userAddressParam.getLatitude() + ")";
|
||||
/*String pointString = "POINT(" + userAddressParam.getLongitude() + " " + userAddressParam.getLatitude() + ")";
|
||||
List<ServiceAreaResultDto> serviceAreaResultDto = serviceAreaMapper.selectByPoint(userAddressParam.getDistrictId(),
|
||||
pointString);
|
||||
if (serviceAreaResultDto.size() > 0) {
|
||||
|
@ -197,7 +197,7 @@ public class UserAddressServiceImpl extends ServiceImpl<UserAddressMapper, UserA
|
|||
} else {
|
||||
// 如果没有,则设为默认值0
|
||||
model.setServiceAreaId(0L);
|
||||
}
|
||||
}*/
|
||||
|
||||
model.setId(userAddressParam.getId());
|
||||
model.setUserId(userAddressParam.getUserId());
|
||||
|
|
|
@ -32,6 +32,7 @@ import com.hcy.front.FrontThreadLocal;
|
|||
import com.hcy.front.config.FrontConfig;
|
||||
import com.hcy.front.service.IUserService;
|
||||
import com.hcy.front.validate.user.NewUserUpdateValidate;
|
||||
import com.hcy.front.validate.user.UserParam;
|
||||
import com.hcy.front.vo.user.UserCenterVo;
|
||||
import com.hcy.front.vo.user.UserInfoVo;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
|
@ -80,7 +81,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|||
@Override
|
||||
public UserCenterVo center(Integer userId) {
|
||||
User user = userMapper.selectOne(new QueryWrapper<User>()
|
||||
.select("id,sn,avatar,real_name,nickname,username,mobile")
|
||||
.select("id,sn,avatar,real_name,nickname,username,mobile,receive_order_status")
|
||||
.eq("id", userId)
|
||||
.last("limit 1"));
|
||||
|
||||
|
@ -517,4 +518,35 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|||
userInfoVo.setIntegral(user.getIntegral());
|
||||
return userInfoVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换接单状态
|
||||
*
|
||||
* @param userParam
|
||||
*/
|
||||
@Override
|
||||
public void switchingState(UserParam userParam) {
|
||||
User user = userMapper.selectOne(new QueryWrapper<User>()
|
||||
.eq("id", userParam.getId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
user.setReceiveOrderStatus(userParam.getReceiveOrderStatus());
|
||||
userMapper.updateById(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改检修员经纬度
|
||||
*
|
||||
* @param userParam
|
||||
*/
|
||||
@Override
|
||||
public void modificationDegree(UserParam userParam) {
|
||||
User user = userMapper.selectOne(new QueryWrapper<User>()
|
||||
.eq("id", userParam.getId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
user.setLongitude(userParam.getLongitude());
|
||||
user.setLatitude(userParam.getLatitude());
|
||||
userMapper.updateById(user);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,4 +64,10 @@ public interface IRoutingInspectionOrderService {
|
|||
* @return
|
||||
*/
|
||||
List<RoutingInspectionOrderListVo> inspectionList(RoutingInspectionOrderParam routingInspectionOrderParam);
|
||||
|
||||
/**
|
||||
* 退单
|
||||
* @param routingInspectionOrderParam
|
||||
*/
|
||||
void checking(RoutingInspectionOrderParam routingInspectionOrderParam);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package com.hcy.front.service.order.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.dto.RoutingInspectionOrderDto;
|
||||
import com.hcy.common.dto.order.MaintenanceOrderDto;
|
||||
|
@ -12,12 +14,14 @@ import com.hcy.common.entity.order.MaintenanceOrder;
|
|||
import com.hcy.common.entity.order.RoutingInspectionOrder;
|
||||
import com.hcy.common.entity.system.SystemAuthAdmin;
|
||||
import com.hcy.common.entity.user.User;
|
||||
import com.hcy.common.enums.equipment.EquipmentStateEnum;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.OrderStateEnum;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import com.hcy.common.mapper.fault.FaultMapper;
|
||||
import com.hcy.common.mapper.order.MaintenanceOrderMapper;
|
||||
import com.hcy.common.mapper.order.RoutingInspectionOrderMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
|
@ -37,6 +41,7 @@ import org.springframework.util.Assert;
|
|||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -49,6 +54,9 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
@Resource
|
||||
RoutingInspectionOrderMapper routingInspectionOrderMapper;
|
||||
|
||||
@Resource
|
||||
MaintenanceOrderMapper maintenanceOrderMapper;
|
||||
|
||||
@Resource
|
||||
EquipmentMapper equipmentMapper;
|
||||
|
||||
|
@ -91,8 +99,6 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
for(RoutingInspectionOrderDto item : iPage.getRecords()) {
|
||||
RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setCreateTime(String.valueOf(item.getCreateTime()));
|
||||
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
|
@ -212,6 +218,31 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
model.setFaultId(routingInspectionOrderParam.getFaultId()); // 故障id
|
||||
model.setFaultDescription(routingInspectionOrderParam.getFaultDescription()); // 故障描述
|
||||
model.setInspectionResult(routingInspectionOrderParam.getInspectionResult()); //巡检结果(0=正常 1=异常)
|
||||
//如果故障检测是选了异常,需要把设备状态改为报修中
|
||||
if(routingInspectionOrderParam.getInspectionResult() == OrderStateEnum.ABNORMAL.getStatus()){
|
||||
Equipment equipment = equipmentMapper.selectOne(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("id", model.getEquipmentId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
equipment.setDeviceStatus(EquipmentStateEnum.UNDERWARRANTY.getStatus());
|
||||
equipmentMapper.updateById(equipment);
|
||||
//如果故障检测异常,需要创建检修单
|
||||
MaintenanceOrder maintenanceOrder = new MaintenanceOrder();
|
||||
maintenanceOrder.setOrderNo(getOrderNo());
|
||||
|
||||
maintenanceOrder.setCreatorId(FrontThreadLocal.getUserId().longValue()); //创建人id
|
||||
maintenanceOrder.setCreateTime(new Date()); //创建时间
|
||||
maintenanceOrder.setClientId(model.getClientId()); // 客户id
|
||||
maintenanceOrder.setEquipmentId(model.getEquipmentId()); // 设备id
|
||||
maintenanceOrder.setFaultId(model.getFaultId()); // 故障id
|
||||
maintenanceOrder.setFaultDescription(model.getFaultDescription()); // 故障描述
|
||||
maintenanceOrder.setRepairWorkOrderFlow(OrderStateEnum.WORK_ORDER_TANK.getStatus()); //工单去向 0=工单池 1=检修员
|
||||
maintenanceOrder.setRemark(model.getInspectionResultRemark()); // 备注
|
||||
maintenanceOrder.setOrderSource(OrderStateEnum.MAINTENANCE_MAN_CREATION.getStatus()); //订单来源:3=检修员创建
|
||||
maintenanceOrder.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单
|
||||
maintenanceOrderMapper.insert(maintenanceOrder);
|
||||
}
|
||||
model.setInspectionResultRemark(routingInspectionOrderParam.getInspectionResultRemark());//巡检结果备注
|
||||
model.setInspectionPhoto(routingInspectionOrderParam.getInspectionPhoto()); // 巡检照片
|
||||
model.setOrderStatus(OrderStateEnum.COMPLETED.getStatus()); //故障检测完工单状态就为已完成
|
||||
|
@ -293,5 +324,59 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
return returnData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 退单
|
||||
*
|
||||
* @param routingInspectionOrderParam
|
||||
*/
|
||||
@Override
|
||||
public void checking(RoutingInspectionOrderParam routingInspectionOrderParam) {
|
||||
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
|
||||
new QueryWrapper<RoutingInspectionOrder>()
|
||||
.eq("id", routingInspectionOrderParam.getId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
model.setCancelOrderTime(new Date()); //退单时间
|
||||
model.setCancelCause(routingInspectionOrderParam.getCancelCause()); //取消原因
|
||||
//如果工单去向是工单池的话,退单后工单状态为待抢单,如果是检修员,工单状态是 5=已退单
|
||||
if(model.getRepairWorkOrderFlow() == OrderStateEnum.WORK_ORDER_TANK.getStatus()){
|
||||
model.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); //用户退单后工单状态为待抢单
|
||||
}else{
|
||||
model.setOrderStatus(OrderStateEnum.RETURNED_ORDER.getStatus()); //用户退单后工单状态为已退单
|
||||
}
|
||||
|
||||
routingInspectionOrderMapper.updateById(model);
|
||||
}
|
||||
|
||||
private String getOrderNo() {
|
||||
//获取当前日期并将其进行格式化
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
|
||||
String formatDate = simpleDateFormat.format(new Date());
|
||||
|
||||
StringBuilder currentOrderNo = new StringBuilder(formatDate + "000001");
|
||||
MaintenanceOrder lastmMaintenanceOrder = maintenanceOrderMapper.selectOne(new LambdaQueryWrapper<MaintenanceOrder>()
|
||||
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.like(MaintenanceOrder::getOrderNo, formatDate)
|
||||
.orderByDesc(MaintenanceOrder::getOrderNo)
|
||||
.last("limit 1"));
|
||||
//当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据
|
||||
if (lastmMaintenanceOrder == null) {
|
||||
return currentOrderNo.toString();
|
||||
} else {
|
||||
int lastOrderNo = Integer.parseInt(lastmMaintenanceOrder.getOrderNo().substring(8));
|
||||
int length = String.valueOf((lastOrderNo + 1)).length();
|
||||
StringBuilder newOrderNo = new StringBuilder(lastOrderNo + 1 + "");
|
||||
|
||||
//如果流水号长度小于6位,则在前面补0
|
||||
if (length < 6) {
|
||||
for (int i = 0; i < 6 - length; i++) {
|
||||
newOrderNo.insert(0, "0");
|
||||
}
|
||||
}
|
||||
|
||||
return formatDate + newOrderNo;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,4 +82,5 @@ public class RoutingInspectionOrderParam implements Serializable {
|
|||
private double longitude; //经度
|
||||
private double latitude; //纬度
|
||||
private Integer queryType; // 查询类型 0-离我最近 1-时间优先
|
||||
private String cancelCause; // 取消原因
|
||||
}
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
package com.hcy.front.validate.user;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import javax.validation.constraints.DecimalMin;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* user用户参数
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
public class UserParam implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public interface create{}
|
||||
public interface update{}
|
||||
public interface delete{}
|
||||
|
||||
private Long id;
|
||||
|
||||
private Integer receiveOrderStatus; //接单状态(0=休假/停止接单中 1=作业中 2=可接单)
|
||||
private String longitude; // 经度
|
||||
private String latitude; // 纬度
|
||||
}
|
|
@ -38,5 +38,6 @@ public class RoutingInspectionOrderDetailVo implements Serializable {
|
|||
private Integer inspectionResult; //巡检结果(0=正常 1=异常)
|
||||
private String inspectionResultRemark; //巡检结果备注
|
||||
private Integer creatorId; // 创建人id
|
||||
|
||||
private Date cancelOrderTime; // 取消订单时间
|
||||
private String cancelCause; // 取消原因
|
||||
}
|
||||
|
|
|
@ -23,10 +23,11 @@ public class RoutingInspectionOrderListVo implements Serializable {
|
|||
private String equipmentNo; //设备编号
|
||||
private String equipmentName; //设备名称
|
||||
private String detailedAddress; // 设备详细地址
|
||||
private String createTime; // 创建时间
|
||||
private Date createTime; // 创建时间
|
||||
private Long orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-巡检中;4-已完成;5-已退单;6-待巡检
|
||||
private String distance; //距离
|
||||
private BigDecimal orderDistance; // 订单距离
|
||||
|
||||
private Date cancelOrderTime; // 取消订单时间
|
||||
private String cancelCause; // 取消原因
|
||||
|
||||
}
|
||||
|
|
|
@ -23,4 +23,6 @@ public class UserCenterVo implements Serializable {
|
|||
|
||||
private Long clientId; //客户id
|
||||
private Map<Integer,String> roleMap; //角色信息 key:id value:name
|
||||
private Integer receiveOrderStatus; //接单状态(0=休假/停止接单中 1=作业中 2=可接单)
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue