Explorar o código

fix:优化逻辑,开发订单的不同状态使用各种状态服务实现类进行处理,减少冗余代码
新增查询设计师名称的dao对象

yangyi hai 5 meses
pai
achega
cea8019211
Modificáronse 16 ficheiros con 584 adicións e 113 borrados
  1. 15 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/AdminVo.java
  2. 5 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/DevelopmentOrderVo.java
  3. 1 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/handller/converter/DevelopmentOrderStatusConverter.java
  4. 12 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/mapper/AdminMapper.java
  5. 18 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/DevelopmentOrderStateService.java
  6. 17 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/CancelledStatusServiceImpl.java
  7. 64 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/ColorGradingStatusServiceImpl.java
  8. 21 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/CompletedStatusServiceImpl.java
  9. 63 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/ConfirmTheStatusInProgressServiceImpl.java
  10. 66 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/ModifyingStatusServiceImpl.java
  11. 22 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/PendingStatusServiceImpl.java
  12. 63 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/PrintingStatusServiceImpl.java
  13. 63 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/StateServiceInDrawingServiceImpl.java
  14. 64 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/StatusInTypesettingServiceImpl.java
  15. 81 107
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/impl/DevelopmentOrderServiceImpl.java
  16. 9 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/resources/mapper/AdminMapper.xml

+ 15 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/AdminVo.java

@@ -0,0 +1,15 @@
+package org.dromara.management.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class AdminVo {
+    /**
+     * 用户id
+     */
+    private Long id;
+    /**
+     * 用户名
+     */
+    private String nickname;
+}

+ 5 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/DevelopmentOrderVo.java

@@ -271,6 +271,10 @@ public class DevelopmentOrderVo extends BaseEntity {
     private String remark;
 
     private Integer flag;
+    /**
+     * 当前状态设计师
+     */
+    private String currentStatusDesigner;
 
     /**
      * 备注集合列表
@@ -281,4 +285,4 @@ public class DevelopmentOrderVo extends BaseEntity {
      * 日志集合列表
      */
     private List<DevelopOrderLogsVo> developOrderLogsList;
-}
+}

+ 1 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/handller/converter/DevelopmentOrderStatusConverter.java

@@ -54,6 +54,7 @@ public class DevelopmentOrderStatusConverter implements Converter<Integer> {
         //javaObject Filed convert excelFlied
         Integer status = context.getValue();
         String mes = switch(status){
+            case 0->"待处理";
             case 1->"画图";
             case 2->"确认";
             case 3->"调色";

+ 12 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/mapper/AdminMapper.java

@@ -0,0 +1,12 @@
+package org.dromara.management.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.dromara.management.domain.vo.AdminVo;
+
+@Mapper
+public interface AdminMapper extends BaseMapper<AdminVo> {
+    //查询任务的负责人使用到
+    String getNickName(@Param("id") Long id);
+}

+ 18 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/DevelopmentOrderStateService.java

@@ -2,6 +2,8 @@ package org.dromara.management.service;
 
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 
 /**
  * 订单状态模式
@@ -11,4 +13,19 @@ public interface DevelopmentOrderStateService {
 
     void handle(DevelopmentOrderBo developmentOrderBo, DevelopmentOrderVo developmentOrderVo);
 
-}
+    /**
+     * 根据状态转换为导出对象实例
+     * @param developmentOrderVo 开发订单信息对象
+     * @param adminMapper 设计师的dao
+     * @return excel导出对象
+     */
+    ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo,AdminMapper adminMapper);
+
+    /**
+     *
+     * @param developmentOrderVo 开发订单信息对象
+     * @param adminMapper 设计师的dao
+     * @return 当前状态的设计师名称
+     */
+    String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo,AdminMapper adminMapper);
+}

+ 17 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/CancelledStatusServiceImpl.java

@@ -3,8 +3,11 @@ package org.dromara.management.service.developmentStateModeImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.management.service.DevelopmentOrderStateService;
+import org.springframework.beans.BeanUtils;
 
 import java.util.Date;
 
@@ -22,4 +25,17 @@ public class CancelledStatusServiceImpl implements DevelopmentOrderStateService
         developmentOrderBo.setCancelTime(new Date());
         developmentOrderService.insertDevelopmentOrderLogs(developmentOrderBo.getId(), "已取消开发任务");
     }
