guoyuji
2025-02-07 82685a4ec94db01c564561582141c03054012ea3
Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

# Conflicts:
# north-glass-erp/northglass-erp/package-lock.json
# north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue
27个文件已修改
726 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/package-lock.json 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/天津北玻.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/常州吉利.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/新疆恒鑫.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/金华天成.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStock.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | 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/mapper/pp/FlowCardMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java 262 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/ReworkMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/package-lock.json
@@ -114,7 +114,6 @@
      "version": "2.3.1",
      "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
      "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
      "license": "MIT",
      "peerDependencies": {
        "vue": "^3.2.0"
      }
@@ -1152,8 +1151,7 @@
    "node_modules/dayjs": {
      "version": "1.11.13",
      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
      "license": "MIT"
      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
    },
    "node_modules/debug": {
      "version": "4.3.6",
@@ -1212,7 +1210,6 @@
      "version": "2.9.3",
      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.3.tgz",
      "integrity": "sha512-6tSLp5XytDS4TMZ0P3aGZnr7MXTagfNycepNfIDitd9IgwM9y01+Ssu6mglNi8RiXYhek6LBWNOd/cvpIO12+w==",
      "license": "MIT",
      "dependencies": {
        "@ctrl/tinycolor": "^3.4.1",
        "@element-plus/icons-vue": "^2.3.1",
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue
@@ -31,7 +31,8 @@
  faceOrientation:null,//内外面
  type:null,//标签模板
  lableType:null,//标签类型
  switch:null//判断是否为新打印
  switch:null,//判断是否为新打印
  lastList:[],
})
const {currentRoute} = useRouter()
@@ -77,9 +78,9 @@
          for (let i = 0; i < list.value.length; i++) {
            let count = list.value[i].data.length
            for (let j = 0; j < count; j++) {
              for (let k = 0; k < list.value[i].data[j].quantity; k++) {
                lastList.value.push(list.value[i].data[j])
              }
            //  for (let k = 0; k < list.value[i].data[j].quantity; k++) {
                props.lastList.push(list.value[i].data[j])
            //  }
            }
          }
        } else {
@@ -115,11 +116,11 @@
  }
  // éåކ lastList å¹¶æ›´æ–°å¯¹åº”的属性
  lastList.value.forEach(obj => {
  props.lastList.forEach(obj => {
    // èŽ·å–å‰ç¼€å’Œ orderId
    const prefix = lastList.value[index].processId.substring(0, 11);
    const prefix = props.lastList[id].processId.substring(0, 11);
    const orderId = obj.orderId;
    const glassNumber=lastList.value[index].glassNumber
    const glassNumber=props.lastList[id].glassNumber
    // æ ¹æ® propertyName æ›´æ–°å±žæ€§
    if (propertyName === 'productAbbreviation' && prefix === obj.processId.substring(0, 11)) {
      obj.productAbbreviation = result;
@@ -134,6 +135,33 @@
    if (propertyName === 'customerName' && orderId === obj.orderId){
      obj.customerName = result;
    }
    if (propertyName === 'orderId' && orderId === obj.orderId){
      obj.orderId = result;
    }
    if (propertyName === 'glassNumber' && glassNumber === obj.glassNumber){
      obj.glassNumber = result;
    }
    if (propertyName === 'width' && glassNumber === obj.glassNumber){
      obj.width = result;
    }
    if (propertyName === 'height' && glassNumber === obj.glassNumber){
      obj.height = result;
    }
    if (propertyName === 'custom1' && orderId === obj.orderId){
      obj.custom1 = result;
    }
    if (propertyName === 'custom2' && orderId === obj.orderId){
      obj.custom2 = result;
    }
    if (propertyName === 'custom3' && orderId === obj.orderId){
      obj.custom3 = result;
    }
    if (propertyName === 'custom4' && orderId === obj.orderId){
      obj.custom4 = result;
    }
    if (propertyName === 'custom5' && orderId === obj.orderId){
      obj.custom5 = result;
    }
  });
}
@@ -141,7 +169,7 @@
<template>
  <div id="print" :class="company.printLabel.className.semi.printFlowCardName()">
    <div v-for="(item1,id) in lastList" :class="company.printLabel.className.semi.entiretyName()">
    <div v-for="(item1,id) in props.lastList" :class="company.printLabel.className.semi.entiretyName()">
      <div class="row4">{{ faceOrientation }}</div>
      <div  v-for="(item,id) in labelList" :class="company.printLabel.className.semi.contentRowName()">
        <div contenteditable="true" v-if="item1[item.name] != null && item1[item.name] !== ''" class="row1" @input="updateProductName($event, id,index)">{{ item.title }}:{{ item1[item.name] }}</div>
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -31,6 +31,13 @@
  mergeTechnologyNumber:null
})
//打印时间
const currentTime = new Date();
const formattedTime = currentTime.getFullYear()
    + '-' + (currentTime.getMonth() + 1) + '-'
    + currentTime.getDate() + ' ' + currentTime.getHours() + ':'
    + currentTime.getMinutes();formattedTime
