廖井涛
2024-08-09 4aff3b8d0640e9a84f7408100551e740bacaa2a0
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
21个文件已修改
527 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabel.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelSemi.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/SelectSortDetailProcessCard.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/utils/decimal.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabel.vue
@@ -104,6 +104,7 @@
    // 获取前缀和 orderId
    const prefix = obj.processId.substring(0, 11);
    const orderId = obj.orderId;
    const glassNumber=obj.glassNumber
    // 根据 propertyName 更新属性
    if (propertyName === 'productAbbreviation' && prefix === obj.processId.substring(0, 11)) {
@@ -113,6 +114,10 @@
    if (propertyName === 'project' && orderId === obj.orderId) {
      obj.project = result;
    }
    if (propertyName === 'productName' && glassNumber === obj.glassNumber){
      obj.productName = result;
    }
  });
}
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelSemi.vue
@@ -183,13 +183,15 @@
  text-align: left;
}
@page {
  size: auto;
  margin: 0mm 0mm 0mm 4mm;
}
@media print {
  @page {
    size: auto;
    margin: 0mm 0mm 0mm 4mm;
  }
  div {
    page-break-inside: avoid;
  }
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -189,30 +189,20 @@
    <table v-for="(item,id) in produceList" id="contentTable" :key="id">
      <thead>
      <tr v-for="(itemFlow,index) in item.detail" :key="index">
        <td  v-if="like='1'"  colspan="26">
        <td  colspan="29">
          <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px  "/></div>
          <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
          <div>{{ company.companyName }}</div>
          <div>生产流程卡</div>
          <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">流程卡号: {{
          <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">
            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
            流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架
          </div>
          <div v-else style="text-align: right;font-weight: bolder">流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架
          </div>
        </td>
        <td v-else colspan="24">
          <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px  "/></div>
          <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
          <div>{{ company.companyName }}</div>
          <div>生产流程卡</div>
          <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架
          </div>
          <div v-else style="text-align: right;font-weight: bolder">流程卡号: {{
          <div v-else style="text-align: right;font-weight: bolder">
            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
            流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架
          </div>
@@ -224,8 +214,7 @@
        <td class="tdNowrap">项目名称:</td>
        <td colspan="2">{{ items.project }}</td>
        <td class="tdNowrap">工艺流程:</td>
        <td colspan="19" v-if="like='1'" style="width: 500px">{{ items.process }}</td>
        <td colspan="17" v-else style="width: 500px">{{ items.process }}</td>
        <td colspan="22"  style="width: 500px">{{ items.process }}</td>
      </tr>
      <tr v-for="(itemTr,index) in item.detail" :key="index">
        <td class="tdNowrap">磨边类型:</td>
@@ -233,15 +222,13 @@
        <td class="tdNowrap">单片名称:</td>
        <td colspan="2">{{ itemTr.glass_child }}</td>
        <td class="tdNowrap">产品名称:</td>
        <td v-if="like=='1'" colspan="19">{{ itemTr.product_name }}</td>
        <td v-else colspan="17">{{ itemTr.product_name }}</td>
        <td colspan="22">{{ itemTr.product_name }}</td>
      </tr>
      <tr>
        <td rowspan='2'>序号</td>
        <td rowspan='2'>编号</td>
        <td v-if="like!=null" rowspan="2">小片顺序</td>
        <td v-else style="display: none;" rowspan="2">小片顺序</td>
        <td rowspan='2'>宽*高</td>
        <td rowspan="2">小片顺序</td>
        <td rowspan='2' style="width: 90px">宽*高</td>
        <td rowspan='2'>数量</td>
        <td rowspan='2'>面积</td>
        <td rowspan='2'>周长</td>
@@ -267,6 +254,10 @@
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
      </tr>
      </thead>
      <tbody>
@@ -274,11 +265,10 @@
      <tr v-for="(itemDatile,index) in item.detailList" :key="index">
        <td>{{ itemDatile.order_number }}</td>
        <td>{{ itemDatile.s01Value }}</td>
        <td v-if="like=='1'">{{ itemDatile.technology_number }}</td>
        <td v-else style="display: none"></td>
        <td>{{ itemDatile.technology_number }}</td>
        <td>{{ itemDatile.child_width }}</td>
        <td class="item" style="width: 5%;height: 100%;">
          <el-input v-model="itemDatile.quantity" style="border: none" @keyup="handleSummary()"></el-input>
          <input v-model="itemDatile.quantity" style="width: 100%;height: 100%"  @keyup="handleSummary()"/>
        </td>
        <td>{{ itemDatile.total_area }}</td>
        <td>{{ itemDatile.perimeter }}</td>
@@ -300,11 +290,15 @@
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      </tbody>
      <tfoot>
      <tr style="height: 14px">
        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="26">
        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29">
          数量:
          <label>{{ itemsum.quantity }}</label>
          面积:
@@ -314,17 +308,12 @@
        </td>
      </tr>
      <tr v-for="(itemtextarea,index) in item.detail" :key="index">
        <td v-if="like='1'" colspan="4" rowspan="6" style="width: 480px;height: 100px ">
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
          </div>
        </td>
        <td v-else colspan="6" rowspan="2" style="width: 480px;height: 100px ">
          <!--          <div style="width: 100%;height: 100%"><textarea style="height: 99%;width: 99%;font-size: 11px">{{ itemtextarea.processing_note }}</textarea>-->
          <!--          </div>-->
           <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
           </div>
        </td>
        <td>完工签名</td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
@@ -348,9 +337,17 @@
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
      </tr>
      <tr>
        <td>质检签名</td>
        <td colspan="2"></td>
        <td colspan="2">生产签名</td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
@@ -364,10 +361,10 @@
      </tr>
      <tr>
        <td>原片箱号</td>
        <td colspan="20"></td>
        <td colspan="28"></td>
      </tr>
      <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
        <td colspan="23">
        <td colspan="29">
          <span style="display: flex;">
            <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
            <div class='qrCode' style="width: 80px;height: 80px;">
@@ -380,6 +377,12 @@
          </span>
        </td>
      </tr>
      <tr v-for="(itemtextareas,index) in item.detail" :key="index">
        <td  colspan="29" rowspan="6" style="width: 480px;height: 150px ">
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
      </tr>
      </tfoot>
    </table>
@@ -423,12 +426,10 @@
}
#contentTable tbody {
  white-space: nowrap;
}
.tdNowrap {
  white-space: nowrap;
}
@@ -438,17 +439,20 @@
}
input{
  font-weight: bolder;
  border: none;
  background: none;
}
@page {
  size: auto;  /* auto is the initial value */
  margin: 2mm 2mm 0mm 1mm  /* this affects the margin in the printer settings */
}
@media print {
  @page {
    size: auto;  /* auto is the initial value */
    margin: 4mm 5mm 5mm 5mm  /* this affects the margin in the printer settings */
  }
  table {
    page-break-before: always;
    page-break-inside: auto;
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -205,7 +205,7 @@
    <table v-for="(item,id) in produceList" id="contentTable" :key="id">
      <thead>
      <tr v-for="(itemFlow,index) in item.detail" :key="index">
        <td  v-if="like='1'"  colspan="26">
        <td    colspan="29">
          <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px  "/></div>
          <div id="bj" style="float: right;font-size: 28px">补 {{ id + 1 }}</div>
          <div>{{ company.companyName }}</div>
@@ -214,21 +214,9 @@
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架
          </div>
          <div v-else style="text-align: right;font-weight: bolder">流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架
          </div>
        </td>
        <td v-else colspan="24">
          <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px  "/></div>
          <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
          <div>{{ company.companyName }}</div>
          <div>生产流程卡</div>
          <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架
          </div>
          <div v-else style="text-align: right;font-weight: bolder">流程卡号: {{
          <div v-else style="text-align: right;font-weight: bolder">
            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
            流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架
          </div>
@@ -240,8 +228,7 @@
        <td class="tdNowrap">项目名称:</td>
        <td colspan="2">{{ items.project }}</td>
        <td class="tdNowrap">工艺流程:</td>
        <td colspan="19" v-if="like='1'" style="width: 500px">{{ items.process }}</td>
        <td colspan="17" v-else style="width: 500px">{{ items.process }}</td>
        <td colspan="22"  style="width: 500px">{{ items.process }}</td>
      </tr>
      <tr v-for="(itemTr,index) in item.detail" :key="index">
        <td class="tdNowrap">磨边类型:</td>
@@ -249,14 +236,12 @@
        <td class="tdNowrap">单片名称:</td>
        <td colspan="2">{{ itemTr.glass_child }}</td>
        <td class="tdNowrap">产品名称:</td>
        <td v-if="like=='1'" colspan="19">{{ itemTr.product_name }}</td>
        <td v-else colspan="17">{{ itemTr.product_name }}</td>
        <td colspan="22">{{ itemTr.product_name }}</td>
      </tr>
      <tr>
        <td rowspan='2'>序号</td>
        <td rowspan='2'>编号</td>
        <td v-if="like!=null" rowspan="2">小片顺序</td>
        <td v-else style="display: none;" rowspan="2">小片顺序</td>
        <td rowspan="2">小片顺序</td>
        <td rowspan='2'>宽*高</td>
        <td rowspan='2'>数量</td>
        <td rowspan='2'>面积</td>
@@ -266,23 +251,27 @@
        <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td>
      </tr>
      <tr>
        <td>{{company.printLabel.printFlowCard.patch}}</td>
        <td>{{company.printLabel.printFlowCard.lackOf}}</td>
        <td>{{company.printLabel.printFlowCard.patch}}</td>
        <td>{{company.printLabel.printFlowCard.lackOf}}</td>
        <td>{{company.printLabel.printFlowCard.patch}}</td>
        <td>{{company.printLabel.printFlowCard.lackOf}}</td>
        <td>{{company.printLabel.printFlowCard.patch}}</td>
        <td>{{company.printLabel.printFlowCard.lackOf}}</td>
        <td>{{company.printLabel.printFlowCard.patch}}</td>
        <td>{{company.printLabel.printFlowCard.lackOf}}</td>
        <td>{{company.printLabel.printFlowCard.patch}}</td>
        <td>{{company.printLabel.printFlowCard.lackOf}}</td>
        <td>{{company.printLabel.printFlowCard.patch}}</td>
        <td>{{company.printLabel.printFlowCard.lackOf}}</td>
        <td>{{company.printLabel.printFlowCard.patch}}</td>
        <td>{{company.printLabel.printFlowCard.lackOf}}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
      </tr>
      </thead>
      <tbody>
@@ -290,11 +279,10 @@
      <tr v-for="(itemDatile,index) in item.detailList" :key="index">
        <td>{{ itemDatile.order_number }}</td>
        <td>{{ itemDatile.s01Value }}</td>
        <td v-if="like=='1'">{{ itemDatile.technology_number }}</td>
        <td v-else style="display: none"></td>
        <td>{{ itemDatile.technology_number }}</td>
        <td>{{ itemDatile.child_width }}</td>
        <td class="item" style="width: 5%;height: 100%;">
          <el-input v-model="itemDatile.quantity" style="border: none" @keyup="handleSummary()"></el-input>
          <input v-model="itemDatile.quantity" style="width: 100%;height: 100%"  @keyup="handleSummary()"/>
        </td>
        <td>{{ itemDatile.total_area }}</td>
        <td>{{ itemDatile.perimeter }}</td>
@@ -316,11 +304,15 @@
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      </tbody>
      <tfoot>
      <tr style="height: 14px">
        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="26">
        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29">
          数量:
          <label>{{ itemsum.quantity }}</label>
          面积:
@@ -330,27 +322,18 @@
        </td>
      </tr>
      <tr v-for="(itemtextarea,index) in item.detail" :key="index">
        <td v-if="like='1'" colspan="4" rowspan="6" style="width: 480px;height: 100px ">
        <td colspan="4" rowspan="5" style="width: 480px;height: 100px ">
          <div>
            次破类型:{{itemtextarea.breakage_type}}&nbsp;
            次破原因:{{itemtextarea.breakage_reason}}&nbsp;
            责任工序:{{itemtextarea.responsible_process}}&nbsp;
            责任班组:{{itemtextarea.responsible_team}}
          </div>
<!--          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{company.printLabel.printFlowCard.processingNote(itemtextarea)}}</textarea>-->
<!--          </div>-->
        </td>
        <td v-else colspan="6" rowspan="2" style="width: 480px;height: 100px ">
          <div>
            次破类型:{{itemtextarea.breakage_type}}
            次破原因:{{itemtextarea.breakage_reason}}
            责任工序:{{itemtextarea.responsible_process}}
            责任班组:{{itemtextarea.responsible_team}}
          </div>
<!--          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{company.printLabel.printFlowCard.processingNote(itemtextarea)}}</textarea>-->
<!--          </div>-->
        </td>
        <td>完工签名</td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
@@ -374,9 +357,13 @@
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
      </tr>
      <tr>
        <td>质检签名</td>
        <td colspan="2"></td>
        <td colspan="2">生产签名</td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
@@ -390,10 +377,10 @@
      </tr>
      <tr>
        <td>原片箱号</td>
        <td colspan="20"></td>
        <td colspan="24"></td>
      </tr>
      <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
        <td colspan="23">
        <td colspan="25">
          <span style="display: flex;">
            <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
            <div class='qrCode' style="width: 80px;height: 80px;">
@@ -405,7 +392,12 @@
          </span>
          </span>
        </td>
      </tr>
      <tr v-for="(itemtextareas,index) in item.detail" :key="index">
        <td  colspan="29" rowspan="6" style="width: 480px;height: 150px ">
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
      </tr>
      </tfoot>
    </table>
@@ -454,12 +446,10 @@
}
#contentTable tbody {
  white-space: nowrap;
}
.tdNowrap {
  white-space: nowrap;
}
@@ -468,14 +458,19 @@
  font-weight: bolder;
}
@page {
  size: auto;  /* auto is the initial value */
  margin: 2mm 0mm 0mm 1mm  /* this affects the margin in the printer settings */
input{
  border: none;
  background: none;
}
@media print {
  @page {
    size: auto;  /* auto is the initial value */
    margin: 2mm 4mm 0mm 4mm  /* this affects the margin in the printer settings */
  }
  tbody {
    display: table-row-group;
  }
north-glass-erp/northglass-erp/src/components/pp/SelectSortDetailProcessCard.vue
@@ -25,7 +25,8 @@
let router = useRouter()
let props = defineProps({
  processId:null,
  technologyNumber:null
  technologyNumber:null,
  process:null
})
domZindex.setCurrent(3000)
@@ -66,7 +67,7 @@
})
//第一次加载数据
request.post(`/processCard/printFlowCardDetails/${props.processId}/${props.technologyNumber}`,filterData.value).then((res) => {
request.post(`/processCard/printFlowCardDetails/${props.processId}/${props.technologyNumber}/${props.process}`,filterData.value).then((res) => {
  if (res.code == 200) {
    produceDetailList.value = (res.data.data)
    xGridDetail.value.reloadData(produceDetailList.value)
@@ -180,7 +181,7 @@
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'sort',
      width: 80,
      width: 70,
      editRender: {name: 'input', attrs: {placeholder: ''}},
      title: t('processCard.sorting'),
    },
@@ -189,42 +190,42 @@
      title: t('processCard.processId'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,width: 130
    },
    {
      field: 'order_number',
      title: t('order.OrderNum'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,width: 100
    },
    {
      field: 'technology_number',
      title: t('processCard.technologyNumber'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,width: 100
    },
    {
      field: 'glass_address',
      title: t('processCard.glassAddress'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,width: 100
    },
    {
      field: 'glass_child',
      title: t('reportingWorks.glassChild'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,width: 120
    },
    {
      field: 'quantity',
      title: t('order.quantity'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,width: 70
    },
    {
      field: 'child_width',
@@ -233,6 +234,7 @@
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,
      sortable: true,
      width: 100
    },
    {
      field: 'child_height',
@@ -240,14 +242,21 @@
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,
      sortable: true,
      sortable: true,width: 100
    },
    {
      field: 'area',
      title: t('order.area'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
      filterMethod: filterChanged,width: 100
    },
    {
      field: 'process',
      title: t('craft.process'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 120
    },
  ],
north-glass-erp/northglass-erp/src/utils/decimal.js
@@ -3,29 +3,29 @@
// 封装加法函数
function add(num1, num2) {
    const decimal1 = new Decimal(num1);
    const decimal2 = new Decimal(num2);
    const decimal1 = new Decimal(num1===null?0:num1);
    const decimal2 = new Decimal(num2===null?0:num2);
    return decimal1.plus(decimal2).toString();
}
// 封装减法函数
function subtract(num1, num2) {
    const decimal1 = new Decimal(num1);
    const decimal2 = new Decimal(num2);
    const decimal1 = new Decimal(num1===null?0:num1);
    const decimal2 = new Decimal(num2===null?0:num2);
    return decimal1.minus(decimal2).toFixed(2);
}
// 封装乘法函数
function multiply(num1, num2) {
    const decimal1 = new Decimal(num1);
    const decimal2 = new Decimal(num2);
    const decimal1 = new Decimal(num1===null?0:num1);
    const decimal2 = new Decimal(num2===null?0:num2);
    return decimal1.times(decimal2).toFixed(2)
}
// 封装除法函数
function divide(num1, num2) {
    const decimal1 = new Decimal(num1);
    const decimal2 = new Decimal(num2);
    const decimal1 = new Decimal(num1===null?0:num1);
    const decimal2 = new Decimal(num2===null?0:num2);
    return decimal1.dividedBy(decimal2).toFixed(2);
}
export {
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -40,7 +40,8 @@
//排序
let editRow = ref({
  processId: null,
  technologyNumber: null
  technologyNumber: null,
  process:null
})
//打印
@@ -64,6 +65,7 @@
    case 'edit' : {
      editRow.value.processId = row.process_id
      editRow.value.technologyNumber = row.technology_number
      editRow.value.process = row.process
      printVisible.value = true
      // router.push({path: '/sort-detail', query: {processId: row.process_id,technologyNumber:row.technology_number}})
@@ -730,7 +732,7 @@
        :title="$t('processCard.processCardDetails')"
        destroy-on-close
        style="width: 80%;height:75% ">
      <sort-detail id="child" :processId="editRow.processId" :technologyNumber="editRow.technologyNumber"/>
      <sort-detail id="child" :processId="editRow.processId" :technologyNumber="editRow.technologyNumber" :process="editRow.process"/>
    </el-dialog>
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue
@@ -19,7 +19,7 @@
})
//工序
const value = ref()
const procseeValue = ref()
//表尾求和
const sumNum = (list, field) => {
@@ -75,7 +75,7 @@
form.date1 = getNowTime()
let startTime = form.date1[0]
let endTime = form.date1[1]
let selectProcesses = value.value
let selectProcesses = procseeValue.value
let total = reactive({
  pageTotal: 0,
@@ -126,7 +126,7 @@
  let startTime = form.date1[0]
  let endTime = form.date1[1]
  let selectProcesses = value.value
  let selectProcesses = procseeValue.value
  request.post(`/report/teamOutput/${pageNum.value}/${total.pageSize}/${startTime}/${endTime}/${selectProcesses}`, filterData.value).then((res) => {
@@ -156,6 +156,7 @@
}
function filterChanged(column){
  let selectProcesses = procseeValue.value
  //gridOptions.loading=true
  //筛选条件发生变化条件发生变化
  let value = column.datas[0]!=undefined?column.datas[0]:''
@@ -173,6 +174,7 @@
  let startTime = form.date1[0]
  let endTime = form.date1[1]
  console.log(selectProcesses)
  request.post(`/report/teamOutput/1/${total.pageSize}/${startTime}/${endTime}/${selectProcesses}`, filterData.value).then((res) => {
    if (res.code == 200) {
@@ -252,7 +254,7 @@
    {field: 'width', width: 100, title: t('order.width')},
    {field: 'height', width: 100, title: t('order.height')},
    {field: 'shape', width: 90, title: t('order.shape')},
    {field: 'thickness', width: 90, title: t('order.totalThickness'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'thickness', width: 90, title: t('order.totalThickness')},
    {field: 'edgingType', width: 110, title: t('order.edgingType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'completedQuantity', width: 90, title: t('reportingWorks.completedQuantity')},
    {field: 'area', width: 100, title: t('reportingWorks.completedArea')},
@@ -292,7 +294,7 @@
})
function exportExcel(url, fileName,date) {
  let processes = value.value
  let processes = procseeValue.value
  if(date===null){
    ElMessage.warning(t('report.pleaseSelectADateFirst'))
    return
@@ -351,7 +353,7 @@
            value-format="YYYY-MM-DD"
        />
        &nbsp;&nbsp;
        <el-select v-model="value" clearable default-value="default_city" style="width: 120px">
        <el-select v-model="procseeValue" clearable default-value="default_city" style="width: 120px">
          <el-option
              v-for="item in titleSelectJson['processType']"
              :key="item.id"
@@ -368,6 +370,7 @@
        class="mytable-scrollbar"
        height="100%"
        v-bind="gridOptions"
        @filter-change="filterChanged"
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
@@ -391,6 +394,7 @@
            :layouts="[  'PrevPage', 'Jump','PageCount', 'NextPage',  'Total']"
            :total="total.dataTotal"
            @page-change="handlePageChange"
        >
        </vxe-pager>
      </template>
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -10,7 +10,9 @@
import userInfo from "@/stores/userInfo"
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum"
import companyInfo from "@/stores/sd/companyInfo"
domZIndex.setCurrent(3000)
const company = companyInfo()
//语言获取
const { t } = useI18n()
let brokenVisible = ref(false)
@@ -1025,9 +1027,11 @@
  //流程卡号
  let processIdStr = result[1];
  //层号
  let technologyStr = result[2];
  request.post(`/reportingWork/addSelectLastWork/${processIdStr}/${technologyStr}/${process}`).then((res) => {
  let reportType= company.reportType
  console.log(reportType)
  request.post(`/reportingWork/addSelectLastWork/${processIdStr}/${technologyStr}/${process}/${reportType}`).then((res) => {
    if (res.code == 200) {
      if(res.data.data==null){
        ElMessage.error(t('reportingWorks.noDataThisProcessCard'))
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -218,11 +218,12 @@
    }
    @ApiOperation("流程卡打印明细数据排序查询接口")
    @PostMapping("/printFlowCardDetails/{processId}/{technologyNumber}")
    @PostMapping("/printFlowCardDetails/{processId}/{technologyNumber}/{process}")
    public Result printFlowCardDetails(@PathVariable String processId,
                                       @PathVariable String technologyNumber,
                                       @PathVariable String process,
                                       @RequestBody FlowCard flowCard) {
        return Result.seccess(flowCardService.printFlowCardDetailsSv(processId, technologyNumber, flowCard));
        return Result.seccess(flowCardService.printFlowCardDetailsSv(processId, technologyNumber,process, flowCard));
    }
    @ApiOperation("保存打印排序接口")
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
@@ -261,13 +261,21 @@
    }
    @ApiOperation("订单排产计划")
    @ApiOperation("订单排产计划导出")
    @PostMapping("/exportScheduleReport")
    public void exportScheduleReport(HttpServletResponse response,
                                     @RequestBody Map<String, Object> dates
    ) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        System.out.println(dates);
        DownExcel.download(response, ScheduleProductionScheduleDTO.class, reportService.exportScheduleReportSv(dates), "ScheduleProduction");
    }
    @ApiOperation("班组产量导出")
    @PostMapping("/exportTeamOutput")
    public void exportTeamOutput(HttpServletResponse response,
                                     @RequestBody Map<String, Object> dates
    ) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, TeamOutputDTO.class, reportService.exportTeamOutputSv(dates), "TeamOutput");
    }
}
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -31,12 +31,13 @@
    @ApiOperation("报工新增查询")
    @SaCheckPermission("AddReportingWork.search")
    @PostMapping  ("/addSelectLastWork/{processIdStr}/{technologyStr}/{process}")
    @PostMapping  ("/addSelectLastWork/{processIdStr}/{technologyStr}/{process}/{reportType}")
    public Result AddSelectLastWork(
            @PathVariable String processIdStr,
            @PathVariable String technologyStr,
            @PathVariable String process)  {
        return  Result.seccess(reportingWorkService.AddSelectLastWorkSv(processIdStr,technologyStr,process));
            @PathVariable String process,
            @PathVariable String reportType)  {
        return  Result.seccess(reportingWorkService.AddSelectLastWorkSv(processIdStr,technologyStr,process,reportType));
    }
    @ApiOperation("查询工序")
    @PostMapping  ("/selectProcess")
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -74,7 +74,7 @@
    List<Map<String, String>> getPrimaryList(String processId, String technologyNumber, String glassChild, String process);
    List<Map<String, Object>> getDetailList(String processId, Integer technologyNumber);
    List<Map<String, Object>> getDetailList(String processId, Integer technologyNumber, String process);
    List<Map<String, Object>> getProcessList(String processId, Integer technologyNumber);
@@ -86,7 +86,7 @@
    List<Map<String, String>> getPrintLabel1(String processId,Integer technologyNumber);
    List<Map<String, String>> printFlowCardDetailsMp(String processId, String technologyNumber, FlowCard flowCard);
    List<Map<String, String>> printFlowCardDetailsMp(String processId, String technologyNumber, String process, FlowCard flowCard);
    Boolean printSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort);
@@ -118,7 +118,7 @@
    List<Map<String, String>> selectReworkPrintMp(Date selectTime1, Date selectTime2, FlowCard flowCard);
    List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber);
    List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber, String process);
    List<Map<String, String>> getPrimaryListMergeRefund(String processId, String technologyNumber, Integer orderNumber);
@@ -136,7 +136,7 @@
    List<Map<String, Object>> getDetailListLikeRework(String processId, String printMerge, Integer orderNumber, String reportingWorkId);
    List<Map<String, Object>> getPrintCustomDataSemi(String processId, Integer technologyNumber);
    List<Map<String, Object>> getPrintCustomDataSemi(String processId, Integer technologyNumber, String process);
    List<Map<String, String>> selectPrintNotMp(String orderId);
@@ -145,4 +145,10 @@
    List<Map<String, String>> getRepairPrintCustomDataSemi(String processId, Integer technologyNumber, String reportingWorkId);
    List<Map<String, String>> selectPrintAllMp(String orderId);
    Boolean printAddSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort, String process);
    Integer printAddSortCountMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort, String process);
    Boolean printUpdateSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort, String process);
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
@@ -85,6 +85,8 @@
    Map<String, Integer> workInProgressTotal(Integer offset, Integer pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
    List<TeamOutputDTO> exportTeamOutputMp(List<LocalDate> date, String process);
//    Map<String, Integer> getWorkInProgressTotal(
//                                                @Param("selectTime1") Date selectTime1, @Param("selectTime2") Date selectTime2,
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
@@ -12,7 +12,7 @@
public interface ReportingWorkMapper extends BaseMapper<ReportingWork> {
    ReportingWork AddSelectLastWorkMp(String processIdStr, String technologyStr,String previousProcess,String nextProcess,String process);
    ReportingWork AddSelectLastWorkMp(String processIdStr, String technologyStr, String previousProcess, String nextProcess, String process, String reportType);
    List<BasicDataProduce> SelectWorkBasicDeviceMp(String process);
@@ -22,7 +22,7 @@
    String SelectWorkTechnologyMp(String processIdStr);
    List<Map<String,String>> SelectTechnologicalNumMp(String processIdStr, String technologyStr,String process);
    List<Map<String,String>> SelectTechnologicalNumMp(String processIdStr, String technologyStr, String process, String reportType);
    List<Map<String,String>> SelectReworlDetailMp(String processIdStr, String technologyStr, String process);
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -270,11 +270,11 @@
                    //是否包含切割
                    boolean containsCutting = flowCard.getProcess().contains("切割");
                    if(String.valueOf(flowCard.getTechnologyNumber()).length()>1 && containsCutting){
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess());
                        itemmap.put("detailList", detailList);
                    }
@@ -285,13 +285,13 @@
                    if (printLike.equals("")||printLike.equals("null") ){
                        itemmap.put("detail", flowCardMapper.getPrimaryListMerge(flowCard.getProcessId(), printMerge));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), printMerge);
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), printMerge, flowCard.getProcess());
                        itemmap.put("detailList", detailList);
                    }
                }
@@ -369,9 +369,9 @@
        return map;
    }
    public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, FlowCard flowCard) {
    public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, String process, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber, flowCard));
        map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber,process, flowCard));
        return map;
    }
@@ -379,7 +379,14 @@
        List<FlowCard> FlowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class);
        if (!FlowCardList.isEmpty()) {
            for (FlowCard flowCard : FlowCardList) {
                flowCardMapper.printSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort());
               // flowCardMapper.printSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort());
                //判断保存的数据是否已存在
                Integer count = flowCardMapper.printAddSortCountMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess());
                if (count >0){
                    flowCardMapper.printUpdateSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess());
                }else {
                    flowCardMapper.printAddSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess());
                }
            }
        }
        return true;
@@ -412,7 +419,7 @@
            else{
                for (FlowCard flowCard : flowCardList) {
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber()));
                    itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getProcess()));
                    list.add(itemmap);
                }
            }
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -435,4 +435,11 @@
        String process= (String) dates.get("processes");
        return reportMapper.exportScheduleReportMp(date,process);
    }
    public List exportTeamOutputSv(Map<String, Object> dates) {
        List<LocalDate> date= (List<LocalDate>) dates.get("date");
        String process= (String) dates.get("processes");
        return reportMapper.exportTeamOutputMp(date,process);
    }
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -22,7 +22,6 @@
import com.example.erp.mapper.userInfo.LogMapper;
import com.example.erp.service.sd.OrderProcessDetailService;
import com.example.erp.service.userInfo.LogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -74,7 +73,7 @@
        this.orderGlassDetailMapper = orderGlassDetailMapper;
    }
    public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) {
    public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process, String reportType) {
        Map<String, Object> map = new HashMap<>();
        //查询流程卡工艺流程
        String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(processIdStr,technologyStr);
@@ -107,7 +106,7 @@
                    nextProcess = processList[i + 1];
                }
                //查询当前工序的表头数据
                map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr, previousProcess, nextProcess, process));
                map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr, previousProcess, nextProcess, process,reportType));
                map.put("thisProcess", processList);
                break;
            }
@@ -132,7 +131,7 @@
        //判断本工序是不是第一道工序
        if (interceptProcess.equals(process)) {
            //是第一道工序,查询流程卡数据
            map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, technologyStr, process));
            map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, technologyStr, process,reportType));
        } else {
            //不是第一道工序,查询报工数据
            List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process);
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -656,10 +656,12 @@
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getProcessList">
@@ -755,15 +757,19 @@
               ogd.child_height,
               fc.quantity,
               ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
               fc.sort,
               ogd.glass_child
               ifnull(fcs.sort,'') as sort,
               ogd.glass_child,
               #{process} as process
        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 fc.technology_number = ogd.technology_number
        left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
    </select>
    <update id="printSortMp">
@@ -875,7 +881,7 @@
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by fc.process_id
    </select>
    <select id="selectReplenishPrintMp">
@@ -968,7 +974,7 @@
          and pl.technology_number = #{technologyNumber}
          and pl.reporting_work_id = #{reportingWorkId}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, pl.order_sort)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
    </select>
    <select id="getGlassNumber">
@@ -977,7 +983,7 @@
                 left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
    </select>
    <update id="updatePrintStateMp">
@@ -1005,7 +1011,7 @@
            AND fc.technology_number = ogd.technology_number
        left join sd.order_detail as od on fc.order_id = od.order_id and fc.order_number = od.order_number
        where fc.order_id = #{orderId}
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.technology_number)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.technology_number)
    </select>
    <update id="printOrderSortMp">