-}
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        vo.setTaskStatus("已取消");
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        return "";
+    }
+}

+ 64 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/ColorGradingStatusServiceImpl.java

@@ -3,10 +3,17 @@ package org.dromara.management.service.developmentStateModeImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.management.service.DevelopmentOrderStateService;
+import org.springframework.beans.BeanUtils;
 
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
+import java.util.Objects;
 
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotBlank;
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotLongBlank;
@@ -34,4 +41,60 @@ public class ColorGradingStatusServiceImpl implements DevelopmentOrderStateServi
             developmentOrderService.insertDevelopmentOrderLogs(developmentOrderBo.getId(), "调色中");
         }
     }
-}
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        Date start = developmentOrderVo.getStatus_3StartTime();
+        Date end = developmentOrderVo.getStatus_3EndTime();
+        String designer = adminMapper.getNickName(developmentOrderVo.getColorUserid());
+        //设计师
+        if (Objects.nonNull(designer)) {
+            vo.setDesigner(designer);
+        }
+        LocalDateTime startTime = null;
+        LocalDateTime endTime = null;
+        if (Objects.nonNull(start)) {
+            startTime = start.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        if (Objects.nonNull(end)) {
+            endTime = end.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        //任务状态
+        if (Objects.nonNull(startTime)) {
+            vo.setTaskStatus("进行中");
+        }else{
+            vo.setTaskStatus("未开始");
+        }
+        //任务开始起始时间
+        vo.setStartTime(startTime);
+        vo.setEndTime(endTime);
+        //任务耗时
+        if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
+            Duration duration = Duration.between(startTime, endTime);
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        } else if (Objects.nonNull(startTime) ) {
+            Duration duration = Duration.between(startTime, LocalDateTime.now());
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        }else{
+            vo.setTime("0H");
+        }
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        Long designUserid = developmentOrderVo.getColorUserid();
+        if (Objects.nonNull(designUserid)) {
+            return adminMapper.getNickName(designUserid);
+        }
+        return "";
+    }
+}

+ 21 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/CompletedStatusServiceImpl.java

@@ -3,10 +3,14 @@ package org.dromara.management.service.developmentStateModeImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.management.service.DevelopmentOrderStateService;
+import org.springframework.beans.BeanUtils;
 
 import java.util.Date;
+import java.util.Objects;
 
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotBlank;
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotLongBlank;
@@ -31,4 +35,21 @@ public class CompletedStatusServiceImpl implements DevelopmentOrderStateService
             developmentOrderService.insertDevelopmentOrderLogs(developmentOrderBo.getId(), "打版完成");
         }
     }
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        vo.setTaskStatus("已完成");
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        Long designUserid = developmentOrderVo.getDesignUserid();
+        if (Objects.nonNull(designUserid)) {
+            return adminMapper.getNickName(designUserid);
+        }
+        return "";
+    }
 }

+ 63 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/ConfirmTheStatusInProgressServiceImpl.java

@@ -3,10 +3,17 @@ package org.dromara.management.service.developmentStateModeImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.management.service.DevelopmentOrderStateService;
+import org.springframework.beans.BeanUtils;
 
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
+import java.util.Objects;
 
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotBlank;
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotLongBlank;
@@ -34,4 +41,60 @@ public class ConfirmTheStatusInProgressServiceImpl implements DevelopmentOrderSt
             developmentOrderService.insertDevelopmentOrderLogs(developmentOrderBo.getId(), "确认中");
         }
     }
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        Date start = developmentOrderVo.getStatus_2StartTime();
+        Date end = developmentOrderVo.getStatus_2EndTime();
+        String designer = adminMapper.getNickName(developmentOrderVo.getConfirmUserid());
+        //设计师
+        if (Objects.nonNull(designer)) {
+            vo.setDesigner(designer);
+        }
+        LocalDateTime startTime = null;
+        LocalDateTime endTime = null;
+        if (Objects.nonNull(start)) {
+            startTime = start.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        if (Objects.nonNull(end)) {
+            endTime = end.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        //任务状态
+        if (Objects.nonNull(startTime)) {
+            vo.setTaskStatus("进行中");
+        }else {
+            vo.setTaskStatus("未开始");
+        }
+        //任务开始起始时间
+        vo.setStartTime(startTime);
+        vo.setEndTime(endTime);
+        //任务耗时
+        if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
+            Duration duration = Duration.between(startTime, endTime);
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        } else if (Objects.nonNull(startTime) ) {
+            Duration duration = Duration.between(startTime, LocalDateTime.now());
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        }else{
+            vo.setTime("0H");
+        }
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        Long designUserid = developmentOrderVo.getConfirmUserid();
+        if (Objects.nonNull(designUserid)) {
+            return adminMapper.getNickName(designUserid);
+        }
+        return "";
+    }
 }

