Răsfoiți Sursa

fix:完成图片上传功能

qingwudarao 5 luni în urmă
părinte
comite
2a5e121354

+ 20 - 4
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/controller/BulkOrderManagementController.java

@@ -6,10 +6,10 @@ import org.dromara.bulk.domain.bo.NewBulkOrderBo;
 import org.dromara.bulk.service.BulkOrderManagementService;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.web.core.BaseController;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
 
 /**
  * 大货订单管理接口
@@ -20,10 +20,26 @@ import org.springframework.web.bind.annotation.RestController;
 class BulkOrderManagementController extends BaseController {
     private final BulkOrderManagementService BulkOrderManagementService;
 
+    /**
+     * 新增生产订单
+     * @param newBulkOrderBo 新增生产订单BO对象
+     * @return 结果
+     */
     @SaIgnore
     @PostMapping()
     public R<Void> insertBulkOrder(@RequestBody NewBulkOrderBo newBulkOrderBo){
         return toAjax(BulkOrderManagementService.insertBulkOrder(newBulkOrderBo));
     }
+
+    /**
+     * 上传图片
+     * @param imageList 图片列表
+     * @return 结果
+     */
+    @SaIgnore
+    @PostMapping("uploadImage")
+    public R<Void> uploadImage(@RequestParam("imageList") List<MultipartFile> imageList){
+        return toAjax(BulkOrderManagementService.uploadImage(imageList));
+    }
 }
 

+ 3 - 2
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/domain/Attachment.java

@@ -103,7 +103,8 @@ public class Attachment {
     private String storage;
 
     /**
-     * sha1值
+     * ossId
      */
-    private String sha1;
+    @TableField("sha1")
+    private String ossId;
 }

+ 0 - 47
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/domain/FlowerPattern.java

@@ -1,47 +0,0 @@
-package org.dromara.bulk.domain;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 图片关联表基类
- */
-@Data
-@TableName("fa_kuyou_flower_pattern")
-public class FlowerPattern {
-
-    /**
-     * 主键
-     */
-    private Long id;
-
-    /**
-     * 图片地址
-     */
-    @TableField("image")
-    private String imageUrl;
-
-    /**
-     * 花型号id
-     */
-    @TableField("code")
-    private String OemId;
-
-    /**
-     * 创建时间
-     */
-    private Date createTime;
-
-    /**
-     * 用户订单id
-     */
-    private Long userOrderId;
-
-    /**
-     * 用户id
-     */
-    private Long userId;
-}

+ 17 - 2
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/domain/bo/AttachmentBo.java

@@ -2,6 +2,7 @@ package org.dromara.bulk.domain.bo;
 
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 import org.dromara.bulk.domain.Attachment;
 
 import java.util.Date;
@@ -10,9 +11,23 @@ import java.util.Date;
  * 附件表Bo类
  */
 @Data
