Browse Source

为完成出库任务页面添加搜索功能

lwx_dev
erdanergou 3 years ago
parent
commit
bd421dd112
  1. 15
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  2. 31
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 8
      src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java
  4. 33
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  5. 98
      src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html

15
src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java

@ -1998,4 +1998,19 @@ public class MaterialController {
} }
return new RestResponse(inventoryP); return new RestResponse(inventoryP);
} }
/**
* 用于完成出库任务时获取对应的库存数据
* @param map 待获取数据
* @return
*/
@PostMapping("/findInventoryForCompleteOutTask")
public RestResponse findInventoryForCompleteOutTask(@RequestBody Map<String,Object> map){
List<Integer> midList = materialService.findInventoryForCompleteOutTask(map);
List<Inventory> materialByIds = new ArrayList<>();
if (midList.size() > 0) {
materialByIds = materialService.findMaterialByIds(midList);
}
return new RestResponse(materialByIds);
}
} }

31
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -3096,38 +3096,17 @@ public class PageController {
@GetMapping("/ScanBarOrQrCodeOut_selectMaterial") @GetMapping("/ScanBarOrQrCodeOut_selectMaterial")
public ModelAndView ScanBarOrQrCodeOut_selectMaterial(Integer pid, String mcode, Integer depositoryId) { public ModelAndView ScanBarOrQrCodeOut_selectMaterial(Integer pid, String mcode, Integer depositoryId) {
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
// 用于存储物料id
List<Integer> midList = new ArrayList<>();
if (Integer.compare(0, pid) == 0) {
// 如果是默认库位
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("depositoryId", depositoryId); map.put("depositoryId",depositoryId);
// 获取当前仓库下的所有库存 map.put("pid",pid);
List<InventoryP> inventoryByDepository = materialService.findInventoryByDepository(map); List<Integer> midList = materialService.findInventoryForCompleteOutTask(map);
for (InventoryP inventoryP : inventoryByDepository) {
// 如果该库存明细在默认库位中
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, inventoryP.getId());
if (placeAndMaterialByMidAndPid != null) {
// 如果是默认库位
midList.add(placeAndMaterialByMidAndPid.getMid());
}
}
} else {
// 如果不是默认库位
// 获取当前库位中存储的物料
List<MaterialAndPlace> placeAndMaterialByPid = placeService.findPlaceAndMaterialByPid(pid);
for (MaterialAndPlace materialAndPlace : placeAndMaterialByPid) {
midList.add(materialAndPlace.getMid());
}
}
if (midList.size() > 0) { if (midList.size() > 0) {
List<Inventory> materialByIds = materialService.findMaterialByIds(midList); List<Inventory> materialByIds = materialService.findMaterialByIds(midList);
mv.addObject("materialList", materialByIds); mv.addObject("materialList", materialByIds);
} }
mv.addObject("mcode", mcode); mv.addObject("mcode", mcode);
mv.addObject("depositoryId", depositoryId);
mv.addObject("pid", pid);
mv.setViewName("pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial"); mv.setViewName("pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial");
return mv; return mv;
} }

8
src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java

@ -422,4 +422,12 @@ public interface MaterialService {
* @return * @return
*/ */
List<MaterialAndPlaceForViewP> findInventoryForStockTaking(Map<String,Object> map); List<MaterialAndPlaceForViewP> findInventoryForStockTaking(Map<String,Object> map);
/**
* 用于完成出库任务时获取对应的库存数据
* @param map
* @return
*/
List<Integer> findInventoryForCompleteOutTask(Map<String,Object> map);
} }

33
src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java

