廖井涛
4 天以前 51a58e73bfd5f16967aa6ba1906b10dadcf631b9
成品入库及发货打印修改
8个文件已修改
151 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet3.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet4.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/hook/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/productStock/CreateProductStock.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectOrderList.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet3.vue
@@ -182,8 +182,8 @@
    <table class="pages" v-for="(itme1, index) in groupedData" :key="index" >
      <thead>
      <tr class="title-s">
        <th colspan="11">
          <h1>
        <th colspan="13">
          <h1 contenteditable="true">
            {{company.companyName}}
          </h1>
        </th>
@@ -191,26 +191,26 @@
      <tr  class="title-s">
        <th colspan="2" style="width: 20%"></th>
        <th colspan="7" style="width: 60%;">
        <th colspan="9" style="width: 60%">
          <h4 v-if="!company.showDeliveryCreator" >金华市乐动智能科技有限公司</h4>
          <h3>销售发货单</h3>
        </th>
        <th colspan="2" style="width: 20%;text-align: left;">发货单号:<span>{{itme1.delivery.deliveryId}}</span></th>
        <th colspan="2" style="text-align: left;width:20%">发货单号:<span>{{itme1.delivery.deliveryId}}</span></th>
      </tr>
      <tr>
        <th style="text-align: left;border:none;" colspan="3">客户名称:<span>{{itme1.delivery.customerName}}</span></th>
        <th style="text-align: left;border:none;" colspan="6">项目名称:<span>{{itme1.delivery.project}}</span></th>
        <th style="text-align: left;border:none;" colspan="2">联系人:<span>{{itme1.delivery.contacts}}</span></th>
        <th style="text-align: left;border:none;width: 46.46%" colspan="6" >客户名称:<span contenteditable="true">{{itme1.delivery.customerName}}</span></th>
        <th style="text-align: left;border:none;width: 38.46%" colspan="5">项目名称:<span>{{itme1.delivery.project}}</span></th>
        <th style="text-align: left;border:none;width: 16%" colspan="2">联系人:<span>{{itme1.delivery.contacts}}</span></th>
      </tr>
      <tr>
        <th style="text-align: left;border:none;" colspan="9">送货地址:<span>{{itme1.delivery.deliveryAddress}}</span></th>
        <th style="text-align: left;border:none;" colspan="2">联系电话:<span>{{itme1.delivery.contactNumber}}</span></th>
        <th style="text-align: left;border:none;width: 84%" colspan="11">送货地址:<span>{{itme1.delivery.deliveryAddress}}</span></th>
        <th style="text-align: left;border:none;width: 16%" colspan="2">联系电话:<span>{{itme1.delivery.contactNumber}}</span></th>
      </tr>
      </thead>
      <tr style="border-style: none">
        <td colspan="11" style="border-style: none">
        <td colspan="13" style="border-style: none">
          <table style="border-style: none;width: 100%;height: 100%;">
            <template v-for="(item, index) in itme1.data" :key="index" >
              <thead>
@@ -221,20 +221,19 @@
                <th style="width: 6%;">面积</th>
                <th style="width: 6%;">单价</th>
                <th style="width: 6.5%;">金额</th>
                <th style="width: 1%;"></th>
                <th style="width: 1%;">&nbsp;</th>
                <th style="width: 9%;">楼层编号</th>
                <th style="width: 14%;" colspan="1">宽X高</th>
                <th style="width: 8%;">数量</th>
                <th style="width: 6%;">面积</th>
                <th style="width: 6%;">单价</th>
                <th style="width: 6.5%;">金额</th>
                <th style="width: 1%;"></th>
              </tr>
              </thead>
              <tr>
                <td style="font-size: 15px;text-align: left" colspan="6">产品名称:<span>{{item.DeliveryDetail.orderDetail.productName}}</span></td>
                <td style="font-size: 15px;text-align: left" colspan="6">产品名称:<span contenteditable="true">{{item.DeliveryDetail.orderDetail.productName}}</span></td>
                <td style="font-size: 15px;text-align: left" colspan="3">批次:<span>{{item.DeliveryDetail.order.batch}}</span></td>
                <td style="font-size: 15px;text-align: left" colspan="4">订单编号:<span>{{item.DeliveryDetail.orderDetail.orderId}}</span></td>
              </tr>
