Browse Source

新增出入库明细导出

fgd 1 năm trước cách đây
mục cha
commit
d209b09701

+ 32 - 0
sd-business/src/main/java/com/sd/business/controller/in/InOutStorageBomController.java

@@ -6,12 +6,19 @@ import com.sd.business.entity.in.dto.InOutStorageBomDto;
 import com.sd.business.entity.in.dto.InOutStorageBomSelectDto;
 import com.sd.business.entity.in.vo.InOutStorageBomVo;
 import com.sd.business.service.in.InOutStorageBomService;
+import com.sd.framework.util.excel.util.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 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 javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
 
 /**
  * <p>
@@ -37,6 +44,31 @@ public class InOutStorageBomController {
     }
 
     /**
+     * 出入库bom分页
+     */
+    @PostMapping("/exportExcel")
+    public void exportExcel(HttpServletResponse response, @RequestBody InOutStorageBomSelectDto dto) {
+        dto.setPageNum(1);
+        dto.setPageSize(9999999);
+        Page<InOutStorageBomVo> page = inOutStorageBomService.getPage(dto);
+        List<InOutStorageBomVo> list = page.getRecords();
+        String fileName;
+        Map<String, String> keys = new HashMap<>();
+        if (Objects.equals(dto.getType(), 1)) {
+            fileName = "入库明细表";
+            keys.put("code", "入库单号");
+            keys.put("createTime", "入库时间");
+            keys.put("detailTypeValue", "入库类型");
+        } else {
+            fileName = "出库库明细表";
+            keys.put("code", "出库单号");
+            keys.put("createTime", "出库时间");
+            keys.put("detailTypeValue", "出库类型");
+        }
+        ExcelUtil.export(response, fileName, "导出数据", list, ExcelUtil.getClassNew(new InOutStorageBomVo(), keys));
+    }
+
+    /**
      * 出入库bom明细
      */
     @PostMapping("/detail")

+ 2 - 0
sd-business/src/main/java/com/sd/business/entity/in/po/InOutStorageBom.java

@@ -1,5 +1,6 @@
 package com.sd.business.entity.in.po;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.BasePo;
 import com.sd.business.entity.inventory.bo.InOutFun;
@@ -37,6 +38,7 @@ public class InOutStorageBom extends BasePo implements InOutFun {
     /**
      * 数量
      */
+    @ExcelProperty(value = "数量", index = 8)
     @NotNull(message = "出入库数量不能为空")
     @DecimalMin(value = "0.01", message = "出入库数量必须大于0")
     private BigDecimal quantity;

+ 61 - 0
sd-business/src/main/java/com/sd/business/entity/in/vo/InOutStorageBomVo.java

@@ -1,8 +1,17 @@
 package com.sd.business.entity.in.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.sd.business.entity.in.emums.InDetailTypeEnum;
+import com.sd.business.entity.in.emums.OutDetailTypeEnum;
 import com.sd.business.entity.in.po.InOutStorageBom;
 import lombok.Getter;
 import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.Objects;
 
 /**
  * 出入库bom列表查询返回值实体
@@ -12,9 +21,15 @@ import lombok.Setter;
  */
 @Getter
 @Setter
+@ExcelIgnoreUnannotated
 public class InOutStorageBomVo extends InOutStorageBom {
 
     /**
+     * 类型 1入库 0出库
+     */
+    private Integer type;
+
+    /**
      * 出入库明细
      */
     private Integer detailType;
@@ -22,11 +37,23 @@ public class InOutStorageBomVo extends InOutStorageBom {
     /**
      * 出入库单号
      */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "出入库单号", index = 0)
     private String code;
 
     /**
+     * 入库时间
+     */
+    @ColumnWidth(20)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelProperty(value = "出入库时间", index = 9)
+    private Date createTime;
+
+    /**
      * 申请人
      */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "申请人", index = 10)
     private String applicant;
 
     /**
@@ -37,26 +64,60 @@ public class InOutStorageBomVo extends InOutStorageBom {
     /**
      * 仓库名称
      */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "仓库", index = 4)
     private String warehouseName;
 
     /**
      * 事业部名称
      */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "归属事业部", index = 2)
     private String departmentName;
 
     /**
      * 采购单号
      */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "采购单号", index = 1)
     private String purchaseCode;
 
     /**
      * 产品规格品号
      */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "品号", index = 6)
     private String bomSpecCode;
 
     /**
      * 产品规格品名
      */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "品名", index = 7)
     private String bomSpecName;
 
+    /**
+     * 仓库类型值
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "仓库类型", index = 3)
+    private String warehouseTypeValue;
+
+    /**
+     * 出入库明细类型值
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "出入库类型", index = 5)
+    private String detailTypeValue;
+
+    public String getWarehouseTypeValue() {
+        return warehouseName;
+    }
+
+    public String getDetailTypeValue() {
+        if (Objects.equals(type, 1)) {
+            return InDetailTypeEnum.getInDetailType(detailType).getValue();
+        }
+        return OutDetailTypeEnum.getOutDetailType(detailType).getValue();
+    }
 }

+ 2 - 1
sd-business/src/main/resources/mapper/in/InOutStorageBomMapper.xml

@@ -10,9 +10,10 @@
                ios.create_time,
                w.type  warehouseType,
                w.name  warehouseName,
-               d.name  departmentName,
+               (CASE WHEN ios.department_id = 0 THEN '胜德体育' ELSE d.name END) departmentName,
                p.code  purchaseCode,
                ios.detail_type,
+               ios.type,
                ios.code,
                ios.applicant,
                bs.code bomSpecCode,