BaseController强化json响应,追加图标

pull/362/head
AlanScipio 2 years ago
parent bba1c8465d
commit da8d9f2fed

@ -1,17 +1,20 @@
package com.ruoyi.common.core.web.controller;
import com.alibaba.fastjson2.JSON;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.constant.HttpStatus;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.PageUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo;
import jakarta.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import java.beans.PropertyEditorSupport;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
@ -125,4 +128,26 @@ public class BaseController {
protected AjaxResult toAjax(boolean result) {
return result ? success() : error();
}
public void responseJson(HttpServletResponse response, Object obj) {
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
try (PrintWriter writer = response.getWriter()) {
writer.write(JSON.toJSONString(obj));
} catch (Exception e) {
logger.error("Response error", e);
}
}
public void responseJsonSuccess(HttpServletResponse response, Object obj) {
responseJson(response, AjaxResult.success(obj));
}
public void responseJsonError(HttpServletResponse response, String message) {
responseJson(response, AjaxResult.error(message));
}
public void responseJsonWarn(HttpServletResponse response, String message) {
responseJson(response, AjaxResult.warn(message));
}
}

@ -67,6 +67,10 @@ public class ${ClassName}Controller extends BaseController
// public void export(HttpServletResponse response, ${ClassName} ${className})
// {
// List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
// if (list.isEmpty()) {
// responseJsonWarn(response, "没有数据可以导出");
// return;
// }
// ExcelUtil<${ClassName}> util = new ExcelUtil<>(${ClassName}.class);
// util.exportExcel(response, list, "${functionName}数据");
// }

