| | |
| | | package com.zy.asrs.wms.asrs.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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.param.CreateOrderParam; |
| | |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private OrderDetlFieldService orderDetlFieldService; |
| | | @Autowired |
| | | private OrderNoRuleService orderNoRuleService; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public boolean createOrder(List<CreateOrderParam> list) { |
| | | for (CreateOrderParam orderParam : list) { |
| | | createOrder(orderParam); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public boolean createOrder(CreateOrderParam param) { |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | List<Order> orderList = this.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.getOrderNo())); |
| | | if (!orderList.isEmpty()) { |
| | | throw new CoolException("订单已存在"); |
| | | } |
| | | |
| | | String orderNo = param.getOrderNo(); |
| | | if (Cools.isEmpty(param.getOrderNo())) { |
| | | orderNo = orderNoRuleService.getOrderNo(param.getOrderType().intValue()); |
| | | } |
| | | |
| | | Order order = new Order(); |
| | | order.setOrderNo(param.getOrderNo()); |
| | | order.setOrderNo(orderNo); |
| | | order.setOrderType(param.getOrderType()); |
| | | order.setOrderSettle(param.getOrderSettle()); |
| | | order.setOrderTime(format.format(new Date())); |
| | |
| | | double anfme = Double.parseDouble(map.get("anfme").toString()); |
| | | String batch = map.get("batch").toString(); |
| | | String matnr = map.get("matnr").toString(); |
| | | Double qty = 0D; |
| | | Double workQty = 0D; |
| | | if (map.containsKey("qty")) { |
| | | qty = Double.parseDouble(map.get("qty").toString()); |
| | | } |
| | | if (map.containsKey("workQty")) { |
| | | workQty = Double.parseDouble(map.get("workQty").toString()); |
| | | } |
| | | String memo = map.getOrDefault("memo", "").toString(); |
| | | Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr)); |
| | | if (mat == null) { |
| | |
| | | orderDetl.setOrderId(order.getId()); |
| | | orderDetl.setOrderNo(order.getOrderNo()); |
| | | orderDetl.setAnfme(anfme); |
| | | orderDetl.setQty(0D); |
| | | orderDetl.setWorkQty(0D); |
| | | orderDetl.setQty(qty); |
| | | orderDetl.setWorkQty(workQty); |
| | | orderDetl.setBatch(batch); |
| | | orderDetl.setMatId(mat.getId()); |
| | | orderDetl.setMemo(memo); |
| | |
| | | @Override |
| | | public boolean updateOrder(UpdateOrderParam param) { |
| | | Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getId, param.getOrderId())); |
| | | order.setOrderNo(param.getOrderNo()); |
| | | order.setOrderType(param.getOrderType()); |
| | | order.setOrderSettle(param.getOrderSettle()); |
| | | order.setUpdateTime(new Date()); |
| | |
| | | double anfme = Double.parseDouble(map.get("anfme").toString()); |
| | | String batch = map.get("batch").toString(); |
| | | String matnr = map.get("matnr").toString(); |
| | | Double qty = Double.parseDouble(map.get("qty").toString()); |
| | | Double workQty = Double.parseDouble(map.get("workQty").toString()); |
| | | String memo = map.getOrDefault("memo", "").toString(); |
| | | Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr)); |
| | | if (mat == null) { |
| | |
| | | }else { |
| | | orderDetl.setOrderNo(order.getOrderNo()); |
| | | orderDetl.setAnfme(anfme); |
| | | orderDetl.setQty(qty); |
| | | orderDetl.setWorkQty(workQty); |
| | | orderDetl.setBatch(batch); |
| | | orderDetl.setMemo(memo); |
| | | orderDetl.setUpdateTime(new Date()); |
| | |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public boolean checkOrderComplete(Long orderId) { |
| | | Order order = this.getById(orderId); |
| | | if (order == null) { |
| | | return false; |
| | | } |
| | | |
| | | boolean complete = true; |
| | | List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, orderId)); |
| | | if(orderDetls.isEmpty()) { |
| | | complete = false; |
| | | } |
| | | |
| | | for (OrderDetl orderDetl : orderDetls) { |
| | | if (!orderDetl.getAnfme().equals(orderDetl.getQty())) { |
| | | complete = false; |
| | | } |
| | | } |
| | | |
| | | return complete; |
| | | } |
| | | } |