廖井涛
2024-05-28 89ac789c107576f2b7bf3fe159efa442f5e07a6e
修改两层实体类无法页脚求和跟筛选
13个文件已修改
171 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/hook/footSum.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/hook/index.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/StorageRecord.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TakeOutRecord.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/customer/SelectCustomerOrder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/hook/footSum.js
@@ -1,7 +1,12 @@
export default function footSum(list, field) {
    let count = 0
    list.forEach(item => {
        count += Number(item[field])
        if(field.indexOf('.')>-1){
            let  array = field.split('.')
            count += Number(item[array[0]][array[1]])
        }else {
            count += Number(item[field])
        }
    })
    return count.toFixed(2)
}
north-glass-erp/northglass-erp/src/hook/index.js
@@ -9,7 +9,24 @@
// 筛选函数
const filterChanged = ({ option, row, column }) => {
    if (option.data) {
        return row[column.field].toString().indexOf(option.data) > -1
        if(column.field.indexOf('.')>-1){
            let  array = column.field.split('.')
            console.log(row[array[0]][array[1]])
            if (row[array[0]][array[1]]==null){
                return ''.indexOf(option.data) > -1
            }else {
                return row[array[0]][array[1]].toString().indexOf(option.data) > -1
            }
        }else {
            if (row[column.field]==null){
                return ''.indexOf(option.data) > -1
            }else {
                return row[column.field].toString().indexOf(option.data) > -1
            }
        }
    }
    return true
}
north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/SelectIngredientsStock.vue
@@ -222,6 +222,7 @@
      for (let i=0;i<BasicData.value.length;i++){
        let aa={field: "json."+BasicData.value[i].OperateType, width: '150',title: BasicData.value[i].OperateTypeName, sortable: true,showOverflow:'ellipsis' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}
        console.log(aa)
        gridOptions.columns.push(aa)
      }
@@ -503,7 +504,7 @@
          filters:[{ data: '' }],
          slots: { filter: 'num1_filter' },
          filterMethod:filterChanged}
        console.log(column)
        gridOption.columns.push(column)
      }
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
@@ -8,6 +8,7 @@
import useUserInfoStore from "@/stores/userInfo";
import {ElMessage} from "element-plus";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
//语言获取
const { t } = useI18n()
@@ -236,12 +237,15 @@
  }
  ,//table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    let footList = ['orderDetail.quantity','inventoryQuantity','order.area','receivedQuantity']
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        if (footList.includes(column.field)) {
          return footSum(data, column.field)
        }
        return ''
      })
    ]
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue
@@ -11,6 +11,7 @@
import {ElMessage} from "element-plus";
import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
//语言获取
const { t } = useI18n()
@@ -325,14 +326,15 @@
  },
  footerMethod ({ columns, data }) {//页脚函数
    let footList = ['finishedGoodsInventory.quantityAvailable','finishedGoodsInventory.area']
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        if (footList.includes(column.field)) {
          return footSum(data, column.field)
        }
        return ''
      })
    ]
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
@@ -7,6 +7,7 @@
import useUserInfoStore from "@/stores/userInfo";
import {ElMessage} from "element-plus";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
//语言获取
const { t } = useI18n()
@@ -240,14 +241,16 @@
  },
  //table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    let footList = ['orderDetail.quantity','deliveryDetail.quantity','warehouseNum','delivery.area']
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        if (footList.includes(column.field)) {
          return footSum(data, column.field)
        }
        return ''
      })
    ]
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/StorageRecord.vue
@@ -9,6 +9,7 @@
import {ElMessage} from "element-plus";
import {Search} from "@element-plus/icons-vue";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
//语言获取
const { t } = useI18n()
@@ -238,14 +239,15 @@
  },
  footerMethod ({ columns, data }) {//页脚函数
    let footList = ['quantity']
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        if (footList.includes(column.field)) {
          return footSum(data, column.field)
        }
        return ''
      })
    ]
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TakeOutRecord.vue
@@ -9,6 +9,7 @@
import {ElMessage} from "element-plus";
import {Search} from "@element-plus/icons-vue";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
//语言获取
const { t } = useI18n()
@@ -236,14 +237,15 @@
  },
  footerMethod ({ columns, data }) {//页脚函数
    let footList = ['quantity']
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        // if (props.tableProp.footList.includes(column.field)) {
        //   return sumNum(data, column.field)
        // }
        if (footList.includes(column.field)) {
          return footSum(data, column.field)
        }
        return ''
      })
    ]
