廖井涛
2024-08-19 1d193f2cc23f54634ef8ed73c11436fbe76bb575
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
15个文件已修改
211 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/SelectSortDetailProcessCard.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/SelectSortTable.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintReplenishFlowCard.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/dto/pp/DamageReportDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/entity/pp/DamageDetails.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -383,19 +383,24 @@
        </td>
      </tr>
      <tr v-if="company.remarkSwitch=='1'" v-for="(itemremark,index) in item.remarkList" :key="index">
      <tr v-if="company.remarkSwitch=='1'">
        <td colspan="29">
          编号:{{itemremark.S01}}&nbsp;&nbsp;
          备注1:{{itemremark.S02}}&nbsp;&nbsp;
          备注2:{{itemremark.S03}}&nbsp;&nbsp;
          备注3:{{itemremark.S04}}&nbsp;&nbsp;
          备注4:{{itemremark.S05}}
         <div style="display: flex;flex-wrap: wrap;">
           <div  v-for="(itemremark,index) in item.remarkList" :key="index">
             <span v-if="!(itemremark.S02==null&&itemremark.S03==null&&itemremark.S04==null&&itemremark.S05==null)">
               编号:{{itemremark.S01}}
             </span>&nbsp;&nbsp;
             <span v-if="itemremark.S02!=null">备注1:{{itemremark.S02}}</span>&nbsp;&nbsp;
             <span v-if="itemremark.S03!=null">备注2:{{itemremark.S03}}</span>&nbsp;&nbsp;
             <span v-if="itemremark.S04!=null">备注3:{{itemremark.S04}}</span>&nbsp;&nbsp;
             <span v-if="itemremark.S05!=null">备注4:{{itemremark.S05}}</span>
           </div>
         </div>
        </td>
      </tr>
      <tr v-for="(itemtextareas,index) in item.detail" :key="index">
        <td  colspan="29"  style="width: 480px;height: 150px ">
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;">{{itemtextareas.processing_note}}</textarea>
          <div style="width: 100%;height: 100%;text-align: left"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
      </tr>
@@ -410,9 +415,10 @@
* {
  margin: 0;
  padding: 0;
}
td,input{
  text-align: center;
}
#printFlowCard {
  text-align: center;
