| | |
| | | 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; |
| | |
| | | import com.zy.asrs.wms.asrs.mapper.OrderMapper; |
| | | import com.zy.asrs.wms.asrs.service.*; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.zy.asrs.wms.utils.OrderUtils; |
| | | import com.zy.asrs.wms.utils.Utils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private OrderDetlFieldService orderDetlFieldService; |
| | | @Autowired |
| | | private OrderNoRuleService orderNoRuleService; |
| | | @Autowired |
| | | private OrderUtils orderUtils; |
| | | |
| | | @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.setIoPri(orderUtils.getIoPri()); |
| | | order.setOrderTime(format.format(new Date())); |
| | | order.setCreateTime(new Date()); |
| | | order.setCreateBy(9527L); |
| | |
| | | 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()); |
| | | 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.setStockIndex(Utils.getMatUniqueKey(matnr, batch, orderDetl.getUniqueField())); |
| | | if (!orderDetlService.updateById(orderDetl)) { |
| | | throw new CoolException("更新明细索引失败"); |
| | | } |
| | | |
| | | } |
| | | |
| | | return true; |
| | |
| | | @Override |
| | | public boolean updateOrder(UpdateOrderParam param) { |
| | | Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getId, param.getOrderId())); |
| | | order.setOrderNo(param.getOrderNo()); |
| | | if (order == null) { |
| | | throw new CoolException("订单不存在"); |
| | | } |
| | | |
| | | if (order.getHasWave() == 1) { |
| | | throw new CoolException("订单已经生成波次,无法修改"); |
| | | } |
| | | |
| | | order.setOrderType(param.getOrderType()); |
| | | order.setOrderSettle(param.getOrderSettle()); |
| | | order.setUpdateTime(new Date()); |
| | |
| | | } |
| | | } |
| | | |
| | | orderDetl.setStockIndex(Utils.getMatUniqueKey(matnr, batch, orderDetl.getUniqueField())); |
| | | if (!orderDetlService.updateById(orderDetl)) { |
| | | throw new CoolException("更新明细索引失败"); |
| | | } |
| | | |
| | | } |
| | | |
| | | List<Long> deleteDetlId = param.getDeleteDetlId(); |
| | |
| | | |
| | | @Override |
| | | public boolean deleteOrder(Long orderId) { |
| | | Order order = this.getById(orderId); |
| | | if (order.getHasWave() == 1) { |
| | | throw new CoolException("订单已经生成波次,删除失败"); |
| | | } |
| | | |
| | | //删除订单 |
| | | this.removeById(orderId); |
| | | //删除明细 |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |