chenlu
2024-07-04 8e440746881d5af1b3c45531c2844fb804ac6d90
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
15个文件已修改
152 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet1.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet2.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/hook/mouseMove.ts 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/OrderOtherMoneyMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet1.vue
@@ -155,7 +155,7 @@
          <th>规格(宽W*高H)</th>
          <th>片数</th>
          <th>面积</th>
          <th>{{company.columnNamePerimeter}}</th>
          <th>延米</th>
          <th>楼号</th>
          <th>加工要求</th>
          <th>备注</th>
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet2.vue
@@ -137,7 +137,7 @@
          <th>规格(宽W*高H)</th>
          <th>片数</th>
          <th>面积</th>
          <th>{{company.columnNamePerimeter}}</th>
          <th>延米</th>
          <th>半径</th>
          <th>楼号</th>
          <th>加工要求</th>
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
@@ -6,15 +6,18 @@
import deepClone from "@/utils/deepClone";
import {ElMessage} from "element-plus";
import useUserInfoStore from "@/stores/userInfo";
import {Food} from "@element-plus/icons-vue";
import {Bottom, Burger, Food} from "@element-plus/icons-vue";
const company = companyInfo()
const userStore = useUserInfoStore()
const username = userStore.user.userName
let dialogVisible = ref(false)
let props = defineProps({
  orderId:null
})
let productId=ref({
})
let data = ref({
  order:{
@@ -22,13 +25,39 @@
  },
  orderProductDetail:[]
})
let productIdData = ref([
])
const selectedValues = ref([])
const grossNum = ref({
  quantity: 0,
  grossArea: 0,
  perimeter: 0
})
const getData = () => {
  request.get(`/order/printOrderProductDetail/${props.orderId}`).then(res => {
  request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => {
    console.log(res.data)
    data.value= res.data
    data.value.orderProductDetail.forEach(item => {
      productIdData.value.push(item.productId)
      grossNum.value.quantity += getQuantity(item.productDetail)
      grossNum.value.grossArea += getArea(item.productDetail)
      grossNum.value.perimeter += getPerimeter(item.productDetail)
      stringToJson(item.productDetail)
    })
    console.log(productIdData.value)
    grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(3))
    grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(3))
    grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3))
  })
}
const handleChange = () => {
  request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => {
    console.log(res.data)
    data.value= res.data
    data.value.orderProductDetail.forEach(item => {
@@ -37,12 +66,17 @@
      grossNum.value.perimeter += getPerimeter(item.productDetail)
      stringToJson(item.productDetail)
    })
    console.log(productIdData)
    grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(3))
    grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(3))
    grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3))
  })
}
const handleDoubleClick = () => {
  dialogVisible.value=true
}
onMounted(() => {
@@ -94,7 +128,8 @@
<template>
  <div id="sheet">
  <div id="sheet" @dblclick="handleDoubleClick" >
    <table style="border-style: none;" >
      <thead>
      <tr class="title-s">
@@ -107,10 +142,10 @@
      <tr class="title-s">
        <th colspan="2"></th>
        <th colspan="5">
          <h3 >生成任务单(成品)</h3>
        <th colspan="5" >
          <h3 style="margin-left: 25%">生成任务单(成品)</h3>
        </th>
        <th colspan="2" style="text-align: left;font-weight: bold;">订单编号:<span>{{ data.order.orderId }}</span></th>
        <th colspan="2" style="text-align: center;font-weight: bold;">订单编号:<span>{{ data.order.orderId }}</span></th>
      </tr>
      <tr>
        <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="4">
@@ -215,6 +250,16 @@
    </table>
    <el-dialog v-model="dialogVisible" style="width: 40%;height: 20%;margin-top: 10%" >
      <el-select v-model="selectedValues" style="width: 100%" @change="handleChange" multiple  placeholder="请选择">
        <el-option
            v-for="item in productIdData"
            :key="item"
            :label="item"
            :value="item">
        </el-option>
      </el-select>
    </el-dialog>
  </div>
north-glass-erp/northglass-erp/src/hook/mouseMove.ts
@@ -134,18 +134,25 @@
    if (event.button === 0) {//左键松开
        isSelecting.value = false//标记为停止选择操作
    }
    const result = exportData()
    /*const result = exportData()
    const activeElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p")
    const element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p")
    if(result.length===2 && result[0].length===1){
        activeElement.innerHTML =''
        element.innerHTML =''
        return
    }
    let sum = 0
    result.forEach((item,index) => {
        if(index>0){
            sum+=item.reduce((a, b) => a*1 + b*1, 0);
        }
    })
    const activeElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p")
    const element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p")
    sum=isNaN(sum)?0:sum
    activeElement.innerHTML ="SUM:"+parseFloat(sum.toFixed(2))
    element.innerHTML ="SUM:"+parseFloat(sum.toFixed(2))
    element.innerHTML ="SUM:"+parseFloat(sum.toFixed(2))*/
}
let outevent = ref()//移动事件,不保存,循环定时器内无法监听到新的事件
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue
@@ -113,7 +113,8 @@
        <span>{{ item.project }}</span>&nbsp;
        <span>{{ item.buildingNumber }}</span>
      </div>
      <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div>
      <div class="row5">
        <span>{{item.remarks}}</span>&nbsp;
        <span>{{ item.processingNote }}</span>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue
@@ -113,7 +113,8 @@
        <span>{{ item.project }}</span>&nbsp;
        <span>{{ item.buildingNumber }}</span>
      </div>
      <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div>
      <div class="row5">
        <span>{{item.remarks}}</span>&nbsp;
        <span>{{ item.processingNote }}</span>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -53,6 +53,7 @@
          }
        }
        console.log(labelList.value)
        console.log(JSON.parse(labelList.value[0].other_columns).S02)
      } else {
        ElMessage.warning(res.msg)
        router.push("/login")
@@ -139,7 +140,8 @@
        <div  class="row2">
          <span>{{ item.order_id }}</span>&nbsp;
        </div>
        <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div>
        <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
        <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div>
        <div class="row5">
          <span>{{item.project}}</span>&nbsp;
          <span>{{ item.building_number }}</span>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue
@@ -112,7 +112,8 @@
        <span>{{ item.project }}</span>&nbsp;
        <span>{{ item.buildingNumber }}</span>
      </div>
      <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div>
      <div class="row5">
        <span>{{item.remarks}}</span>&nbsp;
        <span>{{ item.processingNote }}</span>
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -865,7 +865,8 @@
const updateMoney = () => {
  const updateData = {
    order: titleUploadData.value,
    detail: xGrid.value.getTableData().fullData
    detail: xGrid.value.getTableData().fullData,
    otherMoney:otherMoney.value
  }
  request.post(`/order/updateOrderMoney`,updateData).then(res => {
    if (res.code == 200){
north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
@@ -92,7 +92,7 @@
      {'code': 'review', 'name': t('basicData.review'),status: 'primary'},
    ],
    // import: false,
    // export: true,
     export: true,
    // print: true,
    zoom: true,
    custom: true
north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -42,7 +42,7 @@
        }
    }
    @ApiOperation("订单保存")
    @ApiOperation("订单表头保存")
    @PostMapping("/saveOrderTitle")
    @SaCheckPermission("createOrder.add")
    public Result saveOrderTitle(@RequestBody Map<String, Object> orderMap) throws Exception {
@@ -184,12 +184,11 @@
        return   Result.seccess(orderService.printOrderProductGlassDetail(orderId));
    }
    @ApiOperation("订单加工单打印-成品2")
    @GetMapping ("/printOrderProductDetail/{orderId}/{productId}")
    public Result printOrderProductDetail(@PathVariable String orderId,@PathVariable String productId)  {
    @GetMapping ("/printOrderProductDetail/{orderId}/{selectedValues}")
    public Result printOrderProductDetail(@PathVariable String orderId,@PathVariable List<String> selectedValues)  {
        return   Result.seccess(orderService.printOrderProductDetails(orderId,productId));
        return   Result.seccess(orderService.printOrderProductDetails(orderId,selectedValues));
    }
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
@@ -33,7 +33,7 @@
    List<Map<String,Object>> getOrderProductDistinctById(String orderId);
    List<Map<String,Object>> getOrderProductDistinctByIds(String orderId,String productId);
    List<Map<String,Object>> getOrderProductDistinctByIds(String orderId,List<String> productId);
    List<OrderDetail> getOrderProductByProductId(Object productId, String orderId);
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -22,6 +22,7 @@
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@Service
@DS("sd")
@@ -48,7 +49,7 @@
        Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class);
        List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("detail")), OrderDetail.class);
        List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("otherMoney")), OrderOtherMoney.class);
        orderOtherMoneyList = orderOtherMoneyList.stream().filter(o -> o.getColumn().indexOf("M")==0).collect(Collectors.toList());
        boolean saveState = true;
        //设置回滚点
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
@@ -165,7 +166,7 @@
        for (int i = 0; i < OrderDetails.size(); i++) {
            OrderDetails.get(i).setOrderNumber(i+1);
            OrderDetails.get(i).setOrderId(orderId);
            OrderDetails.get(i).setPerimeter((OrderDetails.get(i).getWidth()+OrderDetails.get(i).getHeight())*2/1000);
            OrderDetails.get(i).setPerimeter(Double.valueOf(String.format("%.3f",(OrderDetails.get(i).getWidth()+OrderDetails.get(i).getHeight())*2/1000)));
            OrderDetails.get(i).setWeight(1.0);
            if(OrderDetails.get(i).getBendRadius()!=null && OrderDetails.get(i).getBendRadius()!=0){
                //获取弯钢弧度
@@ -202,7 +203,6 @@
        orderDetailMapper.insertBatch(OrderDetails);
        //往小片表传入产品数据
        orderGlassDetailMapper.insertOrderGlassDetail(orderId);
        //往订单其他金额副表传入数据
        orderOtherMoneyList.forEach(orderOtherMoney ->{
            orderOtherMoney.setId(null);
            orderOtherMoney.setOrderId(orderId);
@@ -324,12 +324,20 @@
        JSONObject jsonObject = new JSONObject(map);
        Order order = JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("order")), Order.class);
        List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("detail")), OrderDetail.class);
        List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("otherMoney")), OrderOtherMoney.class);
        double money = 0;
        for (OrderDetail orderDetail : OrderDetails) {
            orderDetail =  updateOrderMoneyComputed(orderDetail,order.getCalculateType());
            money+= orderDetail.getGrossAmount();
        }
        orderOtherMoneyList.forEach(orderOtherMoney -> {
            if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){
                orderOtherMoney.setMoney((orderOtherMoney.getQuantity()*orderOtherMoney.getPrice()));
            }
            orderOtherMoneyMapper.update(orderOtherMoney,new QueryWrapper<OrderOtherMoney>()
                    .eq("order_id",orderOtherMoney.getOrderId())
                    .eq("`column`",orderOtherMoney.getColumn()));
        });
        order.setMoney(money+orderOtherMoneyMapper.selectGrossAmount(order.getOrderId()));
        orderMapper.updateMoney(order);
        orderDetailMapper.updateOrderMoney(OrderDetails);
@@ -449,12 +457,12 @@
        return returns;
    }
    public Object printOrderProductDetails(String orderId,String productId) {
    public Object printOrderProductDetails(String orderId,List<String> productId) {
        List<Map<String,Object>> orderProductDistinct;
        if (productId!=""){
             orderProductDistinct = orderDetailMapper.getOrderProductDistinctByIds(orderId,productId);
        if (productId.size()>0){
            orderProductDistinct = orderDetailMapper.getOrderProductDistinctByIds(orderId,productId);
        }else{
             orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderId);
            orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderId);
        }
        List<Map<String,Object>> orderProductDetail = new ArrayList<>();
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -778,11 +778,14 @@
    <select id="getOrderProductDistinctByIds">
        select
            (a.product_id) as 'productId',
            a.product_name as 'productName',
            a.order_number as 'orderNumber'
        (a.product_id) as 'productId',
        a.product_name as 'productName',
        a.order_number as 'orderNumber'
        from order_detail as a
        where a.order_id = #{orderId} and a.product_id regexp #{productId}
        where a.order_id = #{orderId} and a.product_id IN
        <foreach item="item" index="index" collection="productId" open="(" separator="," close=")">
            #{item}
        </foreach>
        group by a.product_id
    </select>
north-glass-erp/src/main/resources/mapper/sd/OrderOtherMoneyMapper.xml
@@ -13,10 +13,10 @@
            a.create_time,
            b.alias,
            b.id
        from order_other_money as a
        left join  basic_other_money as b
        on a.`column` = b.`column`
        where a.order_id = #{orderId}
        from basic_other_money as b
        left join  order_other_money as a
        on a.`column` = b.`column` and a.order_id = #{orderId}
        where b.`column` like 'M%' and b.state=1
    </select>
    <select id="selectGrossAmount">