chenlu
2024-06-19 3760bb766253ea2b2291e00d7bc5147bdee9bb44
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -72,6 +72,49 @@
        }
        return saveState;
    }
    public boolean saveOrderTitle(Map<String,Object> orderMap) throws Exception {
        JSONObject orderJson = new JSONObject(orderMap);
        Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class);
        boolean saveState = true;
        //设置回滚点
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        //判断传入id参数是否为空,未传入id为空插入订单表,传入更新表
        try{
            LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>();
            updateWrapper.eq(Order::getOrderId, order.getOrderId());
            orderMapper.update(order,updateWrapper);
            //修改订单主表面积与周长以及重量
            orderMapper.updateOrderParameter(order.getOrderId());
        }catch (Exception e){
            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
            //将异常传入数据库
            SysError sysError = new SysError();
            sysError.setError(e.toString());
            sysError.setFunc("saveOrder");
            sysErrorService.insert(sysError);
            saveState = false;
            //throw new Exception();
        }
        return saveState;
    }
    public Map<String,Object> selectOrder(Map<String,Object> orderMap) throws Exception {
        JSONObject orderJson = new JSONObject(orderMap);
        Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class);
        Map<String,Object> map = new HashMap<>();
        if(order.getOrderId()!=null){
            map.put("data",0);
        }else{
            map.put("data",orderMapper.selectOrder(order));
        }
        return map;
    }
    //生成订单数据
    public void insertOrder(Order order,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) {
        Integer maxOrderId = orderMapper.selectMaxOrderId();
@@ -86,7 +129,9 @@
        order.setOrderId(orderId);
        order.setCreateOrder(2);
        orderMapper.insert(order);
        insertOtherDetail(orderId,OrderDetails,orderOtherMoneyList);
    }
    //修改订单数据,并且重新生成多个副表数据
@@ -239,8 +284,12 @@
        Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",id));
        if(order.getProcessReview()!=2){
            throw  new ServiceException(Constants.Code_600,"该订单还未审核");
        }
        }else if(status==0){
            return orderMapper.reviewOrderByIds(id,status,userId,userName);
        }else{
        return orderMapper.reviewOrderById(id,status,userId,userName);
        }
    }
    //工艺审核界面审核更新数据
    public boolean reviewProcessById(String id, Integer status,List<OrderGlassDetail> orderGlassDetails) {
@@ -379,10 +428,12 @@
            orderProductDetailMap.put("productName",map.get("productName"));
            List<OrderDetail> orderDetails = orderDetailMapper.getOrderProductByProductId(map.get("productId"),orderId);
            orderDetails.forEach(orderDetail->{
                orderDetail.setGrossArea(
                        Double.parseDouble(String.format("%.3f",
                        Double.parseDouble(String.format("%.3f",Double.parseDouble(
                                String.format("%.3f",
                                orderDetail.getWidth()*orderDetail.getHeight()/1000000)
                                ) * orderDetail.getQuantity()
                                ) * orderDetail.getQuantity()))
                );
            });
@@ -410,9 +461,10 @@
            List<OrderDetail> orderDetails = orderDetailMapper.getOrderProductByProductId(map.get("productId"),orderId);
            orderDetails.forEach(orderDetail->{
                orderDetail.setGrossArea(
                        Double.parseDouble(String.format("%.3f",
                        Double.parseDouble(String.format("%.3f",Double.parseDouble(
                                String.format("%.3f",
                                orderDetail.getWidth()*orderDetail.getHeight()/1000000)
                        ) * orderDetail.getQuantity()
                        ) * orderDetail.getQuantity()))
                );
                List<OrderGlassDetail> orderGlassDetails =
@@ -421,6 +473,8 @@
                                        eq("order_id",orderId).
                                        eq("order_number",orderDetail.getOrderNumber())
                        );
                Integer differentSize = orderGlassDetailMapper.getDifferentSizeNumber(orderId,orderDetail.getOrderNumber());
                orderDetail.setDifferentSize(differentSize);
                orderDetail.setOrderGlassDetails(orderGlassDetails);
            });