chenlu
2024-07-15 4492d962dae3f05ad3ac7db175ec75f5a903f997
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
12个文件已修改
237 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet2.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/en.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/ru.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryReport.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/dto/sd/DeliveryDetailDTO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue
@@ -133,13 +133,13 @@
              <thead>
              <tr v-if="index===0">
                <th style="width: 6%;">序号</th>
                <th style="width: 20%;">楼层编号</th>
                <th style="width: 20%;" colspan="1">宽X高</th>
                <th style="width: 15%;">楼层编号</th>
                <th style="width: 17%;" colspan="1">宽X高</th>
                <th style="width: 10%;">数量</th>
                <th style="width: 10%;">面积</th>
                <th style="width: 10%;">单价</th>
                <th style="width: 12%;">金额</th>
                <th style="width: 12%;" colspan="2">加工要求</th>
                <th style="width: 20%;" colspan="2">加工要求</th>
              </tr>
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet2.vue
@@ -242,7 +242,7 @@
<style scoped>
#sheet{
  width: 100%;
  width: 98%;
  height: 100%;
  text-align: center;
}
@@ -294,4 +294,9 @@
.notChangeRow{
  white-space: nowrap;
}
@media print {
  @page {
    margin: 5mm; /* 设置打印页面的边距 */
  }
}
</style>
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue
@@ -86,26 +86,26 @@
        <th style="text-align: left;border:none;font-weight: bold;" colspan="2">联系电话:<span>{{delivery.contactNumber}}</span></th>
      </tr>
      <tr>
        <th style="width: 6%;font-weight: bold;">序号</th>
        <th style="width: 20%;font-weight: bold;">楼层编号</th>
        <th style="width: 20%;font-weight: bold;" colspan="2">宽X高</th>
        <th style="width: 10%;font-weight: bold;">数量</th>
        <th style="width: 10%;font-weight: bold;">面积</th>
        <th style="width: 10%;font-weight: bold;">单价</th>
        <th style="width: 12%;font-weight: bold;">金额</th>
        <th style="width: 12%;font-weight: bold;" colspan="2">加工要求</th>
        <th style="width: 6%;">序号</th>
        <th style="width: 15%;">楼层编号</th>
        <th style="width: 17%;" colspan="1">宽X高</th>
        <th style="width: 10%;">数量</th>
        <th style="width: 10%;">面积</th>
        <th style="width: 10%;">单价</th>
        <th style="width: 12%;">金额</th>
        <th style="width: 20%;" colspan="2">加工要求</th>
      </tr>
      <template v-for="(item, index) in produceList" :key="index" >
        <tr>
          <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="4">产品名称:<span>{{item.DeliveryDetail.productName}}</span></td>
          <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="3">对方单号:</td>
          <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="2">对方单号:</td>
          <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="3">订单编号:<span>{{item.DeliveryDetail.orderId}}</span></td>
        </tr>
        <tr class="day-in" v-for="(items, index1) in item.DeliveryDetailList" :key="index1">
          <td>{{items.order_number}}</td>
          <td>{{items.buildingNumber}}</td>
          <td colspan="2" style="font-size: 15px;font-weight: bold;">{{items.width}}x{{items.height}}</td>
          <td colspan="1" style="font-size: 15px;font-weight: bold;">{{items.width}}x{{items.height}}</td>
          <td>{{items.quantity}}</td>
          <td>{{items.compute_gross_area}}</td>
          <td>{{items.price}}</td>
@@ -113,7 +113,7 @@
          <td colspan="2">{{items.processingNote}}</td>
        </tr>
        <tr class="day-in" >
          <td style="font-size: 15px;font-weight: bold;" colspan="4">小计:</td>
          <td style="font-size: 15px;font-weight: bold;" colspan="3">小计:</td>
          <td>{{item.DeliveryDetail.quantity}}</td>
          <td>{{item.DeliveryDetail.area}}</td>
          <td></td>
@@ -123,7 +123,7 @@
      </template>
      <tr class="day-in">
        <td style="font-size: 15px;font-weight: bold;" colspan="4">合计:</td>
        <td style="font-size: 15px;font-weight: bold;" colspan="3">合计:</td>
        <td>{{delivery.quantity}}</td>
        <td>{{delivery.area}}</td>
        <td></td>
