guoyujie
2025-07-29 33331f53cc53742a0d7581857b77303a27a91250
获取每一层拱高
7个文件已修改
68 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet2.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet2.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderGlassDetail.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/ProductMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet2.vue
@@ -138,7 +138,7 @@
              <thead>
              <tr v-if="index===0">
                <th style="width: 6%;">序号</th>
                <th style="width: 20%;">楼层编号</th>
                <th style="width: 20%;">楼层编号(箱号)</th>
                <th style="width: 20%;" colspan="2">宽X高</th>
                <th style="width: 10%;">数量</th>
                <th style="width: 10%;">面积</th>
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet2.vue
@@ -190,7 +190,7 @@
          <td>下料-宽</td>
          <td>弧长</td>
          <td>下料-高</td>
          <td>成品拱高</td>
          <td>拱高</td>
          <td colspan="7"></td>
        </tr>
@@ -202,7 +202,7 @@
            <td>{{item2.childWidth}}</td>
            <td>{{item2.arc}}</td>
            <td>{{item2.childHeight}}</td>
            <td>{{item1.archRise}}</td>
            <td>{{item2.archRise?item2.archRise:item1.archRise}}</td>
            <td colspan="7"></td>
          </tr>
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -670,7 +670,10 @@
                     size="small">
            {{ $t('basicData.edit') }}
          </el-button>
          <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')">
          <el-popconfirm
              v-if="userStore.user.permissions.indexOf('selectOrder.edit') > -1"
              @confirm="getTableRow(row,'delete')"
                         :title="$t('searchOrder.deleteConfirm')">
            <template #reference>
              <el-button  link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>
            </template>
north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderGlassDetail.java
@@ -33,8 +33,10 @@
    @TableField(value = "`group`")
    private Integer group;
    private LocalDate productionTime;
    private Double archRise;
    private LocalDate createTime;
    @TableField(select = false,exist = false)
    private  Integer thickness;
north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductMapper.java
@@ -21,4 +21,6 @@
    List<Product> selectProduct(@Param("productName") String productName,@Param("productNameValue") String productNameValue);
    List<Product> selectProductId(@Param("productName") String productName,@Param("productNameValue") String productNameValue,@Param("id") Long id);
    Double getGlassThickness(Integer productId, Integer technologyNumber);
}
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -318,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())
            }
        });
north-glass-erp/src/main/resources/mapper/sd/ProductMapper.xml
@@ -133,4 +133,14 @@
    <update id="updateProductStateById">
        update product set state = #{state} where id = #{id}
    </update>
    <select id="getGlassThickness">
        select sum(REPLACE(JSON_UNQUOTE(JSON_EXTRACT(separation, '$.thickness')),'mm',''))
        from product_detail as a
        where a.prod_id = #{productId}
        and a.id &lt;= (select b.id
                        from product_detail as b
                        where b.prod_id = #{productId} and b.glass_sort = #{technologyNumber})
    </select>
</mapper>