@ -2631,6 +2631,39 @@ public class MaterialServiceImpl implements MaterialService {
return packMpvList(placeAndMaterialByCondition, map); return packMpvList(placeAndMaterialByCondition, map);
} }
/**
* 用于完成出库任务时获取对应的库存数据
* @param map
* @return
*/
@Override
public List<Integer> findInventoryForCompleteOutTask(Map<String, Object> map) {
Integer pid = ObjectFormatUtil.toInteger(map.get("pid"));
// 用于存储物料id
List<Integer> midList = new ArrayList<>();
if (Integer.compare(0, pid) == 0) {
// 获取当前仓库下的所有库存
List<Inventory> inventoryList = materialMapper.findInventory(map);
for (Inventory inventory : inventoryList) {
// 如果该库存明细在默认库位中
MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, inventory.getId());
if (placeAndMaterialByMidAndPid != null) {
// 如果是默认库位
midList.add(placeAndMaterialByMidAndPid.getMid());
}
}
} else {
// 如果不是默认库位
map.put("placeId",pid);
List<MaterialAndPlaceForViewP> placeAndMaterialByCondition = placeService.findPlaceAndMaterialByCondition(map);
for (MaterialAndPlaceForViewP materialAndPlaceForViewP : placeAndMaterialByCondition) {
midList.add(materialAndPlaceForViewP.getMid());
}
}
return midList;
}
List<MaterialAndPlaceForViewP> packMpvList(List<MaterialAndPlaceForViewP> materialAndPlaceForViewList, Map<String, Object> map) { List<MaterialAndPlaceForViewP> packMpvList(List<MaterialAndPlaceForViewP> materialAndPlaceForViewList, Map<String, Object> map) {
for (MaterialAndPlaceForViewP mpv : materialAndPlaceForViewList for (MaterialAndPlaceForViewP mpv : materialAndPlaceForViewList

98
src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html

@ -12,41 +12,115 @@
</head> </head>
<body> <body>
<input th:value="${mcode}" style="display:none;" id="mcode"> <input th:value="${mcode}" style="display:none;" id="mcode">
<div class="layui-btn-container"> <input th:value="${depositoryId}" style="display:none;" id="depositoryId">
<button class="layui-btn layui-btn-primary select_this" th:each="material,iterStar:${materialList}" th:value="${material.getCode()}" <input th:value="${pid}" style="display:none;" id="pid">
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">搜索</h2>
<div class="layui-colla-content">
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-inline">
<label class="layui-form-label">物料名称:</label>
<div class="layui-input-block">
<input id="mname" name="mname" type="text" placeholder="请填写物料名称"
class="layui-input"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">型号</label>
<div class="layui-input-block">
<input type="text" class="layui-input" id="version" name="version"
autocomplete="off" placeholder="请填写物料型号"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">物料编码</label>
<div class="layui-input-block">
<input type="text" name="mcode" autocomplete="off" class="layui-input"
placeholder="请填写物料编码">
</div>
</div>
<div class="layui-inline">
<button type="button" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="layui-btn-container">
<button class="layui-btn layui-btn-primary select_this" th:each="material,iterStar:${materialList}"
th:value="${material.getCode()}"
th:text="${material.getMname()+','+(material.getVersion() == null ? '' :material.getVersion())}"> th:text="${material.getMname()+','+(material.getVersion() == null ? '' :material.getVersion())}">
<i class="layui-icon layui-icon-down layui-font-12"></i> <i class="layui-icon layui-icon-down layui-font-12"></i>
</button> </button>
</div>
</div>
</div> </div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script> <script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script> <script>
layui.use(['layer'], function () { layui.use(['layer',"form"], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form,
layer = layui.layer; layer = layui.layer;
let mcode = $("#mcode").val(); let mcode = $("#mcode").val();
// 给每个按钮添加点击事件 // 给每个按钮添加点击事件
$(".select_this").on("click",function () { $(".select_this").on("click", function () {
// 获取当前点击物料编码 // 获取当前点击物料编码
var code = this.value; var code = this.value;
// 获取当前点击物料名称 // 获取当前点击物料名称
if(code !== mcode){ if (code !== mcode) {
// 如果点击的不是要出库的物料 // 如果点击的不是要出库的物料
layer.msg("请选择正确物料",{ layer.msg("请选择正确物料", {
icon:0, icon: 0,
time:500 time: 500
},function () { }, function () {
$("#flagForSelect",window.parent.document).val(false); $("#flagForSelect", window.parent.document).val(false);
}) })
}else{ } else {
$("#flagForSelect",window.parent.document).val(true); $("#flagForSelect", window.parent.document).val(true);
var index = parent.layer.getFrameIndex(window.name); var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index); parent.layer.close(index);
} }
});
form.on('submit(data-search-btn)', function (data) {
var req = {};
data = data.field;
req.depositoryId = $("#depositoryId").val();
req.pid = $("#pid").val();
if (data.mname !== '') {
req.mname = data.mname.trim();
}
if (data.version !== '') {
req.version = data.version.trim();
}
if (data.mcode !== '') {
req.mcode = data.mcode.trim();
}
$.ajax({
url: "/material/findInventoryForCompleteOutTask",
type: "post",
data: JSON.stringify(req),
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (res) {
console.log(res)
}
}) })
});
}) })
</script> </script>
</body> </body>

Loading…
Cancel
Save