chenlu
2024-07-03 6d0d9488f9db3edfc687d4d94d6a3d7bf9f548cc
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
14个文件已修改
1个文件已添加
298 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/hook/mouseMove.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/layout/MainErpView.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/OrderSizeCheck.vue
@@ -95,7 +95,7 @@
            ElMessage.error(t('basicData.msg.checkoutLose'))
            return
          }
          emit('getParent')
          //emit('getParent')
          break
        }
      }
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
New file
@@ -0,0 +1,227 @@
<script setup>
import request from "@/utils/request"
import {computed, onMounted, ref} from "vue"
import PrintFoot from "@/components/sd/order/PrintFoot.vue"
import companyInfo from "@/stores/sd/companyInfo"
import deepClone from "@/utils/deepClone";
import {ElMessage} from "element-plus";
import useUserInfoStore from "@/stores/userInfo";
const company = companyInfo()
const userStore = useUserInfoStore()
const username = userStore.user.userName
let props = defineProps({
  orderId:null
})
let data = ref({
  order:{
    processingNote:''
  },
  orderProductDetail:[]
})
const grossNum = ref({
  quantity: 0,
  grossArea: 0,
  perimeter: 0
})
const getData = () => {
  request.get(`/order/printOrderProductDetail/${props.orderId}`).then(res => {
    console.log(res.data)
    data.value= res.data
    data.value.orderProductDetail.forEach(item => {
      grossNum.value.quantity += getQuantity(item.productDetail)
      grossNum.value.grossArea += getArea(item.productDetail)
      grossNum.value.perimeter += getPerimeter(item.productDetail)
      stringToJson(item.productDetail)
    })
    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))
  })
}
onMounted(() => {
  getData()
})
const  stringToJson = (productList) => {
  productList.forEach(item => {
    item.otherColumns = JSON.parse(item.otherColumns)
  })
}
const getQuantity = (productList) => {
  let quantity = 0
  productList.forEach(item => {
    quantity += item.quantity
  })
  return parseFloat(quantity.toFixed(3))
}
const getArea = (productList) => {
  let area = 0
  productList.forEach(item => {
    area += item.grossArea
  })
  return parseFloat(area.toFixed(3))
}
const getPerimeter = (productList) => {
  let perimeter = 0
  productList.forEach(item => {
    perimeter += item.perimeter
  })
  return parseFloat(perimeter.toFixed(3))
}
const printSheet = () => {
}
defineExpose({
  printSheet
});
</script>
<template>
  <div id="sheet">
    <table border="1" >
      <tr class="title-s">
        <th colspan="13">
          <h1>
            {{company.companyName}}
          </h1>
        </th>
      </tr>
      <tr  class="title-s">
        <th colspan="2"></th>
        <th colspan="5">
          <h3>生成任务单(成品)</h3>
        </th>
        <th colspan="2" style="text-align: left;font-weight: bold;">订单编号:<span>{{data.order.orderId}}</span></th>
      </tr>
      <tr>
        <th style="text-align: left;border:none;font-weight: bold;" colspan="4">客户名称:<span>{{data.order.customerName}}</span></th>
        <th style="text-align: left;border:none;font-weight: bold;" colspan="3">项目名称:<span>{{data.order.project}}</span></th>
        <th style="text-align: left;border:none;font-weight: bold;" colspan="2">发货日期:<span>{{data.order.deliveryDate}}</span></th>
      </tr>
      <tr>
        <th style="text-align: left;border:none;font-weight: bold;" colspan="7">送货地址:<span>{{data.order.project}}</span></th>
        <th style="text-align: left;border:none;font-weight: bold;" colspan="2">联系电话:<span>{{data.order.project}}</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">宽(弧度)*高</th>
        <th style="width: 10%;font-weight: bold;">数量</th>
        <th style="width: 10%;font-weight: bold;">面积</th>
        <th style="width: 12%;font-weight: bold;" colspan="2">加工要求</th>
      </tr>
      <template v-for="(item, index) in data.orderProductDetail" :key="index" >
        <tr>
          <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="8">产品名称:<span>{{item.productName}}</span></td>
        </tr>
        <tr class="day-in" v-for="(items, index1) in item.productDetail" :key="index1">
          <td>{{items.orderNumber}}</td>
          <td>{{items.buildingNumber}}</td>
          <td colspan="2" style="font-size: 15px;font-weight: bold;">{{items.width}}x{{items.height}}</td>
          <td>{{items.quantity}}</td>
          <td>{{items.grossArea}}</td>
          <td colspan="2">{{items.processingNote}}</td>
        </tr>
        <tr class="day-in" >
          <td style="font-size: 15px;font-weight: bold;" colspan="3">小计:</td>
          <td>{{getQuantity(item.productDetail)}}</td>
          <td>{{getArea(item.productDetail)}}</td>
          <td></td>
        </tr>
      </template>
      <tr class="day-in">
        <td style="font-size: 15px;font-weight: bold;" colspan="3">合计:</td>
        <td>{{grossNum.quantity}}</td>
        <td>{{grossNum.grossArea}}</td>
        <td></td>
      </tr>
      <tr class="day-in">
        <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6" colspan="6">
          <template v-for="(item,index) in data.order.processingNote.split('\n')">
            {{item}}
            <br>
          </template>
        </td>
      </tr>
    </table>
    <el-row :gutter="20">
      <el-col :span="4"><div class="bottom">制单员:{{data.order.creator}}<span style="font-size: 10px"></span></div></el-col>
      <el-col :span="4"><div class="bottom">制单日期:{{data.order.createTime}}<span style="font-size: 10px"></span></div></el-col>
      <el-col :span="4"><div class="bottom">审核员:{{data.order.verifier}}</div></el-col>
      <el-col :span="3"><div class="bottom">审核日期:{{data.order.updateTime}}</div></el-col>
      <el-col :span="4"><div class="bottom">打印人:{{username}}</div></el-col>
    </el-row>
  </div>
</template>
<style scoped>
h1,h3{
  left:0;
  right:0;
  top:0;
  bottom:0;
  margin:auto;
}
h1{
  font-size: 1.5rem;
}
h3{
  font-size: 1.2rem;
  font-weight: bolder;
}
table{
  border-collapse: collapse;
  width: 100%;
  text-align: center;
}
tr,td,th{
  border: 1px solid black;
}
th,.no-change-row {
  white-space: nowrap;
}
.title-1{
  width: 76px;
}
.title-s,.title-s th{
  border:0
}
.hr-border{
  height: 2px;
  width: 100%;
  background-color: black;
  color: black;
}
</style>
north-glass-erp/northglass-erp/src/hook/mouseMove.ts
@@ -28,9 +28,11 @@
    xGrid.value = xGrids
    gridOptions = gridOption
    let newElement = document.createElement('div')
    let leftElement = document.createElement('div')
    const parser = new DOMParser();
    const htmlDoc = parser.parseFromString(cellarea.value, 'text/html')
    newElement.innerHTML = htmlDoc.body.innerHTML
    leftElement.innerHTML = htmlDoc.body.innerHTML
    //cellarea.value = newElement
    //添加多选列
    nextTick(() => {
@@ -58,7 +60,7 @@
            // })
        }
        /*setTimeout(() => {
        setTimeout(() => {
            //#region 左侧固定列
            let leftfixedtbody = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper table tbody")//获取fixedtbody区域
@@ -73,12 +75,12 @@
            let leftFixedBodyWrapper = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper")
            if (leftFixedBodyWrapper) {
                //注意这里的ref名称,这里是fixed区域的框的名称
                leftFixedBodyWrapper.appendChild(leftfixedcellarea.value)
                leftFixedBodyWrapper.appendChild(leftElement)
            }
            //#endregion
            //#region 右侧固定列
            let rightfixedtbody = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper table tbody")//获取fixedtbody区域
           /* let rightfixedtbody = getTablexGrid().$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper table tbody")//获取fixedtbody区域
            if (rightfixedtbody) {
                rightfixedtbody.addEventListener("mousedown", tbodymousedown)//给表格中的rightfixedtbody添加鼠标按下事件
@@ -92,10 +94,10 @@
            if (rightFixedBodyWrapper) {
                //注意这里的ref名称,这里是fixed区域的框的名称
                rightFixedBodyWrapper.appendChild(rightfixedcellarea.value)
            }
            }*/
            //#endregion
        }, 100)*/
        }, 100)
    })
}
north-glass-erp/northglass-erp/src/layout/MainErpView.vue
@@ -16,7 +16,7 @@
const router = useRouter()
const userStore = useUserInfoStore()
const user = userStore.user.userName
const user = userStore.user?.userName
//监听异步返回代码
watch(()=>userStore.responseCode,(newVal) => {
    switch (newVal){
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue
@@ -110,7 +110,7 @@
      </div>
      <div  class="row2">
        <span>{{ item.project }}</span>&nbsp;
        <span>{{ item.building_number }}</span>
        <span>{{ item.buildingNumber }}</span>
      </div>
      <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row5">
@@ -186,7 +186,7 @@
@page {
  size: auto;  /* auto is the initial value */
  margin: 7mm 4mm 2mm 6mm  /* this affects the margin in the printer settings */
  margin: 12mm 4mm 2mm 6mm  /* this affects the margin in the printer settings */
}
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue
@@ -110,7 +110,7 @@
      </div>
      <div  class="row2">
        <span>{{ item.project }}</span>&nbsp;
        <span>{{ item.building_number }}</span>
        <span>{{ item.buildingNumber }}</span>
      </div>
      <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row5">
@@ -174,6 +174,9 @@
  font-weight: bold;
  font-size: 12pt;
}
.row5 span {
  font-size: 10pt;
}
.row6 {
  height: 15px;
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -129,10 +129,12 @@
      </div>
    </div>-->
    <div id="entirety" v-for="(item,id) in labelList" >
        <div class="row1">{{ item.customer_name }}</div>
        <div class="row1">
          <span>{{ item.customer_name }}</span>&nbsp;
          <span>{{ item.type_name }}</span>
        </div>
        <div  class="row2">
          <span>{{ item.order_id }}</span>&nbsp;
          <span>{{ item.type_name }}</span>
        </div>
        <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div>
        <div class="row5">
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -396,6 +396,7 @@
            otherMoney:otherMoney.value
          })
          console.log(flowData.value)
           request.post("/Delivery/insertDelivery", flowData.value).then((res) => {
             if(res.code==200 && res.data===true){
               ElMessage.success(t('delivery.deliveryNoteSubmittedSuccessfully'))
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue
@@ -345,7 +345,7 @@
        <el-button @click="getTableRow(row,'edit')"
                   v-if="userStore.user.permissions.indexOf('selectDelivery.edit') > -1"
                   link type="primary" size="small">{{$t('basicData.edit')}}</el-button>
        <el-button @click="getTableRow(row,'printing')" :disabled="row.deliveryState!==2" link type="primary" size="small">打印</el-button>
<!--        <el-button @click="getTableRow(row,'printing')" :disabled="row.deliveryState!==2" link type="primary" size="small">打印</el-button>-->
        <el-popconfirm @confirm="getTableRow(row,'delete')"  :title="$t('searchOrder.deleteConfirm')">
          <template #reference>
            <el-button :disabled="row.deliveryState===2" link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -109,7 +109,7 @@
          { code: 'computedMoney', name: t('basicData.calculateAmount'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: true },
          { code: 'errorArea', name: t('basicData.errorSettlementArea'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false },
          { code: 'otherMoney', name: t('basicData.otherAmounts'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false },
          { code: 'sizeCheck', name: t('basicData.sizeReview'), prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: true }
          { code: 'sizeCheck', name: t('basicData.sizeReview'), prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false }
        ]
      ]
    }
@@ -672,7 +672,7 @@
      //工艺审核后,订单未审核 取消审核按钮禁用和尺寸审核
      if(res.data.order.processReview === 2 && res.data.order.orderReview === 0){
        gridOptions.toolbarConfig.buttons[2].disabled = false
        gridOptions.menuConfig.body.options[0][8].disabled =false
        //gridOptions.menuConfig.body.options[0][8].disabled =false
      }
      //按钮审核过后变为反审
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -18,6 +18,7 @@
import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global"
import { saveAs } from "file-saver"
import PrintSheet3 from "@/components/sd/order/PrintSheet3.vue";
import PrintSheet4 from "@/components/sd/order/PrintSheet4.vue";
  const { t } = useI18n()
  const userStore = useUserInfoStore()
  const company = companyInfo()
@@ -182,7 +183,7 @@
              return
            }
            dialogTableVisible.value = true
            sheetIndex.value=1
            sheetIndex.value=4
            if(rowClickIndex.value.processReview===2 && rowClickIndex.value.orderReview===0){
              reviewDisabled.value=false
            }
@@ -536,6 +537,7 @@
      <print-sheet1 id="child"  v-if="sheetIndex===1" :orderId="rowClickIndex.orderId" />
      <print-sheet2 id="child" v-else-if="sheetIndex===2" :orderId="rowClickIndex.orderId" />
      <print-sheet3 id="child" v-else-if="sheetIndex===3" :orderId="rowClickIndex.orderId" />
      <print-sheet4 id="child" v-else-if="sheetIndex===4" :orderId="rowClickIndex.orderId" />
    </el-dialog>
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java
@@ -36,6 +36,8 @@
                                        @Param("pageSize") Integer pageSize,String startDate, String endDate,
                                        @Param("order") Order order);
    Order selectOrderId(String orderId);
    Map<String,Integer> getSelectOrderInventoryPageTotal(Integer offset, Integer pageSize,String startDate, String endDate, Order order);
    Boolean insertDelivery(@Param("delivery") Delivery delivery,@Param("number") String number,@Param("orderId") String orderId);
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -222,19 +222,28 @@
            //获取对象集合循环进行新增修改
            if (!orderDetaillist.isEmpty()) {
                for (OrderDetail orderDetail : orderDetaillist) {
                    //根据订单计算方式进行金额计算
                    Integer calculateType=0;
                    if (orderDetail.getOrder().getOrderId()==null){
                        Order order=deliveryMapper.selectOrderId(orderDetail.getOrderId());
                        calculateType=order.getCalculateType();
                    }else{
                        calculateType=orderDetail.getOrder().getCalculateType();
                    }
                    double deliveryDetailMoney = 0.0;
                    if (orderDetail.getOrder().getCalculateType()==1){
                    if (calculateType==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){
                    }else if (calculateType==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){
                        )*orderDetail.getPrice()));
                    }else if (calculateType==3){
                        deliveryDetailMoney=Double.valueOf(String.format("%.2f",orderDetail.getPrice() * orderDetail.getDeliveryDetail().getQuantity()));
                    }
                    //根据订单计算方式进行金额计算
                    //对循环明细的数据进行累加
                    quantity += orderDetail.getDeliveryDetail().getQuantity();
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -575,7 +575,8 @@
               fc.technology_number as technologyNumber,
               ogd.glass_child,
               c.customer_abbreviation as customer_name,
               ifnull(od.processing_note,'') as processing_note
               ifnull(od.processing_note,'') as processing_note,
               bgt.type_name
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
                 left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number
@@ -583,6 +584,7 @@
                                                 od.order_number = fc.order_number and fc.technology_number=ogd.technology_number
                 left join sd.product pt on pt.id=od.product_id
                 left join sd.customer c on c.id=o.customer_id
                 left join sd.basic_glass_type bgt on bgt.type_id=pt.type_id
        where fc.process_id = #{processId}
          and fc.technology_number=#{technologyNumber}
        group by od.order_number,od.width,od.height
north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml
@@ -130,6 +130,10 @@
        limit #{offset},#{pageSize};
    </select>
    <select id="selectOrderId" >
        select * from sd.`order` where order_id=#{orderId}
    </select>
    <select id="getSelectOrderInventoryPageTotal" >
        select CEILING(count(zu.order_id)/#{pageSize}) as 'pageTotal',
        count(zu.order_id) as 'total' from