From e046dba174365eb8934ee1e4206f09821145e876 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 21 八月 2025 13:23:22 +0800 Subject: [PATCH] no message --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java | 73 ++++++++++++++++++++++++++++++------ 1 files changed, 61 insertions(+), 12 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java index 302f67a..0e703ee 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java @@ -1,11 +1,13 @@ package com.zy.asrs.wms.asrs.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wms.asrs.entity.*; import com.zy.asrs.wms.asrs.entity.dto.OrderInfoDto; import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType; +import com.zy.asrs.wms.asrs.entity.enums.OrderType; import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam; import com.zy.asrs.wms.asrs.entity.param.UpdateOrderParam; import com.zy.asrs.wms.asrs.mapper.OrderMapper; @@ -19,10 +21,7 @@ import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; +import java.util.*; @Service("orderService") public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService { @@ -39,19 +38,23 @@ private OrderNoRuleService orderNoRuleService; @Autowired private OrderUtils orderUtils; + @Autowired + private WaitPakinService waitPakinService; + @Autowired + private LocDetlService locDetlService; @Override @Transactional - public boolean createOrder(List<CreateOrderParam> list) { + public boolean createOrder(List<CreateOrderParam> list, Long userId) { for (CreateOrderParam orderParam : list) { - createOrder(orderParam); + createOrder(orderParam, userId); } return true; } @Override @Transactional - public boolean createOrder(CreateOrderParam param) { + public boolean createOrder(CreateOrderParam param, Long userId) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List<Order> orderList = this.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.getOrderNo())); @@ -67,18 +70,22 @@ Order order = new Order(); order.setOrderNo(orderNo); order.setOrderType(param.getOrderType()); + order.setCustomer(param.getCustomer()); + order.setPhone(param.getPhone()); + order.setAddress(param.getAddress()); order.setOrderSettle(OrderSettleType.INIT.val()); order.setIoPri(orderUtils.getIoPri()); order.setOrderTime(format.format(new Date())); order.setCreateTime(new Date()); - order.setCreateBy(9527L); + order.setCreateBy(userId); + order.setUpdateBy(userId); boolean result = this.save(order); if (!result) { throw new CoolException("鐢熸垚璁㈠崟澶辫触"); } for (HashMap<String, Object> map : param.getList()) { - double anfme = Double.parseDouble(map.get("anfme").toString()); + Double anfme = Double.parseDouble(map.get("anfme").toString()); String batch = map.get("batch").toString(); String matnr = map.get("matnr").toString(); Double qty = 0D; @@ -89,6 +96,20 @@ if (map.containsKey("workQty")) { workQty = Double.parseDouble(map.get("workQty").toString()); } + + if (param.getOrderType() == 2) { + List<LocDetl> detls = locDetlService.list(new LambdaQueryWrapper<LocDetl>() + .eq(StringUtils.isNotBlank(batch), LocDetl::getBatch, batch) + .eq(StringUtils.isNotBlank(matnr), LocDetl::getMatnr, matnr)); + if (detls.isEmpty()) { + throw new CoolException("鐗╂枡锛�" + matnr + "鍓╀綑搴撳瓨浣欎笅锛�0" + "锛屾棤娉曠敓鎴愬嚭搴撳崟!!"); + } + Double sum = detls.stream().mapToDouble(LocDetl::getAnfme).sum(); + if (anfme.compareTo(sum) > 0) { + throw new CoolException("鐗╂枡锛�" + matnr + "鍓╀綑搴撳瓨浣欎笅锛�" + sum + "锛屾棤娉曠敓鎴愬嚭搴撳崟!!"); + } + } + String memo = map.getOrDefault("memo", "").toString(); Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr)); if (mat == null) { @@ -105,7 +126,8 @@ orderDetl.setMatId(mat.getId()); orderDetl.setMemo(memo); orderDetl.setCreateTime(new Date()); - orderDetl.setCreateBy(9527L); + orderDetl.setCreateBy(userId); + orderDetl.setUpdateBy(userId); boolean save = orderDetlService.save(orderDetl); if (!save) { throw new CoolException("璁㈠崟鏄庣粏鍒涘缓澶辫触"); @@ -132,6 +154,11 @@ throw new CoolException("鏇存柊鏄庣粏绱㈠紩澶辫触"); } + mat.setUtiliz(Objects.isNull(mat.getUtiliz()) ? 0 : mat.getUtiliz() + 1); + + if (!matService.updateById(mat)) { + throw new CoolException("鐗╂枡浣跨敤鐜囦慨鏀瑰け璐ワ紒锛�"); + } } return true; @@ -252,6 +279,10 @@ throw new CoolException("璁㈠崟宸茬粡鐢熸垚娉㈡锛屽垹闄ゅけ璐�"); } + List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getOrderId, orderId)); + if (!waitPakins.isEmpty()) { + throw new CoolException("鍗曟嵁宸茬敓鎴愮粍鎵橈紝涓嶅彲鎵ц鍒犻櫎鎿嶄綔锛侊紒"); + } //鍒犻櫎璁㈠崟 this.removeById(orderId); //鍒犻櫎鏄庣粏 @@ -292,7 +323,25 @@ } @Override - public List<OrderInfoDto> getDetlForOrderId(Long id) { - return this.baseMapper.getDetlForOrderId(id); + public List<OrderInfoDto> getDetlForOrderId(Long id, String matnr) { + if (!Objects.isNull(matnr)) { + if (Objects.isNull(matnr)) { + return this.baseMapper.getDetlForOrderId(id, null); + } else { + return this.baseMapper.getDetlForOrderId(id, matnr); + } + } else { + return this.baseMapper.getDetlForOrderId(id, null); + } + } + + /** + * 鎻愪氦瀹岀粨璁㈠崟 + * @param id + * @return + */ + @Override + public Order doneOrder(Long id) { + return null; } } -- Gitblit v1.9.1