【admin&front】新增&优化# 1、优化维修单详情 2、新增小程序维修单工单池、维修单列表、抢单、接单、退单 3、优化数据大屏统计维修员接口,解决多角色问题 4、优化维修单退单接口,退单时接单人、接单时间清空
parent
ebde88902d
commit
64a8aced73
|
@ -4,21 +4,25 @@ 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.service.order.IMaintenanceOrderService;
|
||||
import com.hcy.admin.service.order.IRepairOrderService;
|
||||
import com.hcy.admin.service.order.IRoutingInspectionOrderService;
|
||||
import com.hcy.admin.validate.client.EquipmentParam;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.order.MaintenanceOrderParam;
|
||||
import com.hcy.admin.validate.order.RepairOrderParam;
|
||||
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.RepairOrderListVo;
|
||||
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 com.hcy.common.mapper.order.RepairOrderMapper;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
@ -50,6 +54,9 @@ public class LargeDataScreenController {
|
|||
@Resource
|
||||
IMaintenanceOrderService iMaintenanceOrderService;
|
||||
|
||||
@Resource
|
||||
IRepairOrderService iRepairOrderService;
|
||||
|
||||
/**
|
||||
* 获取所有设备对应状态的数量
|
||||
*
|
||||
|
@ -175,6 +182,18 @@ public class LargeDataScreenController {
|
|||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修订单列表
|
||||
* @param pageParam
|
||||
* @param repairOrderParam
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/repairOrderList")
|
||||
public Object repairOrderList(@Validated PageParam pageParam, RepairOrderParam repairOrderParam) {
|
||||
PageResult<RepairOrderListVo> list = iRepairOrderService.list(pageParam, repairOrderParam);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检订单统计
|
||||
*
|
||||
|
@ -198,4 +217,16 @@ public class LargeDataScreenController {
|
|||
LargeDataVo largeDataVo = iLargeDataScreenService.maintenanceOrderStats(orderStastic);
|
||||
return AjaxResult.success(largeDataVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修订单统计
|
||||
*
|
||||
* @author hcy
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/repairOrderStats")
|
||||
public Object repairOrderStatsr(Integer orderStastic) {
|
||||
LargeDataVo largeDataVo = iLargeDataScreenService.repairOrderStats(orderStastic);
|
||||
return AjaxResult.success(largeDataVo);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,4 +63,11 @@ public interface ILargeDataScreenService {
|
|||
* @return
|
||||
*/
|
||||
LargeDataVo maintenanceOrderStats(Integer orderStastic);
|
||||
|
||||
/**
|
||||
* 维修单统计
|
||||
* @param orderStastic
|
||||
* @return
|
||||
*/
|
||||
LargeDataVo repairOrderStats(Integer orderStastic);
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ 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.RepairOrder;
|
||||
import com.hcy.common.entity.order.RoutingInspectionOrder;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.OrderStateEnum;
|
||||
|
@ -21,6 +22,7 @@ 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.RepairOrderMapper;
|
||||
import com.hcy.common.mapper.order.RoutingInspectionOrderMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
|
@ -65,6 +67,8 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
|||
@Resource
|
||||
IDevRegionService regionService;
|
||||
|
||||
@Resource
|
||||
RepairOrderMapper repairOrderMapper;
|
||||
|
||||
/**
|
||||
* 获取所有设备对应状态的数量
|
||||
|
@ -342,5 +346,71 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
|||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修单统计
|
||||
*
|
||||
* @param orderStastic
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LargeDataVo repairOrderStats(Integer orderStastic) {
|
||||
//orderStastic 工单统计 0=日 1=月 2=年
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
LocalDateTime startTime = null;
|
||||
LocalDateTime endTime = null;
|
||||
|
||||
Assert.notNull(orderStastic, "orderStastic数据不能为空");
|
||||
|
||||
if(orderStastic == 0){
|
||||
//今日
|
||||
startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN);
|
||||
endTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MAX);
|
||||
}else if(orderStastic == 1){
|
||||
//当月
|
||||
startTime = now.withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0);
|
||||
endTime = now.withHour(23).withMinute(59).withSecond(59);
|
||||
}else if(orderStastic == 2){
|
||||
//当前年份
|
||||
startTime = now.withDayOfYear(1).withHour(0).withMinute(0).withSecond(0);
|
||||
endTime = now.withHour(23).withMinute(59).withSecond(59);
|
||||
}
|
||||
|
||||
//获取巡检订单总数
|
||||
Integer routingInspectionOrderCount = repairOrderMapper.selectCount(
|
||||
new QueryWrapper<RepairOrder>()
|
||||
.eq("is_delete", 0)
|
||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||
//orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||
//获取已完成订单总数
|
||||
Integer doneOrderCount = repairOrderMapper.selectCount(
|
||||
new QueryWrapper<RepairOrder>()
|
||||
.eq("is_delete", 0)
|
||||
.eq("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||
//获取检修中订单总数
|
||||
Integer underOverhaulOrderCount = repairOrderMapper.selectCount(
|
||||
new QueryWrapper<RepairOrder>()
|
||||
.eq("is_delete", 0)
|
||||
.eq("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||
//获取报修中订单总数
|
||||
Integer underWarrantyOrderCount = repairOrderMapper.selectCount(
|
||||
new QueryWrapper<RepairOrder>()
|
||||
.eq("is_delete", 0)
|
||||
.ne("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
||||
.ne("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||
LargeDataVo vo = new LargeDataVo();
|
||||
vo.setOrderSum(routingInspectionOrderCount); //工单总数
|
||||
vo.setDoneOrderSum(doneOrderCount); //已完成订单数
|
||||
vo.setUnderOverhaulOrderSum(underOverhaulOrderCount); //检修中订单数
|
||||
vo.setUnderWarrantyOrderSum(underWarrantyOrderCount); //报修中订单数
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -7,15 +7,20 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
import com.github.yulichang.query.MPJQueryWrapper;
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.admin.service.order.IRepairOrderService;
|
||||
import com.hcy.admin.service.region.IDevRegionService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.order.RepairOrderParam;
|
||||
import com.hcy.admin.validate.order.RoutingInspectionOrderParam;
|
||||
import com.hcy.admin.vo.address.UserAddressListVo;
|
||||
import com.hcy.admin.vo.client.EquipmentListVo;
|
||||
import com.hcy.admin.vo.order.RepairOrderListVo;
|
||||
import com.hcy.admin.vo.order.RepairOrderDetailVo;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.dto.order.RepairOrderDto;
|
||||
import com.hcy.common.entity.address.UserAddress;
|
||||
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.RepairOrder;
|
||||
import com.hcy.common.entity.order.RoutingInspectionOrder;
|
||||
|
@ -24,7 +29,9 @@ 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.enums.order.RepairOrderStatusEnum;
|
||||
import com.hcy.common.mapper.address.UserAddressMapper;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import com.hcy.common.mapper.order.RepairOrderMapper;
|
||||
import com.hcy.common.mapper.plant.PlantMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
|
@ -38,6 +45,7 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
|
@ -62,6 +70,15 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
@Resource
|
||||
ClientMapper clientMapper;
|
||||
|
||||
@Resource
|
||||
UserAddressMapper userAddressMapper;
|
||||
|
||||
@Resource
|
||||
EquipmentMapper equipmentMapper;
|
||||
|
||||
@Resource
|
||||
private IDevRegionService regionService;
|
||||
|
||||
/**
|
||||
* 维修订单列表
|
||||
*
|
||||
|
@ -127,7 +144,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
BeanUtils.copyProperties(model, vo);
|
||||
vo.setUpdateTime(model.getUpdateTime());
|
||||
//客户名称
|
||||
|
||||
Client clientName = clientMapper.selectOne(
|
||||
new QueryWrapper<Client>()
|
||||
.eq("id", model.getClientId()));
|
||||
if(clientName != null){
|
||||
vo.setClientName(clientName.getClientName());
|
||||
}
|
||||
//创建人名称
|
||||
User creatorName = userMapper.selectOne(
|
||||
new QueryWrapper<User>()
|
||||
|
@ -155,6 +177,31 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
vo.setPlantName(plant.getName());
|
||||
}
|
||||
}
|
||||
//回寄地址
|
||||
UserAddress userAddress = userAddressMapper.selectOne(
|
||||
new QueryWrapper<UserAddress>()
|
||||
.eq("id", model.getAddressId()));
|
||||
UserAddressListVo userAddressListVo = new UserAddressListVo();
|
||||
BeanUtils.copyProperties(userAddress, userAddressListVo);
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||
userAddressListVo.setProvince(regionMap.get(userAddressListVo.getProvinceId()));
|
||||
userAddressListVo.setCity(regionMap.get(userAddressListVo.getCityId()));
|
||||
userAddressListVo.setDistrict(regionMap.get(userAddressListVo.getDistrictId()));
|
||||
if(userAddress != null){
|
||||
vo.setAddress(userAddressListVo);
|
||||
}
|
||||
//设备信息
|
||||
Equipment equipment = equipmentMapper.selectOne(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("id", model.getEquipmentId()));
|
||||
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);
|
||||
if(equipment != null){
|
||||
vo.setEquipment(equipmentListVo);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
@ -172,13 +219,13 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
model.setOrderStatus(RepairOrderStatusEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||
model.setOrderSource(OrderStateEnum.MAINTENANCE_SUPERVISOR_CREATION.getStatus()); //订单来源 5-维修主管创建
|
||||
model.setRepairWorkOrderFlow(OrderStateEnum.WORK_ORDER_TANK.getStatus()); // 工单去向 0=工单池 1=检修员
|
||||
model.setReceiverType(OrderStateEnum.REGIONAL_DISPATCH.getStatus()); // 接单类型 0-区域派单;1-距离派单
|
||||
|
||||
model.setClientId(repairOrderParam.getClientId()); // 客户id
|
||||
model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id
|
||||
model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述
|
||||
model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号
|
||||
model.setBrand(repairOrderParam.getBrand()); // 品牌
|
||||
model.setModuleImg(repairOrderParam.getModuleImg()); // 模块图片
|
||||
model.setRemark(repairOrderParam.getRemark()); // 备注
|
||||
|
||||
model.setMaintenanceOrderId(repairOrderParam.getMaintenanceOrderId()); // 检修单id
|
||||
|
@ -214,20 +261,21 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
Assert.notNull(model, "数据不存在!");
|
||||
|
||||
model.setClientId(repairOrderParam.getClientId()); // 客户id
|
||||
model.setEquipmentId(repairOrderParam.getEquipmentId()); //设备id
|
||||
model.setFaultDescription(repairOrderParam.getFaultDescription());
|
||||
model.setModuleNumber(repairOrderParam.getModuleNumber());
|
||||
model.setBrand(repairOrderParam.getBrand());
|
||||
model.setRemark(repairOrderParam.getRemark());
|
||||
model.setCreatorId(repairOrderParam.getCreatorId());
|
||||
model.setUpdateTime(repairOrderParam.getUpdateTime());
|
||||
model.setMaintenanceOrderId(repairOrderParam.getMaintenanceOrderId());
|
||||
model.setPriorityId(repairOrderParam.getPriorityId());
|
||||
model.setLogisticsMode(repairOrderParam.getLogisticsMode());
|
||||
model.setExpressName(repairOrderParam.getExpressName());
|
||||
model.setReturnOrNot(repairOrderParam.getReturnOrNot());
|
||||
model.setAddressId(repairOrderParam.getAddressId());
|
||||
model.setSiteImg(repairOrderParam.getSiteImg());
|
||||
model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id
|
||||
|
||||
model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号
|
||||
model.setBrand(repairOrderParam.getBrand()); // 品牌
|
||||
|
||||
model.setPriorityId(repairOrderParam.getPriorityId()); // 优先级 0-普通 1-加急
|
||||
model.setLogisticsMode(repairOrderParam.getLogisticsMode()); // 物流方式 0-物流快递 1=自领带回
|
||||
model.setExpressName(repairOrderParam.getExpressName()); // 快递名称
|
||||
model.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄(0=是 1=否)
|
||||
model.setRepairWorkOrderFlow(repairOrderParam.getRepairWorkOrderFlow()); // 工单去向 0=工单池 1=检修员
|
||||
model.setReceiverType(repairOrderParam.getReceiverType()); // 接单类型 0-区域派单;1-距离派单
|
||||
model.setOrderDistance(repairOrderParam.getOrderDistance()); // 自动抢单最大距离
|
||||
model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述
|
||||
model.setRemark(repairOrderParam.getRemark()); // 备注
|
||||
model.setAddressId(repairOrderParam.getAddressId()); // 回寄地址
|
||||
repairOrderMapper.updateById(model);
|
||||
}
|
||||
|
||||
|
|
|
@ -95,6 +95,6 @@ public class RepairOrderParam implements Serializable {
|
|||
private BigDecimal orderDistance; // 订单距离
|
||||
private Long receiverId; // 接单人id
|
||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||
|
||||
private Long faultId; // 故障id
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package com.hcy.admin.vo.address;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* UserAddressVo
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "用户地址分页返回对象", description = "用户地址分页返回对象")
|
||||
public class UserAddressListVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "id")
|
||||
private Long id;
|
||||
@ApiModelProperty(value = "用户id")
|
||||
private Long userId;
|
||||
@ApiModelProperty(value = "收货人")
|
||||
private String contact;
|
||||
@ApiModelProperty(value = "联系方式")
|
||||
private String mobile;
|
||||
@ApiModelProperty(value = "省id")
|
||||
private Long provinceId;
|
||||
@ApiModelProperty(value = "省")
|
||||
private String province;
|
||||
@ApiModelProperty(value = "市id")
|
||||
private Long cityId;
|
||||
@ApiModelProperty(value = "市")
|
||||
private String city;
|
||||
@ApiModelProperty(value = "区id")
|
||||
private Long districtId;
|
||||
@ApiModelProperty(value = "区")
|
||||
private String district;
|
||||
@ApiModelProperty(value = "详细地址")
|
||||
private String address;
|
||||
@ApiModelProperty(value = "经度")
|
||||
private String longitude;
|
||||
@ApiModelProperty(value = "纬度")
|
||||
private String latitude;
|
||||
@ApiModelProperty(value = " 是否默认:1-是;0-否;")
|
||||
private Integer isDefault;
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private String createTime;
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private String updateTime;
|
||||
}
|
|
@ -57,4 +57,5 @@ public class MaintenanceOrderListVo implements Serializable {
|
|||
private String receiverName; // 接单人姓名
|
||||
private String shortName; //客户简称
|
||||
private EquipmentModelDetailVo equipmentModel; //设备模块信息
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package com.hcy.admin.vo.order;
|
||||
|
||||
import com.hcy.admin.vo.address.UserAddressListVo;
|
||||
import com.hcy.admin.vo.client.EquipmentListVo;
|
||||
import com.hcy.common.entity.address.UserAddress;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -23,6 +27,7 @@ public class RepairOrderDetailVo implements Serializable {
|
|||
private String clientName; // 客户名称
|
||||
private String clientContacts; // 客户联系人
|
||||
private String clientPhone; // 客户联系电话
|
||||
private Long faultId; // 故障id
|
||||
private String faultDescription; // 故障描述
|
||||
private String moduleNumber; // 模块号
|
||||
private String brand; // 品牌
|
||||
|
@ -35,16 +40,18 @@ public class RepairOrderDetailVo implements Serializable {
|
|||
private Date createTime; // 创建时间
|
||||
private Date updateTime; // 更新时间
|
||||
private Long maintenanceOrderId; // 检修单id
|
||||
private Long priorityId; // 优先级 0-普通 1-加急
|
||||
private Integer priorityId; // 优先级 0-普通 1-加急
|
||||
private Integer logisticsMode; // 物流方式 0-物流快递 1=自领带回
|
||||
private String expressName; // 快递名称
|
||||
private Integer returnOrNot; // 是否回寄(0=是 1=否)
|
||||
private Long addressId; // 回寄地址
|
||||
private String siteImg; // 现场照片
|
||||
private Long plantId; // 管辖工厂
|
||||
private Long plantId; // 管辖工厂
|
||||
private String plantName; //管辖工厂名
|
||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||
private BigDecimal orderDistance; // 订单距离
|
||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||
private UserAddressListVo address; //地址信息
|
||||
private EquipmentListVo equipment; //设备信息
|
||||
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ public class RepairOrderListVo implements Serializable {
|
|||
private String clientName; // 客户名称
|
||||
private String clientContacts; // 客户联系人
|
||||
private String clientPhone; // 客户联系电话
|
||||
private Long faultId; // 故障id
|
||||
private String faultDescription; // 故障描述
|
||||
private String moduleNumber; // 模块号
|
||||
private String brand; // 品牌
|
||||
|
@ -34,7 +35,7 @@ public class RepairOrderListVo implements Serializable {
|
|||
private Date createTime; // 创建时间
|
||||
private Date updateTime; // 更新时间
|
||||
private Long maintenanceOrderId; // 检修单id
|
||||
private Long priorityId; // 优先级 0-普通 1-加急
|
||||
private Integer priorityId; // 优先级 0-普通 1-加急
|
||||
private Integer logisticsMode; // 物流方式 0-物流快递 1=自领带回
|
||||
private String expressName; // 快递名称
|
||||
private Integer returnOrNot; // 是否回寄(0=是 1=否)
|
||||
|
@ -42,4 +43,7 @@ public class RepairOrderListVo implements Serializable {
|
|||
private String siteImg; // 现场照片
|
||||
private Long plantId; // 管辖工厂
|
||||
private String plantName; //管辖工厂名
|
||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ public class OrderSparePart implements Serializable {
|
|||
@TableId(value="id", type= IdType.AUTO)
|
||||
private Long id; // id
|
||||
private Long maintenanceOrderId; //检修单id
|
||||
private Long repairOrderId; //维修单id
|
||||
private Long sparePartsId; // 备件id
|
||||
private String sparePartsCode; // 备件编码
|
||||
private String sparePartsName; // 备件名称
|
||||
|
|
|
@ -5,6 +5,7 @@ import lombok.Data;
|
|||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* RepairOrderDto
|
||||
|
@ -21,6 +22,7 @@ public class RepairOrderDto implements Serializable {
|
|||
private Long clientId; // 客户id
|
||||
private Long equipmentId; // 设备id
|
||||
private String clientName; // 客户名称
|
||||
private Long faultId; // 故障id
|
||||
private String faultDescription; // 故障描述
|
||||
private String moduleNumber; // 模块号
|
||||
private String brand; // 品牌
|
||||
|
@ -42,4 +44,18 @@ public class RepairOrderDto implements Serializable {
|
|||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||
private BigDecimal orderDistance; // 订单距离
|
||||
|
||||
private String likeWork; //关键字
|
||||
private String orderStatusIds; //订单状态ids
|
||||
private Long equipmentProvinceId; //设备省id
|
||||
private Long equipmentDistrictId; //设备区id
|
||||
private Long equipmentCityId; //设备市id
|
||||
private Double longitude; // 经度
|
||||
private Double latitude; // 纬度
|
||||
private Integer queryType; // 查询类型 0-离我最近 1-时间优先
|
||||
|
||||
private Integer isClient; //是否客户 0-客户端 1-检修员端
|
||||
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
||||
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
||||
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.hcy.common.entity.order;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -23,10 +25,10 @@ public class RepairOrder implements Serializable {
|
|||
private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||
private Long clientId; // 客户id
|
||||
private Long equipmentId; // 设备id
|
||||
private Long faultId; // 故障id
|
||||
private String faultDescription; // 故障描述
|
||||
private String moduleNumber; // 模块号
|
||||
private String brand; // 品牌
|
||||
private String moduleImg; // 模块图片
|
||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||
private BigDecimal orderDistance; // 订单距离
|
||||
private Long provinceId; // 省id
|
||||
|
@ -34,8 +36,10 @@ public class RepairOrder implements Serializable {
|
|||
private Long districtId; // 区id
|
||||
private BigDecimal totalAmount; // 总金额
|
||||
private BigDecimal actualAmount; // 实际金额
|
||||
@TableField(value = "receiver_id",updateStrategy = FieldStrategy.IGNORED)
|
||||
private Long receiverId; // 接单人id
|
||||
private Long repairId; // 返修id
|
||||
@TableField(value = "receiver_time",updateStrategy = FieldStrategy.IGNORED)
|
||||
private Date receiverTime; // 接单时间
|
||||
private Date quotationTime; // 报价时间
|
||||
private Date cancelOrderTime; // 取消订单时间
|
||||
|
|
|
@ -21,4 +21,12 @@ public interface OrderSparePartMapper extends IBaseMapper<OrderSparePart> {
|
|||
*/
|
||||
@Select("SELECT * FROM la_order_spare_part WHERE maintenance_order_id = #{maintenanceOrderId}")
|
||||
List<OrderSparePart> findOrderSparePartByMaintenanceOrderId(@Param("maintenanceOrderId") Long maintenanceOrderId);
|
||||
|
||||
/**
|
||||
* 根据维修工单id查询工单
|
||||
* @param repairOrderId 检修工单id
|
||||
* @return 数量
|
||||
*/
|
||||
@Select("SELECT * FROM la_order_spare_part WHERE repair_order_id = #{repairOrderId}")
|
||||
List<OrderSparePart> findOrderSparePartByRepairOrderId(@Param("repairOrderId") Long repairOrderId);
|
||||
}
|
||||
|
|
|
@ -4,10 +4,15 @@ package com.hcy.common.mapper.order;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hcy.common.core.basics.IBaseMapper;
|
||||
import com.hcy.common.dto.RoutingInspectionOrderDto;
|
||||
import com.hcy.common.dto.order.MaintenanceOrderDto;
|
||||
import com.hcy.common.dto.order.RepairOrderDto;
|
||||
import com.hcy.common.entity.order.MaintenanceOrder;
|
||||
import com.hcy.common.entity.order.RepairOrder;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 维修订单Mapper
|
||||
|
@ -15,6 +20,13 @@ import org.apache.ibatis.annotations.Param;
|
|||
@Mapper
|
||||
public interface RepairOrderMapper extends IBaseMapper<RepairOrder> {
|
||||
|
||||
/**
|
||||
* 工单池
|
||||
* @param form
|
||||
* @return
|
||||
*/
|
||||
List<RepairOrderDto> list(@Param("form") RepairOrderDto form);
|
||||
|
||||
/**
|
||||
* 维修单列表
|
||||
* @param page
|
||||
|
@ -22,4 +34,11 @@ public interface RepairOrderMapper extends IBaseMapper<RepairOrder> {
|
|||
* @return
|
||||
*/
|
||||
Page<RepairOrderDto> pageList(@Param("page") Page page, @Param("form") RepairOrderDto form);
|
||||
|
||||
/**
|
||||
* 通过订单id查询维修订单
|
||||
* @return MaintenanceOrder
|
||||
*/
|
||||
@Select("select * from la_repair_order where is_delete = 0 and id = #{id}")
|
||||
RepairOrder findMaintenanceOrderById(@Param("id") Long id);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,39 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hcy.common.mapper.order.RepairOrderMapper">
|
||||
<!-- 通用查询映射结果 -->
|
||||
<select id="list" resultType="com.hcy.common.dto.order.RepairOrderDto">
|
||||
select
|
||||
ro.*,
|
||||
u1.username as creatorName,
|
||||
u2.username as receiverName,
|
||||
c.client_name as clientName,
|
||||
e.province_id as equipmentProvinceId,
|
||||
e.district_id as equipmentDistrictId,
|
||||
e.city_id as equipmentCityId,
|
||||
e.longitude,
|
||||
e.latitude
|
||||
from la_repair_order as ro
|
||||
LEFT JOIN la_client as c on ro.client_id = c.id
|
||||
LEFT JOIN la_equipment as e ON e.id = ro.equipment_id
|
||||
LEFT JOIN la_user as u1 on ro.creator_id = u1.id
|
||||
LEFT JOIN la_user as u2 on ro.receiver_id = u2.id
|
||||
where
|
||||
ro.is_delete = 0
|
||||
<if test="form.id != null">
|
||||
and ro.id = #{form.id}
|
||||
</if>
|
||||
<if test="form.orderNo != null and form.orderNo != ''">
|
||||
and ro.order_no like concat('%', #{form.orderNo}, '%')
|
||||
</if>
|
||||
<if test="form.orderSource != null">
|
||||
and ro.order_source = #{form.orderSource}
|
||||
</if>
|
||||
<if test="form.orderStatus != null">
|
||||
and find_in_set(ro.order_status,#{form.orderStatus})
|
||||
</if>
|
||||
order by ro.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="pageList" resultType="com.hcy.common.dto.order.RepairOrderDto">
|
||||
select ro.*,u1.username as creatorName,u2.username as receiverName,c.client_name as clientName
|
||||
|
@ -32,6 +65,17 @@
|
|||
<if test="form.receiverName != null and form.receiverName != ''">
|
||||
and u2.username LIKE concat('%', #{form.receiverName}, '%')
|
||||
</if>
|
||||
<if test="form.likeWork != null and form.likeWork != ''">
|
||||
and (ro.order_no like concat('%',#{form.likeWork},'%')
|
||||
or u1.username LIKE concat('%', #{form.likeWork}, '%'))
|
||||
</if>
|
||||
<if test="form.orderStatus != null">
|
||||
and find_in_set(ro.order_status,#{form.orderStatus})
|
||||
</if>
|
||||
<if test="form.orderStatusIds != null and form.orderStatusIds != ''">
|
||||
and find_in_set(ro.order_status,#{form.orderStatusIds})
|
||||
</if>
|
||||
order by ro.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
@ -41,9 +41,7 @@
|
|||
join la_user as u on aa.user_id = u.id
|
||||
WHERE
|
||||
aa.is_delete = 0
|
||||
AND u.is_delete = 0 and aa.role = 6
|
||||
GROUP BY
|
||||
aa.role
|
||||
AND u.is_delete = 0 and aa.role like concat('%','6','%')
|
||||
ORDER BY
|
||||
maintenanceCount DESC
|
||||
</select>
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
package com.hcy.front.controller;
|
||||
|
||||
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import com.hcy.front.service.client.IEquipmentService;
|
||||
import com.hcy.front.vo.client.EquipmentDetailVo;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
||||
/**
|
||||
* 设备管理管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/equipment")
|
||||
public class EquipmentController {
|
||||
|
||||
@Resource
|
||||
IEquipmentService iEquipmentService;
|
||||
|
||||
/**
|
||||
* 设备管理详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param number 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("number") String number) {
|
||||
EquipmentDetailVo detail = iEquipmentService.detail(number);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
package com.hcy.front.controller.client;
|
||||
|
||||
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import com.hcy.front.service.client.IClientService;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.vo.client.ClientDetailVo;
|
||||
import com.hcy.front.vo.client.ClientListVo;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 客户管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/client")
|
||||
public class ClientController {
|
||||
|
||||
@Resource
|
||||
IClientService iClientService;
|
||||
|
||||
/**
|
||||
* 客户列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<ClientListVo> list = iClientService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 客户详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
ClientDetailVo detail = iClientService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package com.hcy.front.controller.client;
|
||||
|
||||
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.utils.QRCodeUtil;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import com.hcy.front.service.client.IEquipmentService;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.vo.client.EquipmentDetailVo;
|
||||
import com.hcy.front.vo.client.EquipmentListVo;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 设备管理管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/equipment")
|
||||
public class EquipmentController {
|
||||
|
||||
@Resource
|
||||
IEquipmentService iEquipmentService;
|
||||
|
||||
/**
|
||||
* 设备管理列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@Validated PageParam pageParam,
|
||||
@RequestParam Map<String, String> params) {
|
||||
PageResult<EquipmentListVo> list = iEquipmentService.list(pageParam, params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 设备管理详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detailById")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
EquipmentDetailVo detail = iEquipmentService.detailById(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备管理详情 根据设备编码进行查询
|
||||
*
|
||||
* @author hcy
|
||||
* @param number 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("number") String number) {
|
||||
EquipmentDetailVo detail = iEquipmentService.detail(number);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
}
|
|
@ -169,4 +169,5 @@ public class MaintenanceOrderController {
|
|||
iMaintenanceOrderService.oldModuleRepair(maintenanceOrderParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,125 @@
|
|||
package com.hcy.front.controller.order;
|
||||
|
||||
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import com.hcy.front.service.order.IRepairOrderService;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.validate.order.MaintenanceOrderParam;
|
||||
import com.hcy.front.validate.order.RepairOrderParam;
|
||||
import com.hcy.front.vo.order.RepairOrderDetailVo;
|
||||
import com.hcy.front.vo.order.RepairOrderListVo;
|
||||
import lombok.extern.java.Log;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 维修订单管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/order/repairOrder")
|
||||
public class RepairOrderController {
|
||||
|
||||
@Resource
|
||||
IRepairOrderService iRepairOrderService;
|
||||
|
||||
/**
|
||||
* 维修订单列表
|
||||
*
|
||||
* @param repairOrderParam 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(RepairOrderParam repairOrderParam) {
|
||||
return AjaxResult.success(iRepairOrderService.list(repairOrderParam));
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修订单列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param pageParam 分页参数
|
||||
* @param repairOrderParam 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/pageList")
|
||||
public Object pageList(@Validated PageParam pageParam,
|
||||
RepairOrderParam repairOrderParam) {
|
||||
PageResult<RepairOrderListVo> list = iRepairOrderService.pageList(pageParam, repairOrderParam);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修订单详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
RepairOrderDetailVo detail = iRepairOrderService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修订单新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param repairOrderParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = RepairOrderParam.create.class) @RequestBody RepairOrderParam repairOrderParam) {
|
||||
iRepairOrderService.add(repairOrderParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 抢单
|
||||
* @param repairOrderParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/grabTheOrder")
|
||||
public Object grabTheOrder(@RequestBody RepairOrderParam repairOrderParam) {
|
||||
iRepairOrderService.grabTheOrder(repairOrderParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单
|
||||
* @param repairOrderParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/receivingOrder")
|
||||
public Object receivingOrder(@RequestBody RepairOrderParam repairOrderParam) {
|
||||
iRepairOrderService.receivingOrder(repairOrderParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 退单
|
||||
* @param repairOrderParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/refundOrder")
|
||||
public Object refundOrder(@RequestBody RepairOrderParam repairOrderParam) {
|
||||
iRepairOrderService.refundOrder(repairOrderParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 故障检测
|
||||
* @param repairOrderParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/faultDetect")
|
||||
public Object faultDetect(@RequestBody RepairOrderParam repairOrderParam) {
|
||||
iRepairOrderService.faultDetect(repairOrderParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.hcy.front.service.client;
|
||||
|
||||
|
||||
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.vo.client.ClientDetailVo;
|
||||
import com.hcy.front.vo.client.ClientListVo;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 客户服务接口类
|
||||
*/
|
||||
public interface IClientService {
|
||||
|
||||
/**
|
||||
* 客户列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<ClientVo>
|
||||
*/
|
||||
PageResult<ClientListVo> list(PageParam pageParam, Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 客户详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return Client
|
||||
*/
|
||||
ClientDetailVo detail(Integer id);
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,7 +1,12 @@
|
|||
package com.hcy.front.service.client;
|
||||
|
||||
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.vo.client.EquipmentDetailVo;
|
||||
import com.hcy.front.vo.client.EquipmentListVo;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 设备管理服务接口类
|
||||
|
@ -16,5 +21,8 @@ public interface IEquipmentService {
|
|||
* @return Equipment
|
||||
*/
|
||||
EquipmentDetailVo detail(String number);
|
||||
|
||||
PageResult<EquipmentListVo> list(PageParam pageParam, Map<String, String> params);
|
||||
|
||||
EquipmentDetailVo detailById(Integer id);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,147 @@
|
|||
package com.hcy.front.service.client.impl;
|
||||
|
||||
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.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.client.Client;
|
||||
import com.hcy.common.entity.client.ClientContacts;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.client.ClientContactsMapper;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import com.hcy.front.service.client.IClientService;
|
||||
import com.hcy.front.service.region.IDevRegionService;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.vo.client.ClientDetailVo;
|
||||
import com.hcy.front.vo.client.ClientListVo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 客户实现类
|
||||
*/
|
||||
@Service
|
||||
public class ClientServiceImpl implements IClientService {
|
||||
|
||||
@Resource
|
||||
ClientMapper clientMapper;
|
||||
|
||||
@Resource
|
||||
private IDevRegionService regionService;
|
||||
|
||||
@Resource
|
||||
EquipmentMapper equipmentMapper;
|
||||
|
||||
@Resource
|
||||
ClientContactsMapper clientContactsMapper;
|
||||
|
||||
/**
|
||||
* 客户列表
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<ClientListVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<ClientListVo> list(PageParam pageParam, Map<String, String> params) {
|
||||
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);
|
||||
queryWrapper.orderByDesc("id");
|
||||
|
||||
clientMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"=:userId@user_id:long",
|
||||
"like:clientNo@client_no:str",
|
||||
"like:clientName@client_name:str",
|
||||
"=:director:str",
|
||||
"=:phone:str",
|
||||
"=:provinceId@province_id:long",
|
||||
"=:cityId@city_id:long",
|
||||
"=:districtId@district_id:long",
|
||||
"=:address:str",
|
||||
"=:clientType@client_type:int",
|
||||
"=:maintainType@maintain_type:int",
|
||||
"=:purchaseDivisor@purchase_divisor:str",
|
||||
"=:remark:str",
|
||||
"=:creatorId@creator_id:long",
|
||||
});
|
||||
|
||||
IPage<Client> iPage = clientMapper.selectPage(new Page<>(page, limit), queryWrapper);
|
||||
|
||||
List<ClientListVo> list = new LinkedList<>();
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||
for(Client item : iPage.getRecords()) {
|
||||
ClientListVo vo = new ClientListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
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<ClientContacts> clientContacts = clientContactsMapper.selectList(
|
||||
new QueryWrapper<ClientContacts>()
|
||||
.eq("client_id", item.getId())
|
||||
.eq("is_delete", GlobalConstant.NOT_DELETE));
|
||||
if(clientContacts != null){
|
||||
vo.setClientContactsList(clientContacts);
|
||||
}
|
||||
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 客户详情
|
||||
*
|
||||
* @param id 主键参数
|
||||
* @return Client
|
||||
*/
|
||||
@Override
|
||||
public ClientDetailVo detail(Integer id) {
|
||||
Client model = clientMapper.selectOne(
|
||||
new QueryWrapper<Client>()
|
||||
.eq("id", id)
|
||||
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在");
|
||||
|
||||
ClientDetailVo vo = new ClientDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||
vo.setProvince(regionMap.get(vo.getProvinceId()));
|
||||
vo.setCity(regionMap.get(vo.getCityId()));
|
||||
vo.setDistrict(regionMap.get(vo.getDistrictId()));
|
||||
|
||||
return vo;
|
||||
}
|
||||
}
|
|
@ -7,14 +7,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.client.Client;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.entity.client.EquipmentModel;
|
||||
import com.hcy.common.entity.user.User;
|
||||
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.client.EquipmentModelMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
import com.hcy.common.utils.StringUtil;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.front.service.client.IEquipmentService;
|
||||
import com.hcy.front.service.region.IDevRegionService;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.vo.client.EquipmentDetailVo;
|
||||
import com.hcy.front.vo.client.EquipmentListVo;
|
||||
import com.hcy.front.vo.client.EquipmentModelDetailVo;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
@ -34,28 +41,98 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
|||
EquipmentMapper equipmentMapper;
|
||||
|
||||
@Resource
|
||||
private IDevRegionService regionService;
|
||||
ClientMapper clientMapper;
|
||||
|
||||
@Resource
|
||||
ClientMapper clientMapper;
|
||||
IDevRegionService regionService;
|
||||
|
||||
@Resource
|
||||
EquipmentModelMapper equipmentModelMapper;
|
||||
|
||||
@Resource
|
||||
UserMapper userMapper;
|
||||
|
||||
/**
|
||||
* 设备管理列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param pageParam 分页参数
|
||||
* @param params 搜索参数
|
||||
* @return PageResult<EquipmentListVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<EquipmentListVo> list(PageParam pageParam, Map<String, String> params) {
|
||||
Integer page = pageParam.getPageNo();
|
||||
Integer limit = pageParam.getPageSize();
|
||||
|
||||
QueryWrapper<Equipment> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("is_delete", 0);
|
||||
queryWrapper.orderByDesc("id");
|
||||
|
||||
equipmentMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:number:str",
|
||||
"like:name:str",
|
||||
"=:clientId@client_id:int",
|
||||
"like:clientName@client_name:str",
|
||||
"=:deviceStatus@device_status:int",
|
||||
"datetime:createTimeStart-createTimeEnd@create_time:str",
|
||||
});
|
||||
|
||||
IPage<Equipment> iPage = equipmentMapper.selectPage(new Page<>(page, limit), queryWrapper);
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();//获取省市区
|
||||
|
||||
List<EquipmentListVo> list = new LinkedList<>();
|
||||
for(Equipment item : iPage.getRecords()) {
|
||||
EquipmentListVo vo = new EquipmentListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setProvince(regionMap.get(vo.getProvinceId()));
|
||||
vo.setCity(regionMap.get(vo.getCityId()));
|
||||
vo.setDistrict(regionMap.get(vo.getDistrictId()));
|
||||
//获取客户名称
|
||||
Client client = clientMapper.selectOne(
|
||||
new QueryWrapper<Client>()
|
||||
.eq("id", item.getClientId())
|
||||
.last("limit 1"));
|
||||
if (client != null){
|
||||
vo.setClientName(client.getClientName());
|
||||
}
|
||||
|
||||
//设置设备模块信息
|
||||
EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(vo.getId());
|
||||
EquipmentModelDetailVo equipmentModelDetailVo = new EquipmentModelDetailVo();
|
||||
if(equipmentModel != null){
|
||||
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
|
||||
|
||||
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
}
|
||||
//设置设备模块信息
|
||||
vo.setEquipmentModel(equipmentModelDetailVo);
|
||||
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备管理详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param number 主键参数
|
||||
* @param id 主键参数
|
||||
* @return Equipment
|
||||
*/
|
||||
@Override
|
||||
public EquipmentDetailVo detail(String number) {
|
||||
public EquipmentDetailVo detailById(Integer id) {
|
||||
Equipment model = equipmentMapper.selectOne(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("number", number)
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在");
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();//获取省市区
|
||||
EquipmentDetailVo vo = new EquipmentDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
vo.setProvince(regionMap.get(vo.getProvinceId()));
|
||||
|
@ -64,4 +141,29 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
|||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备管理详情 根据设备编号去查
|
||||
*
|
||||
* @author hcy
|
||||
* @param number 主键参数
|
||||
* @param number 主键参数
|
||||
* @return Equipment
|
||||
*/
|
||||
@Override
|
||||
public EquipmentDetailVo detail(String number) {
|
||||
Equipment model = equipmentMapper.selectOne(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("number", number)
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在");
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();//获取省市区
|
||||
EquipmentDetailVo vo = new EquipmentDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
vo.setProvince(regionMap.get(vo.getProvinceId()));
|
||||
vo.setCity(regionMap.get(vo.getCityId()));
|
||||
vo.setDistrict(regionMap.get(vo.getDistrictId()));
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
package com.hcy.front.service.order;
|
||||
|
||||
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.validate.order.RepairOrderParam;
|
||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||
import com.hcy.front.vo.order.RepairOrderDetailVo;
|
||||
import com.hcy.front.vo.order.RepairOrderListVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 维修订单服务接口类
|
||||
*/
|
||||
public interface IRepairOrderService {
|
||||
|
||||
/**
|
||||
* 维修订单列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param pageParam 分页参数
|
||||
* @param repairOrderParam 搜索参数
|
||||
* @return PageResult<RepairOrderVo>
|
||||
*/
|
||||
PageResult<RepairOrderListVo> pageList(PageParam pageParam, RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 维修订单详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
* @return RepairOrder
|
||||
*/
|
||||
RepairOrderDetailVo detail(Integer id);
|
||||
|
||||
/**
|
||||
* 维修订单新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param repairOrderParam 参数
|
||||
*/
|
||||
void add(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 抢单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void grabTheOrder(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 接单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void receivingOrder(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 退单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void refundOrder(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 故障检测
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void faultDetect(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 工单池
|
||||
* @param repairOrderParam
|
||||
* @return
|
||||
*/
|
||||
List<RepairOrderListVo> list(RepairOrderParam repairOrderParam);
|
||||
}
|
|
@ -0,0 +1,494 @@
|
|||
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.core.metadata.IPage;
|
||||
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.order.MaintenanceOrderDto;
|
||||
import com.hcy.common.dto.order.OrderSparePart;
|
||||
import com.hcy.common.dto.order.RepairOrderDto;
|
||||
import com.hcy.common.entity.address.UserAddress;
|
||||
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.RepairOrder;
|
||||
import com.hcy.common.entity.plant.Plant;
|
||||
import com.hcy.common.entity.sparePart.SparePart;
|
||||
import com.hcy.common.entity.system.SystemAuthAdmin;
|
||||
import com.hcy.common.entity.user.User;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.OrderStateEnum;
|
||||
import com.hcy.common.enums.order.RepairOrderStatusEnum;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.address.UserAddressMapper;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import com.hcy.common.mapper.order.OrderSparePartMapper;
|
||||
import com.hcy.common.mapper.order.RepairOrderMapper;
|
||||
import com.hcy.common.mapper.plant.PlantMapper;
|
||||
import com.hcy.common.mapper.sparePart.SparePartMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
import com.hcy.common.utils.ToolsUtil;
|
||||
import com.hcy.front.FrontThreadLocal;
|
||||
import com.hcy.front.service.order.IRepairOrderService;
|
||||
import com.hcy.front.service.region.IDevRegionService;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.validate.order.MaintenanceOrderParam;
|
||||
import com.hcy.front.validate.order.RepairOrderParam;
|
||||
import com.hcy.front.validate.warehouse.SparePartParam;
|
||||
import com.hcy.front.vo.address.UserAddressListVo;
|
||||
import com.hcy.front.vo.client.EquipmentListVo;
|
||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||
import com.hcy.front.vo.order.RepairOrderDetailVo;
|
||||
import com.hcy.front.vo.order.RepairOrderListVo;
|
||||
import com.sun.xml.internal.ws.resources.AddressingMessages;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 维修订单实现类
|
||||
*/
|
||||
@Service
|
||||
public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||
|
||||
@Resource
|
||||
RepairOrderMapper repairOrderMapper;
|
||||
|
||||
@Resource
|
||||
SystemAuthAdminMapper systemAuthAdminMapper;
|
||||
|
||||
@Resource
|
||||
PlantMapper plantMapper;
|
||||
|
||||
@Resource
|
||||
UserMapper userMapper;
|
||||
|
||||
@Resource
|
||||
ClientMapper clientMapper;
|
||||
|
||||
@Resource
|
||||
private IDevRegionService regionService;
|
||||
|
||||
@Resource
|
||||
UserAddressMapper userAddressMapper;
|
||||
|
||||
@Resource
|
||||
EquipmentMapper equipmentMapper;
|
||||
|
||||
@Resource
|
||||
SparePartMapper sparePartMapper;
|
||||
|
||||
@Resource
|
||||
OrderSparePartMapper orderSparePartMapper;
|
||||
|
||||
private final DecimalFormat df = new DecimalFormat ("#.#");
|
||||
|
||||
/**
|
||||
* 工单池
|
||||
*
|
||||
* @param repairOrderParam
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<RepairOrderListVo> list(RepairOrderParam repairOrderParam) {
|
||||
RepairOrderDto repairOrderDto = new RepairOrderDto();
|
||||
BeanUtils.copyProperties(repairOrderParam,repairOrderDto);
|
||||
//默认查询订单状态
|
||||
|
||||
List<RepairOrderDto> repairOrderDtoList = repairOrderMapper.list(repairOrderDto);
|
||||
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminByUserId(FrontThreadLocal.getUserId());
|
||||
|
||||
List<RepairOrderListVo> returnData = new LinkedList<>();
|
||||
for (RepairOrderDto item : repairOrderDtoList) {
|
||||
|
||||
if(repairOrderParam.getQueryType() == MaintenanceOrderStatusEnum.NEAREST_TO_ME.getStatus()){
|
||||
//判断抢单距离大于订单距离则返回订单
|
||||
double distance = ToolsUtil.getDistance(item.getLongitude(), item.getLatitude()
|
||||
, repairOrderParam.getLongitude(), repairOrderParam.getLatitude());
|
||||
|
||||
if(item.getReceiverType() == OrderStateEnum.REGIONAL_DISPATCH.getStatus()){
|
||||
if(item.getEquipmentProvinceId().equals(systemAuthAdmin.getProvinceId()) &&
|
||||
item.getEquipmentCityId().equals(systemAuthAdmin.getCityId()) &&
|
||||
item.getEquipmentDistrictId().equals(systemAuthAdmin.getDistrictId()) ){
|
||||
|
||||
// 计算距离
|
||||
RepairOrderListVo vo = new RepairOrderListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setDistance(distance);
|
||||
returnData.add(vo);
|
||||
}
|
||||
}else{
|
||||
if(item.getOrderDistance().compareTo(BigDecimal.valueOf((distance / 1000))) >= 0){
|
||||
// 计算距离
|
||||
RepairOrderListVo vo = new RepairOrderListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setDistance(distance);
|
||||
returnData.add(vo);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
RepairOrderListVo vo = new RepairOrderListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
returnData.add(vo);
|
||||
}
|
||||
}
|
||||
|
||||
if(repairOrderParam.getQueryType() == MaintenanceOrderStatusEnum.NEAREST_TO_ME.getStatus()){
|
||||
//按距离排序
|
||||
returnData = returnData.stream()
|
||||
.sorted(Comparator.comparing(RepairOrderListVo::getDistance))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
//将米数转换为km
|
||||
for (RepairOrderListVo repairOrderListVo : returnData) {
|
||||
if(repairOrderListVo.getDistance() != null){
|
||||
double distance = repairOrderListVo.getDistance();
|
||||
if(distance < 1000){
|
||||
repairOrderListVo.setPracticalDistance(df.format(distance) + "米");
|
||||
}else{
|
||||
double km = distance / 1000;
|
||||
repairOrderListVo.setPracticalDistance(df.format(km) + "km");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修订单列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param pageParam 分页参数
|
||||
* @param repairOrderParam 搜索参数
|
||||
* @return PageResult<RepairOrderListVo>
|
||||
*/
|
||||
@Override
|
||||
public PageResult<RepairOrderListVo> pageList(PageParam pageParam, RepairOrderParam repairOrderParam) {
|
||||
Integer page = pageParam.getPageNo();
|
||||
Integer limit = pageParam.getPageSize();
|
||||
|
||||
RepairOrderDto repairOrderDto = new RepairOrderDto();
|
||||
BeanUtils.copyProperties(repairOrderParam,repairOrderDto);
|
||||
|
||||
if(repairOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){
|
||||
repairOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue());
|
||||
if(StringUtils.isEmpty(repairOrderParam.getOrderStatusIds())){
|
||||
repairOrderDto.setOrderStatusIds("1,2,7,8");
|
||||
}
|
||||
}else{
|
||||
if(StringUtils.isEmpty(repairOrderParam.getOrderStatusIds())){
|
||||
repairOrderDto.setOrderStatusIds("0,1,2,7,8");
|
||||
}
|
||||
repairOrderDto.setClientId(repairOrderDto.getClientId());
|
||||
}
|
||||
|
||||
IPage<RepairOrderDto> iPage = repairOrderMapper.pageList(new Page<>(page, limit), repairOrderDto);
|
||||
|
||||
List<RepairOrderListVo> list = new LinkedList<>();
|
||||
for(RepairOrderDto item : iPage.getRecords()) {
|
||||
RepairOrderListVo vo = new RepairOrderListVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
//管辖工厂
|
||||
SystemAuthAdmin authAdmin = systemAuthAdminMapper.selectOne(
|
||||
new QueryWrapper<SystemAuthAdmin>()
|
||||
.eq("user_id", vo.getCreatorId()));
|
||||
if(authAdmin != null){
|
||||
Plant plant = plantMapper.selectOne(
|
||||
new QueryWrapper<Plant>()
|
||||
.eq("id", authAdmin.getPlantId()));
|
||||
if(plant != null){
|
||||
vo.setPlantId(plant.getId());
|
||||
vo.setPlantName(plant.getName());
|
||||
}
|
||||
}
|
||||
|
||||
vo.setCreateTime(item.getCreateTime());
|
||||
vo.setUpdateTime(item.getUpdateTime());
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修订单详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键参数
|
||||
* @return RepairOrder
|
||||
*/
|
||||
@Override
|
||||
public RepairOrderDetailVo detail(Integer id) {
|
||||
RepairOrder model = repairOrderMapper.selectOne(
|
||||
new QueryWrapper<RepairOrder>()
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在");
|
||||
|
||||
RepairOrderDetailVo vo = new RepairOrderDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
vo.setUpdateTime(model.getUpdateTime());
|
||||
//客户名称
|
||||
Client clientName = clientMapper.selectOne(
|
||||
new QueryWrapper<Client>()
|
||||
.eq("id", model.getClientId()));
|
||||
if(clientName != null){
|
||||
vo.setClientName(clientName.getClientName());
|
||||
}
|
||||
//创建人名称
|
||||
User creatorName = userMapper.selectOne(
|
||||
new QueryWrapper<User>()
|
||||
.eq("id", model.getCreatorId()));
|
||||
if(creatorName != null){
|
||||
vo.setCreatorName(creatorName.getUsername());
|
||||
}
|
||||
//接单人名称
|
||||
User user = userMapper.selectOne(
|
||||
new QueryWrapper<User>()
|
||||
.eq("id", model.getReceiverId()));
|
||||
if(user != null){
|
||||
vo.setReceiverName(user.getUsername());
|
||||
}
|
||||
//管辖工厂
|
||||
SystemAuthAdmin authAdmin = systemAuthAdminMapper.selectOne(
|
||||
new QueryWrapper<SystemAuthAdmin>()
|
||||
.eq("user_id", vo.getCreatorId()));
|
||||
if(authAdmin != null){
|
||||
Plant plant = plantMapper.selectOne(
|
||||
new QueryWrapper<Plant>()
|
||||
.eq("id", authAdmin.getPlantId()));
|
||||
if(plant != null){
|
||||
vo.setPlantId(plant.getId());
|
||||
vo.setPlantName(plant.getName());
|
||||
}
|
||||
}
|
||||
//回寄地址
|
||||
UserAddress userAddress = userAddressMapper.selectOne(
|
||||
new QueryWrapper<UserAddress>()
|
||||
.eq("id", model.getAddressId()));
|
||||
UserAddressListVo userAddressListVo = new UserAddressListVo();
|
||||
BeanUtils.copyProperties(userAddress, userAddressListVo);
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||
userAddressListVo.setProvince(regionMap.get(userAddressListVo.getProvinceId()));
|
||||
userAddressListVo.setCity(regionMap.get(userAddressListVo.getCityId()));
|
||||
userAddressListVo.setDistrict(regionMap.get(userAddressListVo.getDistrictId()));
|
||||
if(userAddress != null){
|
||||
vo.setAddress(userAddressListVo);
|
||||
}
|
||||
//设备信息
|
||||
Equipment equipment = equipmentMapper.selectOne(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("id", model.getEquipmentId()));
|
||||
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);
|
||||
if(equipment != null){
|
||||
vo.setEquipment(equipmentListVo);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修订单新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param repairOrderParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void add(RepairOrderParam repairOrderParam) {
|
||||
RepairOrder model = new RepairOrder();
|
||||
model.setOrderNo(getOrderNo()); //工单编号
|
||||
|
||||
model.setOrderStatus(RepairOrderStatusEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||
model.setOrderSource(OrderStateEnum.MAINTENANCE_SUPERVISOR_CREATION.getStatus()); //订单来源 5-维修主管创建
|
||||
model.setRepairWorkOrderFlow(OrderStateEnum.WORK_ORDER_TANK.getStatus()); // 工单去向 0=工单池 1=检修员
|
||||
model.setReceiverType(OrderStateEnum.REGIONAL_DISPATCH.getStatus()); // 接单类型 0-区域派单;1-距离派单
|
||||
|
||||
model.setClientId(repairOrderParam.getClientId()); // 客户id
|
||||
model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id
|
||||
model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述
|
||||
model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号
|
||||
model.setBrand(repairOrderParam.getBrand()); // 品牌
|
||||
model.setRemark(repairOrderParam.getRemark()); // 备注
|
||||
|
||||
model.setMaintenanceOrderId(repairOrderParam.getMaintenanceOrderId()); // 检修单id
|
||||
model.setPriorityId(repairOrderParam.getPriorityId()); // 优先级 0-普通 1-加急
|
||||
model.setLogisticsMode(repairOrderParam.getLogisticsMode()); // 物流方式 0-物流快递 1=自领带回
|
||||
model.setExpressName(repairOrderParam.getExpressName()); // 快递名称
|
||||
model.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄(0=是 1=否)
|
||||
model.setAddressId(repairOrderParam.getAddressId()); // 回寄地址
|
||||
model.setSiteImg(repairOrderParam.getSiteImg()); // 现场照片
|
||||
|
||||
// 获取当前的用户
|
||||
model.setCreatorId(FrontThreadLocal.getUserId().longValue()); // 创建人id
|
||||
model.setCreateTime(new Date()); //创建时间
|
||||
|
||||
repairOrderMapper.insert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 抢单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
@Override
|
||||
public void grabTheOrder(RepairOrderParam repairOrderParam) {
|
||||
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||
Assert.notNull(repairOrder, "数据不存在");
|
||||
|
||||
if(repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAITING_LIST.getStatus()
|
||||
&& repairOrder.getReceiverId() == null){
|
||||
repairOrder.setReceiverId(FrontThreadLocal.getUserId().longValue());
|
||||
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus());
|
||||
repairOrder.setReceiverTime(new Date());
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
}else{
|
||||
throw new OperateException("订单已被其他人抢走");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
@Override
|
||||
public void receivingOrder(RepairOrderParam repairOrderParam) {
|
||||
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||
Assert.notNull(repairOrder, "数据不存在");
|
||||
|
||||
if(repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
|
||||
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus());
|
||||
repairOrder.setReceiverTime(new Date());
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
}else{
|
||||
throw new OperateException("订单状态不正确");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 退单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
@Override
|
||||
public void refundOrder(RepairOrderParam repairOrderParam) {
|
||||
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||
Assert.notNull(repairOrder, "数据不存在");
|
||||
Assert.notNull(repairOrderParam.getCancelCause(), "退单原因不可为空");
|
||||
|
||||
repairOrder.setCancelOrderTime(new Date()); //取消时间
|
||||
repairOrder.setCancelCause(repairOrderParam.getCancelCause()); //取消原因
|
||||
|
||||
if(repairOrderParam.getIsClient() == MaintenanceOrderStatusEnum.CLIENT.getStatus()){
|
||||
if(repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAITING_LIST.getStatus() ||
|
||||
repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
|
||||
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CLOSED.getStatus());
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
}else{
|
||||
throw new OperateException("当前订单状态不可退单");
|
||||
}
|
||||
}else {
|
||||
if(repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.CHECKING.getStatus() ||
|
||||
repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
|
||||
|
||||
if(repairOrder.getRepairWorkOrderFlow() == OrderStateEnum.WORK_ORDER_TANK.getStatus()){
|
||||
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAITING_LIST.getStatus());
|
||||
repairOrder.setReceiverId(null);
|
||||
repairOrder.setReceiverTime(null);
|
||||
}else{
|
||||
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHARGEBACK.getStatus());
|
||||
}
|
||||
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
}else{
|
||||
throw new OperateException("当前订单状态不可退单");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 故障检测
|
||||
*
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
@Override
|
||||
public void faultDetect(RepairOrderParam repairOrderParam) {
|
||||
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||
Assert.notNull(repairOrder, "数据不存在");
|
||||
|
||||
for (SparePartParam item : repairOrderParam.getSparePartParams()) {
|
||||
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
|
||||
|
||||
OrderSparePart orderSparePart = new OrderSparePart();
|
||||
BeanUtils.copyProperties(sparePart, orderSparePart);
|
||||
|
||||
orderSparePart.setId(null);
|
||||
orderSparePart.setRepairOrderId(repairOrder.getId());
|
||||
orderSparePart.setSparePartsId(item.getId());
|
||||
orderSparePart.setWarehouseId(sparePart.getWarehouseId());
|
||||
orderSparePart.setQuantity(item.getQuantity());
|
||||
orderSparePartMapper.insert(orderSparePart);
|
||||
}
|
||||
repairOrder.setFaultId(repairOrderParam.getFaultId()); //故障原因id
|
||||
|
||||
repairOrder.setPreMaintenanceImg(repairOrderParam.getPreMaintenanceImg()); // 维修前图片
|
||||
repairOrder.setFaultPointImg(repairOrderParam.getFaultPointImg()); //故障点图片
|
||||
repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废(0=是,1=否)
|
||||
repairOrder.setScrapFaultId(repairOrderParam.getScrapFaultId()); // 报废类型id
|
||||
repairOrder.setScrapAddress(repairOrderParam.getScrapAddress()); // 报废地址
|
||||
repairOrder.setScrapExplain(repairOrderParam.getScrapExplain()); // 报废说明
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 工单编号
|
||||
* @return
|
||||
*/
|
||||
private String getOrderNo() {
|
||||
//获取当前日期并将其进行格式化
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
|
||||
String formatDate = simpleDateFormat.format(new Date());
|
||||
|
||||
StringBuilder currentOrderNo = new StringBuilder(formatDate + "000001");
|
||||
RepairOrder repairOrder = repairOrderMapper.selectOne(new LambdaQueryWrapper<RepairOrder>()
|
||||
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.like(RepairOrder::getOrderNo, formatDate)
|
||||
.orderByDesc(RepairOrder::getOrderNo)
|
||||
.last("limit 1"));
|
||||
//当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据
|
||||
if (repairOrder == null) {
|
||||
return currentOrderNo.toString();
|
||||
} else {
|
||||
int lastOrderNo = Integer.parseInt(repairOrder.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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
package com.hcy.front.validate.client;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import javax.validation.constraints.DecimalMin;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 客户参数
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
public class ClientParam implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public interface create{}
|
||||
public interface update{}
|
||||
public interface delete{}
|
||||
|
||||
private Long id;
|
||||
|
||||
private Long userId;
|
||||
|
||||
@NotNull(message = "clientNo参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "clientNo参数值不能少于0", groups = {create.class, update.class})
|
||||
private String clientNo;
|
||||
|
||||
@NotNull(message = "clientName参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 50, message = "clientName参数不能超出50个字符", groups = {create.class, update.class})
|
||||
private String clientName;
|
||||
|
||||
@NotNull(message = "director参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 50, message = "director参数不能超出50个字符", groups = {create.class, update.class})
|
||||
private String director;
|
||||
|
||||
private String directorStaffId;
|
||||
|
||||
@NotNull(message = "phone参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 11, message = "phone参数不能超出11个字符", groups = {create.class, update.class})
|
||||
private String phone;
|
||||
|
||||
@NotNull(message = "provinceId参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "provinceId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long provinceId;
|
||||
|
||||
@NotNull(message = "cityId参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "cityId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long cityId;
|
||||
|
||||
@NotNull(message = "districtId参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "districtId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long districtId;
|
||||
|
||||
@NotNull(message = "address参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 255, message = "address参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String address;
|
||||
|
||||
@NotNull(message = "clientType参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "clientType参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer clientType;
|
||||
|
||||
@NotNull(message = "maintainType参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "maintainType参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer maintainType;
|
||||
|
||||
@NotNull(message = "purchaseDivisor参数缺失", groups = {create.class, update.class})
|
||||
private BigDecimal purchaseDivisor;
|
||||
|
||||
@NotNull(message = "pointMaintainDivisor参数缺失", groups = {create.class, update.class})
|
||||
private BigDecimal pointMaintainDivisor;
|
||||
|
||||
@NotNull(message = "partMaintainDivisor参数缺失", groups = {create.class, update.class})
|
||||
private BigDecimal partMaintainDivisor;
|
||||
|
||||
@NotNull(message = "remark参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 250, message = "remark参数不能超出250个字符", groups = {create.class, update.class})
|
||||
private String remark;
|
||||
|
||||
private Long creatorId;
|
||||
private String shortName; // 客户简称
|
||||
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
package com.hcy.front.validate.client;
|
||||
|
||||
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.util.List;
|
||||
|
||||
/**
|
||||
* 设备管理参数
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
public class EquipmentParam implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public interface create{}
|
||||
public interface update{}
|
||||
public interface delete{}
|
||||
|
||||
private Long id;
|
||||
|
||||
@DecimalMin(value = "0", message = "clientId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long clientId;
|
||||
|
||||
@DecimalMin(value = "0", message = "moduleId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long moduleId;
|
||||
|
||||
private String number;
|
||||
|
||||
@Length(max = 255, message = "name参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String name;
|
||||
|
||||
@Length(max = 255, message = "model参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String model;
|
||||
|
||||
@Length(max = 255, message = "manufacturers参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String manufacturers;
|
||||
|
||||
@Length(max = 255, message = "specification参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String specification;
|
||||
|
||||
@DecimalMin(value = "0", message = "deviceStatus参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer deviceStatus;
|
||||
|
||||
@Length(max = 24, message = "longitude参数不能超出24个字符", groups = {create.class, update.class})
|
||||
private String longitude;
|
||||
|
||||
@Length(max = 24, message = "latitude参数不能超出24个字符", groups = {create.class, update.class})
|
||||
private String latitude;
|
||||
|
||||
@DecimalMin(value = "0", message = "provinceId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long provinceId;
|
||||
|
||||
@DecimalMin(value = "0", message = "districtId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long districtId;
|
||||
|
||||
@DecimalMin(value = "0", message = "cityId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long cityId;
|
||||
|
||||
@Length(max = 255, message = "detailedAddress参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String detailedAddress;
|
||||
|
||||
@DecimalMin(value = "0", message = "inspectionCycle参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer inspectionCycle;
|
||||
|
||||
@DecimalMin(value = "0", message = "dailyAudit参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer dailyAudit;
|
||||
|
||||
@Length(max = 255, message = "deviceCode参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String deviceCode;
|
||||
|
||||
private List<Integer> ids; //批量停用
|
||||
private String clientName; // 客户名称
|
||||
}
|
|
@ -0,0 +1,124 @@
|
|||
package com.hcy.front.validate.order;
|
||||
|
||||
import com.hcy.front.validate.warehouse.SparePartParam;
|
||||
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;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 维修订单参数
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
public class RepairOrderParam implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public interface create{}
|
||||
public interface update{}
|
||||
public interface delete{}
|
||||
|
||||
private Long id;
|
||||
|
||||
@Length(max = 50, message = "orderNo参数不能超出50个字符", groups = {create.class, update.class})
|
||||
private String orderNo;
|
||||
|
||||
@DecimalMin(value = "0", message = "orderSource参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer orderSource;
|
||||
|
||||
@DecimalMin(value = "0", message = "orderStatus参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer orderStatus;
|
||||
|
||||
@DecimalMin(value = "0", message = "clientId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long clientId;
|
||||
|
||||
@DecimalMin(value = "0", message = "equipmentId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long equipmentId;
|
||||
|
||||
@Length(max = 32, message = "clientName参数不能超出32个字符", groups = {create.class, update.class})
|
||||
private String clientName;
|
||||
|
||||
@Length(max = 32, message = "clientContacts参数不能超出32个字符", groups = {create.class, update.class})
|
||||
private String clientContacts;
|
||||
|
||||
@Length(max = 32, message = "clientPhone参数不能超出32个字符", groups = {create.class, update.class})
|
||||
private String clientPhone;
|
||||
|
||||
@Length(max = 250, message = "faultDescription参数不能超出250个字符", groups = {create.class, update.class})
|
||||
private String faultDescription;
|
||||
|
||||
@Length(max = 32, message = "moduleNumber参数不能超出32个字符", groups = {create.class, update.class})
|
||||
private String moduleNumber;
|
||||
|
||||
@Length(max = 32, message = "brand参数不能超出32个字符", groups = {create.class, update.class})
|
||||
private String brand;
|
||||
|
||||
@Length(max = 250, message = "remark参数不能超出250个字符", groups = {create.class, update.class})
|
||||
private String remark;
|
||||
|
||||
@DecimalMin(value = "0", message = "creatorId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long creatorId;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private Date updateTime;
|
||||
|
||||
@DecimalMin(value = "0", message = "maintenanceOrderId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long maintenanceOrderId;
|
||||
|
||||
@DecimalMin(value = "0", message = "priorityId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer priorityId;
|
||||
|
||||
@Length(max = 50, message = "expressName参数不能超出50个字符", groups = {create.class, update.class})
|
||||
private String expressName;
|
||||
|
||||
@DecimalMin(value = "0", message = "returnOrNot参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer returnOrNot;
|
||||
|
||||
@DecimalMin(value = "0", message = "addressId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long addressId;
|
||||
|
||||
@Length(max = 255, message = "siteImg参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String siteImg;
|
||||
private String equipmentName; // 设备名称
|
||||
private String moduleImg; // 模块图片
|
||||
private Integer logisticsMode; // 物流方式 0-物流快递 1=自领带回
|
||||
private String creatorName; // 创建人名称
|
||||
private String receiverName; //接单人名称
|
||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||
private BigDecimal orderDistance; // 订单距离
|
||||
private Long receiverId; // 接单人id
|
||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||
private String likeWork; //关键字
|
||||
private String orderStatusIds; //订单状态ids
|
||||
private Double longitude; // 经度
|
||||
private Double latitude; // 纬度
|
||||
private Integer queryType; // 查询类型 0-离我最近 1-时间优先
|
||||
private Long faultId; // 故障id
|
||||
|
||||
private Date cancelOrderTime; // 取消订单时间
|
||||
private String cancelCause; // 取消原因
|
||||
|
||||
//服务报价列表
|
||||
private List<SparePartParam> sparePartParams;
|
||||
|
||||
private Integer isClient; //是否客户 0-客户端 1-检修员端
|
||||
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
||||
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
||||
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门
|
||||
|
||||
private String preMaintenanceImg; // 维修前照片
|
||||
private String faultPointImg; // 故障点照片
|
||||
private Integer scrapOrNot; // 是否报废(0=是,1=否)
|
||||
private Long scrapFaultId; // 报废类型id
|
||||
private String scrapAddress; // 报废地址
|
||||
private String scrapExplain; // 报废说明
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.hcy.front.vo.client;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* ClientVo
|
||||
*/
|
||||
@Data
|
||||
public class ClientDetailVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id; // id
|
||||
private Long userId; // 用户id
|
||||
private String clientNo; // 客户编号
|
||||
private String clientName; // 客户名称
|
||||
private String director; // 负责人
|
||||
private String directorStaffId; // 负责员工id
|
||||
private String phone; // 联系电话
|
||||
private Long provinceId; // 省id
|
||||
private Long cityId; // 市id
|
||||
private Long districtId; // 区id
|
||||
private String province; // 省
|
||||
private String city; // 市
|
||||
private String district; // 区
|
||||
private String address; // 详细地址
|
||||
private Integer clientType; // 桩点维修类型 0-全包 1-半包
|
||||
private Integer maintainType; // 模块维修类型 0-全包 1-半包
|
||||
private BigDecimal purchaseDivisor; // 配件采购价格因子
|
||||
private BigDecimal pointMaintainDivisor; // 桩点维修价格因子
|
||||
private BigDecimal partMaintainDivisor; // 配件维修价格因子
|
||||
private String remark; // 备注
|
||||
private Long creatorId; // 创建人id
|
||||
private String shortName; // 客户简称
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package com.hcy.front.vo.client;
|
||||
|
||||
import com.hcy.common.entity.client.ClientContacts;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* ClientVo
|
||||
*/
|
||||
@Data
|
||||
public class ClientListVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id; // id
|
||||
private Long userId; // 用户id
|
||||
private String clientNo; // 客户编号
|
||||
private String clientName; // 客户名称
|
||||
private String director; // 负责人
|
||||
private String directorStaffId; // 负责员工id
|
||||
private String phone; // 联系电话
|
||||
private Long provinceId; // 省id
|
||||
private Long cityId; // 市id
|
||||
private Long districtId; // 区id
|
||||
private String province; // 省
|
||||
private String city; // 市
|
||||
private String district; // 区
|
||||
private String address; // 详细地址
|
||||
private Integer clientType; // 桩点维修类型 0-全包 1-半包
|
||||
private Integer maintainType; // 模块维修类型 0-全包 1-半包
|
||||
private BigDecimal purchaseDivisor; // 配件采购价格因子
|
||||
private BigDecimal pointMaintainDivisor; // 桩点维修价格因子
|
||||
private BigDecimal partMaintainDivisor; // 配件维修价格因子
|
||||
private String remark; // 备注
|
||||
private Long creatorId; // 创建人id
|
||||
private Date createTime; // 创建时间
|
||||
private Date updateTime; // 更新时间
|
||||
private List<Equipment> equipmentList; //设备列表
|
||||
private String shortName; // 客户简称
|
||||
private List<ClientContacts> clientContactsList; //联系人列表
|
||||
}
|
|
@ -35,4 +35,7 @@ public class EquipmentListVo implements Serializable {
|
|||
private String deviceCode; // 设备码
|
||||
private String createTime; // 创建时间
|
||||
private String clientName; // 客户名称
|
||||
|
||||
private EquipmentModelDetailVo equipmentModel; //设备模块信息
|
||||
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ public class OrderSparePartListVo implements Serializable {
|
|||
|
||||
private Long id; // id
|
||||
private Long maintenanceOrderId; //检修单id
|
||||
private Long repairOrderId; //维修单id
|
||||
private Long sparePartsId; // 备件id
|
||||
private String sparePartsCode; // 备件编码
|
||||
private String sparePartsName; // 备件名称
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
package com.hcy.front.vo.order;
|
||||
|
||||
import com.hcy.common.entity.address.UserAddress;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.front.vo.address.UserAddressListVo;
|
||||
import com.hcy.front.vo.client.EquipmentListVo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* RepairOrderVo
|
||||
*/
|
||||
@Data
|
||||
public class RepairOrderDetailVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id; // 主键id
|
||||
private String orderNo; // 订单编号
|
||||
private Integer orderSource; // 订单来源 0-客户上报;1-系统创建;2-维修员创建;3-检修员创建;4-客服创建;5-维修主管创建
|
||||
private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||
private Long clientId; // 客户id
|
||||
private Long equipmentId; // 设备id
|
||||
private String clientName; // 客户名称
|
||||
private String clientContacts; // 客户联系人
|
||||
private String clientPhone; // 客户联系电话
|
||||
private Long faultId; // 故障id
|
||||
private String faultDescription; // 故障描述
|
||||
private String moduleNumber; // 模块号
|
||||
private String brand; // 品牌
|
||||
private Long receiverId; // 接单人id
|
||||
private String receiverName; //接单人名称
|
||||
private Date receiverTime; // 接单时间
|
||||
private String remark; // 备注
|
||||
private Long creatorId; // 创建人id
|
||||
private String creatorName; // 创建人名称
|
||||
private Date createTime; // 创建时间
|
||||
private Date updateTime; // 更新时间
|
||||
private Long maintenanceOrderId; // 检修单id
|
||||
private Integer priorityId; // 优先级 0-普通 1-加急
|
||||
private Integer logisticsMode; // 物流方式 0-物流快递 1=自领带回
|
||||
private String expressName; // 快递名称
|
||||
private Integer returnOrNot; // 是否回寄(0=是 1=否)
|
||||
private Long addressId; // 回寄地址
|
||||
private String siteImg; // 现场照片
|
||||
private Long plantId; // 管辖工厂
|
||||
private String plantName; //管辖工厂名
|
||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||
private BigDecimal orderDistance; // 订单距离
|
||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||
private UserAddressListVo address; //地址信息
|
||||
private EquipmentListVo equipment; //设备信息
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package com.hcy.front.vo.order;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* RepairOrderVo
|
||||
*/
|
||||
@Data
|
||||
public class RepairOrderListVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id; // 主键id
|
||||
private String orderNo; // 订单编号
|
||||
private Integer orderSource; // 订单来源 0-客户上报;1-系统创建;2-维修员创建;3-检修员创建;4-客服创建;5-维修主管创建
|
||||
private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||
private Long clientId; // 客户id
|
||||
private Long equipmentId; // 设备id
|
||||
private String clientName; // 客户名称
|
||||
private String clientContacts; // 客户联系人
|
||||
private String clientPhone; // 客户联系电话
|
||||
private Long faultId; // 故障id
|
||||
private String faultDescription; // 故障描述
|
||||
private String moduleNumber; // 模块号
|
||||
private String brand; // 品牌
|
||||
private Long receiverId; // 接单人id
|
||||
private String receiverName; //接单人名称
|
||||
private Date receiverTime; // 接单时间
|
||||
private String remark; // 备注
|
||||
private Long creatorId; // 创建人id
|
||||
private String creatorName; // 创建人名称
|
||||
private Date createTime; // 创建时间
|
||||
private Date updateTime; // 更新时间
|
||||
private Long maintenanceOrderId; // 检修单id
|
||||
private Long priorityId; // 优先级 0-普通 1-加急
|
||||
private Integer logisticsMode; // 物流方式 0-物流快递 1=自领带回
|
||||
private String expressName; // 快递名称
|
||||
private Integer returnOrNot; // 是否回寄(0=是 1=否)
|
||||
private Long addressId; // 回寄地址
|
||||
private String siteImg; // 现场照片
|
||||
private Long plantId; // 管辖工厂
|
||||
private String plantName; //管辖工厂名
|
||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
||||
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
||||
private Double distance; //距离
|
||||
private String practicalDistance; //实际距离
|
||||
|
||||
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
|
||||
|
||||
private String faultName; //故障名称
|
||||
private String equipmentNo; //设备编号
|
||||
private String equipmentName; //设备名称
|
||||
private String detailedAddress; //设备详情地址
|
||||
|
||||
}
|
Loading…
Reference in New Issue