diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java index ee2866a..493f40e 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java @@ -1,16 +1,17 @@ package org.dromara.platform.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableField; +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.EqualsAndHashCode; -import org.dromara.common.translation.annotation.Translation; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.common.translation.constant.TransConstant; +import org.dromara.common.tenant.core.TenantEntity; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serial; +import java.util.Date; import java.util.List; /** @@ -210,4 +211,49 @@ public class WorkOrderInfo extends TenantEntity { //@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") 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; } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java index bb1a9d6..66a6880 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java @@ -134,11 +134,7 @@ public class WorkOrderInfoVo implements Serializable { @ExcelIgnore private String attachment; - /** - * 故障图片Url - */ - //@Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "faultImage") - //private String faultImageUrl; + /** * 维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他) */ @@ -211,6 +207,7 @@ public class WorkOrderInfoVo implements Serializable { @ExcelProperty(value = "接单时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date orderAcceptTime; diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderInfoMapper.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderInfoMapper.java index a2ead8a..d9bd0ef 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderInfoMapper.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderInfoMapper.java @@ -1,8 +1,8 @@ package org.dromara.platform.mapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.platform.domain.WorkOrderInfo; import org.dromara.platform.domain.vo.WorkOrderInfoVo; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; /** * 工单信息Mapper接口 diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java index f6c5180..1914b86 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java +++ b/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.collection.CollectionUtil; 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.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -109,6 +110,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { @Override public WorkOrderInfoVo queryById(String id){ WorkOrderInfoVo workOrderInfoVo = baseMapper.selectVoById(id); + // 设置待处理人信息 workOrderInfoVo.setHandler(workOrderInfoVo.getMaintenanceUnit()); String attachment = workOrderInfoVo.getAttachment(); if (StringUtils.isNotBlank(attachment)) { @@ -550,6 +552,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { if (flag){ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(WorkOrderInfo::getId, workOrderId) + //设置接单时间(最近一次) + .set(WorkOrderInfo::getOrderAcceptTime, date2) .set(WorkOrderInfo::getStatus, 2); baseMapper.update(null, updateWrapper); log.info("更新工单状态:处理中"); @@ -995,6 +999,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { if (flag){ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(WorkOrderInfo::getId, workOrderId) + .set(WorkOrderInfo::getInitAdvice, bo.getAuditOpinion()) + .set(WorkOrderInfo::getOtherCost, bo.getOtherCost()) + .set(WorkOrderInfo::getOtherCostReason, bo.getOtherCostReason()) .set(WorkOrderInfo::getStatus, 5); baseMapper.update(null, updateWrapper); log.info("工单处理完毕,等待终审结果"); @@ -1134,6 +1141,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { if (flag){ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(WorkOrderInfo::getId, workOrderId) + .set(WorkOrderInfo::getLastAdvice, bo.getAuditOpinion()) + .set(WorkOrderInfo::getOtherCost, bo.getOtherCost()) + .set(WorkOrderInfo::getOtherCostReason, bo.getOtherCostReason()) .set(WorkOrderInfo::getStatus, 6); baseMapper.update(null, updateWrapper); log.info("结案"); @@ -1258,11 +1268,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { Date beforeDelayTime = DateUtils.addHours(operationTime, responseTime.intValue()); WorkOrderDelayBo delayBo = new WorkOrderDelayBo(); // 延期审核的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); delayBo.setDelayReason(delayDescription); delayBo.setBeforeDelayTime(beforeDelayTime); @@ -1337,7 +1343,10 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); 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); LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); @@ -1696,14 +1705,25 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { vo.setTotalCost(overTimeCostInfo.getTotalCost()); vo.setIsOrderTakingOverTime(overTimeCostInfo.getIsOrderTakingOverTime()); - // 2. 处理人信息 - String handler = workOrderProcessMapper.getHandlerByWorkOrderId(workOrderId); - vo.setHandler(handler != null ? handler : "无"); + // 由计算结果中封装改为直接从表中获取 + //calculateResult(vo, workOrderId); + + return vo; + } + private void calculateResult(WorkOrderInfoVo vo, String workOrderId) { // 3. 接单时间 Date orderAcceptTime = workOrderProcessMapper.getOrderAcceptTimeByWorkOrderId(workOrderId); vo.setOrderAcceptTime(orderAcceptTime); + + // 2. 处理人信息 + String handler = workOrderProcessMapper.getHandlerByWorkOrderId(workOrderId); + vo.setHandler(handler != null ? handler : "无"); + if (StrUtil.isBlank(vo.getHandler())){ + vo.setHandler("无"); + } + // 4. 是否延期 LambdaQueryWrapper queryDelayWrapper = new LambdaQueryWrapper<>(); queryDelayWrapper.eq(WorkOrderDelay::getId, workOrderId); @@ -1718,6 +1738,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { } else { vo.setIsDelay("否"); } + if (StrUtil.isBlank(vo.getIsDelay())){ + vo.setIsDelay("否"); + } // 5. 其他罚款 LambdaQueryWrapper reviewInfoQueryWrapper = new LambdaQueryWrapper<>(); @@ -1733,6 +1756,7 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { vo.setOtherCostReason("无"); } + // 6. 初审建议 String initAdvice = workReviewInfoMapper.getInitAdvice(workOrderId); vo.setInitAdvice(StringUtils.isNotBlank(initAdvice) ? initAdvice : null); @@ -1740,9 +1764,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { // 7. 终审建议 String lastAdvice = workReviewInfoMapper.getLastAdvice(workOrderId); vo.setLastAdvice(StringUtils.isNotBlank(lastAdvice) ? lastAdvice : null); - - return vo; } + @Override public WorkOrderInfoDto getOverTimeCost(String workOrderId) { WorkOrderInfoVo record = baseMapper.selectVoById(workOrderId);