chenlu
2025-07-28 a99c1f36e52c75e0020127c62d39c1eddae4a036
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
13个文件已修改
626 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyangDetails.vue 429 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCard.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCardDetail.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue
@@ -88,37 +88,49 @@
      customer.value = produceList.value[0].detail[0]
      let height = 0
      let index = 0
      produceList.value[0].detailList.forEach(order => {
        if(orderDetailList.value[index]===undefined){
          orderDetailList.value[index]=[]
        }
        height+=50
        //判断高度是否超过350,则换页
        if(height>=500){
          height=0
      for(let i=0;i<produceList.value.length;i++){
        //换产品就换页
        if(i>0){
          index+=1
          orderDetailList.value[index]=[]
        }
        orderDetailList.value[index]=[]
        orderDetailList.value[index].push({
          type:'product',
          productName:order.product_name
          type:'customer',
          customer:produceList.value[i].detail[0]
        })
        order.detailList.forEach(item => {
          height+=30
        produceList.value[i].detailList.forEach(order => {
          height+=50
          //判断高度是否超过350,则换页
          if(height>=500){
            height=0
            index+=1
            orderDetailList.value[index]=[]
            orderDetailList.value[index].push({
              type:'customer',
              customer:produceList.value[i].detail[0]
            })
          }
          orderDetailList.value[index].push({
            type:'size',
            size:item
            type:'product',
            productName:order.product_name
          })
          order.detailList.forEach(item => {
            height+=30
            if(height>=500){
              height=0
              index+=1
              orderDetailList.value[index]=[]
            }
            orderDetailList.value[index].push({
              type:'size',
              size:item
            })
          })
        })
      })
      }
      orderDetailList.value.forEach((page,index)=>{
        let sum = {
          quantity:0,
@@ -179,23 +191,23 @@
              <div style="display:flex;">
                <div style="width: 100%"><span style="font-weight: bold;">客户名称</span>:
                  <input class="contactNumber" style="width: 80%;font-size: 9px" type="text"
                         v-model="customer.customer_name" />
                         v-model="page[0].customer.customer_name" />
                </div>
              </div>
              <div style="display:flex;">
                <div style="width: 100%"><span style="font-weight: bold">工程名称</span>:{{customer.project}}</div>
                <div style="width: 100%"><span style="font-weight: bold">工程名称</span>:{{page[0].customer.project}}</div>
              </div>
              <div style="display:flex;">
                <div style="width: 50%"><span style="font-weight: bold">订单号</span>:{{customer.order_id}}</div>
                <div style="width: 50%"><span style="font-weight: bold">装箱单号</span>:{{customer.remarks}}</div>
                <div style="width: 50%"><span style="font-weight: bold">订单号</span>:{{page[0].customer.order_id}}</div>
                <div style="width: 50%"><span style="font-weight: bold">装箱单号</span>:{{page[0].customer.remarks}}</div>
              </div>
              <div style="display:flex;">
                <div style="width: 50%"><span style="font-weight: bold">包装日期</span>:{{customer.reporting_work_time}}</div>
                <div style="width: 50%"><span style="font-weight: bold">本架数量</span>:{{customer.quantity}}</div>
                <div style="width: 50%"><span style="font-weight: bold">包装日期</span>:{{page[0].customer.reporting_work_time}}</div>
                <div style="width: 50%"><span style="font-weight: bold">本架数量</span>:{{page[0].customer.quantity}}</div>
              </div>
              <div style="display:flex;">
                <div style="width: 50%;font-size: 9px"><span style="font-weight: bold">加工班组</span>:{{customer.teams_groups_name2}}</div>
                <div style="width: 50%;font-size: 9px"><span style="font-weight: bold">包装班组</span>:{{customer.teams_groups_name}}</div>
                <div style="width: 50%;font-size: 9px"><span style="font-weight: bold">加工班组</span>:{{page[0].customer.teams_groups_name2}}</div>
                <div style="width: 50%;font-size: 9px"><span style="font-weight: bold">包装班组</span>:{{page[0].customer.teams_groups_name}}</div>
              </div>
              <div style="display:flex;">
                <div style="width: 50%"><span style="font-weight: bold">质量检验</span>:刘化菊</div>
@@ -231,7 +243,7 @@
              <td>{{ row.size.area }}</td>
            </tr>
            <tr id="footsum" v-else style="border: 0;font-size: 10px">
            <tr id="footsum" v-else-if="row.type==='sum'" style="border: 0;font-size: 10px">
              <td colspan="5" style="border: 0;">
                <div style="display:flex;">
                  <div>本页数量</div>&nbsp;&nbsp;&nbsp;&nbsp;
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue
@@ -258,7 +258,7 @@
          <td colspan="6">
            <el-row :gutter="20">
              <el-col :span="2"></el-col>
              <el-col :span="12" style="font-size: 17px;font-weight: bold"> {{delivery.orderId }}</el-col>
              <el-col :span="12" style="font-size: 16px"> {{delivery.orderId }}</el-col>
            </el-row>
          </td>
        </tr>
@@ -302,16 +302,16 @@
          </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td>
        <tr id="table-sum">
          <td id="sum_td"></td>
          <td  ></td>
          <td style="width: 65px" >
            {{getQuantitySum(pageIndex)}}
          </td>
          <td>
            <input  style="border: 0;width: 100px" :value="getAreaSum(pageIndex)">
          <td style="width: 100px">
            <input  style="border: 0;width: 100px;font-size: 17px" :value="getAreaSum(pageIndex)">
          </td>
          <td></td>
         <td style="width: 80px"></td>
          <td v-if="props.type===1">
            {{getMoneySum(pageIndex)}}
          </td>
@@ -350,7 +350,7 @@
  text-align: center;
}
tbody *{
  font-size: 12px;
  font-size: 14px;
}
#footsum1,#footsum{
  font-weight: bold;font-size: 17px;
@@ -368,6 +368,14 @@
    bottom: 1cm;
    width: 100%; /* 或者设置成具体的宽度 */
  }
  #table-sum {
    position: absolute; /* 或者使用 relative,根据具体需求 */
    bottom: 5cm;
  }
  #sum_td{
    width: 9cm;
  }
}
.textarea{
@@ -381,7 +389,7 @@
:deep(.el-textarea__inner){
  color: #333333;
  font-family: 'Microsoft YaHei', '微软雅黑', sans-serif;
  font-size: 12px;
  font-size: 14px;
}
:deep(.aaa){
  width: 150px;
@@ -389,4 +397,7 @@
:deep(.bbb){
  width: 5cm;
}
:deep(#table-sum td){
  font-size: 17px;
}
</style>
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyangDetails.vue
@@ -5,7 +5,7 @@
import companyInfo from "@/stores/sd/companyInfo"
import deepClone from "@/utils/deepClone";
import {ElMessage} from "element-plus";
import {add,addAuto} from '@/utils/decimal';
import {add, addAuto} from '@/utils/decimal';
const company = companyInfo()
let produceList = ref([])
@@ -15,17 +15,15 @@
let money = ref("")
let otherMoneys = 0
let sumMoney = 0
let takeCare =ref("具体规格详见清单")
let remark =ref(company.deliveryRemark)
let takeCare = ref("具体规格详见清单")
let remark = ref(company.deliveryRemark)
let props = defineProps({
  deliveryId:null,
  type:null
  deliveryId: null,
  type: null
})
const form = ref({
})
const form = ref({})
let produceList2 = ref([])
@@ -33,56 +31,55 @@
const pageData = ref()
const getData = () => {
  if(props.deliveryId===null  || props.deliveryId===undefined || props.deliveryId===''){
  if (props.deliveryId === null || props.deliveryId === undefined || props.deliveryId === '') {
    return
  }
  deliveryId.value = props.deliveryId[0].deliveryId
  form.value.deliveryId=props.deliveryId
  form.value.type=company.productName
  form.value.state=props.type
  form.value.deliveryId = props.deliveryId
  form.value.type = company.productName
  form.value.state = props.type
  request.post(`/delivery/getSelectDeliveryPrinting`,form.value).then((res) => {
    if(res.code==200){
      console.log(res.data)
  request.post(`/delivery/getSelectDeliveryPrinting`, form.value).then((res) => {
    if (res.code == 200) {
      //console.log(res.data)
      produceList.value = deepClone(res.data)
      for(let i=0;i<produceList.value.length;i++){
        produceList.value[i].data.forEach(item =>{
      for (let i = 0; i < produceList.value.length; i++) {
        produceList.value[i].data.forEach(item => {
        })
        let produceList1= ({
          data:null,
          otherMoney:null,
          otherMoney1:null,
          delivery:null,
          money:null,
          otherMoneys:0,
          sumMoney:0
        let produceList1 = ({
          data: null,
          otherMoney: null,
          otherMoney1: null,
          delivery: null,
          money: null,
          otherMoneys: 0,
          sumMoney: 0
        })
        produceList1.data=produceList.value[i].data
        produceList1.delivery=produceList.value[i].delivery
        produceList1.money=produceList.value[i].money
        produceList1.otherMoney=produceList.value[i].otherMoney
        for(let j=0;j<produceList1.data.length;j++){
          produceList1.sumMoney+=produceList1.data[j].DeliveryDetail.money
        produceList1.data = produceList.value[i].data
        produceList1.delivery = produceList.value[i].delivery
        produceList1.money = produceList.value[i].money
        produceList1.otherMoney = produceList.value[i].otherMoney
        for (let j = 0; j < produceList1.data.length; j++) {
          produceList1.sumMoney += produceList1.data[j].DeliveryDetail.money
        }
        otherMoney1=[]
        for(let i=0;i<produceList1.otherMoney.length;i++){
          if(produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery!=null){
            produceList1.otherMoneys+=produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery
            if(otherMoney1.length===0){
        otherMoney1 = []
        for (let i = 0; i < produceList1.otherMoney.length; i++) {
          if (produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery != null) {
            produceList1.otherMoneys += produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery
            if (otherMoney1.length === 0) {
              otherMoney1.push(produceList1.otherMoney[i])
            }
            else{
              for(let s=0;s<otherMoney1.length;s++){
                if(produceList1.otherMoney[i].DeliveryDetailOtherMoney.alias===otherMoney1[s].DeliveryDetailOtherMoney.alias){
            } else {
              for (let s = 0; s < otherMoney1.length; s++) {
                if (produceList1.otherMoney[i].DeliveryDetailOtherMoney.alias === otherMoney1[s].DeliveryDetailOtherMoney.alias) {
                  otherMoney1[s].DeliveryDetailOtherMoney.count=add(produceList1.otherMoney[i].DeliveryDetailOtherMoney.count,otherMoney1[s].DeliveryDetailOtherMoney.count)
                  otherMoney1[s].DeliveryDetailOtherMoney.monery =add(produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery,otherMoney1[s].DeliveryDetailOtherMoney.monery)
                  otherMoney1[s].DeliveryDetailOtherMoney.count = add(produceList1.otherMoney[i].DeliveryDetailOtherMoney.count, otherMoney1[s].DeliveryDetailOtherMoney.count)
                  otherMoney1[s].DeliveryDetailOtherMoney.monery = add(produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery, otherMoney1[s].DeliveryDetailOtherMoney.monery)
                  break
                }
                if(s+1===otherMoney1.length){
                if (s + 1 === otherMoney1.length) {
                  otherMoney1.push(produceList1.otherMoney[i])
                  break
                }
@@ -93,30 +90,29 @@
          }
        }
        produceList1.otherMoney1=otherMoney1
        produceList1.otherMoney1 = otherMoney1
        produceList2.value.push(produceList1)
      }
      for(let j=0;j<produceList2.value.length;j++){
      for (let j = 0; j < produceList2.value.length; j++) {
        if(produceList2.value[j].delivery.money.toFixed(0)!==(produceList2.value[j].otherMoneys
            +produceList2.value[j].sumMoney+produceList2.value[j].delivery.freight).toFixed(0)){
        if (produceList2.value[j].delivery.money.toFixed(0) !== (produceList2.value[j].otherMoneys
            + produceList2.value[j].sumMoney + produceList2.value[j].delivery.freight).toFixed(0)) {
          console.log(produceList2.value[j])
          console.log(produceList2.value[j].delivery.money)
          console.log((produceList2.value[j].otherMoneys
              +produceList2.value[j].sumMoney).toFixed(0))
              + produceList2.value[j].sumMoney).toFixed(0))
          console.log(produceList2.value[j].delivery.deliveryId)
        }
      }
      //给数据进行分页
      pageData.value = groupArrayByFive(produceList2.value[0].data)
      console.log(pageData.value)
      //console.log(pageData.value)
      delivery.value = produceList2.value[0].delivery
      console.log(delivery.value)
      //console.log(delivery.value)
    }else{
    } else {
      ElMessage.warning(res.msg)
      router.push("/login")
    }
@@ -125,7 +121,7 @@
function groupArrayByFive(arr) {
  let result = [];
  /*let result = [];
  let productName=ref()
  arr.forEach(item=>{
    for (let i = 0; i < item.DeliveryDetailList.length; i += 8) {
@@ -140,10 +136,84 @@
      result.push(resultMap)
    }
  })*/
  let result = [];
  arr.forEach(item => {
    item.DeliveryDetailList.forEach(items => {
      result.push(items)
    })
  })
  console.log(result)
  let index=0
  let number=0
  let numberResult = [];
  let results = [];
  let productName=result[0]['product_name']
  for (let i = 0; i < result.length; i ++) {
    if(productName!=result[i]['product_name']){
      productName=result[i]['product_name']
      index++
    }
    number++
    numberResult.push(result[i])
  return result;
    let next=false
    if (i + 1 != result.length) {
      if(result[i+1]['product_name']!=productName){
        next=true
      }
    }else{
      next=true
    }
    if((index==3 && next) ||number==8){
      results.push(numberResult);
      index=0
      number=0
      numberResult=[]
    }else{
      if (i + 1 == result.length) {
        results.push(numberResult);
        index=0
        number=0
        numberResult=[]
      }
    }
  }
  console.log(results)
  /*for (let i = 0; i < result.length; i += 8) {
    results.push(result.slice(i, i + 8));
  }*/
  for (let i = 0; i < results.length; i++) {
    let name = results[i][0]['product_name'] //上一次名称
    let key = 0;   //相同数
    for (let j = 0; j < results[i].length; j++) {
      let thisName = results[i][j]['product_name'];
      if (thisName != name) {
        results[i][key].rowspan = j - key;
        name=results[i][j]['product_name']
        key = j;
      }
      if (j + 1 == results[i].length) {
        results[i][key].rowspan = j - key+1;
        name=results[i][j]['product_name']
      }
    }
  }
  return results;
}
let deliveryDate = ref()
onMounted(() => {
  const today = new Date
@@ -155,35 +225,34 @@
})
const printSheet = () => {
}
let companyName = ref('洛阳玻璃公司')
const getQuantitySum = (page)=>{
  if(pageData.value[page] === undefined){
    return  0
const getQuantitySum = (page) => {
  if (pageData.value[page] === undefined) {
    return 0
  }
  return pageData.value[page].DeliveryDetailList[0].reduce((accumulator, currentValue) => {
    return add(accumulator,currentValue.quantity)
  return pageData.value[page].reduce((accumulator, currentValue) => {
    return add(accumulator, currentValue.quantity)
  }, 0)
}
const getAreaSum = (page)=>{
  if(pageData.value[page] === undefined){
    return  0
const getAreaSum = (page) => {
  if (pageData.value[page] === undefined) {
    return 0
  }
  return pageData.value[page].DeliveryDetailList[0].reduce((accumulator, currentValue) => {
    return addAuto(accumulator,currentValue.area,2)
  return pageData.value[page].reduce((accumulator, currentValue) => {
    return addAuto(accumulator, currentValue.area, 2)
  }, 0)
}
const getMoneySum = (page)=>{
  if(pageData.value[page] === undefined){
    return  0
const getMoneySum = (page) => {
  if (pageData.value[page] === undefined) {
    return 0
  }
  return pageData.value[page].DeliveryDetailList[0].reduce((accumulator, currentValue) => {
    return addAuto(accumulator,currentValue.money,2)
  return pageData.value[page].reduce((accumulator, currentValue) => {
    return addAuto(accumulator, currentValue.money, 2)
  }, 0)
}
@@ -194,126 +263,133 @@
</script>
<template>
  <div >
    <el-row id="footsum" :gutter="20" >
  <div>
    <el-row id="footsum" :gutter="20">
      <el-col :span="20"></el-col>
      <el-col :span="4" style="font-size: 17px" >{{delivery.creator}}</el-col>
      <el-col :span="4" style="font-size: 17px">{{ delivery.creator }}</el-col>
    </el-row>
    <el-row id="footsum1" :gutter="20" >
      <el-col :span="2" ></el-col>
    <el-row id="footsum1" :gutter="20">
      <el-col :span="2"></el-col>
      <el-col :span="3" style="font-size: 17px">{{ delivery.contacts }}</el-col>
      <el-col :span="7" style="font-size: 17px">{{ delivery.contactNumber }}</el-col>
      <el-col :span="1" ></el-col>
      <el-col :span="1"></el-col>
      <el-col :span="11" style="font-size: 17px">{{ delivery.deliveryAddress }}</el-col>
    </el-row>
    <table  class="content1" v-for="(page,pageIndex) in pageData" >
    <table class="content1" v-for="(page,pageIndex) in pageData">
      <thead>
        <tr style="height: 3.6cm"><td></td></tr>
      <tr style="height: 3.6cm">
        <td></td>
      </tr>
        <tr>
          <td colspan="6" >
            <el-row :gutter="20">
              <el-col :span="2"></el-col>
              <el-col :span="9">
                <input v-model="companyName"
                       style="border: 0;width: 100%;
      <tr>
        <td colspan="6">
          <el-row :gutter="20">
            <el-col :span="2"></el-col>
            <el-col :span="9">
              <input v-model="companyName"
                     style="border: 0;width: 100%;
                       height: 100%;font-size:19px;font-weight: bold "/>
              </el-col>
              <el-col :span="5" style="font-size:19px;font-weight: bold"> {{deliveryId}} </el-col>
              <el-col :span="6"></el-col>
              <el-col :span="2" style="white-space: nowrap;font-size:19px;font-weight: bold">{{deliveryDate}}</el-col>
            </el-row>
          </td>
        </tr>
        <tr style="height: 0.1cm"><td></td></tr>
            </el-col>
            <el-col :span="5" style="font-size:19px;font-weight: bold"> {{ deliveryId }}</el-col>
            <el-col :span="6"></el-col>
            <el-col :span="2" style="white-space: nowrap;font-size:19px;font-weight: bold">{{ deliveryDate }}</el-col>
          </el-row>
        </td>
      </tr>
      <tr style="height: 0.1cm">
        <td></td>
      </tr>
        <tr style="margin-top: 20px">
          <td colspan="6">
            <el-row :gutter="20">
              <el-col :span="2"></el-col>
              <el-col :span="17" style="font-size: 16px;">{{delivery.customerName }}</el-col>
      <tr style="margin-top: 20px">
        <td colspan="6">
          <el-row :gutter="20">
            <el-col :span="2"></el-col>
            <el-col :span="17" style="font-size: 16px;">{{ delivery.customerName }}</el-col>
              <el-col :span="5" style="font-size: 16px;white-space: nowrap;"> {{delivery.project }}</el-col>
            </el-row>
          </td>
        </tr>
        <tr style="height: 0.1cm"><td></td></tr>
        <tr>
          <td colspan="6">
            <el-row :gutter="20">
              <el-col :span="2"></el-col>
              <el-col :span="12" style="font-size: 17px;font-weight: bold"> {{delivery.orderId }}</el-col>
            </el-row>
          </td>
        </tr>
            <el-col :span="5" style="font-size: 16px;white-space: nowrap;"> {{ delivery.project }}</el-col>
          </el-row>
        </td>
      </tr>
      <tr style="height: 0.1cm">
        <td></td>
      </tr>
      <tr>
        <td colspan="6">
          <el-row :gutter="20">
            <el-col :span="2"></el-col>
            <el-col :span="12" style="font-size: 16px;"> {{ delivery.orderId }}</el-col>
          </el-row>
        </td>
      </tr>
        <tr style="height: 1cm"><td></td></tr>
      <tr style="height: 1cm">
        <td></td>
      </tr>
      </thead>
      <tbody  >
      <template v-for="(items,index1) in page.DeliveryDetailList[0]">
      <tbody>
      <template v-for="(items,index1) in page">
        <tr>
          <td style="width: 4cm" :rowspan="page.id" v-if="index1===0">
            <el-input  class="textarea" type="textarea"
                       :autosize="{ minRows: 1, maxRows: 20 }"
                       v-model="page.DeliveryDetail.orderDetail.productName" />
          <td style="width: 4cm" :rowspan="items.rowspan" v-if="items.rowspan!==undefined">
            <el-input class="textarea" type="textarea"
                      :autosize="{ minRows: 1, maxRows: 20 }"
                      v-model="items.product_name"/>
          </td>
          <td style="width: 0.8cm"></td>
          <td style="width: 2cm">
            <el-input  class="textarea" type="textarea"
                       :autosize="{ minRows: 1, maxRows: 20 }"
                       v-model="items.width" />
            <el-input class="textarea" type="textarea"
                      :autosize="{ minRows: 1, maxRows: 20 }"
                      v-model="items.width"/>
          </td>
           <td style="width: 2cm">
              <el-input  class="textarea" type="textarea"
                         :autosize="{ minRows: 1, maxRows: 20 }"
                         v-model="items.height" />
          <td style="width: 2cm">
            <el-input class="textarea" type="textarea"
                      :autosize="{ minRows: 1, maxRows: 20 }"
                      v-model="items.height"/>
           </td>
         <td style="width: 60px">
            {{items.quantity}}
          </td>
          <td style="width: 60px">
            {{ items.quantity }}
          </td>
          <td style="width: 100px">
            <input   style="border: 0;width: 100px" v-model="items.area">
            <input style="border: 0;width: 100px" v-model="items.area">
          </td>
          <td
              v-if="props.type===1||props.type===3"
              style="width: 80px"
          >
            {{items.price}}
            {{ items.price }}
          </td>
          <td
              v-if="props.type===1||props.type===3"
          >
            {{items.money}}
            {{ items.money }}
          </td>
        </tr>
      </template>
        <tr>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td>
            {{getQuantitySum(pageIndex)}}
          </td>
          <td>
            <input   style="border: 0;width: 100px" :value="getAreaSum(pageIndex)">
          </td>
          <td></td>
          <td v-if="props.type===1||props.type===3">
            {{getMoneySum(pageIndex)}}
          </td>
      <tr id="table-sum">
        <td id="sum_td"></td>
        <td></td>
        <td></td>
        <td></td>
        <td style="width: 60px">
          {{ getQuantitySum(pageIndex) }}
        </td>
        <td style="width: 100px">
          <input style="border: 0;width: 100px" :value="getAreaSum(pageIndex)">
        </td>
        <td style="width: 80px"></td>
        <td v-if="props.type===1||props.type===3">
          {{ getMoneySum(pageIndex) }}
        </td>
        </tr>
      </tr>
      </tbody>
    </table>
@@ -325,57 +401,70 @@
</template>
<style scoped>
*{
* {
  color: rgba(0, 0, 0, 0.8); /* 更深的黑色 */
  font-family: 'Microsoft YaHei', '微软雅黑', sans-serif;
  outline: none;
}
#sheet{
#sheet {
  width: 21cm;
}
table{
table {
  width: 18.3cm
}
.content1{
.content1 {
  page-break-after: always;
}
span{
span {
  width: 7cm;
  text-align: center;
}
tbody *{
  font-size: 12px;
tbody * {
  font-size: 14px;
}
#footsum1,#footsum{
#footsum1, #footsum {
  font-size: 17px;
}
@media print {
  #footsum{
  #footsum {
    position: fixed;
    bottom: 3.5cm;
    width: 100%; /* 或者设置成具体的宽度 */
    font-size: 17px;
  }
  #footsum1{
  #footsum1 {
    position: fixed;
    bottom: 1cm;
    width: 100%; /* 或者设置成具体的宽度 */
  }
  #table-sum {
    position: absolute; /* 或者使用 relative,根据具体需求 */
    bottom: 5cm;
  }
  #sum_td{
    width: 9cm;
  }
}
.textarea{
--el-border-color: rgba(255,255,255,0.0);
--el-input-focus-border-color: rgba(255,255,255,0.0);
--el-input-focus-border-width: 0px;
--el-input-hover-border-color: rgba(255,255,255,0.0);
--el-input-hover-border-width: 0px;
.textarea {
  --el-border-color: rgba(255, 255, 255, 0.0);
  --el-input-focus-border-color: rgba(255, 255, 255, 0.0);
  --el-input-focus-border-width: 0px;
  --el-input-hover-border-color: rgba(255, 255, 255, 0.0);
  --el-input-hover-border-width: 0px;
}
/*textarea {
  font-size: 16px;
@@ -385,11 +474,13 @@
  width: 100%;
  height: 100%;
}*/
:deep(.el-textarea__inner){
:deep(.el-textarea__inner) {
  color: #333333;
  font-family: 'Microsoft YaHei', '微软雅黑', sans-serif;
  font-size: 12px;
  font-size: 14px;
}
:deep(#table-sum td){
  font-size: 17px;
}
</style>
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -41,7 +41,7 @@
  mergeCells:[],
  toolbarConfig: {
    zoom: true,
    custom: true
    /*custom: true*/
  },
  cellClassName ({ row, column,columnIndex})  {
    if (columnIndex>10 && row.thisQuantity*1 === row.reportWorkQuantity[column.title]*1){
@@ -103,7 +103,6 @@
  gridOptions.loading = true
  request.post(`/report/processCardProgress/${props.orderId}`,column).then(async (res) => {
    if (res.code == 200) {
      gridOptions.columns = JSON.parse(JSON.stringify(columns))
      gridOptions.columns.forEach(item =>{
        item.filterMethod = filterChanged
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCard.vue
@@ -1,5 +1,5 @@
<script setup>
import {onMounted, reactive, ref} from "vue";
import {onMounted, reactive, ref, watch} from "vue";
import {useI18n} from "vue-i18n";
import {Search} from "@element-plus/icons-vue";
import request from "@/utils/request";
@@ -76,6 +76,18 @@
})
const xGrid = ref()
// 添加监听器 - 监听膜系选择变化
watch(optionVal, (newVal, oldVal) => {
  if (oldVal !== undefined && newVal !== oldVal) {
    // 当膜系改变时,自动刷新数据
    if (newVal) {
      selectFlowCardList();
    }
  }
});
const gridOptions = reactive({
  height: '100%',
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCardDetail.vue
@@ -96,8 +96,18 @@
    }
);
watch(() => props.technologyNumber,
    (newValue, oldValue) => {
  if (props.technologyNumber != null) {
    getWorkOrder();
  }
});
const getWorkOrder = () => {
  if (props.processId!=null || props.processId!=""){
  if ((props.processId != null && props.processId != "") &&
      (props.technologyNumber != null && props.technologyNumber != "")) {
    request.post(`/glassOptimize/getProcessCardDetail/${props.processId}/${props.technologyNumber}`).then((res) => {
      if(res.code==200){
        xGrid.value.loadData(res.data.data)
@@ -106,7 +116,6 @@
      }
    })
  }
}
</script>
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
@@ -94,7 +94,7 @@
    List<Map<String, String>> getPrimaryListLimt(String orderId, String processId, String remarks);
    List<Map<String, String>> getPrimaryListLimts(String orderId, String processId, String remarks);
    List<Map<String, String>> getPrimaryListLimts(String customerName, String project, String remarks);
    List<Map<String, Object>> getDetailList(String orderId, String processId, String remarks);
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -854,7 +854,7 @@
                }
                Map<String, Object> itemmap = new HashMap<>();
                itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimts(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks()));
                itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimts(finishedOperateLog.getOrder().getCustomerName(),finishedOperateLog.getOrder().getProject(),finishedOperateLog.getRemarks()));
                List<Map<String, Object>> detailList = finishedOperateLogMapper.getDetailList2(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks());
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -222,7 +222,7 @@
                Map<String, String> data = JSON.parseObject(dataList.get(i).get("reportWorkQuantity"),
                        new TypeReference<Map<String, String>>() {
                        });
                dataList.get(i).put("reportWorkQuantityShow",dataList.get(i).get("reportWorkQuantity"));
                for (String key : clos.keySet()) {
                    if(data.get(key) != null){
                       Integer max = orderGlassDetailMapper
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -388,7 +388,7 @@
    public Map<String,Object> getOrderList(Integer pageNum, Integer pageSize, List<String> selectDate, Map<String,Object> config,Integer orderType) {
        Integer offset = (pageNum-1)*pageSize;
        String endDate = LocalDate.now().toString();
        String startDate = LocalDate.now().minusDays(15).toString();
        String startDate = LocalDate.now().minusDays(365).toString();
        if(selectDate !=null && selectDate.size()==2){
            if(!selectDate.get(0).isEmpty()){
                startDate = selectDate.get(0);
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -143,6 +143,7 @@
        from (select *
        from mm.finished_operate_log aa where aa.operate_type = #{type}  and aa.status!='已作废') fol
        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
        left join sd.`order` o on o.order_id=fol.order_id
        <where>
            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
            <if test="finishedOperateLog.operationOrderNumber != null and finishedOperateLog.operationOrderNumber != ''">
@@ -803,7 +804,8 @@
                and fol.remarks regexp #{finishedOperateLog.remarksr}
            </if>
        </where>
        group by fol.remarks,od.order_id,fol.process_id
        group by fol.remarks,od.order_id
        -- ,fol.process_id
        order by fol.operate_time desc
        limit #{offset},#{pageSize};
    </select>
@@ -874,34 +876,37 @@
</select>
    <select id="getPrimaryListLimts">
        select kkk.*,rw.teams_groups_name as teams_groups_name2 from(select  o.order_id,
                                                       o.customer_name,
                                                       o.project,
                                                       fol.remarks,
                                                       SUM(fol.quantity) as quantity,
                                                       ROUND( sum(od.width * od.height * fol.quantity) / 1000000, 2 ) as area,
                                                       ROUND( sum(od.width * od.height * fol.quantity*p.total_thickness*2.5) / 1000000, 2 ) as weight,
                                                       fol.process_id,
                                                       aaa.teams_groups_name,
                                                       aaa.previous_process,
                                                       date( aaa.reporting_work_time) as reporting_work_time
                                               from (select *
                                                     from mm.finished_operate_log aa where aa.operate_type = '入库'  and aa.status!='已作废') fol
                                                        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
                                                        left join sd.`order` o on o.order_id=fol.order_id
                                                        left join sd.product p on od.product_id=p.id
                                                        left join (select teams_groups_name,process_id,previous_process,reporting_work_time from pp.reporting_work  where this_process='包装' group by process_id) aaa on  aaa.process_id=fol.process_id
                                                                             o.customer_name,
                                                                             o.project,
                                                                             fol.remarks,
                                                                             SUM(fol.quantity) as quantity,
                                                                             ROUND( sum(od.width * od.height * fol.quantity) / 1000000, 2 ) as area,
                                                                             ROUND( sum(od.width * od.height * fol.quantity*p.total_thickness*2.5) / 1000000, 2 ) as weight,
                                                                             fol.process_id,
                                                                             aaa.teams_groups_name,
                                                                             aaa.previous_process,
                                                                             date( aaa.reporting_work_time) as reporting_work_time
                                                                     from (select *
                                                                           from mm.finished_operate_log aa where aa.operate_type = '入库'  and aa.status!='已作废') fol
                                                                              left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
                                                                              left join sd.`order` o on o.order_id=fol.order_id
                                                                              left join sd.product p on od.product_id=p.id
                                                                              left join (select teams_groups_name,process_id,previous_process,reporting_work_time from pp.reporting_work  where this_process='包装' group by process_id) aaa on  aaa.process_id=fol.process_id
                                               where
                                                   o.order_id=#{orderId}  and fol.remarks=#{remarks}
                                                 and (fol.remarks is not null and fol.remarks !="") and (fol.process_id !="" and fol.process_id is not null)
                                                                     where
                                                                         o.customer_name=#{customerName}  and fol.remarks=#{remarks} and o.project=#{project}
                                                                       and (fol.remarks is not null and fol.remarks !="") and (fol.process_id !="" and fol.process_id is not null)
                                               group by fol.remarks,od.order_id
                                              ) as kkk
                                                  left join  pp.reporting_work rw on  rw.process_id=kkk.process_id and rw.this_process=kkk.previous_process
        group by kkk.remarks,kkk.order_id
                                                                     group by fol.remarks,o.customer_name,o.project
                                                                    ) as kkk
                                                                        left join  pp.reporting_work rw on  rw.process_id=kkk.process_id and rw.this_process=kkk.previous_process
        group by kkk.remarks,kkk.customer_name,kkk.project
    </select>
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -178,6 +178,7 @@
#                c.quantity,
               c.quantity as thisQuantity,/*用于判断是否改变颜色*/
               e.reportWorkQuantity,
               e.reportWorkQuantityShow,
               e.reportWorkQuantityCount,
               e.reportWorkTime,
               e.broken_num,
@@ -220,6 +221,10 @@
                                          '}'
                                       )             as reportWorkQuantity,
                                   concat('{',
                                          GROUP_CONCAT(concat("\"", process, "\":\"", if(technology_number!=1 and (bd.nickname='stepD' || bd.nickname='stepB' ) ,0,reporting_work_num), "\"")),
                                          '}'
                                       )             as reportWorkQuantityShow,
                                   concat('{',
                                          GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num_count, "\"")),
                                          '}'
                                       )             as reportWorkQuantityCount,
north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
@@ -110,7 +110,7 @@
            sd.`order` as o
        left join mm.finished_goods_inventory as  fgi
        on o.order_id = fgi.order_id
        where  date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
        where  date(o.create_time) between #{startDate} and  #{endDate}
          <if test="orderType!= null and orderType != ''">
               and o.create_order = #{orderType}