|
|
@@ -1,405 +0,0 @@
|
|
|
-package com.zksy.base.service.impl;
|
|
|
-
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.zksy.base.domain.CaseInfo;
|
|
|
-import com.zksy.base.domain.EquipmentBase;
|
|
|
-import com.zksy.base.domain.WorkOrder;
|
|
|
-import com.zksy.base.domain.WorkOrderLog;
|
|
|
-import com.zksy.base.enums.WorkOrderDelayApplyStatusEnum;
|
|
|
-import com.zksy.base.enums.WorkOrderLogOperTypeEnum;
|
|
|
-import com.zksy.base.enums.WorkOrderStatusEnum;
|
|
|
-import com.zksy.base.warning.domain.EarlyWarning;
|
|
|
-import com.zksy.base.warning.service.EarlyWarningService;
|
|
|
-import com.zksy.base.mapper.CaseInfoMapper;
|
|
|
-import com.zksy.base.mapper.EquipmentBaseMapper;
|
|
|
-import com.zksy.base.mapper.WorkOrderLogMapper;
|
|
|
-import com.zksy.base.mapper.WorkOrderMapper;
|
|
|
-import com.zksy.base.service.WorkOrderService;
|
|
|
-import com.zksy.common.core.domain.entity.SysUser;
|
|
|
-import com.zksy.common.core.domain.model.LoginUser;
|
|
|
-import com.zksy.common.exception.ServiceException;
|
|
|
-import com.zksy.common.utils.SecurityUtils;
|
|
|
-import com.zksy.manhole.dto.in.*;
|
|
|
-import com.zksy.manhole.dto.out.WorkOrderOutDTO;
|
|
|
-import com.zksy.system.service.ISysUserService;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Random;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
-/**
|
|
|
-* @author Administrator
|
|
|
-* @description 针对表【work_order(运维工单表)】的数据库操作Service实现
|
|
|
-* @createDate 2026-06-11 11:50:08
|
|
|
-*/
|
|
|
-@Slf4j
|
|
|
-@Service
|
|
|
-public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder>
|
|
|
- implements WorkOrderService{
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private ISysUserService sysUserService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private WorkOrderLogMapper workOrderLogMapper;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private CaseInfoMapper caseInfoMapper;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private EquipmentBaseMapper equipmentBaseMapper;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private EarlyWarningService earlyWarningService;
|
|
|
-
|
|
|
- /**
|
|
|
- * 查询窨井类型设备ID列表(equipment_type_id: 9=排水窨井, 10=供水窨井)
|
|
|
- */
|
|
|
- private List<String> getManholeDeviceIds() {
|
|
|
- LambdaQueryWrapper<EquipmentBase> equipmentQuery = new LambdaQueryWrapper<>();
|
|
|
- equipmentQuery.in(EquipmentBase::getEquipmentTypeId, Arrays.asList("5", "9", "10"));
|
|
|
- return equipmentBaseMapper.selectList(equipmentQuery).stream()
|
|
|
- .map(EquipmentBase::getEquipmentId)
|
|
|
- .collect(Collectors.toList());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 构造空分页结果
|
|
|
- */
|
|
|
- private Page<WorkOrderOutDTO> emptyPage(long pageNum, long pageSize) {
|
|
|
- Page<WorkOrderOutDTO> emptyPage = new Page<>(pageNum, pageSize, 0);
|
|
|
- emptyPage.setRecords(new ArrayList<>());
|
|
|
- return emptyPage;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 分页查询工单信息列表(仅窨井类型设备)
|
|
|
- * @param pageInDTO
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- public Page<WorkOrderOutDTO> findByPage(WorkOrderPageInDTO pageInDTO) {
|
|
|
- log.info("分页查询工单信息列表-入参:{}", pageInDTO);
|
|
|
- List<String> manholeDeviceIds = getManholeDeviceIds();
|
|
|
- if (manholeDeviceIds.isEmpty()) {
|
|
|
- return emptyPage(pageInDTO.getPageNum(), pageInDTO.getPageSize());
|
|
|
- }
|
|
|
- Page<WorkOrder> page = new Page<>(pageInDTO.getPageNum(), pageInDTO.getPageSize());
|
|
|
- LambdaQueryWrapper<WorkOrder> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.in(WorkOrder::getDeviceId, manholeDeviceIds)
|
|
|
- .eq(StringUtils.isNotEmpty(pageInDTO.getDeviceId()), WorkOrder::getDeviceId, pageInDTO.getDeviceId())
|
|
|
- .like(StringUtils.isNotEmpty(pageInDTO.getOrderNo()), WorkOrder::getOrderNo, pageInDTO.getOrderNo())
|
|
|
- .like(StringUtils.isNotEmpty(pageInDTO.getCaseNo()), WorkOrder::getCaseNo, pageInDTO.getCaseNo())
|
|
|
- .orderByDesc(WorkOrder::getUpdateTime);
|
|
|
- Page<WorkOrder> rs = this.page(page, queryWrapper);
|
|
|
- List<WorkOrderOutDTO> outDTOList = BeanUtil.copyToList(rs.getRecords(), WorkOrderOutDTO.class);
|
|
|
- Page<WorkOrderOutDTO> outPage = new Page<>(pageInDTO.getPageNum(), pageInDTO.getPageSize(), rs.getTotal());
|
|
|
- outPage.setRecords(outDTOList);
|
|
|
- return outPage;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 新增工单
|
|
|
- * @param inDTO
|
|
|
- * @return 工单ID(新增成功返回 orderId,失败返回 null)
|
|
|
- */
|
|
|
- @Override
|
|
|
- public Long addWorkOrder(WorkOrderAddInDTO inDTO) {
|
|
|
- log.info("新增工单-入参:{}", inDTO);
|
|
|
- resolveWarningDevice(inDTO);
|
|
|
- // 同一设备存在未办结工单(非 已结案/已取消)时禁止重复建单
|
|
|
- if (inDTO.getDeviceId() != null) {
|
|
|
- Long count = this.lambdaQuery()
|
|
|
- .eq(WorkOrder::getDeviceId, inDTO.getDeviceId())
|
|
|
- .notIn(WorkOrder::getOrderStatus, WorkOrderStatusEnum.finishedCodes())
|
|
|
- .count();
|
|
|
- if (count > 0) {
|
|
|
- throw new ServiceException("该设备已有处理中的工单,需结案或取消后才能创建新工单");
|
|
|
- }
|
|
|
- }
|
|
|
- WorkOrder workOrder = BeanUtil.copyProperties(inDTO, WorkOrder.class);
|
|
|
- workOrder.setOrderNo(generateOrderNo());
|
|
|
- // 初始状态:待派单
|
|
|
- workOrder.setOrderStatus(WorkOrderStatusEnum.PENDING_DISPATCH.getCode());
|
|
|
- workOrder.setDelayApplyStatus(WorkOrderDelayApplyStatusEnum.NONE.getCode());
|
|
|
- if (workOrder.getFaultTime() == null) {
|
|
|
- workOrder.setFaultTime(new Date());
|
|
|
- }
|
|
|
- workOrder.setCreateTime(new Date());
|
|
|
- workOrder.setUpdateTime(new Date());
|
|
|
- if(inDTO.getCaseId() != null){
|
|
|
- CaseInfo caseInfo = caseInfoMapper.selectById(inDTO.getCaseId());
|
|
|
- if(caseInfo != null){
|
|
|
- workOrder.setCaseNo(caseInfo.getCaseNo());
|
|
|
- }
|
|
|
- }
|
|
|
- if(inDTO.getDeviceId() != null){
|
|
|
- EquipmentBase equipmentBase = equipmentBaseMapper.selectById(inDTO.getDeviceId());
|
|
|
- if(equipmentBase != null){
|
|
|
- workOrder.setDeviceCode(equipmentBase.getEquipmentCode());
|
|
|
- }
|
|
|
- }
|
|
|
- // 设置维修前后图片(如果 DTO 中有传递)
|
|
|
- if (inDTO.getMaintenanceBeforeImg() != null) {
|
|
|
- workOrder.setMaintenanceBeforeImg(inDTO.getMaintenanceBeforeImg());
|
|
|
- }
|
|
|
- if (inDTO.getMaintenanceAfterImg() != null) {
|
|
|
- workOrder.setMaintenanceAfterImg(inDTO.getMaintenanceAfterImg());
|
|
|
- }
|
|
|
- this.save(workOrder);
|
|
|
- WorkOrderLog workOrderLog = new WorkOrderLog();
|
|
|
- workOrderLog.setOrderId(workOrder.getOrderId());
|
|
|
- // 创建工单
|
|
|
- workOrderLog.setOperType(WorkOrderLogOperTypeEnum.CREATE.getCode());
|
|
|
- workOrderLog.setOperDesc(inDTO.getOrderDesc() + ",创建工单");
|
|
|
- LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
- if (loginUser != null) {
|
|
|
- workOrderLog.setOperUserId(loginUser.getUserId());
|
|
|
- workOrderLog.setOperUserName(loginUser.getUser().getNickName());
|
|
|
- }
|
|
|
- workOrderLogMapper.insert(workOrderLog);
|
|
|
-
|
|
|
- // 返回工单ID,供后续派单使用
|
|
|
- return workOrder.getOrderId();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 确认预警时前端不再重复选择设备,按预警已保存的设备编码回填工单设备信息。
|
|
|
- */
|
|
|
- private void resolveWarningDevice(WorkOrderAddInDTO inDTO) {
|
|
|
- if (inDTO == null || StringUtils.isBlank(inDTO.getAlarmId())) {
|
|
|
- return;
|
|
|
- }
|
|
|
- EarlyWarning warning = earlyWarningService.getById(inDTO.getAlarmId());
|
|
|
- if (warning == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
- if (StringUtils.isBlank(inDTO.getDeviceCode())) {
|
|
|
- inDTO.setDeviceCode(warning.getDeviceCode());
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(inDTO.getDeviceId()) || StringUtils.isBlank(inDTO.getDeviceCode())) {
|
|
|
- return;
|
|
|
- }
|
|
|
- EquipmentBase equipment = equipmentBaseMapper.selectOne(new LambdaQueryWrapper<EquipmentBase>()
|
|
|
- .eq(EquipmentBase::getEquipmentCode, inDTO.getDeviceCode())
|
|
|
- .last("LIMIT 1"));
|
|
|
- if (equipment != null) {
|
|
|
- inDTO.setDeviceId(equipment.getEquipmentId());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 生成工单编号
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static String generateOrderNo() {
|
|
|
- // 1. 获取当前时间,格式化为14位年月日时分秒
|
|
|
- String currentDateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
|
|
|
- // 2. 生成4位随机数,不足补0
|
|
|
- String randomNum = String.format("%04d", new Random().nextInt(10000));
|
|
|
- // 3. 拼接完整编号
|
|
|
- return "WO" + currentDateTime + randomNum;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 经办工单分页查询(处理中:待接单、已接单、处理中、待验收,仅窨井类型设备)
|
|
|
- * @param inDTO
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- public Page<WorkOrderOutDTO> findProcessingPage(WorkOrderProcessingInDTO inDTO) {
|
|
|
- log.info("经办工单分页查询-入参:{}", inDTO);
|
|
|
- List<String> manholeDeviceIds = getManholeDeviceIds();
|
|
|
- if (manholeDeviceIds.isEmpty()) {
|
|
|
- return emptyPage(inDTO.getPageNum(), inDTO.getPageSize());
|
|
|
- }
|
|
|
- Page<WorkOrder> page = new Page<>(inDTO.getPageNum(), inDTO.getPageSize());
|
|
|
- // 经办工单状态:待接单/已接单/处理中/待验收/延期中
|
|
|
- List<Integer> processingStatusList = WorkOrderStatusEnum.activeCodes();
|
|
|
- LambdaQueryWrapper<WorkOrder> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.in(WorkOrder::getDeviceId, manholeDeviceIds)
|
|
|
- .in(WorkOrder::getOrderStatus, processingStatusList)
|
|
|
- .like(StringUtils.isNotEmpty(inDTO.getOrderNo()), WorkOrder::getOrderNo, inDTO.getOrderNo())
|
|
|
- .like(StringUtils.isNotEmpty(inDTO.getCaseNo()), WorkOrder::getCaseNo, inDTO.getCaseNo())
|
|
|
- .eq(inDTO.getOrderLevel() != null, WorkOrder::getOrderLevel, inDTO.getOrderLevel())
|
|
|
- .eq(inDTO.getReceiveUser() != null, WorkOrder::getReceiveUser,
|
|
|
- inDTO.getReceiveUser() == null ? null : Long.valueOf(inDTO.getReceiveUser().toString()))
|
|
|
- .orderByDesc(WorkOrder::getUpdateTime);
|
|
|
- Page<WorkOrder> rs = this.page(page, queryWrapper);
|
|
|
- List<WorkOrderOutDTO> outDTOList = BeanUtil.copyToList(rs.getRecords(), WorkOrderOutDTO.class);
|
|
|
- Page<WorkOrderOutDTO> outPage = new Page<>(inDTO.getPageNum(), inDTO.getPageSize(), rs.getTotal());
|
|
|
- outPage.setRecords(outDTOList);
|
|
|
- return outPage;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 办结工单分页查询(已办结:已结案、已驳回,仅窨井类型设备)
|
|
|
- * @param inDTO
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- public Page<WorkOrderOutDTO> findFinishedPage(WorkOrderFinishedInDTO inDTO) {
|
|
|
- log.info("办结工单分页查询-入参:{}", inDTO);
|
|
|
- List<String> manholeDeviceIds = getManholeDeviceIds();
|
|
|
- if (manholeDeviceIds.isEmpty()) {
|
|
|
- return emptyPage(inDTO.getPageNum(), inDTO.getPageSize());
|
|
|
- }
|
|
|
- Page<WorkOrder> page = new Page<>(inDTO.getPageNum(), inDTO.getPageSize());
|
|
|
- // 办结工单状态:已结案、已取消
|
|
|
- List<Integer> finishedStatusList = WorkOrderStatusEnum.finishedCodes();
|
|
|
- LambdaQueryWrapper<WorkOrder> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.in(WorkOrder::getDeviceId, manholeDeviceIds)
|
|
|
- .in(WorkOrder::getOrderStatus, finishedStatusList)
|
|
|
- .like(StringUtils.isNotEmpty(inDTO.getOrderNo()), WorkOrder::getOrderNo, inDTO.getOrderNo())
|
|
|
- .like(StringUtils.isNotEmpty(inDTO.getCaseNo()), WorkOrder::getCaseNo, inDTO.getCaseNo())
|
|
|
- .eq(inDTO.getOrderLevel() != null, WorkOrder::getOrderLevel, inDTO.getOrderLevel())
|
|
|
- .eq(inDTO.getVerifyUser() != null, WorkOrder::getVerifyUser, inDTO.getVerifyUser())
|
|
|
- .ge(inDTO.getStartTime() != null, WorkOrder::getRealFinishTime, inDTO.getStartTime())
|
|
|
- .le(inDTO.getEndTime() != null, WorkOrder::getRealFinishTime, inDTO.getEndTime())
|
|
|
- .orderByDesc(WorkOrder::getUpdateTime);
|
|
|
- Page<WorkOrder> rs = this.page(page, queryWrapper);
|
|
|
- List<WorkOrderOutDTO> outDTOList = BeanUtil.copyToList(rs.getRecords(), WorkOrderOutDTO.class);
|
|
|
- Page<WorkOrderOutDTO> outPage = new Page<>(inDTO.getPageNum(), inDTO.getPageSize(), rs.getTotal());
|
|
|
- outPage.setRecords(outDTOList);
|
|
|
- return outPage;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 操作工单
|
|
|
- * @param inDTO
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- public boolean operWorkOrder(WorkOrderOperInDTO inDTO) {
|
|
|
- log.info("操作工单-入参:{}", inDTO);
|
|
|
- WorkOrder workOrder = this.getById(inDTO.getOrderId());
|
|
|
- if(workOrder == null){
|
|
|
- throw new ServiceException("工单ID不存在");
|
|
|
- }
|
|
|
- SysUser user = sysUserService.selectUserById(inDTO.getOperUserId());
|
|
|
- if(user == null){
|
|
|
- throw new ServiceException("操作人ID不存在");
|
|
|
- }
|
|
|
- if(inDTO.getOperType() == null){
|
|
|
- throw new ServiceException("操作类型不能为空");
|
|
|
- }
|
|
|
- WorkOrder entity = new WorkOrder();
|
|
|
- entity.setOrderId(inDTO.getOrderId());
|
|
|
- WorkOrderLogOperTypeEnum operTypeEnum = WorkOrderLogOperTypeEnum.getByCode(inDTO.getOperType());
|
|
|
- if (operTypeEnum == null || operTypeEnum == WorkOrderLogOperTypeEnum.CREATE) {
|
|
|
- throw new ServiceException("操作类型不合法");
|
|
|
- }
|
|
|
- if (operTypeEnum == WorkOrderLogOperTypeEnum.DISPATCH){
|
|
|
- // 派单:待派单 → 待接单
|
|
|
- entity.setOrderStatus(WorkOrderStatusEnum.PENDING_ACCEPT.getCode());
|
|
|
- entity.setDispatchUser(inDTO.getOperUserId());
|
|
|
- entity.setDispatchTime(new Date());
|
|
|
- entity.setReceiveUser(longValue(inDTO.getReceiveUser()));
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.ACCEPT){
|
|
|
- // 接单:待接单 → 已接单
|
|
|
- entity.setOrderStatus(WorkOrderStatusEnum.ACCEPTED.getCode());
|
|
|
- entity.setReceiveUser(inDTO.getOperUserId());
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.PROCESS){
|
|
|
- // 处置:→ 处理中
|
|
|
- entity.setOrderStatus(WorkOrderStatusEnum.PROCESSING.getCode());
|
|
|
- if (StringUtils.isNotBlank(inDTO.getMaintenanceBeforeImg())) {
|
|
|
- entity.setMaintenanceBeforeImg(inDTO.getMaintenanceBeforeImg());
|
|
|
- }
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.SUBMIT_VERIFY){
|
|
|
- // 提交验收:→ 待验收
|
|
|
- entity.setOrderStatus(WorkOrderStatusEnum.PENDING_VERIFY.getCode());
|
|
|
- entity.setVerifyUser(workOrder.getDispatchUser());
|
|
|
- if (StringUtils.isNotBlank(inDTO.getMaintenanceAfterImg())) {
|
|
|
- entity.setMaintenanceAfterImg(inDTO.getMaintenanceAfterImg());
|
|
|
- }
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.VERIFY_PASS){
|
|
|
- // 验收通过:→ 已结案
|
|
|
- entity.setOrderStatus(WorkOrderStatusEnum.CLOSED.getCode());
|
|
|
- entity.setRealFinishTime(new Date());
|
|
|
- entity.setVerifyUser(inDTO.getOperUserId());
|
|
|
- entity.setVerifyTime(new Date());
|
|
|
- // 同步将案件状态改为已办结
|
|
|
- if(workOrder.getCaseId() != null){
|
|
|
- CaseInfo caseInfo = caseInfoMapper.selectById(workOrder.getCaseId());
|
|
|
- if(caseInfo != null){
|
|
|
- CaseInfo caseEntity = new CaseInfo();
|
|
|
- caseEntity.setCaseId(caseInfo.getCaseId());
|
|
|
- caseEntity.setCaseStatus(3);
|
|
|
- caseEntity.setFinishTime(new Date());
|
|
|
- caseInfoMapper.updateById(caseEntity);
|
|
|
- }
|
|
|
- }
|
|
|
- // 若工单关联了预警(alarmId 对应 early_warning 记录),验收通过时自动解除预警
|
|
|
- if(workOrder.getAlarmId() != null){
|
|
|
- try {
|
|
|
- EarlyWarning warning = earlyWarningService.getById(workOrder.getAlarmId());
|
|
|
- if(warning != null){
|
|
|
- earlyWarningService.resolveWarning(warning.getWarningId(),
|
|
|
- "工单验收通过(" + workOrder.getOrderNo() + "),预警已解除");
|
|
|
- log.info("工单验收通过,自动解除预警: orderNo={}, warningId={}",
|
|
|
- workOrder.getOrderNo(), workOrder.getAlarmId());
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.warn("工单验收通过后解除预警失败: orderNo={}, warningId={}",
|
|
|
- workOrder.getOrderNo(), workOrder.getAlarmId(), e);
|
|
|
- }
|
|
|
- }
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.VERIFY_REJECT){
|
|
|
- // 验收驳回:→ 退回处理中
|
|
|
- entity.setOrderStatus(WorkOrderStatusEnum.PROCESSING.getCode());
|
|
|
- entity.setVerifyUser(inDTO.getOperUserId());
|
|
|
- entity.setVerifyTime(new Date());
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.CANCEL){
|
|
|
- // 取消工单:→ 已取消
|
|
|
- entity.setOrderStatus(WorkOrderStatusEnum.CANCELLED.getCode());
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.DELAY_APPLY){
|
|
|
- // 申请延期:延期申请状态 → 待延期审核
|
|
|
- entity.setDelayApplyStatus(WorkOrderDelayApplyStatusEnum.PENDING_AUDIT.getCode());
|
|
|
- entity.setDelayedReason(inDTO.getDelayedReason());
|
|
|
- entity.setDelayedDeadline(inDTO.getDelayedDeadline());
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.DELAY_APPROVE){
|
|
|
- // 延期审核通过:→ 延期中
|
|
|
- entity.setDelayApplyStatus(WorkOrderDelayApplyStatusEnum.APPROVED.getCode());
|
|
|
- entity.setOrderStatus(WorkOrderStatusEnum.DELAYING.getCode());
|
|
|
- } else if(operTypeEnum == WorkOrderLogOperTypeEnum.DELAY_REJECT){
|
|
|
- // 延期审核驳回
|
|
|
- entity.setDelayApplyStatus(WorkOrderDelayApplyStatusEnum.REJECTED.getCode());
|
|
|
- }
|
|
|
- WorkOrderLog workOrderLog = BeanUtil.copyProperties(inDTO, WorkOrderLog.class);
|
|
|
- workOrderLog.setAttachUrl(inDTO.getMaintenanceBeforeImg() != null
|
|
|
- ? inDTO.getMaintenanceBeforeImg() : inDTO.getMaintenanceAfterImg());
|
|
|
- workOrderLog.setOperUserName(user.getNickName());
|
|
|
- workOrderLogMapper.insert(workOrderLog);
|
|
|
- return this.updateById(entity);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 责任人入参兼容 Long / String,统一转换为 Long
|
|
|
- */
|
|
|
- private Long longValue(Object value) {
|
|
|
- if (value == null) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- if (value instanceof Number) {
|
|
|
- return ((Number) value).longValue();
|
|
|
- }
|
|
|
- String text = value.toString().trim();
|
|
|
- return text.isEmpty() ? null : Long.valueOf(text);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|