【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
*/
@GetMapping("/allNumber")
public Object allNumber() {
LargeDataVo largeDataVo = iLargeDataScreenService.allNumber();
public Object allNumber(Integer clientId) {
LargeDataVo largeDataVo = iLargeDataScreenService.allNumber(clientId);
return AjaxResult.success(largeDataVo);
}

View File

@ -55,19 +55,6 @@ public class RepairOrderController {
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
*/
LargeDataVo allNumber();
LargeDataVo allNumber(Integer clientId);
/**
*

View File

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

View File

@ -40,4 +40,21 @@ public interface IOrderOperateRecordService {
* @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

@ -32,14 +32,6 @@ public interface IRepairOrderService {
*/
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);
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.fault.Fault;
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.RoutingInspectionOrder;
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.enums.SparePartStockAuditEnum;
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.RepairOrderStatusEnum;
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.EquipmentMapper;
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.RepairOrderMapper;
import com.hcy.common.mapper.plant.PlantMapper;
@ -55,6 +58,7 @@ import com.hcy.common.utils.UrlUtil;
import com.hcy.common.config.GlobalConfig;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.Resource;
@ -104,6 +108,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
@Resource
SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
OrderOperateRecordServiceImpl orderOperateRecordService;
@Resource
OrderOperateRecordMapper orderOperateRecordMapper;
/**
*
*
@ -323,48 +333,15 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
if(familiarFaultName != null){
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;
}
/**
*
*
* @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
*/
@Override
@Transactional
public void edit(RepairOrderParam repairOrderParam) {
RepairOrder model = repairOrderMapper.selectOne(
new QueryWrapper<RepairOrder>()
@ -383,20 +361,31 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
model.setClientId(repairOrderParam.getClientId()); // 客户id
model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id
model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号
model.setBrand(repairOrderParam.getBrand()); // 品牌
model.setPriorityId(repairOrderParam.getPriorityId()); // 优先级 0-普通 1-加急
model.setLogisticsMode(repairOrderParam.getLogisticsMode()); // 物流方式 0-物流快递 1=自领带回
model.setExpressName(repairOrderParam.getExpressName()); // 快递名称
model.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄0=是 1=否)
model.setRepairWorkOrderFlow(repairOrderParam.getRepairWorkOrderFlow()); // 工单去向 0=工单池 1=检修员
model.setReceiverType(repairOrderParam.getReceiverType()); // 接单类型 0-区域派单1-距离派单
model.setReceiverId(repairOrderParam.getReceiverId()); // 接单人id
model.setOrderDistance(repairOrderParam.getOrderDistance()); // 自动抢单最大距离
model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述
model.setRemark(repairOrderParam.getRemark()); // 备注
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);
}
@ -505,6 +494,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
* @param repairOrderParam
*/
@Override
@Transactional
public void reassignment(RepairOrderParam repairOrderParam) {
RepairOrder model = repairOrderMapper.selectOne(
new QueryWrapper<RepairOrder>()
@ -514,11 +504,25 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
Assert.notNull(model, "数据不存在!");
model.setReceiverId(repairOrderParam.getReceiverId());
//如果是退单状态,重新派工后状态改为待接单
if(model.getOrderStatus() == OrderStateEnum.RETURNED_ORDER.getStatus()){
model.setOrderStatus(OrderStateEnum.PENDING_ORDER.getStatus());
}
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.fault.Fault;
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.system.SystemAuthAdmin;
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.mapper.client.ClientMapper;
import com.hcy.common.mapper.client.EquipmentMapper;
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.system.SystemAuthAdminMapper;
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.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.Resource;
@ -66,6 +71,12 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
@Resource
private IDevRegionService regionService;
@Resource
OrderOperateRecordServiceImpl orderOperateRecordService;
@Resource
OrderOperateRecordMapper orderOperateRecordMapper;
/**
*
*
@ -165,6 +176,12 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
if(authAdmin != null){
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;
}
@ -175,6 +192,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam
*/
@Override
@Transactional
public void add(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = new RoutingInspectionOrder();
@ -209,6 +227,11 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
if(client != null && systemAuthAdmin != null && equipment != null){
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, "数据不存在!");
model.setReceiverId(routingInspectionOrderParam.getReceiverId());
//如果是退单状态,重新派工后状态改为待接单
if(model.getOrderStatus() == OrderStateEnum.RETURNED_ORDER.getStatus()){
model.setOrderStatus(OrderStateEnum.PENDING_ORDER.getStatus());
}
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());
if(user != null){
//新增修单操作记录
orderOperateRecordService.addMaintenanceOrder(model.getOrderId()
//新增修单操作记录
orderOperateRecordService.addRepairOrder(model.getOrderId()
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc()
,OrderOperateRecordEnum.AUDIT.getStatus()
,"仓管员【"+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.common.entity.address.UserAddress;
import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.order.OrderOperateRecord;
import lombok.Data;
import java.io.Serializable;
@ -111,6 +112,7 @@ public class RepairOrderDetailVo implements Serializable {
private Long userId; // 送修人
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.vo.client.EquipmentListVo;
import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.order.OrderOperateRecord;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
@ -13,6 +14,7 @@ import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* RoutingInspectionOrderVo
@ -53,5 +55,6 @@ public class RoutingInspectionOrderDetailVo implements Serializable {
private Integer inspectionResult; //巡检结果0=正常 1=异常)
private String inspectionPhoto; //巡检照片
private String inspectionResultRemark; //巡检结果备注
private List<OrderOperateRecord> orderOperateRecords; //订单操作记录
}

View File

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

View File

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

View File

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

View File

@ -1,5 +1,7 @@
package com.hcy.front.service.order;
import com.hcy.common.entity.order.RepairOrder;
/**
*
*/
@ -21,4 +23,39 @@ public interface IOrderOperateRecordService {
* @param 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);
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.hcy.common.constant.GlobalConstant;
import com.hcy.common.core.PageResult;
import com.hcy.common.dto.order.MaintenanceOrderDto;
import com.hcy.common.dto.order.OrderSparePart;
import com.hcy.common.dto.order.RepairOrderDto;
import com.hcy.common.entity.address.UserAddress;
import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.fault.Fault;
import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.order.RepairOrder;
import com.hcy.common.entity.plant.Plant;
import com.hcy.common.entity.sparePart.SparePart;
@ -24,6 +22,7 @@ import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.ClientStatusEnum;
import com.hcy.common.enums.SparePartStockAuditEnum;
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.OrderOperateRecordEnum;
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.region.IDevRegionService;
import com.hcy.front.validate.PageParam;
import com.hcy.front.validate.order.MaintenanceOrderParam;
import com.hcy.front.validate.order.RepairOrderParam;
import com.hcy.front.validate.warehouse.SparePartParam;
import com.hcy.front.vo.address.UserAddressListVo;
import com.hcy.front.vo.client.EquipmentListVo;
import com.hcy.front.vo.order.*;
import com.hcy.front.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
import com.sun.xml.internal.ws.resources.AddressingMessages;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -121,9 +118,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
*
*
* @param repairOrderParam
* @return
*/
@Override
public List<RepairOrderListVo> list(RepairOrderParam repairOrderParam) {
@ -200,8 +194,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
*
*
* @return
*/
@Override
public OrderStatusCountVo orderStatusCount(RepairOrderParam repairOrderParam) {
@ -265,10 +257,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
public void confirmServiceOfferPrice(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
@ -277,11 +268,42 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
if(repairOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.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{
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.NOT_MAINTAIN.getStatus());
repairOrder.setRefuseMaintenanceCause(repairOrderParam.getRefuseMaintenanceCause()); // 拒绝维修原因
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
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);
@ -289,10 +311,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
public void confirmedScrap(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
@ -306,31 +327,47 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
repairOrder.setOrderAccomplishTime(new Date()); //订单完成时间
repairOrderMapper.updateById(repairOrder);
User user = userMapper.selectById(repairOrder.getReceiverId());
if(user != null){
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.FINISH.getDesc()
,"【"+user.getUsername()+"】已经完成任务");
}
}
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
public void uploadPictures(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
if(repairOrderParam.getInMaintenanceImg() != null){
repairOrder.setInMaintenanceImg(repairOrderParam.getInMaintenanceImg()); // 维修中照片
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.UPLOADING_IN_MAINTENANCE.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已上传维修中照片。");
}else{
repairOrder.setAfterRepairImg(repairOrderParam.getAfterRepairImg()); // 维修后照片
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.UPLOADING_AFTER_REPAIR.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已上传维修后照片。");
}
repairOrderMapper.updateById(repairOrder);
}
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
public void scrapForm(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
@ -338,12 +375,15 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setExpressName(repairOrderParam.getExpressName()); // 快递名称
repairOrder.setExpressNo(repairOrderParam.getExpressNo()); // 快递单号
repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.FILL_IN_SCRAP_FORM.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已填写报废单。");
}
/**
*
*
* @param repairOrderParam
*/
@Override
public void fillInReceipt(RepairOrderParam repairOrderParam) {
@ -362,8 +402,19 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间
repairOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
repairOrder.setCompleteImg(repairOrderParam.getCompleteImg()); // 完工照片
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{
throw new OperateException("当前订单状态无法进行填写回单操作");
}
@ -371,8 +422,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
@ -399,6 +448,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
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.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
@ -416,14 +470,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(repairOrderParam);
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());
sparePartStockAuditMapper.insert(sparePartStockAudit);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc()
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE_TYPE.getStatus()
,"【"+FrontThreadLocal.get("username")+"】创建了配件领用申请单。");
}
}
}
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
@ -443,11 +501,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
resultSps.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
sparePartStockAuditMapper.updateById(resultSps);
//新增修单操作记录
orderOperateRecordService.addMaintenanceOrder(repairOrder.getId()
//新增修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
, OrderOperateRecordEnum.RECEIVE_GOODS.getDesc()
,"修员【"+FrontThreadLocal.get("username")+"】已确认收货");
orderOperateRecordService.addMaintenanceOrder(repairOrder.getId()
,"修员【"+FrontThreadLocal.get("username")+"】已确认收货");
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已完成配件领用");
}else{
@ -717,6 +775,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
* @param repairOrderParam
*/
@Override
@Transactional
public void add(RepairOrderParam repairOrderParam) {
RepairOrder model = new RepairOrder();
model.setOrderNo(getOrderNo()); //工单编号
@ -746,13 +805,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
model.setCreateTime(new Date()); //创建时间
repairOrderMapper.insert(model);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(model.getId()
, OrderOperateRecordEnum.NEW_CREATE.getDesc()
,"维修主管【"+FrontThreadLocal.get("username")+"】创建了维修工单。");
}
/**
*
* @param repairOrderParam
*/
@Override
@Transactional
public void grabTheOrder(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
@ -763,6 +827,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus());
repairOrder.setReceiverTime(new Date());
repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
,"维修人员【"+FrontThreadLocal.get("username")+"】已自主抢单。联系人:"
+ FrontThreadLocal.get("username") + ",联系电话:"+FrontThreadLocal.get("mobile"));
}else{
throw new OperateException("订单已被其他人抢走");
}
@ -770,7 +840,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
*
* @param repairOrderParam
*/
@Override
public void receivingOrder(RepairOrderParam repairOrderParam) {
@ -781,6 +850,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus());
repairOrder.setReceiverTime(new Date());
repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已自主接单。联系人:" +
FrontThreadLocal.get("username") + ",联系电话:"+FrontThreadLocal.get("mobile"));
}else{
throw new OperateException("订单状态不正确");
}
@ -788,7 +863,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
* 退
* @param repairOrderParam
*/
@Override
@Transactional
@ -805,6 +879,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.CLOSED.getStatus());
repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.REFUND.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已退单。退单原因:"+repairOrder.getCancelCause());
}else{
throw new OperateException("当前订单状态不可退单");
}
@ -821,6 +900,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
}
repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.REFUND.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已退单。退单原因:"+repairOrder.getCancelCause());
}else{
throw new OperateException("当前订单状态不可退单");
}
@ -830,7 +914,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
@ -841,12 +924,23 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrder.setWarehouseType(repairOrderParam.getWarehouseType()); // 仓库类型 0-我的仓库 1-公共仓库
repairOrder.setQuotationTime(new Date()); // 报价时间
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.CUSTOMER_QUOTATION.getDesc()
,OrderOperateRecordEnum.QUOTATION.getStatus()
,"【"+FrontThreadLocal.get("username")+"】已经为客户发送服务报价。");
Client client = clientMapper.findClientById(repairOrder.getClientId());
//判断当前客户是全包还是半包
if(client.getMaintainType() == ClientStatusEnum.MODULE_MAINTENANCE_ALL_WRAPPED.getStatus()){
//全包直接变成维修中状态,需要更改是否维修状态为是
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
//新增维修单操作记录
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.CUSTOMER_CONFIRM.getDesc()
,"客户【"+client.getClientName()+"】已确认报价。");
}else{
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus());
}
@ -903,7 +997,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/**
*
* @return
* @return OrderNo
*/
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.enums.equipment.EquipmentStateEnum;
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.exception.OperateException;
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.RoutingInspectionOrderListVo;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.weaver.ast.Or;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.Resource;
@ -75,6 +78,9 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
@Resource
FaultMapper faultMapper;
@Resource
OrderOperateRecordServiceImpl orderOperateRecordService;
@Resource
IDevRegionService regionService;
@ -190,20 +196,28 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam
*/
@Override
@Transactional
public void orderReceiving(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>()
.eq("id", routingInspectionOrderParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
if(model.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
model.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人
model.setReceiverTime(new Date()); //接单时间
model.setOrderStatus(OrderStateEnum.TO_BE_INSPECTED.getStatus()); //用户接单后工单状态为待巡检
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
*/
@Override
@Transactional
public void startInspection(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>()
.eq("id", routingInspectionOrderParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setOrderStatus(OrderStateEnum.DURING_INSPECTION.getStatus()); //用户开始巡检后工单状态为巡检中
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
*/
@Override
@Transactional
public void faultDetect(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>()
@ -269,12 +289,29 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
maintenanceOrder.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单
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.setInspectionPhoto(routingInspectionOrderParam.getInspectionPhoto()); // 巡检照片
model.setOrderStatus(OrderStateEnum.COMPLETED.getStatus()); //故障检测完工单状态就为已完成
model.setOrderAccomplishTime(new Date()); //订单完成时间
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
*/
@Override
@Transactional
public void grabTheOrder(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>()
@ -296,9 +334,15 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
model.setOrderStatus(OrderStateEnum.TO_BE_INSPECTED.getStatus());
model.setReceiverTime(new Date());
routingInspectionOrderMapper.updateById(model);
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
,"检修人员【"+FrontThreadLocal.get("username")+"】已自主抢单。联系人:" + FrontThreadLocal.get("username") + ",联系电话:"+FrontThreadLocal.get("mobile"));
}else{
throw new OperateException("订单已被其他人抢走");
}
}
/**
@ -384,6 +428,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
* @param routingInspectionOrderParam
*/
@Override
@Transactional
public void checking(RoutingInspectionOrderParam routingInspectionOrderParam) {
RoutingInspectionOrder model = routingInspectionOrderMapper.selectOne(
new QueryWrapper<RoutingInspectionOrder>()
@ -392,6 +437,11 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
.last("limit 1"));
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.setCancelCause(routingInspectionOrderParam.getCancelCause()); //取消原因
//如果工单去向是工单池的话,退单后工单状态为待抢单,如果是检修员,工单状态是 5=已退单
@ -400,8 +450,18 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
}else{
model.setOrderStatus(OrderStateEnum.RETURNED_ORDER.getStatus()); //用户退单后工单状态为已退单
}
routingInspectionOrderMapper.updateById(model);
//新增巡检单操作记录
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
,OrderOperateRecordEnum.REFUND.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已退单。退单原因:"+model.getCancelCause());
}else{
throw new OperateException("当前订单状态不可退单");
}
}else{
throw new OperateException("当前用户不可退单,只有检修员可以退巡检单");
}
}
/**