+ 66 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/ModifyingStatusServiceImpl.java

@@ -3,8 +3,17 @@ package org.dromara.management.service.developmentStateModeImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.management.service.DevelopmentOrderStateService;
+import org.springframework.beans.BeanUtils;
+
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
+import java.util.Objects;
 
 /**
  * 修改中状态实现类
@@ -27,4 +36,60 @@ public class ModifyingStatusServiceImpl implements DevelopmentOrderStateService
         developmentOrderService.insertDevelopmentOrderLogs(developmentOrderBo.getId(), "修改中");
 
     }
-}
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        Date start = developmentOrderVo.getStatus_3StartTime();
+        Date end = developmentOrderVo.getStatus_3EndTime();
+        String designer = adminMapper.getNickName(developmentOrderVo.getColorUserid());
+        //设计师
+        if (Objects.nonNull(designer)) {
+            vo.setDesigner(designer);
+        }
+        LocalDateTime startTime = null;
+        LocalDateTime endTime = null;
+        if (Objects.nonNull(start)) {
+            startTime = start.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        if (Objects.nonNull(end)) {
+            endTime = end.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        //任务状态
+        if (Objects.nonNull(startTime)) {
+            vo.setTaskStatus("进行中");
+        }else {
+            vo.setTaskStatus("未开始");
+        }
+        //任务开始起始时间
+        vo.setStartTime(startTime);
+        vo.setEndTime(endTime);
+        //任务耗时
+        if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
+            Duration duration = Duration.between(startTime, endTime);
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        } else if (Objects.nonNull(startTime) ) {
+            Duration duration = Duration.between(startTime, LocalDateTime.now());
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        }else{
+            vo.setTime("0H");
+        }
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        Long designUserid = developmentOrderVo.getColorUserid();
+        if (Objects.nonNull(designUserid)) {
+            return adminMapper.getNickName(designUserid);
+        }
+        return "";
+    }
+}

+ 22 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/PendingStatusServiceImpl.java

@@ -2,7 +2,12 @@ package org.dromara.management.service.developmentStateModeImpl;
 
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderStateService;
+import org.springframework.beans.BeanUtils;
+
+import java.util.Objects;
 
 /**
  * 待处理状态实现类
@@ -13,4 +18,21 @@ public class PendingStatusServiceImpl implements DevelopmentOrderStateService {
     public void handle(DevelopmentOrderBo developmentOrderBo, DevelopmentOrderVo developmentOrderVo) {
 
     }
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        vo.setTaskStatus("待处理");
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        Long designUserid = developmentOrderVo.getDesignUserid();
+        if (Objects.nonNull(designUserid)) {
+            return adminMapper.getNickName(designUserid);
+        }
+        return "";
+    }
 }

+ 63 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/PrintingStatusServiceImpl.java

@@ -3,10 +3,17 @@ package org.dromara.management.service.developmentStateModeImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.management.service.DevelopmentOrderStateService;
+import org.springframework.beans.BeanUtils;
 
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
+import java.util.Objects;
 
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotBlank;
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotLongBlank;
@@ -36,4 +43,60 @@ public class PrintingStatusServiceImpl implements DevelopmentOrderStateService {
             }
         }
     }
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        Date start = developmentOrderVo.getStatus_5StartTime();
+        Date end = developmentOrderVo.getStatus_5EndTime();
+        String designer = adminMapper.getNickName(developmentOrderVo.getPatternUserid());
+        //设计师
+        if (Objects.nonNull(designer)) {
+            vo.setDesigner(designer);
+        }
+        LocalDateTime startTime = null;
+        LocalDateTime endTime = null;
+        if (Objects.nonNull(start)) {
+            startTime = start.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        if (Objects.nonNull(end)) {
+            endTime = end.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        //任务状态
+        if (Objects.nonNull(startTime)) {
+            vo.setTaskStatus("进行中");
+        }else {
+            vo.setTaskStatus("未开始");
+        }
+        //任务开始起始时间
+        vo.setStartTime(startTime);
+        vo.setEndTime(endTime);
+        //任务耗时
+        if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
+            Duration duration = Duration.between(startTime, endTime);
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        } else if (Objects.nonNull(startTime) ) {
+            Duration duration = Duration.between(startTime, LocalDateTime.now());
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        }else{
+            vo.setTime("0H");
+        }
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        Long designUserid = developmentOrderVo.getPatternUserid();
+        if (Objects.nonNull(designUserid)) {
+            return adminMapper.getNickName(designUserid);
+        }
+        return "";
+    }
 }

+ 63 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/StateServiceInDrawingServiceImpl.java

@@ -3,10 +3,17 @@ package org.dromara.management.service.developmentStateModeImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.management.service.DevelopmentOrderStateService;
+import org.springframework.beans.BeanUtils;
 
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
+import java.util.Objects;
 
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotBlank;
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotLongBlank;
@@ -33,4 +40,60 @@ public class StateServiceInDrawingServiceImpl implements DevelopmentOrderStateSe
             developmentOrderService.insertDevelopmentOrderLogs(developmentOrderBo.getId(), "画图中");
         }
     }
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        Date start = developmentOrderVo.getStatus_1StartTime();
+        Date end = developmentOrderVo.getStatus_1EndTime();
+        String designer = adminMapper.getNickName(developmentOrderVo.getDesignUserid());
+        //设计师
+        if (Objects.nonNull(designer)) {
+            vo.setDesigner(designer);
+        }
+        LocalDateTime startTime = null;
+        LocalDateTime endTime = null;
+        if (Objects.nonNull(start)) {
+            startTime = start.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        if (Objects.nonNull(end)) {
+            endTime = end.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        //任务状态
+        if (Objects.nonNull(startTime)) {
+            vo.setTaskStatus("进行中");
+        }else {
+            vo.setTaskStatus("未开始");
+        }
+        //任务开始起始时间
+        vo.setStartTime(startTime);
+        vo.setEndTime(endTime);
+        //任务耗时
+        if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
+            Duration duration = Duration.between(startTime, endTime);
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        } else if (Objects.nonNull(startTime) ) {
+            Duration duration = Duration.between(startTime, LocalDateTime.now());
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        }else{
+            vo.setTime("0H");
+        }
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        Long designUserid = developmentOrderVo.getDesignUserid();
+        if (Objects.nonNull(designUserid)) {
+            return adminMapper.getNickName(designUserid);
+        }
+        return "";
+    }
 }

+ 64 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/developmentStateModeImpl/StatusInTypesettingServiceImpl.java

@@ -3,11 +3,18 @@ package org.dromara.management.service.developmentStateModeImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.management.service.DevelopmentOrderStateService;
 import org.dromara.common.core.constant.DevelopmentOrderConstants;
+import org.springframework.beans.BeanUtils;
 
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Date;
+import java.util.Objects;
 
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotBlank;
 import static org.dromara.management.service.impl.DevelopmentOrderServiceImpl.assertNotLongBlank;
@@ -46,4 +53,60 @@ public class StatusInTypesettingServiceImpl implements DevelopmentOrderStateServ
             }
         }
     }
-}
+
+    @Override
+    public ExportDevelopmentOrderDesignerTaskVo toExportVo(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
+        BeanUtils.copyProperties(developmentOrderVo, vo);
+        Date start = developmentOrderVo.getStatus_4StartTime();
+        Date end = developmentOrderVo.getStatus_4EndTime();
+        String designer = adminMapper.getNickName(developmentOrderVo.getLayoutUserid());
+        //设计师
+        if (Objects.nonNull(designer)) {
+            vo.setDesigner(designer);
+        }
+        LocalDateTime startTime = null;
+        LocalDateTime endTime = null;
+        if (Objects.nonNull(start)) {
+            startTime = start.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        if (Objects.nonNull(end)) {
+            endTime = end.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDateTime();
+        }
+        //任务状态
+        if (Objects.nonNull(startTime)) {
+            vo.setTaskStatus("进行中");
+        }else{
+            vo.setTaskStatus("未开始");
+        }
+        //任务开始起始时间
+        vo.setStartTime(startTime);
+        vo.setEndTime(endTime);
+        //任务耗时
+        if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
+            Duration duration = Duration.between(startTime, endTime);
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        } else if (Objects.nonNull(startTime) ) {
+            Duration duration = Duration.between(startTime, LocalDateTime.now());
+            long hours = duration.toHours();
+            vo.setTime(hours + "H");
+        }else{
+            vo.setTime("0H");
+        }
+        return vo;
+    }
+
+    @Override
+    public String getCurrentDesigner(DevelopmentOrderVo developmentOrderVo, AdminMapper adminMapper) {
+        Long designUserid = developmentOrderVo.getLayoutUserid();
+        if (Objects.nonNull(designUserid)) {
+            return adminMapper.getNickName(designUserid);
+        }
+        return "";
+    }
+}

+ 81 - 107
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/impl/DevelopmentOrderServiceImpl.java

@@ -12,6 +12,7 @@ import org.dromara.management.domain.DevelopmentOrderRemark;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.bo.DevelopmentOrderRemarkBo;
 import org.dromara.management.domain.vo.*;
+import org.dromara.management.mapper.AdminMapper;
 import org.dromara.management.mapper.DevelopOrderLogsMapper;
 import org.dromara.management.mapper.DevelopmentOrderMapper;
 import org.dromara.management.mapper.DevelopmentOrderRemarkMapper;
@@ -49,19 +50,20 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
     private final DevelopmentOrderRemarkMapper developmentOrderRemarkMapper;
     private final OssService ossService;
     private final DevelopOrderLogsMapper developOrderLogsMapper;
+    private final AdminMapper adminMapper;
     /**
      * 创建所有状态的常量Set集合
      */
     private static final Set<Integer> STATUS_CODES = Set.of(
-            DevelopmentOrderConstants.PENDING_PROCESSING,
-            DevelopmentOrderConstants.IN_THE_DRAWING,
-            DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS,
-            DevelopmentOrderConstants.UNDER_MODIFICATION,
-            DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT,
-            DevelopmentOrderConstants.IN_TYPESETTING,
-            DevelopmentOrderConstants.PRINTING_IN_PROGRESS,
-            DevelopmentOrderConstants.COMPLETED,
-            DevelopmentOrderConstants.CANCELLED
+        DevelopmentOrderConstants.PENDING_PROCESSING,
+        DevelopmentOrderConstants.IN_THE_DRAWING,
+        DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS,
+        DevelopmentOrderConstants.UNDER_MODIFICATION,
+        DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT,
+        DevelopmentOrderConstants.IN_TYPESETTING,
+        DevelopmentOrderConstants.PRINTING_IN_PROGRESS,
+        DevelopmentOrderConstants.COMPLETED,
+        DevelopmentOrderConstants.CANCELLED
     );
     private static final String FIELD_NAME = "fa_template_dev_order";
     private static final Map<Integer, String> SPECIAL_STATUS_FIELDS = new HashMap<>();
