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);
}
/**
* 用于完成出库任务时获取对应的库存数据
* @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")
public ModelAndView ScanBarOrQrCodeOut_selectMaterial(Integer pid, String mcode, Integer depositoryId) {
ModelAndView mv = new ModelAndView();
// 用于存储物料id
List<Integer> midList = new ArrayList<>();
if (Integer.compare(0, pid) == 0) {
// 如果是默认库位
Map<String, Object> map = new HashMap<>();
map.put("depositoryId", depositoryId);
// 获取当前仓库下的所有库存
List<InventoryP> inventoryByDepository = materialService.findInventoryByDepository(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());
}
}
map.put("depositoryId",depositoryId);
map.put("pid",pid);
List<Integer> midList = materialService.findInventoryForCompleteOutTask(map);
if (midList.size() > 0) {
List<Inventory> materialByIds = materialService.findMaterialByIds(midList);
mv.addObject("materialList", materialByIds);
}
mv.addObject("mcode", mcode);
mv.addObject("depositoryId", depositoryId);
mv.addObject("pid", pid);
mv.setViewName("pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial");
return mv;
}

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

@ -422,4 +422,12 @@ public interface MaterialService {
* @return
*/
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);
}
/**
* 用于完成出库任务时获取对应的库存数据
* @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) {
for (MaterialAndPlaceForViewP mpv : materialAndPlaceForViewList

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

@ -12,41 +12,115 @@
</head>
<body>
<input th:value="${mcode}" style="display:none;" id="mcode">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-primary select_this" th:each="material,iterStar:${materialList}" th:value="${material.getCode()}"
<input th:value="${depositoryId}" style="display:none;" id="depositoryId">
<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())}">
<i class="layui-icon layui-icon-down layui-font-12"></i>
</button>
</div>
</div>
</div>
<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>
layui.use(['layer'], function () {
layui.use(['layer',"form"], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer;
let mcode = $("#mcode").val();
// 给每个按钮添加点击事件
$(".select_this").on("click",function () {
$(".select_this").on("click", function () {
// 获取当前点击物料编码
var code = this.value;
// 获取当前点击物料名称
if(code !== mcode){
if (code !== mcode) {
// 如果点击的不是要出库的物料
layer.msg("请选择正确物料",{
icon:0,
time:500
},function () {
$("#flagForSelect",window.parent.document).val(false);
layer.msg("请选择正确物料", {
icon: 0,
time: 500
}, function () {
$("#flagForSelect", window.parent.document).val(false);
})
}else{
$("#flagForSelect",window.parent.document).val(true);
} else {
$("#flagForSelect", window.parent.document).val(true);
var index = parent.layer.getFrameIndex(window.name);
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>
</body>

Loading…
Cancel
Save