+@NoArgsConstructor
 @AutoMapper(target = Attachment.class, reverseConvertGenerate = false)
 public class AttachmentBo {
 
+    public AttachmentBo(String category, Long userId, String url, String imageType, String fileName, Date createTime, Date updateTime, Date uploadTime, String storage, String ossId) {
+        this.category = category;
+        this.userId = userId;
+        this.url = url;
+        this.imageType = imageType;
+        this.fileName = fileName;
+        this.createTime = createTime;
+        this.updateTime = updateTime;
+        this.uploadTime = uploadTime;
+        this.storage = storage;
+        this.ossId = ossId;
+    }
+
     /**
      * 主键
      */
@@ -94,7 +109,7 @@ public class AttachmentBo {
     private String storage;
 
     /**
-     * sha1值
+     * ossId
      */
-    private String sha1;
+    private String ossId;
 }

+ 0 - 45
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/domain/bo/FlowerPatternBo.java

@@ -1,45 +0,0 @@
-package org.dromara.bulk.domain.bo;
-
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import org.dromara.bulk.domain.FlowerPattern;
-
-import java.util.Date;
-
-/**
- * 图片关联表Bo类
- */
-@Data
-@AutoMapper(target = FlowerPattern.class, reverseConvertGenerate = false)
-public class FlowerPatternBo {
-
-    /**
-     * 主键
-     */
-    private Long id;
-
-    /**
-     * 图片地址
-     */
-    private String imageUrl;
-
-    /**
-     * 花型号id
-     */
-    private String OemId;
-
-    /**
-     * 创建时间
-     */
-    private Date createTime;
-
-    /**
-     * 用户订单id
-     */
-    private Long userOrderId;
-
-    /**
-     * 用户id
-     */
-    private Long userId;
-}

+ 2 - 2
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/domain/vo/AttachmentVo.java

@@ -94,7 +94,7 @@ public class AttachmentVo {
     private String storage;
 
     /**
-     * sha1值
+     * ossId
      */
-    private String sha1;
+    private String ossId;
 }

+ 0 - 45
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/domain/vo/FlowerPatternVo.java

@@ -1,45 +0,0 @@
-package org.dromara.bulk.domain.vo;
-
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import org.dromara.bulk.domain.FlowerPattern;
-
-import java.util.Date;
-
-/**
- * 图片关联表Vo类
- */
-@Data
-@AutoMapper(target = FlowerPattern.class)
-public class FlowerPatternVo {
-
-    /**
-     * 主键
-     */
-    private Long id;
-
-    /**
-     * 图片地址
-     */
-    private String imageUrl;
-
-    /**
-     * 花型号id
-     */
-    private String OemId;
-
-    /**
-     * 创建时间
-     */
-    private Date createTime;
-
-    /**
-     * 用户订单id
-     */
-    private Long userOrderId;
-
-    /**
-     * 用户id
-     */
-    private Long userId;
-}

+ 10 - 0
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/mapper/AttachmentMapper.java

@@ -0,0 +1,10 @@
+package org.dromara.bulk.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.dromara.bulk.domain.Attachment;
+import org.dromara.bulk.domain.vo.AttachmentVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+@Mapper
+public interface AttachmentMapper extends BaseMapperPlus<Attachment, AttachmentVo> {
+}

+ 1 - 1
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/mapstruct/NewBulkOrderMapstruct.java

@@ -20,7 +20,7 @@ public interface NewBulkOrderMapstruct {
     @Mapping(target = "scNo", source = "purchaseCode")
     @Mapping(target = "goodsCode", constant = "SP001")
     @Mapping(target = "goodsName", constant = "图片下单")
-    @Mapping(target = "goodsId", constant = "9")
+    @Mapping(target = "goodsId", constant = "9L")
     @Mapping(target = "unitId", constant = "5")
     @Mapping(target = "defaultUnit", constant = "5")
     @Mapping(target = "goodsTypeExtend1Id", source = "orderList.daHuoNumberName")

+ 5 - 4
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/service/BulkOrderManagementService.java

@@ -1,14 +1,15 @@
 package org.dromara.bulk.service;
 
-import org.dromara.bulk.domain.bo.BulkOrderListBo;
 import org.dromara.bulk.domain.bo.NewBulkOrderBo;
-import org.dromara.bulk.domain.vo.BulkOrderListVo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
 
 public interface BulkOrderManagementService {
 
 //    TableDataInfo<BulkOrderListVo> selectPageVoList(BulkOrderListBo bulkOrderListBo, PageQuery pageQuery);
 
     int insertBulkOrder(NewBulkOrderBo newBulkOrderBo);
+
+    int uploadImage(List<MultipartFile> imageList);
 }

+ 44 - 5
ruoyi-modules/ruoyi-bulkOrder/src/main/java/org/dromara/bulk/service/impl/BulkOrderManagementServiceImpl.java

@@ -2,23 +2,30 @@ package org.dromara.bulk.service.impl;
 
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.bulk.domain.Attachment;
 import org.dromara.bulk.domain.BulkOrderList;
 import org.dromara.bulk.domain.UserOrder;
 import org.dromara.bulk.domain.UserOrderTemplate;
+import org.dromara.bulk.domain.bo.AttachmentBo;
 import org.dromara.bulk.domain.bo.NewBulkOrderBo;
 import org.dromara.bulk.domain.bo.OrderListBo;
 import org.dromara.bulk.mapper.BulkOrderListMapper;
+import org.dromara.bulk.mapper.AttachmentMapper;
 import org.dromara.bulk.mapper.UserOrderMapper;
 import org.dromara.bulk.mapper.UserOrderTemplateMapper;
 import org.dromara.bulk.mapstruct.NewBulkOrderMapstruct;
 import org.dromara.bulk.service.BulkOrderManagementService;
+import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.OrderNumberGenerator;
 import org.dromara.productionManagement.domain.ProductionPlan;
 import org.dromara.productionManagement.mapper.ProductionPlanMapper;
+import org.dromara.system.domain.vo.SysOssVo;
 import org.dromara.system.service.impl.SysOssServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -33,9 +40,24 @@ public class BulkOrderManagementServiceImpl implements BulkOrderManagementServic
     private final BulkOrderListMapper bulkOrderListMapper;
     private final UserOrderMapper userOrderMapper;
     private final UserOrderTemplateMapper userOrderTemplateMapper;
+    private final AttachmentMapper attachmentMapper;
+
     private final NewBulkOrderMapstruct newBulkOrderMapstruct;
     private final SysOssServiceImpl sysOssService;
 
+    private List<MultipartFile> imageList;
+
+    /**
+     * 单独上传图片的处理
+     * @param inputImageList 图片列表
+     * @return 结果
+     */
+    @Override
+    public int uploadImage(List<MultipartFile> inputImageList) {
+        imageList = inputImageList;
+        return imageList == null ? 0 : 1;
+    }
+
     /**
      * 新增生产订单
      *
@@ -46,8 +68,16 @@ public class BulkOrderManagementServiceImpl implements BulkOrderManagementServic
     @Transactional(rollbackFor = Exception.class)
     public int insertBulkOrder(NewBulkOrderBo newBulkOrderBo) {
         try {
+            //保存上传的图片
+            List<SysOssVo> ossList = new ArrayList<>();
+            for (MultipartFile image : imageList) {
+                ossList.add(sysOssService.upload(image));
+            }
+            //批量处理新增生产订单
             OrderNumberGenerator orderNumberGenerator = OrderNumberGenerator.getInstance();
-            for (OrderListBo orderList : newBulkOrderBo.getOrderLists()) {
+            for (int i = 0; i < newBulkOrderBo.getOrderLists().size(); i++) {
+                OrderListBo orderList = newBulkOrderBo.getOrderLists().get(i);
+                SysOssVo sysOssVo = ossList.get(i);
                 // 生成单号
                 String sysNo = orderNumberGenerator.generateOrderNumber("SYS");
                 String purchaseCode = orderNumberGenerator.generateOrderNumber("SC");
@@ -95,13 +125,22 @@ public class BulkOrderManagementServiceImpl implements BulkOrderManagementServic
                     userOrderTemplateMapper.insert(templates);
                 }
 
-                //处理款式图
-//                SysOssVo styleImageVo = sysOssService.upload(orderList.getStyleImage());
+                // 处理图片关联性
+                attachmentMapper.insert(MapstructUtils.convert(new AttachmentBo("image",
+                    newBulkOrderBo.getUserId(),
+                    sysOssVo.getUrl(),
+                    sysOssVo.getFileSuffix(),
+                    sysOssVo.getFileName(),
+                    newBulkOrderBo.getCreateTime(),
+                    newBulkOrderBo.getUpdateTime(),
+                    sysOssVo.getCreateTime(),
+                    sysOssVo.getUrl(),
+                    sysOssVo.getOssId().toString()), Attachment.class));
             }
             return 1;
         } catch (Exception e) {
-            log.error(String.valueOf(e));
-            return 0;
+            log.error("插入生产订单失败: {}", e.getMessage(), e);
+            throw new RuntimeException("插入生产订单失败", e);
         }
     }
 }

+ 6 - 0
ruoyi-modules/ruoyi-bulkOrder/src/main/resources/mapper/AttachmentMapper.xml

@@ -0,0 +1,6 @@
+<?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.bulk.mapper.AttachmentMapper">
+</mapper>