@@ -264,7 +263,7 @@
                <td v-if="group[1]">{{ group[1].money }}</td>
                <!-- 若组内只有一条数据,第二列留空 -->
                <td v-else colspan="5"></td>
                <td v-else colspan="6"></td>
              </tr>
              <tr class="day-in" >
                <td style="font-size: 15px;" colspan="9">小计:</td>
@@ -407,6 +406,9 @@
  .print-page-c .pages {
    page-break-after: always;
  }
}
h1,h3{
  left:0;
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet4.vue
@@ -183,7 +183,7 @@
      <thead>
      <tr class="title-s">
        <th colspan="11">
          <h1>
          <h1 contenteditable="true">
            {{company.companyName}}
          </h1>
        </th>
@@ -198,7 +198,7 @@
        <th colspan="2" style="width: 20%;text-align: left;">发货单号:<span>{{itme1.delivery.deliveryId}}</span></th>
      </tr>
      <tr>
        <th style="text-align: left;border:none;" colspan="3">客户名称:<span>{{itme1.delivery.customerName}}</span></th>
        <th style="text-align: left;border:none;" colspan="3">客户名称:<span contenteditable="true">{{itme1.delivery.customerName}}</span></th>
        <th style="text-align: left;border:none;" colspan="6">项目名称:<span>{{itme1.delivery.project}}</span></th>
        <th style="text-align: left;border:none;" colspan="2">联系人:<span>{{itme1.delivery.contacts}}</span></th>
      </tr>
@@ -229,7 +229,7 @@
              </thead>
              <tr>
                <td style="font-size: 15px;text-align: left" colspan="5">产品名称:<span>{{item.DeliveryDetail.orderDetail.productName}}</span></td>
                <td style="font-size: 15px;text-align: left" colspan="5">产品名称:<span contenteditable="true">{{item.DeliveryDetail.orderDetail.productName}}</span></td>
                <td style="font-size: 15px;text-align: left" colspan="3">批次:<span>{{item.DeliveryDetail.order.batch}}</span></td>
                <td style="font-size: 15px;text-align: left" colspan="3">订单编号:<span>{{item.DeliveryDetail.orderDetail.orderId}}</span></td>
              </tr>
north-glass-erp/northglass-erp/src/hook/index.js
@@ -8,7 +8,7 @@
// 筛选函数
const filterChanged = ({ option, row, column }) => {
    if (option.data) {
    if (option && option.data) {
        if(column.field.indexOf('.')>-1){
            let  array = column.field.split('.')
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -930,7 +930,7 @@
        salesman:'销售员',
        money:'金额',
        pleaseSelectTheSameCustomerProject:'请选择相同客户的项目',
        pleaseSelectTheSameCustomerProject:'请选择相同客户和项目的订单',
        noMoney:'无金额',
        freightPrice:'运费单价',
        freightQuantity:'运费数量',
north-glass-erp/northglass-erp/src/views/mm/productStock/CreateProductStock.vue
@@ -10,6 +10,7 @@
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
import companyInfo from "@/stores/sd/companyInfo";
import {changeFilterEvent,filterChanged} from "@/hook"
//语言获取
const { t } = useI18n()
@@ -82,7 +83,7 @@
let total = reactive({
  pageTotal : 0,
  dataTotal : 0,
  pageSize : 100
  pageSize : 99999
})
@@ -107,7 +108,7 @@
let pageState = null
/*使用筛选,后端获取数据*/
const changeFilterEvent = (event, option, $panel,) => {
/*const changeFilterEvent = (event, option, $panel,) => {
  // 手动触发筛选
  $panel.changeOption(event, !!option.data, option)
}
@@ -139,7 +140,7 @@
      router.push("/login")
    }
  })
}
}*/
const selectOrderList = ()=>{
  request.post(`/finishedGoodsInventory/getSelectWarehousing/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => {
@@ -190,7 +191,10 @@
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
    //remote: true
  },
  sortConfig: {
    multiple: true,//多排序
  },
  customConfig: {
    storage: true
@@ -204,21 +208,22 @@
    {type:'expand',fixed:"left",slots: { content:'content' },width: '60'},
    { type: 'checkbox',fixed:"left", title: t('basicData.check'), width: '80' },
    { type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
    {field: 'order.orderId', width: '150',title: t('order.orderId'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'order.orderId', width: '150',title: t('order.orderId'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    //{field: 'orderDetail.buildingNumber', width: '120',title: '楼号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderDetail.productId',width: '100', title: t('order.productId'), filters:[{ data: '' }],showOverflow:"ellipsis",slots: { filter: 'num1_filter' }},
    {field: 'orderDetail.productName',width: '100', title: t('order.product'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderDetail.width', width: '100',title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderDetail.height',width: '100', title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'order.creater', width: '100',title: t('order.salesman'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'order.project', width: '100',title: t('order.project'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderNumber',width: '140', title: t('order.OrderNum'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderDetail.quantity',width: '140', title: t('productStock.totalNumberOfOrders'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'inventoryQuantity',width: '120', title: t('productStock.quantityToBeStockedIn'),editRender: { name: 'input' }, filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'order.area',width: '140', title: t('order.area'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'processId',width: '150', title: t('processCard.processId'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'receivedQuantity',width: '100', title: t('productStock.quantityAlreadyInStock'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'order.batch',width: '100', title: t('order.batch'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'orderDetail.productId',width: '100', title: t('order.productId'), filters:[{ data: '' }],showOverflow:"ellipsis",slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'orderDetail.productName',width: '100', title: t('order.product'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'orderDetail.width', width: '100',title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'orderDetail.height',width: '100', title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'order.creater', width: '100',title: t('order.salesman'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'order.project', width: '100',title: t('order.project'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'order.customerName',width: '100', title: t('order.customers'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'orderNumber',width: '140', title: t('order.OrderNum'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'orderDetail.quantity',width: '140', title: t('productStock.totalNumberOfOrders'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'inventoryQuantity',width: '120', title: t('productStock.quantityToBeStockedIn'),editRender: { name: 'input' }, filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'order.area',width: '140', title: t('order.area'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'processId',width: '150', title: t('processCard.processId'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
    {field: 'receivedQuantity',width: '100', title: t('productStock.quantityAlreadyInStock'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
    {field: 'order.batch',width: '100', title: t('order.batch'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true},
  ],//表头按钮
  toolbarConfig: {
    buttons: [{
@@ -392,7 +397,11 @@
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @keyup.enter.native="$panel.confirmFilter()" @input="changeFilterEvent($event, option, $panel)"/>
            <input
                type="type"
                v-model="option.data"
                @keyup.enter.native="$panel.confirmFilter()"
                @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue
@@ -20,6 +20,8 @@
import companyInfo from "@/stores/sd/companyInfo";
import PrintSheet3 from "@/components/sd/delivery/PrintSheet3.vue";
import PrintSheet4 from "@/components/sd/delivery/PrintSheet4.vue";
import {addListener} from "@/hook/mouseMove";
import {copyTableCellValue} from "@/hook/copyTableCellValue";
//语言获取
const { t } = useI18n()
@@ -108,6 +110,7 @@
})
onMounted(async () => {
  addListener(xGrid.value,gridOptions)
  filterData.value = orderInfo.searchDeliverFilter.data
  await getDeliveryList()
  orderInfo.searchDeliverFilter.list.forEach(item =>{
@@ -529,6 +532,9 @@
  sortChange ({ field, order }) {
    sortData.value = {field,order}
    selectOrderList()
  },
  cellDblclick ({row,column}) {
    copyTableCellValue(row,column)
  }
}
@@ -829,7 +835,17 @@
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
:deep(#product .el-dialog__body){
  height: 90%;
  width: 100%;
}
</style>
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectOrderList.vue
@@ -8,7 +8,10 @@
import useUserInfoStore from "@/stores/userInfo";
import {ElMessage} from "element-plus";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum"
import useOrderInfoStore from "@/stores/sd/order/orderInfo";
import {addListener} from "@/hook/mouseMove";
import {copyTableCellValue} from "@/hook/copyTableCellValue";
//语言获取
const { t } = useI18n()
@@ -93,6 +96,7 @@
onMounted(async () => {
  addListener(xGrid.value,gridOptions)
  if (props.customerId !== undefined) {
    filterData.value.customerId = props.customerId
    filterData.value.project = props.project
@@ -268,14 +272,15 @@
    custom: true
  },
  footerMethod ({ columns, data }) {//页脚函数
    let footList=['quantity','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 ''
      })
    ]
@@ -359,6 +364,9 @@
        }
      }
    }
  },
  cellDblclick ({row,column}) {
    copyTableCellValue(row,column)
  }
}
@@ -473,4 +481,17 @@
  width: 100%;
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
:deep(#product .el-dialog__body){
  height: 90%;
  width: 100%;
}
</style>
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -61,6 +61,8 @@
        <result column="batch" property="order.batch"/>
        <result column="order_quantity" property="order.quantity"/>
        <result column="calculate_type" property="order.calculateType"/>
        <result column="customer_name" property="order.customerName"/>
        <result column="building_number" property="orderDetail.buildingNumber"/>
        <result column="width" property="orderDetail.width"/>
@@ -714,6 +716,7 @@
        od.height,
        o.creator,
        o.project,
        o.customer_name,
        fc.order_number,
        od.quantity,
        fc.quantity as fc_quantity,
@@ -757,6 +760,9 @@
            <if test="flowCard.order != null and flowCard.order.project != null and flowCard.order.project != ''">
                and o.project regexp #{flowCard.order.project}
            </if>
            <if test="flowCard.order != null and flowCard.order.customerName != null and flowCard.order.customerName != ''">
                and o.customer_name regexp #{flowCard.order.customerName}
            </if>
            <if test="flowCard.orderNumber != null and flowCard.orderNumber != ''">
                and fc.order_number regexp #{flowCard.orderNumber}
            </if>
@@ -785,10 +791,12 @@
    </select>
    <select id="getSelectWarehousingPageTotal" >
        select
        CEILING(count(zu.order_number)/#{pageSize}) as 'pageTotal',
        count(zu.order_number) as 'total' from (
        select fc.order_number as order_number,fc.process_id from pp.flow_card fc left join sd.order_detail od on
        fc.order_id=od.order_id and fc.order_number=od.order_number inner join sd.`order` o on o.order_id=fc.order_id
        CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
        count(zu.id) as 'total' from (
        select fc.id as id
        from (select *,min(inventory_quantity) as min_inventory_quantity from pp.flow_card  group by  order_id,order_number,process_id) as fc
        left join sd.order_detail od on fc.order_id=od.order_id and fc.order_number=od.order_number inner join sd.`order` o on
        o.order_id=fc.order_id
        <where>
            and fc.received_quantity <![CDATA[<]]> fc.inventory_quantity and o.create_order>0
            <if test="flowCard.order != null and flowCard.order.orderId != null and flowCard.order.orderId != ''">
@@ -815,6 +823,9 @@
            <if test="flowCard.order != null and flowCard.order.project != null and flowCard.order.project != ''">
                and o.project regexp #{flowCard.order.project}
            </if>
            <if test="flowCard.order != null and flowCard.order.customerName != null and flowCard.order.customerName != ''">
                and o.customer_name regexp #{flowCard.order.customerName}
            </if>
            <if test="flowCard.orderNumber != null and flowCard.orderNumber != ''">
                and fc.order_number regexp #{flowCard.orderNumber}
            </if>