1d2f6686a02c9d8c6898b078e6d7cd2dc0b546d8..723cbdddb7d06a1d12564d8d88dfe8d4984315a3
8 天以前 廖井涛
Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
723cbd 对比 | 目录
8 天以前 廖井涛
修改标签打印后没有累加打印次数问题
caa1ed 对比 | 目录
8 天以前 chenlu
Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
23bca6 对比 | 目录
8 天以前 chenlu
班组产量报表导出格式调整
fd290b 对比 | 目录
8 天以前 guoyujie
Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
7b90aa 对比 | 目录
8 天以前 guoyujie
提交 筛选条件错误时进行提示
39f471 对比 | 目录
9 天以前 于杰
修复 小片数据展示架号显示错误问题
9599b7 对比 | 目录
9 天以前 chenlu
补片流程卡调整
600944 对比 | 目录
9 天以前 guoyujie
Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
eba331 对比 | 目录
9 天以前 guoyujie
修改app入库传参
b12447 对比 | 目录
9 天以前 chenlu
Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
c605f9 对比 | 目录
9 天以前 chenlu
班组产量报表导出字段添加
254e4a 对比 | 目录
9 天以前 于杰
修复 小片右键菜单不跟随鼠标的bug
3594b3 对比 | 目录
9 天以前 于杰
修复 调整小片右键不跟随鼠标的bug 多次右键菜单保留的bug
312898 对比 | 目录
2025-12-03 chenlu
Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
a00e1b 对比 | 目录
2025-12-03 chenlu
设备新增界面位置移动,流程卡打印右上角自动生成页码问题解决
621c1c 对比 | 目录
2025-12-03 于杰
增加 点击需要移动的小片,显示红框提醒
f4d9c0 对比 | 目录
22个文件已修改
1 文件已重命名
258 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/ar.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/en.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/kr.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/ru.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/router/index.js 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/machine/Machine.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/AddMachine.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/ProductionBasicData.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/AppController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/dto/pp/TeamOutputDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -386,7 +386,7 @@
    <tr v-for="(itemDatile,index) in item.detailList" :key="index">
      <td>{{ itemDatile.order_number }}</td>
      <td>{{ itemDatile.mapNumber }}</td>
      <td v-if="name=='金华福喜天成玻璃有限公司'">{{ itemDatile.building_number }}</td>
      <td v-if="name=='金华福喜天成玻璃有限公司' || name=='浙江巨星嘉泰新材料有限公司' ">{{ itemDatile.building_number }}</td>
      <td v-else>{{ itemDatile.s01Value }}</td>
      <td>{{ itemDatile.technology_number }}</td>
      <td>{{ itemDatile.child_width }}</td>
