Parcourir la source

入库明细新增库存数量字段,新增出入库流水导出

fgd il y a 1 an
Parent
commit
f028382b21

+ 16 - 1
sd-business/src/main/java/com/sd/business/controller/in/InOutStorageBomController.java

@@ -1,9 +1,11 @@
 package com.sd.business.controller.in;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.sd.business.entity.in.dto.InOutStorageBomDto;
 import com.sd.business.entity.in.dto.InOutStorageBomSelectDto;
+import com.sd.business.entity.in.vo.InOutStorageBomExportVo;
 import com.sd.business.entity.in.vo.InOutStorageBomVo;
 import com.sd.business.service.in.InOutStorageBomService;
 import com.sd.framework.util.excel.util.ExcelUtil;
@@ -44,7 +46,7 @@ public class InOutStorageBomController {
     }
 
     /**
-     * 出入库bom分页
+     * 出入库bom导出
      */
     @PostMapping("/exportExcel")
     public void exportExcel(HttpServletResponse response, @RequestBody InOutStorageBomSelectDto dto) {
@@ -100,4 +102,17 @@ public class InOutStorageBomController {
         inOutStorageBomService.delete(dto.getId());
     }
 
+
+    /**
+     * 出入库bom流水导出
+     */
+    @PostMapping("/exportExcelSummary")
+    public void exportExcelSummary(HttpServletResponse response, @RequestBody InOutStorageBomSelectDto dto) {
+        dto.setPageNum(1);
+        dto.setPageSize(9999999);
+        Page<InOutStorageBomVo> page = inOutStorageBomService.getPage(dto);
+        List<InOutStorageBomVo> list = page.getRecords();
+        List<InOutStorageBomExportVo> exportList = BeanUtil.copyToList(list, InOutStorageBomExportVo.class);
+        ExcelUtil.export(response, "出入库流水表", "导出数据", exportList, InOutStorageBomExportVo.class);
+    }
 }

+ 5 - 1
sd-business/src/main/java/com/sd/business/entity/in/po/InOutStorageBom.java

@@ -44,9 +44,13 @@ public class InOutStorageBom extends BasePo implements InOutFun {
     private BigDecimal quantity;
 
     /**
-     * 单价
+     * 入库单价
      */
     private BigDecimal unitPrice;
 
 
+    /**
+     * 结存库存数量
+     */
+    private BigDecimal balanceInventoryQuantity;
 }

+ 85 - 0
sd-business/src/main/java/com/sd/business/entity/in/vo/InOutStorageBomExportVo.java

@@ -0,0 +1,85 @@
+package com.sd.business.entity.in.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Getter
+@Setter
+public class InOutStorageBomExportVo {
+    /**
+     * 出入库单号
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "出入库单号", index = 0)
+    private String code;
+
+    /**
+     * 事业部名称
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "归属事业部", index = 1)
+    private String departmentName;
+
+    /**
+     * 仓库名称
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "仓库", index = 2)
+    private String warehouseName;
+
+    /**
+     * 出入库明细类型值
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "出入库类型", index = 3)
+    private String detailTypeValue;
+
+    /**
+     * 产品规格品号
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "品号", index = 4)
+    private String bomSpecCode;
+
+    /**
+     * 产品规格品名
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "品名", index = 5)
+    private String bomSpecName;
+
+    /**
+     * 数量
+     */
+    @ExcelProperty(value = "数量", index = 6)
+    private BigDecimal quantity;
+
+    /**
+     * 结存库存数量
+     */
+    @ColumnWidth(15)
+    @ExcelProperty(value = "库存数量", index = 7)
+    private BigDecimal balanceInventoryQuantity;
+
+    /**
+     * 出入库时间
+     */
+    @ColumnWidth(20)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelProperty(value = "操作时间", index = 8)
+    private Date createTime;
+
+    /**
+     * 申请人
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "操作人", index = 9)
+    private String applicant;
+
+}

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

@@ -97,6 +97,11 @@ public class InOutStorageBomVo extends InOutStorageBom {
     private String bomSpecName;
 
     /**
+     * 备注
+     */
+    private String remark;
+
+    /**
      * 仓库类型值
      */
     @ColumnWidth(20)

+ 4 - 0
sd-business/src/main/java/com/sd/business/entity/inventory/bo/InOutFun.java

@@ -14,4 +14,8 @@ public interface InOutFun {
      */
     BigDecimal getQuantity();
 
+    /**
+     * 保存结存库存数量
+     */
+    void setBalanceInventoryQuantity(BigDecimal balanceInventoryQuantity);
 }

+ 12 - 3
sd-business/src/main/java/com/sd/business/service/inventory/impl/InventoryServiceImpl.java

@@ -138,6 +138,9 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
 
                 inventory.setQuantity(inventory.getQuantity().add(inOutFun.getQuantity()));
                 inventory.setBalanceUnitPrice(balanceUnitPrice);
+
+                // 保存当前入库记录的结存库存
+                inOutFun.setBalanceInventoryQuantity(inventory.getQuantity().add(inventory.getLockQuantity()));
             }
 
             saveOrUpdateBatch(inventoryList);
@@ -186,6 +189,8 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                 // 赋值结存单价
                 inventory.setBalanceUnitPrice(balanceUnitPrice);
 
+                // 保存当前入库记录的结存库存
+                inOutFun.setBalanceInventoryQuantity(inventory.getQuantity().add(inventory.getLockQuantity()));
             }
 
             // 修改计算结存单价的出入库明细表
@@ -457,17 +462,21 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                     return tempInventory;
                 });
                 PurchaseBom purchaseBom = purchaseBomMap.get(inOutFun.getBomSpecId());
+                // 实际库存数  当前库存数量加锁定库存
+                BigDecimal actualInventoryQuantity  = inventory.getQuantity().add(inventory.getLockQuantity());
                 // 结存数量
-                BigDecimal sumQuantity = inventory.getQuantity().add(inOutFun.getQuantity());
+                BigDecimal sumQuantity = actualInventoryQuantity.add(inOutFun.getQuantity());
                 // 结存金额
-                BigDecimal sumPrice = inventory.getQuantity().multiply(inventory.getBalanceUnitPrice())
+                BigDecimal sumPrice = actualInventoryQuantity.multiply(inventory.getBalanceUnitPrice())
                         .add(inOutFun.getQuantity().multiply(purchaseBom.getUnitPrice()));
 
                 // 获取入库结存单价
                 BigDecimal balanceUnitPrice = sumPrice.divide(sumQuantity, 2, RoundingMode.HALF_UP);
 
-                inventory.setQuantity(sumQuantity);
+                inventory.setQuantity(sumQuantity.subtract(inventory.getLockQuantity()));
                 inventory.setBalanceUnitPrice(balanceUnitPrice);
+
+                inOutFun.setBalanceInventoryQuantity(sumQuantity);
             }
 
             saveOrUpdateBatch(inventoryList);

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

@@ -7,6 +7,7 @@
                iosb.in_out_storage_id,
                iosb.bom_spec_id,
                iosb.quantity,
+               iosb.balance_inventory_quantity,
                ios.create_time,
                w.type  warehouseType,
                w.name  warehouseName,
@@ -16,6 +17,7 @@
                ios.type,
                ios.code,
                ios.applicant,
+               ios.remark,
                bs.code bomSpecCode,
                bs.name bomSpecName
         from in_out_storage_bom iosb