From 1d3bb76d19961a6e165a7e234ccf17b5eb3a84d9 Mon Sep 17 00:00:00 2001 From: 王佳豪 <g675230687@126.com> Date: 星期二, 01 六月 2021 13:02:57 +0800 Subject: [PATCH] 宏挺补仓功能(未完 --- src/main/java/zy/cloud/wms/common/service/asrs/entity/ResultLocDetl.java | 25 ++ src/main/java/zy/cloud/wms/manager/entity/Site.java | 10 + src/main/java/zy/cloud/wms/manager/entity/AsrsLocDetl.java | 81 +++++++++ src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java | 38 ++++ src/main/webapp/static/js/safeSto/locAllot.js | 149 ++++++++++++++++ src/main/java/zy/cloud/wms/common/service/asrs/entity/ResultSite.java | 25 ++ src/main/webapp/views/safeSto/locAllot.html | 75 ++++++++ src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java | 1 src/main/java/zy/cloud/wms/manager/controller/PriorController.java | 17 + src/main/webapp/static/js/common.js | 14 + src/main/webapp/static/js/safeSto/safeSto.js | 65 ++++--- 11 files changed, 472 insertions(+), 28 deletions(-) diff --git a/src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java b/src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java index c6590d1..3d66889 100644 --- a/src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java +++ b/src/main/java/zy/cloud/wms/common/service/asrs/AsrsService.java @@ -5,11 +5,15 @@ import org.springframework.stereotype.Service; import zy.cloud.wms.common.service.asrs.entity.Result; import zy.cloud.wms.common.service.asrs.entity.Result1; +import zy.cloud.wms.common.service.asrs.entity.ResultLocDetl; +import zy.cloud.wms.common.service.asrs.entity.ResultSite; import zy.cloud.wms.manager.entity.param.StockTransferParam; import zy.cloud.wms.manager.utils.HttpHandler; import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Created by vincent on 2021/3/20 @@ -50,4 +54,38 @@ } } + /* 鑾峰彇鍑哄簱绔欑偣 */ + public ResultSite takeSite() { + try { + String response = new HttpHandler.Builder() + .setUri(asrsBaseUrl) + .setPath("/open/api/available/take/site") + .setJson(JSON.toJSONString("")) + .build() + .doPost(); + return JSON.parseObject(response, ResultSite.class); + } catch (IOException e) { + e.printStackTrace(); + return new ResultSite(500, "鏈嶅姟鍣ㄥ紓甯�", null); + } + } + + /* 鏍规嵁鐗╂枡缂栫爜鑾峰彇绔嬪簱搴撳瓨淇℃伅 */ + public ResultLocDetl getAsrsLocDetl(String matnr) { + try { + Map<String, Object> map = new HashMap<>(); + map.put("matnr", matnr); + String response = new HttpHandler.Builder() + .setUri(asrsBaseUrl) + .setPath("/open/api/get/asrsLocDetl") + .setParams(map) +// .setJson(JSON.toJSONString(matnr)) + .build() + .doPost(); + return JSON.parseObject(response, ResultLocDetl.class); + } catch (IOException e) { + e.printStackTrace(); + return new ResultLocDetl(500, "鏈嶅姟鍣ㄥ紓甯�", null); + } + } } diff --git a/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java b/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java index bb31cd6..171110a 100644 --- a/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java +++ b/src/main/java/zy/cloud/wms/common/service/asrs/entity/Result.java @@ -1,6 +1,7 @@ package zy.cloud.wms.common.service.asrs.entity; import lombok.Data; +import zy.cloud.wms.manager.entity.Site; import zy.cloud.wms.manager.entity.StoPreTab; import java.util.List; diff --git a/src/main/java/zy/cloud/wms/common/service/asrs/entity/ResultLocDetl.java b/src/main/java/zy/cloud/wms/common/service/asrs/entity/ResultLocDetl.java new file mode 100644 index 0000000..6520c50 --- /dev/null +++ b/src/main/java/zy/cloud/wms/common/service/asrs/entity/ResultLocDetl.java @@ -0,0 +1,25 @@ +package zy.cloud.wms.common.service.asrs.entity; + +import lombok.Data; +import zy.cloud.wms.manager.entity.AsrsLocDetl; +import zy.cloud.wms.manager.entity.LocDetl; + +import java.util.List; + +@Data +public class ResultLocDetl { + private Integer code; + + private String msg; + + private List<AsrsLocDetl> data; + + public ResultLocDetl() { + } + + public ResultLocDetl(Integer code, String msg, List<AsrsLocDetl> data) { + this.code = code; + this.msg = msg; + this.data = data; + } +} diff --git a/src/main/java/zy/cloud/wms/common/service/asrs/entity/ResultSite.java b/src/main/java/zy/cloud/wms/common/service/asrs/entity/ResultSite.java new file mode 100644 index 0000000..9258a4e --- /dev/null +++ b/src/main/java/zy/cloud/wms/common/service/asrs/entity/ResultSite.java @@ -0,0 +1,25 @@ +package zy.cloud.wms.common.service.asrs.entity; + +import lombok.Data; +import zy.cloud.wms.manager.entity.Site; + +import java.util.List; + +@Data +public class ResultSite { + + private Integer code; + + private String msg; + + private List<Site> data; + + public ResultSite() { + } + + public ResultSite(Integer code, String msg, List<Site> data) { + this.code = code; + this.msg = msg; + this.data = data; + } +} diff --git a/src/main/java/zy/cloud/wms/manager/controller/PriorController.java b/src/main/java/zy/cloud/wms/manager/controller/PriorController.java index 52cda01..9c363c6 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/PriorController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/PriorController.java @@ -12,8 +12,10 @@ import com.core.common.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import zy.cloud.wms.common.service.asrs.AsrsService; import zy.cloud.wms.common.web.BaseController; import zy.cloud.wms.manager.entity.*; +import zy.cloud.wms.manager.entity.param.StockTransferParam; import zy.cloud.wms.manager.service.MatService; import zy.cloud.wms.manager.service.NodeService; import zy.cloud.wms.manager.service.PriorService; @@ -29,6 +31,8 @@ private MatService matService; @Autowired private NodeService nodeService; + @Autowired + private AsrsService asrsService; /** * 瀹夊叏搴撳瓨璀﹀憡鍒嗛〉 @@ -180,4 +184,17 @@ return R.ok(); } + @RequestMapping(value = "/available/take/site") + @ManagerAuth + public R takeSite() { + Object response = asrsService.takeSite().getData(); + return R.ok(response); + } + + @RequestMapping(value = "/get/asrsLocDetl") + @ManagerAuth + public R getLocDetl(String matnr) { + Object response = asrsService.getAsrsLocDetl(matnr).getData(); + return R.ok(response); + } } diff --git a/src/main/java/zy/cloud/wms/manager/entity/AsrsLocDetl.java b/src/main/java/zy/cloud/wms/manager/entity/AsrsLocDetl.java new file mode 100644 index 0000000..8eb26ec --- /dev/null +++ b/src/main/java/zy/cloud/wms/manager/entity/AsrsLocDetl.java @@ -0,0 +1,81 @@ +package zy.cloud.wms.manager.entity; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.text.SimpleDateFormat; +import java.util.Date; + +@Data +public class AsrsLocDetl { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value= "搴撲綅鍙�") + private String locNo; + + @ApiModelProperty(value= "鍟嗗搧缂栧彿") + private String matnr; + + @ApiModelProperty(value= "鍟嗗搧鍚嶇О") + private String maktx; + + @ApiModelProperty(value= "瑙勬牸") + private String lgnum; + + @ApiModelProperty(value= "鍨嬪彿") + private String type; + + @ApiModelProperty(value= "鏉$爜") + private String color; + + @ApiModelProperty(value= "鎵瑰彿") + private String supplier; + + @ApiModelProperty(value= "鍗曟嵁缂栧彿") + private String warehouse; + + @ApiModelProperty(value= "鍝侀」鏁�") + private String brand; + + @ApiModelProperty(value= "鏁伴噺") + private Double anfme; + + @ApiModelProperty(value= "鍗曚綅") + private String altme; + + @ApiModelProperty(value= "鎵樼洏鏉$爜") + private String zpallet; + + @ApiModelProperty(value= "瀹㈡埛鍚嶇О") + private String bname; + + @ApiModelProperty(value= "澶囨敞") + private String memo; + + @ApiModelProperty(value= "淇敼浜哄憳") + private Long modiUser; + + private String modiUser$; + + @ApiModelProperty(value= "淇敼鏃堕棿") + private Date modiTime; + + private String modiTime$; + + @ApiModelProperty(value= "鍒涘缓鑰�") + private Long appeUser; + + private String appeUser$; + + @ApiModelProperty(value= "娣诲姞鏃堕棿") + private Date appeTime; + + private String appeTime$; +} diff --git a/src/main/java/zy/cloud/wms/manager/entity/Site.java b/src/main/java/zy/cloud/wms/manager/entity/Site.java new file mode 100644 index 0000000..95f553f --- /dev/null +++ b/src/main/java/zy/cloud/wms/manager/entity/Site.java @@ -0,0 +1,10 @@ +package zy.cloud.wms.manager.entity; + +import lombok.Data; + +@Data +public class Site { + private Integer siteId; + + private String desc; +} diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js index 982a8d1..25d7913 100644 --- a/src/main/webapp/static/js/common.js +++ b/src/main/webapp/static/js/common.js @@ -208,4 +208,16 @@ ] -var popupRight; \ No newline at end of file +var popupRight; + +function RequestParameter() { + var url = window.location.search; //鑾峰彇url涓�"?"绗﹀悗鐨勫瓧涓� + var theRequest = new Object(); + if (url.indexOf("?") != -1) { + var str = url.substr(1); + var strs = str.split("&"); + for (var i = 0; i < strs.length; i++) { + theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]); + } + } +} \ No newline at end of file diff --git a/src/main/webapp/static/js/safeSto/locAllot.js b/src/main/webapp/static/js/safeSto/locAllot.js new file mode 100644 index 0000000..68633b1 --- /dev/null +++ b/src/main/webapp/static/js/safeSto/locAllot.js @@ -0,0 +1,149 @@ +var locDetlData = []; +var pageCurr; +function getCol() { + var cols = [ + {field: 'anfme', align: 'center',title: '鏁伴噺', edit:'text', width: 130, style:'color: blue;font-weight: bold'} + ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�'} + ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿'} + ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'} + ,{field: 'lgnum', align: 'center',title: '瑙勬牸'} + ,{field: 'type', align: 'center',title: '鍨嬪彿', hide: true} + ,{field: 'color', align: 'center',title: '鏉$爜', hide: true} + ,{field: 'supplier', align: 'center',title: '鎵瑰彿', hide: true} + ,{field: 'altme', align: 'center',title: '鍗曚綅'} + ,{field: 'warehouse', align: 'center',title: '鍗曟嵁缂栧彿', hide: true} + ,{field: 'bname', align: 'center',title: '瀹㈡埛鍚嶇О', hide: true} + ,{field: 'brand', align: 'center',title: '鍝侀」鏁�', hide: true} + ,{field: 'memo', align: 'center', title: '澶囨敞', hide: true} + ,{field: 'zpallet', align: 'center',title: '鎵樼洏鐮�'} + ]; + cols.push({fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:80}) + return cols; +} + +layui.use(['table','laydate', 'form'], function() { + var table = layui.table; + var $ = layui.jquery; + var layer = layui.layer; + var form = layui.form; + + var param = RequestParameter(); + debugger + tableIns = table.render({ + elem: '#chooseData', + url: baseUrl + '/get/asrsLocDetl', + where: { + matnr: 'LSH10648050', + }, + headers: {token: localStorage.getItem('token')}, + // data: [], + even: true, + toolbar: '#toolbar', + cellMinWidth: 50, + cols: [getCol()], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'data': res.data + } + }, + response: { + statusCode: 200 + }, + done: function(res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + limit(); + getOutBound(); + } + }); + + // 椤甸潰淇敼 + table.on('edit(chooseData)', function (obj) { + updateLocDetlData(obj.data.locNo, obj.data.matnr, Number(obj.value)); + }); + + // 鐩戝惉琛屽伐鍏蜂簨浠� + table.on('tool(chooseData)', function(obj){ + var data = obj.data; + switch (obj.event) { + case 'stockOut': + alert("鍚姩鍑哄簱"); + break; + } + }); + + // 鐩戝惉澶村伐鍏锋爮浜嬩欢 + 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}); + }); + let param = { + outSite: staNo, + locDetls: locDetls + } + $.ajax({ + url: baseUrl+"/plate/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; + } + }); + + // 鑾峰彇鍑哄簱鍙� + 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) + } + } + }) + } +}); \ No newline at end of file diff --git a/src/main/webapp/static/js/safeSto/safeSto.js b/src/main/webapp/static/js/safeSto/safeSto.js index d53037b..b59490c 100644 --- a/src/main/webapp/static/js/safeSto/safeSto.js +++ b/src/main/webapp/static/js/safeSto/safeSto.js @@ -105,33 +105,44 @@ switch (obj.event) { // 琛ヤ粨 case 'allot': - layer.confirm(data.node_name +'琛ヤ粨 '+ data.matnr + '锛屾暟閲忥細' + (data.safe_qua - data.amount), function(){ - var index = layer.load(1, {shade: [0.1,'#000']}); - $.ajax({ - url: baseUrl+"/work/stock/transfer", - headers: {'token': localStorage.getItem('token')}, - contentType:'application/json;charset=UTF-8', - data: JSON.stringify({ - node_id: data.node_id, - matnr: data.matnr, - safe_qua: data.safe_qua, - amount: data.amount - }), - dataType:'json', - method: 'POST', - success: function (res) { - if (res.code === 200) { - layer.msg(res.msg, {icon: 1}) - $(".layui-laypage-btn")[0].click(); - } else if (res.code === 403) { - top.location.href = baseUrl+"/"; - } else { - layer.msg(res.msg, {icon: 2}) - } - layer.close(index); - } - }); - }); + // layer.confirm(data.node_name +'琛ヤ粨 '+ data.matnr + '锛屾暟閲忥細' + (data.safe_qua - data.amount), function(){ + // var index = layer.load(1, {shade: [0.1,'#000']}); + // $.ajax({ + // url: baseUrl+"/work/stock/transfer", + // headers: {'token': localStorage.getItem('token')}, + // contentType:'application/json;charset=UTF-8', + // data: JSON.stringify({ + // node_id: data.node_id, + // matnr: data.matnr, + // safe_qua: data.safe_qua, + // amount: data.amount + // }), + // dataType:'json', + // method: 'POST', + // success: function (res) { + // if (res.code === 200) { + // layer.msg(res.msg, {icon: 1}) + // $(".layui-laypage-btn")[0].click(); + // } else if (res.code === 403) { + // top.location.href = baseUrl+"/"; + // } else { + // layer.msg(res.msg, {icon: 2}) + // } + // layer.close(index); + // } + // }); + // }); + layer.open({ + type: 2, + title: '琛ヤ粨', + offset: '100px', + area: ['90%', '80%'], + shadeClose: true, + content: 'locAllot.html?matnr=' + data.matnr, + success: function(layero, index){ + + } + }) break; } }); diff --git a/src/main/webapp/views/safeSto/locAllot.html b/src/main/webapp/views/safeSto/locAllot.html new file mode 100644 index 0000000..c8ca760 --- /dev/null +++ b/src/main/webapp/views/safeSto/locAllot.html @@ -0,0 +1,75 @@ +<!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"> +</head> + +<style> + .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; + } + +</style> + +<body> + +<!-- 琛ㄦ牸 --> +<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 style="margin-left: 18px" class="layui-btn layui-btn-lg layui-btn-disabled" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button> + </div> + </div> + </script> + + <!-- 琛� --> + <script type="text/html" id="operate"> + <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="stockOut">鍑哄簱</a> + </script> + + <table style="margin-top: -16px" class="layui-table" id="chooseData" lay-filter="chooseData"></table> +</div> + +<script type="text/template" id="takeSiteSelectTemplate"> + {{#each data}} + <option value="{{siteId}}">{{desc}}</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/safeSto/locAllot.js" charset="utf-8"></script> + +</body> +</html> \ No newline at end of file -- Gitblit v1.9.1