【admin&front】新增&优化# 1、新增小程序-检修单、维修单、巡检单状态数量统计 2、优化小程序维修单故障检测 3、优化数据大屏维修单列表、巡检单列表、设备列表、总工单数、今日工单数 4、新增小程序维修单确认服务报价、确认报废、重新检测、修改服务报价、退回维修员、上传维修中、维修后照片、填写报废单、填写回单
parent
64a8aced73
commit
073ae3bb1b
|
|
@ -2,6 +2,7 @@ package com.hcy.admin.controller.order;
|
||||||
|
|
||||||
import com.hcy.admin.config.aop.Log;
|
import com.hcy.admin.config.aop.Log;
|
||||||
import com.hcy.admin.service.order.IRepairOrderService;
|
import com.hcy.admin.service.order.IRepairOrderService;
|
||||||
|
import com.hcy.admin.validate.order.MaintenanceOrderParam;
|
||||||
import com.hcy.admin.validate.order.RepairOrderParam;
|
import com.hcy.admin.validate.order.RepairOrderParam;
|
||||||
import com.hcy.admin.validate.common.PageParam;
|
import com.hcy.admin.validate.common.PageParam;
|
||||||
import com.hcy.admin.validate.order.RoutingInspectionOrderParam;
|
import com.hcy.admin.validate.order.RoutingInspectionOrderParam;
|
||||||
|
|
@ -138,4 +139,29 @@ public class RepairOrderController {
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新服务报价
|
||||||
|
*
|
||||||
|
* @param repairOrderParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@Log(title = "更新服务报价")
|
||||||
|
@PostMapping("/updateServiceOfferPrice")
|
||||||
|
public Object updateServiceOfferPrice(@RequestBody RepairOrderParam repairOrderParam) {
|
||||||
|
iRepairOrderService.updateServiceOfferPrice(repairOrderParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退回维修员
|
||||||
|
*
|
||||||
|
* @param repairOrderParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@Log(title = "退回检修")
|
||||||
|
@PostMapping("/returnRepair")
|
||||||
|
public Object returnRepair(@RequestBody RepairOrderParam repairOrderParam) {
|
||||||
|
iRepairOrderService.returnRepair(repairOrderParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -386,6 +386,12 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
||||||
vo.setCity(regionMap.get(vo.getCityId()));
|
vo.setCity(regionMap.get(vo.getCityId()));
|
||||||
vo.setDistrict(regionMap.get(vo.getDistrictId()));
|
vo.setDistrict(regionMap.get(vo.getDistrictId()));
|
||||||
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
|
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
|
||||||
|
//客户名称/客户简称
|
||||||
|
Client client = clientMapper.selectOne(
|
||||||
|
new LambdaQueryWrapper<Client>()
|
||||||
|
.eq(Client::getId, item.getClientId()));
|
||||||
|
vo.setClientName(client.getClientName());
|
||||||
|
vo.setShortName(client.getShortName());
|
||||||
list.add(vo);
|
list.add(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.hcy.admin.service.largeDataScreen.impl;
|
package com.hcy.admin.service.largeDataScreen.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.hcy.admin.service.largeDataScreen.ILargeDataScreenService;
|
import com.hcy.admin.service.largeDataScreen.ILargeDataScreenService;
|
||||||
import com.hcy.admin.service.region.IDevRegionService;
|
import com.hcy.admin.service.region.IDevRegionService;
|
||||||
|
|
@ -7,6 +8,7 @@ import com.hcy.admin.vo.client.EquipmentListVo;
|
||||||
import com.hcy.admin.vo.largeData.EquipmentLargeDataVo;
|
import com.hcy.admin.vo.largeData.EquipmentLargeDataVo;
|
||||||
import com.hcy.admin.vo.largeData.LargeDataVo;
|
import com.hcy.admin.vo.largeData.LargeDataVo;
|
||||||
import com.hcy.admin.vo.largeData.UserLargeDataVo;
|
import com.hcy.admin.vo.largeData.UserLargeDataVo;
|
||||||
|
import com.hcy.common.constant.GlobalConstant;
|
||||||
import com.hcy.common.dto.largeDataDto.AdminLargeDataDto;
|
import com.hcy.common.dto.largeDataDto.AdminLargeDataDto;
|
||||||
import com.hcy.common.dto.largeDataDto.ClientLargeDataDto;
|
import com.hcy.common.dto.largeDataDto.ClientLargeDataDto;
|
||||||
import com.hcy.common.dto.result.UserLargeDataDto;
|
import com.hcy.common.dto.result.UserLargeDataDto;
|
||||||
|
|
@ -155,20 +157,24 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
||||||
//客户总数
|
//客户总数
|
||||||
Integer clientCount = clientMapper.selectCount(
|
Integer clientCount = clientMapper.selectCount(
|
||||||
new QueryWrapper<Client>()
|
new QueryWrapper<Client>()
|
||||||
.eq("is_delete", 0));
|
.eq("is_delete", GlobalConstant.NOT_DELETE));
|
||||||
//设备总数
|
//设备总数
|
||||||
Integer equipmentCount = equipmentMapper.selectCount(
|
Integer equipmentCount = equipmentMapper.selectCount(
|
||||||
new QueryWrapper<Equipment>()
|
new QueryWrapper<Equipment>()
|
||||||
.eq("is_delete", 0));
|
.eq("is_delete", GlobalConstant.NOT_DELETE));
|
||||||
//工单总数=检修单总数+维修单总数+巡检单总数
|
//工单总数=检修单总数+维修单总数+巡检单总数
|
||||||
//巡检单总数
|
//巡检单总数
|
||||||
Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
||||||
new QueryWrapper<RoutingInspectionOrder>()
|
new QueryWrapper<RoutingInspectionOrder>()
|
||||||
.eq("is_delete", 0));
|
.eq("is_delete", GlobalConstant.NOT_DELETE));
|
||||||
//检修单总数
|
//检修单总数
|
||||||
Integer maintenanceOrderCount = maintenanceOrderMapper.selectCount(
|
Integer maintenanceOrderCount = maintenanceOrderMapper.selectCount(
|
||||||
new QueryWrapper<MaintenanceOrder>()
|
new QueryWrapper<MaintenanceOrder>()
|
||||||
.eq("is_delete", 0));
|
.eq("is_delete", GlobalConstant.NOT_DELETE));
|
||||||
|
//维修单总数
|
||||||
|
Integer repairOrderCount = repairOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE));
|
||||||
|
|
||||||
//今日工单总数=今日检修单总数+今日维修单总数+今日巡检单总数
|
//今日工单总数=今日检修单总数+今日维修单总数+今日巡检单总数
|
||||||
LocalDateTime startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN);
|
LocalDateTime startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN);
|
||||||
|
|
@ -176,19 +182,26 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
||||||
//今日检修单总数
|
//今日检修单总数
|
||||||
Integer todayRoutingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
Integer todayRoutingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
||||||
new QueryWrapper<RoutingInspectionOrder>()
|
new QueryWrapper<RoutingInspectionOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//今日检修单总数
|
//今日检修单总数
|
||||||
Integer todayMaintenanceOrderCount = maintenanceOrderMapper.selectCount(
|
Integer todayMaintenanceOrderCount = maintenanceOrderMapper.selectCount(
|
||||||
new QueryWrapper<MaintenanceOrder>()
|
new QueryWrapper<MaintenanceOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
vo.setClientSum(clientCount);
|
//今日维修单总数
|
||||||
vo.setEquipmentSum(equipmentCount);
|
Integer todayRepairOrderCount = repairOrderMapper.selectCount(
|
||||||
vo.setOrderSum(routingInspectionOrderCount + maintenanceOrderCount);
|
new LambdaQueryWrapper<RepairOrder>()
|
||||||
vo.setTodayOrderSum(todayRoutingInspectionOrderCount + todayMaintenanceOrderCount);
|
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.ge(RepairOrder::getCreateTime, Timestamp.valueOf(startTime))
|
||||||
|
.le(RepairOrder::getCreateTime, Timestamp.valueOf(endTime)));
|
||||||
|
|
||||||
|
vo.setClientSum(clientCount); // 客户总数
|
||||||
|
vo.setEquipmentSum(equipmentCount); // 设备总数
|
||||||
|
vo.setOrderSum(routingInspectionOrderCount + maintenanceOrderCount + repairOrderCount); // 工单总数
|
||||||
|
vo.setTodayOrderSum(todayRoutingInspectionOrderCount + todayMaintenanceOrderCount + todayRepairOrderCount); // 今日工单总数
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -246,28 +259,28 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
||||||
//获取巡检订单总数
|
//获取巡检订单总数
|
||||||
Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
|
||||||
new QueryWrapper<RoutingInspectionOrder>()
|
new QueryWrapper<RoutingInspectionOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-巡检中;4-已完成;5-已退单;6-待巡检
|
//orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-巡检中;4-已完成;5-已退单;6-待巡检
|
||||||
//获取已完成订单总数
|
//获取已完成订单总数
|
||||||
Integer doneOrderCount = routingInspectionOrderMapper.selectCount(
|
Integer doneOrderCount = routingInspectionOrderMapper.selectCount(
|
||||||
new QueryWrapper<RoutingInspectionOrder>()
|
new QueryWrapper<RoutingInspectionOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.eq("order_status", OrderStateEnum.COMPLETED.getStatus())
|
.eq("order_status", OrderStateEnum.COMPLETED.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//获取巡检中订单总数
|
//获取巡检中订单总数
|
||||||
Integer underOverhaulOrderCount = routingInspectionOrderMapper.selectCount(
|
Integer underOverhaulOrderCount = routingInspectionOrderMapper.selectCount(
|
||||||
new QueryWrapper<RoutingInspectionOrder>()
|
new QueryWrapper<RoutingInspectionOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.eq("order_status", OrderStateEnum.DURING_INSPECTION.getStatus())
|
.eq("order_status", OrderStateEnum.DURING_INSPECTION.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//获取报修中订单总数
|
//获取报修中订单总数
|
||||||
Integer underWarrantyOrderCount = routingInspectionOrderMapper.selectCount(
|
Integer underWarrantyOrderCount = routingInspectionOrderMapper.selectCount(
|
||||||
new QueryWrapper<RoutingInspectionOrder>()
|
new QueryWrapper<RoutingInspectionOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.ne("order_status", OrderStateEnum.COMPLETED.getStatus())
|
.ne("order_status", OrderStateEnum.COMPLETED.getStatus())
|
||||||
.ne("order_status", OrderStateEnum.DURING_INSPECTION.getStatus())
|
.ne("order_status", OrderStateEnum.DURING_INSPECTION.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
|
|
@ -312,28 +325,28 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
||||||
//获取巡检订单总数
|
//获取巡检订单总数
|
||||||
Integer routingInspectionOrderCount = maintenanceOrderMapper.selectCount(
|
Integer routingInspectionOrderCount = maintenanceOrderMapper.selectCount(
|
||||||
new QueryWrapper<MaintenanceOrder>()
|
new QueryWrapper<MaintenanceOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
//orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||||
//获取已完成订单总数
|
//获取已完成订单总数
|
||||||
Integer doneOrderCount = maintenanceOrderMapper.selectCount(
|
Integer doneOrderCount = maintenanceOrderMapper.selectCount(
|
||||||
new QueryWrapper<MaintenanceOrder>()
|
new QueryWrapper<MaintenanceOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.eq("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
.eq("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//获取检修中订单总数
|
//获取检修中订单总数
|
||||||
Integer underOverhaulOrderCount = maintenanceOrderMapper.selectCount(
|
Integer underOverhaulOrderCount = maintenanceOrderMapper.selectCount(
|
||||||
new QueryWrapper<MaintenanceOrder>()
|
new QueryWrapper<MaintenanceOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.eq("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
.eq("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//获取报修中订单总数
|
//获取报修中订单总数
|
||||||
Integer underWarrantyOrderCount = maintenanceOrderMapper.selectCount(
|
Integer underWarrantyOrderCount = maintenanceOrderMapper.selectCount(
|
||||||
new QueryWrapper<MaintenanceOrder>()
|
new QueryWrapper<MaintenanceOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.ne("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
.ne("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
||||||
.ne("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
.ne("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
|
|
@ -378,28 +391,28 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
|
||||||
//获取巡检订单总数
|
//获取巡检订单总数
|
||||||
Integer routingInspectionOrderCount = repairOrderMapper.selectCount(
|
Integer routingInspectionOrderCount = repairOrderMapper.selectCount(
|
||||||
new QueryWrapper<RepairOrder>()
|
new QueryWrapper<RepairOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
//orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||||
//获取已完成订单总数
|
//获取已完成订单总数
|
||||||
Integer doneOrderCount = repairOrderMapper.selectCount(
|
Integer doneOrderCount = repairOrderMapper.selectCount(
|
||||||
new QueryWrapper<RepairOrder>()
|
new QueryWrapper<RepairOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.eq("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
.eq("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//获取检修中订单总数
|
//获取检修中订单总数
|
||||||
Integer underOverhaulOrderCount = repairOrderMapper.selectCount(
|
Integer underOverhaulOrderCount = repairOrderMapper.selectCount(
|
||||||
new QueryWrapper<RepairOrder>()
|
new QueryWrapper<RepairOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.eq("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
.eq("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间
|
||||||
//获取报修中订单总数
|
//获取报修中订单总数
|
||||||
Integer underWarrantyOrderCount = repairOrderMapper.selectCount(
|
Integer underWarrantyOrderCount = repairOrderMapper.selectCount(
|
||||||
new QueryWrapper<RepairOrder>()
|
new QueryWrapper<RepairOrder>()
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", GlobalConstant.NOT_DELETE)
|
||||||
.ne("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
.ne("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
||||||
.ne("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
.ne("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
||||||
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间
|
||||||
|
|
|
||||||
|
|
@ -73,4 +73,16 @@ public interface IRepairOrderService {
|
||||||
* @param repairOrderParam
|
* @param repairOrderParam
|
||||||
*/
|
*/
|
||||||
void reassignment(RepairOrderParam repairOrderParam);
|
void reassignment(RepairOrderParam repairOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新服务报价
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
void updateServiceOfferPrice(RepairOrderParam repairOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退回维修员
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
void returnRepair(RepairOrderParam repairOrderParam);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,10 @@ import com.hcy.common.entity.order.RoutingInspectionOrder;
|
||||||
import com.hcy.common.entity.plant.Plant;
|
import com.hcy.common.entity.plant.Plant;
|
||||||
import com.hcy.common.entity.system.SystemAuthAdmin;
|
import com.hcy.common.entity.system.SystemAuthAdmin;
|
||||||
import com.hcy.common.entity.user.User;
|
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.OrderStateEnum;
|
||||||
import com.hcy.common.enums.order.RepairOrderStatusEnum;
|
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.address.UserAddressMapper;
|
||||||
import com.hcy.common.mapper.client.ClientMapper;
|
import com.hcy.common.mapper.client.ClientMapper;
|
||||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||||
|
|
@ -114,6 +116,19 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
vo.setPlantName(plant.getName());
|
vo.setPlantName(plant.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//返回客户简称和设备名称
|
||||||
|
Client client = clientMapper.selectOne(
|
||||||
|
new LambdaQueryWrapper<Client>()
|
||||||
|
.eq(Client::getId, item.getClientId()));
|
||||||
|
if(client != null){
|
||||||
|
vo.setClientName(client.getClientName());
|
||||||
|
}
|
||||||
|
Equipment equipment = equipmentMapper.selectOne(
|
||||||
|
new LambdaQueryWrapper<Equipment>()
|
||||||
|
.eq(Equipment::getId, item.getEquipmentId()));
|
||||||
|
if(equipment != null){
|
||||||
|
vo.setEquipmentName(equipment.getName());
|
||||||
|
}
|
||||||
|
|
||||||
vo.setCreateTime(item.getCreateTime());
|
vo.setCreateTime(item.getCreateTime());
|
||||||
vo.setUpdateTime(item.getUpdateTime());
|
vo.setUpdateTime(item.getUpdateTime());
|
||||||
|
|
@ -190,6 +205,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
if(userAddress != null){
|
if(userAddress != null){
|
||||||
vo.setAddress(userAddressListVo);
|
vo.setAddress(userAddressListVo);
|
||||||
}
|
}
|
||||||
|
//报废地址
|
||||||
|
UserAddress scrapAddress = userAddressMapper.selectOne(
|
||||||
|
new QueryWrapper<UserAddress>()
|
||||||
|
.eq("id", model.getScrapAddressId()));
|
||||||
|
UserAddressListVo scrapAddressListVo = new UserAddressListVo();
|
||||||
|
BeanUtils.copyProperties(scrapAddress, scrapAddressListVo);
|
||||||
|
scrapAddressListVo.setProvince(regionMap.get(scrapAddressListVo.getProvinceId()));
|
||||||
|
scrapAddressListVo.setCity(regionMap.get(scrapAddressListVo.getCityId()));
|
||||||
|
scrapAddressListVo.setDistrict(regionMap.get(scrapAddressListVo.getDistrictId()));
|
||||||
|
if(scrapAddress != null){
|
||||||
|
vo.setScrapAddress(scrapAddressListVo);
|
||||||
|
}
|
||||||
//设备信息
|
//设备信息
|
||||||
Equipment equipment = equipmentMapper.selectOne(
|
Equipment equipment = equipmentMapper.selectOne(
|
||||||
new QueryWrapper<Equipment>()
|
new QueryWrapper<Equipment>()
|
||||||
|
|
@ -399,4 +426,46 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
}
|
}
|
||||||
repairOrderMapper.updateById(model);
|
repairOrderMapper.updateById(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新服务报价
|
||||||
|
*
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void updateServiceOfferPrice(RepairOrderParam repairOrderParam) {
|
||||||
|
RepairOrder model = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||||
|
Assert.notNull(model, "数据不存在!");
|
||||||
|
Assert.notNull(repairOrderParam.getActualAmount(),"服务报价不能为空");
|
||||||
|
|
||||||
|
if(model.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()){
|
||||||
|
//更新服务报价
|
||||||
|
BigDecimal actualAmount = repairOrderParam.getActualAmount();
|
||||||
|
model.setActualAmount(actualAmount);
|
||||||
|
repairOrderMapper.updateById(model);
|
||||||
|
}else{
|
||||||
|
throw new OperateException("当前工单状态,无法修改服务报价");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退回维修员
|
||||||
|
*
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void returnRepair(RepairOrderParam repairOrderParam) {
|
||||||
|
RepairOrder model = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||||
|
Assert.notNull(model, "数据不存在!");
|
||||||
|
Assert.notNull(repairOrderParam.getReturnCause(),"退回原因不可为空");
|
||||||
|
|
||||||
|
if(model.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()){
|
||||||
|
//更新服务报价
|
||||||
|
model.setOrderStatus(MaintenanceOrderStatusEnum.RETURNED.getStatus());
|
||||||
|
model.setReturnCause(repairOrderParam.getReturnCause());
|
||||||
|
repairOrderMapper.updateById(model);
|
||||||
|
}else{
|
||||||
|
throw new OperateException("当前工单状态,无法退回检修");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
||||||
for(RoutingInspectionOrderDto item : iPage.getRecords()) {
|
for(RoutingInspectionOrderDto item : iPage.getRecords()) {
|
||||||
RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo();
|
RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo();
|
||||||
BeanUtils.copyProperties(item, vo);
|
BeanUtils.copyProperties(item, vo);
|
||||||
|
|
||||||
list.add(vo);
|
list.add(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -97,4 +97,8 @@ public class RepairOrderParam implements Serializable {
|
||||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||||
private Long faultId; // 故障id
|
private Long faultId; // 故障id
|
||||||
|
|
||||||
|
private BigDecimal totalAmount; // 总金额
|
||||||
|
private BigDecimal actualAmount; // 实际金额
|
||||||
|
private String returnCause; //退回原因
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,6 @@ public class EquipmentListVo implements Serializable {
|
||||||
private String deviceCode; // 设备码
|
private String deviceCode; // 设备码
|
||||||
private String createTime; // 创建时间
|
private String createTime; // 创建时间
|
||||||
private String clientName; // 客户名称
|
private String clientName; // 客户名称
|
||||||
|
private String shortName; // 客户简称
|
||||||
private EquipmentModelDetailVo equipmentModel; //设备模块信息
|
private EquipmentModelDetailVo equipmentModel; //设备模块信息
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,5 +53,8 @@ public class RepairOrderDetailVo implements Serializable {
|
||||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||||
private UserAddressListVo address; //地址信息
|
private UserAddressListVo address; //地址信息
|
||||||
private EquipmentListVo equipment; //设备信息
|
private EquipmentListVo equipment; //设备信息
|
||||||
|
private Integer scrapAddressId; // 报废地址
|
||||||
|
private UserAddressListVo scrapAddress; //报废地址信息
|
||||||
|
private String returnCause; //退回原因
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,9 @@ public class RepairOrderListVo implements Serializable {
|
||||||
private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭
|
||||||
private Long clientId; // 客户id
|
private Long clientId; // 客户id
|
||||||
private Long equipmentId; // 设备id
|
private Long equipmentId; // 设备id
|
||||||
|
private String equipmentName; // 设备名称
|
||||||
private String clientName; // 客户名称
|
private String clientName; // 客户名称
|
||||||
|
private String shortName; //客户简称
|
||||||
private String clientContacts; // 客户联系人
|
private String clientContacts; // 客户联系人
|
||||||
private String clientPhone; // 客户联系电话
|
private String clientPhone; // 客户联系电话
|
||||||
private Long faultId; // 故障id
|
private Long faultId; // 故障id
|
||||||
|
|
@ -45,5 +47,7 @@ public class RepairOrderListVo implements Serializable {
|
||||||
private String plantName; //管辖工厂名
|
private String plantName; //管辖工厂名
|
||||||
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
private Integer receiverType; // 接单类型 0-区域派单;1-距离派单
|
||||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||||
|
private Integer scrapAddressId; // 报废地址
|
||||||
|
private String returnCause; //退回原因
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,5 +65,6 @@ public class MaintenanceOrderDto implements Serializable {
|
||||||
private String orderStatusIds; //订单状态ids
|
private String orderStatusIds; //订单状态ids
|
||||||
private String likeWork; //关键字
|
private String likeWork; //关键字
|
||||||
private String shortName; //客户简称
|
private String shortName; //客户简称
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,9 @@ public class RepairOrderDto implements Serializable {
|
||||||
private Long clientId; // 客户id
|
private Long clientId; // 客户id
|
||||||
private Long equipmentId; // 设备id
|
private Long equipmentId; // 设备id
|
||||||
private String clientName; // 客户名称
|
private String clientName; // 客户名称
|
||||||
|
private String shortName; //客户简称
|
||||||
private Long faultId; // 故障id
|
private Long faultId; // 故障id
|
||||||
|
private String faultCode; // 故障代码
|
||||||
private String faultDescription; // 故障描述
|
private String faultDescription; // 故障描述
|
||||||
private String moduleNumber; // 模块号
|
private String moduleNumber; // 模块号
|
||||||
private String brand; // 品牌
|
private String brand; // 品牌
|
||||||
|
|
@ -53,9 +55,17 @@ public class RepairOrderDto implements Serializable {
|
||||||
private Double longitude; // 经度
|
private Double longitude; // 经度
|
||||||
private Double latitude; // 纬度
|
private Double latitude; // 纬度
|
||||||
private Integer queryType; // 查询类型 0-离我最近 1-时间优先
|
private Integer queryType; // 查询类型 0-离我最近 1-时间优先
|
||||||
|
private Integer scrapAddressId; // 报废地址
|
||||||
|
|
||||||
private Integer isClient; //是否客户 0-客户端 1-检修员端
|
private Integer isClient; //是否客户 0-客户端 1-检修员端
|
||||||
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
||||||
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
||||||
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门
|
|
||||||
|
private Integer deliveryMethod; // 收件方式(0=物流快递 1-上门取件 2-送货上门)
|
||||||
|
private Long consigneeAddressId; // 收件地址
|
||||||
|
private String clientScrapRemark; // 客户报废备注
|
||||||
|
private String returnCause; //退回原因
|
||||||
|
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,4 +56,6 @@ public class MaintenanceOrder implements Serializable {
|
||||||
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
||||||
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
||||||
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
|
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -26,6 +26,7 @@ public class RepairOrder implements Serializable {
|
||||||
private Long clientId; // 客户id
|
private Long clientId; // 客户id
|
||||||
private Long equipmentId; // 设备id
|
private Long equipmentId; // 设备id
|
||||||
private Long faultId; // 故障id
|
private Long faultId; // 故障id
|
||||||
|
private String faultCode; // 故障代码
|
||||||
private String faultDescription; // 故障描述
|
private String faultDescription; // 故障描述
|
||||||
private String moduleNumber; // 模块号
|
private String moduleNumber; // 模块号
|
||||||
private String brand; // 品牌
|
private String brand; // 品牌
|
||||||
|
|
@ -45,6 +46,7 @@ public class RepairOrder implements Serializable {
|
||||||
private Date cancelOrderTime; // 取消订单时间
|
private Date cancelOrderTime; // 取消订单时间
|
||||||
private String cancelCause; // 取消原因
|
private String cancelCause; // 取消原因
|
||||||
private String refuseMaintenanceCause; // 拒绝维修原因
|
private String refuseMaintenanceCause; // 拒绝维修原因
|
||||||
|
private String returnCause; //退回原因
|
||||||
private String remark; // 备注
|
private String remark; // 备注
|
||||||
private Long creatorId; // 创建人id
|
private Long creatorId; // 创建人id
|
||||||
private Date orderAccomplishTime; // 订单完成时间
|
private Date orderAccomplishTime; // 订单完成时间
|
||||||
|
|
@ -72,7 +74,11 @@ public class RepairOrder implements Serializable {
|
||||||
private String faultPointImg; // 故障点照片
|
private String faultPointImg; // 故障点照片
|
||||||
private Integer scrapOrNot; // 是否报废(0=是,1=否)
|
private Integer scrapOrNot; // 是否报废(0=是,1=否)
|
||||||
private Long scrapFaultId; // 报废类型id
|
private Long scrapFaultId; // 报废类型id
|
||||||
private String scrapAddress; // 报废地址
|
private Long scrapAddressId; // 报废地址id
|
||||||
private String scrapExplain; // 报废说明
|
private String scrapExplain; // 报废说明
|
||||||
|
private Integer deliveryMethod; // 收件方式(0=物流快递 1-上门取件 2-送货上门)
|
||||||
|
private Long consigneeAddressId; // 收件地址
|
||||||
|
private String clientScrapRemark; // 客户报废备注
|
||||||
|
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
|
||||||
|
private String completeImg; // 完工照片
|
||||||
}
|
}
|
||||||
|
|
@ -29,4 +29,10 @@ public interface MaintenanceOrderMapper extends IBaseMapper<MaintenanceOrder> {
|
||||||
|
|
||||||
@Select("select * from la_maintenance_order where is_delete = 0 and order_no like concat('%',#{time},'%') order by order_no desc limit 1")
|
@Select("select * from la_maintenance_order where is_delete = 0 and order_no like concat('%',#{time},'%') order by order_no desc limit 1")
|
||||||
MaintenanceOrder findLastMaintenanceOrderByTime(@Param("time") String time);
|
MaintenanceOrder findLastMaintenanceOrderByTime(@Param("time") String time);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取待接单状态数量
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer selectPendingOrderCount(@Param("param") MaintenanceOrderDto maintenanceOrderDto);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import com.hcy.common.dto.order.MaintenanceOrderDto;
|
||||||
import com.hcy.common.dto.order.RepairOrderDto;
|
import com.hcy.common.dto.order.RepairOrderDto;
|
||||||
import com.hcy.common.entity.order.MaintenanceOrder;
|
import com.hcy.common.entity.order.MaintenanceOrder;
|
||||||
import com.hcy.common.entity.order.RepairOrder;
|
import com.hcy.common.entity.order.RepairOrder;
|
||||||
|
import io.swagger.models.auth.In;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
@ -41,4 +42,10 @@ public interface RepairOrderMapper extends IBaseMapper<RepairOrder> {
|
||||||
*/
|
*/
|
||||||
@Select("select * from la_repair_order where is_delete = 0 and id = #{id}")
|
@Select("select * from la_repair_order where is_delete = 0 and id = #{id}")
|
||||||
RepairOrder findMaintenanceOrderById(@Param("id") Long id);
|
RepairOrder findMaintenanceOrderById(@Param("id") Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取待接单工单状态数量
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer selectPendingOrderCount(@Param("param") RepairOrderDto repairOrderDto);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,4 +33,11 @@ public interface RoutingInspectionOrderMapper extends IBaseMapper<RoutingInspect
|
||||||
Page<RoutingInspectionOrderDto> frontPageList(Page page, @Param("param") RoutingInspectionOrderDto param);
|
Page<RoutingInspectionOrderDto> frontPageList(Page page, @Param("param") RoutingInspectionOrderDto param);
|
||||||
|
|
||||||
List<RoutingInspectionOrderDto> list(@Param("form") RoutingInspectionOrderDto form);
|
List<RoutingInspectionOrderDto> list(@Param("form") RoutingInspectionOrderDto form);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计巡检单状态数量
|
||||||
|
* @param routingInspectionOrderDto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer selectPendingOrderCount(@Param("param") RoutingInspectionOrderDto routingInspectionOrderDto);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,4 +65,22 @@
|
||||||
</where>
|
</where>
|
||||||
order by create_time desc
|
order by create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPendingOrderCount" resultType="Integer">
|
||||||
|
SELECT
|
||||||
|
COUNT( order_status )
|
||||||
|
FROM
|
||||||
|
la_maintenance_order as lmo
|
||||||
|
WHERE
|
||||||
|
is_delete = 0
|
||||||
|
<if test="param.receiverId != null">
|
||||||
|
and lmo.receiver_id = #{param.receiverId}
|
||||||
|
</if>
|
||||||
|
<if test="param.clientId != null">
|
||||||
|
and lmo.client_id = #{param.clientId}
|
||||||
|
</if>
|
||||||
|
<if test="param.orderStatusIds != null and param.orderStatusIds != ''">
|
||||||
|
and find_in_set(lmo.order_status,#{param.orderStatusIds})
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,11 @@
|
||||||
|
|
||||||
|
|
||||||
<select id="pageList" resultType="com.hcy.common.dto.order.RepairOrderDto">
|
<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
|
select ro.*,
|
||||||
|
u1.username as creatorName,
|
||||||
|
u2.username as receiverName,
|
||||||
|
c.client_name as clientName,
|
||||||
|
c.short_name
|
||||||
from la_repair_order as ro
|
from la_repair_order as ro
|
||||||
LEFT JOIN la_client as c on ro.client_id = c.id
|
LEFT JOIN la_client as c on ro.client_id = c.id
|
||||||
LEFT JOIN la_user as u1 on ro.creator_id = u1.id
|
LEFT JOIN la_user as u1 on ro.creator_id = u1.id
|
||||||
|
|
@ -59,6 +63,12 @@
|
||||||
<if test="form.priorityId != null">
|
<if test="form.priorityId != null">
|
||||||
and ro.priority_id = #{form.priorityId}
|
and ro.priority_id = #{form.priorityId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="form.receiverId != null">
|
||||||
|
and ro.receiver_id = #{form.receiverId}
|
||||||
|
</if>
|
||||||
|
<if test="form.clientId != null">
|
||||||
|
and ro.client_id = #{form.clientId}
|
||||||
|
</if>
|
||||||
<if test="form.creatorName != null and form.creatorName != ''">
|
<if test="form.creatorName != null and form.creatorName != ''">
|
||||||
and u1.username LIKE concat('%', #{form.creatorName}, '%')
|
and u1.username LIKE concat('%', #{form.creatorName}, '%')
|
||||||
</if>
|
</if>
|
||||||
|
|
@ -78,5 +88,22 @@
|
||||||
order by ro.create_time desc
|
order by ro.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPendingOrderCount" resultType="Integer">
|
||||||
|
SELECT
|
||||||
|
COUNT( order_status )
|
||||||
|
FROM
|
||||||
|
la_repair_order as lro
|
||||||
|
WHERE
|
||||||
|
is_delete = 0
|
||||||
|
<if test="param.receiverId != null">
|
||||||
|
and lro.receiver_id = #{param.receiverId}
|
||||||
|
</if>
|
||||||
|
<if test="param.clientId != null">
|
||||||
|
and lro.client_id = #{param.clientId}
|
||||||
|
</if>
|
||||||
|
<if test="param.orderStatusIds != null and param.orderStatusIds != ''">
|
||||||
|
and find_in_set(lro.order_status,#{param.orderStatusIds})
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
SELECT
|
SELECT
|
||||||
i.*,
|
i.*,
|
||||||
c.client_name,
|
c.client_name,
|
||||||
|
c.short_name,
|
||||||
e.number as equipmentNo,e.name as equipmentName,e.detailed_address,
|
e.number as equipmentNo,e.name as equipmentName,e.detailed_address,
|
||||||
a.nickname as creatorName,
|
a.nickname as creatorName,
|
||||||
f.`name` as familiarFaultName,
|
f.`name` as familiarFaultName,
|
||||||
|
|
@ -119,4 +120,22 @@
|
||||||
</if>
|
</if>
|
||||||
ORDER BY create_time DESC
|
ORDER BY create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPendingOrderCount" resultType="Integer">
|
||||||
|
SELECT
|
||||||
|
COUNT( order_status )
|
||||||
|
FROM
|
||||||
|
la_routing_inspection_order as lrio
|
||||||
|
WHERE
|
||||||
|
is_delete = 0
|
||||||
|
<if test="param.receiverId != null">
|
||||||
|
and lrio.receiver_id = #{param.receiverId}
|
||||||
|
</if>
|
||||||
|
<if test="param.clientId != null">
|
||||||
|
and lrio.client_id = #{param.clientId}
|
||||||
|
</if>
|
||||||
|
<if test="param.orderStatusIds != null and param.orderStatusIds != ''">
|
||||||
|
and find_in_set(lrio.order_status,#{param.orderStatusIds})
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -170,4 +170,12 @@ public class MaintenanceOrderController {
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序工单状态数量
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@GetMapping("/orderStatusCount")
|
||||||
|
public Object orderStatusCount(MaintenanceOrderParam maintenanceOrderParam) {
|
||||||
|
return AjaxResult.success(iMaintenanceOrderService.orderStatusCount(maintenanceOrderParam));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,4 +122,68 @@ public class RepairOrderController {
|
||||||
iRepairOrderService.faultDetect(repairOrderParam);
|
iRepairOrderService.faultDetect(repairOrderParam);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序工单状态数量
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@GetMapping("/orderStatusCount")
|
||||||
|
public Object orderStatusCount(RepairOrderParam repairOrderParam) {
|
||||||
|
return AjaxResult.success(iRepairOrderService.orderStatusCount(repairOrderParam));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认服务报价
|
||||||
|
* @param repairOrderParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@PostMapping("/confirmServiceOfferPrice")
|
||||||
|
public Object confirmServiceOfferPrice(@RequestBody RepairOrderParam repairOrderParam) {
|
||||||
|
iRepairOrderService.confirmServiceOfferPrice(repairOrderParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认报废
|
||||||
|
* @param repairOrderParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@PostMapping("/confirmedScrap")
|
||||||
|
public Object confirmedScrap(@RequestBody RepairOrderParam repairOrderParam) {
|
||||||
|
iRepairOrderService.confirmedScrap(repairOrderParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传维修中、维修后照片
|
||||||
|
* @param repairOrderParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@PostMapping("/uploadPictures")
|
||||||
|
public Object uploadPictures(@RequestBody RepairOrderParam repairOrderParam) {
|
||||||
|
iRepairOrderService.uploadPictures(repairOrderParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填写报废单
|
||||||
|
* @param repairOrderParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@PostMapping("/scrapForm")
|
||||||
|
public Object scrapForm(@RequestBody RepairOrderParam repairOrderParam) {
|
||||||
|
iRepairOrderService.scrapForm(repairOrderParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填写回单
|
||||||
|
* @param repairOrderParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@PostMapping("/fillInReceipt")
|
||||||
|
public Object fillInReceipt(@RequestBody RepairOrderParam repairOrderParam) {
|
||||||
|
iRepairOrderService.fillInReceipt(repairOrderParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -127,4 +127,13 @@ public class RoutingInspectionOrderController {
|
||||||
iRoutingInspectionOrderService.checking(routingInspectionOrderParam);
|
iRoutingInspectionOrderService.checking(routingInspectionOrderParam);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序工单状态数量
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@GetMapping("/orderStatusCount")
|
||||||
|
public Object orderStatusCount(RoutingInspectionOrderParam routingInspectionOrderParam) {
|
||||||
|
return AjaxResult.success(iRoutingInspectionOrderService.orderStatusCount(routingInspectionOrderParam));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ import com.hcy.front.validate.PageParam;
|
||||||
import com.hcy.front.validate.order.MaintenanceOrderParam;
|
import com.hcy.front.validate.order.MaintenanceOrderParam;
|
||||||
import com.hcy.front.vo.order.MaintenanceOrderDetailVo;
|
import com.hcy.front.vo.order.MaintenanceOrderDetailVo;
|
||||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||||
|
import com.hcy.front.vo.order.OrderStatusCountVo;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -95,4 +97,10 @@ public interface IMaintenanceOrderService {
|
||||||
* @param maintenanceOrderParam 参数
|
* @param maintenanceOrderParam 参数
|
||||||
*/
|
*/
|
||||||
void oldModuleRepair(MaintenanceOrderParam maintenanceOrderParam);
|
void oldModuleRepair(MaintenanceOrderParam maintenanceOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计工单状态数量
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
OrderStatusCountVo orderStatusCount(MaintenanceOrderParam maintenanceOrderParam);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.hcy.common.core.PageResult;
|
||||||
import com.hcy.front.validate.PageParam;
|
import com.hcy.front.validate.PageParam;
|
||||||
import com.hcy.front.validate.order.RepairOrderParam;
|
import com.hcy.front.validate.order.RepairOrderParam;
|
||||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||||
|
import com.hcy.front.vo.order.OrderStatusCountVo;
|
||||||
import com.hcy.front.vo.order.RepairOrderDetailVo;
|
import com.hcy.front.vo.order.RepairOrderDetailVo;
|
||||||
import com.hcy.front.vo.order.RepairOrderListVo;
|
import com.hcy.front.vo.order.RepairOrderListVo;
|
||||||
|
|
||||||
|
|
@ -72,4 +73,40 @@ public interface IRepairOrderService {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<RepairOrderListVo> list(RepairOrderParam repairOrderParam);
|
List<RepairOrderListVo> list(RepairOrderParam repairOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计工单状态数量
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
OrderStatusCountVo orderStatusCount(RepairOrderParam repairOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认服务报价
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
void confirmServiceOfferPrice(RepairOrderParam repairOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认报废
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
void confirmedScrap(RepairOrderParam repairOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传维修中、维修后照片
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
void uploadPictures(RepairOrderParam repairOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填写报废单
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
void scrapForm(RepairOrderParam repairOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填写回单
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
void fillInReceipt(RepairOrderParam repairOrderParam);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.hcy.common.core.PageResult;
|
||||||
import com.hcy.front.validate.PageParam;
|
import com.hcy.front.validate.PageParam;
|
||||||
import com.hcy.front.validate.order.RoutingInspectionOrderParam;
|
import com.hcy.front.validate.order.RoutingInspectionOrderParam;
|
||||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||||
|
import com.hcy.front.vo.order.OrderStatusCountVo;
|
||||||
import com.hcy.front.vo.order.RoutingInspectionOrderDetailVo;
|
import com.hcy.front.vo.order.RoutingInspectionOrderDetailVo;
|
||||||
import com.hcy.front.vo.order.RoutingInspectionOrderListVo;
|
import com.hcy.front.vo.order.RoutingInspectionOrderListVo;
|
||||||
|
|
||||||
|
|
@ -70,4 +71,10 @@ public interface IRoutingInspectionOrderService {
|
||||||
* @param routingInspectionOrderParam
|
* @param routingInspectionOrderParam
|
||||||
*/
|
*/
|
||||||
void checking(RoutingInspectionOrderParam routingInspectionOrderParam);
|
void checking(RoutingInspectionOrderParam routingInspectionOrderParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计工单状态数量
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
OrderStatusCountVo orderStatusCount(RoutingInspectionOrderParam routingInspectionOrderParam);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.hcy.front.service.order.impl;
|
package com.hcy.front.service.order.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.hcy.common.constant.GlobalConstant;
|
import com.hcy.common.constant.GlobalConstant;
|
||||||
import com.hcy.common.core.PageResult;
|
import com.hcy.common.core.PageResult;
|
||||||
|
|
@ -48,15 +49,13 @@ import com.hcy.front.validate.order.MaintenanceOrderParam;
|
||||||
import com.hcy.front.validate.warehouse.SparePartParam;
|
import com.hcy.front.validate.warehouse.SparePartParam;
|
||||||
import com.hcy.front.vo.client.EquipmentDetailVo;
|
import com.hcy.front.vo.client.EquipmentDetailVo;
|
||||||
import com.hcy.front.vo.client.EquipmentModelDetailVo;
|
import com.hcy.front.vo.client.EquipmentModelDetailVo;
|
||||||
import com.hcy.front.vo.order.MaintenanceOrderDetailVo;
|
import com.hcy.front.vo.order.*;
|
||||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
|
||||||
import com.hcy.front.vo.order.MaintenanceRepairDetailVo;
|
|
||||||
import com.hcy.front.vo.order.OrderSparePartListVo;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -570,7 +569,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
||||||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
|
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
|
||||||
maintenanceOrder.setOrderAccomplishTime(new Date());
|
maintenanceOrder.setOrderAccomplishTime(new Date());
|
||||||
maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
|
maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
|
||||||
|
maintenanceOrder.setCompleteImg(maintenanceOrderParam.getCompleteImg()); // 完工照片
|
||||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||||
}else{
|
}else{
|
||||||
throw new OperateException("当前订单状态无法进行填写回单操作");
|
throw new OperateException("当前订单状态无法进行填写回单操作");
|
||||||
|
|
@ -625,5 +624,69 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计工单状态数量
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public OrderStatusCountVo orderStatusCount(MaintenanceOrderParam maintenanceOrderParam) {
|
||||||
|
MaintenanceOrderDto maintenanceOrderDto = new MaintenanceOrderDto();
|
||||||
|
BeanUtils.copyProperties(maintenanceOrderParam,maintenanceOrderDto);
|
||||||
|
|
||||||
|
if(maintenanceOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){
|
||||||
|
maintenanceOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人
|
||||||
|
if(StringUtils.isEmpty(maintenanceOrderParam.getOrderStatusIds())){
|
||||||
|
maintenanceOrderDto.setOrderStatusIds("1,2,7,8");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(StringUtils.isEmpty(maintenanceOrderParam.getOrderStatusIds())){
|
||||||
|
maintenanceOrderDto.setOrderStatusIds("0,1,2,7,8");
|
||||||
|
}
|
||||||
|
maintenanceOrderDto.setClientId(maintenanceOrderDto.getClientId()); // 客户id
|
||||||
|
}
|
||||||
|
|
||||||
|
// 待接单数量
|
||||||
|
Integer pendingOrderCount = maintenanceOrderMapper.selectPendingOrderCount(maintenanceOrderDto);
|
||||||
|
// 检测中数量
|
||||||
|
Integer checkingCount = maintenanceOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<MaintenanceOrder>()
|
||||||
|
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.and(query -> query.eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.CHECKING.getStatus())
|
||||||
|
.or()
|
||||||
|
.eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.RETURNED.getStatus()))
|
||||||
|
.eq(maintenanceOrderDto.getClientId() != null, MaintenanceOrder::getClientId, maintenanceOrderDto.getClientId())
|
||||||
|
.eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId()));
|
||||||
|
// 待确认数量
|
||||||
|
Integer toBeConfirmedCount = maintenanceOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<MaintenanceOrder>()
|
||||||
|
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus())
|
||||||
|
.eq(maintenanceOrderDto.getClientId() != null, MaintenanceOrder::getClientId, maintenanceOrderDto.getClientId())
|
||||||
|
.eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId()));
|
||||||
|
// 维修中数量
|
||||||
|
Integer inMaintenanceCount = maintenanceOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<MaintenanceOrder>()
|
||||||
|
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
||||||
|
.eq(maintenanceOrderDto.getClientId() != null, MaintenanceOrder::getClientId, maintenanceOrderDto.getClientId())
|
||||||
|
.eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId()));
|
||||||
|
// 已完成数量
|
||||||
|
Integer completedCount = maintenanceOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<MaintenanceOrder>()
|
||||||
|
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
||||||
|
.eq(maintenanceOrderDto.getClientId() != null, MaintenanceOrder::getClientId, maintenanceOrderDto.getClientId())
|
||||||
|
.eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId()));
|
||||||
|
|
||||||
|
OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo();
|
||||||
|
orderStatusCountVo.setPendingOrderCount(pendingOrderCount);
|
||||||
|
orderStatusCountVo.setCheckingCount(checkingCount);
|
||||||
|
orderStatusCountVo.setToBeConfirmedCount(toBeConfirmedCount);
|
||||||
|
orderStatusCountVo.setInMaintenanceCount(inMaintenanceCount);
|
||||||
|
orderStatusCountVo.setCompletedCount(completedCount);
|
||||||
|
return orderStatusCountVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import com.hcy.common.entity.plant.Plant;
|
||||||
import com.hcy.common.entity.sparePart.SparePart;
|
import com.hcy.common.entity.sparePart.SparePart;
|
||||||
import com.hcy.common.entity.system.SystemAuthAdmin;
|
import com.hcy.common.entity.system.SystemAuthAdmin;
|
||||||
import com.hcy.common.entity.user.User;
|
import com.hcy.common.entity.user.User;
|
||||||
|
import com.hcy.common.enums.ClientStatusEnum;
|
||||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||||
import com.hcy.common.enums.order.OrderStateEnum;
|
import com.hcy.common.enums.order.OrderStateEnum;
|
||||||
import com.hcy.common.enums.order.RepairOrderStatusEnum;
|
import com.hcy.common.enums.order.RepairOrderStatusEnum;
|
||||||
|
|
@ -42,6 +43,7 @@ import com.hcy.front.validate.warehouse.SparePartParam;
|
||||||
import com.hcy.front.vo.address.UserAddressListVo;
|
import com.hcy.front.vo.address.UserAddressListVo;
|
||||||
import com.hcy.front.vo.client.EquipmentListVo;
|
import com.hcy.front.vo.client.EquipmentListVo;
|
||||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||||
|
import com.hcy.front.vo.order.OrderStatusCountVo;
|
||||||
import com.hcy.front.vo.order.RepairOrderDetailVo;
|
import com.hcy.front.vo.order.RepairOrderDetailVo;
|
||||||
import com.hcy.front.vo.order.RepairOrderListVo;
|
import com.hcy.front.vo.order.RepairOrderListVo;
|
||||||
import com.sun.xml.internal.ws.resources.AddressingMessages;
|
import com.sun.xml.internal.ws.resources.AddressingMessages;
|
||||||
|
|
@ -168,6 +170,176 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
return returnData;
|
return returnData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计工单状态数量
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public OrderStatusCountVo orderStatusCount(RepairOrderParam repairOrderParam) {
|
||||||
|
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()); // 客户id
|
||||||
|
}
|
||||||
|
|
||||||
|
// 待接单数量
|
||||||
|
Integer pendingOrderCount = repairOrderMapper.selectPendingOrderCount(repairOrderDto);
|
||||||
|
// 检测中数量
|
||||||
|
Integer checkingCount = repairOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.and(query -> query
|
||||||
|
.eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.CHECKING.getStatus())
|
||||||
|
.or()
|
||||||
|
.eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.RETURNED.getStatus()))
|
||||||
|
.eq(repairOrderDto.getClientId() != null, RepairOrder::getClientId, repairOrderDto.getClientId())
|
||||||
|
.eq(repairOrderDto.getReceiverId() != null, RepairOrder::getReceiverId, repairOrderDto.getReceiverId()));
|
||||||
|
// 待确认数量
|
||||||
|
Integer toBeConfirmedCount = repairOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus())
|
||||||
|
.eq(repairOrderDto.getClientId() != null, RepairOrder::getClientId, repairOrderDto.getClientId())
|
||||||
|
.eq(repairOrderDto.getReceiverId() != null, RepairOrder::getReceiverId, repairOrderDto.getReceiverId()));
|
||||||
|
// 维修中数量
|
||||||
|
Integer inMaintenanceCount = repairOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus())
|
||||||
|
.eq(repairOrderDto.getClientId() != null, RepairOrder::getClientId, repairOrderDto.getClientId())
|
||||||
|
.eq(repairOrderDto.getReceiverId() != null, RepairOrder::getReceiverId, repairOrderDto.getReceiverId()));
|
||||||
|
// 已完成数量
|
||||||
|
Integer completedCount = repairOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.FINISHED.getStatus())
|
||||||
|
.eq(repairOrderDto.getClientId() != null, RepairOrder::getClientId, repairOrderDto.getClientId())
|
||||||
|
.eq(repairOrderDto.getReceiverId() != null, RepairOrder::getReceiverId, repairOrderDto.getReceiverId()));
|
||||||
|
|
||||||
|
OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo();
|
||||||
|
orderStatusCountVo.setPendingOrderCount(pendingOrderCount);
|
||||||
|
orderStatusCountVo.setCheckingCount(checkingCount);
|
||||||
|
orderStatusCountVo.setToBeConfirmedCount(toBeConfirmedCount);
|
||||||
|
orderStatusCountVo.setInMaintenanceCount(inMaintenanceCount);
|
||||||
|
orderStatusCountVo.setCompletedCount(completedCount);
|
||||||
|
return orderStatusCountVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认服务报价
|
||||||
|
*
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void confirmServiceOfferPrice(RepairOrderParam repairOrderParam) {
|
||||||
|
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||||
|
Assert.notNull(repairOrder, "数据不存在");
|
||||||
|
Assert.isTrue(repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus(), "订单状态错误");
|
||||||
|
|
||||||
|
if(repairOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){
|
||||||
|
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
|
||||||
|
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
|
||||||
|
}else{
|
||||||
|
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.NOT_MAINTAIN.getStatus());
|
||||||
|
repairOrder.setRefuseMaintenanceCause(repairOrderParam.getRefuseMaintenanceCause()); // 拒绝维修原因
|
||||||
|
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
|
||||||
|
repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间
|
||||||
|
}
|
||||||
|
|
||||||
|
repairOrderMapper.updateById(repairOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认报废
|
||||||
|
*
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void confirmedScrap(RepairOrderParam repairOrderParam) {
|
||||||
|
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||||
|
Assert.notNull(repairOrder, "数据不存在");
|
||||||
|
|
||||||
|
repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废(0=是,1=否)
|
||||||
|
repairOrder.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄(0=是 1=否)
|
||||||
|
repairOrder.setDeliveryMethod(repairOrderParam.getDeliveryMethod()); // 收件方式(0=物流快递 1-上门取件 2-送货上门)
|
||||||
|
repairOrder.setConsigneeAddressId(repairOrderParam.getConsigneeAddressId()); // 收件地址
|
||||||
|
repairOrder.setClientScrapRemark(repairOrderParam.getClientScrapRemark()); // 客户报废备注
|
||||||
|
repairOrderMapper.updateById(repairOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传维修中、维修后照片
|
||||||
|
*
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void uploadPictures(RepairOrderParam repairOrderParam) {
|
||||||
|
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||||
|
Assert.notNull(repairOrder, "数据不存在");
|
||||||
|
if(repairOrderParam.getInMaintenanceImg() != null){
|
||||||
|
repairOrder.setInMaintenanceImg(repairOrderParam.getInMaintenanceImg()); // 维修中照片
|
||||||
|
}else{
|
||||||
|
repairOrder.setAfterRepairImg(repairOrderParam.getAfterRepairImg()); // 维修后照片
|
||||||
|
}
|
||||||
|
repairOrderMapper.updateById(repairOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填写报废单
|
||||||
|
*
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void scrapForm(RepairOrderParam repairOrderParam) {
|
||||||
|
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||||
|
Assert.notNull(repairOrder, "数据不存在");
|
||||||
|
|
||||||
|
repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废(0=是,1=否)
|
||||||
|
repairOrder.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄(0=是 1=否)
|
||||||
|
repairOrder.setExpressName(repairOrderParam.getExpressName()); // 快递名称
|
||||||
|
repairOrder.setExpressNo(repairOrderParam.getExpressNo()); // 快递单号
|
||||||
|
repairOrderMapper.updateById(repairOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填写回单
|
||||||
|
*
|
||||||
|
* @param repairOrderParam
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void fillInReceipt(RepairOrderParam repairOrderParam) {
|
||||||
|
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||||
|
Assert.notNull(repairOrder, "数据不存在");
|
||||||
|
Assert.notNull(repairOrderParam.getFamiliarFaultId(), "结论类型不可为空");
|
||||||
|
Assert.notNull(repairOrderParam.getFamiliarFaultDescription(), "结论描述不可为空");
|
||||||
|
|
||||||
|
//只有维修中和填写回单状态才可以填写回单
|
||||||
|
if(repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus() &&
|
||||||
|
repairOrder.getIsConfirmReceipt() == MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()){
|
||||||
|
|
||||||
|
repairOrder.setFamiliarFaultId(repairOrderParam.getFamiliarFaultId()); // 常见维修结论id
|
||||||
|
repairOrder.setFamiliarFaultDescription(repairOrderParam.getFamiliarFaultDescription()); // 常见维修结论描述
|
||||||
|
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
|
||||||
|
repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间
|
||||||
|
repairOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
|
||||||
|
repairOrder.setCompleteImg(repairOrderParam.getCompleteImg()); // 完工照片
|
||||||
|
|
||||||
|
repairOrderMapper.updateById(repairOrder);
|
||||||
|
}else{
|
||||||
|
throw new OperateException("当前订单状态无法进行填写回单操作");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 维修订单列表
|
* 维修订单列表
|
||||||
*
|
*
|
||||||
|
|
@ -282,25 +454,37 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
UserAddress userAddress = userAddressMapper.selectOne(
|
UserAddress userAddress = userAddressMapper.selectOne(
|
||||||
new QueryWrapper<UserAddress>()
|
new QueryWrapper<UserAddress>()
|
||||||
.eq("id", model.getAddressId()));
|
.eq("id", model.getAddressId()));
|
||||||
UserAddressListVo userAddressListVo = new UserAddressListVo();
|
|
||||||
BeanUtils.copyProperties(userAddress, userAddressListVo);
|
|
||||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||||
userAddressListVo.setProvince(regionMap.get(userAddressListVo.getProvinceId()));
|
UserAddressListVo userAddressListVo = new UserAddressListVo();
|
||||||
userAddressListVo.setCity(regionMap.get(userAddressListVo.getCityId()));
|
|
||||||
userAddressListVo.setDistrict(regionMap.get(userAddressListVo.getDistrictId()));
|
|
||||||
if(userAddress != null){
|
if(userAddress != null){
|
||||||
|
BeanUtils.copyProperties(userAddress, userAddressListVo);
|
||||||
|
userAddressListVo.setProvince(regionMap.get(userAddressListVo.getProvinceId()));
|
||||||
|
userAddressListVo.setCity(regionMap.get(userAddressListVo.getCityId()));
|
||||||
|
userAddressListVo.setDistrict(regionMap.get(userAddressListVo.getDistrictId()));
|
||||||
vo.setAddress(userAddressListVo);
|
vo.setAddress(userAddressListVo);
|
||||||
}
|
}
|
||||||
|
//报废地址
|
||||||
|
UserAddress scrapAddress = userAddressMapper.selectOne(
|
||||||
|
new QueryWrapper<UserAddress>()
|
||||||
|
.eq("id", model.getScrapAddressId()));
|
||||||
|
if(scrapAddress != null){
|
||||||
|
UserAddressListVo scrapAddressListVo = new UserAddressListVo();
|
||||||
|
BeanUtils.copyProperties(scrapAddress, scrapAddressListVo);
|
||||||
|
scrapAddressListVo.setProvince(regionMap.get(scrapAddressListVo.getProvinceId()));
|
||||||
|
scrapAddressListVo.setCity(regionMap.get(scrapAddressListVo.getCityId()));
|
||||||
|
scrapAddressListVo.setDistrict(regionMap.get(scrapAddressListVo.getDistrictId()));
|
||||||
|
vo.setScrapAddress(scrapAddressListVo);
|
||||||
|
}
|
||||||
//设备信息
|
//设备信息
|
||||||
Equipment equipment = equipmentMapper.selectOne(
|
Equipment equipment = equipmentMapper.selectOne(
|
||||||
new QueryWrapper<Equipment>()
|
new QueryWrapper<Equipment>()
|
||||||
.eq("id", model.getEquipmentId()));
|
.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){
|
if(equipment != null){
|
||||||
|
EquipmentListVo equipmentListVo = new EquipmentListVo();
|
||||||
|
equipmentListVo.setProvince(regionMap.get(equipment.getProvinceId()));
|
||||||
|
equipmentListVo.setCity(regionMap.get(equipment.getCityId()));
|
||||||
|
equipmentListVo.setDistrict(regionMap.get(equipment.getDistrictId()));
|
||||||
|
BeanUtils.copyProperties(equipment, equipmentListVo);
|
||||||
vo.setEquipment(equipmentListVo);
|
vo.setEquipment(equipmentListVo);
|
||||||
}
|
}
|
||||||
return vo;
|
return vo;
|
||||||
|
|
@ -432,6 +616,26 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId());
|
||||||
Assert.notNull(repairOrder, "数据不存在");
|
Assert.notNull(repairOrder, "数据不存在");
|
||||||
|
|
||||||
|
repairOrder.setWarehouseType(repairOrderParam.getWarehouseType()); // 仓库类型 0-我的仓库 1-公共仓库
|
||||||
|
repairOrder.setQuotationTime(new Date()); // 报价时间
|
||||||
|
|
||||||
|
Client client = clientMapper.findClientById(repairOrder.getClientId());
|
||||||
|
//判断当前客户是全包还是半包
|
||||||
|
if(client.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus()){
|
||||||
|
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
|
||||||
|
}else{
|
||||||
|
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
BigDecimal actualAmount = new BigDecimal("0");
|
||||||
|
|
||||||
|
//判断是否已经服务报价过了
|
||||||
|
List<OrderSparePart> orderSpareParts = orderSparePartMapper.findOrderSparePartByMaintenanceOrderId(repairOrder.getId());
|
||||||
|
for (OrderSparePart orderSparePart : orderSpareParts) {
|
||||||
|
//已经报过价就将之前的报价信息删除
|
||||||
|
orderSparePartMapper.deleteById(orderSparePart);
|
||||||
|
}
|
||||||
|
|
||||||
for (SparePartParam item : repairOrderParam.getSparePartParams()) {
|
for (SparePartParam item : repairOrderParam.getSparePartParams()) {
|
||||||
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
|
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
|
||||||
|
|
||||||
|
|
@ -439,25 +643,37 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
||||||
BeanUtils.copyProperties(sparePart, orderSparePart);
|
BeanUtils.copyProperties(sparePart, orderSparePart);
|
||||||
|
|
||||||
orderSparePart.setId(null);
|
orderSparePart.setId(null);
|
||||||
orderSparePart.setRepairOrderId(repairOrder.getId());
|
orderSparePart.setRepairOrderId(repairOrder.getId()); //维修单id
|
||||||
orderSparePart.setSparePartsId(item.getId());
|
orderSparePart.setSparePartsId(item.getId()); // 备件id
|
||||||
orderSparePart.setWarehouseId(sparePart.getWarehouseId());
|
orderSparePart.setWarehouseId(sparePart.getWarehouseId()); // 所属仓库id
|
||||||
orderSparePart.setQuantity(item.getQuantity());
|
orderSparePart.setQuantity(item.getQuantity()); // 数量
|
||||||
|
|
||||||
|
//设置订单实际价格
|
||||||
|
BigDecimal practicalPrice = sparePart.getUnitPrice().multiply(client.getPurchaseDivisor());
|
||||||
|
orderSparePart.setUnitPrice(practicalPrice); // 价格
|
||||||
|
|
||||||
|
BigDecimal totalPrice = practicalPrice.multiply(BigDecimal.valueOf(item.getQuantity()));
|
||||||
|
actualAmount = actualAmount.add(totalPrice);
|
||||||
|
|
||||||
|
orderSparePart.setTotalPrice(totalPrice); // 总价
|
||||||
|
|
||||||
orderSparePartMapper.insert(orderSparePart);
|
orderSparePartMapper.insert(orderSparePart);
|
||||||
}
|
}
|
||||||
repairOrder.setFaultId(repairOrderParam.getFaultId()); //故障原因id
|
|
||||||
|
|
||||||
|
repairOrder.setTotalAmount(actualAmount); // 总金额
|
||||||
|
repairOrder.setActualAmount(actualAmount); // 实际金额
|
||||||
|
|
||||||
|
repairOrder.setFaultId(repairOrderParam.getFaultId()); //故障原因id
|
||||||
|
repairOrder.setFaultCode(repairOrderParam.getFaultCode()); //故障代码
|
||||||
repairOrder.setPreMaintenanceImg(repairOrderParam.getPreMaintenanceImg()); // 维修前图片
|
repairOrder.setPreMaintenanceImg(repairOrderParam.getPreMaintenanceImg()); // 维修前图片
|
||||||
repairOrder.setFaultPointImg(repairOrderParam.getFaultPointImg()); //故障点图片
|
repairOrder.setFaultPointImg(repairOrderParam.getFaultPointImg()); //故障点图片
|
||||||
repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废(0=是,1=否)
|
repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废(0=是,1=否)
|
||||||
repairOrder.setScrapFaultId(repairOrderParam.getScrapFaultId()); // 报废类型id
|
repairOrder.setScrapFaultId(repairOrderParam.getScrapFaultId()); // 报废类型id
|
||||||
repairOrder.setScrapAddress(repairOrderParam.getScrapAddress()); // 报废地址
|
repairOrder.setScrapAddressId(repairOrderParam.getScrapAddressId()); // 报废地址
|
||||||
repairOrder.setScrapExplain(repairOrderParam.getScrapExplain()); // 报废说明
|
repairOrder.setScrapExplain(repairOrderParam.getScrapExplain()); // 报废说明
|
||||||
repairOrderMapper.updateById(repairOrder);
|
repairOrderMapper.updateById(repairOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单编号
|
* 工单编号
|
||||||
* @return
|
* @return
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ import com.hcy.front.validate.PageParam;
|
||||||
import com.hcy.front.validate.order.RoutingInspectionOrderParam;
|
import com.hcy.front.validate.order.RoutingInspectionOrderParam;
|
||||||
import com.hcy.front.vo.client.EquipmentListVo;
|
import com.hcy.front.vo.client.EquipmentListVo;
|
||||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||||
|
import com.hcy.front.vo.order.OrderStatusCountVo;
|
||||||
import com.hcy.front.vo.order.RoutingInspectionOrderDetailVo;
|
import com.hcy.front.vo.order.RoutingInspectionOrderDetailVo;
|
||||||
import com.hcy.front.vo.order.RoutingInspectionOrderListVo;
|
import com.hcy.front.vo.order.RoutingInspectionOrderListVo;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
@ -403,6 +404,62 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
||||||
routingInspectionOrderMapper.updateById(model);
|
routingInspectionOrderMapper.updateById(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计工单状态数量
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public OrderStatusCountVo orderStatusCount(RoutingInspectionOrderParam routingInspectionOrderParam) {
|
||||||
|
|
||||||
|
RoutingInspectionOrderDto routingInspectionOrderDto = new RoutingInspectionOrderDto();
|
||||||
|
BeanUtils.copyProperties(routingInspectionOrderParam,routingInspectionOrderDto);
|
||||||
|
|
||||||
|
if(routingInspectionOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){
|
||||||
|
routingInspectionOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人
|
||||||
|
if(StringUtils.isEmpty(routingInspectionOrderParam.getOrderStatusIds())){
|
||||||
|
routingInspectionOrderDto.setOrderStatusIds("1,2,5");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(StringUtils.isEmpty(routingInspectionOrderParam.getOrderStatusIds())){
|
||||||
|
routingInspectionOrderDto.setOrderStatusIds("0,1,2,5");
|
||||||
|
}
|
||||||
|
routingInspectionOrderDto.setClientId(routingInspectionOrderDto.getClientId()); // 客户id
|
||||||
|
}
|
||||||
|
|
||||||
|
// 待接单数量
|
||||||
|
Integer pendingOrderCount = routingInspectionOrderMapper.selectPendingOrderCount(routingInspectionOrderDto);
|
||||||
|
|
||||||
|
// 待巡检数量
|
||||||
|
Integer toBeInspectedCount = routingInspectionOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<RoutingInspectionOrder>()
|
||||||
|
.eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(RoutingInspectionOrder:: getOrderStatus, OrderStateEnum.TO_BE_INSPECTED.getStatus())
|
||||||
|
.eq(routingInspectionOrderDto.getClientId() != null, RoutingInspectionOrder::getClientId, routingInspectionOrderDto.getClientId())
|
||||||
|
.eq(routingInspectionOrderDto.getReceiverId() != null, RoutingInspectionOrder::getReceiverId, routingInspectionOrderDto.getReceiverId()));
|
||||||
|
// 巡检中数量
|
||||||
|
Integer duringInspectionCount = routingInspectionOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<RoutingInspectionOrder>()
|
||||||
|
.eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(RoutingInspectionOrder:: getOrderStatus, OrderStateEnum.DURING_INSPECTION.getStatus())
|
||||||
|
.eq(routingInspectionOrderDto.getClientId() != null, RoutingInspectionOrder::getClientId, routingInspectionOrderDto.getClientId())
|
||||||
|
.eq(routingInspectionOrderDto.getReceiverId() != null, RoutingInspectionOrder::getReceiverId, routingInspectionOrderDto.getReceiverId()));
|
||||||
|
// 已完成数量
|
||||||
|
Integer completedCount = routingInspectionOrderMapper.selectCount(
|
||||||
|
new LambdaQueryWrapper<RoutingInspectionOrder>()
|
||||||
|
.eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(RoutingInspectionOrder:: getOrderStatus, OrderStateEnum.COMPLETED.getStatus())
|
||||||
|
.eq(routingInspectionOrderDto.getClientId() != null, RoutingInspectionOrder::getClientId, routingInspectionOrderDto.getClientId())
|
||||||
|
.eq(routingInspectionOrderDto.getReceiverId() != null, RoutingInspectionOrder::getReceiverId, routingInspectionOrderDto.getReceiverId()));
|
||||||
|
|
||||||
|
OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo();
|
||||||
|
orderStatusCountVo.setPendingOrderCount(pendingOrderCount); // 待接单
|
||||||
|
orderStatusCountVo.setToBeInspectedCount(toBeInspectedCount); // 待巡检
|
||||||
|
orderStatusCountVo.setDuringInspectionCount(duringInspectionCount); // 巡检中
|
||||||
|
orderStatusCountVo.setCompletedCount(completedCount); // 已完成
|
||||||
|
return orderStatusCountVo;
|
||||||
|
}
|
||||||
|
|
||||||
private String getOrderNo() {
|
private String getOrderNo() {
|
||||||
//获取当前日期并将其进行格式化
|
//获取当前日期并将其进行格式化
|
||||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
|
||||||
|
|
|
||||||
|
|
@ -121,4 +121,6 @@ public class MaintenanceOrderParam implements Serializable {
|
||||||
private String expressNo; // 快递单号
|
private String expressNo; // 快递单号
|
||||||
private String moduleNo; // 模块号
|
private String moduleNo; // 模块号
|
||||||
private String moduleImg; // 模块图片
|
private String moduleImg; // 模块图片
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,9 +116,23 @@ public class RepairOrderParam implements Serializable {
|
||||||
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门
|
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门
|
||||||
|
|
||||||
private String preMaintenanceImg; // 维修前照片
|
private String preMaintenanceImg; // 维修前照片
|
||||||
|
private String inMaintenanceImg; // 维修中照片
|
||||||
|
private String afterRepairImg; // 维修后照片
|
||||||
private String faultPointImg; // 故障点照片
|
private String faultPointImg; // 故障点照片
|
||||||
private Integer scrapOrNot; // 是否报废(0=是,1=否)
|
private Integer scrapOrNot; // 是否报废(0=是,1=否)
|
||||||
private Long scrapFaultId; // 报废类型id
|
private Long scrapFaultId; // 报废类型id
|
||||||
private String scrapAddress; // 报废地址
|
private Long scrapAddressId; // 报废地址
|
||||||
private String scrapExplain; // 报废说明
|
private String scrapExplain; // 报废说明
|
||||||
|
private String faultCode; // 故障代码
|
||||||
|
private String refuseMaintenanceCause; // 拒绝维修原因
|
||||||
|
|
||||||
|
private Long consigneeAddressId; // 收件地址
|
||||||
|
private String clientScrapRemark; // 客户报废备注
|
||||||
|
private String expressNo; // 快递单号
|
||||||
|
private Long familiarFaultId; // 常见维修结论id
|
||||||
|
private String familiarFaultDescription; // 常见维修结论描述
|
||||||
|
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -85,4 +85,5 @@ public class RoutingInspectionOrderParam implements Serializable {
|
||||||
private String cancelCause; // 取消原因
|
private String cancelCause; // 取消原因
|
||||||
|
|
||||||
private Integer isClient; //是否客户 0-客户端 1-检修员端
|
private Integer isClient; //是否客户 0-客户端 1-检修员端
|
||||||
|
private String orderStatusIds; //订单状态ids
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,4 +63,6 @@ public class MaintenanceOrderDetailVo implements Serializable {
|
||||||
private List<OrderSparePartListVo> sparePartList; // 备件清单
|
private List<OrderSparePartListVo> sparePartList; // 备件清单
|
||||||
private EquipmentModelDetailVo equipmentModel; //设备模块信息
|
private EquipmentModelDetailVo equipmentModel; //设备模块信息
|
||||||
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
|
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,4 +60,13 @@ public class MaintenanceOrderListVo implements Serializable {
|
||||||
private String creatorName; // 创建人姓名
|
private String creatorName; // 创建人姓名
|
||||||
private String receiverName; // 接单人姓名
|
private String receiverName; // 接单人姓名
|
||||||
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
|
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
|
||||||
|
|
||||||
|
private Integer pendingOrderCount; // 待接单数量
|
||||||
|
private Integer checkingCount; // 检测中数量
|
||||||
|
private Integer toBeConfirmedCount; // 待确认数量
|
||||||
|
private Integer inMaintenanceCount; // 维修中数量
|
||||||
|
private Integer completedCount; // 已完成数量
|
||||||
|
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.hcy.front.vo.order;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MaintenanceOrderVo
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OrderStatusCountVo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Integer pendingOrderCount; // 待接单数量
|
||||||
|
private Integer checkingCount; // 检测中数量
|
||||||
|
private Integer toBeConfirmedCount; // 待确认数量
|
||||||
|
private Integer inMaintenanceCount; // 维修中数量
|
||||||
|
private Integer completedCount; // 已完成数量
|
||||||
|
|
||||||
|
private Integer toBeInspectedCount; // 待巡检数量
|
||||||
|
private Integer duringInspectionCount; // 巡检中
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -28,6 +28,7 @@ public class RepairOrderDetailVo implements Serializable {
|
||||||
private String clientContacts; // 客户联系人
|
private String clientContacts; // 客户联系人
|
||||||
private String clientPhone; // 客户联系电话
|
private String clientPhone; // 客户联系电话
|
||||||
private Long faultId; // 故障id
|
private Long faultId; // 故障id
|
||||||
|
private String faultCode; // 故障代码
|
||||||
private String faultDescription; // 故障描述
|
private String faultDescription; // 故障描述
|
||||||
private String moduleNumber; // 模块号
|
private String moduleNumber; // 模块号
|
||||||
private String brand; // 品牌
|
private String brand; // 品牌
|
||||||
|
|
@ -53,5 +54,12 @@ public class RepairOrderDetailVo implements Serializable {
|
||||||
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
|
||||||
private UserAddressListVo address; //地址信息
|
private UserAddressListVo address; //地址信息
|
||||||
private EquipmentListVo equipment; //设备信息
|
private EquipmentListVo equipment; //设备信息
|
||||||
|
private Integer scrapAddressId; // 报废地址
|
||||||
|
private UserAddressListVo scrapAddress; //报废地址信息
|
||||||
|
private Integer deliveryMethod; // 收件方式(0=物流快递 1-上门取件 2-送货上门)
|
||||||
|
private Long consigneeAddressId; // 收件地址
|
||||||
|
private String clientScrapRemark; // 客户报废备注
|
||||||
|
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ public class RepairOrderListVo implements Serializable {
|
||||||
private String clientContacts; // 客户联系人
|
private String clientContacts; // 客户联系人
|
||||||
private String clientPhone; // 客户联系电话
|
private String clientPhone; // 客户联系电话
|
||||||
private Long faultId; // 故障id
|
private Long faultId; // 故障id
|
||||||
|
private String faultCode; // 故障代码
|
||||||
private String faultDescription; // 故障描述
|
private String faultDescription; // 故障描述
|
||||||
private String moduleNumber; // 模块号
|
private String moduleNumber; // 模块号
|
||||||
private String brand; // 品牌
|
private String brand; // 品牌
|
||||||
|
|
@ -56,5 +57,10 @@ public class RepairOrderListVo implements Serializable {
|
||||||
private String equipmentNo; //设备编号
|
private String equipmentNo; //设备编号
|
||||||
private String equipmentName; //设备名称
|
private String equipmentName; //设备名称
|
||||||
private String detailedAddress; //设备详情地址
|
private String detailedAddress; //设备详情地址
|
||||||
|
private Integer scrapAddressId; // 报废地址
|
||||||
|
private Integer deliveryMethod; // 收件方式(0=物流快递 1-上门取件 2-送货上门)
|
||||||
|
private Long consigneeAddressId; // 收件地址
|
||||||
|
private String clientScrapRemark; // 客户报废备注
|
||||||
|
private String completeImg; // 完工照片
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue