From 285ee43629239ef7d6d8817c08575e410dcb199e Mon Sep 17 00:00:00 2001 From: erdanergou Date: Fri, 30 Sep 2022 07:56:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=BA=93=E4=BD=8D=E7=9B=B8?= =?UTF-8?q?=E5=BA=94=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DepositoryRecordController.java | 79 ++--- .../controller/PageController.java | 62 +++- .../entity/MaterialAndPlace.java | 39 +++ .../entity/TransferRecord.java | 23 ++ .../mapper/TransferRecordMapper.xml | 16 +- .../impl/DepositoryRecordServiceImpl.java | 142 +++++--- .../utils/CreateQrCodeUtil.java | 3 + src/main/resources/templates/index.html | 14 +- .../pages/application/application-in.html | 33 +- .../application/application-transfer.html | 58 +++- .../pages/material/material-view.html | 6 +- .../material/selectDepositoryByCard.html | 3 +- .../templates/pages/place/place_edit.html | 12 +- .../templates/pages/place/place_list_add.html | 143 ++++++++ .../templates/pages/uniApp/scanQrCode.html | 315 ++++++++++++++++++ .../pages/warehouse/warehouse_view.html | 6 + target/classes/.restartTriggerFile | 0 .../depository_manage (2).kotlin_module | Bin 0 -> 16 bytes .../mapper/TransferRecordMapper.xml | 16 +- target/classes/templates/index.html | 14 +- .../pages/application/application-in.html | 33 +- .../pages/application/application-review.html | 4 + .../application/application-transfer.html | 58 +++- .../application/form-step-look_back.html | 4 + .../pages/material/material-view.html | 6 +- .../material/selectDepositoryByCard.html | 3 +- .../templates/pages/place/place_edit.html | 12 +- .../templates/pages/place/place_list_add.html | 143 ++++++++ .../templates/pages/uniApp/scanQrCode.html | 315 ++++++++++++++++++ .../pages/warehouse/warehouse_view.html | 6 + 30 files changed, 1402 insertions(+), 166 deletions(-) create mode 100644 src/main/java/com/dreamchaser/depository_manage/entity/MaterialAndPlace.java create mode 100644 src/main/resources/templates/pages/place/place_list_add.html create mode 100644 src/main/resources/templates/pages/uniApp/scanQrCode.html create mode 100644 target/classes/.restartTriggerFile create mode 100644 target/classes/META-INF/depository_manage (2).kotlin_module create mode 100644 target/classes/templates/pages/place/place_list_add.html create mode 100644 target/classes/templates/pages/uniApp/scanQrCode.html diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index 9c600c49..8cfdf6e4 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -109,22 +109,13 @@ public class DepositoryRecordController { // 获取库位id Integer placeId = ObjectFormatUtil.toInteger(map.get("placeId")); if(placeId == -1) {// 如果插入到仓库 - integer += depositoryRecordService.applicationIn(map); + map.put("placeId",0); // 到默认库位 + integer += depositoryRecordService.applicationInPlace(map); }else{ // 如果具体到库位 - Integer flag = depositoryRecordService.applicationIn(map); - if(flag != 1){ - return new RestResponse("",666,new StatusInfo("存储失败","请重新选择存储位")); - }else{ - Integer applicationInPlace = depositoryRecordService.applicationInPlace(map); - if(applicationInPlace == 1){ - integer += flag; - }else{ - map.put("delete","in"); - depositoryRecordService.deleteApplicaionInPlace(map); - return new RestResponse("",666,new StatusInfo("存储失败","超出最大存储量或该库位已有物品,请重新选择存储位")); - } + Integer flag = depositoryRecordService.applicationInPlace(map); + if(flag != -1){ + integer += flag; } - } }else{ List errMsg = new ArrayList<>(); @@ -141,54 +132,48 @@ public class DepositoryRecordController { insert.put("code",map.get("code"+temp)); insert.put("price",map.get("price").toString()); if(placeId == -1) { // 如果插入到仓库 - integer += depositoryRecordService.applicationIn(insert); - successMsg.add(insert); + insert.put("placeId",0); + Integer add = depositoryRecordService.applicationInPlace(insert); + if(add == -1){ + errMsg.add(integer); + }else{ + integer += add; + successMsg.add(insert); + } }else{// 如果具体到库位 - Integer flag = depositoryRecordService.applicationIn(insert); - if(flag != 1){ + insert.put("placeId",placeId); + Integer flag = depositoryRecordService.applicationInPlace(insert); + if(flag == -1){ insert.put("err","存储失败,请重新选择存储位"); errMsg.add(insert); }else{ - insert.put("placeId",map.get("placeId"+temp)); - Integer applicationInPlace = depositoryRecordService.applicationInPlace(insert); - if(applicationInPlace == 1){ - integer += flag; - successMsg.add(insert); - }else{ - map.put("delete","in"); - depositoryRecordService.deleteApplicaionInPlace(insert); - insert.put("err","存储失败,超出最大存储量或该库位已有物品"); - errMsg.add(insert); - } + integer += flag; } } } Integer placeId = ObjectFormatUtil.toInteger(map.get("placeId")); if(placeId == -1) {// 如果插入到仓库 - integer += depositoryRecordService.applicationIn(map); - successMsg.add(map); + map.put("placeId",0); + Integer add = depositoryRecordService.applicationInPlace(map); + if(add == -1){ + errMsg.add(map); + }else { + integer+=add; + successMsg.add(map); + } }else{ // 如果具体到库位 - Integer flag = depositoryRecordService.applicationIn(map); - if(flag != 1){ + Integer flag = depositoryRecordService.applicationInPlace(map); + if(flag == -1){ map.put("err","存储失败,请重新选择存储位"); errMsg.add(map); }else{ - Integer applicationInPlace = depositoryRecordService.applicationInPlace(map); - if(applicationInPlace == 1){ - integer += flag; - successMsg.add(map); - }else{ - map.put("delete","in"); - depositoryRecordService.deleteApplicaionInPlace(map); - map.put("err","存储失败,超出最大存储量或该库位已有物品"); - errMsg.add(map); - } + integer += flag; } } result.put("err",errMsg); result.put("success",successMsg); } - if (integer != 0 && params.size() < 1) { + if (integer != 0 && params.size() < 1 && integer != -1) { return CrudUtil.postHandle(integer, 1); }else if(integer != 0 && params.size() > 0){ if(integer == params.size() + 1){ @@ -335,9 +320,9 @@ public class DepositoryRecordController { @PutMapping("/transfer") public RestResponse transfer(@RequestBody Map map, HttpServletRequest request){ UserByPort userToken= (UserByPort) request.getAttribute("userToken"); - UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); +// UserByPort departmentHeadByUser = findDepartmentHeadByUser(userToken); List params = (List) map.get("params"); - map.put("departmenthead",departmentHeadByUser.getId()); +// map.put("departmenthead",departmentHeadByUser.getId()); map.put("applicantId",userToken.getId()); map.put("toId",map.get("depositoryId")); map.remove("depositoryId"); @@ -348,7 +333,7 @@ public class DepositoryRecordController { for (int i = 0; i < params.size(); i++) { Integer temp = params.get(i); Map insert = new HashMap<>(); - insert.put("departmenthead",departmentHeadByUser.getId()); +// insert.put("departmenthead",departmentHeadByUser.getId()); insert.put("applicantId",userToken.getId()); insert.put("toId",map.get("depositoryId"+temp)); insert.put("mid",map.get("mid"+temp)); 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 cda43a40..a8c8cf1c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -10,10 +10,7 @@ import com.dreamchaser.depository_manage.pojo.*; import com.dreamchaser.depository_manage.security.bean.UserToken; import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; import com.dreamchaser.depository_manage.service.*; -import com.dreamchaser.depository_manage.utils.DateUtil; -import com.dreamchaser.depository_manage.utils.HttpUtils; -import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; -import com.dreamchaser.depository_manage.utils.WordUtil; +import com.dreamchaser.depository_manage.utils.*; import com.sun.org.apache.xpath.internal.operations.Mod; import javafx.geometry.Pos; import org.apache.http.protocol.HTTP; @@ -444,10 +441,25 @@ public class PageController { @GetMapping("material_view") - public ModelAndView material_view(Integer id) { + public ModelAndView material_view(Integer id,HttpServletRequest request) { ModelAndView mv = new ModelAndView(); mv.setViewName("pages/material/material-view"); + UserByPort userToken = (UserByPort) request.getAttribute("userToken"); if (id != null) { + Material material = materialService.findMaterialById(id); + Map params = new HashMap<>(); + params.put("mid",material.getId()); + params.put("mname",material.getMname()); + params.put("code",material.getCode()); + params.put("version",material.getVersion()); + String context = JSONObject.toJSONString(params); + String qrCode = ""; + try { + qrCode = CreateQrCodeUtil.createQrCode(context, 200, 200); + } catch (IOException e) { + throw new MyException(e.getMessage()); + } + mv.addObject("qrCode",qrCode); mv.addObject("record", materialService.findMaterialAndTypeById(id)); mv.addObject("materialTypes", materialTypeService.findMaterialTypeAll()); } else { @@ -809,6 +821,20 @@ public class PageController { mv.setViewName("pages/warehouse/warehouse_view"); if (id != null) { Depository depositoryRecordById = depositoryService.findDepositoryRecordById(id); + // 用于二维码存放数据 + Map param = new HashMap<>(); + param.put("code",depositoryRecordById.getCode()); + param.put("id",depositoryRecordById.getId()); + param.put("dname",depositoryRecordById.getDname()); + param.put("introduce",depositoryRecordById.getIntroduce()); + String context = JSONObject.toJSONString(param); + String qrCode = ""; + try { + qrCode = CreateQrCodeUtil.createQrCode(context,200,200); + } catch (IOException e) { + e.printStackTrace(); + } + mv.addObject("qrCode",qrCode); mv.addObject("record", depositoryRecordById); Integer cid = depositoryRecordById.getCid(); List postList = findCompanyBySuperior(cid.toString()); @@ -846,6 +872,27 @@ public class PageController { if (id != null) { mv.addObject("id", id); Place placeById = placeService.findPlaceById(id); + // 用于二维码存放数据 + Map param = new HashMap<>(); + param.put("id",placeById.getId()); + Depository depositoryRecordById = depositoryService.findDepositoryRecordById(placeById.getDid()); + param.put("dname",depositoryRecordById.getDname()); + param.put("code",depositoryRecordById.getCode() +"-"+placeById.getCode()); + List placeAndMaterialByPid = placeService.findPlaceAndMaterialByPid(placeById.getId()); + StringBuilder mname = new StringBuilder(); + for (int i = 0; i < placeAndMaterialByPid.size(); i++) { + Material materialById = materialService.findMaterialById(placeAndMaterialByPid.get(i).getMid()); + mname.append(materialById.getMname()).append(", "); + } + param.put("mname",mname); + String context = JSONObject.toJSONString(param); + String qrCode = ""; + try { + qrCode = CreateQrCodeUtil.createQrCode(context,200,200); + } catch (IOException e) { + e.printStackTrace(); + } + mv.addObject("qrCode",qrCode); mv.addObject("place", placeById); } else { throw new MyException("缺少必要参数!"); @@ -1362,4 +1409,9 @@ public class PageController { return mv; } + @GetMapping("/scanQrCode") + public String scanQrCode(){ + return "pages/uniApp/scanQrCode"; + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/MaterialAndPlace.java b/src/main/java/com/dreamchaser/depository_manage/entity/MaterialAndPlace.java new file mode 100644 index 00000000..31edbba0 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/MaterialAndPlace.java @@ -0,0 +1,39 @@ +package com.dreamchaser.depository_manage.entity; + +import lombok.Data; + +@Data +public class MaterialAndPlace { + /** + * id + */ + private Integer id; + /** + * 物料id + */ + private Integer mid; + /** + * 库位id + */ + private Integer pid; + /** + * 当前库位所处仓库 + */ + private Integer did; + /** + * 库位编码 + */ + private String code; + /** + * 库位最大存储量 + */ + private Integer max; + /** + * 库位最小存储量 + */ + private Integer min; + /** + * 当前存放额度 + */ + private Integer quantity; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/TransferRecord.java b/src/main/java/com/dreamchaser/depository_manage/entity/TransferRecord.java index dcf43025..3035f64c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/TransferRecord.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/TransferRecord.java @@ -35,6 +35,14 @@ public class TransferRecord implements java.io.Serializable { * 申请人 */ private Integer applicantId; + /** + * 转出库位 + */ + private Integer fromPlaceId; + /** + * 转入库位 + */ + private Integer toPlaceId; /* This code was generated by TableGo tools, mark 1 end. */ @@ -121,5 +129,20 @@ public class TransferRecord implements java.io.Serializable { this.applicantId = applicantId; } + public Integer getFromPlaceId() { + return fromPlaceId; + } + + public void setFromPlaceId(Integer fromPlaceId) { + this.fromPlaceId = fromPlaceId; + } + + public Integer getToPlaceId() { + return toPlaceId; + } + + public void setToPlaceId(Integer toPlaceId) { + this.toPlaceId = toPlaceId; + } /* This code was generated by TableGo tools, mark 2 end. */ } \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml index c63c01ea..eb1e794d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml @@ -12,10 +12,12 @@ + + - tr.id, tr.from_id, tr.to_id,tr.mid,tr.applicantTime,tr.applicantId + tr.id, tr.from_id, tr.to_id,tr.mid,tr.applicantTime,tr.applicantId,tr.from_place_id,tr.to_place_id INSERT INTO transfer_record ( - id, from_id, to_id,quantity,mid,applicantTime,applicantId + id, from_id, to_id,quantity,mid,applicantTime,applicantId,from_place_id,to_place_id ) VALUES ( #{id}, #{fromId}, @@ -75,7 +83,9 @@ #{quantity}, #{mid}, #{applicantTime}, - #{applicantId} + #{applicantId}, + #{fromPlaceId}, + #{toPlaceId} ) diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index ea42a018..2654410c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -247,49 +247,46 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 获取当前物料基本信息 Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); Material materialById = materialMapper.findMaterialById(mid); - // 获取当前物料在当前仓库是否有库存记录 - Map param = new HashMap<>(); - param.put("code", materialById.getCode()); - param.put("mname", materialById.getMname()); - param.put("depositoryId", placeById.getDid()); - List inventory = materialMapper.findInventory(param); - if (inventory.size() == 0) { - throw new MyException("未知错误,联系开发人员"); - } - Material material = inventory.get(0); - if (placeById.getMid() != null) { - // 如果当前库位有物品 - if (quantity > placeById.getMax() - placeById.getQuantity()) { - return -1; - }else { - // 添加库存 - Map insert = new HashMap<>(); - insert.put("mid",material.getId()); - insert.put("pid", placeById.getId()); - insert.put("quantity", quantity); - // 修改该库位容量 - Map update = new HashMap<>(); - update.put("id", placeById.getId()); - update.put("quantity", quantity + placeById.getQuantity()); - placeMapper.UpdatePlace(update); - return placeMapper.addMaterialOnPlace(insert); - } + if(placeById.getMax() - placeById.getQuantity() > quantity){ + // 如果当前库位还能存放 - } else { - if (quantity > placeById.getMax() - placeById.getQuantity()) { + // 入库 + Integer integer = applicationIn(map); + if(integer != 1){ return -1; - } else { - Map update = new HashMap<>(); - update.put("id", placeById.getId()); - update.put("quantity", quantity + placeById.getQuantity()); - placeMapper.UpdatePlace(update); - // 添加库存 - Map insert = new HashMap<>(); - insert.put("mid",material.getId()); - insert.put("pid", placeById.getId()); - insert.put("quantity", quantity); - return placeMapper.addMaterialOnPlace(insert); } + // 获取当前库存记录 + Map param = new HashMap<>(); + param.put("code", materialById.getCode()); + param.put("mname", materialById.getMname()); + if(placeId == 0){ + param.put("depositoryId",map.get("depositoryId")); + }else { + param.put("depositoryId", placeById.getDid()); + } + List inventory = materialMapper.findInventory(param); + Material material = inventory.get(0); + + Map insert = new HashMap<>(); + insert.put("mid",material.getId()); + insert.put("pid",placeById.getId()); + + MaterialAndPlace placeAndMaterialByMidAndPid = placeMapper.findPlaceAndMaterialByMidAndPid(insert); + if(placeAndMaterialByMidAndPid == null){ + // 如果没有当前记录 + insert.put("quantity",quantity); + // 插入记录 + placeMapper.addMaterialOnPlace(insert); + }else{ + placeAndMaterialByMidAndPid.setQuantity(placeAndMaterialByMidAndPid.getQuantity() + quantity); + // 修改数量 + placeMapper.updateMaterialAndPlace(placeAndMaterialByMidAndPid); + } + // 修改当前库位数量 + placeById.setQuantity(placeById.getQuantity() + quantity); + return placeMapper.UpdatePlace(placeById); + }else{ + return -1; } } @@ -361,6 +358,15 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("price", material.getPrice() * quantity * 100); map.put("istransfer", 1); map.put("fromId", material.getDepositoryId()); + String fromPlaceId = (String) map.get("fromPlaceId"); + String toPlaceId = (String) map.get("placeId"); + if("".equals(fromPlaceId) || "0".equals(fromPlaceId)){ + map.put("fromPlaceId",0); + } + map.put("toPlaceId",toPlaceId) ; + if("".equals(toPlaceId) || "0".equals(fromPlaceId)){ + map.put("toPlaceId",0); + } //清除主键 // depositoryRecordMapper.insertApplicationInRecord(map); transferRecordMapper.addTransferRecord(map); @@ -368,6 +374,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("transferId", transferRecordByCondition.getId()); Depository depositoryRecordById = depositoryMapper.findDepositoryRecordById(material.getDepositoryId()); map.put("code", createCode(depositoryRecordById.getDname(), "outOrderNumber")); + String placeId = (String) map.get("placeId"); + if("".equals(placeId)){ + map.put("placeId",0); + } //清除主键 return depositoryRecordMapper.insertApplicationOutRecord(map); } @@ -382,6 +392,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { @Transactional public Integer review(Map map, Integer userid) { ApplicationOutRecordP record = depositoryRecordMapper.findApplicationOutRecordPById(ObjectFormatUtil.toInteger(map.get("id"))); + Object id = map.get("id"); + map.remove("id"); if (map.containsKey("departmentheadPass")) { String simpleTime = DateUtil.getSimpleTime(new Date()); map.put("departmentheadTime", DateUtil.DateTimeToTimeStamp(simpleTime)); @@ -399,7 +411,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { } else { map.put("state", "部门负责人审核未通过"); } - } else { + } + else { String simpleTime = DateUtil.getSimpleTime(new Date()); map.put("depositoryManagerTime", DateUtil.DateTimeToTimeStamp(simpleTime)); map.put("depositoryManager", userid); @@ -409,7 +422,12 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { Integer depositoryManagerPass = (Integer) map.get("depositoryManagerPass"); if (depositoryManagerPass == 1) { boolean flag = true; + Integer istransfer = record.getIstransfer(); Integer placeId = record.getPlaceId(); + if(istransfer == 1){ + TransferRecord transferRecordById = transferRecordMapper.findTransferRecordById(record.getTransferId()); + placeId = transferRecordById.getFromPlaceId();// 获取转出库位 + } MaterialAndPlace placeAndMaterialByMidAndPid = null; if(placeId != 0){ Map params = new HashMap<>(); @@ -462,6 +480,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("state", "仓库管理员审核未通过"); } } + map.put("id",id); return depositoryRecordMapper.updateApplicationOutRecord(map); } @@ -472,6 +491,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { */ public void transferMaterial(Map map) { Map param = new HashMap<>(); + // 获取转移详情 Integer transferId = ObjectFormatUtil.toInteger(map.get("transferId")); TransferRecord transferRecor = transferRecordMapper.findTransferRecordById(transferId); Integer mid = transferRecor.getMid(); @@ -480,10 +500,14 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { param.put("depositoryId", transferRecor.getToId()); List materiallist = materialMapper.findMaterialByCondition(param); if (materiallist.size() > 0) { + // 如果在该仓库 + map.put("price",material.getPrice().toString()); map.put("depositoryId", transferRecor.getToId()); - applicationIn(map); + map.put("placeId",transferRecor.getToPlaceId()); + applicationInPlace(map); map.put("mid", materiallist.get(0).getId()); } else { + // 如果不在该仓库,插入一条新记录 Map insert = new HashMap<>(); Material materialById = materialMapper.findMaterialById(mid); Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); @@ -499,6 +523,40 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { insert.put("amounts", quantity * materialById.getPrice()); insert.put("depositoryCode", materialById.getDepositoryCode()); materialMapper.insertMaterial(insert); + + // 查询该记录 + Map temp = new HashMap<>(); + temp.put("code",materialById.getCode()); + temp.put("depositoryId",transferRecor.getToId()); + temp.put("mname",materialById.getMname()); + List inventoryList = materialMapper.findInventory(temp); + // 获取该库存记录 + Material inventory = inventoryList.get(0); + + Map fromPlaceTemp = new HashMap<>(); + Map toPlaceTemp = new HashMap<>(); + // 转入库位 + Place toPlace = placeMapper.findPlaceById(transferRecor.getToPlaceId()); + toPlace.setQuantity(toPlace.getQuantity() + quantity); + placeMapper.UpdatePlace(toPlace); // 修改转入库位额度 + toPlaceTemp.put("mid",materialById.getId()); + toPlaceTemp.put("pid",toPlace.getId()); + toPlaceTemp.put("quantity",quantity); + // 获取转入物料具体所在库位 + MaterialAndPlace toMaterialAndPlace = placeMapper.findPlaceAndMaterialByMidAndPid(toPlaceTemp); + if(toMaterialAndPlace == null){ + placeMapper.addMaterialOnPlace(toPlaceTemp); + } + // 转出库位 + Place fromPlace = placeMapper.findPlaceById(transferRecor.getFromPlaceId()); + fromPlace.setQuantity(fromPlace.getQuantity() - quantity); + placeMapper.UpdatePlace(fromPlace); // 修改转出库位额度 + fromPlaceTemp.put("mid",materialById.getId()); + fromPlaceTemp.put("pid",toPlace.getId()); + // 获取转出物料具体所在库位 + MaterialAndPlace fromMaterialAndPlace = placeMapper.findPlaceAndMaterialByMidAndPid(fromPlaceTemp); + fromMaterialAndPlace.setQuantity(fromMaterialAndPlace.getQuantity() - quantity); + placeMapper.updateMaterialAndPlace(fromMaterialAndPlace); } } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java index 3ae32420..4d546376 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java @@ -54,4 +54,7 @@ public class CreateQrCodeUtil { } return null; } + + + } diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 66587f60..b313e2a7 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -153,12 +153,22 @@ pageAnim: true, // iframe窗口动画 maxTabNum: 20, // 最大的tab打开数量 }; - options.iniUrl= "/index/menus?uid="+uid // 初始化接口 + options.iniUrl= "/index/menus?uid="+uid; // 初始化接口 miniAdmin.render(options); $("#scan").on("click",function () { - alert("扫一扫") + layer.open({ + type: 2, + title: '弹窗内容', + skin: 'layui-layer-rim', + maxmin: true, + shadeClose: true, //点击遮罩关闭层 + area: ['70%', '70%'], + move : '.layui-layer-title', + fixed:false, + content: '/scanQrCode', + }) }); diff --git a/src/main/resources/templates/pages/application/application-in.html b/src/main/resources/templates/pages/application/application-in.html index 4f50dba8..6c207ada 100644 --- a/src/main/resources/templates/pages/application/application-in.html +++ b/src/main/resources/templates/pages/application/application-in.html @@ -186,22 +186,27 @@ success: function (data) { layer.close(this.layerIndex); if (data.status >= 300) { - // layer.msg(data.statusInfo.detail);//失败的表情 + console.log(data) var d = data.data; - var err = d["err"]; - var success = d["success"]; - var errMsg = ""; - for (let i = 0; i < err.length; i++) { - errMsg += "物料编码: " - errMsg += err[i]["code"]; + if(d === ""){ + layer.msg(data.statusInfo.detail); + }else{ + var err = d["err"]; + var success = d["success"]; + var errMsg = ""; + for (let i = 0; i < err.length; i++) { + errMsg += "物料编码: " + errMsg += err[i]["code"]; + } + errMsg += "添加失败,请选择新仓库或库位"; + layer.msg(errMsg,{ + icon:5, + time:1000 + },function () { + step.next('#stepForm'); + }); } - errMsg += "添加失败,请选择新仓库或库位"; - layer.msg(errMsg,{ - icon:1, - time:500 - },function () { - step.next('#stepForm'); - }); + } else { layer.msg("申请提交成功", { icon: 6,//成功的表情 diff --git a/src/main/resources/templates/pages/application/application-transfer.html b/src/main/resources/templates/pages/application/application-transfer.html index 56f7e973..067e4bba 100644 --- a/src/main/resources/templates/pages/application/application-transfer.html +++ b/src/main/resources/templates/pages/application/application-transfer.html @@ -59,6 +59,12 @@ class="layui-input" lay-verify="required"> +
+ +
+ +
+
@@ -66,11 +72,15 @@
- +
- - + +
@@ -234,6 +244,12 @@ class="layui-input" lay-verify="required">
+
+ +
+ +
+
@@ -305,10 +321,14 @@ var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; + var req = {}; + req.code = code; + req.type = "out"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:req, contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; @@ -318,8 +338,23 @@ materialId.value = ""; obj.value = ""; }else{ - materialName.value = d.mname; - materialId.value = d.id; + req.mid = d.id; + $.ajax({ + url: "/place/findPlaceByMid", + type: "post", + dataType: 'json', + data:JSON.stringify(req), + contentType: "application/json;charset=utf-8", + success:function (res) { + $('#place').empty(); + $.each(res.data, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); + materialName.value = d.mname; + materialId.value = d.id; + } + }); } } }); @@ -344,7 +379,7 @@ maxmin: true, shadeClose: true, //点击遮罩关闭层 area: ['70%', '70%'], - content: '/selectMaterialByCard?mname='+mname+'&type=1&clickObj='+parentId, + content: '/selectMaterialByCard?mname='+mname+'&type=2&clickObj='+parentId, move : '.layui-layer-title', fixed:false, end: function () { @@ -355,11 +390,18 @@ dataType: 'json', contentType: "application/json;charset=utf-8", success: function (d) { - var code = d.data.code; + var material = d.data.materialById; + var placeList = d.data.placeList; + var code = material.code; if(code === undefined){ code = ""; } codeValue.value = code; + $('#place').empty(); + $.each(placeList, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); } }); diff --git a/src/main/resources/templates/pages/material/material-view.html b/src/main/resources/templates/pages/material/material-view.html index af559572..d127acfb 100644 --- a/src/main/resources/templates/pages/material/material-view.html +++ b/src/main/resources/templates/pages/material/material-view.html @@ -62,7 +62,7 @@
- +
+
+ + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/uniApp/scanQrCode.html b/src/main/resources/templates/pages/uniApp/scanQrCode.html new file mode 100644 index 00000000..0ebde863 --- /dev/null +++ b/src/main/resources/templates/pages/uniApp/scanQrCode.html @@ -0,0 +1,315 @@ + + + + + + + diff --git a/src/main/resources/templates/pages/warehouse/warehouse_view.html b/src/main/resources/templates/pages/warehouse/warehouse_view.html index 55077983..707bcfa4 100644 --- a/src/main/resources/templates/pages/warehouse/warehouse_view.html +++ b/src/main/resources/templates/pages/warehouse/warehouse_view.html @@ -82,6 +82,12 @@
+
+ +
+ +
+
+
+ +
+ +
+
@@ -66,11 +72,15 @@
- +
- - + +
@@ -234,6 +244,12 @@ class="layui-input" lay-verify="required">
+
+ +
+ +
+
@@ -305,10 +321,14 @@ var materialItem = children.childNodes[3].childNodes[1].childNodes; var materialName = materialItem[1]; var materialId = materialName.parentNode.parentNode.childNodes[3]; + var req = {}; + req.code = code; + req.type = "out"; $.ajax({ - url: "/material/findMatrialByCode?code=" + code, + url: "/material/findMatrialByCode", type: "get", dataType: 'json', + data:req, contentType: "application/json;charset=utf-8", success: function (d) { var d = d.data; @@ -318,8 +338,23 @@ materialId.value = ""; obj.value = ""; }else{ - materialName.value = d.mname; - materialId.value = d.id; + req.mid = d.id; + $.ajax({ + url: "/place/findPlaceByMid", + type: "post", + dataType: 'json', + data:JSON.stringify(req), + contentType: "application/json;charset=utf-8", + success:function (res) { + $('#place').empty(); + $.each(res.data, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); + materialName.value = d.mname; + materialId.value = d.id; + } + }); } } }); @@ -344,7 +379,7 @@ maxmin: true, shadeClose: true, //点击遮罩关闭层 area: ['70%', '70%'], - content: '/selectMaterialByCard?mname='+mname+'&type=1&clickObj='+parentId, + content: '/selectMaterialByCard?mname='+mname+'&type=2&clickObj='+parentId, move : '.layui-layer-title', fixed:false, end: function () { @@ -355,11 +390,18 @@ dataType: 'json', contentType: "application/json;charset=utf-8", success: function (d) { - var code = d.data.code; + var material = d.data.materialById; + var placeList = d.data.placeList; + var code = material.code; if(code === undefined){ code = ""; } codeValue.value = code; + $('#place').empty(); + $.each(placeList, function (index, item) { + $('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素 + }); + form.render(); } }); diff --git a/target/classes/templates/pages/application/form-step-look_back.html b/target/classes/templates/pages/application/form-step-look_back.html index 1a10557e..a570d70a 100644 --- a/target/classes/templates/pages/application/form-step-look_back.html +++ b/target/classes/templates/pages/application/form-step-look_back.html @@ -38,6 +38,10 @@ 仓库名称 外芯仓库 + + 所处库位 + 0000 + 数量 409 diff --git a/target/classes/templates/pages/material/material-view.html b/target/classes/templates/pages/material/material-view.html index af559572..d127acfb 100644 --- a/target/classes/templates/pages/material/material-view.html +++ b/target/classes/templates/pages/material/material-view.html @@ -62,7 +62,7 @@
- +
+
+ + + + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/uniApp/scanQrCode.html b/target/classes/templates/pages/uniApp/scanQrCode.html new file mode 100644 index 00000000..0ebde863 --- /dev/null +++ b/target/classes/templates/pages/uniApp/scanQrCode.html @@ -0,0 +1,315 @@ + + + + + + + diff --git a/target/classes/templates/pages/warehouse/warehouse_view.html b/target/classes/templates/pages/warehouse/warehouse_view.html index 55077983..707bcfa4 100644 --- a/target/classes/templates/pages/warehouse/warehouse_view.html +++ b/target/classes/templates/pages/warehouse/warehouse_view.html @@ -82,6 +82,12 @@
+
+ +
+ +
+