@@ -567,6 +567,20 @@
@media print {
  /* 禁用 Chrome 自动页码触发条件 */
  * {
    overflow: visible !important;
    transform: none !important;
    filter: none !important;
  }
  [style*="position: fixed"],
  .fixed,
  .header-fixed {
    position: absolute !important;
  }
  @page {
    size: auto;  /* auto is the initial value */
    margin: 4mm 5mm 10mm 5mm  /* this affects the margin in the printer settings */
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -342,7 +342,8 @@
      <tr v-for="(itemDatile,index) in item.detailList" :key="index">
        <td>{{ itemDatile.order_number }}</td>
        <td>{{ itemDatile.s01Value }}</td>
        <td v-if="name=='金华福喜天成玻璃有限公司' || name=='浙江巨星嘉泰新材料有限公司' ">{{ itemDatile.building_number }}</td>
        <td v-else>{{ itemDatile.s01Value }}</td>
        <td>{{ itemDatile.technology_number }}</td>
        <td>{{ itemDatile.child_width }}</td>
        <td class="item" style="width: 5%;height: 100%;">
@@ -433,9 +434,9 @@
      </tr>
      <tr v-for="(itemtextareas,index) in item.detail" :key="index">
        <td  colspan="34" rowspan="6" style="width: 99%;height: 150px ">
          <div v-if="name=='浙江巨星嘉泰新材料有限公司'" style="width: 100%;height: 100%;text-align: left"><textarea style="height: 99%;width: 99%;border: none;;font-size: 16px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
          </div>
          <div v-else style="width: 100%;height: 100%;text-align: left"><textarea style="height: 99%;width: 99%;border: none;;font-size: 14px;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
          <div style="width: 100%;height: 100%;text-align: left">
            <textarea v-if="!company.processFontSize" style="height: 99%;width: 99%;border: none;;font-size: 14px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
            <textarea v-else style="height: 99%;width: 99%;border: none;;font-size: 36px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
      </tr>
north-glass-erp/northglass-erp/src/lang/ar.js
@@ -364,7 +364,8 @@
            isOptimize:'此订单已转优化,回退失败!',
            isReportingWork:'此订单已报工,回退失败!',
            isStorage:'此订单已入库,回退失败!',
            BackSure:"确定一键退回相应流程?"
            BackSure:"确定一键退回相应流程?",
            filterError:'请输入正确格式的筛选条件'
        },
        updateOrderId:"修改订单号",
        reportingTransfer:'报工转移'
north-glass-erp/northglass-erp/src/lang/en.js
@@ -364,7 +364,8 @@
            isOptimize:'此订单已转优化,回退失败!',
            isReportingWork:'此订单已报工,回退失败!',
            isStorage:'此订单已入库,回退失败!',
            BackSure:"确定一键退回相应流程?"
            BackSure:"确定一键退回相应流程?",
            filterError:'请输入正确格式的筛选条件'
        },
        updateOrderId:"修改订单号",
        reportingTransfer:'报工转移'
north-glass-erp/northglass-erp/src/lang/kr.js
@@ -364,7 +364,9 @@
            isOptimize:'경고! 해당 주문은 최적화되었습니다.되돌릴 수 없습니다!',
            isReportingWork:'작업 실적 등록 완료된 주문은 되돌리기가 제한 됩니다.',
            isStorage:'입고 완료된 주문은 시스템 되돌리기가 불가능 합니다.',
            BackSure:'해당 프로세스를 원클릭으로 되돌리시겠습니까?'
            BackSure:'해당 프로세스를 원클릭으로 되돌리시겠습니까?',
            filterError:'请输入正确格式的筛选条件'
        },
        updateOrderId:'주문 번호 수정',
        reportingTransfer:'작업 실적 이관'
north-glass-erp/northglass-erp/src/lang/ru.js
@@ -364,7 +364,9 @@
            isOptimize:'此订单已转优化,回退失败!',
            isReportingWork:'此订单已报工,回退失败!',
            isStorage:'此订单已入库,回退失败!',
            BackSure:"确定一键退回相应流程?"
            BackSure:"确定一键退回相应流程?",
            filterError:'请输入正确格式的筛选条件'
        },
        updateOrderId:"修改订单号",
        reportingTransfer:'报工转移'
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -364,7 +364,8 @@
            isOptimize:'此订单已转优化,回退失败!',
            isReportingWork:'此订单已报工,回退失败!',
            isStorage:'此订单已入库,回退失败!',
            BackSure:"确定一键退回相应流程?"
            BackSure:"确定一键退回相应流程?",
            filterError:'请输入正确格式的筛选条件'
        },
        updateOrderId:"修改订单号",
        reportingTransfer:'报工转移'
north-glass-erp/northglass-erp/src/router/index.js
@@ -755,11 +755,7 @@
              name: 'selectMachine',
              component: () => import('../views/pp/machine/SelectMachine.vue'),
            },
            {
              path: 'addMachine',
              name: 'addMachine',
              component: () => import('../views/pp/machine/AddMachine.vue'),
            },
            {
              path: 'maintenanceAndRepair',
              name: 'maintenanceAndRepair',
@@ -941,6 +937,11 @@
              component: () => import('../views/pp/productionBasicData/AddTeamGroup.vue'),
            },
            {
              path: 'addMachine',
              name: 'addMachine',
              component: () => import('../views/pp/productionBasicData/AddMachine.vue'),
            },
            {
              path: '',
              redirect:'/main/productionBasicData/selectProductionBasicData'
            }
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/GlassInventory.vue
@@ -66,7 +66,7 @@
        [
          {code: 'selectTrimming', name: '设置统一修边',prefixIcon: 'vxe-icon-edit'},
          {code: 'Exports', name: '数据导出', prefixIcon: 'vxe-icon-download', visible: true, disabled: false},
          {code: 'addRow', name: t('basicData.add'), prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: true },
          {code: 'addRow', name: '添加原片', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: true },
        ],
      ]
    },
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
@@ -253,6 +253,12 @@
  return bestFit;
};
const isSelected = (layoutIndex, rectIndex) => {
  return focusIndex.value &&
         focusIndex.value.layoutIndex === layoutIndex &&
         focusIndex.value.rectIndex === rectIndex;
};
//版图内容样式加载
const layoutContainerStyle = (layoutIndex) => {
  const layout = layouts.value[layoutIndex];
@@ -304,9 +310,10 @@
//版图内容小片样式加载
const rectStyle = (glassDetail, layoutIndex) => {
  const layout = layouts.value[layoutIndex];
  const scale = Math.min(0.25
  );
  return {
  const scale = Math.min(0.25);
  const isSelectedRect = isSelected(layoutIndex, layout.glassDetails.indexOf(glassDetail));
  let style = {
    position: 'absolute',
    left: `${glassDetail.x * scale}px`,
    top: `${glassDetail.y * scale}px`,
@@ -318,13 +325,21 @@
    draggable: !glassDetail.isRemain,
    zIndex: glassDetail.isRemain ? 1 : 2
  };
  // 如果被选中,则添加内侧红框
  if (isSelectedRect) {
    style.boxShadow = 'inset 0 0 0 2px red';
  }
  return style;
};
const rectStyle1 = (glassDetail, layoutIndex) => {
  const layout = layouts.value[layoutIndex];
  const scale = Math.min(0.25
  );
  return {
  const scale = Math.min(0.25);
  const isSelectedRect = isSelected(layoutIndex, layout.glassDetails.indexOf(glassDetail));
  let style = {
    position: 'absolute',
    left: `${glassDetail.x * scale}px`,
    top: `${glassDetail.y * scale}px`,
@@ -336,6 +351,13 @@
    draggable: !glassDetail.isRemain,
    zIndex: glassDetail.isRemain ? 1 : 2
  };
  // 如果被选中,则添加内侧红框
  if (isSelectedRect) {
    style.boxShadow = 'inset 0 0 0 2px red';
  }
  return style;
};
//点击小片
@@ -352,12 +374,13 @@
const handleRectRightClick = (layoutIndex, rectIndex) => {
  const glassDetail = layouts.value[layoutIndex].glassDetails[rectIndex];
  if (glassDetail.isRemain) return;
  document.querySelectorAll('.context-menu').forEach(el => el.remove());
  const contextMenu = document.createElement('div');
  contextMenu.className = 'context-menu';
  contextMenu.style.position = 'absolute';
  contextMenu.style.left = `${event.clientX}px`;
  contextMenu.style.bottom = `${event.clientY}px`;
  contextMenu.style.top = `${event.clientY}px`;
  contextMenu.style.backgroundColor = '#fff';
  contextMenu.style.border = '1px solid #ccc';
  contextMenu.style.padding = '5px';
@@ -488,12 +511,13 @@
const handleGrayRectRightClick = (layoutIndex, rectIndex,glassDetails) => {
  //const glassDetail = glassDetails[rectIndex];
  if (!glassDetails.isRemain) return;
  document.querySelectorAll('.context-menu').forEach(el => el.remove());
  const contextMenu = document.createElement('div');
  contextMenu.className = 'context-menu';
  contextMenu.style.position = 'absolute';
  contextMenu.style.left = `${event.clientX}px`;
  contextMenu.style.bottom = `${event.clientY}px`;
  contextMenu.style.top = `${event.clientY}px`;
  contextMenu.style.backgroundColor = '#fff';
  contextMenu.style.border = '1px solid #ccc';
  contextMenu.style.padding = '5px';
north-glass-erp/northglass-erp/src/views/pp/machine/Machine.vue
@@ -20,7 +20,7 @@
    <div id="div-title">
      <el-breadcrumb :separator-icon="ArrowRight">
        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/machine/selectMachine' }">{{$t('machine.equipmentSituation')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/machine/addMachine' }">{{$t('machine.equipmentAddition')}}</el-breadcrumb-item>
<!--        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/machine/addMachine' }">{{$t('machine.equipmentAddition')}}</el-breadcrumb-item>-->
        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/machine/maintenanceAndRepair' }">{{$t('machine.maintenanceAndRepair')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/machine/addMaintenanceAndRepair' }">{{$t('machine.maintenanceAndRepairAddition')}}</el-breadcrumb-item>
        <el-breadcrumb-item  style="display: none" />
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -218,6 +218,7 @@
  })
}
const printOrder = (type) => {
  printNumber()
  const list = tag.value.value
  list.panels[0].printElements.forEach(element => {
    element.options.fontFamily = 'Arial'
@@ -848,7 +849,7 @@
const printNumber = () => {
  selectRecordsData.value.printList = selectRecords
  request.post(`/processCard/updatePrintNumber`, selectRecordsData.value).then((res) => {
  request.post(`/tagStyle/updatePrintNumber`, selectRecordsData.value).then((res) => {
    if (res.code == 200 && res.data === true) {
    } else {
@@ -967,7 +968,7 @@
        destroy-on-close
        style="width: 75%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContent" :icon="Printer" circle @click="printNumber"/>
        <el-button v-print="printContent" :icon="Printer" circle />
      </template>
      <print-process
          id="child"
@@ -1004,7 +1005,7 @@
        destroy-on-close
        style="width: 80%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContentLabelSemi" :icon="Printer" circle/>
        <el-button v-print="printContentLabelSemi" :icon="Printer" circle @click="printNumber"/>
      </template>
      <print-custom-label-semi id="childLabelSemi"
                               :faceOrientation="labelRow.faceOrientation"
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/AddMachine.vue
File was renamed from north-glass-erp/northglass-erp/src/views/pp/machine/AddMachine.vue
@@ -142,7 +142,7 @@
              ElMessage.success(t('basicData.msg.saveSuccess'))
              //router.push('/main/processCard/SplittingDetails?orderId=${orderId}')
              router.push({
                path: '/main/machine/AddMachine',
                path: '/main/productionBasicData/AddMachine',
                query: {random: Math.random()}
              })
north-glass-erp/northglass-erp/src/views/pp/productionBasicData/ProductionBasicData.vue
@@ -23,7 +23,8 @@
        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/productionBasicData/addBreakageType' }">{{$t('productionBasicData.newTypeOfSecondaryDamageAdded')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/productionBasicData/addBreakageReason' }">{{$t('productionBasicData.reasonForSecondaryFailureAdded')}}</el-breadcrumb-item>
        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productionBasicData/addTeamGroup' }">{{$t('productionBasicData.teamAdditionAndAddition')}}</el-breadcrumb-item>
<!--        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productionBasicData/AddMaintenanceAndRepair' }">班组人员新增新增</el-breadcrumb-item>-->
        <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/productionBasicData/addMachine' }">{{$t('machine.equipmentAddition')}}</el-breadcrumb-item>
        <!--        <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/productionBasicData/AddMaintenanceAndRepair' }">班组人员新增新增</el-breadcrumb-item>-->
        <el-breadcrumb-item  style="display: none" />
      </el-breadcrumb>
    </div>
north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
@@ -429,7 +429,6 @@
          }
          printRow.value.list = JSON.stringify(selectRecords)
          console.log(printRow.value.list)
          printRow.value.printMergeVal=printMerge.value
          printRow.value.mergeTechnologyNumber=technologyNumber
          // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -621,7 +621,7 @@
      }
    }
  },
  cellDblclick (params) {//表格内容双击打开产品界面
  cellDblclick (params) {//表格内容双击打开次破界面
    const { row } = params
    brokenRow.value = row
    if(brokenRow.value.damageDetails=== undefined){
@@ -899,7 +899,10 @@
    }
  }
}
const openedBrokenTable = () => {
const openedBrokenTable = async () => {
  await nextTick()
  console.log('breakageType:', titleSelectJson.value.breakageType)
  console.log('breakageReason:', titleSelectJson.value.breakageReason)
  //addListener(brokenGrid.value,brokenGridOptions)
  let damage =ref(brokenRow.value.damageDetails)
  brokenGrid.value.reloadData(damage.value)
@@ -1929,7 +1932,7 @@
          </template>
          <!--     刺破类型breakageType   -->
          <template #breakageType="{ row }">
            <vxe-select v-model="row.breakageType "
            <vxe-select v-model="row.breakageType"
                        clearable placeholder=" " allow-create  filterable>
              <vxe-option v-for="item in titleSelectJson.breakageType" :key="item.id" :label="item.basic_name" :value="item.basic_name"/>
            </vxe-select>
@@ -1940,7 +1943,7 @@
          <!--次破原因-->
          <template #breakageReason="{ row }">
            <vxe-select v-model="row.breakageReason "
            <vxe-select v-model="row.breakageReason"
                        clearable placeholder=" " allow-create  filterable>
              <vxe-option v-for="item in titleSelectJson.breakageReason" :key="item.id" :label="item.basic_name" :value="item.basic_name"/>
            </vxe-select>
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -460,12 +460,18 @@
        pageNum.value=1
        orderList.value = deepClone(res.data.data)
        xGrid.value.loadData(orderList.value)
        gridOptions.loading=false
        orderInfo.searchOrderFilter.list = xGrid.value.getCheckedFilters()
        orderInfo.searchOrderFilter.data = filterData.value
      }else{
        ElMessage.warning(res.msg)
      }
    }).catch(e => {
      xGrid.value.clearFilter()
      orderInfo.searchOrderFilter.data = {}
      ElMessage.error(t('searchOrder.msgList.filterError'))
    }).finally(()=>{
      gridOptions.loading=false
    })
  }
north-glass-erp/src/main/java/com/example/erp/controller/AppController.java
@@ -67,8 +67,8 @@
    @ApiOperation("可入库的成品查询接口")
    @PostMapping("/getSelectWarehousingList")
    public Result getSelectWarehousingList(@RequestBody String processId){
        return Result.success(finishedGoodsInventoryService.getSelectWarehousingApp(processId));
    public Result getSelectWarehousingList(@RequestBody Map<String,String> map){
        return Result.success(finishedGoodsInventoryService.getSelectWarehousingApp(map.get("processId")));
    }
    @ApiOperation("成品入库接口")
north-glass-erp/src/main/java/com/example/erp/dto/pp/TeamOutputDTO.java
@@ -54,7 +54,7 @@
    @ExcelProperty("订单类型")
    private String orderType;
    @ExcelProperty("在制品厚度")
    private String thicknessSum;
    private Double thicknessSum;
    @ExcelProperty("平方毫米")
    private String thicknessArea;
    private Double thicknessArea;
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -204,24 +204,7 @@
                            });
                        }
                        map.put("Detail",details );
//                    }else {
//                        //不是第一道工序,查询报工数据
//                        List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMpReview(processIdStr, technologyStr, process,previousProcess,laminating);
//                        if(process.equals("中空")){
//                            String orderId = reportingWorkMapper.selectOrderid(processIdStr);
//                            details.forEach( detail -> {
//                                Integer glassId = orderGlassDetailMapper.
//                                        getMinIdByGroup(orderId,
//                                                String.valueOf(detail.get("order_number")),
//                                                String.valueOf(detail.get("group")));
//                                int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId")));
//                                if(listGlassId  !=glassId){
//                                    detail.put("rowClass","latter");
//                                }
//                            });
//                        }
//                        map.put("Detail",details );
//                    }
                }
            }
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1816,7 +1816,8 @@
               pl.patch_reason,
               pl.patch_processes,
               pl.responsible_team,
               pl.responsible_personnel
               pl.responsible_personnel,
               od.building_number
        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 and
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -2168,7 +2168,7 @@
        layer,
        o_width,
        o_height,
        rack_no
        REPLACE(REPLACE(rack_no, '+', ''), '#', '')
    ORDER BY
        o_width,
        o_height
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -1704,6 +1704,7 @@
    </select>
    <select id="teamOutputMp" resultMap="teamOutputMap">
        SELECT
        t.*,
        -- 玻璃总厚度(mm)
@@ -1839,7 +1840,7 @@
        </if>
        HAVING 1 = 1
        <if test="teamOutputDTO.thicknessSum != null and teamOutputDTO.thicknessSum != ''">
            AND thicknessSum REGEXP #{teamOutputDTO.thicknessSum}
            and thicknessSum regexp REGEXP_REPLACE(#{teamOutputDTO.thicknessSum},'\\.0+$','')
        </if>
        ORDER BY
        t.this_process,
@@ -1852,39 +1853,84 @@
    <select id="exportTeamOutputMp">
        SELECT
        t.*,
        -- 玻璃总厚度(mm)
        (
        SELECT SUM(CAST(REGEXP_SUBSTR(seg, '^[0-9]+') AS UNSIGNED))
        FROM JSON_TABLE(
        CONCAT('["', REPLACE(t.workProcessName, '+', '","'), '"]'),
        '$[*]' COLUMNS (seg VARCHAR(100) PATH '$')
        ) jt
        ) AS thicknessSum,
        ROUND(
        (
        SELECT SUM(CAST(REGEXP_SUBSTR(seg, '^[0-9]+') AS UNSIGNED))
        FROM JSON_TABLE(
        CONCAT('["', REPLACE(t.workProcessName, '+', '","'), '"]'),
        '$[*]' COLUMNS (seg VARCHAR(100) PATH '$')
        ) jt2
        ) * t.area,
        2
        ) AS thicknessArea
        FROM
        (
        SELECT
        rw.reporting_work_time,
        rw.this_process,
        rw.teams_groups_name,
        o.project,
        o.order_id,
        rw.process_id,
        fc.order_number,
        MAX( ogd.child_width ) as width,
        MAX( ogd.child_height ) as height,
        MAX(ogd.child_width)  AS width,
        MAX(ogd.child_height) AS height,
        od.edging_type,
        rwd.completed_quantity as completed_quantity,
        ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*rwd.completed_quantity/1000000,2) as area,
        rwd.completed_quantity AS completed_quantity,
        ROUND(MAX(ogd.child_width) * MAX(ogd.child_height) * rwd.completed_quantity / 1000000, 2) AS area,
        od.product_name,
        JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code,
        JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS code,
        rw.reviewed,
        rw.examine_time,
        rw.device_name,
        o.order_type,
        --         GROUP_CONCAT(ogd.glass_child SEPARATOR '+') as workProcessName
        CASE
        WHEN LOCATE('step',#{laminating})>0 THEN GROUP_CONCAT(ogd.glass_child SEPARATOR '+')
        ELSE MAX( ogd.glass_child )
        WHEN LOCATE('step', #{laminating}) > 0 THEN GROUP_CONCAT(ogd.glass_child SEPARATOR '+')
        ELSE MAX(ogd.glass_child)
        END AS workProcessName,
        o.batch
        FROM
        reporting_work as rw left join reporting_work_detail as rwd on rwd.reporting_work_id=rw.reporting_work_id
        left join flow_card as fc on fc.order_id=rw.order_id and fc.process_id=rw.process_id  and fc.order_number=rwd.order_number and fc.technology_number=rwd.technology_number
        left join sd.order_glass_detail as ogd on ogd.order_id=fc.order_id and ogd.order_number=fc.order_number and ogd.technology_number=fc.technology_number
        left join sd.order_detail as od  on od.order_id=ogd.order_id and od.order_number=ogd.order_number
        left join sd.`order` as o on o.order_id=od.order_id
        where o.create_order>0 and rw.reviewed_state>=0 and rwd.completed_quantity>0 and
        rw.reporting_work_time >= #{date[0]}
        pp.reporting_work AS rw
        LEFT JOIN pp.reporting_work_detail AS rwd
        ON rwd.reporting_work_id = rw.reporting_work_id
        LEFT JOIN pp.flow_card AS fc
        ON fc.order_id = rw.order_id
        AND fc.process_id = rw.process_id
        AND fc.order_number = rwd.order_number
        AND fc.technology_number = rwd.technology_number
        LEFT JOIN sd.order_glass_detail AS ogd
        ON ogd.order_id = fc.order_id
        AND ogd.order_number = fc.order_number
        AND ogd.technology_number = fc.technology_number
        LEFT JOIN sd.order_detail AS od
        ON od.order_id = ogd.order_id
        AND od.order_number = ogd.order_number
        LEFT JOIN sd.`order` AS o
        ON o.order_id = od.order_id
        WHERE
        o.create_order > 0
        AND rw.reviewed_state >= 0
        AND rwd.completed_quantity > 0
        AND rw.reporting_work_time &gt;= #{date[0]}
        AND rw.reporting_work_time &lt;  #{date[1]}
        and position(#{process} in rw.this_process)
        <choose>
            <!-- 有传工序:精确匹配 -->
            <when test="process != null and process != ''">
                AND rw.this_process = #{process}
            </when>
            <!-- 未传工序:不加限制,查所有) -->
            <otherwise>
            </otherwise>
        </choose>
        <choose>
            <when test="laminating == ''">
                GROUP BY
@@ -1897,7 +1943,7 @@
            </when>
            <otherwise>
                GROUP BY
                <if test="laminating == 'stepA' || laminating == 'stepC'" >
                <if test="laminating == 'stepA' || laminating == 'stepC'">
                    ogd.`group`,
                </if>
                rw.reporting_work_id,
@@ -1907,12 +1953,13 @@
                rwd.order_number
            </otherwise>
        </choose>
        ) t
        ORDER BY
        rw.this_process,
        rw.process_id,
        rwd.order_number,
        rw.reporting_work_time,
        rw.teams_groups_name
        t.this_process,
        t.process_id,
        t.order_number,
        t.reporting_work_time,
        t.teams_groups_name
    </select>
    <select id="teamOutputPageTotal">
@@ -2059,7 +2106,7 @@
        ) x
        WHERE 1 = 1
        <if test="teamOutputDTO.thicknessSum != null and teamOutputDTO.thicknessSum != ''">
            AND x.thicknessSum REGEXP #{teamOutputDTO.thicknessSum}
            and thicknessSum regexp REGEXP_REPLACE(#{teamOutputDTO.thicknessSum},'\\.0+$','')
        </if>
        <if test="teamOutputDTO.thicknessArea != null and teamOutputDTO.thicknessArea != ''">
            AND x.thicknessArea REGEXP #{teamOutputDTO.thicknessArea}
@@ -2828,7 +2875,7 @@
        ) x
        WHERE 1 = 1
        <if test="teamOutputDTO.thicknessSum != null and teamOutputDTO.thicknessSum != ''">
            AND x.thicknessSum REGEXP #{teamOutputDTO.thicknessSum}
            and thicknessSum regexp REGEXP_REPLACE(#{teamOutputDTO.thicknessSum},'\\.0+$','')
        </if>
        <if test="teamOutputDTO.thicknessArea != null and teamOutputDTO.thicknessArea != ''">
            AND x.thicknessArea REGEXP #{teamOutputDTO.thicknessArea}