guoyujie
2025-10-23 cc8efc81d2d35bed40e47d0a5b0920a4b6f8095f
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -83,13 +83,12 @@
            log.setContent(orderMap.toString());
            if(order.getOrderId() == null || order.getOrderId().isEmpty()){
                insertOrder(order,OrderDetails,orderOtherMoneyList,orderIdType);
                insertOrder(order,OrderDetails,orderOtherMoneyList,orderIdType, (Map<String, String>) orderMap.get("position"));
                log.setFunction("saveOrder创建:"+order.getOrderId());
            }else {
                updateOrder(order,OrderDetails,orderOtherMoneyList);
                updateOrder(order,OrderDetails,orderOtherMoneyList,(Map<String, String>) orderMap.get("position"));
                log.setFunction("saveOrder修改:"+order.getOrderId());
            }
            logService.saveLog(log);
        }catch (Exception e){
            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
@@ -99,7 +98,6 @@
            sysError.setFunc("saveOrder");
            sysErrorService.insert(sysError);
            saveState = false;
            //throw new Exception();
        }
        return saveState;
@@ -108,7 +106,6 @@
    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();
@@ -147,7 +144,6 @@
            sysError.setFunc("saveOrder");
            sysErrorService.insert(sysError);
            saveState = false;
            //throw new Exception();
        }
        return saveState;
@@ -167,15 +163,14 @@
        return map;
    }
    //生成订单数据
    public void insertOrder(Order order, List<OrderDetail> OrderDetails, List<OrderOtherMoney> orderOtherMoneyList, String orderIdType) {
    public void insertOrder(Order order, List<OrderDetail> OrderDetails, List<OrderOtherMoney> orderOtherMoneyList, String orderIdType, Map<String,String> position) {
        //根据传入的当前月份或者当天生成订单id
        String orderId =  getOrderId(orderIdType);
        //往主表插数据
        order.setOrderId(orderId);
        order.setCreateOrder(2);
        orderMapper.insert(order);
        insertOtherDetail(orderId,OrderDetails,orderOtherMoneyList);
        insertOtherDetail(orderId,OrderDetails,orderOtherMoneyList,position);
    }
    private String getOrderId(String dateType){
@@ -205,13 +200,12 @@
            String formattedDate = dateFormat.format(currentDate);
            orderId =  "NG"+formattedDate+formattedNumber;
        }
        return orderId;
    }
    //修改订单数据,并且重新生成多个副表数据
    public void updateOrder(Order order,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) throws Exception {
    public void updateOrder(Order order, List<OrderDetail> OrderDetails, List<OrderOtherMoney> orderOtherMoneyList, Map<String, String> position) throws Exception {
        Order oldOrder = orderMapper.selectOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderId,order.getOrderId()));
        if(oldOrder.getProcessReview()==2){
            throw  new ServiceException(Constants.Code_600,"该订单已经审核,无法修改");
@@ -236,13 +230,13 @@
        orderDetailMapper.deleteOrderFile(order.getOrderId());
        insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList);
        insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList, position);
    }
    //插入其他副表数据,被其他方法引用
    public void insertOtherDetail(String orderId,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) {
    public void insertOtherDetail(String orderId, List<OrderDetail> OrderDetails, List<OrderOtherMoney> orderOtherMoneyList, Map<String, String> position) {
        //先把其他金额副表的金额与数量置0
        if(orderOtherMoneyList!=null){
            orderOtherMoneyList.forEach(orderOtherMoney -> {
@@ -276,7 +270,6 @@
            if(otherColumns!=null){
                otherColumns.values().removeIf(value -> value == null || value.equals(""));
                OrderDetails.get(i).setOtherColumns(JSON.toJSONString(otherColumns));
                otherColumns.forEach((key, value) ->{
                    if(value!=null && !value.equals("") && key.contains("M")) {
@@ -292,25 +285,19 @@
            }else{
                OrderDetails.get(i).setOtherColumns("{}");
            }
            if(OrderDetails.get(i).getFileName()!=null&&!OrderDetails.get(i).getFileName().trim().isEmpty()){
                orderMapper.saveOrderFile(OrderDetails.get(i).getFileName(), OrderDetails.get(i).getFileData(),orderId,OrderDetails.get(i).getOrderNumber(),OrderDetails.get(i).getFileJson());
            }
            if(OrderDetails.get(i).getShape()==null){
                OrderDetails.get(i).setShape("1");
            }
        }
        //往明细表插数据
        orderDetailMapper.insertBatch(OrderDetails);
        //往小片表传入产品数据
        orderGlassDetailMapper.insertOrderGlassDetail(orderId);
        orderGlassDetailMapper.insertOrderGlassDetail(orderId,position.get("outside"),position.get("inside"));
        //修改成品拱高
        List<OrderDetail> orderDetails = orderDetailMapper
                .selectList(new LambdaQueryWrapper<OrderDetail>()
@@ -371,8 +358,6 @@
        //修改订单主表面积与周长以及重量
        orderMapper.updateOrderParameter(orderId);
    }
    public static List<OrderProcessDetail> getOrderProcessDetails(List<OrderGlassDetail> orderGlassDetails) {
@@ -434,8 +419,6 @@
        List<OrderDetail> orderDetails = orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id));
        List<OrderOtherMoney> orderOtherMoneyList = orderOtherMoneyMapper.findById(id);
        List<Map<String,String>> orderFileList = orderMapper.selectOrderFileList(id);
        Map<String,Object> map = new HashMap<>();
        map.put("order",order);
        map.put("orderDetails",orderDetails);
@@ -852,16 +835,7 @@
        });
        returns.put("orderDetail",orderProductDetail);
        return returns;
    }
    public boolean updateOrderPrintNumber(String orderId) {