diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryCheckController.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryCheckController.java index 52eb44db..b4420e73 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryCheckController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryCheckController.java @@ -4,10 +4,14 @@ import java.util.List; import com.ruoyi.warehouse.domain.VO.WarehouseMaterialVO; import com.ruoyi.warehouse.domain.WarehouseInventoryCheckDetail; +import com.ruoyi.warehouse.domain.WarehouseInventoryReportDamageChild; +import com.ruoyi.warehouse.mapper.WarehouseInventoryCheckDetailMapper; +import com.ruoyi.warehouse.service.IWarehouseInventoryCheckDetailService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.enums.BusinessType; @@ -33,6 +37,12 @@ public class WarehouseInventoryCheckController extends BaseController @Autowired private IWarehouseInventoryCheckService warehouseInventoryCheckService; + @Autowired + private IWarehouseInventoryCheckDetailService checkDetailService; + + @Autowired + private WarehouseInventoryCheckDetailMapper checkDetailMapper; + @RequiresPermissions("warehouse:inventoryCheck:view") @GetMapping() public String inventoryCheck() @@ -60,11 +70,19 @@ public class WarehouseInventoryCheckController extends BaseController @Log(title = "仓库库存盘点", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody - public AjaxResult export(WarehouseInventoryCheck warehouseInventoryCheck) + public AjaxResult export(WarehouseInventoryCheck warehouseInventoryCheck,String ids) { - List list = warehouseInventoryCheckService.selectWarehouseInventoryCheckList(warehouseInventoryCheck); - ExcelUtil util = new ExcelUtil(WarehouseInventoryCheck.class); - return util.exportExcel(list, "仓库库存盘点数据"); + if (StringUtils.isEmpty(ids)){ + WarehouseInventoryCheckDetail checkDetail = new WarehouseInventoryCheckDetail(); + List list = checkDetailService.selectWarehouseInventoryCheckDetailList(checkDetail); + ExcelUtil util = new ExcelUtil(WarehouseInventoryCheckDetail.class); + return util.exportExcel(list, "仓库库存报损数据"); + }else { + String[] checkCodes = ids.split(","); + List list = checkDetailMapper.selectWarehouseInventoryCheckDetailByCodes(checkCodes); + ExcelUtil util = new ExcelUtil(WarehouseInventoryCheckDetail.class); + return util.exportExcel(list, ids); + } } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryCheckDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryCheckDetail.java index 482b6eda..41e09737 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryCheckDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryCheckDetail.java @@ -21,50 +21,55 @@ public class WarehouseInventoryCheckDetail extends BaseEntity private Long inventoryCheckDetailId; /** 库存盘点单号 */ + @Excel(name = "库存盘点单号", sort = 1) private String inventoryCheckCode; /** 库存盘点人名 */ + @Excel(name = "盘点人", sort = 13) private String inventoryCheckName; /** 料号 */ - @Excel(name = "料号") + @Excel(name = "料号", sort = 2) private String materialNo; /** 物料名称 */ - @Excel(name = "物料名称") + @Excel(name = "物料名称", sort = 3) private String materialName; /** 物料单位 */ - @Excel(name = "物料单位") + @Excel(name = "单位", sort = 10) private String materialUnit; /** 物料描述 */ - @Excel(name = "物料描述") + @Excel(name = "物料描述", sort = 4) private String materialDescribe; /** 库存盘点数量 */ - @Excel(name = "库存盘点数量") + @Excel(name = "盘点数量", sort = 11) private Integer inventoryCheckNum; /** 当时库存账上数量 */ - @Excel(name = "当时库存账上数量") + @Excel(name = "当时库存账上数量", sort = 12) private Integer inventoryAccountNum; - /** 仓库存放地址 */ - @Excel(name = "仓库存放地址") - private String warehouseStoreAddress; - /** 批号 */ - @Excel(name = "批号") + @Excel(name = "批号", sort = 5) private Integer batchNumber; /** 仓库号 */ + @Excel(name = "仓库号", sort = 6) private String warehouseCode; /** 仓库名称 */ + @Excel(name = "仓库名称", sort = 7) private String warehouseName; + /** 仓库存放地址 */ + @Excel(name = "仓库存放地址", sort = 8) + private String warehouseStoreAddress; + /** 库存盘点日期 */ + @Excel(name = "库存盘点日期", sort = 9, dateFormat = "yyyy-MM-dd") private Date inventoryCheckDate; /** 物料数合计 */ @@ -73,6 +78,8 @@ public class WarehouseInventoryCheckDetail extends BaseEntity /** 数量合计 */ private Integer numTotal; + @Excel(name = "备注", sort = 14) + private String remark; public void setInventoryCheckDetailId(Long inventoryCheckDetailId) { this.inventoryCheckDetailId = inventoryCheckDetailId; @@ -218,6 +225,16 @@ public class WarehouseInventoryCheckDetail extends BaseEntity return numTotal; } + @Override + public String getRemark() { + return remark; + } + + @Override + public void setRemark(String remark) { + this.remark = remark; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseInventoryCheckDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseInventoryCheckDetailMapper.java index 1469d2e0..6f43c3e8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseInventoryCheckDetailMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseInventoryCheckDetailMapper.java @@ -51,6 +51,14 @@ public interface WarehouseInventoryCheckDetailMapper */ public int deleteWarehouseInventoryCheckDetailById(Long inventoryCheckDetailId); + /** + * 删除仓库库存盘点详情 + * + * @param inventoryCheckCode 仓库库存盘点详情ID + * @return 结果 + */ + public int deleteWarehouseInventoryCheckDetailByCode(String inventoryCheckCode); + /** * 批量删除仓库库存盘点详情 * @@ -79,4 +87,9 @@ public interface WarehouseInventoryCheckDetailMapper * 根据盘点单号查找盘点详情信息 * */ List selectInventoryCheckDetailListByCode(String inventoryCheckCode); + + /** + * 根据盘点单号批量查找盘点详情信息 + * */ + List selectWarehouseInventoryCheckDetailByCodes(String[] inventoryCheckCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryCheckServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryCheckServiceImpl.java index a45e53f3..69c95e34 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryCheckServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryCheckServiceImpl.java @@ -87,28 +87,36 @@ public class WarehouseInventoryCheckServiceImpl implements IWarehouseInventoryCh warehouseInventoryCheck.setInventoryCheckCode(newCode); warehouseInventoryCheck.setCreateTime(DateUtils.getNowDate()); warehouseInventoryCheck.setCreateBy(loginName); - List inventoryCheckDetails = warehouseInventoryCheck.getInventoryCheckDetails(); + List inventoryCheckDetails = warehouseInventoryCheck.getInventoryCheckDetails(); + int numTotal = 0; if (StringUtils.isEmpty(inventoryCheckDetails)){ log.warn("仓库盘点物料相关信息为空:{}",inventoryCheckDetails); + }else{ + warehouseInventoryCheck.setMaterialTotal(inventoryCheckDetails.size()); + for (WarehouseInventoryCheckDetail tempInventoryCheckDetail : inventoryCheckDetails) { + WarehouseInventoryCheckDetail inventoryCheckDetail = new WarehouseInventoryCheckDetail(); + inventoryCheckDetail.setInventoryCheckCode(newCode); + inventoryCheckDetail.setInventoryCheckName(warehouseInventoryCheck.getInventoryCheckName()); + inventoryCheckDetail.setMaterialNo(tempInventoryCheckDetail.getMaterialNo()); + inventoryCheckDetail.setMaterialName(tempInventoryCheckDetail.getMaterialName()); + inventoryCheckDetail.setMaterialDescribe(tempInventoryCheckDetail.getMaterialDescribe()); + inventoryCheckDetail.setMaterialUnit(tempInventoryCheckDetail.getMaterialUnit()); + inventoryCheckDetail.setInventoryCheckNum(tempInventoryCheckDetail.getInventoryCheckNum()); + numTotal += tempInventoryCheckDetail.getInventoryCheckNum(); + inventoryCheckDetail.setInventoryAccountNum(tempInventoryCheckDetail.getInventoryAccountNum()); + inventoryCheckDetail.setRemark(tempInventoryCheckDetail.getRemark()); + inventoryCheckDetail.setWarehouseCode(warehouseInventoryCheck.getWarehouseCode()); + inventoryCheckDetail.setWarehouseName(warehouseInventoryCheck.getWarehouseName()); + inventoryCheckDetail.setWarehouseStoreAddress(tempInventoryCheckDetail.getWarehouseStoreAddress()); + inventoryCheckDetail.setBatchNumber(tempInventoryCheckDetail.getBatchNumber()); + inventoryCheckDetail.setCreateBy(loginName); + inventoryCheckDetail.setCreateTime(DateUtils.getNowDate()); + inventoryCheckDetail.setInventoryCheckDate(warehouseInventoryCheck.getInventoryCheckDate()); + inventoryCheckDetailMapper.insertWarehouseInventoryCheckDetail(inventoryCheckDetail); + } } - - for (WarehouseInventoryCheckDetail tempInventoryCheckDetail : inventoryCheckDetails) { - WarehouseInventoryCheckDetail inventoryCheckDetail = new WarehouseInventoryCheckDetail(); - inventoryCheckDetail.setInventoryCheckCode(newCode); - inventoryCheckDetail.setMaterialNo(tempInventoryCheckDetail.getMaterialNo()); - inventoryCheckDetail.setMaterialName(tempInventoryCheckDetail.getMaterialName()); - inventoryCheckDetail.setMaterialDescribe(tempInventoryCheckDetail.getMaterialDescribe()); - inventoryCheckDetail.setMaterialUnit(tempInventoryCheckDetail.getMaterialUnit()); - inventoryCheckDetail.setInventoryCheckNum(tempInventoryCheckDetail.getInventoryCheckNum()); - inventoryCheckDetail.setInventoryAccountNum(tempInventoryCheckDetail.getInventoryAccountNum()); - inventoryCheckDetail.setRemark(tempInventoryCheckDetail.getRemark()); - inventoryCheckDetail.setWarehouseStoreAddress(tempInventoryCheckDetail.getWarehouseStoreAddress()); - inventoryCheckDetail.setCreateBy(loginName); - inventoryCheckDetail.setCreateTime(new Date()); - inventoryCheckDetailMapper.insertWarehouseInventoryCheckDetail(inventoryCheckDetail); - } - + warehouseInventoryCheck.setNumTotal(numTotal); return warehouseInventoryCheckMapper.insertWarehouseInventoryCheck(warehouseInventoryCheck); } @@ -125,20 +133,38 @@ public class WarehouseInventoryCheckServiceImpl implements IWarehouseInventoryCh String loginName = ShiroUtils.getLoginName(); warehouseInventoryCheck.setUpdateBy(loginName); warehouseInventoryCheck.setUpdateTime(DateUtils.getNowDate()); + int numTotal = 0; List inventoryCheckDetails = warehouseInventoryCheck.getInventoryCheckDetails(); if (StringUtils.isEmpty(inventoryCheckDetails)){ log.warn("仓库盘点物料相关信息为空:{}",inventoryCheckDetails); + }else{ + inventoryCheckDetailMapper.deleteWarehouseInventoryCheckDetailByCode(warehouseInventoryCheck.getInventoryCheckCode()); + warehouseInventoryCheck.setMaterialTotal(inventoryCheckDetails.size()); + for (WarehouseInventoryCheckDetail tempInventoryCheckDetail : inventoryCheckDetails) { + WarehouseInventoryCheckDetail inventoryCheckDetail = new WarehouseInventoryCheckDetail(); + inventoryCheckDetail.setInventoryCheckCode(warehouseInventoryCheck.getInventoryCheckCode()); + inventoryCheckDetail.setInventoryCheckName(warehouseInventoryCheck.getInventoryCheckName()); + inventoryCheckDetail.setMaterialNo(tempInventoryCheckDetail.getMaterialNo()); + inventoryCheckDetail.setMaterialName(tempInventoryCheckDetail.getMaterialName()); + inventoryCheckDetail.setMaterialDescribe(tempInventoryCheckDetail.getMaterialDescribe()); + inventoryCheckDetail.setMaterialUnit(tempInventoryCheckDetail.getMaterialUnit()); + inventoryCheckDetail.setInventoryCheckNum(tempInventoryCheckDetail.getInventoryCheckNum()); + numTotal += tempInventoryCheckDetail.getInventoryCheckNum(); + inventoryCheckDetail.setInventoryAccountNum(tempInventoryCheckDetail.getInventoryAccountNum()); + inventoryCheckDetail.setRemark(tempInventoryCheckDetail.getRemark()); + inventoryCheckDetail.setWarehouseCode(warehouseInventoryCheck.getWarehouseCode()); + inventoryCheckDetail.setWarehouseName(warehouseInventoryCheck.getWarehouseName()); + inventoryCheckDetail.setWarehouseStoreAddress(tempInventoryCheckDetail.getWarehouseStoreAddress()); + inventoryCheckDetail.setBatchNumber(tempInventoryCheckDetail.getBatchNumber()); + inventoryCheckDetail.setCreateBy(loginName); + inventoryCheckDetail.setCreateTime(DateUtils.getNowDate()); + inventoryCheckDetail.setInventoryCheckDate(warehouseInventoryCheck.getInventoryCheckDate()); + inventoryCheckDetailMapper.insertWarehouseInventoryCheckDetail(inventoryCheckDetail); + } } - - for (WarehouseInventoryCheckDetail tempInventoryCheckDetail : inventoryCheckDetails) { - - tempInventoryCheckDetail.setUpdateBy(loginName); - tempInventoryCheckDetail.setUpdateTime(new Date()); - inventoryCheckDetailMapper.updateWarehouseInventoryCheckDetail(tempInventoryCheckDetail); - } - + warehouseInventoryCheck.setNumTotal(numTotal); return warehouseInventoryCheckMapper.updateWarehouseInventoryCheck(warehouseInventoryCheck); } diff --git a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryCheckDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryCheckDetailMapper.xml index 7638e5a6..e167ae9c 100644 --- a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryCheckDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryCheckDetailMapper.xml @@ -143,4 +143,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update warehouse_inventory_check_detail set del_flag = '0' where inventory_check_detail_id = #{inventoryCheckDetailId} + + delete from warehouse_inventory_check_detail where inventory_check_code = #{inventoryCheckCode} + + + + \ No newline at end of file