【admin&front】新增&修复# 1、新增维修单、巡检单工单记录 2、优化数据大屏设备总数、工单总数、今日工单总数根据用户id查询

dev
renfan 2024-08-30 20:40:37 +08:00
parent 42b44cdf83
commit a53b42f186
19 changed files with 445 additions and 135 deletions

View File

@ -112,8 +112,8 @@ public class LargeDataScreenController {
* @return Object * @return Object
*/ */
@GetMapping("/allNumber") @GetMapping("/allNumber")
public Object allNumber() { public Object allNumber(Integer clientId) {
LargeDataVo largeDataVo = iLargeDataScreenService.allNumber(); LargeDataVo largeDataVo = iLargeDataScreenService.allNumber(clientId);
return AjaxResult.success(largeDataVo); return AjaxResult.success(largeDataVo);
} }

View File

@ -55,19 +55,6 @@ public class RepairOrderController {
return AjaxResult.success(detail); return AjaxResult.success(detail);
} }
/**
*
*
* @author hcy
* @param repairOrderParam
* @return Object
*/
@Log(title = "维修订单新增")
@PostMapping("/add")
public Object add(@Validated(value = RepairOrderParam.create.class) @RequestBody RepairOrderParam repairOrderParam) {
iRepairOrderService.add(repairOrderParam);
return AjaxResult.success();
}
/** /**
* *

View File

@ -42,7 +42,7 @@ public interface ILargeDataScreenService {
* *
* @return * @return
*/ */
LargeDataVo allNumber(); LargeDataVo allNumber(Integer clientId);
/** /**
* *

View File

@ -152,7 +152,7 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
* @return * @return
*/ */
@Override @Override
public LargeDataVo allNumber() { public LargeDataVo allNumber(Integer clientId) {
LargeDataVo vo = new LargeDataVo(); LargeDataVo vo = new LargeDataVo();
//客户总数 //客户总数
Integer clientCount = clientMapper.selectCount( Integer clientCount = clientMapper.selectCount(
@ -160,43 +160,51 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService {
.eq("is_delete", GlobalConstant.NOT_DELETE)); .eq("is_delete", GlobalConstant.NOT_DELETE));
//设备总数 //设备总数
Integer equipmentCount = equipmentMapper.selectCount( Integer equipmentCount = equipmentMapper.selectCount(
new QueryWrapper<Equipment>() new LambdaQueryWrapper<Equipment>()
.eq("is_delete", GlobalConstant.NOT_DELETE)); .eq(Equipment::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(clientId != null, Equipment::getClientId, clientId));
//工单总数=检修单总数+维修单总数+巡检单总数 //工单总数=检修单总数+维修单总数+巡检单总数
//巡检单总数 //巡检单总数
Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount( Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
new QueryWrapper<RoutingInspectionOrder>() new LambdaQueryWrapper<RoutingInspectionOrder>()
.eq("is_delete", GlobalConstant.NOT_DELETE)); .eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(clientId != null, RoutingInspectionOrder::getClientId, clientId));
//检修单总数 //检修单总数
Integer maintenanceOrderCount = maintenanceOrderMapper.selectCount( Integer maintenanceOrderCount = maintenanceOrderMapper.selectCount(
new QueryWrapper<MaintenanceOrder>() new LambdaQueryWrapper<MaintenanceOrder>()
.eq("is_delete", GlobalConstant.NOT_DELETE)); .eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(clientId != null, MaintenanceOrder::getClientId, clientId));
//维修单总数 //维修单总数
Integer repairOrderCount = repairOrderMapper.selectCount( Integer repairOrderCount = repairOrderMapper.selectCount(
new LambdaQueryWrapper<RepairOrder>() new LambdaQueryWrapper<RepairOrder>()
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)); .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(clientId != null, RepairOrder::getClientId, clientId));
//今日工单总数=今日检修单总数+今日维修单总数+今日巡检单总数 //今日工单总数=今日检修单总数+今日维修单总数+今日巡检单总数
LocalDateTime startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN); LocalDateTime startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN);// 开始时间
LocalDateTime endTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MAX); LocalDateTime endTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MAX);// 结束时间
//今日检修单总数 //今日检修单总数
Integer todayRoutingInspectionOrderCount = routingInspectionOrderMapper.selectCount( Integer todayRoutingInspectionOrderCount = routingInspectionOrderMapper.selectCount(
new QueryWrapper<RoutingInspectionOrder>() new LambdaQueryWrapper<RoutingInspectionOrder>()
.eq("is_delete", GlobalConstant.NOT_DELETE) .eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .ge(RoutingInspectionOrder::getCreateTime, Timestamp.valueOf(startTime))
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间 .le(RoutingInspectionOrder::getCreateTime, Timestamp.valueOf(endTime))
.eq(clientId != null, RoutingInspectionOrder::getClientId, clientId));
//今日检修单总数 //今日检修单总数
Integer todayMaintenanceOrderCount = maintenanceOrderMapper.selectCount( Integer todayMaintenanceOrderCount = maintenanceOrderMapper.selectCount(
new QueryWrapper<MaintenanceOrder>() new LambdaQueryWrapper<MaintenanceOrder>()
.eq("is_delete", GlobalConstant.NOT_DELETE) .eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .ge(MaintenanceOrder::getCreateTime, Timestamp.valueOf(startTime))
.le("create_time", Timestamp.valueOf(endTime))); // 结束时间 .le(MaintenanceOrder::getCreateTime, Timestamp.valueOf(endTime))
.eq(clientId != null, MaintenanceOrder::getClientId, clientId));
//今日维修单总数 //今日维修单总数
Integer todayRepairOrderCount = repairOrderMapper.selectCount( Integer todayRepairOrderCount = repairOrderMapper.selectCount(
new LambdaQueryWrapper<RepairOrder>() new LambdaQueryWrapper<RepairOrder>()
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE) .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.ge(RepairOrder::getCreateTime, Timestamp.valueOf(startTime)) .ge(RepairOrder::getCreateTime, Timestamp.valueOf(startTime))
.le(RepairOrder::getCreateTime, Timestamp.valueOf(endTime))); .le(RepairOrder::getCreateTime, Timestamp.valueOf(endTime))
.eq(clientId != null, RepairOrder::getClientId, clientId));
vo.setClientSum(clientCount); // 客户总数 vo.setClientSum(clientCount); // 客户总数
vo.setEquipmentSum(equipmentCount); // 设备总数 vo.setEquipmentSum(equipmentCount); // 设备总数

View File

