From acad71339e2a131f6ef72c9be912b9e70dd00af0 Mon Sep 17 00:00:00 2001 From: mrzhssss <pro6@qq.com> Date: 星期四, 24 三月 2022 15:17:16 +0800 Subject: [PATCH] # --- src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | 378 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 361 insertions(+), 17 deletions(-) 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 04e01b6..e1542c4 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 @@ -1,6 +1,7 @@ package zy.cloud.wms.manager.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; @@ -12,6 +13,8 @@ import org.springframework.transaction.annotation.Transactional; import zy.cloud.wms.common.model.MatnrDto; import zy.cloud.wms.common.model.OrderStoDto; +import zy.cloud.wms.common.model.ReceiveStoDto; +import zy.cloud.wms.common.model.WaveStoDto; import zy.cloud.wms.common.service.MainService; import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.manager.entity.*; @@ -54,6 +57,17 @@ private CstmrService cstmrService; @Autowired private PakinService pakinService; + @Autowired + private ReceiveService receiveService; + @Autowired + private ReceiveDetlService receiveDetlService; + @Autowired + ReceiveLogService receiveLogService; + @Autowired + private WaveService waveService; + @Autowired + private WaveDetlService waveDetlService; + @Override @Transactional @@ -108,6 +122,23 @@ if (!pakinService.insert(pakin)) { throw new CoolException("淇濆瓨鍏ュ簱璁板綍澶辫触"); } + + /** + * 涓婃灦瀹屾垚涔嬪悗,瀛樻斁鏁版嵁鑷充笂鏋剁粺璁¤〃 man_receive_log + */ + ReceiveLog receiveLog = new ReceiveLog(); + receiveLog.setOrderNo("");//鍗曞彿 + receiveLog.setNodeId(node.getId());//搴撲綅鍙穒d + receiveLog.setNodeName(node.getName());//搴撲綅鍚嶇О + receiveLog.setMatnr(dto.getMatnr());//鐗╂枡缂栫爜 + receiveLog.setAnfme(dto.getCount());//鏁伴噺 + receiveLog.setBatch(dto.getBatch());//鎵瑰彿 + receiveLog.setCreateBy(userId);//娣诲姞浜哄憳 + receiveLog.setUpdateBy(userId);//淇敼浜哄憳 + receiveLog.setCreateTime(now); + receiveLog.setUpdateTime(now); + receiveLog.setIoType(1); + receiveLogService.insert(receiveLog); // 淇敼搴撳瓨 LocDetl locDetl = locDetlService.getLocDetl(node.getId(), dto.getMatnr()); if (locDetl == null) { @@ -119,6 +150,7 @@ locDetl.setZpallet(""); locDetl.setAnfme(dto.getCount()); VersionUtils.setLocDetl(locDetl, mat); + locDetl.setBatch(dto.getBatch()); // locDetl.setDocId(param.getDocType().longValue()); // locDetl.setDocNum(docNum); locDetl.setStatus(1); @@ -268,36 +300,57 @@ @Override public R stockOutPreview(StockOutParam param, Long userId, Long hostId) { - Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); - if (order.getSettle() != 1) { + Wrapper<Order> wrapper = new EntityWrapper<Order>() + .eq("order_no", param.getOrderNo()); + if (hostId != null) { + wrapper.eq("host_id", hostId); + } + Order order_no = orderService.selectOne(wrapper); + + if (order_no.getSettle() != 1){ return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); } - List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); +// Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); +// if (order.getSettle() != 1) { +// return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); +// } + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order_no.getOrderNo(), hostId); if (Cools.isEmpty(orderDetls)) { return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); } - OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); - return R.ok().add(mainService.stockOutPreview(dto, hostId)); +// List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); +// if (Cools.isEmpty(orderDetls)) { +// return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); +// } + + OrderStoDto orderStoDto = new OrderStoDto().create(order_no.getOrderNo(), orderDetls); +// OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); + 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 (order.getSettle() != 1) { return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); } List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); +// List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); if (Cools.isEmpty(orderDetls)) { return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); } - OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); + OrderStoDto orderStoDto = new OrderStoDto().create(order.getOrderNo(), orderDetls); +// OrderStoDto dto = new OrderStoDto().create(receive.getOrderNo(), receiveDetls); // 寮�濮嬫暣鐞嗗嚭搴撴暟鎹� - mainService.stockOutProcess(dto, hostId); + mainService.orderStockOutProcess(orderStoDto,hostId,userId); return R.ok("鐢熸垚鎷h揣鍗曟垚鍔�"); } + @Override public R stockOutPrint(StockOutParam param, Long userId, Long hostId) { + Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); if (order == null) { return R.error("姝ゅ崟鎹凡澶辨晥"); @@ -314,6 +367,27 @@ vo.setCstmrName(order.getCstmrName()); vo.setWorkerName(Cools.isEmpty(order.getOperMemb())? "" : order.getOperMemb()); return R.ok().add(vo); + } + + @Override + public R stockInPrint(StockOutParam param, Long userId, Long hostId) { + Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); + if (receive == null) { + return R.error("姝ゅ崟鎹凡澶辨晥"); + } + List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", receive.getOrderNo()).eq("host_id", hostId)); + Double total = 0.0D; + for (Pakout pakout : pakouts) { + total = pakout.getAnfme() + total; + } + StoPrintVo vo = new StoPrintVo(); + vo.setDocNum(param.getOrderNo()); + vo.setList(pakouts); + vo.setTotal(total); + vo.setCstmrName(receive.getCstmrName()); + vo.setWorkerName(Cools.isEmpty(receive.getOperMemb())? "" : receive.getOperMemb()); + return R.ok().add(vo); + } @Override @@ -433,6 +507,7 @@ pakout.setUpdateTime(now); pakout.setUpdateBy(userId); pakout.setStatus(1); + if (!pakoutService.insert(pakout)) { throw new CoolException("鐢熸垚鎷h揣鍗曞け璐�"); } @@ -513,19 +588,19 @@ } return R.ok("鎷h揣鍗曞凡鍙栨秷"); } - @Override @Transactional - public R initOrder(InitOrderParam param, Long userId, Long hostId) { - Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); - if (order != null) { + public R initReceive(InitOrderParam param, Long userId, Long hostId){ + Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>() + .eq("order_no", param.getOrderNo())); + if (order_no != null) { return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�"); } Date now = new Date(); Item item = itemService.selectByName(param.getItem()); Cstmr cstmr = cstmrService.selectByName(param.getCstmr()); // 鏂板璁㈠崟琛ㄥご - order = new Order( + order_no = new Receive( hostId, String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] param.getOrderNo(), // 璁㈠崟缂栧彿 @@ -562,9 +637,140 @@ now, // 淇敼鏃堕棿 null // 澶囨敞 ); - if (!orderService.insert(order)) { + if (!receiveService.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; + } + ReceiveDetl receiveDetl = new ReceiveDetl(); + receiveDetl.setHostId(hostId); + receiveDetl.setOrderId(order_no.getId()); + receiveDetl.setOrderNo(param.getOrderNo()); + 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(dto.getCount()); + receiveDetl.setUnitPrice(mat.getPrice()); + receiveDetl.setWeight(mat.getWeight()); + if (!receiveDetlService.insert(receiveDetl)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触"); + } + } + return R.ok("鍒涘缓璁㈠崟鎴愬姛"); + } + + @Override + @Transactional + public R initOrder(InitOrderParam param, Long userId, Long hostId) { + // Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>() + // .eq("order_no", param.getOrderNo())); + Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); + if (order != null) { + return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�"); + } + Date now = new Date(); + Item item = itemService.selectByName(param.getItem()); + Cstmr cstmr = cstmrService.selectByName(param.getCstmr()); + // 鏂板璁㈠崟琛ㄥご + Order order1 = new Order(); + order1.setUuid(String.valueOf(snowflakeIdWorker.nextId())); + order1.setHostId(hostId); + order1.setOrderNo(param.getOrderNo()); + order1.setOrderTime(param.getOrderTime()); + order1.setDocType(param.getDocType()); + order1.setItemId(item == null? null : item.getId()); + order1.setItemName(param.getItem()); + order1.setCstmr(cstmr == null? null : cstmr.getId()); + order1.setCstmrName(param.getCstmr()); + order1.setSettle(1L); + order1.setStatus(1); + order1.setCreateBy(userId); + order1.setCreateTime(now); + order1.setUpdateBy(userId); + order1.setUpdateTime(now); +// order_no = new Receive( +// hostId, +// String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] +// param.getOrderNo(), // 璁㈠崟缂栧彿 +// param.getOrderTime(), // 鍗曟嵁鏃ユ湡 +// param.getDocType(), // 鍗曟嵁绫诲瀷 +// item==null?null:item.getId(), // 椤圭洰缂栧彿 +// param.getItem(), // 椤圭洰鍚嶇О +// null, // 璋冩嫧椤圭洰缂栧彿 +// null, // 鍒濆绁ㄦ嵁鍙� +// null, // 绁ㄦ嵁鍙� +// cstmr==null?null:cstmr.getId(), // 瀹㈡埛缂栧彿 +// param.getCstmr(), // 瀹㈡埛 +// null, // 鑱旂郴鏂瑰紡 +// null, // 鎿嶄綔浜哄憳 +// null, // 鍚堣閲戦 +// null, // 浼樻儬鐜� +// null, // 浼樻儬閲戦 +// null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 +// null, // 瀹炰粯閲戦 +// null, // 浠樻绫诲瀷 +// null, // 涓氬姟鍛� +// null, // 缁撶畻澶╂暟 +// null, // 閭垂鏀粯绫诲瀷 +// null, // 閭垂 +// null, // 浠樻鏃堕棿 +// null, // 鍙戣揣鏃堕棿 +// null, // 鐗╂祦鍚嶇О +// null, // 鐗╂祦鍗曞彿 +// 1L, // 璁㈠崟鐘舵�� +// 1, // 鐘舵�� +// userId, // 娣诲姞浜哄憳 +// now, // 娣诲姞鏃堕棿 +// userId, // 淇敼浜哄憳 +// now, // 淇敼鏃堕棿 +// null // 澶囨敞 +// ); +// if (!orderService.insert(order)) { +// throw new CoolException("淇濆瓨璁㈠崟琛ㄥご澶辫触锛�"); +// } + if (!orderService.insert(order1)) { + 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()); @@ -574,14 +780,26 @@ } OrderDetl orderDetl = new OrderDetl(); orderDetl.setHostId(hostId); - orderDetl.setOrderId(order.getId()); // 璁㈠崟鍐呯爜 - orderDetl.setAnfme(dto.getCount()); // 鏁伴噺 - orderDetl.setCreateBy(userId); + orderDetl.setOrderId(order1.getId()); + orderDetl.setOrderNo(order1.getOrderNo()); + orderDetl.setAnfme(dto.getCount()); orderDetl.setCreateTime(now); + orderDetl.setCreateBy(userId); orderDetl.setUpdateBy(userId); orderDetl.setUpdateTime(now); orderDetl.setStatus(1); - VersionUtils.setOrderDetl(orderDetl, mat); + 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("淇濆瓨璁㈠崟鏄庣粏澶辫触"); } @@ -788,4 +1006,130 @@ 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("鍒涘缓璁㈠崟鎴愬姛"); + } + + @Override + public R wavePreview(StockOutParam stockOutParam, Long userId, Long hostId) { + Wrapper<Wave> wrapper = new EntityWrapper<Wave>() + .eq("id", stockOutParam.getOrderNo()); + + if (hostId != null) { + wrapper.eq("host_id", hostId); + } + Wave wave = waveService.selectOne(wrapper); + + if (wave.getStatus() != 0){ + return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); + } +// Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); +// if (order.getSettle() != 1) { +// return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); +// } + List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>() + .eq("wave_id", stockOutParam.getOrderNo())); + if (Cools.isEmpty(waveDetls)) { + return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); + } +// List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); +// if (Cools.isEmpty(orderDetls)) { +// return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); +// } + + WaveStoDto waveStoDto = new WaveStoDto().create(stockOutParam.getOrderNo(),waveDetls); +// OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); + return R.ok().add(mainService.waveOutPreview(waveStoDto, hostId)); + } + } -- Gitblit v1.9.1