north-glass-erp/northglass-erp/src/views/sd/customer/SelectCustomerOrder.vue
@@ -220,7 +220,7 @@
    custom: true
  },
  footerMethod ({ columns, data }) {//页脚函数
    let footList = ['quantity','area']
    let footList = ['quantity','area','order.money']
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -12,6 +12,7 @@
import { useI18n } from 'vue-i18n'
import OrderOtherMoney from "@/components/sd/order/OrderOtherMoney.vue";
import footSum from "@/hook/footSum";
import {changeFilterEvent,filterChanged} from "@/hook"
//语言获取
const { t } = useI18n()
@@ -194,7 +195,6 @@
      if(res.code==200){
        pageTotal.value=res.data.total
        console.log(res.data.delivery)
        titleUploadData.value=deepClone(res.data.delivery)
@@ -243,76 +243,6 @@
//定义当前页数
let pageNum=$ref(1)
const changeFilterEvent = (event, option, $panel) => {
  // 手动触发筛选
  $panel.changeOption(event, !!option.data, option)
}
//前端筛选
const filterChanged = ({ option, row, column }) => {
  if (option.data) {
    let param = column.field
    if(param.indexOf(".")>-1){
      let  array = param.split('.')
      return row[array[0]][array[1]].toString().toLowerCase().indexOf(option.data) > -1
    }else{
      return row[param].toString().toLowerCase().indexOf(option.data) > -1
    }
  }
  return true
  //@filter-change="filterChanged"
  /*gridOptions.loading=true
  //筛选条件发生变化条件发生变化
  let value = column.datas[0]!=undefined?column.datas[0]:''
  value = value.trim()
  //判断是否存在外键
  if (column.property.indexOf('.')>-1){
    const  columnArr = column.property.split('.')
    filterData.value[columnArr[0]] = {
      [columnArr[1]]:value
    }
  }else{
    filterData.value[column.property] = value
  }
  const str = route.query.deliveryID
  if (typeof str != 'undefined' && str != null && str !== '' && str !== '\n' && str !== '\r'){
    filterData.value.deliveryDetail.deliveryId=str
    request.post("/Delivery/getseletShippingOrderDetail/1/100",filterData.value).then((res) => {
      if(res.code==200){
        pageTotal.value=res.data.total
        pageNum=1
        produceList = deepClone(res.data.data)
        xGrid.value.reloadData(produceList)
        gridOptions.loading=false
      }else{
        ElMessage.warning(res.msg)
        router.push("/login")
      }
    })
  }
  const orderId = route.query.orderId
  if (typeof orderId !== 'undefined' && orderId !== null && orderId !== '' && orderId !== '\n' && orderId !== '\r'){
    filterData.value.orderId=orderId
    request.post("/Delivery/getseletShippingOrderDetails/1/100",filterData.value).then((res) => {
      if(res.code==200){
        pageTotal.value=res.data.total
        pageNum=1
        produceList = deepClone(res.data.data)
        xGrid.value.loadData(produceList)
        gridOptions.loading=false
      }else{
        ElMessage.warning(res.msg)
        router.push("/login")
      }
    })
  }*/
}
@@ -399,8 +329,8 @@
    custom: true
  },
  footerMethod ({ columns, data }) {//页脚函数
    //let footList=['deliveryDetail.quantity','quantity']
    let footList=[]
    let footList=['deliveryDetail.quantity','quantity','deliveryDetail.money']
    //let footList=[]
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
@@ -417,6 +347,7 @@
})
const gridEvents = {
  async toolbarButtonClick({code}) {
    const $grid = xGrid.value
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java
@@ -52,7 +52,8 @@
    Integer getSelectShippingOrderDetailsPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail);
    Boolean insertDeliveryDetail(@Param("orderDetail") OrderDetail orderDetail, @Param("number") String number,@Param("deliveryNumber") Integer deliveryNumber);
    Boolean insertDeliveryDetail(@Param("orderDetail") OrderDetail orderDetail, @Param("number") String number
            ,@Param("deliveryNumber") Integer deliveryNumber,@Param("deliveryDetailMoney") Double deliveryDetailMoney);
    Integer getdeliveryDetailmaximum(@Param("deliveryId") String deliveryId);
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -221,12 +221,27 @@
            //获取对象集合循环进行新增修改
            if (!orderDetaillist.isEmpty()) {
                for (OrderDetail orderDetail : orderDetaillist) {
                    //根据订单计算方式进行金额计算
                    double deliveryDetailMoney = 0.0;
                    if (orderDetail.getOrder().getCalculateType()==1){
                        deliveryDetailMoney=Double.valueOf(String.format("%.2f",Double.valueOf(String.format("%.2f", (orderDetail.getWidth()*orderDetail.getHeight()/1000000)))
                                *orderDetail.getDeliveryDetail().getQuantity()*orderDetail.getPrice()));
                    }else if (orderDetail.getOrder().getCalculateType()==2){
                        deliveryDetailMoney=Double.valueOf(String.format("%.2f",Double.valueOf(
                                String.format("%.2f", (orderDetail.getWidth()*orderDetail.getHeight()/1000000)*orderDetail.getDeliveryDetail().getQuantity())
                                )*orderDetail.getPrice()));
                    }else if (orderDetail.getOrder().getCalculateType()==3){
                        deliveryDetailMoney=Double.valueOf(String.format("%.2f",orderDetail.getPrice() * orderDetail.getDeliveryDetail().getQuantity()));
                    }
                    //对循环明细的数据进行累加
                    quantity += orderDetail.getDeliveryDetail().getQuantity();
                    area += orderDetail.getFinishedGoodsInventory().getActualSignalArea() * orderDetail.getDeliveryDetail().getQuantity();
                    money += orderDetail.getPrice() * orderDetail.getDeliveryDetail().getQuantity();
                    Integer deliveryDetailmaximum = deliveryDetailMapper.getdeliveryDetailmaximum(oddNumber);
                    //额外金额修改
                    Map<String,Double> otherColumns = JSON.parseObject(orderDetail.getOtherColumns(), new TypeReference<Map<String, Double>>(){});
                    if(otherColumns!=null){
                        otherColumns.forEach((key, value) ->{
@@ -242,7 +257,7 @@
                    }
                    //新增发货明细数据
                    deliveryDetailMapper.insertDeliveryDetail(orderDetail, oddNumber, deliveryDetailmaximum + 1);
                    deliveryDetailMapper.insertDeliveryDetail(orderDetail, oddNumber, deliveryDetailmaximum + 1,deliveryDetailMoney);
                    //修改订单明细
                    deliveryDetailMapper.updateOrderDetailDeliveryNum(orderDetail);
                    //修改库存表出库数量
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -34,6 +34,7 @@
        <result column="batch" property="order.batch"/>
        <result column="t_quantity" property="order.quantity"/>
        <result column="calculate_type" property="order.calculateType"/>
        <result column="customer_id" property="delivery.customerId"/>
@@ -151,7 +152,7 @@
        values (
                   #{number} ,#{deliveryNumber},#{orderDetail.orderNumber},#{orderDetail.computeGrossArea},
                #{orderDetail.orderId},#{orderDetail.deliveryDetail.quantity},
                #{orderDetail.price}*#{orderDetail.deliveryDetail.quantity},'',1,#{orderDetail.otherColumns},now()
                #{deliveryDetailMoney},'',1,#{orderDetail.otherColumns},now()
               )
    </insert>
@@ -351,6 +352,7 @@
        select od.order_id,
               od.order_number,
               o.batch,
               o.calculate_type,
               fgi.quantity_available,
               od.quantity- od.delivery_num as t_quantity,
               od.quantity as o_quantity,
@@ -895,7 +897,7 @@
               dd.money,
               dd.area,
               ifnull(od.processing_note,"") as processingNote,
               ifnull(od.building_number,"") as buildingNumber,
               ifnull(od.remarks,"") as buildingNumber,
               od.price
        from delivery_detail dd
                 left join order_detail od on dd.order_id = od.order_id and dd.order_number = od.order_number