Browse Source

添加托盘创建功能

lwx_dev
erdanergou 3 years ago
parent
commit
74eb4b36a7
  1. 55
      src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java
  2. 7
      src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.java
  3. 17
      src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml
  4. 8
      src/main/java/com/dreamchaser/depository_manage/service/PlaceService.java
  5. 15
      src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java
  6. 89
      src/main/resources/templates/pages/place/place_add.html
  7. 98
      src/main/resources/templates/pages/place/place_list_add.html
  8. 17
      target/classes/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml
  9. 98
      target/classes/templates/pages/place/place_list_add.html

55
src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java

@ -105,6 +105,7 @@ public class PlaceController {
} }
insert.put("state",1); insert.put("state",1);
insert.put("quantity",0); insert.put("quantity",0);
insert.put("flagType",1);
success += placeService.InsertPlace(insert); success += placeService.InsertPlace(insert);
} }
else if("list".equals(type)){ else if("list".equals(type)){
@ -119,7 +120,7 @@ public class PlaceController {
Integer place_end_z = ObjectFormatUtil.toInteger(map.get("place_end_z")); Integer place_end_z = ObjectFormatUtil.toInteger(map.get("place_end_z"));
// 计算所需库位数目 // 计算所需库位数目
// total = (place_end_x - place_start_x) * (place_end_y - place_start_y) * (place_end_z - place_start_z); // total = (place_end_x - place_start_x) * (place_end_y - place_start_y) * (place_end_z - place_start_z);
total = (place_end_x - place_start_x) * (place_end_z - place_start_z); total = (place_end_x - place_start_x + 1) * (place_end_z - place_start_z + 1);
String min = (String) map.get("min"); String min = (String) map.get("min");
String max = (String) map.get("max"); String max = (String) map.get("max");
for (int i = place_start_x; i <= place_end_x; i++) { for (int i = place_start_x; i <= place_end_x; i++) {
@ -136,6 +137,7 @@ public class PlaceController {
insert.put("did", map.get("depositoryId")); insert.put("did", map.get("depositoryId"));
insert.put("state",1); insert.put("state",1);
insert.put("quantity",0); insert.put("quantity",0);
insert.put("flagType",1);
success += placeService.InsertPlace(insert); success += placeService.InsertPlace(insert);
} }
// } // }
@ -154,6 +156,57 @@ public class PlaceController {
} }
} }
@PostMapping("/addTray")
public RestResponse addTray(@RequestBody Map<String,Object> map){
String type = (String) map.get("type");
Map<String, Object> insert = new HashMap<>();
Integer success = 0;
Integer total = 0;
String min = (String) map.get("min");
String max = (String) map.get("max");
if (!"".equals(min)) {
insert.put("min", map.get("min"));
} else {
insert.put("min", 0);
}
if (!"".equals(max)) {
insert.put("max", map.get("max"));
} else {
insert.put("max", 0);
}
Object depositoryId = map.get("depositoryId");
insert.put("did", depositoryId);
// 获取当前仓库的托盘数量
Integer countForTray = placeService.findPlaceCoutnByTypeForFlag(2, ObjectFormatUtil.toInteger(depositoryId));
if ("one".equals(type)) {
String code = "F"+String.format("%02d",countForTray+1);
insert.put("code", code);
insert.put("state",1);
insert.put("quantity",0);
insert.put("flagType",2);
success += placeService.InsertPlace(insert);
}else if("list".equals(type)){
Integer num = ObjectFormatUtil.toInteger(map.get("num"));
insert.put("state",1);
insert.put("quantity",0);
insert.put("flagType",2);
total = num;
for (int i = 1; i <= num; i++) {
String code = "F"+String.format("%02d",countForTray+i);
insert.put("code", code);
success += placeService.InsertPlace(insert);
}
}
if ("one".equals(type)) {
return CrudUtil.postHandle(success, 1);
} else if("list".equals(type)){
return CrudUtil.postHandle(success,total);
}else{
throw new MyException("请求参数错误!");
}
}
/** /**
* 将库位状态改为删除 * 将库位状态改为删除
* @param map * @param map

7
src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.java

@ -176,4 +176,11 @@ public interface PlaceMapper {
* @return * @return
*/ */
Integer findQuantityByMidAndPid(Map<String,Object> map); Integer findQuantityByMidAndPid(Map<String,Object> map);
/**
* 查询当前出库中该类型的库位数量
* @param map 待查询数量
* @return
*/
Integer findPlaceCoutnByTypeForFlag(Map<String,Object> map);
} }

17
src/main/java/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml

@ -245,7 +245,7 @@
<!-- 新增信息 --> <!-- 新增信息 -->
<insert id="InsertPlace"> <insert id="InsertPlace">
INSERT INTO place ( INSERT INTO place (
id,x,y,z,code, mid,did,min,max,state,quantity id,x,y,z,code, mid,did,min,max,state,quantity,flagForType
) VALUES ( ) VALUES (
#{id}, #{id},
#{x}, #{x},
@ -257,7 +257,8 @@
#{min}, #{min},
#{max}, #{max},
#{state}, #{state},
#{quantity} #{quantity},
#{flagType}
) )
</insert> </insert>
@ -369,5 +370,17 @@
<select id="findPlaceZByDid" parameterType="map" resultType="int"> <select id="findPlaceZByDid" parameterType="map" resultType="int">
select DISTINCT z from place where did = #{did} and x = #{x} and state != 3 ORDER BY z desc select DISTINCT z from place where did = #{did} and x = #{x} and state != 3 ORDER BY z desc
</select> </select>
<select id="findPlaceCoutnByTypeForFlag" resultType="int" parameterType="map">
select
count(*)
from place
where 1 = 1
<if test="flag != null and flag != ''">
and flagForType = #{flag}
</if>
<if test="did != null and did != ''">
and did = #{did}
</if>
</select>
</mapper> </mapper>

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

@ -185,6 +185,14 @@ public interface PlaceService {
PidOrDidAndCode findLocationByQrCode(String qrCode); PidOrDidAndCode findLocationByQrCode(String qrCode);
/**
* 查询当前出库中该类型的库位数量
* @param flag 类型
* @return
*/
Integer findPlaceCoutnByTypeForFlag(Integer flag, Integer did);
} }

15
src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java

@ -160,8 +160,6 @@ public class PlaceServiceImpl implements PlaceService {
if(placeByCondition.size() > 0){ if(placeByCondition.size() > 0){
return 1; return 1;
} }
return placeMapper.InsertPlace(map); return placeMapper.InsertPlace(map);
} }
/** /**
@ -371,5 +369,18 @@ public class PlaceServiceImpl implements PlaceService {
return null; return null;
} }
/**
* 查询当前类型的库位数量
* @param flag 类型
* @return
*/
@Override
public Integer findPlaceCoutnByTypeForFlag(Integer flag, Integer did) {
Map<String,Object> map = new HashMap<>();
map.put("flag",flag);
map.put("did",did);
return placeMapper.findPlaceCoutnByTypeForFlag(map);
}
} }

89
src/main/resources/templates/pages/place/place_add.html

@ -15,12 +15,21 @@
<fieldset class="table-search-fieldset"> <fieldset class="table-search-fieldset">
<legend>库位创建</legend> <legend>库位创建</legend>
<div class="layui-fluid"> <div class="layui-fluid">
<div class="layui-tab">
<ul class="layui-tab-title" style="text-align: center">
<li class="layui-this">库位创建</li>
<li class="layui-this">托盘创建</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<div class="layui-card"> <div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;"> <div class="layui-card-body" style="padding-top: 40px;">
<div> <div>
<form class="layui-form" <form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px" lay-filter="form1"> style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
<input style="display: none" th:value="${depositoryId}" name="depositoryId" id="depositoryID"> lay-filter="form1">
<input style="display: none" th:value="${depositoryId}" name="depositoryId"
id="depositoryID">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">库位行:</label> <label class="layui-form-label">库位行:</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -69,6 +78,44 @@
<hr> <hr>
</div> </div>
</div> </div>
<div class="layui-tab-item">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div>
<form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
lay-filter="form2">
<input style="display: none" th:value="${depositoryId}" name="depositoryId">
<div class="layui-form-item">
<label class="layui-form-label">最大存放量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写最大存放量" class="layui-input"
name="max" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最小存放量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写最大存放量" class="layui-input"
name="min" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" type="button" lay-submit lay-filter="formStep1">
&emsp;创建库位&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</fieldset> </fieldset>
</div> </div>
@ -114,13 +161,45 @@
} }
}, },
complete: function () { complete: function () {
form.val("form1", { form.val("form1", {})
}) }
});
return false;
});
form.on('submit(formStep1)', function (data) {
var req = data.field;
req.type = "one";
$.ajax({
url: "/place/addTray",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("添加成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function () {
//do something
window.location = "/insertPlace?depositoryId=" + depositoryId
});
}
},
complete: function () {
form.val("form1", {})
} }
}); });
return false; return false;
}); });
form.on('select(depositoryId)', function (data) { form.on('select(depositoryId)', function (data) {
$.ajax({ $.ajax({

98
src/main/resources/templates/pages/place/place_list_add.html

@ -15,12 +15,21 @@
<fieldset class="table-search-fieldset"> <fieldset class="table-search-fieldset">
<legend>库位创建</legend> <legend>库位创建</legend>
<div class="layui-fluid"> <div class="layui-fluid">
<div class="layui-tab">
<ul class="layui-tab-title" style="text-align: center">
<li class="layui-this">库位创建</li>
<li class="layui-this">托盘创建</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<div class="layui-card"> <div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;"> <div class="layui-card-body" style="padding-top: 40px;">
<div> <div>
<form class="layui-form" <form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px" lay-filter="form1"> style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
<input style="display: none" th:value="${depositoryId}" name="depositoryId" id="depositoryID"> lay-filter="form1">
<input style="display: none" th:value="${depositoryId}" name="depositoryId"
id="depositoryID">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">起始行:</label> <label class="layui-form-label">起始行:</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -73,7 +82,7 @@
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep"> <button class="layui-btn" type="button" lay-submit lay-filter="formStep">
&emsp;创建库位&emsp; &emsp;创建库位&emsp;
</button> </button>
</div> </div>
@ -84,6 +93,51 @@
<hr> <hr>
</div> </div>
</div> </div>
<div class="layui-tab-item">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div>
<form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
lay-filter="form2">
<input style="display: none" th:value="${depositoryId}" name="depositoryId">
<div class="layui-form-item">
<label class="layui-form-label">托盘数量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写创建托盘数" class="layui-input"
name="num" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最大存放量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写最大存放量" class="layui-input"
name="max" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最小存放量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写最大存放量" class="layui-input"
name="min" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" type="button" lay-submit lay-filter="formStep1">
&emsp;创建库位&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</fieldset> </fieldset>
</div> </div>
@ -129,8 +183,42 @@
} }
}, },
complete: function () { complete: function () {
form.val("form1", { form.val("form1", {})
}) }
});
return false;
});
form.on('submit(formStep1)', function (data) {
var req = data.field;
req.type = "list";
// 添加托盘
$.ajax({
url: "/place/addTray",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("添加成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function () {
//do something
window.location = "/insertListPlace?depositoryId=" + depositoryId
});
}
},
complete: function () {
form.val("form2", {})
} }
}); });
return false; return false;