@ -40,4 +40,21 @@ public interface IOrderOperateRecordService {
* @param description * @param description
*/ */
void addRepairOrder(Long orderId,String titleDsc,Integer dscType,String description); void addRepairOrder(Long orderId,String titleDsc,Integer dscType,String description);
/**
*
* @param orderId id
* @param titleDsc
* @param description
*/
void addRoutingInspectionOrder(Long orderId,String titleDsc,String description);
/**
*
* @param orderId id
* @param titleDsc
* @param dscType
* @param description
*/
void addRoutingInspectionOrder(Long orderId,String titleDsc,Integer dscType,String description);
} }

View File

@ -32,14 +32,6 @@ public interface IRepairOrderService {
*/ */
RepairOrderDetailVo detail(Integer id); RepairOrderDetailVo detail(Integer id);
/**
*
*
* @author hcy
* @param repairOrderParam
*/
void add(RepairOrderParam repairOrderParam);
/** /**
* *
* *

View File

@ -60,4 +60,25 @@ public class OrderOperateRecordServiceImpl implements IOrderOperateRecordService
orderOperateRecord.setDescription(description); orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord); orderOperateRecordMapper.insert(orderOperateRecord);
} }
@Override
public void addRoutingInspectionOrder(Long orderId,String titleDsc,String description) {
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
orderOperateRecord.setOrderId(orderId);
orderOperateRecord.setOrderType(SparePartStockAuditEnum.ADDROUTING_INSPECTION_ORDER.getStatus());
orderOperateRecord.setTitle(titleDsc);
orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord);
}
@Override
public void addRoutingInspectionOrder(Long orderId,String titleDsc,Integer dscType,String description) {
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
orderOperateRecord.setOrderId(orderId);
orderOperateRecord.setOrderType(SparePartStockAuditEnum.ADDROUTING_INSPECTION_ORDER.getStatus());
orderOperateRecord.setTitle(titleDsc);
orderOperateRecord.setDscType(dscType);
orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord);
}
} }

View File

@ -26,6 +26,7 @@ import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.Equipment; import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.fault.Fault; import com.hcy.common.entity.fault.Fault;
import com.hcy.common.entity.order.MaintenanceOrder; import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.order.OrderOperateRecord;
import com.hcy.common.entity.order.RepairOrder; import com.hcy.common.entity.order.RepairOrder;
import com.hcy.common.entity.order.RoutingInspectionOrder; import com.hcy.common.entity.order.RoutingInspectionOrder;
import com.hcy.common.entity.plant.Plant; import com.hcy.common.entity.plant.Plant;
@ -35,6 +36,7 @@ import com.hcy.common.entity.user.User;
import com.hcy.common.entity.warehouse.Warehouse; import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.SparePartStockAuditEnum; import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.enums.order.OrderOperateRecordEnum;
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.exception.OperateException;
@ -42,6 +44,7 @@ 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;
import com.hcy.common.mapper.fault.FaultMapper; import com.hcy.common.mapper.fault.FaultMapper;
import com.hcy.common.mapper.order.OrderOperateRecordMapper;
import com.hcy.common.mapper.order.OrderSparePartMapper; import com.hcy.common.mapper.order.OrderSparePartMapper;
import com.hcy.common.mapper.order.RepairOrderMapper; import com.hcy.common.mapper.order.RepairOrderMapper;
import com.hcy.common.mapper.plant.PlantMapper; import com.hcy.common.mapper.plant.PlantMapper;
@ -55,6 +58,7 @@ import com.hcy.common.utils.UrlUtil;
import com.hcy.common.config.GlobalConfig; import com.hcy.common.config.GlobalConfig;
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.util.Assert; import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -104,6 +108,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
@Resource @Resource
SparePartStockAuditMapper sparePartStockAuditMapper; SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
OrderOperateRecordServiceImpl orderOperateRecordService;
@Resource
OrderOperateRecordMapper orderOperateRecordMapper;
/** /**
* *
* *
@ -323,48 +333,15 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
if(familiarFaultName != null){ if(familiarFaultName != null){
vo.setFamiliarFaultName(familiarFaultName.getName()); vo.setFamiliarFaultName(familiarFaultName.getName());
} }
//设置订单操作记录
LambdaQueryWrapper<OrderOperateRecord> queryWrapper = new LambdaQueryWrapper<OrderOperateRecord>()
.eq(OrderOperateRecord::getOrderType, OrderOperateRecordEnum.REPAIR.getStatus())
.eq(OrderOperateRecord::getOrderId, model.getId());
vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));;
return vo; 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()); // 现场照片
// 获取当前的用户
String adminId = AdminThreadLocal.get("adminId").toString();
model.setCreatorId(Long.valueOf(adminId)); // 创建人id
model.setCreateTime(new Date()); //创建时间
repairOrderMapper.insert(model);
}
/** /**
* *
* *
@ -372,6 +349,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
* @param repairOrderParam * @param repairOrderParam
*/ */
@Override @Override
@Transactional
public void edit(RepairOrderParam repairOrderParam) { public void edit(RepairOrderParam repairOrderParam) {
RepairOrder model = repairOrderMapper.selectOne( RepairOrder model = repairOrderMapper.selectOne(
new QueryWrapper<RepairOrder>() new QueryWrapper<RepairOrder>()
@ -383,20 +361,31 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
model.setClientId(repairOrderParam.getClientId()); // 客户id model.setClientId(repairOrderParam.getClientId()); // 客户id
model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id
model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号 model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号
model.setBrand(repairOrderParam.getBrand()); // 品牌 model.setBrand(repairOrderParam.getBrand()); // 品牌
model.setPriorityId(repairOrderParam.getPriorityId()); // 优先级 0-普通 1-加急 model.setPriorityId(repairOrderParam.getPriorityId()); // 优先级 0-普通 1-加急
model.setLogisticsMode(repairOrderParam.getLogisticsMode()); // 物流方式 0-物流快递 1=自领带回 model.setLogisticsMode(repairOrderParam.getLogisticsMode()); // 物流方式 0-物流快递 1=自领带回
model.setExpressName(repairOrderParam.getExpressName()); // 快递名称 model.setExpressName(repairOrderParam.getExpressName()); // 快递名称
model.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄0=是 1=否) model.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄0=是 1=否)
model.setRepairWorkOrderFlow(repairOrderParam.getRepairWorkOrderFlow()); // 工单去向 0=工单池 1=检修员 model.setRepairWorkOrderFlow(repairOrderParam.getRepairWorkOrderFlow()); // 工单去向 0=工单池 1=检修员
model.setReceiverType(repairOrderParam.getReceiverType()); // 接单类型 0-区域派单1-距离派单 model.setReceiverType(repairOrderParam.getReceiverType()); // 接单类型 0-区域派单1-距离派单
model.setReceiverId(repairOrderParam.getReceiverId()); // 接单人id
model.setOrderDistance(repairOrderParam.getOrderDistance()); // 自动抢单最大距离 model.setOrderDistance(repairOrderParam.getOrderDistance()); // 自动抢单最大距离
model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述 model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述
model.setRemark(repairOrderParam.getRemark()); // 备注 model.setRemark(repairOrderParam.getRemark()); // 备注
model.setAddressId(repairOrderParam.getAddressId()); // 回寄地址 model.setAddressId(repairOrderParam.getAddressId()); // 回寄地址
//重新指派员工
if(repairOrderParam.getReceiverId() != null && repairOrderParam.getId() != null){
model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
User user = userMapper.selectById(repairOrderParam.getReceiverId());
if(user != null){
//新增订单操作记录
orderOperateRecordService.addRepairOrder(model.getId()
, OrderOperateRecordEnum.APPOINT.getDesc()
,"【"+AdminThreadLocal.get("username")+"】重新分配工单给检修员【"+user.getUsername()+"】");
}
}
repairOrderMapper.updateById(model); repairOrderMapper.updateById(model);
} }
@ -505,6 +494,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
* @param repairOrderParam * @param repairOrderParam
*/ */
@Override @Override
@Transactional
public void reassignment(RepairOrderParam repairOrderParam) { public void reassignment(RepairOrderParam repairOrderParam) {
RepairOrder model = repairOrderMapper.selectOne( RepairOrder model = repairOrderMapper.selectOne(
new QueryWrapper<RepairOrder>() new QueryWrapper<RepairOrder>()
@ -514,11 +504,25 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
Assert.notNull(model, "数据不存在!"); Assert.notNull(model, "数据不存在!");
model.setReceiverId(repairOrderParam.getReceiverId()); model.setReceiverId(repairOrderParam.getReceiverId());
//如果是退单状态,重新派工后状态改为待接单 //如果是退单状态,重新派工后状态改为待接单
if(model.getOrderStatus() == OrderStateEnum.RETURNED_ORDER.getStatus()){ if(model.getOrderStatus() == OrderStateEnum.RETURNED_ORDER.getStatus()){
model.setOrderStatus(OrderStateEnum.PENDING_ORDER.getStatus()); model.setOrderStatus(OrderStateEnum.PENDING_ORDER.getStatus());
} }
repairOrderMapper.updateById(model); repairOrderMapper.updateById(model);
//重新指派员工
if(repairOrderParam.getReceiverId() != null && repairOrderParam.getId() != null){
model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
User user = userMapper.selectById(repairOrderParam.getReceiverId());
if(user != null){
//新增订单操作记录
orderOperateRecordService.addRepairOrder(model.getId()
,OrderOperateRecordEnum.APPOINT.getDesc()
,"【"+AdminThreadLocal.get("username")+"】重新分配工单给检修员【"+user.getUsername()+"】");
}
}
} }
/** /**

View File

@ -19,13 +19,17 @@ import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.Equipment; import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.fault.Fault; import com.hcy.common.entity.fault.Fault;
import com.hcy.common.entity.order.MaintenanceOrder; import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.order.OrderOperateRecord;
import com.hcy.common.entity.order.RoutingInspectionOrder; import com.hcy.common.entity.order.RoutingInspectionOrder;
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.OrderOperateRecordEnum;
import com.hcy.common.enums.order.OrderStateEnum; import com.hcy.common.enums.order.OrderStateEnum;
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;
import com.hcy.common.mapper.fault.FaultMapper; import com.hcy.common.mapper.fault.FaultMapper;
import com.hcy.common.mapper.order.OrderOperateRecordMapper;
import com.hcy.common.mapper.order.RoutingInspectionOrderMapper; import com.hcy.common.mapper.order.RoutingInspectionOrderMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper; import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.user.UserMapper; import com.hcy.common.mapper.user.UserMapper;
@ -33,6 +37,7 @@ import com.hcy.common.utils.TimeUtil;
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.util.Assert; import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -66,6 +71,12 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
@Resource @Resource
private IDevRegionService regionService; private IDevRegionService regionService;
@Resource
OrderOperateRecordServiceImpl orderOperateRecordService;
@Resource
OrderOperateRecordMapper orderOperateRecordMapper;
/** /**
* *
* *
@ -165,6 +176,12 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
if(authAdmin != null){ if(authAdmin != null){
vo.setCreatorName(authAdmin.getUsername()); vo.setCreatorName(authAdmin.getUsername());
} }
//设置订单操作记录
LambdaQueryWrapper<OrderOperateRecord> queryWrapper = new LambdaQueryWrapper<OrderOperateRecord>()
.eq(OrderOperateRecord::getOrderType, OrderOperateRecordEnum.ROUTING_INSPECTION.getStatus())
.eq(OrderOperateRecord::getOrderId, model.getId());
vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));;
return vo; return vo;
} }
@ -175,6 +192,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam * @param routingInspectionOrderParam
*/ */
@Override @Override
@Transactional
public void add(RoutingInspectionOrderParam routingInspectionOrderParam) { public void add(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = new RoutingInspectionOrder(); RoutingInspectionOrder model = new RoutingInspectionOrder();
@ -209,6 +227,11 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
if(client != null && systemAuthAdmin != null && equipment != null){ if(client != null && systemAuthAdmin != null && equipment != null){
WebsocketHandler.sendMessageToClient("【"+systemAuthAdmin.getUsername()+"】于【"+TimeUtil.dateTransitionString(currentTime)+"】为客户【"+client.getClientName()+"】新建巡检工单,报修设备【"+equipment.getName()+"】;"); WebsocketHandler.sendMessageToClient("【"+systemAuthAdmin.getUsername()+"】于【"+TimeUtil.dateTransitionString(currentTime)+"】为客户【"+client.getClientName()+"】新建巡检工单,报修设备【"+equipment.getName()+"】;");
} }
//新增巡检单操作记录
orderOperateRecordService.addMaintenanceOrder(model.getId()
, OrderOperateRecordEnum.NEW_CREATE.getDesc()
,"客户【"+AdminThreadLocal.get("username")+"】创建了巡检工单。");
} }
/** /**
@ -316,11 +339,25 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
Assert.notNull(model, "数据不存在!"); Assert.notNull(model, "数据不存在!");
model.setReceiverId(routingInspectionOrderParam.getReceiverId()); model.setReceiverId(routingInspectionOrderParam.getReceiverId());
//如果是退单状态,重新派工后状态改为待接单 //如果是退单状态,重新派工后状态改为待接单
if(model.getOrderStatus() == OrderStateEnum.RETURNED_ORDER.getStatus()){ if(model.getOrderStatus() == OrderStateEnum.RETURNED_ORDER.getStatus()){
model.setOrderStatus(OrderStateEnum.PENDING_ORDER.getStatus()); model.setOrderStatus(OrderStateEnum.PENDING_ORDER.getStatus());
} }
routingInspectionOrderMapper.updateById(model); routingInspectionOrderMapper.updateById(model);
//重新指派员工
if(routingInspectionOrderParam.getReceiverId() != null && routingInspectionOrderParam.getId() != null){
model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
User user = userMapper.selectById(routingInspectionOrderParam.getReceiverId());
if(user != null){
//新增订单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
,OrderOperateRecordEnum.APPOINT.getDesc()
,"【"+AdminThreadLocal.get("username")+"】重新分配工单给检修员【"+user.getUsername()+"】");
}
}
} }
/** /**

View File

@ -721,8 +721,8 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
User user = userMapper.selectById(repairOrder.getReceiverId()); User user = userMapper.selectById(repairOrder.getReceiverId());
if(user != null){ if(user != null){
//新增修单操作记录 //新增修单操作记录
orderOperateRecordService.addMaintenanceOrder(model.getOrderId() orderOperateRecordService.addRepairOrder(model.getOrderId()
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc() , OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc()
,OrderOperateRecordEnum.AUDIT.getStatus() ,OrderOperateRecordEnum.AUDIT.getStatus()
,"仓管员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+sparePartStockAuditParam.getPurchaseIdea()+"。系统会自动退回到检修员【"+user.getUsername()+"】重新报价。"); ,"仓管员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+sparePartStockAuditParam.getPurchaseIdea()+"。系统会自动退回到检修员【"+user.getUsername()+"】重新报价。");

View File

@ -8,6 +8,7 @@ import com.hcy.admin.vo.client.EquipmentModelDetailVo;
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo; import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
import com.hcy.common.entity.address.UserAddress; import com.hcy.common.entity.address.UserAddress;
import com.hcy.common.entity.client.Equipment; import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.order.OrderOperateRecord;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -111,6 +112,7 @@ public class RepairOrderDetailVo implements Serializable {
private Long userId; // 送修人 private Long userId; // 送修人
private Integer maintainType; // 客户维修类型 模块维修类型 0-全包 1-半包 private Integer maintainType; // 客户维修类型 模块维修类型 0-全包 1-半包
private List<OrderOperateRecord> orderOperateRecords; //订单操作记录
} }

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.hcy.admin.validate.order.RoutingInspectionOrderParam; import com.hcy.admin.validate.order.RoutingInspectionOrderParam;
import com.hcy.admin.vo.client.EquipmentListVo; import com.hcy.admin.vo.client.EquipmentListVo;
import com.hcy.common.entity.client.Equipment; import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.order.OrderOperateRecord;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
@ -13,6 +14,7 @@ import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* RoutingInspectionOrderVo * RoutingInspectionOrderVo
@ -53,5 +55,6 @@ public class RoutingInspectionOrderDetailVo implements Serializable {
private Integer inspectionResult; //巡检结果0=正常 1=异常) private Integer inspectionResult; //巡检结果0=正常 1=异常)
private String inspectionPhoto; //巡检照片 private String inspectionPhoto; //巡检照片
private String inspectionResultRemark; //巡检结果备注 private String inspectionResultRemark; //巡检结果备注
private List<OrderOperateRecord> orderOperateRecords; //订单操作记录
} }

View File

@ -42,5 +42,4 @@ public class SystemAuthAdminVo implements Serializable {
private String email; // 邮箱 private String email; // 邮箱
private String technicalGrade; // 技术等级 private String technicalGrade; // 技术等级
private Integer receiveOrderStatus; //接单状态0=休假/停止接单中 1=作业中 2=可接单) private Integer receiveOrderStatus; //接单状态0=休假/停止接单中 1=作业中 2=可接单)
} }

View File

@ -8,6 +8,7 @@ public enum SparePartStockAuditEnum {
MAINTENANCE_ORDER(0, "检修工单"), MAINTENANCE_ORDER(0, "检修工单"),
REPAIR_ORDER(1, "维修工单"), REPAIR_ORDER(1, "维修工单"),
ADDROUTING_INSPECTION_ORDER(2, "巡检工单"),
EXPRESSAGE(1,"物流快递"), EXPRESSAGE(1,"物流快递"),
SELF_TAKE(2,"自行取件"), SELF_TAKE(2,"自行取件"),

View File

@ -15,14 +15,20 @@ public enum OrderOperateRecordEnum {
APPOINT(1,"分配"), APPOINT(1,"分配"),
ORDER_RECEIVING(2,"接单"), ORDER_RECEIVING(2,"接单"),
START_SERVICE(3,"开始服务"), START_SERVICE(3,"开始服务"),
START_ROUTING_INSPECTION(3,"开始巡检"),
CUSTOMER_QUOTATION(4,"客户报价"), CUSTOMER_QUOTATION(4,"客户报价"),
FAULT_DETECT(4,"故障检测"),
CUSTOMER_CONFIRM(5,"客户确认"), CUSTOMER_CONFIRM(5,"客户确认"),
INSPECTION_COMPLETED(5,"巡检完成"),
SPARE_PARTS_RECEIVE(9,"配件领用"), SPARE_PARTS_RECEIVE(9,"配件领用"),
UPLOADING_IN_MAINTENANCE(6, "上传维修中照片"),
UPLOADING_AFTER_REPAIR(7, "上传维修后照片"),
SPARE_PARTS_AUDIT_ONE(5,"备件领用一级审核"), SPARE_PARTS_AUDIT_ONE(5,"备件领用一级审核"),
SPARE_PARTS_AUDIT_TWO(6,"备件领用二级审核"), SPARE_PARTS_AUDIT_TWO(6,"备件领用二级审核"),
DELIVER_GOODS(7,"发货"), DELIVER_GOODS(7,"发货"),
RECEIVE_GOODS(8,"收货"), RECEIVE_GOODS(8,"收货"),
FILL_IN_RECEIPT(10,"填写回单"), FILL_IN_RECEIPT(10,"填写回单"),
FILL_IN_SCRAP_FORM(10, "填写报废单"),
FINISH(11,"完成"), FINISH(11,"完成"),
REFUND(11,"退单"), REFUND(11,"退单"),

View File

@ -1,5 +1,7 @@
package com.hcy.front.service.order; package com.hcy.front.service.order;
import com.hcy.common.entity.order.RepairOrder;
/** /**
* *
*/ */
@ -21,4 +23,39 @@ public interface IOrderOperateRecordService {
* @param description * @param description
*/ */
void addMaintenanceOrder(Long orderId,String titleDsc,Integer dscType,String description); void addMaintenanceOrder(Long orderId,String titleDsc,Integer dscType,String description);
/**
*
* @param orderId id
* @param titleDsc
* @param description
*/
void addRepairOrder(Long orderId,String titleDsc,String description);
/**
*
* @param orderId id
* @param titleDsc
* @param dscType
* @param description
*/
void addRepairOrder(Long orderId,String titleDsc,Integer dscType,String description);
/**
*
* @param orderId id
* @param titleDsc
* @param description
*/
void addRoutingInspectionOrder(Long orderId,String titleDsc,String description);
/**
*
* @param orderId id
* @param titleDsc
* @param dscType
* @param description
*/
void addRoutingInspectionOrder(Long orderId,String titleDsc,Integer dscType,String description);
} }

View File

@ -37,4 +37,46 @@ public class OrderOperateRecordServiceImpl implements IOrderOperateRecordService
orderOperateRecord.setDescription(description); orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord); orderOperateRecordMapper.insert(orderOperateRecord);
} }
@Override
public void addRepairOrder(Long orderId,String titleDsc,String description) {
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
orderOperateRecord.setOrderId(orderId);
orderOperateRecord.setOrderType(SparePartStockAuditEnum.REPAIR_ORDER.getStatus());
orderOperateRecord.setTitle(titleDsc);
orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord);
}
@Override
public void addRepairOrder(Long orderId,String titleDsc,Integer dscType,String description) {
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
orderOperateRecord.setOrderId(orderId);
orderOperateRecord.setOrderType(SparePartStockAuditEnum.REPAIR_ORDER.getStatus());
orderOperateRecord.setTitle(titleDsc);
orderOperateRecord.setDscType(dscType);
orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord);
}
@Override
public void addRoutingInspectionOrder(Long orderId,String titleDsc,String description) {
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
orderOperateRecord.setOrderId(orderId);
orderOperateRecord.setOrderType(SparePartStockAuditEnum.ADDROUTING_INSPECTION_ORDER.getStatus());
orderOperateRecord.setTitle(titleDsc);
orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord);
}
@Override
public void addRoutingInspectionOrder(Long orderId,String titleDsc,Integer dscType,String description) {
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
orderOperateRecord.setOrderId(orderId);
orderOperateRecord.setOrderType(SparePartStockAuditEnum.ADDROUTING_INSPECTION_ORDER.getStatus());
orderOperateRecord.setTitle(titleDsc);
orderOperateRecord.setDscType(dscType);
orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord);
}
} }