north-glass-erp/northglass-erp/src/lang/en.js
@@ -57,10 +57,19 @@
        print:'Print',
        export:'Derive',
        empty:'Clear',
        incrementalAll:'Increase successively after selecting',
        incrementalChecked:'Selected and increased successively',
        true:'Yes',
        false:'No',
        computedSize:'Scientific counting',
        paste:'Paste',
        msg:{
            max255:"The value contains a maximum of 255 characters",
            range99999Dec2:
                "Please enter a number between 0 and 99999 with a maximum of two decimals",
            range99999Dec3:
                "Please enter a number between 0 and 99999 with a maximum of three decimals",
            range999999Dec2:
                "Please enter a number between 0 and 999999 with a maximum of two decimals",
            greater0:"Please enter an integer greater than 0",
@@ -145,6 +154,7 @@
            theProductHasBeenReviewedAndCannotBeDeleted:'The product has been reviewed and cannot be removed',
            productAbbreviation:'Product abbreviation',
            productDuplication:'Product repetition',
        }
    },
    order:{
@@ -210,6 +220,16 @@
        orderDetailsSummaryReport:'Order details summary report',
        buildingNumber:'Floor number',
        saveHeader:'Save header',
        orderNotApproved:'Order not reviewed',
        orderHasBeenReceived:'The order is in stock',
        printingNumber:'Print times',
        processingOrder:'Processing sheet',
        sheet2:'Horizontal - multi-layer details',
        sheet4:'Production and processing of single vertical plate',
        sheet3:'View shipping information',
        sheet5:'Production and processing of single curved glass (single sheet)',
        oneClickStorage:'One-click completion',
        msg:{
            productCheck:'Please select a product',
            tableLengthNot:'No table data',
@@ -232,6 +252,8 @@
            calculationAreaPrompt4:'Calculate',
            warning:'Tips',
            calculationAreaPrompt5:'Do you want to continue creating duplicate orders',
            pleaseCancelTheFilteringFirst:'Please cancel the selection first.',
        }
    },
@@ -375,9 +397,10 @@
        deleteNoProcedure:'Delete failed Check whether the next operation has been reported',
        pleaseCheckTheRequiredData:'Please check the required data',
        landingSequence:'Landing sequence',
        labelStyle:'Label Style',
        customLabelPrinting:'Custom label printing',
        labelPrinting:'Label printing',
        labelPrinting:'Lable Printing',
        sortingSuccessful:'Sorting successful',
        sorting:'Sorting',
        pleaseSelect:'Please select',
