guoyujie
2025-08-11 a12834e87a110fbf1414e24eb574f2e87b29e03c
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -295,6 +295,10 @@
                orderMapper.saveOrderFile(OrderDetails.get(i).getFileName(), OrderDetails.get(i).getFileData(),orderId,OrderDetails.get(i).getOrderNumber());
            }
            if(OrderDetails.get(i).getShape()==null){
                OrderDetails.get(i).setShape("1");
            }
        }
@@ -314,31 +318,36 @@
        orderDetails.forEach(orderDetail -> {
            //获取最小弧度
            OrderGlassDetail orderGlassDetail = orderGlassDetailMapper
                    .selectOne(new LambdaQueryWrapper<OrderGlassDetail>()
            List<OrderGlassDetail> orderGlassDetails = orderGlassDetailMapper
                    .selectList(new LambdaQueryWrapper<OrderGlassDetail>()
                            .eq(OrderGlassDetail::getOrderId, orderId)
                            .eq(OrderGlassDetail::getOrderNumber, orderDetail.getOrderNumber())
                            .orderByDesc(OrderGlassDetail::getArc)
                            .last("limit 1")
                    );
            //获取当前序号产品Math.cos(
            Product product = productMapper.selectById(orderDetail.getProductId());
            //内半径
            Double radius = orderDetail.getBendRadius() - product.getTotalThickness();
            //内片内弧长
            Double innerArc = orderGlassDetail.getArc()
                    -orderGlassDetail.getArc()*product.getTotalThickness()/orderDetail.getBendRadius();
            for(OrderGlassDetail orderGlassDetail:orderGlassDetails) {
                //获取当前层数与之前层数的厚度
                Double glassThickness = productMapper
                        .getGlassThickness(orderDetail.getProductId(), orderGlassDetail.getTechnologyNumber());
                //内半径
                Double radius = orderDetail.getBendRadius() - glassThickness;
            //拱高
            String archRiseS =  String.format("%.1f",radius-radius*Math.cos(innerArc/2/radius));
            Double archRise = Double.parseDouble(archRiseS);
            orderDetail.setArchRise(archRise);
            orderDetailMapper.update(null,new LambdaUpdateWrapper<OrderDetail>()
                    .set(OrderDetail::getArchRise,archRise)
                    .eq(OrderDetail::getId, orderDetail.getId())
            );
                //内片内弧长
                Double innerArc = orderGlassDetails.get(0).getArc()
                        - orderGlassDetails.get(0).getArc() * glassThickness / orderDetail.getBendRadius();
                //拱高
                String archRiseS = String.format("%.1f", radius - radius * Math.cos(innerArc / 2 / radius));
                Double archRise = Double.parseDouble(archRiseS);
                orderGlassDetailMapper.update(null, new LambdaUpdateWrapper<OrderGlassDetail>()
                        .set(OrderGlassDetail::getArchRise, archRise)
                        .eq(OrderGlassDetail::getId, orderGlassDetail.getId())
                );
//                orderDetailMapper.update(null,new LambdaUpdateWrapper<OrderDetail>()
//                        .set(OrderDetail::getArchRise,archRise)
//                        .eq(OrderDetail::getId, orderDetail.getId())
            }
        });
@@ -384,7 +393,7 @@
    public Map<String,Object> getOrderList(Integer pageNum, Integer pageSize, List<String> selectDate, Map<String,Object> config,Integer orderType) {
        Integer offset = (pageNum-1)*pageSize;
        String endDate = LocalDate.now().toString();
        String startDate = LocalDate.now().minusDays(15).toString();
        String startDate = LocalDate.now().minusDays(365).toString();
        if(selectDate !=null && selectDate.size()==2){
            if(!selectDate.get(0).isEmpty()){
                startDate = selectDate.get(0);
@@ -1011,4 +1020,26 @@
        map.put("data",orderMapper.selectOrderFile(orderId,orderNumber));
        return map;
    }
    public boolean updateOrderFile(Map<String,Object> object)  {
        String orderId = "";
        if (object.get("orderId") != null) {
            orderId = object.get("orderId").toString();
        }
        int orderNumber =0;
        if (object.get("orderNumber") != null) {
            orderNumber = Integer.parseInt(object.get("orderNumber").toString());
        }
        String dataBase64 = "";
        if (object.get("dataBase64") != null) {
            dataBase64 = object.get("dataBase64").toString();
        }
        Map<String,String> orderFile =orderMapper.selectOrderFile(orderId,orderNumber);
        if(orderFile!=null){
            orderMapper.updateOrderFile("map.dxf", dataBase64,orderId,orderNumber);
        }else{
            orderMapper.saveOrderFile("map.dxf", dataBase64,orderId,orderNumber);
        }
        return true;
    }
}