From 69cfd1cfd760e6af3f0c5353eacdf38c7af8b56a Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 05 一月 2024 12:59:43 +0800 Subject: [PATCH] # --- zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/ApiService.java | 6 ++ zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderPakOutParam.java | 21 +++++++ zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java | 94 +++++++++++++++++++++++++++++++ zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java | 27 +++++++++ 4 files changed, 148 insertions(+), 0 deletions(-) diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderPakOutParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderPakOutParam.java new file mode 100644 index 0000000..5dd8cd5 --- /dev/null +++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderPakOutParam.java @@ -0,0 +1,21 @@ +package com.zy.asrs.common.openapi.entity.param; + +import com.zy.asrs.common.domain.dto.DetlDto; +import lombok.Data; + +import java.util.List; + +@Data +public class GenerateOrderPakOutParam { + + private String orderNo; + + private String orderType; + + private String orderTime; + + private List<DetlDto> orderDetails; + + private Long hostId; + +} diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/ApiService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/ApiService.java index a8ea905..ef481bb 100644 --- a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/ApiService.java +++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/ApiService.java @@ -2,6 +2,7 @@ import com.zy.asrs.common.openapi.entity.dto.OrderListDto; import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakInParam; +import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakOutParam; import com.zy.asrs.common.openapi.entity.param.OrderListParam; import com.zy.asrs.common.wms.entity.DocType; import com.zy.asrs.common.wms.entity.OrderSettle; @@ -15,6 +16,11 @@ */ void generateOrderPakIn(GenerateOrderPakInParam param); + /** + * 鐢熸垚鍑哄簱璁㈠崟 + */ + void generateOrderPakOut(GenerateOrderPakOutParam param); + List<DocType> getOrderType(); List<OrderSettle> getOrderStatus(); diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java index c51b6ef..276473f 100644 --- a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java +++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java @@ -4,6 +4,7 @@ import com.zy.asrs.common.domain.dto.DetlDto; import com.zy.asrs.common.openapi.entity.dto.OrderListDto; import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakInParam; +import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakOutParam; import com.zy.asrs.common.openapi.entity.param.OrderListParam; import com.zy.asrs.common.openapi.service.ApiService; import com.zy.asrs.common.wms.entity.*; @@ -124,6 +125,99 @@ } @Override + public void generateOrderPakOut(GenerateOrderPakOutParam param) { + Order order = orderService.selectByNo(param.getOrderNo(), param.getHostId()); + // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹� + if (!Cools.isEmpty(order)) { + if (order.getSettle() > 1L) { + throw new CoolException(param.getOrderNo() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�"); + } + orderService.removeById(order.getId()); + } + DocType docType = docTypeService.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocId, param.getOrderType())); + if (docType == null) { + throw new CoolException("璁㈠崟绫诲瀷涓嶅瓨鍦�"); + } + Date now = new Date(); + // 鍗曟嵁涓绘。 + order = new Order( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + param.getOrderNo(), // 璁㈠崟缂栧彿 + DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 + docType.getDocId(), // 鍗曟嵁绫诲瀷 + null, // 椤圭洰缂栧彿 + null, // + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + null, // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + null, // 瀹㈡埛 + null, // 鑱旂郴鏂瑰紡 + null, // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + null, // 涓氬姟鍛� + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 + 1L, // 璁㈠崟鐘舵�� + 1, // 鐘舵�� + 9527L, // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + 9527L, // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + null, // 澶囨敞 + param.getHostId() //浠撳簱ID + ); + if (!orderService.save(order)) { + throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + // 鍗曟嵁鏄庣粏妗� + List<DetlDto> list = new ArrayList<>(); + List<DetlDto> orderDetails = param.getOrderDetails(); + for (DetlDto detail : orderDetails) { + DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); + if (DetlDto.has(list, dto)) { + DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); + assert detlDto != null; + detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); + } else { + list.add(dto); + } + } + for (DetlDto detlDto : list) { + Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detlDto.getMatnr()).eq(Mat::getHostId, param.getHostId())); + if (Cools.isEmpty(mat)) { + throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"); + } + OrderDetl orderDetl = new OrderDetl(); + orderDetl.sync(mat); + orderDetl.setBatch(detlDto.getBatch()); + orderDetl.setAnfme(detlDto.getAnfme()); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setCreateBy(9527L); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(9527L); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setQty(0.0D); + orderDetl.setHostId(param.getHostId()); + if (!orderDetlService.save(orderDetl)) { + throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + } + } + + @Override public List<DocType> getOrderType() { List<DocType> list = docTypeService.list(); return list; diff --git a/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java b/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java index 2acaaac..acc70d5 100644 --- a/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java +++ b/zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java @@ -6,6 +6,7 @@ import com.zy.asrs.common.openapi.entity.HostKey; import com.zy.asrs.common.openapi.entity.dto.OrderListDto; import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakInParam; +import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakOutParam; import com.zy.asrs.common.openapi.entity.param.OrderListParam; import com.zy.asrs.common.openapi.service.ApiService; import com.zy.asrs.common.openapi.service.HostKeyService; @@ -22,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -61,6 +63,31 @@ } /** + * 鐢熸垚鍑哄簱璁㈠崟 + */ + @PostMapping("generateOrderPakOut") + @AppAuth(memo = "鐢熸垚鍑哄簱璁㈠崟") + public synchronized R generateOrderPakOut(@RequestHeader(required = false) String appkey, + @RequestBody GenerateOrderPakOutParam param) { + HostKey hostKey = auth(appkey, param, true); + if (Cools.isEmpty(param)) { + return R.parse(BaseRes.PARAM); + } + if (Cools.isEmpty(param.getOrderNo())) { + return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖"); + } + if (Cools.isEmpty(param.getOrderType())) { + return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖"); + } + if (Cools.isEmpty(param.getOrderDetails())) { + return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖"); + } + param.setHostId(hostKey.getHostId()); + apiService.generateOrderPakOut(param); + return R.ok(); + } + + /** * 鑾峰彇璁㈠崟绫诲瀷 */ @PostMapping("/getOrderType") -- Gitblit v1.9.1