| | |
| | | * @date 2025/11/24 14:49 |
| | | */ |
| | | @Override |
| | | public XSR receiveOrders(List<PubOrderParams> orderParams) { |
| | | public XSR receiveOrders(List<PubOrderParams> orderParams, String type) { |
| | | orderParams.forEach(params -> { |
| | | if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) { |
| | | throw new CoolException("当前类型不是上架派工单!!"); |
| | | } |
| | | addOrUpdateOrders(params, "add"); |
| | | addOrUpdateOrders(params, type); |
| | | }); |
| | | |
| | | return XSR.ok("单据下发成功!!"); |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams) { |
| | | public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams, String type) { |
| | | if (Objects.isNull(pubOrderParams) || pubOrderParams.isEmpty()) { |
| | | return XSR.error("参数不能为空!!"); |
| | | } |
| | |
| | | throw new CoolException("公司ID不能为空!!"); |
| | | } |
| | | |
| | | addOrUpdateOrders(params, "add"); |
| | | addOrUpdateOrders(params, type); |
| | | }); |
| | | |
| | | return XSR.ok("备货指示派工单下发成功!!"); |
| | |
| | | // 判断订单是否存在 |
| | | if (Objects.isNull(order)) { |
| | | /** 不存在,新增订单 */ |
| | | generateOrders(params); |
| | | generateOrders(params, type); |
| | | } else { |
| | | if (order.getSettle() == 2) { |
| | | throw new CoolException("订单已处理,不可再变更!!"); |
| | | } |
| | | /** 存在,删除老订单,更新插入新订单 */ |
| | | // 删除旧订单明细 |
| | | if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) { |
| | |
| | | if (!orderService.deleteById(order.getId())) { |
| | | throw new CoolException("原单据删除失败!!"); |
| | | } |
| | | generateOrders(params); |
| | | generateOrders(params, type); |
| | | } |
| | | } |
| | | |
| | |
| | | * 生成订单信息 |
| | | * |
| | | * @param params |
| | | * @param type |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void generateOrders(PubOrderParams params) { |
| | | public void generateOrders(PubOrderParams params, String type) { |
| | | // 将数据当新订单插入 |
| | | Order newOrder = new Order(); |
| | | // 派工单号 |
| | |
| | | |
| | | if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) { |
| | | // 入库 |
| | | orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0); |
| | | if (type.equals("add")) { |
| | | orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0); |
| | | } else { |
| | | orderItem.setAnfme(Math.round(item.getNew_qty() * 10000) / 10000.0); |
| | | } |
| | | } else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) { |
| | | // 出库 |
| | | if (OrderWkType.ORDER_WK_ORDER_OUT.val.equals(params.getType())) { |
| | |
| | | } else if (OrderWkType.ORDER_WK_ORDER_OUT_EO.val.equals(params.getType()) |
| | | || OrderWkType.ORDER_WK_ORDER_OUT_SO.val.equals(params.getType())) { |
| | | // 备货指示派工单(EO/SO)出库 |
| | | orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0); |
| | | if (type.equals("add")) { |
| | | orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0); |
| | | } else { |
| | | orderItem.setAnfme(Math.round(item.getNew_qty() * 10000) / 10000.0); |
| | | } |
| | | } |
| | | } |
| | | orderItem.setMatnr(matnr.getMatnr()); |