@@ -388,12 +411,13 @@
        halfProductLabel:'Half-finished product label',
        pleaseSelectCustomPrintLabelStyle:'Please select a custom print label style',
        mergePrinting:'Merge printing',
        printStatus:'Print status',
        printStatus:'Print times',
        labelPrinting2:'Label printing 2',
        addAutomatically:'Auto fill',
        selectFill:'Select fill'
        selectFill:'Selected fill'
    },
    reportingWorks:{
        glassNumber:'number',
        glassNumber:'Code',
        glassAddress:'Glass Address',
        WorkReportingManagement:'Work Reporting Management ',
        addReportingWorks:'New Work Reporting',
@@ -648,6 +672,8 @@
        salesman:'Salesman',
        money:'Amount',
        pleaseSelectTheSameCustomerProject:'Please select the project for the same customer',
    },
    replenish:{
        patchManagement:'Patch Management',
@@ -704,6 +730,10 @@
        ConfirmPasswordCannotBeEmpty:'Confirm that the password cannot be empty',
        TheTwoPasswordsAreNotTheSame:'Two different passwords',
        OldPasswordError:'Old password error',
        userName:'User name',
        changeUserName:'Modifying a user name',
        userNameCannotBeEmpty:'The user name cannot be empty',
    },
    orderBasicData:{
        order:'Order',
@@ -737,6 +767,10 @@
        firstLevel:'Primary class',
        towLevel:'Secondary class',
        alias:'alias',
        msg1:'Upload picture size can not exceed 5MB!',
        msg2:'Upload picture can only be JPG or PNG format!',
        selectFile:'Selecting file',
        msg3:'Only jpg/png files can be uploaded and the size does not exceed 5 MB',
    },
    machine:{
        basicId:'Equipment number',
north-glass-erp/northglass-erp/src/lang/ru.js
@@ -57,10 +57,19 @@
        print:'Печать',
        export:'Экспорт',
        empty:'Очистить',
        incrementalAll:'之后递增',
        incrementalChecked:'选中递增',
        true:'是',
        false:'否',
        computedSize:'科学计数',
        paste:'粘贴',
        msg:{
            max255:"Введите 255 символов.",
            range99999Dec2:
                "Введите число между 0 - 99999 и сохраните до двух десятичных знаков.",
            range99999Dec3:
                "Введите число между 0-9999999 и сохраните до трех десятичных точек.",
            range999999Dec2:
                "Введите число между 0 - 999999 и сохраните до двух десятичных знаков.",
            greater0:"Введите целое число больше 0",
@@ -145,6 +154,7 @@
            theProductHasBeenReviewedAndCannotBeDeleted:'Продукция проверена и не может быть удалена',
            productAbbreviation:'Продукция',
            productDuplication:'产品重复',
        }
    },
    order:{
@@ -210,6 +220,16 @@
        orderDetailsSummaryReport:'Сводный отчет о заказах',
        buildingNumber:'Номер этажа',
        saveHeader:'Изменить заголовок таблицы',
        orderNotApproved:'订单未审核',
        orderHasBeenReceived:'订单已入库',
        printingNumber:'打印次数',
        processingOrder:'加工单',
        sheet2:'横版-多层明细',
        sheet4:'生产加工单纵版',
        sheet3:'浏览发货信息',
        sheet5:'生产加工单弯钢(单片)',
        oneClickStorage:'一键完工',
        msg:{
            productCheck:'Пожалуйста, выберите продукт',
            tableLengthNot:'Нет данных таблицы',
@@ -232,6 +252,8 @@
            calculationAreaPrompt4:'Расчет',
            warning:'Подсказка',
            calculationAreaPrompt5:'Повторить заказ Создать',
            pleaseCancelTheFilteringFirst:'请先取消筛选',
        }
    },
@@ -374,9 +396,11 @@
        deleteNo:'Ошибка удаления, проверьте обратную связь карты процесса',
        deleteNoProcedure:'Ошибка удаления, проверьте обратную связь операции',
        pleaseCheckTheRequiredData:'Выберите необходимые данные.',
        landingSequence:'Landing sequence',
        labelStyle:'Стиль метки',
        customLabelPrinting:'Настройка печати вкладок',
        labelPrinting:'标签打印',
        sortingSuccessful:'Сортировать успешно',
        sorting:'Сортировка',
        pleaseSelect:'Выберите',
