chenlu
2024-09-03 9c7bff3b8907a174e679c445096ef14db1956274
修改BUG 提交浏览器预览打印代码
14个文件已修改
283 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelDetails.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/TagStyleDesigner.vue 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/dto/pp/CrossProcessBreakingDTO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReworkService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabel.vue
@@ -102,7 +102,7 @@
  // 遍历 lastList 并更新对应的属性
  lastList.value.forEach(obj => {
    // 获取前缀和 orderId
    const prefix = obj.processId.substring(0, 11);
    const prefix = lastList.value[id].processId.substring(0, 11);
    const orderId = obj.orderId;
    const glassNumber=lastList.value[id].glassNumber
    const customerName = obj.customerName
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelDetails.vue
@@ -30,7 +30,8 @@
  list:null,//勾选的数据
  faceOrientation:null,//内外面
  type:null,//标签模板
  lableType:null//标签类型
  lableType:null,//标签类型
  titleList:null//标题
})
const {currentRoute} = useRouter()
@@ -44,6 +45,7 @@
  faceOrientation='OUTSIDE'
}
let lableType = props.lableType
console.log(props.titleList)
data.value.printList = JSON.parse(props.list)
onMounted(() => {
      request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/${lableType}`, data.value).then((res) => {
@@ -54,6 +56,7 @@
          const data = produceList.value[0].value
          dataList = JSON.parse(`[${data}]`);
          labelList = dataList[0]
          console.log(labelList)
          for (let i = 0; i < list.value.length; i++) {
            let count = list.value[i].data.length
            for (let j = 0; j < count; j++) {
@@ -62,10 +65,8 @@
              }
            }
          }
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
        }
      })
@@ -103,7 +104,7 @@
  // 遍历 lastList 并更新对应的属性
  lastList.value.forEach(obj => {
    // 获取前缀和 orderId
    const prefix = obj.processId.substring(0, 11);
    const prefix = lastList.value[id].processId.substring(0, 11);
    const orderId = obj.orderId;
    const glassNumber=lastList.value[id].glassNumber
    // 根据 propertyName 更新属性
north-glass-erp/northglass-erp/src/components/pp/TagStyleDesigner.vue
@@ -8,8 +8,14 @@
import {useRouter} from "vue-router";
import deepClone from "@/utils/deepClone";
import companyInfo from "@/stores/sd/companyInfo"
import PrintCustomLabel from '@/components/pp/PrintCustomLabelDetails.vue'
import PrintCustomLabelSemi from '@/components/pp/PrintCustomLabelSemi.vue'
import {Printer} from "@element-plus/icons-vue/global";
const { t } = useI18n()
const company = companyInfo()
const dialogTableVisibleLabel = ref(false)
const dialogTableVisibleCustomLabel = ref(false)
let produceList = ref([])
let labelList = ref([])
let dataList = ref([])
@@ -26,6 +32,29 @@
        height: 45
  },
}
//标签
let labelRow = ref({
  list: null,//勾选的数据
  faceOrientation: null,//内外面
  type: null,//标签模板
  lableType: null,//标签类型
  titleList:null//标题列表
})
//室内室外面
const stateValue = ref('')
const stateOptions = [
  {
    value: t('processCard.thisIsTheIndoorSurface'),
    label: t('processCard.thisIsTheIndoorSurface'),
  },
  {
    value: t('processCard.thisSideIsOutsideTheRoom'),
    label: t('processCard.thisSideIsOutsideTheRoom'),
  },
]
const autoPaper = ref({
  width:null,
  height:null
@@ -515,33 +544,59 @@
}
const htmlPrint = () => {
  let lableTypes= lableType.value
  let faceOrientation = stateValue.value
  type=tag.value.name
  if (type === null || type === '' || type === undefined) {
    ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle'))
    return
  }
  request.post(`/processCard/getSelectPrintCustomLabel/${type}/${lableType.value}`, data.value).then((res) => {
    if (res.code == 200) {
      produceList.value = deepClone(res.data.title)
      list.value = deepClone(res.data.data)
      const data = produceList.value[0].value
      dataList = JSON.parse(`[${data}]`);
      labelList = dataList[0]
      console.log(labelList.printElements)
      for (let i = 0; i < list.value.length; i++) {
        let count = list.value[i].data.length
        for (let j = 0; j < count; j++) {
          for (let k = 0; k < list.value[i].data[j].quantity; k++) {
            lastList.value.push(list.value[i].data[j])
          }
        }
      }
    } else {
      ElMessage.warning(res.msg)
      router.push("/login")
  const titleList = ref({})
  titleList.value=JSON.parse(JSON.stringify(hiprintTemplate.value.getJson()))
  const printElements = titleList.value.panels[0].printElements;
  const result = printElements.map(element => ({
    title: element.options.title,
    name: element.options.field
  }));
  labelRow.value.titleList=result
  labelRow.value.list =props.list
  labelRow.value.faceOrientation = faceOrientation
  labelRow.value.type = type
  labelRow.value.lableType = lableType.value
  if (lableTypes == 1) {
    if (company.label === 1) {
      dialogTableVisibleLabel.value = true
    }
    hiprintTemplate.value.print(lastList.value)
  })
  } else if (lableTypes == 2) {
    if (company.label === 1) {
      dialogTableVisibleCustomLabel.value = true
    }
  }
  // request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/${lableType.value}`, data.value).then((res) => {
  //   if (res.code == 200) {
  //     produceList.value = deepClone(res.data.title)
  //     list.value = deepClone(res.data.data)
  //     const data = produceList.value[0].value
  //     dataList = JSON.parse(`[${data}]`);
  //     labelList = dataList[0]
  //     console.log(labelList.printElements)
  //     for (let i = 0; i < list.value.length; i++) {
  //       let count = list.value[i].data.length
  //       for (let j = 0; j < count; j++) {
  //         for (let k = 0; k < list.value[i].data[j].quantity; k++) {
  //           lastList.value.push(list.value[i].data[j])
  //         }
  //       }
  //     }
  //   } else {
  //     ElMessage.warning(res.msg)
  //     router.push("/login")
  //   }
  //   hiprintTemplate.value.print(lastList.value)
  // })
@@ -584,9 +639,21 @@
                  :value="tag"
              />
            </el-select>
          <el-select v-model="lableType" :placeholder="lableTypeOptions[0].label" class="m-2" style="width: 140px">
            <el-option
                v-for="item in filteredOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
            />
          </el-select>
        </el-col>
        <el-col :span="1">
          <el-select v-model="stateValue" :placeholder="$t('processCard.pleaseSelect')" allow-create class="m-2" clearable
                     filterable style="width: 140px">
            <el-option
                v-for="item in stateOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
@@ -622,6 +689,43 @@
  </div>
  <!--    成品标签-->
  <el-dialog
      id="sizeCustom"
      v-model="dialogTableVisibleLabel"
      :title="$t('processCard.printLabel')"
      destroy-on-close
      style="width: 80%;height:75% ">
    <template #header="{ close, titleId, titleClass }">
      <el-button v-print="printContentLabel" :icon="Printer" circle/>
    </template>
    <print-custom-label id="childLabel"
                        :faceOrientation="labelRow.faceOrientation"
                        :lableType="labelRow.lableType"
                        :list="labelRow.list"
                        :type="labelRow.type"
                        :titleList="labelRow.titleList"
                        style="width: 100%;height: 100%"/>
  </el-dialog>
  <!--   小片标签 -->
  <el-dialog
      id="sizeCustomSemi"
      v-model="dialogTableVisibleCustomLabel"
      :title="$t('processCard.labelStyle')"
      destroy-on-close
      style="width: 80%;height:75% ">
    <template #header="{ close, titleId, titleClass }">
      <el-button v-print="printContentLabelSemi" :icon="Printer" circle/>
    </template>
    <print-custom-label-semi id="childLabelSemi"
                             :faceOrientation="labelRow.faceOrientation"
                             :lableType="labelRow.lableType"
                             :list="labelRow.list"
                             :type="labelRow.type"
                             style="width: 100%;height: 100%"/>
  </el-dialog>
</template>
<style scoped>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -819,6 +819,7 @@
      <select-sort-table id="child" :orderId="tableRow.orderId"/>
    </el-dialog>
<!--   标签样式    -->
    <el-dialog
        id="titleStyle"
        :title="$t('processCard.labelStyle')"
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -17,6 +17,7 @@
import footSum from "@/hook/footSum"
import companyInfo from "@/stores/sd/companyInfo"
import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global";
import TagStyleDesigner from "@/components/pp/TagStyleDesigner.vue";
const company = companyInfo()
@@ -29,6 +30,7 @@
const dialogTableVisibleCustomLabel = ref(false)
const printVisible = ref(false)
let selectRecords = ref(null)
let titleStyleVisible = ref(false)
const selectRecordsData = ref({
  printList: []
@@ -315,6 +317,7 @@
      {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'},
      {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'},
      {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'},
      // {code: 'printTest', name: "测试打印", status: 'primary'},
      // {code: 'printLike', name: "同配置打印", status: 'primary'},
    ],
    // import: false,
@@ -542,6 +545,32 @@
          dialogTableVisible.value = true
          break
        }
        case 'printTest': {
          if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) {
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          // if (type === null || type === '' || type === undefined) {
          //   ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle'))
          //   return
          // }
          let id = ""
          for (let i = 0; i < selectRecords.length; i++) {
            if (i + 1 === selectRecords.length) {
              id += selectRecords[i].id
            } else {
              id += selectRecords[i].id + "|"
            }
          }
          labelRow.value.list = JSON.stringify(selectRecords)
          labelRow.value.faceOrientation = faceOrientation
          labelRow.value.type = type
          labelRow.value.lableType = lableTypes
          titleStyleVisible.value = true
          break
        }
      }
    }
  },
@@ -728,7 +757,21 @@
      <sort-detail id="child" :processId="editRow.processId" :technologyNumber="editRow.technologyNumber" :process="editRow.process"/>
    </el-dialog>
    <!--   标签样式    -->
    <el-dialog
        id="titleStyle"
        :title="$t('processCard.labelStyle')"
        style="width: 90%;height:93%;margin-top: 3vh "
        :close-on-click-modal="false"
        :close-on-press-escape="false"
        v-model="titleStyleVisible">
      <!--      <tag-style style="width: 100%;height: 100%"/>-->
      <tag-style-designer style="width: 100%;height: 100%"
                          :faceOrientation="labelRow.faceOrientation"
                          :lableType="labelRow.lableType"
                          :list="labelRow.list"
                          :type="labelRow.type"/>
    </el-dialog>
  </div>
</template>
north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
@@ -8,19 +8,19 @@
  columns:[
    {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: 'reportingWorkTime', width: 120, title: t('reportingWorks.reportingWorkTime'), sortable: true, },
    {field: '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: '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' }},
    {field: 'breakageType', width: 100,title: t('reportingWorks.breakageType'), sortable: true,showOverflow:"ellipsis"},
    {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"},
    {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true},
    {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true},
    {field: 'order.project', width: 120,title: t('order.project'), sortable: true},
    {field: 'order.orderId',width: 120, title: t('order.orderId'), sortable: true},
    {field: 'orderGlassDetail.glassChild',width: 120, title: t('reportingWorks.glassChild'), sortable: true},
    {field: 'project', width: 120,title: t('order.project'), sortable: true},
    {field: 'orderId',width: 120, title: t('order.orderId'), sortable: true},
    {field: 'glassChild',width: 120, title: t('reportingWorks.glassChild'), sortable: true},
  ],//表格表头字段
  data:[],//表格数据
  url :'/report/crossProcessBreaking',
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
@@ -73,7 +73,7 @@
    filterMethod: filterChanged},
  {field: 'quantity', width: 90,title: t('order.quantity')},
  {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
  {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
  // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
  {field: 'inventory',width: 120, title: t('report.inventoryNum')},
  {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
]
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
@@ -63,15 +63,15 @@
    slots: {filter: 'num1_filter'},
    filterMethod: filterChanged},
  {field: 'product_name', width: 120,title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'child_width',width: 110, title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'child_width',width: 110, title: t('order.width')},
  {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: t('order.quantity')},
  {field: 'technology_number',width: 90, title: t('processCard.technologyNumber')},
  {field: 'glass_child',width: 120, title: t('reportingWorks.glassChild')},
  {field: 'inventoryNum',width: 120, title: t('report.inventoryNum')},
  {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
  {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
  {field: 'area',width: 120, title: t('report.area')},
  // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
  // {field: 'area',width: 120, title: t('report.area')},
]
//需要合并的列
let column = [1,2,3]
@@ -216,7 +216,7 @@
    </div>
    <vxe-grid
        height="400px"
        height="100%"
        @filter-change="filterChanged"
        class="mytable-scrollbar"
        ref="xGrid"
@@ -256,7 +256,7 @@
<style scoped>
.main-div-customer{
  width: 99%;
  height: 100%;
  height: 95%;
}
#selectForm {
  width: 60%;
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
@@ -50,8 +50,8 @@
    public Result getOrderReport(@PathVariable Integer pageNum,
                                 @PathVariable Integer pageSize,
                                 @PathVariable List<String> selectDate,
                                 @RequestBody DamageDetails damageDetails) {
        return Result.seccess(reportService.crossProcessBreakingSv(pageNum, pageSize, selectDate, damageDetails));
                                 @RequestBody CrossProcessBreakingDTO crossProcessBreakingDTO) {
        return Result.seccess(reportService.crossProcessBreakingSv(pageNum, pageSize, selectDate, crossProcessBreakingDTO));
    }
north-glass-erp/src/main/java/com/example/erp/dto/pp/CrossProcessBreakingDTO.java
@@ -19,6 +19,8 @@
    private String responsibleProcess;
    @ExcelProperty("责任班组")
    private String responsibleTeam;
    @ExcelProperty("报工工序")
    private String thisProcess;
    @ExcelProperty("次破类型")
    private String breakageType;
    @ExcelProperty("次破原因")
@@ -31,6 +33,10 @@
    private String project;
    @ExcelProperty("销售单号")
    private String orderId;
    @ExcelProperty("流程卡号")
    private String processId;
    @ExcelProperty("单片名称")
    private String glassChild;
    @ExcelProperty("编号")
    private String code;
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
@@ -17,9 +17,9 @@
    List<Map<String, String>> processCardProgressMp(String orderId);
    List<DamageDetails> getProcessBreaking(Integer offset, Integer pageSize, String startDate, String endDate, DamageDetails damageDetails);
    List<CrossProcessBreakingDTO> getProcessBreaking(Integer offset, Integer pageSize, String startDate, String endDate, CrossProcessBreakingDTO crossProcessBreakingDTO);
    Map<String, Integer> getProcessBreakingTotal(Integer offset, Integer pageSize, String startDate, String endDate, DamageDetails damageDetails);
    Map<String, Integer> getProcessBreakingTotal(Integer offset, Integer pageSize, String startDate, String endDate, CrossProcessBreakingDTO crossProcessBreakingDTO);
    List<Map<String, String>> workInProgressMp(
            Integer offset, Integer pageSize,
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -3,10 +3,7 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.erp.dto.pp.DamageReportDTO;
import com.example.erp.dto.pp.ScheduleProductionScheduleDTO;
import com.example.erp.dto.pp.TeamOutputDTO;
import com.example.erp.dto.pp.WorkInProgressDTO;
import com.example.erp.dto.pp.*;
import com.example.erp.entity.pp.DamageDetails;
import com.example.erp.entity.pp.Report;
import com.example.erp.mapper.pp.ProductionSchedulingMapper;
@@ -103,7 +100,7 @@
        return map;
    }
    public Map<String, Object> crossProcessBreakingSv(Integer pageNum, Integer pageSize, List<String> selectDate, DamageDetails damageDetails) {
    public Map<String, Object> crossProcessBreakingSv(Integer pageNum, Integer pageSize, List<String> selectDate, CrossProcessBreakingDTO crossProcessBreakingDTO) {
        Integer offset = (pageNum - 1) * pageSize;
        String endDate = LocalDate.now().toString();
        String startDate = LocalDate.now().minusDays(15).toString();
@@ -116,8 +113,8 @@
            }
        }
        Map<String, Object> map = new HashMap<>();
        map.put("data", reportMapper.getProcessBreaking(offset, pageSize, startDate, endDate, damageDetails));
        map.put("total", reportMapper.getProcessBreakingTotal(offset, pageSize, startDate, endDate, damageDetails));
        map.put("data", reportMapper.getProcessBreaking(offset, pageSize, startDate, endDate, crossProcessBreakingDTO));
        map.put("total", reportMapper.getProcessBreakingTotal(offset, pageSize, startDate, endDate, crossProcessBreakingDTO));
        List<String> list = new ArrayList<>();
        list.add(startDate);
        list.add(endDate);
north-glass-erp/src/main/java/com/example/erp/service/pp/ReworkService.java
@@ -59,7 +59,6 @@
        for (Map<String, Object> item : ReworkMap) {
            item.put("reworkTeam", "");
            List<BasicDataProduce> basicCategory = new ArrayList<>();
            List<BasicDataProduce> basicDataProduceList = basicDateProduceMapper.SelectWorkBasicTeams(item.get("reworkProcesses").toString());
            for (BasicDataProduce basicDataProduce : basicDataProduceList) {
                if (Objects.equals(basicDataProduce.getBasicData().getBasicName(), item.get("reworkProcesses"))) {
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -50,20 +50,19 @@
    </resultMap>
    <resultMap id="damageDetailsTableMap" type="com.example.erp.entity.pp.DamageDetails">
    <resultMap id="damageDetailsTableMap" type="com.example.erp.dto.pp.CrossProcessBreakingDTO">
        <result column="responsible_process" property="responsibleProcess"/>
        <result column="responsible_team" property="responsibleTeam"/>
        <result column="breakage_type" property="breakageType"/>
        <result column="breakage_reason" property="breakageReason"/>
        <result column="breakage_quantity" property="breakageQuantity"/>
        <result column="area" property="area"/>
        <result column="reporting_work_id" property="reportingWork.reportingWorkId"/>
        <result column="reporting_work_time" property="reportingWork.reportingWorkTime"/>
        <result column="this_process" property="reportingWork.thisProcess"/>
        <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="reporting_work_time" property="reportingWorkTime"/>
        <result column="this_process" property="thisProcess"/>
        <result column="project" property="project"/>
        <result column="order_id" property="orderId"/>
        <result column="glass_child" property="glassChild"/>
        <result column="process_id" property="processId"/>
        <result column="code" property="code"/>
    </resultMap>
@@ -237,6 +236,21 @@
          and dd.available = 0
          and reviewed_state != 2
          and rw.this_process != dd.responsible_process
        <if test="crossProcessBreakingDTO.code != null and crossProcessBreakingDTO.code != ''">
            and JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) regexp #{crossProcessBreakingDTO.code}
        </if>
        <if test="crossProcessBreakingDTO.processId != null and crossProcessBreakingDTO.processId != ''">
            and rw.process_id regexp #{crossProcessBreakingDTO.processId}
        </if>
        <if test="crossProcessBreakingDTO.thisProcess != null and crossProcessBreakingDTO.thisProcess != ''">
            and rw.this_process regexp #{crossProcessBreakingDTO.thisProcess}
        </if>
        <if test="crossProcessBreakingDTO.responsibleProcess != null and crossProcessBreakingDTO.responsibleProcess != ''">
            and dd.responsible_process regexp #{crossProcessBreakingDTO.responsibleProcess}
        </if>
        <if test="crossProcessBreakingDTO.responsibleTeam != null and crossProcessBreakingDTO.responsibleTeam != ''">
            and dd.responsible_team regexp #{crossProcessBreakingDTO.responsibleTeam}
        </if>
        GROUP BY dd.id
        order by dd.id desc
        limit #{offset},#{pageSize}