From 9c199e1f139b2e6eca02addd1eb6d55d11b41475 Mon Sep 17 00:00:00 2001 From: mrzhssss <pro6@qq.com> Date: 星期一, 21 三月 2022 14:41:49 +0800 Subject: [PATCH] 修复bug --- src/main/resources/mapper/OrderMapper.xml | 2 src/main/java/zy/cloud/wms/manager/controller/OrderController.java | 14 src/main/webapp/views/pickout/pickout.html | 152 ++++++++++- src/main/java/zy/cloud/wms/manager/entity/Pickout.java | 12 src/main/webapp/static/js/ioWorks/matQuery.js | 2 src/main/java/zy/cloud/wms/manager/controller/WorkController.java | 12 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | 168 ++++++++++-- src/main/webapp/static/js/pickout/pickout.js | 190 +++++++------ src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java | 17 - src/main/java/zy/cloud/wms/manager/service/WorkService.java | 1 src/main/java/zy/cloud/wms/manager/controller/PickoutController.java | 6 src/main/java/zy/cloud/wms/common/service/MainService.java | 172 +++++++++++++ 12 files changed, 576 insertions(+), 172 deletions(-) diff --git a/src/main/java/zy/cloud/wms/common/service/MainService.java b/src/main/java/zy/cloud/wms/common/service/MainService.java index 165c823..2e299b5 100644 --- a/src/main/java/zy/cloud/wms/common/service/MainService.java +++ b/src/main/java/zy/cloud/wms/common/service/MainService.java @@ -37,6 +37,10 @@ private ReceiveService receiveService; @Autowired private ReceiveDetlService receiveDetlService; + @Autowired + private PickoutService pickoutService; + @Autowired + private PickoutDetlService pickoutDetlService; @Transactional public List<StoPreTab> stockOutPreview(OrderStoDto orderStoDto, Long hostId) { @@ -186,7 +190,79 @@ }); return res; } + public List<StoPreTab> orderOutPreview(OrderStoDto orderStoDto, Long hostId){ + if (Cools.isEmpty(orderStoDto) || Cools.isEmpty(orderStoDto.getDtos())) { + throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + List<StoPreTab> res = new ArrayList<>(); + // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶� +// locDetlService.checkLocDetlCount(orderStoDto.getDtos()); + for (MatnrDto matnrDto : orderStoDto.getDtos()) { + // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪 + Mat mat = matService.selectByMatnr(hostId, matnrDto.getMatnr()); + if (null == mat) { + throw new CoolException(matnrDto.getMatnr() + "鐗╂枡灏氭湭鏇存柊銆�" + orderStoDto.getOrderNo() +"鍗曟嵁鍥犳涓柇锛�"); + } + + Double sumAnfme = Optional.ofNullable(locDetlService.selectCountByMatnr(mat.getMatnr(), hostId)).orElse(0.0D); + double lack = 0.0D; + // 缂鸿揣 + if (sumAnfme < matnrDto.getCount()) { + lack = matnrDto.getCount() - sumAnfme; + // 瑙嗗浘瀵硅薄 + StoPreTab tab = new StoPreTab(); + tab.setTitle(mat.getMaktx() + "锛�" + mat.getMatnr() + "锛�"); + tab.setMatnr(mat.getMatnr()); + tab.setMaktx(mat.getMaktx()); + tab.setAnfme(matnrDto.getCount()); + tab.setLocNo("缂鸿揣"); + tab.setTotal(lack); + tab.setReduce(lack); + tab.setRemQty(0.0D); + tab.setPrior(false); + tab.setPrior$("脳"); + tab.setType(0); + res.add(tab); + } + + // 鏌ヨ瀛樻湁褰撳墠鐗╂枡鐨勮揣浣� + List<LocDetl> locDetls = locDetlService.findOfSort(hostId, mat.getMatnr()); + double issued = Optional.of(matnrDto.getCount() - lack).orElse(0.0D) ; + double anfme = issued; + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + // 瑙嗗浘瀵硅薄 + StoPreTab tab = new StoPreTab(); + tab.setTitle(mat.getMaktx() + "锛�" + mat.getMatnr() + "锛�"); + tab.setMatnr(mat.getMatnr()); + tab.setMaktx(mat.getMaktx()); + tab.setAnfme(matnrDto.getCount()); + + tab.setLocNo(locDetl.getLocNo()); + tab.setNodeId(locDetl.getNodeId()); + tab.setTotal(locDetl.getAnfme()); + tab.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); + tab.setRemQty(tab.getTotal() - tab.getReduce()); + tab.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr())); + tab.setPrior$(tab.getPrior()?"鉁�":"脳"); + tab.setType(1); + res.add(tab); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + } + } + + } + res.sort(new Comparator<StoPreTab>() { + @Override + public int compare(StoPreTab o1, StoPreTab o2) { +// return o1.getMatnr().length() - o2.getMatnr().length(); + return (int) (o1.getAnfme() - o2.getAnfme()); + } + }); + return res; + } @Transactional public void stockOutProcess(OrderStoDto orderStoDto, Long hostId) { if (Cools.isEmpty(orderStoDto) || Cools.isEmpty(orderStoDto.getDtos())) { @@ -316,6 +392,8 @@ } } + + public static void main(String[] args) { for (int i = 2; i < 51; i++) { @@ -329,4 +407,98 @@ "GO"); } } + + + public void orderStockOutProcess(OrderStoDto orderStoDto, Long hostId, Long userId) { + if (Cools.isEmpty(orderStoDto) || Cools.isEmpty(orderStoDto.getDtos())) { + return; + } + +// Receive receive = receiveService.selectByOrderNo(receiveStoDto.getOrderNo(), hostId); + Order order = orderService.selectByOrderNo(orderStoDto.getOrderNo(), hostId); + if (order == null) { + throw new CoolException(orderStoDto.getOrderNo() + "鍗曟嵁涓嶅瓨鍦�"); + } + Date now = new Date(); + // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶� + locDetlService.checkLocDetlCount(orderStoDto.getDtos(), hostId); + + for (MatnrDto matnrDto : orderStoDto.getDtos()) { + // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪 + Mat mat = matService.selectByMatnr(hostId, matnrDto.getMatnr()); + if (null == mat) { + throw new CoolException(matnrDto.getMatnr() + "鐗╂枡灏氭湭鏇存柊銆�" + matnrDto.getCount() +"鍗曟嵁鍥犳涓柇锛�"); + } + // 鏌ヨ瀛樻湁褰撳墠鐗╂枡鐨勮揣浣� + List<LocDetl> locDetls = locDetlService.findOfSort(hostId, mat.getMatnr()); + double issued = Optional.ofNullable(matnrDto.getCount()).orElse(0.0D); + Pickout pickout = new Pickout(); + pickout.setHostId(hostId); + pickout.setUserId(userId); + pickout.setWrkNo(String.valueOf(snowflakeIdWorker.nextId())); + pickout.setWrkSts(1L); + pickout.setCreateBy(userId.intValue()); + pickout.setUpdateBy(userId.intValue()); + pickoutService.insert(pickout); + for (LocDetl locDetl : locDetls) { + + if (issued > 0) { + PickoutDetl pickoutDetl = new PickoutDetl(); + pickoutDetl.setHeadId(pickout.getId()); + pickoutDetl.setNodeId(locDetl.getNodeId()); + pickoutDetl.setNodeName(locDetl.getLocNo()); + pickoutDetl.setAnfme(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); + pickoutDetl.setMatnr(locDetl.getMatnr()); + pickoutDetl.setMaktx(locDetl.getMaktx()); + pickoutDetl.setName(locDetl.getName()); + pickoutDetl.setSpecs(locDetl.getSpecs()); + pickoutDetl.setModel(locDetl.getModel()); + pickoutDetl.setBatch(locDetl.getBatch()); + pickoutDetl.setUnit(locDetl.getUnit()); + pickoutDetl.setBarcode(locDetl.getBarcode()); + pickoutDetl.setPrice(locDetl.getPrice()); + pickoutDetl.setWeight(locDetl.getWeight()); + pickoutDetl.setStatus(1); + pickoutDetl.setCreateBy(userId.intValue()); + pickoutDetl.setUpdateBy(userId.intValue()); + +// // 淇濆瓨鍑哄簱閫氱煡鍗� +// Pakout pakout = new Pakout(); +// pakout.setHostId(hostId); +// pakout.setWrkSts(1L); +// pakout.setAnfme(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); +// pakout.setZpallet(locDetl.getZpallet()); +// pakout.setLocNo(locDetl.getLocNo()); +// pakout.setNodeId(locDetl.getNodeId()); +// pakout.setWrkNo(String.valueOf(snowflakeIdWorker.nextId())); +// VersionUtils.setPakout(pakout, mat); +// pakout.setDocId(receive.getDocType()); // 鍗曟嵁绫诲瀷 +// pakout.setDocNum(receive.getOrderNo()); // 鍗曟嵁缂栧彿 +// pakout.setCreateTime(now); +// pakout.setUpdateTime(now); +// pakout.setStatus(1); + if (!pickoutDetlService.insert(pickoutDetl)) { + throw new CoolException("淇濆瓨鍑哄簱閫氱煡鍗曞け璐�"); + } + if (issued>=locDetl.getAnfme()) { +// // 鍒犻櫎搴撳瓨鏄庣粏 +// if (!locDetlService.removeStock(locDetl.getNodeId(), mat.getMatnr())) { +// throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触"); +// } + } else { +// // 淇敼搴撳瓨鏄庣粏鏁伴噺 +// if (!locDetlService.reduceStock(locDetl.getNodeId(), mat.getMatnr(), issued)) { +// throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触"); +// } + } + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + } + } + // 淇敼鍗曟嵁鐘舵�� + if (!orderService.updateSettle(orderStoDto.getOrderNo(), 2L, hostId)) { + throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�"); + } + } + } } diff --git a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java index b4cc123..a2e3574 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java @@ -123,18 +123,14 @@ for (Long id : ids) { Order target = orderService.selectOne(new EntityWrapper<Order>() .eq("id", id)); - if (target.getSettle() != 0 || target.getSettle() != 1) { + if (target.getSettle() == 0 || target.getSettle() == 1) { + orderService.deleteById(id); + orderDetlService.delete(new EntityWrapper<OrderDetl>() + .eq("order_id",id)); + }else { throw new CoolException("浠呭厑璁稿垹闄�'鍒濆鍖�','寰呭鐞�'鐘舵�佺殑璁㈠崟"); } - } - if (Cools.isEmpty((Object) ids)){ - return R.error(); - } - for (Long id : ids){ - if (!orderService.deleteById(id)) { - throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); - } } return R.ok(); } diff --git a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java index 3878bea..1e03a1c 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; import zy.cloud.wms.manager.entity.Pickout; +import zy.cloud.wms.manager.entity.PickoutDetl; +import zy.cloud.wms.manager.service.PickoutDetlService; import zy.cloud.wms.manager.service.PickoutService; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; @@ -23,6 +25,8 @@ @Autowired private PickoutService pickoutService; + @Autowired + private PickoutDetlService pickoutDetlService; @RequestMapping(value = "/pickout/{id}/auth") @ManagerAuth @@ -78,6 +82,8 @@ @ManagerAuth public R delete(@RequestParam(value="ids[]") Long[] ids){ for (Long id : ids){ + pickoutDetlService.delete(new EntityWrapper<PickoutDetl>() + .eq("head_id",id)); pickoutService.deleteById(id); } return R.ok(); diff --git a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java index adccc5e..42656af 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java @@ -77,9 +77,7 @@ @RequestMapping("/stock/out/print") @ManagerAuth(memo = "鎷h揣鍗曟墦鍗�") public R stockOutPrint(@RequestBody StockOutParam stockOutParam) { - - - return workService.stockInPrint(stockOutParam, getUserId(), getHostId()); + return workService.stockOutPrint(stockOutParam, getUserId(), getHostId()); } @RequestMapping("/stock/allot") @@ -163,6 +161,7 @@ return workService.initOrder(param, getUserId(), getHostId()); } + @RequestMapping("/stock/transfer") @ManagerAuth(memo = "搴撳瓨璋冩嫧") public R stockTransfer(@RequestBody AsrsTransferParam number) { @@ -211,6 +210,13 @@ eq("host_id", getHostId()).orderBy("create_time", false).eq("doc_class",docClass)); return R.ok().add(docTypes); } + @RequestMapping("docType/out/get") + @ManagerAuth + public R getDocOutTypeData(Integer docClass){ + List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("status", 1). + eq("host_id", getHostId()).orderBy("create_time", false).eq("doc_class",docClass)); + return R.ok().add(docTypes); + } // 鑾峰彇鎵�鏈夊鎴� @RequestMapping("/cstmr/all/get") diff --git a/src/main/java/zy/cloud/wms/manager/entity/Pickout.java b/src/main/java/zy/cloud/wms/manager/entity/Pickout.java index a5ec084..7533277 100644 --- a/src/main/java/zy/cloud/wms/manager/entity/Pickout.java +++ b/src/main/java/zy/cloud/wms/manager/entity/Pickout.java @@ -108,6 +108,18 @@ // null // // ); + public String getWrkSts$(){ + if (this.wrkSts == 1) { + return "鏈嫞璐�"; + } + if (this.wrkSts == 2) { + return "鏈墦鍗�"; + } + if (this.wrkSts == 3) { + return "宸插畬鎴�"; + } + return ""; + } public Long getId() { return id; } diff --git a/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java b/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java index 8939674..e90df81 100644 --- a/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java +++ b/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java @@ -69,7 +69,7 @@ * 搴撲綅ID */ @ApiModelProperty(value= "搴撲綅ID") - @TableField("node_id") + @TableField("nodeId") private Long nodeId; /** @@ -217,7 +217,7 @@ @ApiModelProperty(value= "淇敼浜哄憳ID") @TableField("update_by") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - private Date updateBy; + private Integer updateBy; /** * 澶囨敞 @@ -471,20 +471,9 @@ this.updateTime = updateTime; } - public Date getUpdateBy() { - return updateBy; - } - public String getUpdateBy$(){ - if (Cools.isEmpty(this.updateBy)){ - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateBy); - } - public void setUpdateBy(Date updateBy) { - this.updateBy = updateBy; - } + public String getMemo() { return memo; diff --git a/src/main/java/zy/cloud/wms/manager/service/WorkService.java b/src/main/java/zy/cloud/wms/manager/service/WorkService.java index 4a9138c..0b09670 100644 --- a/src/main/java/zy/cloud/wms/manager/service/WorkService.java +++ b/src/main/java/zy/cloud/wms/manager/service/WorkService.java @@ -41,4 +41,5 @@ R stockCheckAuditing(Long checkId, Long userId, Long hostId); + R initOutOrder(InitOrderParam param, Long userId, Long hostId); } diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java index 1728c29..d167f48 100644 --- a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java +++ b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java @@ -295,12 +295,12 @@ @Override public R stockOutPreview(StockOutParam param, Long userId, Long hostId) { - Wrapper<Receive> wrapper = new EntityWrapper<Receive>() + Wrapper<Order> wrapper = new EntityWrapper<Order>() .eq("order_no", param.getOrderNo()); if (hostId != null) { wrapper.eq("host_id", hostId); } - Receive order_no = receiveService.selectOne(wrapper); + Order order_no = orderService.selectOne(wrapper); if (order_no.getSettle() != 1){ return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); @@ -309,8 +309,8 @@ // if (order.getSettle() != 1) { // return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); // } - List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(order_no.getOrderNo(), hostId); - if (Cools.isEmpty(receiveDetls)) { + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order_no.getOrderNo(), hostId); + if (Cools.isEmpty(orderDetls)) { return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); } // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); @@ -318,27 +318,27 @@ // return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); // } - ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(order_no.getOrderNo(), receiveDetls); + OrderStoDto orderStoDto = new OrderStoDto().create(order_no.getOrderNo(), orderDetls); // OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); - return R.ok().add(mainService.receiveStockOutPreview(receiveStoDto, hostId)); + return R.ok().add(mainService.orderOutPreview(orderStoDto, hostId)); } @Override public R stockOutCreate(StockOutParam param, Long userId, Long hostId) { - Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); -// Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); - if (receive.getSettle() != 1) { +// Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); + Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); + if (order.getSettle() != 1) { return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); } - List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(param.getOrderNo(), hostId); + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); - if (Cools.isEmpty(receiveDetls)) { + if (Cools.isEmpty(orderDetls)) { return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); } - ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(receive.getOrderNo(), receiveDetls); + OrderStoDto orderStoDto = new OrderStoDto().create(order.getOrderNo(), orderDetls); // OrderStoDto dto = new OrderStoDto().create(receive.getOrderNo(), receiveDetls); // 寮�濮嬫暣鐞嗗嚭搴撴暟鎹� - mainService.receiveStockOutProcess(receiveStoDto,hostId); + mainService.orderStockOutProcess(orderStoDto,hostId,userId); return R.ok("鐢熸垚鎷h揣鍗曟垚鍔�"); } @@ -690,9 +690,9 @@ order1.setOrderNo(param.getOrderNo()); order1.setOrderTime(param.getOrderTime()); order1.setDocType(param.getDocType()); - order1.setItemId(item.getId()); + order1.setItemId(item == null? null : item.getId()); order1.setItemName(param.getItem()); - order1.setCstmr(cstmr.getId()); + order1.setCstmr(cstmr == null? null : cstmr.getId()); order1.setCstmrName(param.getCstmr()); order1.setSettle(1L); order1.setStatus(1); @@ -772,28 +772,28 @@ log.error("{}鍟嗗搧涓嶅瓨鍦ㄣ��", dto.getMatnr()); continue; } - ReceiveDetl receiveDetl = new ReceiveDetl(); - receiveDetl.setHostId(hostId); - receiveDetl.setOrderId(order1.getId()); - receiveDetl.setAnfme(dto.getCount()); - receiveDetl.setCreateTime(now); - receiveDetl.setCreateBy(userId); - receiveDetl.setUpdateBy(userId); - receiveDetl.setUpdateTime(now); - receiveDetl.setStatus(1); - receiveDetl.setMatnr(mat.getMatnr()); - receiveDetl.setMaktx(mat.getMaktx()); - receiveDetl.setName(mat.getName()); - receiveDetl.setSpecs(mat.getSpecs()); - receiveDetl.setModel(mat.getModel()); - receiveDetl.setBatch(mat.getBatch()); - receiveDetl.setUnit(mat.getUnit()); - receiveDetl.setBarcode(mat.getBarcode()); - receiveDetl.setItemNum(mat.getItemNum()); - receiveDetl.setCount(Double.valueOf(mat.getCount())); - receiveDetl.setUnitPrice(mat.getPrice()); - receiveDetl.setWeight(mat.getWeight()); - if (!receiveDetlService.insert(receiveDetl)) { + OrderDetl orderDetl = new OrderDetl(); + orderDetl.setHostId(hostId); + orderDetl.setOrderId(order1.getId()); + orderDetl.setAnfme(dto.getCount()); + orderDetl.setCreateTime(now); + orderDetl.setCreateBy(userId); + orderDetl.setUpdateBy(userId); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setMatnr(mat.getMatnr()); + orderDetl.setMaktx(mat.getMaktx()); + orderDetl.setName(mat.getName()); + orderDetl.setSpecs(mat.getSpecs()); + orderDetl.setModel(mat.getModel()); + orderDetl.setBatch(mat.getBatch()); + orderDetl.setUnit(mat.getUnit()); + orderDetl.setBarcode(mat.getBarcode()); + orderDetl.setItemNum(mat.getItemNum()); + orderDetl.setCount(mat.getCount() == null ? 0 : mat.getCount()); + orderDetl.setUnitPrice(mat.getPrice()); + orderDetl.setWeight(mat.getWeight()); + if (!orderDetlService.insert(orderDetl)) { throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触"); } } @@ -999,4 +999,98 @@ return R.ok(); } + @Override +// @Transactional + public R initOutOrder(InitOrderParam param, Long userId, Long hostId) { + Order order_no = orderService.selectOne(new EntityWrapper<Order>() + .eq("order_no", param.getOrderNo())); +// Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); + if (order_no != null) { + return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�"); + } + Date now = new Date(); + Item item = itemService.selectByName(param.getItem()); + Cstmr cstmr = cstmrService.selectByName(param.getCstmr()); + + // 鏂板璁㈠崟琛ㄥご + order_no = new Order(); + order_no.setHostId(hostId); + order_no.setUuid(String.valueOf(snowflakeIdWorker.nextId())); + order_no.setOrderNo(param.getOrderNo()); + order_no.setOrderTime(param.getOrderTime()); + order_no.setDocType(param.getDocType()); + order_no.setItemId(item==null?null:item.getId()); + order_no.setItemName(param.getItem()); + order_no.setCstmr(cstmr==null?null:cstmr.getId()); + order_no.setCstmrName(param.getCstmr()); + order_no.setSettle(1L); + order_no.setStatus(1); + order_no.setCreateTime(now); + order_no.setCreateBy(userId); + order_no.setUpdateTime(now); + order_no.setUpdateBy(userId); + +// if (!orderService.insert(order)) { +// throw new CoolException("淇濆瓨璁㈠崟琛ㄥご澶辫触锛�"); +// } + if (!orderService.insert(order_no)) { + throw new CoolException("淇濆瓨璁㈠崟琛ㄥご澶辫触锛�"); + } + +// // 閬嶅巻鍟嗗搧鏁伴噺骞朵繚瀛� +// for (MatnrDto dto : param.getList()){ +// Mat mat = matService.selectByMatnr(hostId, dto.getMatnr()); +// if (mat == null) { +// log.error("{}鍟嗗搧涓嶅瓨鍦ㄣ��", dto.getMatnr()); +// continue; +// } +// OrderDetl orderDetl = new OrderDetl(); +// orderDetl.setHostId(hostId); +// orderDetl.setOrderId(order.getId()); // 璁㈠崟鍐呯爜 +// orderDetl.setAnfme(dto.getCount()); // 鏁伴噺 +// orderDetl.setCreateBy(userId); +// orderDetl.setCreateTime(now); +// orderDetl.setUpdateBy(userId); +// orderDetl.setUpdateTime(now); +// orderDetl.setStatus(1); +// VersionUtils.setOrderDetl(orderDetl, mat); +// if (!orderDetlService.insert(orderDetl)) { +// throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触"); +// } +// } + // 閬嶅巻鍟嗗搧鏁伴噺骞朵繚瀛� + for (MatnrDto dto : param.getList()){ + Mat mat = matService.selectByMatnr(hostId, dto.getMatnr()); + if (mat == null) { + log.error("{}鍟嗗搧涓嶅瓨鍦ㄣ��", dto.getMatnr()); + continue; + } + OrderDetl orderDtel = new OrderDetl(); + orderDtel.setHostId(hostId); + orderDtel.setOrderId(order_no.getId()); + orderDtel.setAnfme(dto.getCount()); + orderDtel.setCreateTime(now); + orderDtel.setCreateBy(userId); + orderDtel.setUpdateBy(userId); + orderDtel.setUpdateTime(now); + orderDtel.setStatus(1); + orderDtel.setMatnr(mat.getMatnr()); + orderDtel.setMaktx(mat.getMaktx()); + orderDtel.setName(mat.getName()); + orderDtel.setSpecs(mat.getSpecs()); + orderDtel.setModel(mat.getModel()); + orderDtel.setBatch(mat.getBatch()); + orderDtel.setUnit(mat.getUnit()); + orderDtel.setBarcode(mat.getBarcode()); + orderDtel.setItemNum(mat.getItemNum()); + orderDtel.setCount(mat.getCount() == null ? 0 : mat.getCount()); + orderDtel.setUnitPrice(mat.getPrice()); + orderDtel.setWeight(mat.getWeight()); + if (!orderDetlService.insert(orderDtel)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触"); + } + } + return R.ok("鍒涘缓璁㈠崟鎴愬姛"); + } + } diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml index e714517..e4e7895 100644 --- a/src/main/resources/mapper/OrderMapper.xml +++ b/src/main/resources/mapper/OrderMapper.xml @@ -44,7 +44,7 @@ </resultMap> <update id="updateSettle"> - update man_receive set settle = #{settle} where 1=1 and order_no = #{orderNo} and host_id = #{hostId} + update man_order set settle = #{settle} where 1=1 and order_no = #{orderNo} and host_id = #{hostId} </update> <update id="updateStatus"> UPDATE man_order set settle = 2, wave_no = null WHERE order_no = #{orderNo} diff --git a/src/main/webapp/static/js/ioWorks/matQuery.js b/src/main/webapp/static/js/ioWorks/matQuery.js index adeb494..d82f429 100644 --- a/src/main/webapp/static/js/ioWorks/matQuery.js +++ b/src/main/webapp/static/js/ioWorks/matQuery.js @@ -74,7 +74,7 @@ // 鍗曟嵁绫诲瀷 var docTypeData; $.ajax({ - url: baseUrl+"/work/docType/all/get", + url: baseUrl+"/work/docType/out/get", headers: {'token': localStorage.getItem('token')}, data:{docClass: 2}, method: 'POST', diff --git a/src/main/webapp/static/js/pickout/pickout.js b/src/main/webapp/static/js/pickout/pickout.js index 6503c88..7e54ae0 100644 --- a/src/main/webapp/static/js/pickout/pickout.js +++ b/src/main/webapp/static/js/pickout/pickout.js @@ -9,6 +9,93 @@ var form = layui.form; var admin = layui.admin; + + /****************************************** 宸﹁竟琛� *************************************************/ + var leftTB = table.render({ + elem: '#leftTable', + url: baseUrl + '/pickout/list/auth', + height: 'full-100', + headers: {token: localStorage.getItem('token')}, + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res){ + return{ + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + defaultToolbar: [], + cols:[[ + // {type: 'checkbox'} + {field: 'wrkNo', align: 'center',title: '浠诲姟鍙�'} + ,{field: 'id', align: 'center',title: '鍞竴ID',hide: true} + ,{field: 'hostId', align: 'center',title: '鍟嗘埛ID', hide: true} + ,{field: 'userId', align: 'center',title: '鐢ㄦ埛ID', hide: true} + + ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��' ,templet: '#wrkStsTpl' , width: 100} + ,{field: 'zpallet', align: 'center',title: '鏉″舰鐮�' , hide:true} + ,{field: 'createTime$', align: 'center',title: '', hide:true} + ,{field: 'createBy', align: 'center',title: '', hide:true} + ,{field: 'updateTime$', align: 'center',title: '', hide:true} + ,{field: 'updateBy', align: 'center',title: '', hide:true} + ,{field: 'memo', align: 'center',title: '', hide:true} + + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:180} + ]], + done: function (res,curr,count){ + $('#dictTable+.layui-table-view .layui-table-body tbody>tr:first').trigger('click'); + } + }); + // 鐩戝惉琛屽伐鍏蜂簨浠� + table.on('tool(leftTable)', function(obj){ + var data = obj.data; + switch (obj.event) { + case 'complete': + complete(data); + break; + case "del": + var ids = [data.id]; + del(ids); + break; + } + }); + + /* 鍒犻櫎 */ + function del(ids) { + layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', { + skin: 'layui-layer-admin', + shade: .1 + }, function (i) { + layer.close(i); + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl+"/pickout/delete/auth", + headers: {'token': localStorage.getItem('token')}, + data: {ids: ids}, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + layer.msg(res.msg, {icon: 1}); + tableReload(); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + /****************************************** 鍙宠竟琛� *************************************************/ // 鏁版嵁娓叉煋 tableIns = table.render({ elem: '#pickout', @@ -20,20 +107,21 @@ toolbar: '#toolbar', cellMinWidth: 50, cols: [[ - {type: 'checkbox'} + // {type: 'checkbox'} + {field: 'wrkNo', align: 'center',title: '浠诲姟鍙�'} ,{field: 'id', align: 'center',title: '鍞竴ID'} ,{field: 'hostId', align: 'center',title: '鍟嗘埛ID'} ,{field: 'userId', align: 'center',title: '鐢ㄦ埛ID'} - ,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'} - ,{field: 'wrkSts', align: 'center',title: '宸ヤ綔鐘舵��'} - ,{field: 'zpallet', align: 'center',title: '鏉″舰鐮�'} - ,{field: 'createTime$', align: 'center',title: ''} - ,{field: 'createBy', align: 'center',title: ''} - ,{field: 'updateTime$', align: 'center',title: ''} - ,{field: 'updateBy', align: 'center',title: ''} - ,{field: 'memo', align: 'center',title: ''} - ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150} + ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��' ,templet: '#wrkStsTpl' , width: 100} + ,{field: 'zpallet', align: 'center',title: '鏉″舰鐮�' , hide:true} + ,{field: 'createTime$', align: 'center',title: '', hide:true} + ,{field: 'createBy', align: 'center',title: '', hide:true} + ,{field: 'updateTime$', align: 'center',title: '', hide:true} + ,{field: 'updateBy', align: 'center',title: '', hide:true} + ,{field: 'memo', align: 'center',title: '', hide:true} + + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:180} ]], request: { pageName: 'curr', @@ -130,86 +218,12 @@ break; } }); - - // 鐩戝惉琛屽伐鍏蜂簨浠� - table.on('tool(pickout)', function(obj){ - var data = obj.data; - switch (obj.event) { - case 'edit': - showEditModel(data); - break; - case "del": - var ids = [data.id]; - del(ids); - break; - } + /* 琛ㄦ牸鎼滅储 */ + form.on('submit(leftResearch)', function (data) { + insTb.reload({where: {doc_name: data.field.docName,doc_class:2}}); + return false; }); - /* 寮圭獥 - 鏂板銆佷慨鏀� */ - function showEditModel(mData) { - admin.open({ - type: 1, - area: '600px', - title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��', - content: $('#editDialog').html(), - success: function (layero, dIndex) { - layDateRender(); - form.val('detail', mData); - form.on('submit(editSubmit)', function (data) { - var loadIndex = layer.load(2); - $.ajax({ - url: baseUrl+"/pickout/"+(mData?'update':'add')+"/auth", - headers: {'token': localStorage.getItem('token')}, - data: data.field, - method: 'POST', - success: function (res) { - layer.close(loadIndex); - if (res.code === 200){ - layer.close(dIndex); - layer.msg(res.msg, {icon: 1}); - tableReload(); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - }else { - layer.msg(res.msg, {icon: 2}); - } - } - }) - return false; - }); - $(layero).children('.layui-layer-content').css('overflow', 'visible'); - layui.form.render('select'); - } - }); - } - - /* 鍒犻櫎 */ - function del(ids) { - layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', { - skin: 'layui-layer-admin', - shade: .1 - }, function (i) { - layer.close(i); - var loadIndex = layer.load(2); - $.ajax({ - url: baseUrl+"/pickout/delete/auth", - headers: {'token': localStorage.getItem('token')}, - data: {ids: ids}, - method: 'POST', - success: function (res) { - layer.close(loadIndex); - if (res.code === 200){ - layer.msg(res.msg, {icon: 1}); - tableReload(); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - } else { - layer.msg(res.msg, {icon: 2}); - } - } - }) - }); - } // 鎼滅储 form.on('submit(search)', function (data) { diff --git a/src/main/webapp/views/pickout/pickout.html b/src/main/webapp/views/pickout/pickout.html index 263db8c..9521946 100644 --- a/src/main/webapp/views/pickout/pickout.html +++ b/src/main/webapp/views/pickout/pickout.html @@ -10,38 +10,152 @@ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> <link rel="stylesheet" href="../../static/css/cool.css" media="all"> <link rel="stylesheet" href="../../static/css/common.css" media="all"> + <style> + body { + color: #595959; + background-color: #f5f7f9; + } + + /* 宸﹁〃 */ + #docTypeTable + .layui-table-view .layui-table-tool-temp { + padding-right: 0; + } + + #docTypeTable + .layui-table-view .layui-table-body tbody > tr td { + cursor: pointer; + } + + #docTypeTable + .layui-table-view .layui-table-body tbody > tr.layui-table-click { + background-color: #fff3e0; + } + + #docTypeTable + .layui-table-view .layui-table-body tbody > tr.layui-table-click td:last-child > div:before { + position: absolute; + right: 6px; + content: "\e602"; + font-size: 12px; + font-style: normal; + font-family: layui-icon,serif !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + #left-table .layui-table-grid-down { + display: none; + } + + + .layui-form.layui-border-box.layui-table-view { + border-width: 1px; + } + #left-table .layui-table thead th { + /* font-weight: bold; */ + text-align: left; + } + </style> </head> <body> - -<!-- 鎼滅储鏍� --> -<div id="search-box" class="layui-form layui-card-header"> - <div class="layui-inline"> - <div class="layui-input-inline"> - <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off"> +<!-- 姝f枃寮�濮� --> +<div class="layui-fluid" style="padding-bottom: 0;"> + <div class="layui-row layui-col-space15"> + <div class="layui-col-md3" id="left-table"> + <div class="layui-card"> + <div class="layui-card-body" style="padding: 10px;"> + <!-- 琛ㄦ牸宸ュ叿鏍�1 --> + <form class="layui-form toolbar"> + <div class="layui-form-item"> + <div class="layui-inline" style="max-width: 140px;"> + <input name="docName" class="layui-input" placeholder="璇疯緭鍏ヤ换鍔″彿"/> + </div> + <div class="layui-inline"> + <button class="layui-btn icon-btn" lay-filter="leftResearch" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + </div> + </div> + </form> + <!-- 鏁版嵁琛ㄦ牸1 --> + <table id="leftTable" lay-filter="leftTable"></table> + </div> + </div> + </div> + <div class="layui-col-md9"> + <div class="layui-card"> + <div class="layui-card-body" style="padding: 10px;"> + <!-- 琛ㄦ牸宸ュ叿鏍�2 --> + <form class="layui-form toolbar"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">璁㈠崟缂栧彿:</label> + <div class="layui-input-inline"> + <input name="id" class="layui-input"type="text" name="id" placeholder="缂栧彿" autocomplete="off"/> + </div> + </div> + <div class="layui-inline">  + <button class="layui-btn icon-btn" lay-filter="search" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> + <i class="layui-icon"></i>閲嶇疆 + </button> + </div> + </div> + </form> + <!-- 鏁版嵁琛ㄦ牸2 --> + <table id="pickout" lay-filter="pickout"></table> + </div> + </div> </div> </div> - <!-- 寰呮坊鍔� --> - <div id="data-search-btn" class="layui-btn-container layui-form-item"> - <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button> - <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button> - </div> </div> -<!-- 琛ㄦ牸 --> -<div class="layui-form"> - <table class="layui-hide" id="pickout" lay-filter="pickout"></table> -</div> +<!--<!– 鎼滅储鏍� –>--> +<!--<div id="search-box" class="layui-form layui-card-header">--> +<!-- <div class="layui-inline">--> +<!-- <div class="layui-input-inline">--> +<!-- <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">--> +<!-- </div>--> +<!-- </div>--> +<!-- <!– 寰呮坊鍔� –>--> +<!-- <div id="data-search-btn" class="layui-btn-container layui-form-item">--> +<!-- <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>--> +<!-- <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>--> +<!-- </div>--> +<!--</div>--> + +<!--<!– 琛ㄦ牸 –>--> +<!--<div class="layui-form">--> +<!-- <table class="layui-hide" id="pickout" lay-filter="pickout"></table>--> +<!--</div>--> <script type="text/html" id="toolbar"> <div class="layui-btn-container"> - <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button> - <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button> +<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>--> +<!-- <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>--> <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button> </div> </script> <script type="text/html" id="operate"> - <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> - <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a> + {{#if (d.wrkSts == 1||d.wrkSts == 2){ }} + <a class="layui-btn layui-btn-xs btn-complete" lay-event="complete">瀹屾垚</a> + {{# } }} +<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>--> + {{#if (d.wrkSts == 1||d.wrkSts == 2){ }} + <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鎾ら攢</a> + {{# } }} +<!-- <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>--> + +</script> +<script type="text/html" id="wrkStsTpl"> + <span name="wrkSts" + {{# if( d.wrkSts === 1){ }} + class="layui-badge layui-badge-blue" + {{# } else if(d.wrkSts === 2){ }} + class="layui-badge layui-badge-red" + {{# } else if(d.wrkSts === 3){ }} + class="layui-badge layui-badge-green" + {{# } }} + >{{d.wrkSts$}}</span> </script> <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> -- Gitblit v1.9.1