@@ -158,7 +160,7 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
             queryWrapper.like(DevelopmentOrder::getKuanhao, bo.getKuanhao());
         }
         if (StringUtils.isNotBlank(bo.getOrderNum())) {
-            queryWrapper.eq(DevelopmentOrder::getOrderNum,bo.getOrderNum());
+            queryWrapper.eq(DevelopmentOrder::getOrderNum, bo.getOrderNum());
         }
         Integer status = bo.getStatus();
         Long designUserid = bo.getDesignUserid();
@@ -168,48 +170,48 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
             LocalDate startDate = parseDate((String) params.get("beginTime"));
             LocalDate endDate = parseDate((String) params.get("endTime"));
             //任务节点的条件处理
-            switch (status){
+            switch (status) {
                 //画图
                 case 1:
                     if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
-                        queryWrapper.between(DevelopmentOrder::getStatus_1StartTime,startDate,endDate);
+                        queryWrapper.between(DevelopmentOrder::getStatus_1StartTime, startDate, endDate);
                     }
                     //不同状态对应不同设计师,对应的字段不一样
-                    queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getDesignUserid,designUserid);
+                    queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getDesignUserid, designUserid);
                     break;
                 //确认
                 case 2:
                     if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
-                        queryWrapper.between(DevelopmentOrder::getStatus_2StartTime,startDate,endDate);
+                        queryWrapper.between(DevelopmentOrder::getStatus_2StartTime, startDate, endDate);
                     }