@@ -1029,7 +1035,8 @@
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               concat('对应我司单号',o.batch)                                         AS otherRemarks
        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
@@ -1114,10 +1121,12 @@
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getPrimaryListMergeRefund">
@@ -1189,7 +1198,7 @@
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(sort != NULL and sort != '', sort, fc.order_number)
    </select>
    <select id="getPrimaryListRefund">
@@ -1209,7 +1218,8 @@
               dd.breakage_type,
               dd.breakage_reason,
               dd.responsible_process,
               dd.responsible_team
               dd.responsible_team,
               concat('对应我司单号',o.batch)                                         AS otherRemarks
        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
@@ -1269,7 +1279,7 @@
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(sort != NULL and sort != '', sort, fc.order_number)
    </select>
    <select id="getPrimaryListRework">
@@ -1340,7 +1350,7 @@
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(sort != NULL and sort != '', sort, fc.order_number)
    </select>
    <select id="getPrimaryListMergeRework">
@@ -1412,7 +1422,7 @@
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(sort != NULL or sort != '', sort, fc.order_number)
    </select>
    <select id="getPrintCustomDataSemi">
@@ -1469,10 +1479,12 @@
                 left join sd.order_glass_detail ogd
                           on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
                              ogd.technology_number = fc.technology_number
                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
          and position(fc.technology_number in #{technologyNumber})
        group by od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="selectPrintNotMp">
@@ -1680,7 +1692,7 @@
          and pl.technology_number = #{technologyNumber}
          and pl.reporting_work_id = #{reportingWorkId}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, pl.order_sort)
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
    </select>
    <select id="selectPrintAllMp">
@@ -1797,4 +1809,26 @@
          and process != ""
        GROUP BY order_id,process_id,technology_number,process
    </select>
    <insert id="printAddSortMp">
        insert into flow_card_sort (process_id,order_number,technology_number,process,sort,create_time)
        values (#{processId},#{orderNumber},#{technologyNumber},#{process},#{sort},now())
    </insert>
    <select id="printAddSortCountMp">
        select
        count(*)
        from flow_card_sort
        where process_id = #{processId}
          and order_number = #{orderNumber}
          and technology_number = #{technologyNumber}
          and process = #{process}
    </select>
    <update id="printUpdateSortMp">
        update flow_card_sort
        set sort = #{sort}
        where process_id = #{processId}
          and order_number = #{orderNumber}
          and technology_number = #{technologyNumber}
          and process = #{process}
    </update>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -1266,6 +1266,64 @@
        limit #{offset},#{pageSize};
    </select>
    <select id="exportTeamOutputMp">
        SELECT
        rw.reporting_work_time,
        rw.this_process,
        rw.teams_groups_name,
        o.project,
        rw.process_id,
        rwd.order_number,
        MAX( ogd.child_width ) as width,
        MAX( ogd.child_height ) as height,
        if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
        sum( pd.thickness ) as thickness,
        od.edging_type,
        opd.reporting_work_num as completed_quantity,
        ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*opd.reporting_work_num/1000000,2) as area,
        od.product_name,
        JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code
        FROM
        reporting_work AS rw
        LEFT JOIN reporting_work_detail AS rwd ON rw.reporting_work_id = rwd.reporting_work_id
        LEFT JOIN sd.`order` AS o ON o.order_id = rw.order_id
        LEFT JOIN sd.order_detail AS od ON od.order_id = o.order_id
        AND od.order_number = rwd.order_number
        LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
        AND ogd.order_number = rwd.order_number
        AND ogd.technology_number = rwd.technology_number
        AND ogd.order_number = od.order_number
        LEFT JOIN (
        SELECT
        prod_id,
        glass_sort,
        REPLACE ( JSON_UNQUOTE( JSON_EXTRACT( separation, '$.thickness' )), 'mm', '' ) AS thickness
        FROM
        sd.product_detail
        WHERE
        detail_type = "glass"
        ) AS pd ON pd.prod_id = od.product_id AND pd.glass_sort = rwd.technology_number
        LEFT JOIN sd.order_process_detail AS opd ON opd.order_id = o.order_id
        AND opd.process_id = rw.process_id
        AND opd.order_number = ogd.order_number
        AND opd.technology_number = ogd.technology_number
        where opd.reporting_work_num > 0 and rw.reviewed_state=1
          and date(rw.reporting_work_time) >= #{date[0]}
          and date(rw.reporting_work_time) &lt;= #{date[1]}
        and position(#{process} in rw.this_process)
        GROUP BY
        rw.this_process,
        rw.teams_groups_name,
        rw.process_id,
        rwd.order_number
        ORDER BY
        rw.this_process,
        rw.process_id,
        rwd.order_number,
        rw.reporting_work_time,
        rw.teams_groups_name
    </select>
    <select id="teamOutputPageTotal">
        SELECT
        CEILING(count(rwd.id)/#{pageSize}) as 'pageTotal',
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -88,6 +88,7 @@
        left join reporting_work_detail as rwd on rw.reporting_work_id = rwd.reporting_work_id and rwd.technology_number=fc.technology_number
        where fc.process_id = #{processIdStr}
          and fc.technology_number = #{technologyStr}
          and if(#{reportType}=1,o.order_type!='样品订单',o.order_id!='')
        GROUP BY fc.process_id
    </select>
@@ -166,11 +167,13 @@
        on patch.process_id = fc.process_id
        and patch.order_sort = fc.order_number
        and patch.technology_number = fc.technology_number
        left join sd.`order` as o on o.order_id=od.order_id
        WHERE
            fc.process_id = #{processIdStr}
          AND fc.technology_number = #{technologyStr}
          AND odpd.process = #{process}
          and if(#{reportType}=1,o.order_type!='样品订单',o.order_id!='')
        order by fc.order_number
    </select>