diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java index bcfbf0e8..1e6773c2 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -17,6 +17,7 @@ import com.sun.mail.imap.protocol.ID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.io.IOException; @@ -220,6 +221,15 @@ public class MaterialController { List placeByMidAndDid = placeService.findPlaceByMidAndDid(ObjectFormatUtil.toInteger(mid), depositoryByAdminorg.get(i).getId()); placePList.addAll(placeByMidAndDid); } + Map param = new HashMap<>(); + param.put("code",materialById.getCode()); + List inventory = materialService.findInventory(param); + if(inventory.size() > 0){ + materialById.setPrice(inventory.get(0).getPrice()); + }else{ + materialById.setPrice(0.0); + } + Map map = new HashMap<>(); map.put("materialById", materialById); map.put("placeList", placePList); @@ -262,6 +272,14 @@ public class MaterialController { MaterialP mp = null; if (materialPByCondition.size() > 0) { mp = materialPByCondition.get(0); + Map paramByPrice = new HashMap<>(); + paramByPrice.put("code",mp.getCode()); + List inventory = materialService.findInventory(paramByPrice); + if(inventory.size() > 0){ + mp.setPrice(inventory.get(0).getPrice()); + }else{ + mp.setPrice(0.0); + } } return new RestResponse(mp, 1, 200); } @@ -408,4 +426,15 @@ public class MaterialController { return new RestResponse(s); } + // 获取扫描结果并跳转到入库 + @GetMapping("/application_in_scanQrCode") + public RestResponse applicationInScanQrCode(HttpServletRequest request){ + UserByPort userByPort = (UserByPort) request.getAttribute("userToken"); + String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue"+userByPort.getNumber()).toString(); + redisTemplate.delete("scanQrCodeValue"+userByPort.getNumber()); + JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); + return new RestResponse(jsonObject); + } + + } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index ca1ac8c5..529c81ac 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -1150,7 +1150,7 @@ public class PageController { recordMinP.setMname(materialById.getMname()); recordMinP.setMcode(materialById.getCode()); recordMinP.setPlaceCode(placeById.getCode()); - Double price = (materialById.getPrice() / 100) * recordMinP.getQuantity(); + Double price = (materialById.getPrice()) * recordMinP.getQuantity(); BigDecimal bg = new BigDecimal(price); price = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); recordMinP.setPrice(price); diff --git a/src/main/resources/templates/pages/application/application-in.html b/src/main/resources/templates/pages/application/application-in.html index 892eaa45..94c9cb2c 100644 --- a/src/main/resources/templates/pages/application/application-in.html +++ b/src/main/resources/templates/pages/application/application-in.html @@ -101,7 +101,7 @@ -
+
-
+
@@ -356,10 +355,15 @@ var code = obj.value; // 获取对应元素 var parent = obj.parentNode.parentNode.parentNode.parentNode; - var children = parent.childNodes[5]; - var materialItem = children.childNodes[3].childNodes[1].childNodes; + var materialChildren = parent.childNodes[5]; + var priceChildren = parent.childNodes[9]; + // 物料条目 + var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; + // 单价条目 + var priceItem = priceChildren.childNodes[3].childNodes; + var priceValue = priceItem[1]; var req = {}; req.code = code; req.type = "in"; @@ -375,10 +379,12 @@ layer.msg("没有该编码,请确认是否输入正确"); materialName.value = ""; materialId.value = ""; + priceValue.value = ""; obj.value = ""; }else{ materialName.value = d.mname; materialId.value = d.id; + priceValue.value = d.price; } } }); @@ -389,6 +395,7 @@ var parent = obj.parentNode.parentNode.parentNode.parentNode; var parentId = parent.id; var codeChildren = parent.childNodes[7]; + var priceChildren = parent.childNodes[9]; var materialChildren = parent.childNodes[5]; var codeItem = codeChildren.childNodes[3].childNodes[1]; var codeValue = codeItem.childNodes[1]; @@ -396,6 +403,9 @@ var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; var mname = materialName.value; + // 单价条目 + var priceItem = priceChildren.childNodes[3].childNodes; + var priceValue = priceItem[1]; layer.open({ type: 2, title: '弹窗内容', @@ -420,6 +430,7 @@ code = ""; } codeValue.value = code; + priceValue.value = material.price; } }); @@ -471,8 +482,130 @@ }); }; + + // 用于重新渲染该页面 + Coverpage = function (num, obj) { + var parent = $("#cardParent"); + // 获取待添加父类 + NewIdNumber = num; + if (num === 0) { // 如果是第一个 + NewIdNumber = ""; + } + var depositoryItem = ` +
+ +
+ + + + +
+
+ `; + if (scanValue.depository !== undefined && scanValue.depository !== null && scanValue.depository !== "") { + let depository = scanValue.depository; + // 如果扫描了仓库 + depositoryItem = `
+ +
+ + + + +
+
`; + } + + if (scanValue.place !== undefined && scanValue.place !== null && scanValue.place !== "") { + // 如果扫描了库位 + let place = scanValue.place; + depositoryItem = `
+ +
+ + + + +
+
`; + + } + var firstItem = + // 前半部分 + `
+
+ +
+ +
+
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
`; + + + var lastItem = `
+ +
+ +
+
+ +
`; + // 获取当前高度 + var height = parseInt(($("#stepForm").css('height')).split("px")[0]); + if (NewIdNumber !== "") { + params.push(NewIdNumber) + } + $("#stepForm").css("height", height + 475 + 'px'); + var materialItem = firstItem + depositoryItem + lastItem; // 最终 + $("#btn_sub").prepend(materialItem) + }; // 用于扫码入库 - scanCodeInStorage = function(obj){ + scanCodeInStorage = function(){ layer.open({ type: 2, title: '扫码', @@ -484,12 +617,41 @@ fixed:false, content: '/scanQrCodeIn', end: function () { - miniTab.deleteCurrentByIframe(); + $.ajax({ + url: "/material/application_in_scanQrCode", + type: "get", + dataType: 'json', + contentType: "application/json;charset=utf-8", + success: function (d) { + var data = d.data; + var depository = data["depository"]; + var materialList = data["materialList"]; + var place = data["place"]; + if (depository !== undefined && depository !== null && depository !== "") { + // 如果扫描到仓库 + scanValue.depository = depository; + } + if (place !== undefined && place !== null && place !== "") { + // 如果扫描到库位 + scanValue.place = place; + } + if (materialList.length > 0) { + for (let i = 1; i <= materialList.length; i++) { + Coverpage(i, materialList[i-1]); + } + } else { + var material = {}; + material.mname = ''; + material.mid = ''; + material.code = ''; + Coverpage(0, material); + } + } + }) } }) }; - // 用于打开仓库树形菜单 openDepositoryTree = function (obj) { var parent = obj.parentNode.parentNode.parentNode; @@ -506,6 +668,9 @@ content: '/selectDepositoryByCard?type=1&clickObj='+parentId, }); } + + + }) diff --git a/src/main/resources/templates/pages/scanQrCode/ScanQrCodeIn.html b/src/main/resources/templates/pages/scanQrCode/ScanQrCodeIn.html index 14268ce0..32e6663e 100644 --- a/src/main/resources/templates/pages/scanQrCode/ScanQrCodeIn.html +++ b/src/main/resources/templates/pages/scanQrCode/ScanQrCodeIn.html @@ -100,17 +100,23 @@ if (vue.materialList.length > 0) { // 如果有物料 vue.temporaryScanValue(params); // 将数据暂存至redis中 - vue.chooseIn(); // 弹出选择框 + // 关闭当前页 + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); } else { // 如果没有 layer.confirm("暂未选择物料,是否继续扫描", { btn:["继续","取消"] },function () { // 继续 vue.turnCameraOn(); // 继续扫描 - layer.close(layer.index); // 关闭弹窗 + // 关闭当前页 + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); },function () { // 取消 vue.temporaryScanValue(params); // 将数据暂存 - vue.chooseIn(); // 弹出选择框 + // 关闭当前页 + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); }) } } @@ -123,7 +129,9 @@ if (vue.materialList.length > 0) { // 如果有物料 vue.temporaryScanValue(params); // 将数据暂存至redis中 - vue.chooseIn(); // 弹出选择框 + // 关闭当前页 + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); } else { // 如果没有 layer.confirm("当前并未扫描物料,是否继续扫描", @@ -134,7 +142,9 @@ }, function () { vue.temporaryScanValue(params); // 将数据暂存 - vue.chooseIn(); // 弹出选择框 + // 关闭当前页 + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); } ) } @@ -158,8 +168,9 @@ vue.temporaryScanValue(params); // 将物料暂存 if ( vue.depository !== null || vue.place !== null) { // 如果已经扫描了仓库或库位 - // 弹出选择框 - vue.chooseIn(); + // 关闭当前页 + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); } else { // 如果没有扫描仓库或库位 @@ -168,8 +179,9 @@ btn: ["继续", "取消"] }, function () {// 继续 - // 弹出选择框 - vue.chooseIn(); + // 关闭当前页 + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); }, function () { // 取消当前操作 vue.turnCameraOn(); // 继续扫描 @@ -241,24 +253,6 @@ contentType: "application/json;charset=utf-8", data: JSON.stringify(params) }); - }, - // 弹出入库|出库选择框 - chooseIn(){ - layer.open({ - type: 2, - title: '入库', - skin: 'layui-layer-rim', - maxmin: true, - shadeClose: true, //点击遮罩关闭层 - area: ['100%', '100%'], - move: '.layui-layer-title', - fixed: false, - content: '/application_in_scanQrCode', - end:function () { - var index = parent.layer.getFrameIndex(window.name); - parent.layer.close(index); - } - }) } } diff --git a/target/classes/templates/pages/application/application-in.html b/target/classes/templates/pages/application/application-in.html index 892eaa45..94c9cb2c 100644 --- a/target/classes/templates/pages/application/application-in.html +++ b/target/classes/templates/pages/application/application-in.html @@ -101,7 +101,7 @@
-
+
-
+
@@ -356,10 +355,15 @@ var code = obj.value; // 获取对应元素 var parent = obj.parentNode.parentNode.parentNode.parentNode; - var children = parent.childNodes[5]; - var materialItem = children.childNodes[3].childNodes[1].childNodes; + var materialChildren = parent.childNodes[5]; + var priceChildren = parent.childNodes[9]; + // 物料条目 + var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; + // 单价条目 + var priceItem = priceChildren.childNodes[3].childNodes; + var priceValue = priceItem[1]; var req = {}; req.code = code; req.type = "in"; @@ -375,10 +379,12 @@ layer.msg("没有该编码,请确认是否输入正确"); materialName.value = ""; materialId.value = ""; + priceValue.value = ""; obj.value = ""; }else{ materialName.value = d.mname; materialId.value = d.id; + priceValue.value = d.price; } } }); @@ -389,6 +395,7 @@ var parent = obj.parentNode.parentNode.parentNode.parentNode; var parentId = parent.id; var codeChildren = parent.childNodes[7]; + var priceChildren = parent.childNodes[9]; var materialChildren = parent.childNodes[5]; var codeItem = codeChildren.childNodes[3].childNodes[1]; var codeValue = codeItem.childNodes[1]; @@ -396,6 +403,9 @@ var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; var mname = materialName.value; + // 单价条目 + var priceItem = priceChildren.childNodes[3].childNodes; + var priceValue = priceItem[1]; layer.open({ type: 2, title: '弹窗内容', @@ -420,6 +430,7 @@ code = ""; } codeValue.value = code; + priceValue.value = material.price; } }); @@ -471,8 +482,130 @@ }); }; + + // 用于重新渲染该页面 + Coverpage = function (num, obj) { + var parent = $("#cardParent"); + // 获取待添加父类 + NewIdNumber = num; + if (num === 0) { // 如果是第一个 + NewIdNumber = ""; + } + var depositoryItem = ` +
+ +
+ + + + +
+
+ `; + if (scanValue.depository !== undefined && scanValue.depository !== null && scanValue.depository !== "") { + let depository = scanValue.depository; + // 如果扫描了仓库 + depositoryItem = `
+ +
+ + + + +
+
`; + } + + if (scanValue.place !== undefined && scanValue.place !== null && scanValue.place !== "") { + // 如果扫描了库位 + let place = scanValue.place; + depositoryItem = `
+ +
+ + + + +
+
`; + + } + var firstItem = + // 前半部分 + `
+
+ +
+ +
+
+ + +
+ +
+
+
+ +
+
+ + +
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
`; + + + var lastItem = `
+ +
+ +
+
+ +
`; + // 获取当前高度 + var height = parseInt(($("#stepForm").css('height')).split("px")[0]); + if (NewIdNumber !== "") { + params.push(NewIdNumber) + } + $("#stepForm").css("height", height + 475 + 'px'); + var materialItem = firstItem + depositoryItem + lastItem; // 最终 + $("#btn_sub").prepend(materialItem) + }; // 用于扫码入库 - scanCodeInStorage = function(obj){ + scanCodeInStorage = function(){ layer.open({ type: 2, title: '扫码', @@ -484,12 +617,41 @@ fixed:false, content: '/scanQrCodeIn', end: function () { - miniTab.deleteCurrentByIframe(); + $.ajax({ + url: "/material/application_in_scanQrCode", + type: "get", + dataType: 'json', + contentType: "application/json;charset=utf-8", + success: function (d) { + var data = d.data; + var depository = data["depository"]; + var materialList = data["materialList"]; + var place = data["place"]; + if (depository !== undefined && depository !== null && depository !== "") { + // 如果扫描到仓库 + scanValue.depository = depository; + } + if (place !== undefined && place !== null && place !== "") { + // 如果扫描到库位 + scanValue.place = place; + } + if (materialList.length > 0) { + for (let i = 1; i <= materialList.length; i++) { + Coverpage(i, materialList[i-1]); + } + } else { + var material = {}; + material.mname = ''; + material.mid = ''; + material.code = ''; + Coverpage(0, material); + } + } + }) } }) }; - // 用于打开仓库树形菜单 openDepositoryTree = function (obj) { var parent = obj.parentNode.parentNode.parentNode; @@ -506,6 +668,9 @@ content: '/selectDepositoryByCard?type=1&clickObj='+parentId, }); } + + + })