@@ -387,8 +411,13 @@
        halfProductLabel:'Маркировка полуфабрикатов',
        pleaseSelectCustomPrintLabelStyle:'Выберите другой стиль этикетки',
        mergePrinting:'Слияние печати',
        printStatus:'打印次数',
        labelPrinting2:'标签打印2',
        addAutomatically:'自动填充',
        selectFill:'自动填充'
    },
    reportingWorks:{
        glassNumber:'number',
        glassAddress:'Стеклянная маркировка',
        WorkReportingManagement:'Управление обратной связью',
        addReportingWorks:'Новые отзывы',
@@ -643,6 +672,8 @@
        salesman:'Продаж',
        money:'Сумма',
        pleaseSelectTheSameCustomerProject:'请选择相同客户的项目',
    },
    replenish:{
        patchManagement:'Управление стеклянными пластинами',
@@ -700,6 +731,10 @@
        ConfirmPasswordCannotBeEmpty:'Пароль подтверждения не может быть пустым',
        TheTwoPasswordsAreNotTheSame:'Два разных пароля.',
        OldPasswordError:'Старая ошибка пароля',
        userName:'用户名称',
        changeUserName:'修改用户名称',
        userNameCannotBeEmpty:'用户名称不能为空',
    },
    orderBasicData:{
        order:'Заказы',
@@ -733,6 +768,10 @@
        firstLevel:'Категория I',
        towLevel:'Категория II',
        alias:'Имя',
        msg1:'上传头像图片大小不能超过 5MB!',
        msg2:'上传头像图片只能是 JPG或者PNG 格式!',
        selectFile:'选取文件',
        msg3:'只能上传jpg/png文件,且不超过5m',
    },
    machine:{
        basicId:'Номер оборудования',
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -68,6 +68,8 @@
            max255:"最多输入255个字符",
            range99999Dec2:
                "请输入0-99999之间的数字,最多保留两位小数",
            range99999Dec3:
                "请输入0-99999之间的数字,最多保留三位小数",
            range999999Dec2:
                "请输入0-999999之间的数字,最多保留两位小数",
            greater0:"请输入大于0的整数",
@@ -222,6 +224,12 @@
        orderNotApproved:'订单未审核',
        orderHasBeenReceived:'订单已入库',
        printingNumber:'打印次数',
        processingOrder:'加工单',
        sheet2:'横版-多层明细',
        sheet4:'生产加工单纵版',
        sheet3:'浏览发货信息',
        sheet5:'生产加工单弯钢(单片)',
        oneClickStorage:'一键完工',
        msg:{
            productCheck:'请选择产品',
            tableLengthNot:'没有表格数据',
@@ -759,8 +767,8 @@
        firstLevel:'一级类别',
        towLevel:'二级类别',
        alias:'别名',
        msg1:'上传头像图片大小不能超过 5MB!',
        msg2:'上传头像图片只能是 JPG或者PNG 格式!',
        msg1:'上传图片大小不能超过 5MB!',
        msg2:'上传图片只能是 JPG或者PNG 格式!',
        selectFile:'选取文件',
        msg3:'只能上传jpg/png文件,且不超过5m',
    },
north-glass-erp/northglass-erp/src/views/sd/delivery/DeliveryReport.vue
@@ -12,6 +12,8 @@
    {type: 'seq',fixed:"left", title: t('basicData.Number'), width: 80 },
    {field: 'deliveryId',width:120, title: t('delivery.deliveryNoteId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'deliveryNumber',width:120, title: t('delivery.deliveryNoteNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'orderDetail.productId',width:120, title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'orderDetail.productName',width:120, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'delivery.paymentTerms',width:120, title: t('delivery.paymentTerms'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'delivery.project',width:140, title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'quantity',width:120, title: t('order.quantity'), sortable: true},
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -58,7 +58,7 @@
  deliveryAddress:'',
  otherMoney:'',
  otherMoneyRemarks:'',
  processingNote:'',
  processingNote:t('order.processingNote')+':',
  createOrder:0,
  creatorId:userStore.user.userId,
  creator:userStore.user.userName,
@@ -192,9 +192,10 @@
    computeArea: [
      {
        validator ({ cellValue }) {
          const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/
          const decValue = company.decValue*1
          const regex =new RegExp(`^(0(\\.\\d{1,${decValue}})?|([1-9]\\d{0,4})(\\.\\d{1,${decValue}})?|99999(\\.9{1,${decValue}})?)$`)
          if (!regex.test(cellValue)) {
            return new Error(t('basicData.msg.range99999Dec2'))
            return new Error(t(`basicData.msg.range99999Dec${decValue}`))
          }
        }
      }
@@ -311,7 +312,7 @@
            ElMessage.error( t('order.msg.tableLengthNot'))
            return
          }
          computedMoney()
          computedMoney(null)
          if(!gridOptions.menuConfig.body.options[0][5].disabled){
            ElMessage.error(t('order.msg.amountReset'))
            return
@@ -491,7 +492,7 @@
              }
            })
          }
          computedMoney()
          computedMoney(null)
          break
        }
        case 'copyChecked' :{
@@ -526,7 +527,7 @@
              })
            }
          }
          computedMoney()
          computedMoney(result.cell)
          gridOptions.menuConfig.body.options[0][5].disabled=false
          break
        }