View File

@ -6,14 +6,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
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;
import com.hcy.common.dto.order.MaintenanceOrderDto;
import com.hcy.common.dto.order.OrderSparePart; import com.hcy.common.dto.order.OrderSparePart;
import com.hcy.common.dto.order.RepairOrderDto; import com.hcy.common.dto.order.RepairOrderDto;
import com.hcy.common.entity.address.UserAddress; import com.hcy.common.entity.address.UserAddress;
import com.hcy.common.entity.client.Client; import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.Equipment; import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.fault.Fault; import com.hcy.common.entity.fault.Fault;
import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.order.RepairOrder; import com.hcy.common.entity.order.RepairOrder;
import com.hcy.common.entity.plant.Plant; import com.hcy.common.entity.plant.Plant;
import com.hcy.common.entity.sparePart.SparePart; import com.hcy.common.entity.sparePart.SparePart;
@ -24,6 +22,7 @@ import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.ClientStatusEnum; import com.hcy.common.enums.ClientStatusEnum;
import com.hcy.common.enums.SparePartStockAuditEnum; import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.audit.AuditStateEnum; import com.hcy.common.enums.audit.AuditStateEnum;
import com.hcy.common.enums.equipment.EquipmentStateEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.enums.order.OrderOperateRecordEnum; import com.hcy.common.enums.order.OrderOperateRecordEnum;
import com.hcy.common.enums.order.OrderStateEnum; import com.hcy.common.enums.order.OrderStateEnum;
@ -48,14 +47,12 @@ import com.hcy.front.FrontThreadLocal;
import com.hcy.front.service.order.IRepairOrderService; import com.hcy.front.service.order.IRepairOrderService;
import com.hcy.front.service.region.IDevRegionService; import com.hcy.front.service.region.IDevRegionService;
import com.hcy.front.validate.PageParam; 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.order.RepairOrderParam;
import com.hcy.front.validate.warehouse.SparePartParam; 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.*; import com.hcy.front.vo.order.*;
import com.hcy.front.vo.sparePartStockAudit.SparePartStockAuditDetailVo; import com.hcy.front.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
import com.sun.xml.internal.ws.resources.AddressingMessages;
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;
@ -121,9 +118,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
*
* @param repairOrderParam
* @return
*/ */
@Override @Override
public List<RepairOrderListVo> list(RepairOrderParam repairOrderParam) { public List<RepairOrderListVo> list(RepairOrderParam repairOrderParam) {
@ -200,8 +194,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
*
* @return
*/ */
@Override @Override
public OrderStatusCountVo orderStatusCount(RepairOrderParam repairOrderParam) { public OrderStatusCountVo orderStatusCount(RepairOrderParam repairOrderParam) {
@ -265,10 +257,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
*
* @param repairOrderParam
*/ */
@Override @Override
@Transactional
public void confirmServiceOfferPrice(RepairOrderParam repairOrderParam) { public void confirmServiceOfferPrice(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId()); RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在"); Assert.notNull(repairOrder, "数据不存在");
@ -277,11 +268,42 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
if(repairOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){ if(repairOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus()); repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()); repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
Client client = clientMapper.findClientById(repairOrder.getClientId());
if(client != null){
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.CUSTOMER_CONFIRM.getDesc()
,"客户【"+client.getClientName()+"】已确认报价。");
}
}else{ }else{
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.NOT_MAINTAIN.getStatus()); repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.NOT_MAINTAIN.getStatus());
repairOrder.setRefuseMaintenanceCause(repairOrderParam.getRefuseMaintenanceCause()); // 拒绝维修原因 repairOrder.setRefuseMaintenanceCause(repairOrderParam.getRefuseMaintenanceCause()); // 拒绝维修原因
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus()); repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间 repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间
Client client = clientMapper.findClientById(repairOrder.getClientId());
if(client != null){
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.CUSTOMER_CONFIRM.getDesc()
,"客户【"+client.getClientName()+"】确定不维修;结束工单原因:"+repairOrder.getRefuseMaintenanceCause()+"。工单处理结束");
}
User user = userMapper.selectById(repairOrder.getReceiverId());
if(user != null){
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.FINISH.getDesc()
,"【"+user.getUsername()+"】已经完成任务");
}
//将设备状态修改成正常
Equipment equipment = equipmentMapper.findEquipmentById(repairOrder.getEquipmentId());
if(equipment != null){
equipment.setDeviceStatus(EquipmentStateEnum.NORMAL.getStatus());
equipmentMapper.updateById(equipment);
}
} }
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
@ -289,10 +311,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
*
* @param repairOrderParam
*/ */
@Override @Override
@Transactional
public void confirmedScrap(RepairOrderParam repairOrderParam) { public void confirmedScrap(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId()); RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在"); Assert.notNull(repairOrder, "数据不存在");
@ -306,31 +327,47 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus()); repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
repairOrder.setOrderAccomplishTime(new Date()); //订单完成时间 repairOrder.setOrderAccomplishTime(new Date()); //订单完成时间
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
User user = userMapper.selectById(repairOrder.getReceiverId());
if(user != null){
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.FINISH.getDesc()
,"【"+user.getUsername()+"】已经完成任务");
}
} }
/** /**
* *
*
* @param repairOrderParam
*/ */
@Override @Override
@Transactional
public void uploadPictures(RepairOrderParam repairOrderParam) { public void uploadPictures(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId()); RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在"); Assert.notNull(repairOrder, "数据不存在");
if(repairOrderParam.getInMaintenanceImg() != null){ if(repairOrderParam.getInMaintenanceImg() != null){
repairOrder.setInMaintenanceImg(repairOrderParam.getInMaintenanceImg()); // 维修中照片 repairOrder.setInMaintenanceImg(repairOrderParam.getInMaintenanceImg()); // 维修中照片
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.UPLOADING_IN_MAINTENANCE.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已上传维修中照片。");
}else{ }else{
repairOrder.setAfterRepairImg(repairOrderParam.getAfterRepairImg()); // 维修后照片 repairOrder.setAfterRepairImg(repairOrderParam.getAfterRepairImg()); // 维修后照片
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.UPLOADING_AFTER_REPAIR.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已上传维修后照片。");
} }
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
} }
/** /**
* *
*
* @param repairOrderParam
*/ */
@Override @Override
@Transactional
public void scrapForm(RepairOrderParam repairOrderParam) { public void scrapForm(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId()); RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在"); Assert.notNull(repairOrder, "数据不存在");
@ -338,12 +375,15 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setExpressName(repairOrderParam.getExpressName()); // 快递名称 repairOrder.setExpressName(repairOrderParam.getExpressName()); // 快递名称
repairOrder.setExpressNo(repairOrderParam.getExpressNo()); // 快递单号 repairOrder.setExpressNo(repairOrderParam.getExpressNo()); // 快递单号
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.FILL_IN_SCRAP_FORM.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已填写报废单。");
} }
/** /**
* *
*
* @param repairOrderParam
*/ */
@Override @Override
public void fillInReceipt(RepairOrderParam repairOrderParam) { public void fillInReceipt(RepairOrderParam repairOrderParam) {
@ -362,8 +402,19 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间 repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间
repairOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()); repairOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
repairOrder.setCompleteImg(repairOrderParam.getCompleteImg()); // 完工照片 repairOrder.setCompleteImg(repairOrderParam.getCompleteImg()); // 完工照片
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//将设备状态修改成正常
Equipment equipment = equipmentMapper.findEquipmentById(repairOrder.getEquipmentId());
if(equipment != null){
equipment.setDeviceStatus(EquipmentStateEnum.NORMAL.getStatus());
equipmentMapper.updateById(equipment);
}
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.FILL_IN_RECEIPT.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已经完成任务");
}else{ }else{
throw new OperateException("当前订单状态无法进行填写回单操作"); throw new OperateException("当前订单状态无法进行填写回单操作");
} }
@ -371,8 +422,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
*
* @param repairOrderParam
*/ */
@Override @Override
@Transactional @Transactional
@ -399,6 +448,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus()); repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc()
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE_TYPE.getStatus()
,"【"+FrontThreadLocal.get("username")+"】创建了【配件领用】单。选择仓库:自身仓库。");
//我的仓库也要新增配件领用记录 并且状态是已完成 //我的仓库也要新增配件领用记录 并且状态是已完成
/*SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(maintenanceOrderParam); /*SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(maintenanceOrderParam);
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.DONE.getStatus()); sparePartStockAudit.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
@ -416,14 +470,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(repairOrderParam); SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(repairOrderParam);
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); sparePartStockAudit.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());
sparePartStockAuditMapper.insert(sparePartStockAudit); sparePartStockAuditMapper.insert(sparePartStockAudit);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc()
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE_TYPE.getStatus()
,"【"+FrontThreadLocal.get("username")+"】创建了配件领用申请单。");
} }
} }
} }
/** /**
* *
*
* @param repairOrderParam
*/ */
@Override @Override
@Transactional @Transactional
@ -443,11 +501,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
resultSps.setPurchaseStatus(AuditStateEnum.DONE.getStatus()); resultSps.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
sparePartStockAuditMapper.updateById(resultSps); sparePartStockAuditMapper.updateById(resultSps);
//新增修单操作记录 //新增修单操作记录
orderOperateRecordService.addMaintenanceOrder(repairOrder.getId() orderOperateRecordService.addRepairOrder(repairOrder.getId()
, OrderOperateRecordEnum.RECEIVE_GOODS.getDesc() , OrderOperateRecordEnum.RECEIVE_GOODS.getDesc()
,"修员【"+FrontThreadLocal.get("username")+"】已确认收货"); ,"修员【"+FrontThreadLocal.get("username")+"】已确认收货");
orderOperateRecordService.addMaintenanceOrder(repairOrder.getId() orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc() ,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已完成配件领用"); ,"【"+FrontThreadLocal.get("username")+"】已完成配件领用");
}else{ }else{
@ -717,6 +775,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
* @param repairOrderParam * @param repairOrderParam
*/ */
@Override @Override
@Transactional
public void add(RepairOrderParam repairOrderParam) { public void add(RepairOrderParam repairOrderParam) {
RepairOrder model = new RepairOrder(); RepairOrder model = new RepairOrder();
model.setOrderNo(getOrderNo()); //工单编号 model.setOrderNo(getOrderNo()); //工单编号
@ -746,13 +805,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
model.setCreateTime(new Date()); //创建时间 model.setCreateTime(new Date()); //创建时间
repairOrderMapper.insert(model); repairOrderMapper.insert(model);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(model.getId()
, OrderOperateRecordEnum.NEW_CREATE.getDesc()
,"维修主管【"+FrontThreadLocal.get("username")+"】创建了维修工单。");
} }
/** /**
* *
* @param repairOrderParam
*/ */
@Override @Override
@Transactional
public void grabTheOrder(RepairOrderParam repairOrderParam) { public void grabTheOrder(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId()); RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在"); Assert.notNull(repairOrder, "数据不存在");
@ -763,6 +827,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus()); repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus());
repairOrder.setReceiverTime(new Date()); repairOrder.setReceiverTime(new Date());
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
,"维修人员【"+FrontThreadLocal.get("username")+"】已自主抢单。联系人:"
+ FrontThreadLocal.get("username") + ",联系电话:"+FrontThreadLocal.get("mobile"));
}else{ }else{
throw new OperateException("订单已被其他人抢走"); throw new OperateException("订单已被其他人抢走");
} }
@ -770,7 +840,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
* @param repairOrderParam
*/ */
@Override @Override
public void receivingOrder(RepairOrderParam repairOrderParam) { public void receivingOrder(RepairOrderParam repairOrderParam) {
@ -781,6 +850,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus()); repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus());
repairOrder.setReceiverTime(new Date()); repairOrder.setReceiverTime(new Date());
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已自主接单。联系人:" +
FrontThreadLocal.get("username") + ",联系电话:"+FrontThreadLocal.get("mobile"));
}else{ }else{
throw new OperateException("订单状态不正确"); throw new OperateException("订单状态不正确");
} }
@ -788,7 +863,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* 退 * 退
* @param repairOrderParam
*/ */
@Override @Override
@Transactional @Transactional
@ -805,6 +879,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){ repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CLOSED.getStatus()); repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CLOSED.getStatus());
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.REFUND.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已退单。退单原因:"+repairOrder.getCancelCause());
}else{ }else{
throw new OperateException("当前订单状态不可退单"); throw new OperateException("当前订单状态不可退单");
} }
@ -821,6 +900,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
} }
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.REFUND.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已退单。退单原因:"+repairOrder.getCancelCause());
}else{ }else{
throw new OperateException("当前订单状态不可退单"); throw new OperateException("当前订单状态不可退单");
} }
@ -830,7 +914,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
* *
* @param repairOrderParam
*/ */
@Override @Override
@Transactional @Transactional
@ -841,12 +924,23 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setWarehouseType(repairOrderParam.getWarehouseType()); // 仓库类型 0-我的仓库 1-公共仓库 repairOrder.setWarehouseType(repairOrderParam.getWarehouseType()); // 仓库类型 0-我的仓库 1-公共仓库
repairOrder.setQuotationTime(new Date()); // 报价时间 repairOrder.setQuotationTime(new Date()); // 报价时间
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.CUSTOMER_QUOTATION.getDesc()
,OrderOperateRecordEnum.QUOTATION.getStatus()
,"【"+FrontThreadLocal.get("username")+"】已经为客户发送服务报价。");
Client client = clientMapper.findClientById(repairOrder.getClientId()); Client client = clientMapper.findClientById(repairOrder.getClientId());
//判断当前客户是全包还是半包 //判断当前客户是全包还是半包
if(client.getMaintainType() == ClientStatusEnum.MODULE_MAINTENANCE_ALL_WRAPPED.getStatus()){ if(client.getMaintainType() == ClientStatusEnum.MODULE_MAINTENANCE_ALL_WRAPPED.getStatus()){
//全包直接变成维修中状态,需要更改是否维修状态为是 //全包直接变成维修中状态,需要更改是否维修状态为是
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()); repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus()); repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.CUSTOMER_CONFIRM.getDesc()
,"客户【"+client.getClientName()+"】已确认报价。");
}else{ }else{
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()); repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus());
} }
@ -903,7 +997,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
* @return * @return OrderNo
*/ */
private String getOrderNo() { private String getOrderNo() {
//获取当前日期并将其进行格式化 //获取当前日期并将其进行格式化

View File

@ -16,6 +16,7 @@ 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.equipment.EquipmentStateEnum; import com.hcy.common.enums.equipment.EquipmentStateEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.enums.order.OrderOperateRecordEnum;
import com.hcy.common.enums.order.OrderStateEnum; import com.hcy.common.enums.order.OrderStateEnum;
import com.hcy.common.exception.OperateException; import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.client.ClientMapper; import com.hcy.common.mapper.client.ClientMapper;
@ -37,8 +38,10 @@ 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;
import org.aspectj.weaver.ast.Or;
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.util.Assert; import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -75,6 +78,9 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
@Resource @Resource
FaultMapper faultMapper; FaultMapper faultMapper;
@Resource
OrderOperateRecordServiceImpl orderOperateRecordService;
@Resource @Resource
IDevRegionService regionService; IDevRegionService regionService;
@ -190,20 +196,28 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam * @param routingInspectionOrderParam
*/ */
@Override @Override
@Transactional
public void orderReceiving(RoutingInspectionOrderParam routingInspectionOrderParam) { public void orderReceiving(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne( RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>() new QueryWrapper<RoutingInspectionOrder>()
.eq("id", routingInspectionOrderParam.getId()) .eq("id", routingInspectionOrderParam.getId())
.eq("is_delete", 0) .eq("is_delete", 0)
.last("limit 1")); .last("limit 1"));
Assert.notNull(model, "数据不存在!"); Assert.notNull(model, "数据不存在!");
if(model.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
model.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人 model.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人
model.setReceiverTime(new Date()); //接单时间 model.setReceiverTime(new Date()); //接单时间
model.setOrderStatus(OrderStateEnum.TO_BE_INSPECTED.getStatus()); //用户接单后工单状态为待巡检 model.setOrderStatus(OrderStateEnum.TO_BE_INSPECTED.getStatus()); //用户接单后工单状态为待巡检
routingInspectionOrderMapper.updateById(model); routingInspectionOrderMapper.updateById(model);
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已自主接单。联系人:" + FrontThreadLocal.get("username") + ",联系电话:"+FrontThreadLocal.get("mobile"));
}else{
throw new OperateException("订单状态不正确");
}
} }
/** /**
@ -212,17 +226,22 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam * @param routingInspectionOrderParam
*/ */
@Override @Override
@Transactional
public void startInspection(RoutingInspectionOrderParam routingInspectionOrderParam) { public void startInspection(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne( RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>() new QueryWrapper<RoutingInspectionOrder>()
.eq("id", routingInspectionOrderParam.getId()) .eq("id", routingInspectionOrderParam.getId())
.eq("is_delete", 0) .eq("is_delete", 0)
.last("limit 1")); .last("limit 1"));
Assert.notNull(model, "数据不存在!"); Assert.notNull(model, "数据不存在!");
model.setOrderStatus(OrderStateEnum.DURING_INSPECTION.getStatus()); //用户开始巡检后工单状态为巡检中 model.setOrderStatus(OrderStateEnum.DURING_INSPECTION.getStatus()); //用户开始巡检后工单状态为巡检中
routingInspectionOrderMapper.updateById(model); routingInspectionOrderMapper.updateById(model);
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
, OrderOperateRecordEnum.START_ROUTING_INSPECTION.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已经开始巡检。");
} }
/** /**
@ -231,6 +250,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam * @param routingInspectionOrderParam
*/ */
@Override @Override
@Transactional
public void faultDetect(RoutingInspectionOrderParam routingInspectionOrderParam) { public void faultDetect(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne( RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>() new QueryWrapper<RoutingInspectionOrder>()
@ -269,12 +289,29 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
maintenanceOrder.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单 maintenanceOrder.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单
maintenanceOrderMapper.insert(maintenanceOrder); maintenanceOrderMapper.insert(maintenanceOrder);
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
, OrderOperateRecordEnum.FAULT_DETECT.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已提交故障检测结果,检测结果: " +
OrderStateEnum.ABNORMAL.getDesc() + ";系统会自动创建检修单且流入到工单池。");
}else{
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
, OrderOperateRecordEnum.FAULT_DETECT.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已提交故障检测结果,检测结果: " +
OrderStateEnum.NORMAL.getDesc() + ";");
} }
model.setInspectionResultRemark(routingInspectionOrderParam.getInspectionResultRemark());//巡检结果备注 model.setInspectionResultRemark(routingInspectionOrderParam.getInspectionResultRemark());//巡检结果备注
model.setInspectionPhoto(routingInspectionOrderParam.getInspectionPhoto()); // 巡检照片 model.setInspectionPhoto(routingInspectionOrderParam.getInspectionPhoto()); // 巡检照片
model.setOrderStatus(OrderStateEnum.COMPLETED.getStatus()); //故障检测完工单状态就为已完成 model.setOrderStatus(OrderStateEnum.COMPLETED.getStatus()); //故障检测完工单状态就为已完成
model.setOrderAccomplishTime(new Date()); //订单完成时间 model.setOrderAccomplishTime(new Date()); //订单完成时间
routingInspectionOrderMapper.updateById(model); routingInspectionOrderMapper.updateById(model);
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
, OrderOperateRecordEnum.INSPECTION_COMPLETED.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已完成巡检。");
} }
/** /**
@ -283,6 +320,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam * @param routingInspectionOrderParam
*/ */
@Override @Override
@Transactional
public void grabTheOrder(RoutingInspectionOrderParam routingInspectionOrderParam) { public void grabTheOrder(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne( RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>() new QueryWrapper<RoutingInspectionOrder>()
@ -296,9 +334,15 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
model.setOrderStatus(OrderStateEnum.TO_BE_INSPECTED.getStatus()); model.setOrderStatus(OrderStateEnum.TO_BE_INSPECTED.getStatus());
model.setReceiverTime(new Date()); model.setReceiverTime(new Date());
routingInspectionOrderMapper.updateById(model); routingInspectionOrderMapper.updateById(model);
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
,"检修人员【"+FrontThreadLocal.get("username")+"】已自主抢单。联系人:" + FrontThreadLocal.get("username") + ",联系电话:"+FrontThreadLocal.get("mobile"));
}else{ }else{
throw new OperateException("订单已被其他人抢走"); throw new OperateException("订单已被其他人抢走");
} }
} }
/** /**
@ -384,6 +428,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam * @param routingInspectionOrderParam
*/ */
@Override @Override
@Transactional
public void checking(RoutingInspectionOrderParam routingInspectionOrderParam) { public void checking(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne( RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>() new QueryWrapper<RoutingInspectionOrder>()
@ -392,6 +437,11 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
.last("limit 1")); .last("limit 1"));
Assert.notNull(model, "数据不存在!"); Assert.notNull(model, "数据不存在!");
if(routingInspectionOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){
if(model.getOrderStatus() == OrderStateEnum.PENDING_ORDER.getStatus() ||
model.getOrderStatus() == OrderStateEnum.TO_BE_INSPECTED.getStatus()){
model.setCancelOrderTime(new Date()); //退单时间 model.setCancelOrderTime(new Date()); //退单时间
model.setCancelCause(routingInspectionOrderParam.getCancelCause()); //取消原因 model.setCancelCause(routingInspectionOrderParam.getCancelCause()); //取消原因
//如果工单去向是工单池的话,退单后工单状态为待抢单,如果是检修员,工单状态是 5=已退单 //如果工单去向是工单池的话,退单后工单状态为待抢单,如果是检修员,工单状态是 5=已退单
@ -400,8 +450,18 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
}else{ }else{
model.setOrderStatus(OrderStateEnum.RETURNED_ORDER.getStatus()); //用户退单后工单状态为已退单 model.setOrderStatus(OrderStateEnum.RETURNED_ORDER.getStatus()); //用户退单后工单状态为已退单
} }
routingInspectionOrderMapper.updateById(model); routingInspectionOrderMapper.updateById(model);
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
,OrderOperateRecordEnum.REFUND.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已退单。退单原因:"+model.getCancelCause());
}else{
throw new OperateException("当前订单状态不可退单");
}
}else{
throw new OperateException("当前用户不可退单,只有检修员可以退巡检单");
}
} }
/** /**