-                    queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getConfirmUserid,designUserid);
+                    queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getConfirmUserid, designUserid);
                     break;
                 //调色
                 case 3:
                     if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
-                        queryWrapper.between(DevelopmentOrder::getStatus_3StartTime,startDate,endDate);
+                        queryWrapper.between(DevelopmentOrder::getStatus_3StartTime, startDate, endDate);
                     }
-                    queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getColorUserid,designUserid);
+                    queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getColorUserid, designUserid);
 
                     break;
                 //排版
                 case 4:
                     if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
-                        queryWrapper.between(DevelopmentOrder::getStatus_4StartTime,startDate,endDate);
+                        queryWrapper.between(DevelopmentOrder::getStatus_4StartTime, startDate, endDate);
                     }
-                    queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getLayoutUserid,designUserid);
+                    queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getLayoutUserid, designUserid);
 
                     break;
                 //打版
                 case 5:
                     if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
-                        queryWrapper.between(DevelopmentOrder::getStatus_5StartTime,startDate,endDate);
+                        queryWrapper.between(DevelopmentOrder::getStatus_5StartTime, startDate, endDate);
                     }
-                    queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getPatternUserid,designUserid);
+                    queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getPatternUserid, designUserid);
                     break;
             }
 
-        }else{
+        } else {
             //没有传状态参数,表示时间是整个开发订单的时间
             // 时间范围处理
             LocalDate startDate = parseDate((String) params.get("beginTime"));
@@ -275,28 +277,7 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
         if (developmentOrderBo.getStatus() != null) {
             DevelopmentOrderVo developmentOrderVo = selectById(developmentOrderBo.getId());
             developmentOrderBo.setOrderNum(developmentOrderVo.getOrderNum());
-            DevelopmentOrderStateService initialState = switch (developmentOrderBo.getStatus()) {
-//          待处理
-                case DevelopmentOrderConstants.PENDING_PROCESSING -> new PendingStatusServiceImpl();
-//          画图中
-                case DevelopmentOrderConstants.IN_THE_DRAWING -> new StateServiceInDrawingServiceImpl(this);
-//          确认中
-                case DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS ->
-                        new ConfirmTheStatusInProgressServiceImpl(this);
-//          修改中
-                case DevelopmentOrderConstants.UNDER_MODIFICATION -> new ModifyingStatusServiceImpl(this);
-//          调色中
-                case DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT -> new ColorGradingStatusServiceImpl(this);
-//          排版中
-                case DevelopmentOrderConstants.IN_TYPESETTING -> new StatusInTypesettingServiceImpl(this);
-//          打版中
-                case DevelopmentOrderConstants.PRINTING_IN_PROGRESS -> new PrintingStatusServiceImpl(this);
-//          已完成
-                case DevelopmentOrderConstants.COMPLETED -> new CompletedStatusServiceImpl(this);
-//          已取消
-                case DevelopmentOrderConstants.CANCELLED -> new CancelledStatusServiceImpl(this);
-                default -> throw new IllegalStateException("意外状态: " + developmentOrderBo.getStatus());
-            };
+            DevelopmentOrderStateService initialState = getDevelopmentOrderStateService(developmentOrderBo.getStatus());
             DevelopmentOrderContext context = new DevelopmentOrderContext(initialState);
             context.handle(developmentOrderBo, developmentOrderVo);
         }
@@ -306,70 +287,13 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
     public List<ExportDevelopmentOrderDesignerTaskVo> getExportDesignerTaskList(PageQuery pageQuery, DevelopmentOrderBo developmentOrderBo) {
         List<ExportDevelopmentOrderDesignerTaskVo> list = new ArrayList<>();
         //获取数据
-        List<DevelopmentOrderVo> data = getDesignerTaskList(developmentOrderBo,pageQuery).getData().getList();
+        List<DevelopmentOrderVo> data = getDesignerTaskList(developmentOrderBo, pageQuery).getData().getList();
         //转换vo
-        for (DevelopmentOrderVo row : data) {
-            ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
-            BeanUtils.copyProperties(row,vo);
-            Integer status = row.getStatus();
-            //根据状态获取对应任务的时间
-            Date start = null;
-            Date end = null;
-            if (Objects.nonNull(status)) {
-                switch(status){
-                    //画图
-                    case 1:
-                        start = row.getStatus_1StartTime();
-                        end = row.getStatus_1EndTime();
-                        break;
-                    //确认
-                    case 2:
-                        start = row.getStatus_2StartTime();
-                        end = row.getStatus_2EndTime();
-                        break;
-                    //调色
-                    case 3:
-                        start = row.getStatus_3StartTime();
-                        end = row.getStatus_3EndTime();
-                        break;
-                    //排版
-                    case 4:
-                        start = row.getStatus_4StartTime();
-                        end = row.getStatus_4EndTime();
-                        break;
-                    //打版
-                    case 5:
-                        start = row.getStatus_5StartTime();
-                        end = row.getStatus_5EndTime();
-                        break;
-                }
-                LocalDateTime startTime = null;
-                LocalDateTime endTime = null;
-                if (Objects.nonNull(start)) {
-                    startTime = start.toInstant()
-                        .atZone(ZoneId.systemDefault())
-                        .toLocalDateTime();
-                }
-                if (Objects.nonNull(end)) {
-                    endTime = end.toInstant()
-                        .atZone(ZoneId.systemDefault())
-                        .toLocalDateTime();
-                }
-                if (Objects.nonNull(startTime)) {
-                    vo.setTaskStatus("进行中");
-                }
-                vo.setStartTime(startTime);
-                vo.setEndTime(endTime);
-                if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
-                    Duration duration = Duration.between(startTime, endTime);
-                    long hours = duration.toHours();
-                    vo.setTime(hours + "H");
-                }
-            }else{
-                vo.setTaskStatus("未开始");
-            }
-            list.add(vo);
-        }
+        data.forEach(v->{
+            DevelopmentOrderStateService initialState = getDevelopmentOrderStateService(v.getStatus());
+            list.add(initialState.toExportVo(v,adminMapper));
+        });
+
         return list;
     }
 