@@ -564,7 +565,7 @@
            }
          }
          computedMoney()
          computedMoney(result.cell)
          gridOptions.menuConfig.body.options[0][5].disabled=false
          break
        }
@@ -578,12 +579,12 @@
              }
            })
          }
          computedMoney()
          computedMoney(result.cell)
          gridOptions.menuConfig.body.options[0][5].disabled=false
          break
        }
        case 'computedMoney' :{
          computedMoney()
          computedMoney(null)
          break
        }
@@ -778,13 +779,18 @@
    }
  })
}
const computedMoney = () => {
const computedMoney = (cell) => {
  const  dataList = xGrid.value.getTableData().fullData
  dataList.forEach((item,index) =>{
    item.area = area(item)
    item.grossArea = countArea(item)
    item.computeArea = item.area
    item.computeGrossArea = item.grossArea
    if(['width', 'height', 'quantity'].includes(cell)){
      item.area = area(item)
      item.grossArea = countArea(item)
      item.computeArea = item.area
      item.computeGrossArea = item.grossArea
    }else if(cell==='computeArea'){
      item.computeGrossArea = item.computeArea * item.quantity
    }
    if(titleUploadData.value.calculateType===3){
      item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2))
    }else{
@@ -979,19 +985,20 @@
}
const area = (row) => {
  return parseFloat((row.width * row.height/1000000).toFixed(2))
  return parseFloat((row.width * row.height/1000000).toFixed(company.decValue))
}
const countArea = (row) => {
  const area = parseFloat((row.width * row.height/1000000).toFixed(2))
  const area = parseFloat((row.width * row.height/1000000).toFixed(company.decValue))
  let areaSum = 0
  // 获取保留面积
  const decValue = company.decValue
  switch (titleUploadData.value.calculateType){
    case 2:{
      areaSum = parseFloat((row.width * row.height * row.quantity/1000000).toFixed(2))
      areaSum = parseFloat((row.width * row.height * row.quantity/1000000).toFixed(decValue))
      break
    }
    default :{
      areaSum = parseFloat((row.computeArea * row.quantity).toFixed(2))
      areaSum = parseFloat((row.computeArea * row.quantity).toFixed(decValue))
      break
    }
  }
@@ -1040,18 +1047,17 @@
      }
      item.area = area(item)
      item.grossArea = countArea(item)
      const decValue = company.decValue
      if(item.computeGrossArea === undefined){
        if(titleUploadData.value.calculateType===1){
          item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2))
        }else if(titleUploadData.value.calculateType===2){
          item.computeGrossArea = item.grossArea
        }
        if(titleUploadData.value.calculateType===3){
          item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2))
        }else{
          item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
        }
      if(titleUploadData.value.calculateType===1){
        item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(decValue))
      }else if(titleUploadData.value.calculateType===2){
        item.computeGrossArea = item.grossArea
      }
      if(titleUploadData.value.calculateType===3){
        item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2))
      }else{
        item.grossAmount=parseFloat((item.price * 1 * item.computeGrossArea).toFixed(2))
      }
    })
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -79,17 +79,17 @@
            { code: 'copyTitle', name: t('searchOrder.copyTitle'), prefixIcon: 'vxe-icon-copy', visible: true},
            {
              prefixIcon: 'vxe-icon-print',
              name: '加工单',
              name: t('order.processingOrder'),
              children: [
                // { code: 'sheet1', name: '横版-普通' },
                { code: 'sheet2', name: '横版-多层明细' },
                { code: 'sheet4', name: '生产加工单纵版' },
                { code: 'sheet3', name: '浏览发货信息' },
                { code: 'sheet5', name: '生产加工单弯钢(单片)' },
                { code: 'sheet2', name: t('order.sheet2') },
                { code: 'sheet4', name: t('order.sheet4') },
                { code: 'sheet3', name: t('order.sheet3') },
                { code: 'sheet5', name: t('order.sheet5')},
              ]
            },
            { code: 'oneClickStorage', name: "一键完工", prefixIcon: 'vxe-icon-copy', visible: true},
            { code: 'oneClickStorage', name: t('order.oneClickStorage'), prefixIcon: 'vxe-icon-copy', visible: true},
           // { code: 'getProcessList', name: t('searchOrder.processFlows'), prefixIcon: 'vxe-icon-file-txt', visible: true}
          ]
        ]