const {currentRoute} = useRouter()
const route = currentRoute.value
const printMerge = props.printMerge
@@ -238,7 +245,9 @@
          <div  style="font-weight: bolder;display: flex;justify-content:space-between">
            <div>
              è¡¥ç‰‡å•号:{{itemFlow.patch_id}}&nbsp;&nbsp;&nbsp;
              æ‰“印人:{{user.user.userName}}</div>
              æ‰“印人:{{user.user.userName}}&nbsp;&nbsp;
              æ—¶é—´ï¼š{{formattedTime}}
            </div>
            <div>
              <span style="font-size: 10px">{{itemFlow.otherRemarks}}</span>&nbsp;&nbsp;
              æµç¨‹å¡å·ï¼š {{
north-glass-erp/northglass-erp/src/stores/sd/companySet/Ìì½ò±±²£.js
@@ -29,6 +29,7 @@
        longSide:null,//订单创建最长边提示颜色 null不提示颜色
        showDeliveryCreator:true,//发货单创建人先显示或者后显示 false后显示
        deliveryRemark: ['备注:本批玻璃为优等合格品,请在卸货时,当面消点验收、如有质量问题在一周内与本公司联系,否则概不负责!'],
        deliveryOutbound: false,//发货默认出库
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/stores/sd/companySet/³£ÖݼªÀû.js
@@ -29,6 +29,7 @@
        longSide:6500,//订单创建最长边提示颜色
        showDeliveryCreator:true,//发货单创建人先显示或者后显示 false后显示
        deliveryRemark: ['备注:本批玻璃为优等合格品,请在卸货时,当面消点验收、如有质量问题在一周内与本公司联系,否则概不负责!'],
        deliveryOutbound: true,//发货默认出库
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/stores/sd/companySet/н®ºãöÎ.js
@@ -1,5 +1,4 @@
import {defineStore} from "pinia";
import {filterChanged} from "@/hook";
export default defineStore('companyInfo', {
@@ -30,6 +29,7 @@
        longSide:null,//订单创建最长边提示颜色
        showDeliveryCreator:true,//发货单创建人先显示或者后显示 false后显示
        deliveryRemark: ['备注:本批玻璃为优等合格品,请在卸货时,当面消点验收、如有质量问题在一周内与本公司联系,否则概不负责!'],
        deliveryOutbound: false,//发货默认出库
        //天津
        printLabel: {
north-glass-erp/northglass-erp/src/stores/sd/companySet/½ð»ªÌì³É.js
@@ -31,6 +31,7 @@
        deliveryRemark: ['温馨提示:货到工地或工厂后,请于五天内安装完毕,如未能及时安装完毕,请放置于阴凉干燥处,并做好防晒防淋的措施,防止玻璃发霉;所有单片镀膜玻璃请勿用带酸性或碱性的液体清洗膜面。',
            '声明:货到工地或工厂后,如若贵司不及时的安装或未做防晒防淋措施导致的玻璃发霉,我司概不负责。',
            '收货时需验收产品数量、规格及有无破损,如发现问题需于收货三日内,以书面通知并附上现场证明材料(如破损照片等),相关证明资料不足,或在上述日期内未提出质量异议的,逾期视为产品合格,我司将不予承担任何责任。敬请留意!'],
        deliveryOutbound: false,//发货默认出库
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStock.vue
@@ -6,6 +6,7 @@
import {ElMessage} from "element-plus";
import {useRouter,useRoute,onBeforeRouteUpdate} from "vue-router";
import { useI18n } from 'vue-i18n'
import companyInfo from "@/stores/sd/companyInfo";
//语言获取
const { t } = useI18n()
@@ -13,6 +14,7 @@
const router = useRouter()
const route = useRoute()
const company = companyInfo()
let indexFlag=$ref(1)
function changeRouter(index){
  indexFlag=index
@@ -25,7 +27,7 @@
     <el-breadcrumb :separator-icon="ArrowRight">
       <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/productStock/productStockList' }" >{{$t('productStock.inventoryQuery')}}</el-breadcrumb-item>
       <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/productStock/createProductStock' }">{{$t('productStock.finishedProductWarehousing')}}</el-breadcrumb-item>
       <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productStock/finishedProductOut' }">{{$t('productStock.finishedProductOutbound')}}</el-breadcrumb-item>
       <el-breadcrumb-item @click="changeRouter(3)" v-if="company.deliveryOutbound===false" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productStock/finishedProductOut' }">{{$t('productStock.finishedProductOutbound')}}</el-breadcrumb-item>
<!--       <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productStock/FinishedProductReturn' }">{{$t('productStock.finishedProductOrderReturn')}}</el-breadcrumb-item>-->
       <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">{{$t('productStock.reportForms')}}</el-breadcrumb-item>
<!--       <el-breadcrumb-item :to="{ path: '/main/productStock/OrderAllocation' }">订单调拨</el-breadcrumb-item>-->
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -629,7 +629,7 @@
  gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
    // è¿™é‡Œæ ¹æ® hidePrintLabels çš„值决定是否隐藏 printLabel å’Œ printLabel2
    if (hidePrintLabels == 'true') {
      return button.code !== 'printLabel' && button.code !== 'printLabel2';
      return button.code !== 'printLabel' && button.code !== 'printLabel2' ;
    } else {
      return true && button.code !== 'printLike'; // æ˜¾ç¤ºè¯¥æŒ‰é’®
    }
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -20,6 +20,7 @@
import companyInfo from "@/stores/sd/companyInfo"
import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global";
import TagStyleDesigner from "@/components/pp/TagStyleDesigner.vue";
import {hiprint} from "vue-plugin-hiprint";
const company = companyInfo()
@@ -176,6 +177,39 @@
const data = ref({
  printList: []
})
onMounted(async () => {
  await getTags();
  await hiprint.init();
})
let hiprintTemplate = ref()
const tags = ref([])
const tag = ref({
  id: null,
  name: null,
  type: 1,
  tagWidth: null,
  tagHeight: null,
  value: null,
  size: null
})
const changeTag = () => {
  hiprintTemplate.value = new hiprint.PrintTemplate({});
  const json = JSON.parse(tag.value.value)
  hiprintTemplate.value.update(json)
}
const getTags = () => {
  request.get('tagStyle/getTagList').then(res => {
    tags.value = res.data
  })
}
const printObjectProcess = () => {
  hiprintTemplate.value.print(lastList.value)
}
const {currentRoute} = useRouter()
const route = currentRoute.value
@@ -520,7 +554,6 @@
            }
          }
          if (lableTypes == 1) {
            console.log(company.label)
            labelRow.value.list = JSON.stringify(selectRecords)
            labelRow.value.faceOrientation = faceOrientation
            labelRow.value.type = type
@@ -639,7 +672,7 @@
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          if (type === null || type === '' || type === undefined) {
          if (tag.value.name === null || tag.value.name === '' || tag.value.name === undefined) {
            ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle'))
            return
          }
@@ -655,7 +688,7 @@
          labelRow.value.list = JSON.stringify(selectRecords)
          labelRow.value.faceOrientation = faceOrientation
          labelRow.value.type = type
          labelRow.value.type = tag.value.name
          labelRow.value.lableType = lableTypes
          labelRow.value.dataType = 1
          let columnsLabel = company.printLabel.columnsLabel
@@ -701,7 +734,7 @@
  gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
    // è¿™é‡Œæ ¹æ® hidePrintLabels çš„值决定是否隐藏 printLabel å’Œ printLabel2
    if (hidePrintLabels == 'true') {
      return button.code !== 'printLabel' && button.code !== 'printLabel2';
      return button.code !== 'printLabel' && button.code !== 'printLabel2' && button.code !== 'customLabel';
    } else {
      return true && button.code !== 'printLike' && button.code !== 'printLabel3' && button.code !== 'printTest'; // æ˜¾ç¤ºè¯¥æŒ‰é’®
    }
@@ -733,13 +766,12 @@
                style="width: 90px"></el-input>
      &nbsp;
      <label>{{ $t('processCard.labelStyle') }}:</label>
      <el-select v-model="printType" :placeholder="$t('processCard.pleaseSelect')" clearable default-value="default_city"
                 style="width: 120px">
      <el-select v-model="tag" :placeholder="$t('processCard.pleaseSelect')" style="width: 140px" @change="changeTag">
        <el-option
            v-for="item in titleSelectJson['dataType']"
            :key="item.id"
            :label="item.name"
            :value="item.name"
            v-for="(tag,index) in tags"
            :key="index"
            :label="tag.name"
            :value="tag"
        />
      </el-select>
      &nbsp;
@@ -907,12 +939,13 @@
        destroy-on-close
        style="width: 80%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContentLabel" :icon="Printer" circle/>
        <el-button :icon="Printer" circle @click="printObjectProcess"/>
      </template>
      <print-custom-label-x-j id="childLabel"
                              :faceOrientation="labelRow.faceOrientation"
                              :lableType="labelRow.lableType"
                              :list="labelRow.list"
                              :lastList='lastList'
                              :type="labelRow.type"
                              style="width: 100%;height: 100%"/>
    </el-dialog>
north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
@@ -479,7 +479,7 @@
          labelRow.value.list = JSON.stringify(selectRecords)
          labelRow.value.type = tag.value.name
          labelRow.value.dataType = 3
          labelRow.value.lableType = lableTypes
          labelRow.value.lableType = 2
          labelRow.value.switch = true
          lastList.value = []
          dialogTableVisibleLabel.value = true
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
@@ -52,20 +52,25 @@
let column = [1,3,8]
//点击查询
const getWorkOrder = () => {
  request.post(`/report/processCardProgress/${form.orderId}`,column).then((res) => {
  request.post(`/report/processCardProgress/${form.orderId}`, column).then((res) => {
    if (res.code == 200) {
      if(res.data.data.length===0){
      if (res.data.data.length === 0) {
        ElMessage.warning(t('report.noDataFoundForThisOrder'))
        return
      }
      //gridOptions.columns = JSON.parse(JSON.stringify(columns))
      res.data.title.forEach(item =>{
        let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process}
      // åŠ¨æ€æ·»åŠ åˆ—
      res.data.title.forEach((item, index) => {
        let column = {
          slots: { default: 'quantitySum' },
          width: 90,
          title: item.process,
          field: `dynamicColumn${index}` // ä¸ºåŠ¨æ€åˆ—æ·»åŠ å”¯ä¸€çš„ field
        }
        gridOptions.columns.push(column)
      })
      res.data.data.forEach(item => {
        item.reportWorkQuantity=JSON.parse(item.reportWorkQuantity)
        item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount)
        item.reportWorkQuantity = JSON.parse(item.reportWorkQuantity)
        item.reportWorkQuantityCount = JSON.parse(item.reportWorkQuantityCount)
      })
      mergeCells.value = res.data.mergeCell
      xGrid.value.loadData(res.data.data)
@@ -74,6 +79,16 @@
    }
  })
}
const footSumDynamic = (data, columnTitle) => {
  let sum = 0;
  data.forEach(item => {
    const value = Number(item.reportWorkQuantity[columnTitle]) || 0; // ä»Ž reportWorkQuantity ä¸­æå–值并转换为数字
    sum += value;
  });
  return sum.toFixed(2);
}
const quantitySum = ( row,column )=>{
  const reportWorkQuantity = row.reportWorkQuantity[column.title] || 0
  const reportWorkQuantityCount = row.reportWorkQuantityCount[column.title] || 0
@@ -169,24 +184,24 @@
  data:  [
  ],//table body实际数据
  //脚部求和
  footerMethod ({ columns, data }) {//页脚函数
    return[
  footerMethod ({ columns, data }) {
    return [
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        const List = ["quantity","broken_num","inventory",]
        const List = ["quantity", "broken_num", "inventory", "inventoryArea"]; // é™æ€åˆ—的求和
        if (List.includes(column.field)) {
          console.log(data)
          console.log(column.field)
          return footSum(data, column.field)
        }
        // åŠ¨æ€åˆ—çš„æ±‚å’Œ
        if (column.field && column.field.startsWith('dynamicColumn')) {
          return footSumDynamic(data, column.title)
        }
        return ''
      })
    ]
  },
  }
})
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
@@ -8,6 +8,7 @@
import {changeFilterEvent, filterChanged} from "@/hook"
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
//语言获取
const { t } = useI18n()
let router=useRouter()
@@ -58,7 +59,9 @@
      }
      //gridOptions.columns = JSON.parse(JSON.stringify(columns))
      res.data.title.forEach((item, index) => {
        let column = { slots: { default: 'quantitySum' }, width: 90, title: item.process };
        let column = { slots: { default: 'quantitySum' }, width: 90, title: item.process,
          field: `dynamicColumn${index}` // ä¸ºåŠ¨æ€åˆ—æ·»åŠ å”¯ä¸€çš„ field
        };
        const insertIndex = 5;  // è®¾ç½®æ’入位置的索引
        gridOptions.columns = [
          ...gridOptions.columns.slice(0, insertIndex + index), // å–插入位置之前的部分
@@ -76,6 +79,15 @@
      ElMessage.warning(res.msg)
    }
  })
}
const footSumDynamic = (data, columnTitle) => {
  let sum = 0;
  data.forEach(item => {
    const value = Number(item.reportWorkQuantity[columnTitle]) || 0; // ä»Ž reportWorkQuantity ä¸­æå–值并转换为数字
    sum += value;
  });
  return sum.toFixed(2);
}
const quantitySum = ( row,column )=>{
  const reportWorkQuantity = row.reportWorkQuantity[column.title] || 0
@@ -157,20 +169,24 @@
  data:  [
  ],//table body实际数据
  //脚部求和
  // footerMethod ({ columns, data }) {//页脚函数
  //   let footList=['7','8','9','10']
  //   return[
  //     columns.map((column, columnIndex) => {
  //       if (columnIndex === 0) {
  //         return '合计:'
  //       }
  //       if (footList.includes(column.field)) {
  //         return sumNum(data, column.field)
  //       }
  //       return ''
  //     })
  //   ]
  // }
  footerMethod ({ columns, data }) {
    return [
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')
        }
        const List = ["quantity", "inventoryNum", "inventoryArea"]; // é™æ€åˆ—的求和
        if (List.includes(column.field)) {
          return footSum(data, column.field)
        }
        // åŠ¨æ€åˆ—çš„æ±‚å’Œ
        if (column.field && column.field.startsWith('dynamicColumn')) {
          return footSumDynamic(data, column.title)
        }
        return ''
      })
    ]
  }
})
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -213,8 +213,13 @@
        titleUploadData.value=deepClone(res.data.delivery)
        titleUploadData.value.deliveryId=str
        //判断是否发货出库
        if(!company.deliveryOutbound){
          if(titleUploadData.value.stockState!==0){
            gridOptions.toolbarConfig.buttons[2].disabled = true
          }
        }
        //根据审核状态显示审核按钮或者是反审按钮
        if(titleUploadData.value.deliveryState!==0){
          gridOptions.toolbarConfig.buttons[1].disabled = true
          gridOptions.toolbarConfig.buttons[0].disabled = true
@@ -222,9 +227,7 @@
        if(titleUploadData.value.deliveryState===0){
          gridOptions.toolbarConfig.buttons[2].disabled = true
        }
        if(titleUploadData.value.stockState!==0){
          gridOptions.toolbarConfig.buttons[2].disabled = true
        }
        pageNum=1
        produceList = deepClone(res.data.data)
@@ -447,11 +450,12 @@
            deliveryId: route.query.deliveryID,
            type: 2,
            userName:userStore.user.userName,
            userId:userStore.user.userId
            userId:userStore.user.userId,
            deliveryOutbound:company.deliveryOutbound
          })
          request.post("/delivery/updateDeliveryToExamine", flowData.value).then((res) => {
            if (res.code == 200 && res.data===true) {
            if (res.code == 200 && res.data==="true") {
              ElMessage.success(t('basicData.msg.ReviewSuccess'))
              //router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
              router.push({path:'/main/delivery/createDelivery',query:{
@@ -471,11 +475,12 @@
            deliveryId: route.query.deliveryID,
            type: 0,
            userName:userStore.user.userName,
            userId:userStore.user.userId
            userId:userStore.user.userId,
            deliveryOutbound:company.deliveryOutbound
          })
          request.post("/delivery/updateDeliveryToExamine", flowData.value).then((res) => {
            if (res.code == 200 && res.data===true) {
            if (res.code == 200 && res.data==="true") {
              ElMessage.success(t('basicData.msg.cancelReviewSuccess'))
              //router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
              router.push({path:'/main/delivery/createDelivery',query:{
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
@@ -96,6 +96,8 @@
                                                      @Param("pageSize") Integer pageSize,
                                                      @Param("orderDetail") OrderDetail orderDetail);
    List<OrderDetail> getSelectDeliveryDetailDeliveryId(@Param("deliveryId") String deliveryId);
    Map<String,Integer> getSelectDeliveryDetailPageTotal(Integer offset, Integer pageSize,OrderDetail orderDetail);
    List<OrderDetail> getSelectAllocate(@Param("offset") Integer offset,
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
@@ -64,6 +64,8 @@
                                             @Param("pageSize") Integer pageSize,String startDate, String endDate,String type,
                                             @Param("finishedOperateLog") FinishedOperateLog finishedOperateLog);
    List<FinishedOperateLog> getSelectStorageRecordDeliveryId(@Param("deliveryId") String deliveryId,String type);
    Map<String,Integer> getSelectStorageRecordLogPageTotal(@Param("offset") Integer offset,
                                                           @Param("pageSize") Integer pageSize,String startDate, String endDate,String type,
                                                           @Param("finishedOperateLog") FinishedOperateLog finishedOperateLog);
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -105,7 +105,7 @@
    List<Map<String, Object>> getCustomLabelDetailMp(String name, String form, String id, FlowCard flowCard);
    List<Map<String, Object>>  getPrintCustomData(String processId, String technologyNumber);
    List<Map<String, Object>>  getPrintCustomData(String processId, Integer orderNumber);
    Integer getPrintLabelCount(String processId, String technologyNumber);
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -207,67 +207,9 @@
            //获取对象集合循环进行新增修改
            List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
            if (!orderDetaillist.isEmpty()){
                for (OrderDetail orderDetail : orderDetaillist) {
                    //获取单号
                    String oddNumber= orderNumberSetting("出库");
                    OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
                    //添加出入库记录
                    finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber);
                    Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
                    Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
                    Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
                    Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
                    Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
                    if(deliverydetailsum==null){
                        deliverydetailsum=0;
                    }
                    DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId());
                    /*System.out.println("订单总数:" + ordersum + "订单库存数:" + orderNumberdsum + "准备出库数量" +
                            orderDetail.getWarehouseNum()+ "发货数量" + orderDetail.getDeliveryDetail().getQuantity()+ "发货总数" +
                            deliverysum+ "已发数量" + deliverydetailsum);*/
                    //判断发货单的库存是否存在
                    if (finishedGoodsInventorycount > 0) {
                        //判断发货单是否已出库
                        if(deliveryDetail==null){
                            if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
                                //修改库存表库存数量
                                finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
                                //修改发货明细表状态
                                finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
                                //修改发货表状态
                                finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
                                //修改订单明细表发货数量
                                finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
                                //修改订单表发货状态
                                finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
                                //判断订单是否全部发货
                                if (orderNumberdsum == orderDetail.getWarehouseNum()) {
                                    //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
                                    //修改订单表发货状态
                                    finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
                                }
                                if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) {
                                    //修改发货表状态
                                    finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
                                }
                            }else{
                                TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                                return "false3";
                            }
                        }else{
                            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                            return "false1";
                        }
                    }else{
                        TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                        return "false2";
                    }
                if(!Objects.equals(deliveryDetailLogic(orderDetaillist, savePoint, userName), "true")) {
                    return deliveryDetailLogic(orderDetaillist, savePoint, userName);
                }
            }
@@ -691,69 +633,8 @@
            //获取对象集合循环进行新增修改
            List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
            if (!finishedOperateLogslist.isEmpty()){
                for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
                    Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId());
                    Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId());
                    Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(finishedOperateLog.getOperationOrderNumber());
                    Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(finishedOperateLog.getOperationOrderNumber(),1);
                    if(Objects.equals(finishedOperateLog.getOperateType(), "入库")){
                        Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId());
                        if(delivery==null){
                            //修改记录表
                            finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"已作废");
                            //修改库存表入库数量
                            finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog);
                            if(finishedOperateLog.getProcessId()!=null){
                                //修改流程卡表入库数量
                                finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog);
                            }
                            //修改订单明细表入库数量
                            finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
                            //判断订单是否全部入库
                            if (Objects.equals(ordersum, ordernumbersum)) {
                                //修改订单表入库状态
                                finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1);
                            }
                            if (ordernumbersum-finishedOperateLog.getQuantity()==0) {
                                //修改订单表入库状态
                                finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
                            }
                            log.setFunction("cancelFinishedGoodsInventoryStorage入库");
                        }else{
                            return "false1";
                        }
                    }else if(Objects.equals(finishedOperateLog.getOperateType(), "出库")){
                        //修改记录表
                        finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"已作废");
                        //修改库存表库存数量
                        finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
                        //修改发货明细表状态
                        finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1);
                        //修改发货表状态
                        finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1);
                        //修改订单明细表库内数量
                        finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity()));
                        //修改订单表发货状态
                        finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1);
                        //判断订单是否全部发货
                        if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum){
                            //修改订单表发货状态
                            finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0);
                        }
                        if (deliverysum==finishedOperateLog.getQuantity()+deliverydetailsum) {
                            //修改发货表状态
                            finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0);
                        }
                        log.setFunction("cancelFinishedGoodsInventoryStorage出库");
                    }
                if(!Objects.equals(cancelDeliveryDetailLogic(finishedOperateLogslist, savePoint, object.get("userName").toString(), log), "true")){
                    return cancelDeliveryDetailLogic(finishedOperateLogslist,savePoint,object.get("userName").toString(),log);
                }
            }
            logService.saveLog(log);