17
target/classes/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml

@ -245,7 +245,7 @@
<!-- 新增信息 --> <!-- 新增信息 -->
<insert id="InsertPlace"> <insert id="InsertPlace">
INSERT INTO place ( INSERT INTO place (
id,x,y,z,code, mid,did,min,max,state,quantity id,x,y,z,code, mid,did,min,max,state,quantity,flagForType
) VALUES ( ) VALUES (
#{id}, #{id},
#{x}, #{x},
@ -257,7 +257,8 @@
#{min}, #{min},
#{max}, #{max},
#{state}, #{state},
#{quantity} #{quantity},
#{flagType}
) )
</insert> </insert>
@ -369,5 +370,17 @@
<select id="findPlaceZByDid" parameterType="map" resultType="int"> <select id="findPlaceZByDid" parameterType="map" resultType="int">
select DISTINCT z from place where did = #{did} and x = #{x} and state != 3 ORDER BY z desc select DISTINCT z from place where did = #{did} and x = #{x} and state != 3 ORDER BY z desc
</select> </select>
<select id="findPlaceCoutnByTypeForFlag" resultType="int" parameterType="map">
select
count(*)
from place
where 1 = 1
<if test="flag != null and flag != ''">
and flagForType = #{flag}
</if>
<if test="did != null and did != ''">
and did = #{did}
</if>
</select>
</mapper> </mapper>

98
target/classes/templates/pages/place/place_list_add.html

@ -15,12 +15,21 @@
<fieldset class="table-search-fieldset"> <fieldset class="table-search-fieldset">
<legend>库位创建</legend> <legend>库位创建</legend>
<div class="layui-fluid"> <div class="layui-fluid">
<div class="layui-tab">
<ul class="layui-tab-title" style="text-align: center">
<li class="layui-this">库位创建</li>
<li class="layui-this">托盘创建</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<div class="layui-card"> <div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;"> <div class="layui-card-body" style="padding-top: 40px;">
<div> <div>
<form class="layui-form" <form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px" lay-filter="form1"> style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
<input style="display: none" th:value="${depositoryId}" name="depositoryId" id="depositoryID"> lay-filter="form1">
<input style="display: none" th:value="${depositoryId}" name="depositoryId"
id="depositoryID">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">起始行:</label> <label class="layui-form-label">起始行:</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -73,7 +82,7 @@
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep"> <button class="layui-btn" type="button" lay-submit lay-filter="formStep">
&emsp;创建库位&emsp; &emsp;创建库位&emsp;
</button> </button>
</div> </div>
@ -84,6 +93,51 @@
<hr> <hr>
</div> </div>
</div> </div>
<div class="layui-tab-item">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div>
<form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
lay-filter="form2">
<input style="display: none" th:value="${depositoryId}" name="depositoryId">
<div class="layui-form-item">
<label class="layui-form-label">托盘数量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写创建托盘数" class="layui-input"
name="num" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最大存放量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写最大存放量" class="layui-input"
name="max" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最小存放量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写最大存放量" class="layui-input"
name="min" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" type="button" lay-submit lay-filter="formStep1">
&emsp;创建库位&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</fieldset> </fieldset>
</div> </div>
@ -129,8 +183,42 @@
} }
}, },
complete: function () { complete: function () {
form.val("form1", { form.val("form1", {})
}) }
});
return false;
});
form.on('submit(formStep1)', function (data) {
var req = data.field;
req.type = "list";
// 添加托盘
$.ajax({
url: "/place/addTray",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("添加成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function () {
//do something
window.location = "/insertListPlace?depositoryId=" + depositoryId
});
}
},
complete: function () {
form.val("form2", {})
} }
}); });
return false; return false;

Loading…
Cancel
Save