Browse Source

工单信息导出优化v1

ops-management-platform-backend-dev
gjh 3 weeks ago
parent
commit
ea8fd24eaa
  1. 58
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java
  2. 7
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java
  3. 2
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderInfoMapper.java
  4. 45
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java

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

@ -1,16 +1,17 @@
package org.dromara.platform.domain; package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.translation.annotation.Translation; import org.dromara.common.tenant.core.TenantEntity;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.translation.constant.TransConstant;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial; import java.io.Serial;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -210,4 +211,49 @@ public class WorkOrderInfo extends TenantEntity {
//@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd") //@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate; private Date endDate;
/**
* 是否延期
*/
private String isDelay;
/**
* 延期理由
*/
private String delayReason;
/**
* 延期后的处理截至时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date delayTime;
/**
* 初审意见
*/
private String initAdvice;
/**
* 终审意见
*/
private String lastAdvice;
/**
* 其他扣款
*/
private Double otherCost;
/**
* 其他扣款理由
*/
private String otherCostReason;
/**
* 最近一次接单时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date orderAcceptTime;
} }

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

@ -134,11 +134,7 @@ public class WorkOrderInfoVo implements Serializable {
@ExcelIgnore @ExcelIgnore
private String attachment; private String attachment;
/**
* 故障图片Url
*/
//@Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "faultImage")
//private String faultImageUrl;
/** /**
* 维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他) * 维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他)
*/ */
@ -211,6 +207,7 @@ public class WorkOrderInfoVo implements Serializable {
@ExcelProperty(value = "接单时间") @ExcelProperty(value = "接单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date orderAcceptTime; private Date orderAcceptTime;

2
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderInfoMapper.java

@ -1,8 +1,8 @@
package org.dromara.platform.mapper; package org.dromara.platform.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.platform.domain.WorkOrderInfo; import org.dromara.platform.domain.WorkOrderInfo;
import org.dromara.platform.domain.vo.WorkOrderInfoVo; import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/** /**
* 工单信息Mapper接口 * 工单信息Mapper接口

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

@ -3,6 +3,7 @@ package org.dromara.platform.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -109,6 +110,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
@Override @Override
public WorkOrderInfoVo queryById(String id){ public WorkOrderInfoVo queryById(String id){
WorkOrderInfoVo workOrderInfoVo = baseMapper.selectVoById(id); WorkOrderInfoVo workOrderInfoVo = baseMapper.selectVoById(id);
// 设置待处理人信息
workOrderInfoVo.setHandler(workOrderInfoVo.getMaintenanceUnit()); workOrderInfoVo.setHandler(workOrderInfoVo.getMaintenanceUnit());
String attachment = workOrderInfoVo.getAttachment(); String attachment = workOrderInfoVo.getAttachment();
if (StringUtils.isNotBlank(attachment)) { if (StringUtils.isNotBlank(attachment)) {
@ -550,6 +552,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
if (flag){ if (flag){
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, workOrderId) updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
//设置接单时间(最近一次)
.set(WorkOrderInfo::getOrderAcceptTime, date2)
.set(WorkOrderInfo::getStatus, 2); .set(WorkOrderInfo::getStatus, 2);
baseMapper.update(null, updateWrapper); baseMapper.update(null, updateWrapper);
log.info("更新工单状态:处理中"); log.info("更新工单状态:处理中");
@ -995,6 +999,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
if (flag){ if (flag){
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, workOrderId) updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
.set(WorkOrderInfo::getInitAdvice, bo.getAuditOpinion())
.set(WorkOrderInfo::getOtherCost, bo.getOtherCost())
.set(WorkOrderInfo::getOtherCostReason, bo.getOtherCostReason())
.set(WorkOrderInfo::getStatus, 5); .set(WorkOrderInfo::getStatus, 5);
baseMapper.update(null, updateWrapper); baseMapper.update(null, updateWrapper);
log.info("工单处理完毕,等待终审结果"); log.info("工单处理完毕,等待终审结果");
@ -1134,6 +1141,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
if (flag){ if (flag){
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, workOrderId) updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
.set(WorkOrderInfo::getLastAdvice, bo.getAuditOpinion())
.set(WorkOrderInfo::getOtherCost, bo.getOtherCost())
.set(WorkOrderInfo::getOtherCostReason, bo.getOtherCostReason())
.set(WorkOrderInfo::getStatus, 6); .set(WorkOrderInfo::getStatus, 6);
baseMapper.update(null, updateWrapper); baseMapper.update(null, updateWrapper);
log.info("结案"); log.info("结案");
@ -1258,11 +1268,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
Date beforeDelayTime = DateUtils.addHours(operationTime, responseTime.intValue()); Date beforeDelayTime = DateUtils.addHours(operationTime, responseTime.intValue());
WorkOrderDelayBo delayBo = new WorkOrderDelayBo(); WorkOrderDelayBo delayBo = new WorkOrderDelayBo();
// 延期审核的id 设置为工单的id 关联 // 延期审核的id 设置为工单的id 关联
/* delayBo.setId(bo.getId());
delayBo.setProjectName(bo.getProjectName());
delayBo.setContractName(bo.getContractName());
delayBo.setStatus(bo.getStatus());
delayBo.setHandler(bo.getRepairer());*/
BeanUtil.copyProperties(bo, delayBo); BeanUtil.copyProperties(bo, delayBo);
delayBo.setDelayReason(delayDescription); delayBo.setDelayReason(delayDescription);
delayBo.setBeforeDelayTime(beforeDelayTime); delayBo.setBeforeDelayTime(beforeDelayTime);
@ -1337,7 +1343,10 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<WorkOrderInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WorkOrderInfo::getId, workOrderId) updateWrapper.eq(WorkOrderInfo::getId, workOrderId)
// 处理中(已延期) // 处理中(已延期)
.set(WorkOrderInfo::getStatus,7); .set(WorkOrderInfo::getStatus,7)
.set(WorkOrderInfo::getIsDelay,"是")
.set(WorkOrderInfo::getDelayReason,bo.getDelayReason())
.set(WorkOrderInfo::getDelayTime,bo.getAfterDelayTime());
baseMapper.update(null, updateWrapper); baseMapper.update(null, updateWrapper);
LambdaUpdateWrapper<WorkOrderDelay> updateWrapper1 = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<WorkOrderDelay> updateWrapper1 = new LambdaUpdateWrapper<>();
@ -1696,14 +1705,25 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
vo.setTotalCost(overTimeCostInfo.getTotalCost()); vo.setTotalCost(overTimeCostInfo.getTotalCost());
vo.setIsOrderTakingOverTime(overTimeCostInfo.getIsOrderTakingOverTime()); vo.setIsOrderTakingOverTime(overTimeCostInfo.getIsOrderTakingOverTime());
// 2. 处理人信息 // 由计算结果中封装改为直接从表中获取
String handler = workOrderProcessMapper.getHandlerByWorkOrderId(workOrderId); //calculateResult(vo, workOrderId);
vo.setHandler(handler != null ? handler : "无");
return vo;
}
private void calculateResult(WorkOrderInfoVo vo, String workOrderId) {
// 3. 接单时间 // 3. 接单时间
Date orderAcceptTime = workOrderProcessMapper.getOrderAcceptTimeByWorkOrderId(workOrderId); Date orderAcceptTime = workOrderProcessMapper.getOrderAcceptTimeByWorkOrderId(workOrderId);
vo.setOrderAcceptTime(orderAcceptTime); vo.setOrderAcceptTime(orderAcceptTime);
// 2. 处理人信息
String handler = workOrderProcessMapper.getHandlerByWorkOrderId(workOrderId);
vo.setHandler(handler != null ? handler : "无");
if (StrUtil.isBlank(vo.getHandler())){
vo.setHandler("无");
}
// 4. 是否延期 // 4. 是否延期
LambdaQueryWrapper<WorkOrderDelay> queryDelayWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<WorkOrderDelay> queryDelayWrapper = new LambdaQueryWrapper<>();
queryDelayWrapper.eq(WorkOrderDelay::getId, workOrderId); queryDelayWrapper.eq(WorkOrderDelay::getId, workOrderId);
@ -1718,6 +1738,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
} else { } else {
vo.setIsDelay("否"); vo.setIsDelay("否");
} }
if (StrUtil.isBlank(vo.getIsDelay())){
vo.setIsDelay("否");
}
// 5. 其他罚款 // 5. 其他罚款
LambdaQueryWrapper<WorkReviewInfo> reviewInfoQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<WorkReviewInfo> reviewInfoQueryWrapper = new LambdaQueryWrapper<>();
@ -1733,6 +1756,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
vo.setOtherCostReason("无"); vo.setOtherCostReason("无");
} }
// 6. 初审建议 // 6. 初审建议
String initAdvice = workReviewInfoMapper.getInitAdvice(workOrderId); String initAdvice = workReviewInfoMapper.getInitAdvice(workOrderId);
vo.setInitAdvice(StringUtils.isNotBlank(initAdvice) ? initAdvice : null); vo.setInitAdvice(StringUtils.isNotBlank(initAdvice) ? initAdvice : null);
@ -1740,9 +1764,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
// 7. 终审建议 // 7. 终审建议
String lastAdvice = workReviewInfoMapper.getLastAdvice(workOrderId); String lastAdvice = workReviewInfoMapper.getLastAdvice(workOrderId);
vo.setLastAdvice(StringUtils.isNotBlank(lastAdvice) ? lastAdvice : null); vo.setLastAdvice(StringUtils.isNotBlank(lastAdvice) ? lastAdvice : null);
return vo;
} }
@Override @Override
public WorkOrderInfoDto getOverTimeCost(String workOrderId) { public WorkOrderInfoDto getOverTimeCost(String workOrderId) {
WorkOrderInfoVo record = baseMapper.selectVoById(workOrderId); WorkOrderInfoVo record = baseMapper.selectVoById(workOrderId);

Loading…
Cancel
Save