@@ -442,11 +448,11 @@
}
#contentTable tbody {
white-space: nowrap;
}
.tdNowrap {
  white-space: nowrap;
}
#contentTable tfoot {
north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -54,7 +54,7 @@
//   }
// });
// data.value.printList = Object.values(uniqueObjects);
let flowCardCount = data.value.printList.length
let flowCardCount = null
onMounted(() => {
  request.post(`/processCard/getSelectPrintingRefund/${merge}/${like}`, data.value).then((res) => {
        if (res.code == 200) {
@@ -136,7 +136,31 @@
          }
          //处理同配置打印
          // 使用一个对象来存储合并后的结果
          const mergedData = produceList.value.reduce((acc, item) => {
            const processId = item.detail[0].process_id;
            // 如果该 process_id 尚未在 acc 中,初始化其数组
            if (!acc[processId]) {
              acc[processId] = {
                processList: item.processList,
                detailList: [],
                detail: item.detail
              };
            }
            // 合并 detailList
            acc[processId].detailList = acc[processId].detailList.concat(item.detailList);
            return acc;
          }, {});
// 将合并后的对象转换回数组
          produceList.value = Object.values(mergedData);
           flowCardCount=produceList.value.length
          handleSummary()
          handleGetQRCode()
        } else {
@@ -395,7 +419,7 @@
      </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 style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;text-align: left">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
      </tr>
north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue
@@ -122,9 +122,8 @@
          }
          //处理同配置打印
          handleSummary()
          handleGetQRCode()
        } else {
          ElMessage.warning(res.msg)
@@ -197,11 +196,14 @@
          <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">流程卡号: {{
          <div v-else style="text-align: right;font-weight: bolder">
            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
            流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架
          </div>
@@ -317,14 +319,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">{{company.printLabel.printFlowCard.processingNote(itemtextarea)}}</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">{{company.printLabel.printFlowCard.processingNote(itemtextarea)}}</textarea>
        <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>
        </td>
        <td>完工签名</td>
north-glass-erp/northglass-erp/src/components/pp/SelectSortDetailProcessCard.vue
@@ -188,8 +188,9 @@
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'sort',
      width: 70,
      width: 90,
      editRender: {name: 'input', attrs: {placeholder: ''}},
      sortable: true,
      title: t('processCard.sorting'),
    },
    {
@@ -270,7 +271,7 @@
      title: t('craft.process'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 120
      filterMethod: filterChanged
    },
  ],
north-glass-erp/northglass-erp/src/components/pp/SelectSortTable.vue
@@ -129,11 +129,10 @@
    }
  },
  columns: [
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {type: 'expand', fixed: "left", slots: {content: 'content'}},
    {type: 'seq', fixed: "left", title: t('basicData.Number')},
    {
      field: 'sort',
      width: 70,
      title: t('processCard.sorting'),
    },
    {
@@ -141,35 +140,35 @@
      title: t('processCard.processId'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 130
      filterMethod: filterChanged
    },
    {
      field: 'order_number',
      title: t('order.OrderNum'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 100
      filterMethod: filterChanged
    },
    {
      field: 'technology_number',
      title: t('processCard.technologyNumber'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 100
      filterMethod: filterChanged
    },
    {
      field: 'glassNumber',
      title: t('reportingWorks.glassNumber'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 100
      filterMethod: filterChanged
    },
    {
      field: 'process',
      title: t('craft.process'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged,width: 120
      filterMethod: filterChanged
    },
  ],
north-glass-erp/northglass-erp/src/views/pp/Replenish/PrintReplenishFlowCard.vue
@@ -775,7 +775,7 @@
        destroy-on-close
        style="width: 75%;height:75% ">
      <template #header="{ close, titleId, titleClass }">
        <el-button v-print="printContent" @click="printNumber"  :icon="Printer" circle />
        <el-button v-print="printContent"   :icon="Printer" circle />
      </template>
      <print-process id="child" :printList="printRow.list" :printMerge="printRow.printMergeVal" :printLike="printRow.like"
                     style="width: 100%;height: 100%" />
north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue
@@ -74,13 +74,14 @@
const orderOtherMoney = ref(null)
let maxProcseeId=null
//第一次加载数据
request.post(`/processCard/selectNoCard/${orderId}/${productionId}`, filterData.value).then((res) => {
  if (res.code == 200) {
    pageTotal.value = res.data.total
    maxProcseeId=res.data.maxFlowCard[0].process_id
    orderOtherMoney.value = res.data.orderOtherMoney
    orderOtherMoney.value.forEach(item => {
      let column = {
@@ -354,7 +355,32 @@
    index = leftData[0].landingSequence + 1
    //index = index.toString().padStart(2, '0')
  }
  const processId = productionId + index.toString().padStart(3, '0')
  let processId= null
  // if (leftData.length !== 0){
  //   processId = productionId + index.toString().padStart(3, '0')
  // }
  // else {
    if (maxProcseeId!== null || maxProcseeId!== undefined|| maxProcseeId!== ''){
      if (leftData.length !== 0){
        const str=leftData[0].processId
        const lastThree = str.slice(-3);
        const result =  lastThree*1 + 1;
        processId= productionId + result.toString().padStart(3, '0')
      }
      else {
        // 截取后三位
        const lastThree = maxProcseeId.slice(-3);
        const result =  lastThree*1 + 1;
        processId= productionId + result.toString().padStart(3, '0')
      }
    }
    else {
      processId = productionId + index.toString().padStart(3, '0')
    }
  //}
  const regex = /^(\d+|)$/;
  if (!regex.test(checkedNum.value)) {
    ElMessage.warning(t('processCard.schedulingNo'))
north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
@@ -9,6 +9,8 @@
    {type:'expand',fixed:"left",width: 80},
    {type: 'seq',fixed:"left", title: '自序', width: 80 },
    {field: 'reportingWork.reportingWorkTime', width: 120, title: t('reportingWorks.reportingWorkTime'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
    {field: 'reportingWork.processId', width: 160,title: t('processCard.processId') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'code', width: 160,title: t('reportingWorks.glassNumber') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reportingWork.thisProcess',width: 120, title: t('reportingWorks.reportingProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'responsibleProcess',width: 120, title: t('reportingWorks.responsibleProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'responsibleTeam', width: 130,title: t('reportingWorks.responsibleTeam'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue
@@ -231,6 +231,8 @@
    {
      field: 'orderNumber', width: 120, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
    {field: 'glassNumber', width: 160,title: t('reportingWorks.glassNumber') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {
      field: 'technologyNumber', width: 100, title: t('processCard.technologyNumber'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }
    },
north-glass-erp/src/main/java/com/example/erp/dto/pp/DamageReportDTO.java
@@ -40,5 +40,7 @@
    private String personnel;
    @ExcelProperty("单片名称")
    private String glassChild;
    @ExcelProperty("编号")
    private String glassNumber;
}
north-glass-erp/src/main/java/com/example/erp/entity/pp/DamageDetails.java
@@ -51,6 +51,9 @@
    private Integer quantity;
    @TableField(select = false,exist = false)
    private  String code;
    @TableField(select = false,exist = false)
    private String area;
    @TableField(select = false,exist = false)
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -130,7 +130,7 @@
    List<Map<String, Object>> getDetailListLikeRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId);
    List<Map<String, Object>> getPrimaryListRework(String processId, String technologyNumber, Integer orderNumber);
    List<Map<String, Object>> getPrimaryListRework(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId);
    List<Map<String, Object>> getDetailListRework(String processId, Integer technologyNumber, Integer orderNumber, String reportingWorkId);
@@ -167,4 +167,6 @@
    String countFlowCard(String orderId);
    List<Map<String, Object>> remakList(String processId);
    List<Map<String, Object>> selectMaxFlowCard(String orderId, String productionId);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -101,6 +101,7 @@
    public Map<String, Object> selectNoCardSv(String orderId, String productionId, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.selectNoCardMp(orderId, productionId, flowCard));
        map.put("maxFlowCard", flowCardMapper.selectMaxFlowCard(orderId, productionId));
        map.put("orderOtherMoney", flowCardMapper.selectorderOtherMoney());
        return map;
    }
@@ -547,7 +548,7 @@
                //流程卡表头表尾数据
                //是否传入合并层数
                if (printMerge.equals("")||printMerge.equals("null") ){
                    itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber()));
                    itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId()));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                    itemmap.put("detailList", detailList);
                }
@@ -561,7 +562,7 @@
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber()));
                        itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRework(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                        itemmap.put("detailList", detailList);
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -217,7 +217,7 @@
            sd.order_glass_detail as ogd left join flow_card as fc
                on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number
        set ogd.splitting_status=0
        where ogd.order_id = #{orderId}
        where fc.process_id = #{processId}
    </update>
@@ -225,7 +225,7 @@
    <update id="deleteFlowCardMp">
        delete
        from flow_card as fc
        where fc.order_id = left(#{processId}, 10)
        where fc.process_id = #{processId}
    </update>
    <!--    分架新增明细查询-->
@@ -442,7 +442,7 @@
    <delete id="deleteReportingWork">
        delete
        from sd.order_process_detail
        where order_id = left(#{processId}, 10)
        where process_id = #{processId}
    </delete>
    <select id="selectPrintFlowCardMp">
@@ -807,8 +807,8 @@
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
        GROUP BY fc.process_id,fc.order_number,fc.technology_number
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <update id="printSortMp">
@@ -1336,7 +1336,12 @@
               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,
               dd.breakage_type,
               dd.breakage_reason,
               dd.responsible_process,
               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
@@ -1358,9 +1363,14 @@
                              ogdc.technology_number = ogd.technology_number
                 left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                           pl.technology_number = fc.technology_number
                 left join pp.reporting_work as rw on rw.order_id = fc.order_id and rw.process_id = fc.process_id
                 left join pp.damage_details as dd
                           on rw.reporting_work_id = dd.reporting_work_id and dd.order_number = fc.order_number and
                              dd.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and fc.technology_number = #{technologyNumber}
          and rw.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.technology_number
    </select>
@@ -2051,4 +2061,16 @@
        WHERE fc.process_id=#{processId}
        GROUP BY fc.order_number
    </select>
    <select id="selectMaxFlowCard">
        select ifnull((select fc.process_id
                       from sd.order_detail as od
                                left join sd.order_glass_detail as ogd
                                          on od.order_id = ogd.order_id and od.order_number = ogd.order_number
                                left join flow_card as fc on fc.order_id=od.order_id and fc.order_number=od.order_number and fc.technology_number=ogd.technology_number
                       where od.order_id = #{orderId}
                         and ogd.production_id = #{productionId}
                       GROUP BY od.order_number
                       order by fc.process_id desc LIMIT 1),'') as process_id
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -63,6 +63,8 @@
        <result column="project" property="order.project"/>
        <result column="order_id" property="order.orderId"/>
        <result column="glass_child" property="orderGlassDetail.glassChild"/>
        <result column="process_id" property="reportingWork.processId"/>
        <result column="code" property="code"/>
    </resultMap>
@@ -101,6 +103,7 @@
        <result column="breakage_reason" property="breakageReason"/>
        <result column="personnel" property="personnel"/>
        <result column="glass_child" property="glassChild"/>
        <result column="glassNumber" property="glassNumber"/>
    </resultMap>
    <resultMap id="teamOutputMap" type="com.example.erp.dto.pp.TeamOutputDTO">
@@ -219,15 +222,15 @@
               o.project,
               o.order_id,
               ogd.glass_child,
               rw.this_process
        from damage_details as dd
                 left join reporting_work as rw
                           on rw.reporting_work_id = dd.reporting_work_id
                 left join sd.order as o
                           on rw.order_id = o.order_id
                 left join sd.order_glass_detail as ogd
                           on ogd.order_id = o.order_id and ogd.order_number = dd.order_number
                               and ogd.technology_number and dd.technology_number
               rw.this_process,
               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code,
               CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id
        from
            sd.`order` as o left join sd.order_detail as od on o.order_id=od.order_id
                             left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number
                             left join reporting_work as rw on rw.order_id=o.order_id
                             left join damage_details as dd on dd.reporting_work_id=rw.reporting_work_id and dd.order_number=ogd.order_number
            and dd.technology_number=ogd.technology_number
        where date(rw.reporting_work_time) >= #{startDate}
          and date(rw.reporting_work_time) &lt;= #{endDate}
          and rw.this_worn_quantity > 0
@@ -482,7 +485,8 @@
        dd.breakage_quantity,
        round( ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2 ) as area,
        IFNULL(dd.responsible_personnel,'') as personnel,
        ogd.glass_child
        ogd.glass_child,
        JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber
        FROM
        sd.ORDER AS o
        LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
@@ -490,6 +494,7 @@
        LEFT JOIN damage_details AS dd ON dd.reporting_work_id = rw.reporting_work_id
        AND dd.order_number = ogd.order_number
        AND dd.technology_number = ogd.technology_number
        left join sd.order_detail as od on o.order_id = od.order_id and od.order_number=ogd.order_number
        WHERE
        rw.reporting_work_time between #{selectTime1} and #{selectTime2}
        AND dd.available = 0