فهرست منبع

feat:新增导出开发订单列表Excel接口

yangyi 5 ماه پیش
والد
کامیت
64bddfa5d1

+ 6 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/controller/DevelopmentOrderController.java

@@ -8,6 +8,7 @@ import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.vo.DevelopmentOrderTableDataInfo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
 import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderVo;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.validate.AddGroup;
@@ -31,6 +32,11 @@ public class DevelopmentOrderController extends BaseController {
     public DevelopmentOrderTableDataInfo<DevelopmentOrderVo> getList(PageQuery pageQuery, DevelopmentOrderBo developmentOrderBo) {
         return developmentOrderService.getList(developmentOrderBo, pageQuery);
     }
+    @GetMapping("/export")
+    public void export(PageQuery pageQuery, DevelopmentOrderBo developmentOrderBo, HttpServletResponse response){
+        List<ExportDevelopmentOrderVo> listVo = developmentOrderService.getExportList(pageQuery,developmentOrderBo);
+        ExcelUtil.exportExcel(listVo, "开发订单列表", ExportDevelopmentOrderVo.class, response);
+    }
 
     @PostMapping("/add")
     @SaCheckPermission("fa:development:add")

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

@@ -5,7 +5,6 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
-import org.dromara.management.domain.DevelopOrderLogs;
 import org.dromara.management.domain.DevelopmentOrder;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 

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

@@ -0,0 +1,108 @@
+package org.dromara.management.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+import org.dromara.management.handller.converter.DevelopmentOrderStatusConverter;
+
+import java.time.LocalDateTime;
+
+@Data
+public class ExportDevelopmentOrderVo {
+    /**
+     * 订单编号
+     */
+    @ExcelProperty(value = "订单号",order = 1)
+    private String orderNum;
+    /**
+     * 款号
+     */
+    @ExcelProperty(value = "款号",order = 2)
+    private String kuanhao;
+    /**
+     * 参考图
+     */
+    @ExcelProperty(value = "参考图",order = 3)
+    private String referenceImage;
+    /**
+     * 面料
+     */
+    @ExcelProperty(value = "面料",order = 4)
+    private String mianliao;
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间",order = 5)
+    private LocalDateTime createTime;
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注",order = 6)
+    private String remark;
+    /**
+     * 开发描述
+     */
+    @ExcelProperty(value = "开发描述",order = 7)
+    private String devRemark;
+    /**
+     * 客户姓名
+     */
+    @ExcelProperty(value = "客户姓名",order = 8)
+    private String customerName;
+    /**
+     * 大货款号
+     */
+    @ExcelProperty(value = "大货款号",order = 9)
+    private String dahuoKuanhao;
+    /**
+     * 花型号
+     */
+    @ExcelProperty(value = "花型号",order = 10)
+    private String huaxinghao;
+    /**
+     * 跟单
+     */
+    @ExcelProperty(value = "跟单",order = 11)
+    private String gendan;
+    /**
+     * 画图
+     */
+    @ExcelProperty(value = "画图",order = 12)
+    private String drawUser;
+    /**
+     * 调色
+     */
+    @ExcelProperty(value = "调色",order = 13)
+    private String colorUser;
+    /**
+     * 排版
+     */
+    @ExcelProperty(value = "排版",order = 14)
+    private String layoutUser;
+    /**
+     * 耗时
+     */
+    @ExcelProperty(value = "耗时",order = 15)
+    private String time;
+    /**
+     * 设计图
+     */
+    @ExcelProperty(value = "设计图",order = 16)
+    private String designImage;
+    /**
+     * 排版文件
+     */
+    @ExcelProperty(value = "排版图",order = 17)
+    private String layoutFile;
+    /**
+     * 0待处理
+     * 1画图中
+     * 2确认中
+     * 3调色中
+     * 4排版中
+     * 5打版中
+     * 6已完成
+     * 99已取消
+     */
+    @ExcelProperty(value = "任务状态",order = 18,converter = DevelopmentOrderStatusConverter.class)
+    private Integer status;
+}

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

@@ -8,10 +8,19 @@ import com.alibaba.excel.metadata.GlobalConfiguration;
 import com.alibaba.excel.metadata.data.ReadCellData;
 import com.alibaba.excel.metadata.data.WriteCellData;
 import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import org.dromara.common.core.constant.DevelopmentOrderConstants;
 
 /**
  * 状态值转换到文本
- * 0=待处理,1=画图,2=确认,3=调色,4=排版,5=打版,6=完成
+ * 0待处理
+ * 1画图中
+ * 2确认中
+ * 3修改中
+ * 4调色中
+ * 5排版中
+ * 6打版中
+ * 7已完成
+ * 99已取消
  */
 public class DevelopmentOrderStatusConverter implements Converter<Integer> {
     @Override
@@ -21,47 +30,41 @@ public class DevelopmentOrderStatusConverter implements Converter<Integer> {
 
     @Override
     public CellDataTypeEnum supportExcelTypeKey() {
-        return CellDataTypeEnum.NUMBER;
-    }
-
-    @Override
-    public Integer convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
-        return Converter.super.convertToJavaData(cellData, contentProperty, globalConfiguration);
+        return CellDataTypeEnum.STRING;
     }
 
     @Override
     public Integer convertToJavaData(ReadConverterContext<?> context) throws Exception {
-        //excelFlied convert javaObject
-        String cellValue = context.getReadCellData().getStringValue();
-        int status = Integer.parseInt(cellValue);
-        return switch(cellValue){
-            case "画图"->1;
-            case "确认"->2;
-            case "调色"->3;
-            case "排版"->4;
-            case "打版"->5;
+        String value = context.getReadCellData().getStringValue();
+        return switch (value) {
+            case "待处理" -> DevelopmentOrderConstants.PENDING_PROCESSING;
+            case "画图中" -> DevelopmentOrderConstants.IN_THE_DRAWING;
+            case "确认中" -> DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS;
+            case "修改中" -> DevelopmentOrderConstants.UNDER_MODIFICATION;
+            case "调色中" -> DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT;
+            case "排版中" -> DevelopmentOrderConstants.IN_TYPESETTING;
+            case "打版中" -> DevelopmentOrderConstants.PRINTING_IN_PROGRESS;
+            case "已完成" -> DevelopmentOrderConstants.COMPLETED;
+            case "已取消" -> DevelopmentOrderConstants.CANCELLED;
             default -> -1;
         };
     }
 
-    @Override
-    public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
-        return Converter.super.convertToExcelData(value, contentProperty, globalConfiguration);
-    }
-
     @Override
     public WriteCellData<?> convertToExcelData(WriteConverterContext<Integer> context) throws Exception {
-        //javaObject Filed convert excelFlied
-        Integer status = context.getValue();
-        String mes = switch(status){
-            case 0->"待处理";
-            case 1->"画图";
-            case 2->"确认";
-            case 3->"调色";
-            case 4->"排版";
-            case 5->"打版";
-            default -> "非法状态";
+        int value = context.getValue();
+        String status = switch (value) {
+            case DevelopmentOrderConstants.PENDING_PROCESSING -> "待处理";
+            case DevelopmentOrderConstants.IN_THE_DRAWING -> "画图中";
+            case DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS -> "确认中";
+            case DevelopmentOrderConstants.UNDER_MODIFICATION -> "修改中";
+            case DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT -> "调色中";
+            case DevelopmentOrderConstants.IN_TYPESETTING -> "排版中";
+            case DevelopmentOrderConstants.PRINTING_IN_PROGRESS -> "打版中";
+            case DevelopmentOrderConstants.COMPLETED -> "已完成";
+            case DevelopmentOrderConstants.CANCELLED -> "已取消";
+            default -> "未知状态";
         };
-        return new WriteCellData<String>(mes);
+        return new WriteCellData<String>(status);
     }
 }

+ 3 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/DevelopmentOrderService.java

@@ -8,6 +8,7 @@ import org.dromara.management.domain.vo.DevelopmentOrderTableDataInfo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.management.domain.vo.ExportDevelopmentOrderDesignerTaskVo;
+import org.dromara.management.domain.vo.ExportDevelopmentOrderVo;
 
 import java.util.List;
 import java.util.Map;
@@ -45,4 +46,6 @@ public interface DevelopmentOrderService extends IService<DevelopmentOrder> {
     DevelopmentOrderTableDataInfo<DevelopmentOrderVo> getDesignerTaskList(DevelopmentOrderBo developmentOrderBo, PageQuery pageQuery);
 
     List<ExportDevelopmentOrderDesignerTaskVo> getExportDesignerTaskList(PageQuery pageQuery, DevelopmentOrderBo developmentOrderBo);
+
+    List<ExportDevelopmentOrderVo> getExportList(PageQuery pageQuery, DevelopmentOrderBo developmentOrderBo);
 }

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

@@ -43,7 +43,7 @@ public class ModifyingStatusServiceImpl implements DevelopmentOrderStateService
         BeanUtils.copyProperties(developmentOrderVo, vo);
         Date start = developmentOrderVo.getStatus_3StartTime();
         Date end = developmentOrderVo.getStatus_3EndTime();
-        String designer = adminMapper.getNickName(developmentOrderVo.getColorUserid());
+        String designer = adminMapper.getNickName(developmentOrderVo.getDesignUserid());
         //设计师
         if (Objects.nonNull(designer)) {
             vo.setDesigner(designer);

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

@@ -38,6 +38,7 @@ import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeParseException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 开发订单Service业务层处理
@@ -283,6 +284,40 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
         }
     }
 
+    @Override
+    public List<ExportDevelopmentOrderVo> getExportList(PageQuery pageQuery, DevelopmentOrderBo developmentOrderBo) {
+        // 构建动态查询条件
+        LambdaQueryWrapper<DevelopmentOrder> queryWrapper = new LambdaQueryWrapper<>();
+        addDynamicConditions(queryWrapper, developmentOrderBo);
+
+        Page<DevelopmentOrderVo> page = developmentOrderMapper.getList(pageQuery.build(), queryWrapper);
+        return toExportDevelopmentOrderVo(page.getRecords());
+    }
+
+    private List<ExportDevelopmentOrderVo> toExportDevelopmentOrderVo(List<DevelopmentOrderVo> list) {
+        return list.stream().map(this::toExportDevelopmentOrderVo).collect(Collectors.toList());
+    }
+
+    private ExportDevelopmentOrderVo toExportDevelopmentOrderVo(DevelopmentOrderVo developmentOrderVo) {
+        ExportDevelopmentOrderVo exportDevelopmentOrderVo = new ExportDevelopmentOrderVo();
+        BeanUtils.copyProperties(developmentOrderVo,exportDevelopmentOrderVo);
+        //各任务负责人
+        exportDevelopmentOrderVo.setGendan(adminMapper.getNickName(developmentOrderVo.getConfirmUserid()));
+        exportDevelopmentOrderVo.setDrawUser(adminMapper.getNickName(developmentOrderVo.getDesignUserid()));
+        exportDevelopmentOrderVo.setColorUser(adminMapper.getNickName(developmentOrderVo.getColorUserid()));
+        exportDevelopmentOrderVo.setLayoutUser(adminMapper.getNickName(developmentOrderVo.getLayoutUserid()));
+        //计算耗时
+        Date createTime = developmentOrderVo.getCreateTime();
+        if (Objects.nonNull(createTime)) {
+            LocalDateTime localDateTime = createTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+            long hours = Duration.between(localDateTime, LocalDateTime.now()).toHours();
+            exportDevelopmentOrderVo.setTime(hours + "H");
+        }else{
+            exportDevelopmentOrderVo.setTime("0H");
+        }
+        return exportDevelopmentOrderVo;
+    }
+
     @Override
     public List<ExportDevelopmentOrderDesignerTaskVo> getExportDesignerTaskList(PageQuery pageQuery, DevelopmentOrderBo developmentOrderBo) {
         List<ExportDevelopmentOrderDesignerTaskVo> list = new ArrayList<>();
@@ -310,22 +345,6 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
         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 状态