@@ -907,4 +788,139 @@
        map.put("data", list);
        return map;
    }
    public String deliveryDetailLogic(List<OrderDetail> list,Object savePoint,String userName) {
        for (OrderDetail orderDetail : list) {
            //获取单号
            String oddNumber= orderNumberSetting("出库");
            OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
            //添加出入库记录
            finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber);
            Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
            Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
            Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
            Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
            Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
            if(deliverydetailsum==null){
                deliverydetailsum=0;
            }
            DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId());
                    /*System.out.println("订单总数:" + ordersum + "订单库存数:" + orderNumberdsum + "准备出库数量" +
                            orderDetail.getWarehouseNum()+ "发货数量" + orderDetail.getDeliveryDetail().getQuantity()+ "发货总数" +
                            deliverysum+ "已发数量" + deliverydetailsum);*/
            //判断发货单的库存是否存在
            if (finishedGoodsInventorycount > 0) {
                //判断发货单是否已出库
                if(deliveryDetail==null){
                    if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
                        //修改库存表库存数量
                        finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
                        //修改发货明细表状态
                        finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
                        //修改发货表状态
                        finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
                        //修改订单明细表发货数量
                        finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
                        //修改订单表发货状态
                        finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
                        //判断订单是否全部发货
                        if (Objects.equals(orderNumberdsum, orderDetail.getWarehouseNum())) {
                            //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
                            //修改订单表发货状态
                            finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
                        }
                        if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) {
                            //修改发货表状态
                            finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
                        }
                    }else{
                        TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                        return "false3";
                    }
                }else{
                    TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                    return "false1";
                }
            }else{
                TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                return "false2";
            }
        }
        return "true";
    }
    public String cancelDeliveryDetailLogic(List<FinishedOperateLog> finishedOperateLogslist,Object savePoint,String userName,Log log) {
        for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
            Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId());
            Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId());
            Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(finishedOperateLog.getOperationOrderNumber());
            Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(finishedOperateLog.getOperationOrderNumber(),1);
            if(Objects.equals(finishedOperateLog.getOperateType(), "入库")){
                Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId());
                if(delivery==null){
                    //修改记录表
                    finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"已作废");
                    //修改库存表入库数量
                    finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog);
                    if(finishedOperateLog.getProcessId()!=null){
                        //修改流程卡表入库数量
                        finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog);
                    }
                    //修改订单明细表入库数量
                    finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
                    //判断订单是否全部入库
                    if (Objects.equals(ordersum, ordernumbersum)) {
                        //修改订单表入库状态
                        finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1);
                    }
                    if (ordernumbersum-finishedOperateLog.getQuantity()==0) {
                        //修改订单表入库状态
                        finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
                    }
                    log.setFunction("cancelFinishedGoodsInventoryStorage入库");
                }else{
                    return "false1";
                }
            }else if(Objects.equals(finishedOperateLog.getOperateType(), "出库")){
                //修改记录表
                finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"已作废");
                //修改库存表库存数量
                finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
                //修改发货明细表状态
                finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1);
                //修改发货表状态
                finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1);
                //修改订单明细表库内数量
                finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity()));
                //修改订单表发货状态
                finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1);
                //判断订单是否全部发货
                if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum){
                    //修改订单表发货状态
                    finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0);
                }
                if (deliverysum==finishedOperateLog.getQuantity()+deliverydetailsum) {
                    //修改发货表状态
                    finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0);
                }
                log.setFunction("cancelFinishedGoodsInventoryStorage出库");
            }
        }
        return "true";
    }
}
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -533,7 +533,7 @@
                        continue;
                    }
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber()));
                    itemmap.put("data", flowCardMapper.getPrintCustomData(flowCard.getProcessId(),flowCard.getOrderNumber()));
                    list.add(itemmap);
                    // å°†è¯¥ processId åŠ å…¥å·²å¤„ç†é›†åˆ
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -9,11 +9,14 @@
import com.example.erp.dto.mm.FinishedOperateLogDTO;
import com.example.erp.dto.sd.DeliveryDetailDTO;
import com.example.erp.dto.sd.DeliveryDetailProductDTO;
import com.example.erp.entity.mm.FinishedOperateLog;
import com.example.erp.entity.sd.*;
import com.example.erp.entity.userInfo.Log;
import com.example.erp.entity.userInfo.SysError;
import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper;
import com.example.erp.mapper.mm.FinishedOperateLogMapper;
import com.example.erp.mapper.sd.*;
import com.example.erp.service.mm.FinishedGoodsInventoryService;
import com.example.erp.service.userInfo.LogService;
import com.example.erp.service.userInfo.SysErrorService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -44,11 +47,15 @@
    @Autowired
    FinishedGoodsInventoryMapper finishedGoodsInventoryMapper;
    @Autowired
    FinishedOperateLogMapper finishedOperateLogMapper;
    @Autowired
    DeliveryOtherMoneyMapper deliveryOtherMoneyMapper;
    @Autowired
    LogService logService;
    @Autowired
    SysErrorService sysErrorService;
    @Autowired
    FinishedGoodsInventoryService finishedGoodsInventoryService;
    public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) {
@@ -398,27 +405,57 @@
    }
    public Boolean updateDeliveryToExamine(Map<String,Object> object) {
        Boolean isinsert=false;
        String deliveryId = "";
        int type =3;
        if (object.get("deliveryId") != null) {
            deliveryId = object.get("deliveryId").toString();
    public String updateDeliveryToExamine(Map<String,Object> object) {
        String saveState = "true";
        //设置回滚点
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        try {
            Log log = new Log();
            String deliveryId = "";
            int type =3;
            if (object.get("deliveryId") != null) {
                deliveryId = object.get("deliveryId").toString();
            }
            if (object.get("type") != null) {
                type = Integer.parseInt(object.get("type").toString());
            }
            if(Boolean.parseBoolean(object.get("deliveryOutbound").toString())){
                if(type==2){
                    List<OrderDetail> orderDetaillist=finishedGoodsInventoryMapper.getSelectDeliveryDetailDeliveryId(deliveryId);
                    if(!Objects.equals(finishedGoodsInventoryService.deliveryDetailLogic(orderDetaillist,savePoint,object.get("userName").toString()), "true")){
                        return finishedGoodsInventoryService.deliveryDetailLogic(orderDetaillist,savePoint,object.get("userName").toString());
                    }
                }else{
                    List<FinishedOperateLog> finishedOperateLogslist=finishedOperateLogMapper.getSelectStorageRecordDeliveryId(deliveryId,"出库");
                    if(!Objects.equals(finishedGoodsInventoryService.cancelDeliveryDetailLogic(finishedOperateLogslist,savePoint,object.get("userName").toString(),log), "true")){
                        return finishedGoodsInventoryService.cancelDeliveryDetailLogic(finishedOperateLogslist,savePoint,object.get("userName").toString(),log);
                    }
                }
            }
            deliveryMapper.updateDeliveryToExamine(deliveryId,type);
            log.setOperatorId(object.get("userId").toString());
            log.setOperator(object.get("userName").toString());
            log.setContent(object.toString());
            log.setFunction("updateDeliveryToExamine修改:"+deliveryId);
            logService.saveLog(log);
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
            //将异常传入数据库
            SysError sysError = new SysError();
            sysError.setError(e+Arrays.toString(e.getStackTrace()));
            sysError.setFunc("addDeliveryDetail");
            sysErrorService.insert(sysError);
            saveState = "false";
        }
        if (object.get("type") != null) {
            type = Integer.parseInt(object.get("type").toString());
        }
        deliveryMapper.updateDeliveryToExamine(deliveryId,type);
        Log log = new Log();
        log.setOperatorId(object.get("userId").toString());
        log.setOperator(object.get("userName").toString());
        log.setContent(object.toString());
        log.setFunction("updateDeliveryToExamine修改:"+deliveryId);
        logService.saveLog(log);
        return true;
        return saveState;
@@ -607,6 +644,7 @@
    private static final String[] NUMBERS = {"零", "壹", "è´°", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
    private static final String[] IUNIT = {"元", "拾", "ä½°", "仟", "万", "拾", "ä½°", "仟", "亿", "拾", "ä½°", "仟"};
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -907,7 +907,32 @@
        where order_number=#{orderNumber}  and order_id=#{orderId} and delivery_id=#{deliveryId} and delivery_detail_state=0
    </select>
    <select id="getSelectDeliveryDetailDeliveryId"  resultMap="selectDelivery">
        select dd.delivery_id,
               dd.order_number,
               dd.order_id,
               o.project,
               od.product_id,
               od.product_name,
               d.customer_name,
               od.width,
               od.height,
               dd.quantity as dd_quantity,
               od.warehouse_num,
               od.delivery_num,
               d.area,
               od.building_number,
               d.creator,
               dd.delivery_detail_remakes,
               dd.create_time
        from sd.delivery_detail dd
                 left join sd.delivery d on dd.delivery_id = d.delivery_id
                 left join sd.order_detail od on od.order_id = dd.order_id and dd.order_number = od.order_number
                 left join sd.`order` o on o.order_id = dd.order_id
        where dd.delivery_id= #{deliveryId}
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -848,4 +848,31 @@
        fol.operate_time DESC
</select>
    <select id="getSelectStorageRecordDeliveryId" resultMap="selectFinishedGoodsInventory">
        select fol.id,
        fol.operation_order_number,
        fol.order_id,
        fol.operate_type,
        fol.process_id,
        fol.operation_number,
        fol.quantity,
        fol.operator,
        od.product_id,
        od.product_name,
        od.width,
        od.height,
        fol.operate_time,
        fol.`status`,
        fol.is_state,
        fol.reviewed,
        fol.reviewed_time,
        fol.type,
        fol.remarks
        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 fol.operation_order_number=#{deliveryId}
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -68,9 +68,11 @@
        if(a.layout_status=0,'不可排版',if(a.layout_status=1,'可排版','已排版')) as layout_status,
        a.merge
        from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,merge from flow_card
        group by process_Id,order_number) as a left join sd.`order` as b on a.order_Id=b.order_id
        group by process_Id,order_number) as a
        left join sd.`order` as b on a.order_Id=b.order_id
        left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
        where date(a.create_time)>=#{selectTime1} and date(a.create_time) &lt;= #{selectTime2}
        and b.create_order>0
        <if test="flowCard.orderId != null and flowCard.orderId != ''">
            and a.order_id regexp #{flowCard.orderId}
        </if>
@@ -115,6 +117,7 @@
        from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
        left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
        where date(a.create_time)>=#{selectTime1} and date(a.create_time) &lt;= #{selectTime2}
        and b.create_order>0
        <if test="flowCard.orderId != null and flowCard.orderId != ''">
            and a.order_id regexp #{flowCard.orderId}
        </if>
@@ -484,11 +487,14 @@
    </select>
    <select id="selectPrintFlowCard">
        select project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
        from pp.optimize_project
        where date(create_time)>=#{selectTime1} and date(create_time) &lt;= #{selectTime2}
          and state >= 20
        order by create_time desc
        select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
        from pp.optimize_project as op
                 left join pp.flow_card as fc on op.project_no=fc.project_no
                 left join sd.`order` as o on o.order_id=fc.order_id
        where date(op.create_time)>=#{selectTime1} and date(op.create_time) &lt;= #{selectTime2}
          and state >= 20 and o.create_order>0
        GROUP BY op.project_no
        order by op.create_time desc
    </select>
    <select id="selectPrintMp">
@@ -599,7 +605,7 @@
                                          GROUP_CONCAT(pds.glass_sort SEPARATOR '')           AS technology_number,
                                          ogds.glass_child,
                                          GROUP_CONCAT(ogds.glass_child SEPARATOR '+')        AS concatenated_glass_child,
                                          SUBSTRING(pds.process, LOCATE('中空', pds.process)) AS processed_part
                                          SUBSTRING(ogds.process, LOCATE('中空', ogds.process)) AS processed_part
                                   from sd.order_glass_detail as ogds
                                            left join sd.order_detail as ods
                                                      on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
@@ -704,7 +710,7 @@
               fc.quantity,
               round(ogd.total_area, 2)                                       as total_area,
               od.perimeter,
               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
               if(od.bend_radius!=null,od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
               concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
               od.other_columns,
               round(ogd.child_width)                                         as width,
@@ -932,7 +938,7 @@
               ogd.glass_child,
               #{process}                                                           as process,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
               od.bend_radius
               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius
        FROM flow_card AS fc
                 LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
            AND fc.order_number = ogd.order_number
@@ -1055,7 +1061,7 @@
                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                              ogd.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
          and fc.order_number = #{orderNumber}
        group by od.order_number, width, height
        order by fc.process_id
    </select>
@@ -1301,7 +1307,7 @@
               fc.quantity,
               round(ogd.total_area, 2)                                       as total_area,
               od.perimeter,
               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
               if(od.bend_radius!=null,od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
               concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
               od.other_columns,
               round(ogd.child_width)                                         as width,
@@ -1408,7 +1414,7 @@
               sum(pl.patch_num)                                                 as quantity,
               round(ogd.total_area, 2)                                       as total_area,
               od.perimeter,
               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
               if(od.bend_radius!=null,od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
               concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
               od.other_columns,
               round(ogd.child_width)                                         as width,
@@ -1939,16 +1945,16 @@
               ogd.glass_address                                     as glassAddress,
               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
               CONCAT(
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
                       ' = ',pl.patch_num   )      as size,
               CONCAT(
                       od.order_number,')  ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
                       ' = ',pl.patch_num   )      as numberSize
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -203,7 +203,7 @@
                           on e.process_id = c.process_id
                               and e.technology_number = c.technology_number
                               and e.order_number = c.order_number
        where a.order_id = #{orderId}
        where a.order_id = #{orderId} and d.create_order>0
        group by c.order_number,
                 c.technology_number,
                 c.process_id
@@ -238,6 +238,7 @@
          and dd.available = 0
          and reviewed_state != 2
          and rw.this_process != dd.responsible_process
        and o.create_order>0
        <if test="crossProcessBreakingDTO.code != null and crossProcessBreakingDTO.code != ''">
            and JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) regexp #{crossProcessBreakingDTO.code}
        </if>
@@ -384,7 +385,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
                        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -465,7 +466,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -535,7 +536,7 @@
                               and odpd.process_id = fc.process_id
                 left join sd.`order` as o
                           on o.order_id = od.order_id
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
          and odpd.process = #{selectProcesses}
          and  o.create_time >= #{selectTime1}
          AND o.create_time &lt;  #{selectTime2}
@@ -578,7 +579,6 @@
        AND rw.reporting_work_time &lt;  #{selectTime2}
        AND dd.available = 0
        AND LENGTH( rw.process_id )= 14
        <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
            and o.order_id regexp #{damageReportDTO.orderId}
        </if>
@@ -632,7 +632,6 @@
        rw.reporting_work_time >= #{selectTime1}
        AND rw.reporting_work_time &lt;  #{selectTime2}
        AND dd.available = 0
        AND LENGTH( rw.process_id )= 14
        <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
            and o.order_id regexp #{damageReportDTO.orderId}
        </if>
@@ -726,7 +725,7 @@
            AND opd.technology_number = fc.technology_number
        WHERE  DATE_FORMAT((o.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
          and o.create_order>0
        GROUP BY o.order_id,
                 fc.order_number,
                 fc.technology_number
@@ -756,6 +755,7 @@
            AND opd.order_number = fc.order_number
            AND opd.technology_number = fc.technology_number
        WHERE opd.reporting_work_num > 0
          and o.create_order>0
          and  DATE_FORMAT((o.create_time), '%Y-%m-%d') BETWEEN #{selectTime1} and #{selectTime2}
          AND position(#{selectProcesses} IN opd.process)
        GROUP BY opd.process, o.order_id
@@ -810,7 +810,7 @@
                                and   e.order_number=c.order_number
                               and e.technology_number = c.technology_number
                 left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
        where a.order_id = #{orderId}
        where a.order_id = #{orderId} and d.create_order>0
        group by c.order_number,c.technology_number
        ORDER BY a.order_number
    </select>
@@ -860,6 +860,7 @@
                 left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
        where   d.create_time >= #{selectTime1}
          AND d.create_time &lt;  #{selectTime2}
          and o.create_order>0
          and reportWorkQuantity is not null
        GROUP BY a.order_id
        ORDER BY a.order_id
@@ -903,6 +904,7 @@
            AND rw.process_id = fc.process_id
        WHERE    o.create_time >= #{selectTime1}
          AND o.create_time &lt;  #{selectTime2}
          and o.create_order>0
          AND fc.create_time IS NOT NULL
        GROUP BY o.order_id
    </select>
@@ -982,7 +984,6 @@
        WHERE date(rw.reporting_work_time) >= #{dates[0]}
          and date(rw.reporting_work_time) &lt;= #{dates[1]}
          AND dd.available = 0
          AND LENGTH(rw.process_id) = 14
        GROUP BY dd.id
    </select>
@@ -1025,6 +1026,7 @@
            AND rw.process_id = fc.process_id
        WHERE date(o.create_time) >= #{dates[0]}
          and date(o.create_time) &lt;= #{dates[1]}
          and o.create_order>0
          AND fc.create_time IS NOT NULL
        GROUP BY o.order_id
    </select>
@@ -1069,7 +1071,7 @@
                               and odpd.process_id = fc.process_id
                 left join sd.`order` as o
                           on o.order_id = od.order_id
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
          and odpd.process = #{process}
          and date(o.create_time) >= #{date[0]}
          and date(o.create_time) &lt;= #{date[1]}
@@ -1137,7 +1139,7 @@
                 and c.technology_number = fc.technology_number
                 left join sd.`order` as o
                           on o.order_id = od.order_id
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
          and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
              odpd.broken_num != 0
          and odpd.process = #{process}
@@ -1194,6 +1196,7 @@
        where d.create_time
          and date(o.create_time) >= #{dates[0]}
          and date(o.create_time) &lt;= #{dates[1]}
          and d.create_order>0
          and reportWorkQuantity is not null
        GROUP BY a.order_id
        ORDER BY a.order_id
@@ -1254,6 +1257,7 @@
        WHERE date(o.create_time) >= #{dates[0]}
          and date(o.create_time) &lt;= #{dates[1]}
          and o.create_order>0
        GROUP BY o.order_id,
                 fc.order_number,
                 fc.technology_number
@@ -1285,6 +1289,7 @@
        WHERE opd.reporting_work_num > 0
          and date(o.create_time) >= #{date[0]}
          and date(o.create_time) &lt;= #{date[1]}
          and o.create_order>0
          AND position(#{process} IN opd.process)
        GROUP BY opd.process, o.order_id
    </select>
@@ -1504,7 +1509,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -1573,7 +1578,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -1653,7 +1658,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -1725,7 +1730,7 @@
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
        and  rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
        where LENGTH(fc.process_id) = 14
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
@@ -1762,7 +1767,7 @@
        where processes = #{processes}
        GROUP BY order_id, order_number) as ps
        left join sd.`order` as o on o.order_id = ps.order_id
        where ps.processes = #{processes}
        where ps.processes = #{processes} and o.create_order>0
        and  DATE_FORMAT((ps.scheduled_start_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
        <if test="scheduleProductionScheduleDTO.orderId != null and scheduleProductionScheduleDTO.orderId != ''">
            and ps.order_id regexp #{scheduleProductionScheduleDTO.orderId}
@@ -1788,7 +1793,7 @@
        where processes = #{processes}
        GROUP BY order_id, order_number) as ps
        left join sd.`order` as o on o.order_id = ps.order_id
        where ps.processes = #{processes}
        where ps.processes = #{processes} and o.create_order>0
        and  DATE_FORMAT((ps.scheduled_start_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
        <if test="scheduleProductionScheduleDTO.orderId != null and scheduleProductionScheduleDTO.orderId != ''">
            and ps.order_id regexp #{scheduleProductionScheduleDTO.orderId}
@@ -1818,7 +1823,7 @@
              where processes = #{process}
              GROUP BY order_id, order_number) as ps
                 left join sd.`order` as o on o.order_id = ps.order_id
        where ps.processes = #{process}
        where ps.processes = #{process} and o.create_order>0
          and date(scheduled_start_time) >= #{date[0]}
          and date(scheduled_start_time) &lt;= #{date[1]}
        GROUP BY ps.order_id, ps.processes
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -91,6 +91,7 @@
        where fc.process_id = #{processIdStr}
          and POSITION(fc.technology_number in #{technologyStr})
          and if(#{reportType}=1,o.order_type!='样品订单',o.order_id!='')
        and o.create_order>0
        GROUP BY fc.process_id
    </select>
@@ -179,6 +180,7 @@
          AND  POSITION(fc.technology_number in #{technologyStr})
          AND odpd.process = #{process}
          and if(#{reportType}=1,o.order_type!='样品订单',o.order_id!='')
        and o.create_order>0
        group by fc.order_number,
                 ogd.technology_number
        order by fc.order_number
north-glass-erp/src/main/resources/mapper/pp/ReworkMapper.xml
@@ -257,7 +257,8 @@
                 left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd
                           on rw.order_id = ogd.order_id and dd.order_number = ogd.order_number
        where  dd.breakage_quantity-dd.quantity>0 and dd.available=1 and o.create_order>0 order by dd.id desc
        where  dd.breakage_quantity-dd.quantity>0 and dd.available=1 and o.create_order>0 and  rw.reviewed_state>=0
        order by dd.id desc
    </select>
north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml
@@ -47,7 +47,7 @@
        from sd.order_detail  as od
        left join `order` as o
        on o.order_id=od.order_id
        where o.production_order!=2 and o.order_review=2
        where o.production_order!=2 and o.order_review=2 and o.create_order>0
        <if test="orderGlassDetail.orderId != null and orderGlassDetail.orderId != ''">
            and o.order_id regexp #{orderGlassDetail.orderId}