@@ -128,7 +128,8 @@
      {field: 'customerBatch',width:120,  title: t('order.customerBatch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      //{field: '14',width:120,  title: '备注',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'deliveryAddress',width:120,  title: t('order.deliveryAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
      {field: 'deliveryAddress',width:120,  title: t('order.deliveryAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'processingNote',width:120,  title: t('order.processingNote'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
    ],
north-glass-erp/src/main/java/com/example/erp/dto/sd/DeliveryDetailDTO.java
@@ -18,6 +18,10 @@
    private String deliveryId;
    @ExcelProperty("发货序号")
    private Integer deliveryNumber;
    @ExcelProperty("产品Id")
    private Integer productId;
    @ExcelProperty("产品")
    private String productName;
    @ExcelProperty("付款条件")
    private String paymentTerms;
    @ExcelProperty("项目名称")
@@ -32,6 +36,8 @@
    private String customerId;
    @ExcelProperty("客户名称")
    private String customerName;
    @ExcelProperty("客户简称")
    private String customerAbbreviation;
    @ExcelProperty("送货日期")
    private LocalDate deliveryDate;
    @ExcelProperty("支付方式")
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -577,10 +577,11 @@
            List<OrderDetail> orderDetails = orderDetailMapper.getOrderProductByProductId(map.get("productId"),orderId);
            orderDetails.forEach(orderDetail->{
                orderDetail.setGrossArea(
                        Double.parseDouble(String.format("%.3f",Double.parseDouble(
                        /*Double.parseDouble(String.format("%.3f",Double.parseDouble(
                                String.format("%.3f",
                                        orderDetail.getWidth()*orderDetail.getHeight()/1000000)
                        ) * orderDetail.getQuantity()))
                        ) * orderDetail.getQuantity()))*/
                        orderDetail.getComputeGrossArea()
                );
                List<OrderGlassDetail> orderGlassDetails =
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -520,6 +520,8 @@
    <select id="getSelectDeliveryDetailReport" resultMap="selectDeliveryDetail">
        select dd.delivery_id,
        dd.delivery_number,
        od.product_id,
        od.product_name,
        d.payment_terms,
        d.project,
        d.customer_id,
@@ -541,6 +543,7 @@
        dd.create_time
        from sd.delivery_detail dd
        left join sd.delivery d on dd.delivery_id=d.delivery_id
        left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
        <where>
               and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
            <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
@@ -617,6 +620,7 @@
        count(dd.id) as 'total'
        from sd.delivery_detail dd
        left join sd.delivery d on dd.delivery_id=d.delivery_id
        left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
        <where>
            and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
            <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
@@ -964,10 +968,13 @@
        select dd.id,
            dd.delivery_id,
        dd.delivery_number,
        od.product_id,
        od.product_name,
        d.payment_terms,
        d.project,
        d.customer_id,
        d.customer_name,
        c.customer_abbreviation,
        d.delivery_date,
        d.pay_method,
        d.pay_date,
@@ -985,6 +992,8 @@
        dd.create_time
        from sd.delivery_detail dd
        left join sd.delivery d on dd.delivery_id=d.delivery_id
        left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
        left join sd.customer c on d.customer_id=c.id
        where  date(d.create_time)>=#{dates[0]} and date(d.create_time) &lt;= #{dates[1]}
    </select>
@@ -998,6 +1007,7 @@
               d.project,
               d.customer_id,
               d.customer_name,
               c.customer_abbreviation,
               d.delivery_date,
               d.pay_method,
               d.pay_date,
@@ -1015,6 +1025,9 @@
               dd.create_time
        from sd.delivery_detail dd left join delivery d on dd.delivery_id=d.delivery_id
                                   left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
                                   left join sd.customer c on d.customer_id=c.id
        where  date(d.create_time)>=#{dates[0]} and date(d.create_time) &lt;= #{dates[1]}
        group by dd.delivery_id,od.product_id
        order by dd.delivery_id,dd.delivery_number
    </select>
</mapper>