Browse Source

工单信息导出:延期,扣款等多个字段

ops-management-platform-backend-dev
gjh 2 weeks ago
parent
commit
7e4f7e7168
  1. 15
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java
  2. 4
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderInfoBo.java
  3. 5
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkReviewInfoBo.java
  4. 41
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java
  5. 15
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderProcessMapper.java
  6. 11
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkReviewInfoMapper.java
  7. 82
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java

15
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java

@ -54,12 +54,12 @@ public class WorkOrderInfo extends TenantEntity {
private String repairer;
/**
* 修人员ID
* 修人员ID
*/
private String repairerId;
/**
*
*报修时间
*/
private Date repairTime;
@ -133,11 +133,20 @@ public class WorkOrderInfo extends TenantEntity {
*/
private String longitude;
/**
* 处理人
*/
private String handler;
/**
* 处理时间
*/
private Long handleTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date handleTime;
/**
* 处理结果
*/
private String handleResult;
/**
* 当前状态
* 0 待派遣

4
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderInfoBo.java

@ -65,7 +65,7 @@ public class WorkOrderInfoBo extends BaseEntity {
/**
* 保修人员ID
*/
//@NotBlank(message = "修人员ID不能为空", groups = { AddGroup.class, EditGroup.class })
//@NotBlank(message = "修人员ID不能为空", groups = { AddGroup.class, EditGroup.class })
private String repairerId;
/**
@ -162,7 +162,7 @@ public class WorkOrderInfoBo extends BaseEntity {
* 处理时间
*/
//@NotNull(message = "处理时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Long handleTime;
private Date handleTime;
/**
* 当前状态

5
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkReviewInfoBo.java

@ -64,6 +64,10 @@ public class WorkReviewInfoBo extends BaseEntity {
@NotBlank(message = "处理结果:通过,退回不能为空", groups = { AddGroup.class, EditGroup.class })
private String handleResult;
//审核结果
private String auditResult;
/**
* 接单是否超期
*/
@ -131,4 +135,5 @@ public class WorkReviewInfoBo extends BaseEntity {
private Long status;
}

41
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java

@ -40,7 +40,7 @@ public class WorkOrderInfoVo implements Serializable {
/**
* 工单ID
*/
@ExcelProperty(value = "工单ID")
@ExcelProperty(value = "工单")
private String id;
/**
@ -77,7 +77,7 @@ public class WorkOrderInfoVo implements Serializable {
/**
*
*/
@ExcelProperty(value = "修时间")
@ExcelProperty(value = "修时间")
private Date repairTime;
/**
@ -171,12 +171,6 @@ public class WorkOrderInfoVo implements Serializable {
@ExcelIgnore
private String longitude;
/**
* 处理时间
*/
@ExcelProperty(value = "处理时间")
private Long handleTime;
/**
* 当前状态
* 0 待派遣
@ -212,8 +206,24 @@ public class WorkOrderInfoVo implements Serializable {
/**
* 待处理人
*/
@ExcelProperty(value = "处理人")
private String handler;
@ExcelProperty(value = "接单时间")
private Date orderAcceptTime;
/**
* 处理时间
*/
@ExcelProperty(value = "处理时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date handleTime;
@ExcelProperty(value = "处理结果")
private String handleResult;
/**
* 剩余处理时间
*/
@ -224,19 +234,28 @@ public class WorkOrderInfoVo implements Serializable {
*/
private String orderAcceptDeadline;
@ExcelProperty(value = "是否延期")
private String isDelay;
@ExcelProperty(value = "延期理由")
private String delayReason;
/**
* 延期时间
*/
@ExcelProperty(value = "延期时间")
@ExcelProperty(value = "延期后的处理截至时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date delayTime;
@ExcelProperty(value = "是否延期")
private String isDelay;
@ExcelProperty(value = "初审建议")
private String initAdvice;
@ExcelProperty(value = "终审建议")
private String lastAdvice;
// @ExcelProperty(value = "是否超期")
// private String isTimeOut;

15
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderProcessMapper.java

@ -1,9 +1,12 @@
package org.dromara.platform.mapper;
import org.apache.ibatis.annotations.Select;
import org.dromara.platform.domain.WorkOrderProcess;
import org.dromara.platform.domain.vo.WorkOrderProcessVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.Date;
/**
* 工单流程信息Mapper接口
*
@ -12,4 +15,16 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface WorkOrderProcessMapper extends BaseMapperPlus<WorkOrderProcess, WorkOrderProcessVo> {
@Select(" SELECT operator FROM work_order_process WHERE work_order_id = #{workOrderId} " +
"AND operation_name = '故障接单' " +
"ORDER BY operation_time DESC LIMIT 1")
String getHandlerByWorkOrderId(String workOrderId);
@Select(" SELECT operation_time FROM work_order_process WHERE work_order_id = #{workOrderId} " +
"AND operation_name = '故障接单' " +
"ORDER BY operation_time DESC LIMIT 1")
Date getOrderAcceptTimeByWorkOrderId(String workOrderId);
}

11
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkReviewInfoMapper.java

@ -1,5 +1,6 @@
package org.dromara.platform.mapper;
import org.apache.ibatis.annotations.Select;
import org.dromara.platform.domain.WorkReviewInfo;
import org.dromara.platform.domain.vo.WorkReviewInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@ -12,4 +13,14 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface WorkReviewInfoMapper extends BaseMapperPlus<WorkReviewInfo, WorkReviewInfoVo> {
@Select(" SELECT audit_opinion FROM work_review_info WHERE work_order_id = #{workOrderId} " +
"AND status = 1 " +
"ORDER BY operation_time DESC LIMIT 1")
String getLastAdvice(String workOrderId);
@Select(" SELECT audit_opinion FROM work_review_info WHERE work_order_id = #{workOrderId} " +
"AND status = 0 " +
"ORDER BY operation_time DESC LIMIT 1")
String getInitAdvice(String workOrderId);
}

82
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java

@ -61,6 +61,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
@Resource
private ProjectInfoMapper projectInfoMapper;
@Resource
private WorkReviewInfoMapper workReviewInfoMapper;
@Resource
private IProjectInfoService projectInfoService;
@ -722,19 +725,28 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
workOrderProcess.setDuration(formatDuration);
Boolean flag = workOrderProcessService.insertByBo(workOrderProcess);
//reviewResult
if (flag){
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
.set(WorkOrderInfo::getStatus, 4);
// 设置处理人信息
.set(WorkOrderInfo::getStatus, 4)
.set(WorkOrderInfo::getHandleTime,date2)
.set(WorkOrderInfo::getHandler,loginUser.getNickname())
.set(WorkOrderInfo::getHandleResult,bo.getFixResult());
baseMapper.update(null, updateWrapper);
log.info("工单处理完毕,等待初审结果");
}
}
/**
* 工单初审
* @param bo
*/
@Override
public void initReviewOrder(WorkReviewInfoBo bo) {
String handleResult = bo.getHandleResult();
//String handleResult = bo.getHandleResult();
String auditResult = bo.getAuditResult();
String workOrderId = bo.getId();
bo.setId(null);
bo.setWorkOrderId(workOrderId);
@ -742,7 +754,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
// 1.插入审核信息表
workReviewInfoService.insertByBo(bo);
if (handleResult.equals("通过")){
if (auditResult.equals("通过")){
WorkOrderProcessBo workOrderProcess = new WorkOrderProcessBo();
// 设置基础信息
workOrderProcess.setWorkOrderId(workOrderId);
@ -870,15 +882,18 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
@Override
public void lastReviewOrder(WorkReviewInfoBo bo) {
String handleResult = bo.getHandleResult();
//String handleResult = bo.getHandleResult();
String auditResult = bo.getAuditResult();
String workOrderId = bo.getId();
bo.setId(null);
bo.setWorkOrderId(workOrderId);
// 用于区分初审和终审 0:初审 1:终审
bo.setStatus(1L);
LoginUser loginUser = LoginHelper.getLoginUser();
// 1.插入审核信息表
workReviewInfoService.insertByBo(bo);
// 2.根据处理结果判断
if (handleResult.equals("通过")){
if (auditResult.equals("通过")){
WorkOrderProcessBo workOrderProcess = new WorkOrderProcessBo();
// 设置基础信息
workOrderProcess.setWorkOrderId(workOrderId);
@ -923,7 +938,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
endBo.setOperator(loginUser.getNickname());
workOrderProcessService.insertByBo(endBo);
}
}else if ("退回".equals(handleResult)){
}else if ("退回".equals(auditResult)){
// 终审不通过需要重新处理工单
WorkOrderProcessBo workOrderProcess = new WorkOrderProcessBo();
// 设置基础信息
@ -1450,8 +1465,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
}else {
dealQueryWrapper.orderByDesc(WorkOrderProcess::getCreateTime);
}
dealQueryWrapper.last("LIMIT 1");
WorkOrderProcess dealProcess = workOrderProcessMapper.selectOne(dealQueryWrapper);
if (dealProcess != null && dealProcess.getOperationTime() != null) {
handleTimeOutSituation = getTimeLeft(dealProcess.getOperationTime(),record.getResponseTime() );
@ -1482,6 +1497,57 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
Double handleCost = record.getHandleCost() == null ? 0.0 : record.getHandleCost();
Double orderAcceptCost = record.getOrderTakingCost() == null ? 0.0 : record.getOrderTakingCost();
record.setTotalCost(handleCost + orderAcceptCost);
String handler = workOrderProcessMapper.getHandlerByWorkOrderId(workOrderId);
if (handler != null){
record.setHandler(handler);
}else {
record.setHandler("无");
}
// 接单时间
Date orderAcceptTime = workOrderProcessMapper.getOrderAcceptTimeByWorkOrderId(workOrderId);
if (orderAcceptTime != null){
record.setOrderAcceptTime(orderAcceptTime);
}
// 延期
LambdaQueryWrapper<WorkOrderDelay> queryDelayWrapper = new LambdaQueryWrapper<>();
queryDelayWrapper.eq(WorkOrderDelay::getId, workOrderId);
queryDelayWrapper.eq(WorkOrderDelay::getHandleResult,"审核通过");
queryDelayWrapper.orderByDesc(WorkOrderDelay::getCreateTime);
queryDelayWrapper.last("LIMIT 1");
WorkOrderDelayVo workOrderDelayVo = workOrderDelayMapper.selectVoOne(queryDelayWrapper);
if (workOrderDelayVo != null){
record.setIsDelay("是");
record.setDelayTime(workOrderDelayVo.getAfterDelayTime());
record.setDelayReason(workOrderDelayVo.getDelayReason());
}else {
record.setIsDelay("否");
}
// 审核
// 默认 实际上要从审批情况中获取
record.setOtherCost(0.0);
record.setOtherCostReason("无");
String initAdvice = workReviewInfoMapper.getInitAdvice(workOrderId);
if (StringUtils.isNotBlank(initAdvice)){
record.setInitAdvice(initAdvice);
}
String lastAdvice = workReviewInfoMapper.getLastAdvice(workOrderId);
if (StringUtils.isNotBlank(lastAdvice)){
record.setLastAdvice(lastAdvice);
}
LambdaQueryWrapper<WorkReviewInfo> reviewInfoQueryWrapper = new LambdaQueryWrapper<>();
reviewInfoQueryWrapper.eq(WorkReviewInfo::getWorkOrderId, workOrderId);
reviewInfoQueryWrapper.orderByDesc(WorkReviewInfo::getCreateTime);
reviewInfoQueryWrapper.last("LIMIT 1");
WorkReviewInfo lastReviewInfo = workReviewInfoMapper.selectOne(reviewInfoQueryWrapper);
if (lastReviewInfo != null){
record.setOtherCost(Double.valueOf(lastReviewInfo.getOtherCost()));
record.setOtherCostReason(lastReviewInfo.getOtherCostReason());
}
}
return orderInfoVoList;

Loading…
Cancel
Save