chenlu
3 天以前 2a243dc744898018adf7523dcb2d10ded968b432
流程卡进度打印功能
6个文件已修改
173 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProgressProcessCard.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelTwo.vue
@@ -82,13 +82,14 @@
          for (const group of list.value) {
            // 遍历每组中的数据(替换 j)
            for (const item of group.data) {
              console.log(item)
              const { quantity, newList } = item;
              // 跳过 quantity 为 0 或无效的情况
              console.log(quantity)
              if (!quantity || quantity <= 0) continue;
              // 处理 newList:确保是数组,不足时用空对象兜底
              const safeNewList = Array.isArray(newList) ? newList : [];
              // 循环 quantity 次,添加数据到 lastList
              for (let k = 0; k < quantity; k++) {
                // 深拷贝 item,避免重复引用(关键!)
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -92,7 +92,6 @@
        //流程卡
        request.post(`/processCard/getSelectPrinting/${merge}/${like}/${merges}/${props.flashback}/${compound}/${props.landingSequence}`, data.value).then((res) => {
          if (res.code == 200) {
            console.log(res.data.data)
            load(res.data.data)
          } else {
            ElMessage.warning(res.msg)
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintProgressProcessCard.vue
@@ -15,6 +15,8 @@
import PrintProcess from "@/components/pp/PrintProcess.vue";
import PrintCustomLabelXJ from "@/components/pp/PrintCustomLabelTwo.vue";
import companyInfo from "@/stores/sd/companyInfo";
import {createTemplate} from "@/hook/createTemplateTag";
import {hiprint} from "vue-plugin-hiprint";
//语言获取
const { t } = useI18n()
let router=useRouter()
@@ -24,6 +26,8 @@
const dialogTableVisible = ref(false)
const dialogTableVisibleLabel = ref(false)
let lastList = ref([])
let props = defineProps({
  orderId:null
@@ -86,6 +90,84 @@
  }
})
//标签
let labelRow = ref({
  list: null,//勾选的数据
  faceOrientation: null,//内外面
  type: null,//标签模板
  lableType: null//标签类型
})
//选中内容
let selectRecords = ref(null)
//合片流程卡打印下拉选项
const printMerge = ref('')
const printMergeOptions = [{}]
//倒叙
let  flashback = ref(1)
//落架顺序
let landingSequence= ref(1)
//合架打印
let compound = ref(null)
const printContent = ref({
  id: 'child',
})
let hiprintTemplate = ref(null)
const printContentLabel = ref({
  id: 'childLabel',
})
const printContentLabelSemi = ref({
  id: 'childLabelSemi',
})
const changeTag = () => {
  hiprintTemplate.value = new hiprint.PrintTemplate({});
  hiprintTemplate.value.design("#hiprint-printTemplate1",{grid:true});
  const json = tag.value.value
  hiprintTemplate.value.update(json)
}
const printOrder = (type) => {
  printNumberLabel()
  const list = tag.value.value
  list.panels[0].printElements.forEach(element => {
    element.options.fontFamily = 'Arial'
    if( element.options.field !== undefined){
      if(type===3 ){
        element.options.hideTitle = true
      }
    }
    if(type!==3){
      element.options.hideTitle = false
      if( element.options.field === undefined){
        element.options.hideTitle = true
      }
    }
  })
  //hiprintTemplate.value.update(list)
  let object =  JSON.parse(JSON.stringify(lastList.value))
  //判断是否为表格
  let columnsNum = null
  if(list.panels[0].printElements[0].options.field==='table'){
    object = {table:lastList.value}
    columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1)
  }
  //判断是否有 嵌套自定义纸张
  if(tag.value.tagHeight && tag.value.tagWidth){
    const print =createTemplate(list,object,tag.value.tagWidth,tag.value.tagHeight)
    hiprintTemplate.value.update(print.template)
    object = print.printData
  }
  hiprintTemplate.value.print(object)
}
//需要合并的列
let column = [1,3,8]
@@ -305,9 +387,9 @@
    //   delete obj.print_status;
    // });
    let type = tag.value.name
    let faceOrientation = stateValue.value
    let lableTypes = lableType.value
    let lableTitle = lableType.text
    let faceOrientation = ''
    let lableTypes = 1
    let lableTitle = ''
    if ($grid) {
      switch (code) {
          //打印流程卡
@@ -329,7 +411,7 @@
          printRow.value.printMergeVal = printMerge.value
          printRow.value.like = null
          printRow.value.merge = company.flowCardMerge
          printRow.value.printFc= printFc
          printRow.value.printFc= true
          printRow.value.flashback = flashback.value
          printRow.value.landingSequence=landingSequence.value
          printRow.value.compound = compound.value
@@ -356,7 +438,7 @@
              id += selectRecords[i].id + "|"
            }
          }
          lastList.value = []
          labelRow.value.list = JSON.stringify(selectRecords)
          labelRow.value.faceOrientation = faceOrientation
          labelRow.value.type = tag.value.name
@@ -385,6 +467,38 @@
const handleCellDblClick = ({ row, column, cell, $event }) => {
  VxeUI.clipboard.copy(row[column.property])
}
const selectRecordsData = ref({
  printList: []
})
// 监听流程卡打印完成事件
const printNumber = () => {
  selectRecordsData.value.printList = selectRecords
  let printState = 0
  request.post(`/processCard/updatePrintState/${printState}`, selectRecordsData.value).then((res) => {
    if (res.code == 200 && res.data === true) {
    } else {
      ElMessage.warning(t('basicData.msg.saveFail'))
    }
  })
}
// 监听标签打印完成事件
const printNumberLabel = () => {
  selectRecordsData.value.printList = selectRecords
  request.post(`/tagStyle/updatePrintNumber`, selectRecordsData.value).then((res) => {
    if (res.code == 200 && res.data === true) {
    } else {
      ElMessage.warning(t('basicData.msg.saveFail'))
    }
  })
}
</script>
@@ -429,6 +543,7 @@
          v-bind="gridOptions"
          :merge-cells="mergeCells"
          @cell-dblclick="handleCellDblClick"
          v-on="gridEvents"
      >
        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
@@ -534,6 +649,33 @@
  height: calc(100% - 35px);
}
:deep(#sizeCheck .el-dialog__body) {
  height: 90%;
  width: 100%;
}
:deep(#sizePrintCalrd .el-dialog__body) {
  height: 85%;
  width: 100%;
  overflow-y: auto;
}
:deep(#sizeCustom .el-dialog__body) {
  height: 85%;
  width: 100%;
  overflow-y: auto;
}
:deep(#sizeCustomSemi .el-dialog__body) {
  height: 85%;
  width: 100%;
  overflow-y: auto;
}
:deep(#titleStyle .el-dialog__body){
  height: 93%;
  width: 100%;
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -477,9 +477,11 @@
              if (val<row.completedQuantityComputed){
                         //库存数量、已入库数量
                if (val>(row.inventory_quantity-row.received_quantity)){
                  if (totalQuantity-val>(row.inventory_quantity-row.received_quantity)){
                  return new Error(`val
                                  <=
                                  ${row.inventory_quantity-row.received_quantity}`)
                  }
                }else {
                  if (val < (row.inventory_quantity-row.received_quantity)){
                        //完工总数、本次完工数、已入库数量
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -741,7 +741,11 @@
                    Map<String, Object> itemmap = new HashMap<>();
                    Integer sumQuantity = flowCardMapper.getSumQuantity(flowCard.getOrderId());
                    List<Map<String, Object>> details = flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity());
                    Integer printQuantity = flowCard.getPrintQuantity();
                    if (printQuantity==null){
                        printQuantity=0;
                    }
                    List<Map<String, Object>> details = flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber(), printQuantity);
                    for (Map<String, Object> detail : details) {
                        detail.put("sumQuantity", sumQuantity);
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1156,19 +1156,19 @@
               od.processing_note                                    as processingNote,
               width,
               height,
               #{printQuantity}  as quantity,
               if(#{printQuantity}>0 ,#{printQuantity},fc.quantity)  as quantity,
               CONCAT(
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',#{printQuantity} )      as size,
                       ' = ',if(#{printQuantity}>0 ,#{printQuantity},fc.quantity) )      as size,
               CONCAT(
                   od.order_number,')      ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                       ' = ',#{printQuantity} )      as numberSize,
                       ' = ',if(#{printQuantity}>0 ,#{printQuantity},fc.quantity) )      as numberSize,
            CONCAT(
            od.order_number,')','   ',
            TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
@@ -3979,7 +3979,8 @@
        c.print_status,
        c.print_number,
        o.project,
        o.customer_name
        o.customer_name,
        b.process
        from pp.flow_card as c
        left join