@ -46,6 +46,10 @@ public class ItemInfoController extends BaseController {
@PostMapping("/export")
public void export(HttpServletResponse response, ItemInfo itemInfo) {
List<ItemInfo> list = itemInfoService.selectItemInfoList(itemInfo);
if (list.isEmpty()) {
responseJsonWarn(response, "没有数据可以导出");
return;
}
ExcelUtil<ItemInfo> util = new ExcelUtil<>(ItemInfo.class);
util.exportExcel(response, list, "物品基础信息数据");
}

@ -46,6 +46,10 @@ public class ItemTypeController extends BaseController {
@PostMapping("/export")
public void export(HttpServletResponse response, ItemType itemType) {
List<ItemType> list = itemTypeService.selectItemTypeList(itemType);
if (list.isEmpty()) {
responseJsonWarn(response, "没有数据可以导出");
return;
}
ExcelUtil<ItemType> util = new ExcelUtil<>(ItemType.class);
util.exportExcel(response, list, "物品类型数据");
}

@ -46,6 +46,10 @@ public class UnitInfoController extends BaseController {
@PostMapping("/export")
public void export(HttpServletResponse response, UnitInfo unitInfo) {
List<UnitInfo> list = unitInfoService.selectUnitInfoList(unitInfo);
if (list.isEmpty()) {
responseJsonWarn(response, "没有数据可以导出");
return;
}
ExcelUtil<UnitInfo> util = new ExcelUtil<>(UnitInfo.class);
util.exportExcel(response, list, "单位信息管理数据");
}

@ -46,6 +46,10 @@ public class WarehouseInfoController extends BaseController {
@PostMapping("/export")
public void export(HttpServletResponse response, WarehouseInfo warehouseInfo) {
List<WarehouseInfo> list = warehouseInfoService.selectWarehouseInfoList(warehouseInfo);
if (list.isEmpty()) {
responseJsonWarn(response, "没有数据可以导出");
return;
}
ExcelUtil<WarehouseInfo> util = new ExcelUtil<>(WarehouseInfo.class);
util.exportExcel(response, list, "仓库基础信息数据");
}

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z"/></svg>

After

Width:  |  Height:  |  Size: 549 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z"/></svg>

After

Width:  |  Height:  |  Size: 473 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M248 0H208c-26.5 0-48 21.5-48 48V160c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V48c0-26.5-21.5-48-48-48H328V80c0 8.8-7.2 16-16 16H264c-8.8 0-16-7.2-16-16V0zM64 256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H184v80c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V256H64zM352 512H512c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H472v80c0 8.8-7.2 16-16 16H408c-8.8 0-16-7.2-16-16V256H352c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2V464c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z"/></svg>

After

Width:  |  Height:  |  Size: 836 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>

After

Width:  |  Height:  |  Size: 543 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"/></svg>

After

Width:  |  Height:  |  Size: 736 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z"/></svg>

After

Width:  |  Height:  |  Size: 734 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"/></svg>

After

Width:  |  Height:  |  Size: 542 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z"/></svg>

After

Width:  |  Height:  |  Size: 988 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z"/></svg>

After

Width:  |  Height:  |  Size: 709 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M384 480h48c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224H144c-11.4 0-21.9 6-27.6 15.9L48 357.1V96c0-8.8 7.2-16 16-16H181.5c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8H416c8.8 0 16 7.2 16 16v32h48V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H87.7 384z"/></svg>

After

Width:  |  Height:  |  Size: 683 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z"/></svg>

After

Width:  |  Height:  |  Size: 732 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M0 96C0 60.7 28.7 32 64 32H196.1c19.1 0 37.4 7.6 50.9 21.1L289.9 96H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16H286.6c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7H64z"/></svg>

After

Width:  |  Height:  |  Size: 599 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M64 80c-8.8 0-16 7.2-16 16V258c5.1-1.3 10.5-2 16-2H448c5.5 0 10.9 .7 16 2V96c0-8.8-7.2-16-16-16H64zM48 320v96c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V320c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM0 320V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V320v96c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"/></svg>

After

Width:  |  Height:  |  Size: 687 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"/></svg>

After

Width:  |  Height:  |  Size: 744 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M64 32C46.3 32 32 46.3 32 64V304v48 80c0 26.5 21.5 48 48 48H496c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L352 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4V64c0-17.7-14.3-32-32-32H64z"/></svg>

After

Width:  |  Height:  |  Size: 493 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z"/></svg>

After

Width:  |  Height:  |  Size: 982 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M400 255.4V240 208c0-8.8-7.2-16-16-16H352 336 289.5c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112h48 16 32c8.8 0 16-7.2 16-16V80 64.6L506 160 400 255.4zM336 240h16v48c0 17.7 14.3 32 32 32h3.7c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7V80H336 304 288c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4h2.5c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5l0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5H304h32zM72 32C32.2 32 0 64.2 0 104V440c0 39.8 32.2 72 72 72H408c39.8 0 72-32.2 72-72V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V104c0-13.3 10.7-24 24-24h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H72z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M224 0c13.3 0 24 10.7 24 24V70.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57v76.5l66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6v76.5l57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V441.9l-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V297.6l-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4V137.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V24c0-13.3 10.7-24 24-24z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z"/></svg>

After

Width:  |  Height:  |  Size: 778 B

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z"/></svg>

After

Width:  |  Height:  |  Size: 676 B

@ -12,7 +12,7 @@
<ul>
<li>Java 8 升级到 Java 21</li>
<li>SpringBoot 2.7 升级到 SpringBoot 3.1</li>
<li>SpringCloud 2020.x 升级到 SpringCloud 2023.0.5</li>
<li>SpringCloud 2021.0.8 升级到 SpringCloud 2023.0.5</li>
</ul>
</el-col>

@ -97,125 +97,257 @@
/>
<!-- 添加或修改物品基础信息对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="ItemInfoRef" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" v-model="open" width="65%" append-to-body>
<el-form ref="ItemInfoRef" :model="form" :rules="rules" label-width="100px">
<el-tabs v-model="activeName">
<!-- ==================== 基础信息输入 ==================== -->
<el-tab-pane label="基础信息" name="basicForm">
<el-row>
<el-col :span="12">
<el-form-item label="物品代码" prop="itemCd">
<el-input v-model="form.itemCd" placeholder="请输入物品代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物品名称" prop="itemName">
<el-input v-model="form.itemName" placeholder="请输入物品名称" />
</el-form-item>
<el-form-item label="供应商" prop="supplier">
<el-input v-model="form.supplier" placeholder="请输入供应商" />
</el-form-item>
<el-form-item label="筹备提前期" prop="prepLeadTime">
<el-input v-model="form.prepLeadTime" placeholder="请输入筹备提前期" />
</el-form-item>
<el-form-item label="入库提前期" prop="instockLeadTime">
<el-input v-model="form.instockLeadTime" placeholder="请输入入库提前期" />
</el-form-item>
<el-form-item label="放置期" prop="restingPeriod">
<el-input v-model="form.restingPeriod" placeholder="请输入放置期" />
</el-form-item>
<el-form-item label="出库提前期" prop="outstockLeadTime">
<el-input v-model="form.outstockLeadTime" placeholder="请输入出库提前期" />
</el-form-item>
<el-form-item label="规格1" prop="spec1">
<el-input v-model="form.spec1" placeholder="请输入规格1" />
</el-form-item>
<el-form-item label="规格2" prop="spec2">
<el-input v-model="form.spec2" placeholder="请输入规格2" />
</el-form-item>
<el-form-item label="规格3" prop="spec3">
<el-input v-model="form.spec3" placeholder="请输入规格3" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="启用标志" prop="enableFlg">
<el-input v-model="form.enableFlg" placeholder="请输入启用标志" />
</el-form-item>
<el-form-item label="规格4" prop="spec4">
<el-input v-model="form.spec4" placeholder="请输入规格4" />
</el-col>
<el-col :span="12">
<el-form-item label="物品类型" prop="itemTypeCd">
<el-input v-model="form.itemTypeCd" placeholder="请输入物品类型代码" />
</el-form-item>
<el-form-item label="规格5" prop="spec5">
<el-input v-model="form.spec5" placeholder="请输入规格5" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="供应商" prop="supplier">
<el-input v-model="form.supplier" placeholder="请输入供应商" />
</el-form-item>
<el-form-item label="分类1" prop="cls1">
<el-input v-model="form.cls1" placeholder="请输入分类1" />
</el-col>
<el-col :span="12">
<el-form-item label="生产商" prop="manufacturer">
<el-input v-model="form.manufacturer" placeholder="请输入生产商" />
</el-form-item>
<el-form-item label="分类2" prop="cls2">
<el-input v-model="form.cls2" placeholder="请输入分类2" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="物品区分" prop="goodsCls">
<el-input v-model="form.goodsCls" placeholder="请输入物品区分" />
</el-form-item>
<el-form-item label="分类3" prop="cls3">
<el-input v-model="form.cls3" placeholder="请输入分类3" />
</el-col>
<el-col :span="12">
<el-form-item label="批号管理" prop="lotNoMgmtCls">
<el-input v-model="form.lotNoMgmtCls" placeholder="请输入批号管理区分" />
</el-form-item>
<el-form-item label="分类4" prop="cls4">
<el-input v-model="form.cls4" placeholder="请输入分类4" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="标准单位" prop="stdUnitCd">
<el-input v-model="form.stdUnitCd" placeholder="请输入标准单位代码" />
</el-form-item>
<el-form-item label="分类5" prop="cls5">
<el-input v-model="form.cls5" placeholder="请输入分类5" />
</el-col>
<el-col :span="12">
<el-form-item label="包装单位" prop="pkgUnitCd">
<el-input v-model="form.pkgUnitCd" placeholder="请输入包装单位代码" />
</el-form-item>
<el-form-item label="供货周期" prop="deliveryPeriod">
<el-input v-model="form.deliveryPeriod" placeholder="请输入供货周期" />
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="物品图片" prop="pictureId">
<el-input v-model="form.pictureId" placeholder="此处需要替换为图片上传的控件" />
</el-form-item>
</el-col>
</el-row>
</el-tab-pane>
<!-- ==================== 库存信息输入 ==================== -->
<el-tab-pane label="库存信息" name="stockForm">
<el-row>
<el-col :span="12">
<el-form-item label="默认库位号" prop="defaultStgBinCd">
<el-input v-model="form.defaultStgBinCd" placeholder="请输入默认库位号" />
</el-form-item>
<el-form-item label="启用标志" prop="enableFlg">
<el-input v-model="form.enableFlg" placeholder="请输入启用标志" />
</el-col>
<el-col :span="12">
<el-form-item label="供货周期" prop="deliveryPeriod">
<el-input v-model="form.deliveryPeriod" placeholder="请输入供货周期" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="安全库存量" prop="safetyStock">
<el-input v-model="form.safetyStock" placeholder="请输入安全库存量" />
<el-input-number v-model="form.safetyStock" placeholder="请输入安全库存量" :precision="2" :min="0"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最大库存量" prop="maxInvQty">
<el-input v-model="form.maxInvQty" placeholder="请输入最大库存量" />
<el-input-number v-model="form.maxInvQty" placeholder="请输入最大库存量" :precision="2" :min="0" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="购买阈值" prop="purchLimitQty">
<el-input v-model="form.purchLimitQty" placeholder="请输入购买阈值" />
<el-input-number v-model="form.purchLimitQty" placeholder="请输入购买阈值" :precision="2" :min="0" />
</el-form-item>
<el-form-item label="物品区分" prop="goodsCls">
<el-input v-model="form.goodsCls" placeholder="请输入物品区分" />
</el-form-item>
<el-form-item label="批号管理区分(0:不管理, 1:管理)" prop="lotNoMgmtCls">
<el-input v-model="form.lotNoMgmtCls" placeholder="请输入批号管理区分(0:不管理, 1:管理)" />
</el-form-item>
<el-form-item label="物品类型代码" prop="itemTypeCd">
<el-input v-model="form.itemTypeCd" placeholder="请输入物品类型代码" />
</el-col>
<el-col :span="12">
<el-form-item label="最小出库数" prop="outstockReqMinQty">
<el-input-number v-model="form.outstockReqMinQty" placeholder="请输入最小出库数" :precision="2" :min="0"/>
</el-form-item>
<el-form-item label="标准单位代码" prop="stdUnitCd">
<el-input v-model="form.stdUnitCd" placeholder="请输入标准单位代码" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="入库提前期" prop="instockLeadTime">
<el-input-number v-model="form.instockLeadTime" placeholder="请输入入库提前期" :precision="1" />
</el-form-item>
<el-form-item label="包装单位代码" prop="pkgUnitCd">
<el-input v-model="form.pkgUnitCd" placeholder="请输入包装单位代码" />
</el-col>
<el-col :span="12">
<el-form-item label="出库提前期" prop="outstockLeadTime">
<el-input-number v-model="form.outstockLeadTime" placeholder="请输入出库提前期" :precision="1" />
</el-form-item>
<el-form-item label="出库申请最小数量" prop="outstockReqMinQty">
<el-input v-model="form.outstockReqMinQty" placeholder="请输入出库申请最小数量" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="筹备提前期" prop="prepLeadTime">
<el-input-number v-model="form.prepLeadTime" placeholder="请输入筹备提前期" :precision="1" />
</el-form-item>
<el-form-item label="出库单位区分" prop="outstockUnitCls">
<el-input v-model="form.outstockUnitCls" placeholder="请输入出库单位区分" />
</el-col>
<el-col :span="12">
<el-form-item label="放置期" prop="restingPeriod">
<el-input-number v-model="form.restingPeriod" placeholder="请输入放置期" :precision="1" />
</el-form-item>
</el-col>
</el-row>
</el-tab-pane>
<!-- ==================== 规格信息输入 ==================== -->
<el-tab-pane label="规格信息" name="specForm">
<el-row>
<el-col :span="12">
<el-form-item label="单位净重" prop="netWeightPerUnit">
<el-input v-model="form.netWeightPerUnit" placeholder="请输入单位净重" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="自身体积(M3)" prop="ownVolM3">
<el-input v-model="form.ownVolM3" placeholder="请输入自身体积(M3)" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="尺寸(长)" prop="sizeD">
<el-input v-model="form.sizeD" placeholder="请输入尺寸(长)" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="尺寸(宽)" prop="sizeW">
<el-input v-model="form.sizeW" placeholder="请输入尺寸(宽)" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="尺寸(高)" prop="sizeH">
<el-input v-model="form.sizeH" placeholder="请输入尺寸(高)" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="包装要求描述" prop="pkgRqmtDesc">
<el-input v-model="form.pkgRqmtDesc" placeholder="请输入包装要求描述" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="码放要求描述" prop="stackingRqmtDesc">
<el-input v-model="form.stackingRqmtDesc" placeholder="请输入码放要求描述" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="储存要求描述" prop="stgRqmtDesc">
<el-input v-model="form.stgRqmtDesc" placeholder="请输入储存要求描述" />
</el-form-item>
<el-form-item label="生产商" prop="manufacturer">
<el-input v-model="form.manufacturer" placeholder="请输入生产商" />
</el-col>
</el-row>
</el-tab-pane>
<!-- ==================== 其他信息输入 ==================== -->
<el-tab-pane label="其他信息" name="otherForm">
<el-row>
<el-col :span="12">
<el-form-item label="规格1" prop="spec1">
<el-input v-model="form.spec1" placeholder="请输入规格1" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规格2" prop="spec2">
<el-input v-model="form.spec2" placeholder="请输入规格2" />
</el-form-item>
<el-form-item label="图片ID" prop="pictureId">
<el-input v-model="form.pictureId" placeholder="请输入图片ID" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="规格3" prop="spec3">
<el-input v-model="form.spec3" placeholder="请输入规格3" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规格4" prop="spec4">
<el-input v-model="form.spec4" placeholder="请输入规格4" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="规格5" prop="spec5">
<el-input v-model="form.spec5" placeholder="请输入规格5" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分类1" prop="cls1">
<el-input v-model="form.cls1" placeholder="请输入分类1" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="分类2" prop="cls2">
<el-input v-model="form.cls2" placeholder="请输入分类2" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分类3" prop="cls3">
<el-input v-model="form.cls3" placeholder="请输入分类3" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="分类4" prop="cls4">
<el-input v-model="form.cls4" placeholder="请输入分类4" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分类5" prop="cls5">
<el-input v-model="form.cls5" placeholder="请输入分类5" />
</el-form-item>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
</el-form>
<template #footer>
<div class="dialog-footer">
@ -242,6 +374,8 @@ const multiple = ref(true);
const total = ref(0);
const title = ref("");
const activeName = ref('basicForm');
const data = reactive({
form: {},
queryParams: {
@ -288,10 +422,10 @@ function reset() {
itemCd: null,
itemName: null,
supplier: null,
prepLeadTime: null,
instockLeadTime: null,
restingPeriod: null,
outstockLeadTime: null,
prepLeadTime: 0,
instockLeadTime: 0,
restingPeriod: 0,
outstockLeadTime: 0,
spec1: null,
spec2: null,
spec3: null,
@ -317,15 +451,15 @@ function reset() {
deliveryPeriod: null,
defaultStgBinCd: null,
enableFlg: null,
safetyStock: null,
maxInvQty: null,
purchLimitQty: null,
safetyStock: 0,
maxInvQty: 0,
purchLimitQty: 0,
goodsCls: null,
lotNoMgmtCls: null,
itemTypeCd: null,
stdUnitCd: null,
pkgUnitCd: null,
outstockReqMinQty: null,
outstockReqMinQty: 0,
outstockUnitCls: null,
netWeightPerUnit: null,
ownVolM3: null,

Loading…
Cancel
Save