Browse Source

修改出库申请可以看全部仓库库存

lwx_dev
erdanergou 3 years ago
parent
commit
46507ce69b
  1. 13
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  2. 6
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 9
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  4. 10
      src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java
  5. 37
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  6. 58
      src/main/resources/templates/pages/depository/Inventory-view.html
  7. 4
      src/main/resources/templates/pages/depository/table-in.html
  8. 4
      src/main/resources/templates/pages/depository/table-in_mobile.html
  9. 4
      src/main/resources/templates/pages/depository/table-out.html
  10. 4
      src/main/resources/templates/pages/depository/table-out_mobile.html
  11. 5
      src/main/resources/templates/pages/depository/table-stock.html
  12. 4
      src/main/resources/templates/pages/depository/table-stock_mobile.html

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

@ -192,6 +192,16 @@ public class MaterialController {
return new RestResponse(list, total, 200);
}
@PostMapping("/updateInventoryRemark")
public RestResponse updateInventoryRemark(@RequestBody Map<String,Object> map,HttpServletRequest request){
if(map.containsKey("id")){
Integer integer = materialService.updateInventoryRemark(map);
return CrudUtil.updateHandle(integer,1);
}else{
throw new MyException("缺少必要参数");
}
}
/**
* 添加一条物料记录
*
@ -269,11 +279,10 @@ public class MaterialController {
token = (String) request.getSession().getAttribute("userToken");
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
Integer maindeparment = userToken.getMaindeparment();
List<Object> list = new ArrayList<>();
if (!"".equals(mname)) {
// 如果是出入库
list = materialService.InitTreeForSelectName(mname.split(",")[0], type, map);
list = materialService.InitTreeForSelectName(mname.split(",")[0], type, map,userToken);
} else {
list = materialService.InitTreeMenus_Test();
}

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

@ -768,7 +768,9 @@ public class PageController {
Integer maindeparment = userToken.getMaindeparment();
if (PortConfig.roleAdminorgList.contains(maindeparment)) {
mv.addObject("display", "inline-block");
mv.addObject("type","2");
} else {
mv.addObject("type","1");
mv.addObject("display", "none");
}
mv.setViewName("pages/depository/table-in");
@ -792,8 +794,10 @@ public class PageController {
Integer maindeparment = userToken.getMaindeparment();
if (PortConfig.roleAdminorgList.contains(maindeparment)) {
mv.addObject("display", "inline-block");
mv.addObject("type","2");
} else {
mv.addObject("display", "none");
mv.addObject("type","1");
}
mv.setViewName("pages/depository/table-out");
String userAgent = request.getHeader("user-agent");
@ -838,8 +842,10 @@ public class PageController {
Integer maindeparment = userToken.getMaindeparment();
if (PortConfig.roleAdminorgList.contains(maindeparment)) {
mv.addObject("display", "table-cell");
mv.addObject("type","2");
} else {
mv.addObject("display", "none");
mv.addObject("type","1");
}
mv.addObject("number", userToken.getNumber());
String userAgent = request.getHeader("user-agent");

9
src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml

@ -887,12 +887,17 @@
FROM findInventory
where
mname like concat('%',#{mname},'%')
and
mtid in
and mtid in
<foreach collection="list" index="index" item="item" open="("
separator="," close=")">
#{item}
</foreach>
and depositoryId in
<foreach collection="depositoryIdList" index="index" item="did" open="("
separator="," close=")">
#{did}
</foreach>
</select>
<select id="findInventoryCountByDepository" resultType="int">
select

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

@ -75,6 +75,14 @@ public interface MaterialService {
List<InventoryP> findInventory(Map<String,Object> map);
/**
* 用于修改库存中的备注
* @param map 待修改数据
* @return
*/
Integer updateInventoryRemark(Map<String,Object> map);
/**
@ -399,7 +407,7 @@ public interface MaterialService {
* @param type 类型出入库盘点
* @return
*/
List<Object> InitTreeForSelectName(String mname,String type,Map<String,Object> map);
List<Object> InitTreeForSelectName(String mname,String type,Map<String,Object> map,UserByPort userToken);
/**

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

@ -301,6 +301,16 @@ public class MaterialServiceImpl implements MaterialService {
return pack(list);
}
/**
* 用于修改库存中的备注
* @param map 待修改数据
* @return
*/
@Override
public Integer updateInventoryRemark(Map<String, Object> map) {
return materialMapper.updateInventory(map);
}
/**
* 根据物料编码及所处仓库查询库存
@ -2544,9 +2554,12 @@ public class MaterialServiceImpl implements MaterialService {
*
* @return
*/
public List<Object> InitTreeForSelectName(String mname, String type, Map<String, Object> map) {
public List<Object> InitTreeForSelectName(String mname, String type, Map<String, Object> map,UserByPort userToken) {
// 获取所有物料类型
List<MaterialType> materialTypeAll = materialTypeMapper.findMaterialTypeAll();
// 获取当前用户所可见的仓库id
List<Integer> depositoryIdForUserHas = roleService.findDepositoryIdForUserHas(userToken);
// 物料总数
int totalVal = materialTypeAll.size();
@ -2578,7 +2591,7 @@ public class MaterialServiceImpl implements MaterialService {
MaterialType materialType = materialTypeAll.get(i);
if (((i + 1) % 100) == 0) { // 如果有100个开启线程进行处理
materialTypeList.add(materialType.getOldId());
TaskTestForSelectMname taskTestForSelectMname = new TaskTestForSelectMname(materialTypeList, mname, type);
TaskTestForSelectMname taskTestForSelectMname = new TaskTestForSelectMname(materialTypeList, mname, type,depositoryIdForUserHas);
if (flagForStock) {
taskTestForSelectMname.setMap(map);
}
@ -2593,7 +2606,7 @@ public class MaterialServiceImpl implements MaterialService {
if (materialTypeList.size() > 0) {
// 如果有剩余,开启线程进行处理
TaskTestForSelectMname taskTestForSelectMname = new TaskTestForSelectMname(materialTypeList, mname, type);
TaskTestForSelectMname taskTestForSelectMname = new TaskTestForSelectMname(materialTypeList, mname, type,depositoryIdForUserHas);
if (flagForStock) {
taskTestForSelectMname.setMap(map);
}
@ -2802,7 +2815,8 @@ public class MaterialServiceImpl implements MaterialService {
map.put("id", material.getId());
result.add(map);
}
} else if (inventoryList != null) {
}
else if (inventoryList != null) {
for (Inventory inventory : inventoryList) {
Map<String, Object> map = new HashMap<>();
String version = inventory.getVersion();
@ -2811,7 +2825,7 @@ public class MaterialServiceImpl implements MaterialService {
}
StringBuilder title = new StringBuilder();
Depository depositoryById = depositoryMapper.findDepositoryById(inventory.getDepositoryId());
title = new StringBuilder(inventory.getMname() + ",规格型号: " + version + "," + depositoryById.getDname() + "库存数量:" + inventory.getUnit() + ":" + inventory.getQuantity());
title = new StringBuilder(inventory.getMname() + ",规格型号: " + version + "," + depositoryById.getDname() + "库存数量:" + inventory.getUnit() + ":" + inventory.getQuantity() / 100.0);
// 获取对应拆单库存处理记录
List<SplitInventory> splitInventoryList = splitUnitMapper.findSplitInventoryByIid(inventory.getId());
if (splitInventoryList.size() > 0) {
@ -2822,7 +2836,7 @@ public class MaterialServiceImpl implements MaterialService {
splitInventoryList) {
SplitInfo splitInfoById = splitUnitMapper.findSplitInfoById(splitInventory.getSid());
title.append(",").append(splitInfoById.getNewUnit()).append(":").append(splitInventory.getSaveQuantity());
title.append(",").append(splitInfoById.getNewUnit()).append(":").append(splitInventory.getSaveQuantity() / 100.0);
}
}
@ -2843,9 +2857,9 @@ public class MaterialServiceImpl implements MaterialService {
public List<Object> buildTreeForSelectName(List<Object> list) {
// 定义树结构
List<Object> result = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
for (Object o : list) {
// 构造为jsonObject类
JSONObject jsonObject = new JSONObject((Map<String, Object>) list.get(i));
JSONObject jsonObject = new JSONObject((Map<String, Object>) o);
JSONArray children = jsonObject.getJSONArray("children");
if (children.size() > 0) {
result.add(jsonObject);
@ -3033,11 +3047,14 @@ public class MaterialServiceImpl implements MaterialService {
String type;
// 相关使用的数据
Map<String, Object> map;
// 当前用户可见的仓库
List<Integer> depositoryIdList;
public TaskTestForSelectMname(List<Long> materialTypeByCondition, String mname, String type) {
public TaskTestForSelectMname(List<Long> materialTypeByCondition, String mname, String type,List<Integer> depositoryIdList) {
this.materialTypeIdList = materialTypeByCondition;
this.mname = mname;
this.type = type;
this.depositoryIdList = depositoryIdList;
}
public void setMap(Map<String, Object> map) {
@ -3059,9 +3076,11 @@ public class MaterialServiceImpl implements MaterialService {
// 如果是入库
materialByTypeIds = materialMapper.findMaterialByTypeIdsAndMname(paramForMnameAndMtid);
} else if ("2".equals(type)) {
paramForMnameAndMtid.put("depositoryIdList",depositoryIdList);
// 如果是出库
inventoryByTypeIdsAndMname = materialMapper.findInventoryByTypeIdsAndMname(paramForMnameAndMtid);
} else if ("3".equals(type)) {
paramForMnameAndMtid.put("depositoryIdList",depositoryIdList);
// 如果是盘点
List<Inventory> inventoryList = materialMapper.findInventoryByTypeIdsAndMname(paramForMnameAndMtid);

58
src/main/resources/templates/pages/depository/Inventory-view.html

@ -141,6 +141,14 @@
class="layui-input">
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">备注</label>
<div class="layui-input-inline">
<input type="text" th:value="${record.getIremark()}" name="iremark" required autocomplete="off" id="iremark"
onchange="updateInventoryRemark()"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-customize" type="button" onclick="applicationIn()">入库申请</button>
@ -161,9 +169,14 @@
}
function updateInventoryRemark(){
}
// 用于标志是否为第一次提交
let flagForForm = false;
var barCode = [];
var flag = false;
layui.use(['form', 'laydate', 'miniTab'], function () {
@ -171,7 +184,7 @@
laydate = layui.laydate,
$ = layui.$,
miniTab = layui.miniTab;
let iremark = $("#iremark").val();
miniTab.listen();
form.on('select()', function (data) {
@ -223,9 +236,44 @@
return false;
}
$('body').on('click', '[data-refresh]', function () {
location.reload();
updateInventoryRemark = function() {
let id = $("#id").val();
let newIremark = $("#iremark").val();
let index = layer.confirm('确认更改备注?', {
btn: ['确定','取消'] //按钮
}, function(){
let req = {};
req.id = id;
req.remark = newIremark;
$.ajax({
url: "/material/updateInventoryRemark",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (data) {
if (data.status >= 300) {
layer.msg(data.statusInfo.message,{
icon: 5,//失败的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
layer.close(index);
});
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
layer.close(index);
})
}
}
});
}, function(){
$("#iremark").val(iremark);
});
}
});
</script>

4
src/main/resources/templates/pages/depository/table-in.html

@ -19,6 +19,7 @@
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input style="display: none" th:value="${type}" id="selectDepositoryType">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">申请时间</label>
@ -115,6 +116,7 @@
openDepositoryTree = function (obj) {
var parent = obj.parentNode.parentNode.parentNode;
var parentId = parent.id;
let selectDepositoryType = $("#selectDepositoryType").val();
layer.open({
type: 2,
title: '仓库列表',
@ -124,7 +126,7 @@
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=1&clickObj=' + parentId,
content: '/selectDepository?type='+selectDepositoryType+'&clickObj=' + parentId,
});
};

4
src/main/resources/templates/pages/depository/table-in_mobile.html

@ -26,6 +26,7 @@
<div class="layui-colla-content">
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input style="display: none" th:value="${type}" id="selectDepositoryType">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">申请时间</label>
@ -155,6 +156,7 @@
openDepositoryTree = function (obj) {
var parent = obj.parentNode.parentNode.parentNode;
var parentId = parent.id;
let selectDepositoryType = $("#selectDepositoryType").val();
layer.open({
type: 2,
title: '仓库列表',
@ -164,7 +166,7 @@
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=1&clickObj=' + parentId,
content: '/selectDepository?type='+selectDepositoryType+'&clickObj=' + parentId,
});
};

4
src/main/resources/templates/pages/depository/table-out.html

@ -19,6 +19,7 @@
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input style="display: none" th:value="${type}" id="selectDepositoryType">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">申请时间</label>
@ -122,6 +123,7 @@
laydate = layui.laydate;
$('#openSonByDepository').on('click', function () {
let selectDepositoryType = $("#selectDepositoryType").val();
layer.open({
type: 2,
title: '弹窗内容',
@ -131,7 +133,7 @@
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=2',
content: '/selectDepository?type='+selectDepositoryType,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);

4
src/main/resources/templates/pages/depository/table-out_mobile.html

@ -21,6 +21,7 @@
<div class="layui-colla-content">
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<input style="display: none" th:value="${type}" id="selectDepositoryType">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">申请时间</label>
@ -146,6 +147,7 @@
});
$('#openSonByDepository').on('click', function () {
let selectDepositoryType = $("#selectDepositoryType").val();
layer.open({
type: 2,
title: '弹窗内容',
@ -155,7 +157,7 @@
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=2',
content: '/selectDepository?type='+selectDepositoryType,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);

5
src/main/resources/templates/pages/depository/table-stock.html

@ -19,6 +19,7 @@
<div style="margin: 10px 10px 10px 10px">
<input style="display: none" th:value="${number}" id="number">
<input style="display: none" th:value="${display}" id="display">
<input style="display: none" th:value="${type}" id="selectDepositoryType">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
@ -149,6 +150,7 @@
let display = $("#display").val();
$('#openSonByMateralType').on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
@ -171,6 +173,7 @@
$('#openSonByDepository').on('click', function () {
let selectDepositoryType = $("#selectDepositoryType").val();
layer.open({
type: 2,
title: '弹窗内容',
@ -180,7 +183,7 @@
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=1',
content: '/selectDepository?type='+selectDepositoryType,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);

4
src/main/resources/templates/pages/depository/table-stock_mobile.html

@ -35,6 +35,7 @@
<div class="layui-colla-content">
<div style="margin: 10px 10px 10px 10px">
<input style="display: none" th:value="${number}" id="number">
<input style="display: none" th:value="${type}" id="selectDepositoryType">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
@ -179,6 +180,7 @@
});
$('#openSonByDepository').on('click', function () {
let selectDepositoryType = $("#selectDepositoryType").val();
layer.open({
type: 2,
title: '弹窗内容',
@ -188,7 +190,7 @@
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=1',
content: '/selectDepository?type='+selectDepositoryType,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);

Loading…
Cancel
Save