From 872a269a10513973af50da22c6673f47739954ad Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 19 六月 2020 13:21:17 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/WorkService.java | 8 +
src/main/webapp/static/js/pakStore/locCheckOut.js | 184 ++++++++++++++++++++++++++
/dev/null | 40 -----
src/main/webapp/views/pakStore/locCheckOut.html | 130 ++++++++++++++++++
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 39 ++++-
src/main/java/com/zy/asrs/controller/WorkController.java | 7 +
6 files changed, 360 insertions(+), 48 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index f653ef2..c76f3f7 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -77,6 +77,13 @@
return R.ok("鍑哄簱鍚姩鎴愬姛");
}
+ @RequestMapping("/locCheck/out/start")
+ @ManagerAuth(memo = "鐩樼偣鍑哄簱")
+ public R locCheckOutStart(@RequestBody StockOutParam param) {
+ workService.locCheckOut(param, getUserId());
+ return R.ok("鍑哄簱鍚姩鎴愬姛");
+ }
+
@RequestMapping("/loc/move/start")
@ManagerAuth(memo = "搴撲綅绉昏浆")
public R locMoveStart(@RequestParam String sourceLocNo,
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index c960c17..c74bdfc 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -26,8 +26,9 @@
* 鍑哄簱浣滀笟
* @param staNo 鐩爣绔欑偣
* @param locDetls 寰呭嚭搴撶墿鏂�
+ * @param ioType 鍏ュ嚭搴撶被鍨�
*/
- void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, Long userId);
+ void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, Integer ioType, Long userId);
/**
* 绌烘澘鍏ュ簱
@@ -41,6 +42,11 @@
void emptyPlateOut(EmptyPlateOutParam param, Long userId);
/**
+ * 鐩樼偣鍑哄簱
+ */
+ void locCheckOut(StockOutParam param, Long userId);
+
+ /**
* 搴撲綅绉昏浆
*/
void locMove(String sourceLocNo, String locNo, Long userId);
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index e69c42a..0f5e587 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -133,8 +133,8 @@
}
}
if (!locDetlDtos.isEmpty()) {
- // 鍚姩鍑哄簱寮�濮�
- stockOut(staNo, locDetlDtos, userId);
+ // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+ stockOut(staNo, locDetlDtos, 101, userId);
} else {
throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
}
@@ -142,7 +142,7 @@
@Override
@Transactional
- public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Long userId) {
+ public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Integer ioType, Long userId) {
// 鍚堝苟鍚岀被椤�
Set<String> locNos = new HashSet<>();
locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo()));
@@ -165,7 +165,7 @@
LocMast locMast = locMastService.selectById(dto.getLocNo());
// 鑾峰彇璺緞
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", 101)
+ .eq("type_no", ioType)
.eq("stn_no", staNo.getDevNo())
.eq("crn_no", locMast.getCrnNo());
StaDesc staDesc = staDescService.selectOne(wrapper);
@@ -179,7 +179,7 @@
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細101.鍑哄簱
+ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬侊細101.鍑哄簱
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
@@ -199,12 +199,13 @@
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
- if (detlDto.getCount() <= 0.0D) {continue;}
+ if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(new Date());
wrkDetl.setMatnr(detlDto.getLocDetl().getMatnr());
- wrkDetl.setAnfme(detlDto.getCount()); // 鏁伴噺
+ Double anfme = ioType==101?detlDto.getCount():detlDto.getLocDetl().getAnfme();
+ wrkDetl.setAnfme(anfme); // 鏁伴噺
wrkDetl.setZmatid(detlDto.getLocDetl().getZmatid());
wrkDetl.setTbpos(detlDto.getLocDetl().getTbpos());
wrkDetl.setTbnum(detlDto.getLocDetl().getTbnum());
@@ -355,6 +356,30 @@
@Override
@Transactional
+ public void locCheckOut(StockOutParam param, Long userId) {
+ // 鐩爣绔欑偣鐘舵�佹娴�
+ BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+ // 鑾峰彇搴撲綅鏄庣粏
+ List<LocDetlDto> locDetlDtos = new ArrayList<>();
+ for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
+ if (!Cools.isEmpty(locDetl.getLocNo(), locDetl.getMatnr())) {
+ LocDetl sqlParam = new LocDetl();
+ sqlParam.setLocNo(locDetl.getLocNo());
+ sqlParam.setMatnr(locDetl.getMatnr());
+ LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, locDetl.getCount()));
+ }
+ }
+ if (!locDetlDtos.isEmpty()) {
+ // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+ stockOut(staNo, locDetlDtos, 107, userId);
+ } else {
+ throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
+ }
+ }
+
+ @Override
+ @Transactional
public void locMove(String sourceLocNo, String locNo, Long userId) {
LocMast sourceLoc = locMastService.selectById(sourceLocNo);
if (Cools.isEmpty(sourceLoc)){
diff --git a/src/main/webapp/static/js/pakStore/locCheck.js b/src/main/webapp/static/js/pakStore/locCheck.js
deleted file mode 100644
index 507732e..0000000
--- a/src/main/webapp/static/js/pakStore/locCheck.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var pageCurr;
-layui.use(['table','laydate', 'form'], function() {
- var table = layui.table;
- var $ = layui.jquery;
- var layer = layui.layer;
- var layDate = layui.laydate;
- var form = layui.form;
-
-})
\ No newline at end of file
diff --git a/src/main/webapp/static/js/pakStore/locCheckOut.js b/src/main/webapp/static/js/pakStore/locCheckOut.js
new file mode 100644
index 0000000..3ea8686
--- /dev/null
+++ b/src/main/webapp/static/js/pakStore/locCheckOut.js
@@ -0,0 +1,184 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function() {
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ tableIns = table.render({
+ elem: '#chooseData',
+ headers: {token: localStorage.getItem('token')},
+ data: [],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ // {field: 'count', align: 'center',title: '鍑哄簱鏁伴噺', edit:'text', width: 130, style:'color: blue;font-weight: bold'} // todo
+ ,{field: 'anfme', align: 'center',title: '鍘熸暟閲�'}
+ ,{field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
+ ,{field: 'matnr', align: 'center',title: '鐗╂枡'}
+ ,{field: 'lgnum', align: 'center',title: '浠撳簱鍙�', width:80}
+ ,{field: 'tbnum', align: 'center',title: '杞偍璇锋眰缂栧彿'}
+ // ,{field: 'tbpos', align: 'center',title: '琛岄」鐩�'}
+ ,{field: 'zmatid', align: 'center',title: '鐗╂枡鏍囩ID', width:200}
+ ,{field: 'maktx', align: 'center',title: '鐗╂枡鎻忚堪', width:150}
+ ,{field: 'werks', align: 'center',title: '宸ュ巶'}
+ ,{field: 'altme', align: 'center',title: '鍗曚綅', width:80}
+ ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
+ ,{field: 'bname', align: 'center',title: '鐢ㄦ埛ID'}
+ // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:80} // todo
+ ]],
+ done: function(res, curr, count) {
+ limit();
+ getOutBound();
+ }
+ });
+
+ // 椤甸潰淇敼
+ table.on('edit(chooseData)', function (obj) {
+ updateLocDetlData(obj.data.locNo, obj.data.matnr, Number(obj.value));
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(chooseData)', function (obj) {
+ var data = locDetlData;
+ switch (obj.event) {
+ case 'outbound':
+ if (data.length === 0){
+ layer.msg('璇峰厛娣诲姞搴撲綅鐗╂枡');
+ } else {
+ var staNo = $("#staNoSelect").val();
+ if (staNo === "" || staNo === null){
+ layer.msg("璇烽�夋嫨鍑哄簱鍙�");
+ return;
+ }
+ var locDetls = [];
+ data.forEach(function(elem) {
+ // locDetls.push({locNo: elem.locNo, matnr: elem.matnr, count: elem.count}); // todo
+ locDetls.push({locNo: elem.locNo, matnr: elem.matnr});
+ });
+ let param = {
+ outSite: staNo,
+ locDetls: locDetls
+ }
+ $.ajax({
+ url: baseUrl+"/locCheck/out/start",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ locDetlData = [];
+ tableIns.reload({data: locDetlData,done:function (res) {limit();getOutBound();}});
+ layer.msg(res.msg);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ }
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(chooseData)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'remove':
+ for (var i = locDetlData.length - 1; i >= 0; i--) {
+ if (locDetlData[i].locNo === data.locNo && locDetlData[i].matnr === data.matnr) {
+ locDetlData.splice(i, 1);
+ }
+ }
+ tableIns.reload({data: locDetlData,done:function (res) {limit();getOutBound();}});
+ break;
+ }
+ });
+
+ function updateLocDetlData(locNo, matnr, count) {
+ if (isNaN(count)) {
+ layer.msg("璇疯緭鍏ユ暟瀛�");
+ } else {
+ if (count > 0) {
+ for (var i=0;i<locDetlData.length;i++){
+ if (locDetlData[i]["locNo"] === locNo && locDetlData[i]["matnr"] === matnr){
+ if (count > locDetlData[i]["anfme"]) {
+ layer.msg("涓嶈兘瓒呰繃鍘熸暟閲�");
+ } else {
+ locDetlData[i]["count"] = count;
+ }
+ break;
+ }
+ }
+ } else {
+ layer.msg("鏁伴噺蹇呴』澶т簬闆�");
+ }
+ }
+ tableIns.reload({data: locDetlData,done:function (res) {limit(); getOutBound();}});
+ }
+
+ // 鑾峰彇鍑哄簱鍙�
+ function getOutBound(){
+ $.ajax({
+ url: baseUrl+"/available/take/site",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ var tpl = $("#takeSiteSelectTemplate").html();
+ var template = Handlebars.compile(tpl);
+ var html = template(res);
+ $('#staNoSelect').append(html);
+ form.render('select');
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+})
+
+// 鎻愬彇鐗╂枡
+var locDetlLayerIdx;
+function getLocDetl() {
+ locDetlLayerIdx = layer.open({
+ type: 2,
+ title: '鎻愬彇鐗╂枡',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: true,
+ content: 'locDetlQuery.html',
+ success: function(layero, index){
+ }
+ });
+}
+
+// 娣诲姞琛ㄦ牸鏁版嵁
+function addTableData(data) {
+ for (var i=0;i<data.length;i++){
+ let pass = false;
+ for (var j=0;j<locDetlData.length;j++){
+ if (data[i].matnr === locDetlData[j].matnr && data[i].locNo$ === locDetlData[j].locNo$) {
+ pass = true;
+ break;
+ }
+ }
+ if (pass) {
+ data.splice(i--, 1);
+ } else {
+ data[i]["count"] = data[i]["anfme"];
+ }
+
+ }
+ locDetlData.push.apply(locDetlData, data);
+ tableIns.reload({data: locDetlData});
+ layer.close(locDetlLayerIdx);
+}
\ No newline at end of file
diff --git a/src/main/webapp/views/pakStore/locCheck.html b/src/main/webapp/views/pakStore/locCheck.html
deleted file mode 100644
index 051ff8a..0000000
--- a/src/main/webapp/views/pakStore/locCheck.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="utf-8">
- <title></title>
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
- <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
- <link rel="stylesheet" href="../../static/css/cool.css" media="all">
- <link rel="stylesheet" href="../../static/css/common.css" media="all">
- <style>
- html {
- height: 100%;
- padding: 10px;
- background-color: #f1f1f1;
- }
- body {
- background-color: #fff;
- border-radius: 5px;
- box-shadow: 0 0 3px rgba(0,0,0,.3);
- }
-
- </style>
-</head>
-<body style="padding-bottom: 30px">
-
-
-<hr>
-
-<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
-<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
-<script type="text/javascript" src="../../static/js/pakStore/locCheck.js" charset="utf-8"></script>
-
-</body>
-</html>
-
diff --git a/src/main/webapp/views/pakStore/locCheckOut.html b/src/main/webapp/views/pakStore/locCheckOut.html
new file mode 100644
index 0000000..0ed8a1b
--- /dev/null
+++ b/src/main/webapp/views/pakStore/locCheckOut.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <style>
+ html {
+ height: 100%;
+ padding: 10px;
+ background-color: #f1f1f1;
+ }
+ body {
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 0 3px rgba(0,0,0,.3);
+ }
+ #staNoSpan {
+ text-align: center;
+ display: inline-block;
+ width: 100px;
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-form-select {
+ display: inline-block;
+ width: 150px;
+ height: 30px;
+ }
+ .layui-btn-container .layui-form-select.layui-form-selected {
+ display: inline-block;
+ width: 150px;
+ }
+ .layui-btn-container .layui-select-title input {
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-anim.layui-anim-upbit dd {
+ font-size: 13px;
+ }
+
+ #btn-outbound {
+ margin-left: 60px;
+ }
+
+ /*----------------------------------*/
+ .function-area {
+ padding: 20px 50px;
+ }
+ .function-btn {
+ font-size: 16px;
+ padding: 1px 1px 1px 1px;
+ width: 100px;
+ height: 50px;
+ border-color: #2b425b;
+ border-radius: 4px;
+ border-width: 2px;
+ background: none;
+ border-style: solid;
+ transition: 0.4s;
+ cursor: pointer;
+ letter-spacing: 3px;
+ }
+ .function-btn:hover {
+ background-color: #2b425b;
+ color: #fff;
+ }
+ </style>
+</head>
+<body style="padding-bottom: 30px">
+
+<!-- 鍔熻兘鍖� -->
+<div class="function-area">
+ <button id="mat-query" class="function-btn" onclick="getLocDetl()">鏂板</button>
+</div>
+
+<hr>
+
+<!-- 琛ㄦ牸 -->
+<div style="padding-bottom: 5px; margin-bottom: 45px">
+
+ <!-- 澶撮儴 -->
+ <script type="text/html" id="toolbar">
+ <div class="layui-form">
+ <div class="layui-btn-container">
+ <!-- 1.閫夋嫨鍑哄簱鍙� -->
+ <span id="staNoSpan">鍑哄簱鍙o細</span>
+ <select id="staNoSelect" lay-verify="required">
+ <!-- <option value="">璇烽�夋嫨绔欑偣</option>-->
+ </select>
+ <!-- 2.鍚姩鍑哄簱 -->
+ <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鐩樼偣鍑哄簱</button>
+ </div>
+ </div>
+ </script>
+
+ <!-- 琛� -->
+ <script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">绉婚櫎</a>
+ </script>
+
+ <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/pakStore/stockOut.js" charset="utf-8"></script>
+
+<script type="text/template" id="takeSiteSelectTemplate">
+ {{#each data}}
+ <option value="{{this}}">{{this}}</option>
+ {{/each}}
+</script>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/pakStore/locCheckOut.js" charset="utf-8"></script>
+
+</body>
+</html>
+
--
Gitblit v1.9.1