@@ -379,9 +303,59 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
         LambdaQueryWrapper<DevelopmentOrder> queryWrapper = new LambdaQueryWrapper<>();
         addDynamicConditions(queryWrapper, developmentOrderBo);
         Page<DevelopmentOrderVo> page = developmentOrderMapper.getList(pageQuery.build(), queryWrapper);
+        page.getRecords().forEach(v->{
+            String currentDesigner = getDevelopmentOrderStateService(v.getStatus()).getCurrentDesigner(v,adminMapper);
+            v.setCurrentStatusDesigner(currentDesigner);
+        });
         return DevelopmentOrderTableDataInfo.build(page);
     }
 
+    /**
+     * @param vo
+     * @return
+     */
+    private String getCurrentDesigner(DevelopmentOrderVo vo) {
+        Integer status = vo.getStatus();
+        if (Objects.nonNull(status)) {
+            Long id = switch (status) {
+                default -> -1L;
+            };
+            return adminMapper.getNickName(id);
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * 获取对应状态的服务类
+     * @param status 状态
+     * @return
+     */
+    private DevelopmentOrderStateService getDevelopmentOrderStateService(Integer status){
+        return switch (status) {
+//          待处理
+            case DevelopmentOrderConstants.PENDING_PROCESSING -> new PendingStatusServiceImpl();
+//          画图中
+            case DevelopmentOrderConstants.IN_THE_DRAWING -> new StateServiceInDrawingServiceImpl(this);
+//          确认中
+            case DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS ->
+                new ConfirmTheStatusInProgressServiceImpl(this);
+//          修改中
+            case DevelopmentOrderConstants.UNDER_MODIFICATION -> new ModifyingStatusServiceImpl(this);
+//          调色中
+            case DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT -> new ColorGradingStatusServiceImpl(this);
+//          排版中
+            case DevelopmentOrderConstants.IN_TYPESETTING -> new StatusInTypesettingServiceImpl(this);
+//          打版中
+            case DevelopmentOrderConstants.PRINTING_IN_PROGRESS -> new PrintingStatusServiceImpl(this);
+//          已完成
+            case DevelopmentOrderConstants.COMPLETED -> new CompletedStatusServiceImpl(this);
+//          已取消
+            case DevelopmentOrderConstants.CANCELLED -> new CancelledStatusServiceImpl(this);
+            default -> throw new IllegalStateException("意外状态: " + status);
+        };
+    }
+
     /**
      * 新增开发日志
      *

+ 9 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/resources/mapper/AdminMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.management.mapper.AdminMapper">
+    <select id="getNickName" resultType="string">
+        SELECT nickname FROM fa_admin WHERE id = #{id}
+    </select>
+</mapper>