guoyujie
2025-07-08 7104751e2f26872d4891d01d42ee88cf19715d01
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
25个文件已修改
596 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/天津北玻.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/常州吉利.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/新疆恒鑫.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/洛阳北玻.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/companySet/金华天成.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/SplittingDetailsOutside.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 10 ●●●● 补丁 | 查看 | 原始文档 | 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 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 176 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue
@@ -144,6 +144,18 @@
                  </tr>
                </template>
              </template>
              <tr style="border: 0;font-size: 10px">
                <td colspan="5" style="border: 0;">
                  <div style="display:flex;">
                    <div>本架数量</div>&nbsp;&nbsp;&nbsp;&nbsp;
                    <div>{{item.detail[0].quantity}}</div>&nbsp;&nbsp;&nbsp;
                    <div>面积</div>&nbsp;&nbsp;&nbsp;&nbsp;
                    <div>{{item.detail[0].area}}(m²)</div>&nbsp;&nbsp;&nbsp;
                    <div>重量</div>&nbsp;&nbsp;&nbsp;&nbsp;
                    <div>{{item.detail[0].weight}}(kg)</div>
                  </div>
                </td>
              </tr>
              <!--        <tr style="width: 100%;" v-for="(itemFlows,index) in item.detail" :key="index">
                        <td>合计</td>
@@ -154,8 +166,7 @@
                      </tr>-->
              </tbody>
              <tfoot >
              <tr style="border: 0;font-size: 10px">
              <tr style="border: 0;font-size: 8px">
                <td colspan="5" style="border: 0;">
                  <div style="display:flex;">
                    <div>地址:洛阳国家高新技术开发区张庄</div>&nbsp;&nbsp;&nbsp;&nbsp;
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -35,6 +35,7 @@
  merges:null,
  printFc:null,
  flashback:null,
  landingSequence:null,
  compound:null
})
@@ -76,7 +77,7 @@
let flowCardCount = ''
onMounted(() => {
      if(props.printProject!=null){
        request.post(`/processCard/getSelectPrintProject/${printProject}/${merges}/${props.flashback}`).then((res) => {
        request.post(`/processCard/getSelectPrintProject/${printProject}/${merges}/${props.flashback}/${props.landingSequence}`).then((res) => {
          if (res.code == 200) {
            load(res.data.data)
          } else {
@@ -85,7 +86,7 @@
          }
        })
      }else{
        request.post(`/processCard/getSelectPrinting/${merge}/${like}/${merges}/${props.flashback}/${compound}`, data.value).then((res) => {
        request.post(`/processCard/getSelectPrinting/${merge}/${like}/${merges}/${props.flashback}/${compound}/${props.landingSequence}`, data.value).then((res) => {
          if (res.code == 200) {
            load(res.data.data)
          } else {
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -533,6 +533,9 @@
            addReportingWork:"报工新增",
            qualityInspectionReview:"质检审核",
        },
        msgMannerPacking:'请选择包装方式',
        saveWorkStorage:'报工入库',
        mannerPacking:'包装方式',
        glassNumber:'编号',
        glassAddress:'片标记',
        WorkReportingManagement:'报工管理',
north-glass-erp/northglass-erp/src/stores/sd/companySet/Ìì½ò±±²£.js
@@ -38,6 +38,8 @@
        printBtn:0,//打印界面三个按钮中是否显示标签打印相关按钮,0显示,1其它不显示
        printNumber:true,//多选订单打印流程卡是否显示右上角序号义乌false,其它true
        materialOutboundColor:false,//库存查询入库超过一定时间改变颜色,洛阳true,其他false
        storageBtn:false,//是否显示报工入库相关内容,洛阳true,其他false
        teamsType:false,//是否开启班组下拉框,洛阳true,其他false
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/stores/sd/companySet/³£ÖݼªÀû.js
@@ -38,6 +38,8 @@
        printBtn:0,//打印界面三个按钮中是否显示标签打印相关按钮,0显示常州,1天津其它不显示
        printNumber:true,//多选订单打印流程卡是否显示右上角序号义乌false,其它true
        materialOutboundColor:false,//库存查询入库超过一定时间改变颜色,洛阳true,其他false
        storageBtn:false,//是否显示报工入库相关内容,洛阳true,其他false
        teamsType:false,//是否开启班组下拉框,洛阳true,其他false
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/stores/sd/companySet/н®ºãöÎ.js
@@ -38,6 +38,8 @@
        printBtn:1,//打印界面三个按钮中是否显示标签打印相关按钮,0显示常州,1天津其它不显示
        printNumber:true,//多选订单打印流程卡是否显示右上角序号义乌false,其它true
        materialOutboundColor:false,//库存查询入库超过一定时间改变颜色,洛阳true,其他false
        storageBtn:false,//是否显示报工入库相关内容,洛阳true,其他false
        teamsType:false,//是否开启班组下拉框,洛阳true,其他false
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/stores/sd/companySet/ÂåÑô±±²£.js
@@ -39,6 +39,8 @@
        flowCardMerge: 0,//流程卡合片打印
        printBtn:1,//打印界面三个按钮中是否显示标签打印相关按钮,0显示常州,1天津其它不显示
        materialOutboundColor:true,//库存查询入库超过一定时间改变颜色,洛阳true,其他false
        storageBtn:true,//是否显示报工入库相关内容,洛阳true,其他false
        teamsType:true,//是否开启班组下拉框,洛阳true,其他false
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/stores/sd/companySet/½ð»ªÌì³É.js
@@ -40,6 +40,8 @@
        printBtn:1,//打印界面三个按钮中是否显示标签打印相关按钮,0显示常州,1天津其它不显示
        printNumber:true,//多选订单打印流程卡是否显示右上角序号义乌false,其它true
        materialOutboundColor:false,//库存查询入库超过一定时间改变颜色,洛阳true,其他false
        storageBtn:false,//是否显示报工入库相关内容,洛阳true,其他false
        teamsType:false,//是否开启班组下拉框,洛阳true,其他false
        //天津
        printLabel: {
            custom: (item1) => {
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -68,6 +68,7 @@
  merge: null,
  printFc:null,
  flashback:null,
  landingSequence:null,
  compound:null
})
@@ -81,6 +82,8 @@
//倒叙
let  flashback = ref(1)
//落架顺序
let landingSequence= ref(1)
//合架打印
let compound = ref(null)
@@ -421,6 +424,7 @@
          printRow.value.merge = company.flowCardMerge
          printRow.value.printFc= printFc
          printRow.value.flashback = flashback.value
          printRow.value.landingSequence=landingSequence.value
          printRow.value.compound = compound.value
          // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}})
          if(company.companyName=='常州市吉利玻璃有限公司'){
@@ -711,6 +715,10 @@
function onFlashbackChange(checked) {
  flashback.value = checked ? 0 : 1
}
function onlandingSequenceChange(checked) {
  landingSequence.value = checked ? 0 : 1
}
</script>
<template>
@@ -816,6 +824,12 @@
          >
            {{ t('processCard.flashback') }}
          </el-checkbox>
          <el-checkbox
              :model-value="landingSequence === 0"
              @change="onlandingSequenceChange"
          >
            {{ t('processCard.landingSequence') }}
          </el-checkbox>
          <el-input
              v-model="compound"
              :placeholder="$t('processCard.printCompound')"
@@ -881,6 +895,7 @@
          :printFc="printRow.printFc"
          :merges="printRow.merge"
          :flashback = "printRow.flashback"
          :landingSequence = "printRow.landingSequence"
          :compound = "printRow.compound"
          style="width: 100%;height: 100%"/>
    </el-dialog>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -223,6 +223,7 @@
  hiprintTemplate.value.print(object)
}
const orderOtherMoney = ref(null)
const {currentRoute} = useRouter()
const route = currentRoute.value
@@ -241,7 +242,21 @@
        newDataCollection.push(item);
      })
    }
    orderOtherMoney.value = res.data.orderOtherMoney
    orderOtherMoney.value.forEach(item => {
      let column = {
        field: `${item.column}`,
        width: 100,
        title: item.alias,
        filters: [{data: ''}],
        slots: {filter: 'num1_filter'},
        filterMethod: filterChanged,
        sortable: true
      }
      gridOptions.columns.push(column)
    })
    titleSelectJson.value.dataType = res.data.type
    xGrid.value.reloadData(newDataCollection)
    gridOptions.loading = false
north-glass-erp/northglass-erp/src/views/pp/report/SplittingDetailsOutside.vue
@@ -96,6 +96,7 @@
  })
}
const orderOtherMoney = ref(null)
//点击查询
const getWorkOrder = () => {
  let inputVal = form.orderId
@@ -108,6 +109,21 @@
      // total.dataTotal = res.data.total.total*1
      // total.pageTotal= res.data.total.pageTotal
      // pageTotal.value = res.data.total
      orderOtherMoney.value = res.data.orderOtherMoney
      orderOtherMoney.value.forEach(item => {
        let column = {
          field: `${item.column}`,
          width: 100,
          title: item.alias,
          filters: [{data: ''}],
          slots: {filter: 'num1_filter'},
          filterMethod: filterChanged,
          sortable: true
        }
        gridOptions.columns.push(column)
      })
      produceList = deepClone(res.data.data)
      xGrid.value.reloadData(produceList)
    } else {
@@ -189,7 +205,7 @@
    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
    {
      field: 'processId', width: 120, title: t('processCard.processId'), filters: [{data: ''}],
      field: 'processId', width: 135, title: t('processCard.processId'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
@@ -217,8 +233,12 @@
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {field: 'childWidth', width: 120, title: t('order.width')},
    {field: 'childHeight', width: 120, title: t('order.height')},
    {field: 'childWidth', width: 120, title: t('order.width'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'childHeight', width: 120, title: t('order.height'), filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'quantity', width: 120, title: t('order.quantity')},
    {field: 'area', width: 100, title: t('order.area')},
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
@@ -89,6 +89,12 @@
  dataTotal: 0,
  pageSize: 100
})
let newItem= ref({
  basic_name: '全部',
  basic_type: 'product',
  basic_category: 'process',
  id: "001"
})
//定义接收加载表头下拉数据
const titleSelectJson = ref({
  processType: [],
@@ -108,6 +114,7 @@
    produceList = produceList.value.concat(deepClone(res.data.data))
    titleSelectJson.value.processType = res.data.process
    titleSelectJson.value.processType.splice(0,1)
    titleSelectJson.value.processType.unshift(newItem.value)
    //xGrid.value.reloadData(produceList)
    gridOptions.loading = false
  } else {
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -55,6 +55,8 @@
  classes: '',
  //责任工序
  responsibleProcess: '',
  //包装方式
  packagingMethod:'',
  order: {
    //客户编号
    customerId: '',
@@ -90,6 +92,39 @@
})
let btnValue=company.storageBtn
let teamsTypeValue=company.teamsType
//是否点击报工入库
let storageBtn = ref(false)
//箱号 åº“位 å¤‡æ³¨
const storageRegion = ref(null);
const container = ref(null);
const remark = ref(null);
//包装方式
const mannerPacking = ref(null)
const mannerPackingOp = [
  // {
  //   value: t('reportingWorks.early'),
  //   label: t('reportingWorks.early'),
  // },
  // {
  //   value: t('reportingWorks.nightShift'),
  //   label: t('reportingWorks.nightShift'),
  // },
   {
    value: '木箱',
    label: '木箱',
  },
  {
    value: '铁架',
    label: '铁架',
  },
  {
    value: '倒架',
    label: '倒架',
  },
]
let inputDisabled = ref(false)
@@ -104,6 +139,7 @@
          && titleUploadData.value.thisProcess!=null){
        getWork()
        getQuantity()
      }
    }
  }
@@ -397,6 +433,7 @@
      // {code: 'sameOneDamage', name: '次破一列相同'},
      {code: 'saveReportingWork', name: t('basicData.save'), status: 'primary', icon: 'vxe-icon-save',disabled:true},
      {code: 'saveReportingWorkReview', name: t('reportingWorks.saveAndReview'), status: 'primary', icon: 'vxe-icon-save',disabled:true},
      {code: 'saveWorkStorage', name: t('reportingWorks.saveWorkStorage'), status: 'primary', icon: 'vxe-icon-save'},
    ],
    // import: false,
    // export: true,
@@ -473,6 +510,46 @@
          // })
          break
        }
        case 'saveWorkStorage':{
          if(xGrid.value.getTableData().fullData.length===0){
            ElMessage.warning(t('reportingWorks.selectProcessCardData'))
            return
          }
          const device = titleUploadData.value.deviceName
          if(device === null || device === undefined || device === ''){
            ElMessage.error(t('reportingWorks.selectWorkReportingEquipment'))
            return
          }
          const teamsGroupsName = titleUploadData.value.teamsGroupsName
          if(teamsGroupsName === null || teamsGroupsName === undefined || teamsGroupsName === ''){
            ElMessage.error(t('reportingWorks.selectWorkReportingTeam'))
            return
          }
          if (mannerPacking.value === null || mannerPacking.value === undefined || mannerPacking.value === ''){
            ElMessage.error(t('reportingWorks.msgMannerPacking'))
            return
          }
          const parts = technologicalProcess.split('->');
          const last = parts[parts.length - 1];
          let processId = titleUploadData.value.processId
          //匹配“/”前后字符串
          const regex =  /([^\/]+)\/([^\/]+)/;
          //查找匹配的字符串
          const resultProcessId = processId.match(regex);
          //流程卡号
          let processIdStr = resultProcessId[1];
          //层号
          let technologyStr = resultProcessId[2];
          if (last != titleUploadData.value.thisProcess){
            ElMessage.error('请选择最后工序报工入库')
            return
          }
          storageBtn.value = true
          //报工新增
          saveReportingWork(0,'save')
        }
      }
    }
@@ -816,6 +893,7 @@
//第一次加载数据
let groupChangeProcess = ref(false)//用于本班组显示问题
const initTiltle = async () => {
  hideButton()
  await request.post(`/reportingWork/selectProcess/${user.user.userId}`).then((res) => {
    if (res.code == 200) {
      titleSelectJson.value.processType = res.data.process
@@ -907,7 +985,8 @@
      return false
    }
  }
//包装方式
  titleUploadData.value.packagingMethod = mannerPacking.value
  titleUploadData.value.creator = user.user.userName
  titleUploadData.value.creatorId = user.user.userId
  const requestDetailData = xGrid.value.getTableData().fullData.filter((row) => {
@@ -943,6 +1022,10 @@
  request.post(`/reportingWork/saveReportingWork`,requestData).then(res =>{
    if (res.code == 200){
      ElMessage.success(t('reportingWorks.successfulJobApplication'))
      //报工入库
      if(storageBtn.value == true){
        getStorageWork();
      }
      router.push({path:'/main/reportingWorks/AddReportingWork',query:{processId:titleUploadData.value.processId,random:Math.random()}})
    }else{
      const errorObj = JSON.parse(res.msg)
@@ -1127,7 +1210,10 @@
      //设备下拉框
      titleSelectJson.value.deviceType = res.data.device
      //班组下拉框
      //titleSelectJson.value.teamsType = res.data.teams
      if (teamsTypeValue==true){
        titleSelectJson.value.teamsType = res.data.teams
      }
      //当前流程卡工序
      titleSelectJson.value.thisProcessType = res.data.thisProcess
      //历史班组
@@ -1360,6 +1446,88 @@
  }
})
//报工入库方法
const getStorageWork = () => {
  let processId = titleUploadData.value.processId
  //匹配“/”前后字符串
  const regex =  /([^\/]+)\/([^\/]+)/;
  //查找匹配的字符串
  const resultProcessId = processId.match(regex);
  //流程卡号
  let processIdStr = resultProcessId[1];
  //层号
  let technologyStr = resultProcessId[2];
  //开始处理入库需要的数据
  let rawData  = xGrid.value.getTableData().fullData
  const seen = new Set();
  const result = rawData.filter(item => {
    // 1. å…ˆæŠŠ completedQuantity ä¸º 0 çš„剔除
    if (item.completedQuantity === 0) {
      return false;
    }
    // 2. é‡åˆ°ç›¸åŒ order_number,只保留第一次,后面都丢弃
    if (seen.has(item.order_number)) {
      return false;
    }
    seen.add(item.order_number);
    return true;
  });
  // ç»™æ¯æ¡è®°å½•追加 order å­—段
  const resultData = result.map(item => ({
    ...item,
    order: {
      orderId: titleUploadData.value.orderId
    },
    processId:processIdStr,
    orderNumber:item.order_number
  }));
  let flowData = ref({
    decValue:company.decValue,
    userId: user.user.userId,
    userName: user.user.userName,
    storageRegion: storageRegion.value,
    remark: remark.value,
    container: container.value,
    flowCard: resultData,
  })
  //调用入库接口
  request.post("/finishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => {
    if(res.code==200 && res.data==="true"){
      ElMessage.success(t('productStock.receivedSuccessfully'))
     // router.push({path:'/maiggn/productStock/CreateProductStock',query:{random:Math.random()}})
    }else if(res.data==="false1"){
      ElMessage.warning(t('basicData.msg.quantityError'))
    }else if(res.data==="false2"){
      ElMessage.warning(t('basicData.msg.dataDoesNotExist'))
    }else{
      ElMessage.warning(t('productStock.entryFailure'))
    }
  }).catch((err)=>{
    ElMessage.error(t('basicData.msg.ServerConnectionError'))
    router.push("/login")
  })
}
const hideButton = () => {
  if (btnValue == false){
    const els = document.querySelectorAll('.inventory_content');
    els.forEach(el => {
      el.style.display = 'none';
    });
  }
  gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
    // å¦‚æžœ type ä¸ä¸ºç©ºæ—¶ï¼Œéšè— print æŒ‰é’®
    if (btnValue == false && button.code === 'saveWorkStorage') {
      return false;  // éšè— print æŒ‰é’®
    }
    // é»˜è®¤è¿”回 true,表示保留按钮
    return true;
  });
};
</script>
<template>
@@ -1384,6 +1552,23 @@
      &nbsp;
      <el-button :disabled="disabledFlag" :loading="loadingFlag" @click="reviewReportingWork" type="primary">{{$t('reportingWorks.passAudit')}}
      </el-button>
      &nbsp;
      <span class="inventory_content">
        <el-select style="width: 100px" v-model="mannerPacking" class="processesSt" :placeholder="$t('reportingWorks.mannerPacking')">
          <el-option
              v-for="item in mannerPackingOp"
              :key="item.value"
              :label="item.label"
              :value="item.value"
          />
        </el-select>&nbsp;
        <el-input style="width: 100px" v-model="container" class="m-2" :placeholder="$t('productStock.pleaseEnterTheBoxNumber')">
      </el-input>&nbsp;
        <el-input style="width: 100px" v-model="storageRegion" class="m-2" :placeholder="$t('productStock.pleaseEnterTheStorageLocation')">
      </el-input>&nbsp;
        <el-input style="width: 200px" v-model="remark" class="m-2" :placeholder="$t('productStock.pleaseEnterANote')">
        </el-input>
      </span>
<!--      <el-button type="primary">审核不通过</el-button>-->
      &nbsp;
      <label>{{technologicalProcess}}</label>
@@ -1477,8 +1662,8 @@
            <el-option
                v-for="item in titleSelectJson['teamsType']"
                :key="item.id"
                :label="item.basicName"
                :value="item.basicName"
                :label="item.user_name"
                :value="item.user_name"
            />
          </el-select>
        </el-col>
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -187,22 +187,23 @@
    }
    @ApiOperation("打印流程卡数据查询接口")
    @PostMapping("/getSelectPrinting/{printMerge}/{printLike}/{merge}/{flashback}/{compound}")
    @PostMapping("/getSelectPrinting/{printMerge}/{printLike}/{merge}/{flashback}/{compound}/{landingSequence}")
    public Result getSelectPrinting(
            @PathVariable String printMerge,
            @PathVariable String printLike,
            @PathVariable String merge,
            @PathVariable String flashback,
            @PathVariable String compound,
            @PathVariable String landingSequence,
            @RequestBody Map<String, Object> object) {
        return Result.seccess(flowCardService.getSelectPrintingSv(object,printMerge,printLike,merge,flashback,compound));
        return Result.seccess(flowCardService.getSelectPrintingSv(object,printMerge,printLike,merge,flashback,compound,landingSequence));
    }
    @ApiOperation("工程打印流程卡数据查询接口")
    @PostMapping("/getSelectPrintProject/{printProject}/{merge}/{flashback}")
    @PostMapping("/getSelectPrintProject/{printProject}/{merge}/{flashback}/{landingSequence}")
    public Result getSelectPrintProject(
            @PathVariable String printProject,@PathVariable String merge,@PathVariable String flashback) {
        return Result.seccess(flowCardService.getSelectPrintProject(printProject,merge,flashback));
            @PathVariable String printProject,@PathVariable String merge,@PathVariable String flashback,@PathVariable String landingSequence) {
        return Result.seccess(flowCardService.getSelectPrintProject(printProject,merge,flashback,landingSequence));
    }
    @ApiOperation("打印标签数据查询接口")
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -83,6 +83,7 @@
            @RequestBody ReportingWork reportingWork){
        return Result.seccess(reportingWorkService.selectReportingWorkSv(pageNum,pageSize,selectTime1,selectTime2,orderId,reportingWork));
    }
    @ApiOperation("删除报工接口")
@@ -182,10 +183,13 @@
        return Result.seccess(reportingWorkService.selectReportingWorkRecordByPhoneSv(selectPam));
    }
    @ApiOperation("手机查询本工序设备")
@ApiOperation("手机查询本工序设备")
    @PostMapping("/selectEquipmentByProcess/{process}")
    public Result selectEquipmentByProcess(@PathVariable String process)    {
        return Result.seccess(reportingWorkService.selectEquipmentByProcessSv(process));
    }
    }@ApiOperation("报工入库接口")
    @PostMapping("/saveWorkStorage")
    public Result saveWorkStorage( @RequestBody Map<String,Object>  object){
        return Result.seccess(reportingWorkService.saveWorkStorage(object));
}
    }}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -83,7 +83,7 @@
    List<Map<String, String>> getPrimaryLists(String processId, String technologyNumber, String glassChild, String process, String orderId,Integer quantity);
    List<Map<String, Object>> getDetailList(String processId, String technologyNumber, String process, String flashback);
    List<Map<String, Object>> getDetailList(String processId, String technologyNumber, String process, String flashback, String landingSequence);
    List<Map<String, Object>> getDetailLists(String processId, String technologyNumber, String process,Integer orderNumber);
@@ -137,9 +137,9 @@
    List<Map<String, String>> selectReworkPrintMp(Date selectTime1, Date selectTime2, FlowCard flowCard);
    List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber, String process, String flashback);
    List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber, String process, String flashback, String landingSequence);
    List<Map<String, Object>> getDetailListMerge(String processId, String process, String flashback);
    List<Map<String, Object>> getDetailListMerge(String processId, String process, String flashback, String landingSequence);
    List<Map<String, Object>> getDetailListLikes(String processId, String technologyNumber, String process,String printProject,Integer quantity);
@@ -258,7 +258,7 @@
    Integer getSumQuantity(String orderId);
    List<Map<String, Object>> getDetailCompoundList(String processId, String technologyNumber, String process, String flashback, String compound);
    List<Map<String, Object>> getDetailCompoundList(String processId, String technologyNumber, String process, String flashback, String compound, String landingSequence);
    List<Map<String, Object>> getDetailListLikeCompound(String processId, String s, String process, String flashback, String compound);
    List<Map<String, Object>> getDetailListLikeCompound(String processId, String s, String process, String flashback, String compound, String landingSequence);
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
@@ -106,6 +106,8 @@
    List<WorkInProgressDTO> workInProgressProcessMpList1(Integer offset, Integer pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
    List<WorkInProgressDTO> exportWorkInProgressMpdataList2(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
@@ -16,7 +16,7 @@
    List<BasicDataProduce> SelectWorkBasicDeviceMp(String process);
    List<BasicDataProduce> SelectWorkBasicTeamsMp(String process);
    List<Map<String,String>> SelectWorkBasicTeamsMp(String process);
    String SelectTechnologicalProcess(String processIdStr, String technologyStr);
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -296,7 +296,7 @@
        }
    }
    public Map<String, Object> getSelectPrintingSv(Map<String, Object> object, String printMerge, String printLike, String merge, String flashback, String compound) {
    public Map<String, Object> getSelectPrintingSv(Map<String, Object> object, String printMerge, String printLike, String merge, String flashback, String compound, String landingSequence) {
        if (printMerge == null) {
            printMerge = "";
        }
@@ -334,10 +334,10 @@
                        if (compound == null
                                || "null".equals(compound)
                                || compound.trim().isEmpty()){
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(),flashback);
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(),flashback,landingSequence);
                            itemmap.put("detailList", detailList);
                        }else {//有需要同架的层
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailCompoundList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(),flashback,compound);
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailCompoundList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(),flashback,compound,landingSequence);
                            itemmap.put("detailList", detailList);
                        }
                    } else {
@@ -349,7 +349,7 @@
                            // å°†è¯¥ processId åŠ å…¥å·²å¤„ç†é›†åˆ
                            processedKeys.add(uniqueKey);
                            itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId()));
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListMerge(flowCard.getProcessId(), flowCard.getProcess(),flashback);
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListMerge(flowCard.getProcessId(), flowCard.getProcess(),flashback,landingSequence);
                            itemmap.put("detailList", detailList);
                        } else {
                            itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(),
@@ -360,10 +360,10 @@
                            if (compound == null
                                    || "null".equals(compound)
                                    || compound.trim().isEmpty()){
                                List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess(),flashback);
                                List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess(),flashback,landingSequence);
                                itemmap.put("detailList", detailList);
                            }else {//有需要同架的层
                                List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeCompound(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess(),flashback,compound);
                                List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeCompound(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess(),flashback,compound,landingSequence);
                                itemmap.put("detailList", detailList);
                            }
                        }
@@ -375,12 +375,12 @@
                    if (printLike.equals("") || printLike.equals("null")) {
                        itemmap.put("detail", flowCardMapper.getPrimaryListMerge(flowCard.getProcessId(), printMerge, flowCard.getOrderId()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flashback);
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flashback, landingSequence);
                        itemmap.put("detailList", detailList);
                    } else {
                        itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), printMerge, flowCard.getProcess(), flashback);
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), printMerge, flowCard.getProcess(), flashback, landingSequence);
                        itemmap.put("detailList", detailList);
                    }
                }
@@ -420,7 +420,7 @@
        return map;
    }
    public Map<String, Object> getSelectPrintProject(String printProject, String merge, String flashback) {
    public Map<String, Object> getSelectPrintProject(String printProject, String merge, String flashback, String landingSequence) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
@@ -445,7 +445,7 @@
                if (processName.equals("stepC") || processName.equals("stepD")) {//工艺是否包含夹胶中空
                    itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId()));
                    if (flowCard.getPatchState().equals(0)) {
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flashback);
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flashback, landingSequence);
                        itemmap.put("detailList", detailList);
                    } else {
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailLists(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flowCard.getOrderNumber());
@@ -464,11 +464,11 @@
                            processedKeys.add(uniqueKey);
                            itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId()));
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListMerge(flowCard.getProcessId(), flowCard.getProcess(), flashback);
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListMerge(flowCard.getProcessId(), flowCard.getProcess(), flashback, landingSequence);
                            itemmap.put("detailList", detailList);
                        } else {
                            itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId()));
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess(), flashback);
                            List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess(), flashback, landingSequence);
                            itemmap.put("detailList", detailList);
                        }
@@ -845,6 +845,7 @@
            }
        }
        map.put("data", list);
        map.put("orderOtherMoney", flowCardMapper.selectorderOtherMoney());
        map.put("type", flowCardMapper.selectType());
        return map;
    }
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -6,6 +6,7 @@
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.FlowCardMapper;
import com.example.erp.mapper.pp.ProductionSchedulingMapper;
import com.example.erp.mapper.pp.ReportMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
@@ -29,6 +30,8 @@
    private final OrderProcessDetailMapper orderProcessDetailMapper;
    private final ProductionSchedulingMapper productionSchedulingMapper;
    FlowCardMapper flowCardMapper;
    private void mergeTeamsGroupsName(
@@ -59,10 +62,11 @@
    }
    public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, ProductionSchedulingMapper productionSchedulingMapper) {
    public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, ProductionSchedulingMapper productionSchedulingMapper,FlowCardMapper flowCardMapper) {
        this.reportMapper = reportMapper;
        this.orderProcessDetailMapper = orderProcessDetailMapper;
        this.productionSchedulingMapper = productionSchedulingMapper;
        this.flowCardMapper = flowCardMapper;
    }
    //流程卡进度方法
@@ -173,10 +177,11 @@
        if ("null".equals(optionVal)) {
            optionVal = ("");
        }
        if (selectProcesses.equals("全部")){
            selectProcesses="";
        }
        Map<String, Object> map = new HashMap<>();
        List<WorkInProgressDTO> dataList2  =reportMapper.workInProgressMpdataList2(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
        if (optionVal.equals("1")){
            /* æ ¹æ®é”€å”®å•号汇总*/
            //map.put("data", reportMapper.workInProgressOrderMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
@@ -237,6 +242,7 @@
    public Map<String, Object> splittingDetailsOutsideSv(String orderId, Report report) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", reportMapper.splittingDetailsOutsideMp(orderId, report));
        map.put("orderOtherMoney", flowCardMapper.selectorderOtherMoney());
        return map;
    }
@@ -417,7 +423,6 @@
        if (dates != null && dates.size() > 1) {
            dates.set(1, dates.get(1).plusDays(1)); // å°†ç¬¬äºŒä¸ªæ—¥æœŸåР䏀天
        }
        System.out.println(dates);
        return reportMapper.exportDamageReportMp(dates);
    }
@@ -441,6 +446,9 @@
    public List exportWorkInProgressSv(Map<String, Object> dates) {
        String process= (String) dates.get("processes");
        if (process.equals("全部")){
            process="";
        }
        String inputVal= (String) dates.get("inputVal");
        String project= (String) dates.get("project");
        if ("null".equals(inputVal)) {
@@ -449,7 +457,11 @@
        if ("null".equals(project)) {
            project = "";
        }
        return reportMapper.exportWorkInProgressMp(process,inputVal,project);
        List<WorkInProgressDTO> dataList1  =reportMapper.exportWorkInProgressMp(process,inputVal,project);
        List<WorkInProgressDTO> dataList2  =reportMapper.exportWorkInProgressMpdataList2(process);
        mergeTeamsGroupsName(dataList1, dataList2);
        return dataList1;
    }
    public List exportTaskCompletionStatusSv(Map<String, Object> dates) {
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -17,11 +17,13 @@
import com.example.erp.entity.userInfo.Log;
import com.example.erp.entity.userInfo.SysError;
import com.example.erp.exception.ServiceException;
import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper;
import com.example.erp.mapper.mm.FinishedOperateLogMapper;
import com.example.erp.mapper.pp.*;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.erp.mapper.sd.*;
import com.example.erp.mapper.userInfo.LogMapper;
import com.example.erp.service.mm.FinishedGoodsInventoryService;
import com.example.erp.service.sd.OrderProcessDetailService;
import com.example.erp.service.userInfo.LogService;
import com.example.erp.service.userInfo.SysErrorService;
@@ -70,6 +72,7 @@
    private final PatchLogMapper patchLogMapper;
    private final ReworkMapper reworkMapper;
    private final BasicDateMapper basicDataMapper;
    private final FinishedGoodsInventoryService finishedGoodsInventoryService;
    /*public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper, LogService logService, LogMapper logMapper, OrderGlassDetailMapper orderGlassDetailMapper, SysErrorService sysErrorService, OrderDetailMapper orderDetailMapper, FinishedOperateLogMapper finishedOperateLogMapper, ReportingWorkTransferMapper reportingWorkTransferMapper) {
@@ -1200,8 +1203,12 @@
    }
        public List<BasicDataProduce> selectEquipmentByProcessSv(String process) {
               return reportingWorkMapper.SelectWorkBasicDeviceMp(process);
            }
    public List<BasicDataProduce> selectEquipmentByProcessSv(String process) {
       return reportingWorkMapper.SelectWorkBasicDeviceMp(process);
    }
}
        public String saveWorkStorage(Map<String, Object> object) {
                //List<Map<String, Object>> flowCard = reportingWorkMapper.getStorageData();
                //finishedGoodsInventoryService.addSelectWarehousing(object);
                return null;
            }}
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -872,6 +872,7 @@
                                                       fol.remarks,
                                                       SUM(fol.quantity) as quantity,
                                                       ROUND( sum(od.width * od.height * fol.quantity) / 1000000, 2 ) as area,
                                                       ROUND( sum(od.width * od.height * fol.quantity*p.total_thickness*2.5) / 1000000, 2 ) as weight,
                                                       fol.process_id,
                                                       aaa.teams_groups_name,
                                                       aaa.previous_process,
@@ -880,6 +881,7 @@
                                                     from mm.finished_operate_log aa where aa.operate_type = '入库'  and aa.status!='已作废') fol
                                                        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
                                                        left join sd.`order` o on o.order_id=fol.order_id
                                                        left join sd.product p on od.product_id=p.id
                                                        left join (select teams_groups_name,process_id,previous_process,reporting_work_time from pp.reporting_work  where this_process='包装') aaa on  aaa.process_id=fol.process_id
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -784,6 +784,10 @@
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number
        <choose>
            <!-- landingSequence != 1 æ—¶ï¼Œä¼˜å…ˆæŒ‰ landing_sequence å€’序 -->
            <when test="landingSequence != 1">
                ORDER BY landing_sequence DESC
            </when>
            <!-- flashback = 1 æ—¶æ­£åº -->
            <when test="flashback == 1">
                ORDER BY
@@ -1473,6 +1477,10 @@
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number, fc.technology_number
        <choose>
            <!-- landingSequence != 1 æ—¶ï¼Œä¼˜å…ˆæŒ‰ landing_sequence å€’序 -->
            <when test="landingSequence != 1">
                ORDER BY landing_sequence DESC
            </when>
            <!-- flashback = 1 æ—¶æ­£åº -->
            <when test="flashback == 1">
                ORDER BY
@@ -1522,6 +1530,10 @@
        where fc.process_id = #{processId} and fc.`merge`=1
        group by fc.process_id, fc.order_number
        <choose>
            <!-- landingSequence != 1 æ—¶ï¼Œä¼˜å…ˆæŒ‰ landing_sequence å€’序 -->
            <when test="landingSequence != 1">
                ORDER BY landing_sequence DESC
            </when>
            <!-- flashback = 1 æ—¶æ­£åº -->
            <when test="flashback == 1">
                ORDER BY
@@ -2422,7 +2434,13 @@
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
               od.order_number,
               ogd.child_width as width,
               ogd.child_height as height
               ogd.child_height as height,
                ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS S01,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS S02,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS S03,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS S04,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05
        from flow_card as fc
                 left join sd.order_glass_detail as ogd
                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
@@ -3203,6 +3221,10 @@
        and position(fc.technology_number in #{compound})
        group by fc.process_id, fc.order_number
        <choose>
            <!-- landingSequence != 1 æ—¶ï¼Œä¼˜å…ˆæŒ‰ landing_sequence å€’序 -->
            <when test="landingSequence != 1">
                ORDER BY landing_sequence DESC
            </when>
            <!-- flashback = 1 æ—¶æ­£åº -->
            <when test="flashback == 1">
                ORDER BY
@@ -3252,6 +3274,10 @@
        and position(fc.technology_number in #{compound})
        group by fc.process_id, fc.order_number
        <choose>
            <!-- landingSequence != 1 æ—¶ï¼Œä¼˜å…ˆæŒ‰ landing_sequence å€’序 -->
            <when test="landingSequence != 1">
                ORDER BY landing_sequence DESC
            </when>
            <!-- flashback = 1 æ—¶æ­£åº -->
            <when test="flashback == 1">
                ORDER BY
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -698,16 +698,20 @@
               fc.quantity,
               round(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
               if(od.shape='' || ISNULL(od.shape),'普形',if(od.shape = 1, '普形', if(od.shape = 2, '异形', ''))) as shape,
               od.remarks
        FROM sd.ORDER AS o
                 LEFT JOIN sd.order_detail AS od ON od.order_id = od.order_id
                 LEFT JOIN sd.order_glass_detail AS ogd ON o.order_id = ogd.order_id
            AND ogd.order_number = od.order_number
                 LEFT JOIN flow_card AS fc ON fc.order_id = ogd.order_id
            AND fc.order_number = od.order_number
            AND fc.technology_number = ogd.technology_number
               od.remarks,
               ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS S01,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS S02,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS S03,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS S04,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05
        FROM
            flow_card as fc left join sd.order_glass_detail as ogd on ogd.order_id=fc.order_id and ogd.order_number=ogd.order_number and ogd.technology_number=fc.technology_number
                            left join sd.order_detail as od on od.order_id=fc.order_id and od.order_number=fc.order_number
                            left join sd.`order` as o on o.order_id=fc.order_id
        WHERE fc.order_id = #{orderId}
        GROUP BY fc.id
        order by fc.order_number,fc.technology_number
    </select>
    <select id="qualityReportMp">
@@ -1003,7 +1007,9 @@
               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,
               ogd.child_width,
               ogd.child_height
        FROM sd.ORDER AS o
                 LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
                 LEFT JOIN reporting_work AS rw ON rw.order_id = o.order_id
@@ -1113,7 +1119,7 @@
    </select>
    <select id="exportWorkInProgressMp">
        select #{process}                                             as thisProcess,
        select if(#{process}='',odpd.process,#{process}) as thisProcess,
               fc.process_id,
               o.customer_name,
               o.project,
@@ -1133,8 +1139,7 @@
                      odpd.broken_num) / 1000000, 2) as stockArea,
               od.product_name,
               od.bend_radius,
               ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber,
               rws.teams_groups_name
               ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber
        from sd.order_detail AS od
                 LEFT JOIN sd.order_glass_detail AS ogd
@@ -1162,7 +1167,8 @@
                       LEFT JOIN
                   reporting_work as rwk
                   on rw.reporting_work_id = rwk.reporting_work_id
              where rwk.this_process = #{process}
              where position(#{process} in rwk.this_process)
                and rwk.this_process!='切割'
                and rw.review_status >= 0
              GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
             on c.process_id = fc.process_id
@@ -1170,22 +1176,14 @@
                 and c.technology_number = fc.technology_number
                 left join sd.`order` as o
                           on o.order_id = od.order_id
                 left join
             (
                 select a.process_id,a.teams_groups_name,a.next_process,b.technology_number,b.order_number
                 from reporting_work  as a
                          left join reporting_work_detail as b on a.reporting_work_id=b.reporting_work_id
                 GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
             ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
                 and  rws.technology_number=fc.technology_number and rws.next_process=#{process}
        where  o.create_order>0
          and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
              odpd.broken_num != 0
          and odpd.process = #{process}
              odpd.broken_num != 0 and odpd.process!='切割'
          and position(#{process} in odpd.process)
          and position(ifnull(#{inputVal}, '') in od.order_id)
          and position(ifnull(#{project}, '') in o.project)
        group by fc.process_id, fc.order_number, fc.technology_number
        group by fc.process_id, fc.order_number, fc.technology_number,odpd.process
        order by fc.process_id, fc.order_number, fc.technology_number
    </select>
@@ -1933,67 +1931,58 @@
    </select>
    <select id="workInProgressOrderFootSum">
        SELECT
        SUM(od.quantity) AS quantity,
        SUM(odpds.reporting_work_num_count + IFNULL(c.patchNumSum, 0) - odpd.reporting_work_num_count - odpd.broken_num) AS stockNum,
        SUM(ROUND(ogd.child_width * ogd.child_height *
        (odpds.reporting_work_num_count + IFNULL(c.patchNumSum, 0) - odpd.reporting_work_num_count - odpd.broken_num) / 1000000, 2)) AS stockArea,
        CEILING(count(fc.id)/#{pageSize}) as 'pageTotal',
        count(distinct fc.id) as 'total'
        FROM sd.order_detail AS od
        SELECT SUM(aa.quantity) AS quantity,
               sum(aa.stockNum) AS stockNum,
               SUM(aa.stockArea) AS stockArea,
               count(* ) AS 'total',
               CEILING( count(* )/#{pageSize} ) AS 'pageTotal'
        from
        (
        SELECT (od.quantity) AS quantity,
        (odpds.reporting_work_num_count + IFNULL(c.patchNumSum, 0) - odpd.reporting_work_num_count - odpd.broken_num) AS stockNum,
        (ROUND(ogd.child_width * ogd.child_height *
        (odpds.reporting_work_num_count + IFNULL(c.patchNumSum, 0) - odpd.reporting_work_num_count - odpd.broken_num) / 1000000, 2)) AS stockArea
        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
        LEFT JOIN pp.flow_card AS fc
        ON fc.order_id = ogd.order_id
        AND fc.production_id = ogd.production_id
        and fc.production_id = ogd.production_id
        AND fc.order_number = ogd.order_number
        AND fc.technology_number = ogd.technology_number
        LEFT JOIN sd.order_process_detail AS odpd
        left join sd.order_process_detail as odpd
        ON odpd.order_id = fc.order_id
        AND odpd.order_number = fc.order_number
        AND odpd.technology_number = fc.technology_number
        AND odpd.process_id = fc.process_id
        LEFT JOIN sd.order_process_detail AS odpds
        and odpd.process_id = fc.process_id
        left join sd.order_process_detail as odpds
        ON odpds.id = odpd.id - 1
        LEFT JOIN (
        SELECT
        SUM(rw.rework_num) AS patchNumSum,
        left join
        (SELECT sum(rw.rework_num) as 'patchNumSum',
        rw.process_id,
        rw.order_sort,
        rw.technology_number,
        rwk.this_process
        FROM rework AS rw
        LEFT JOIN reporting_work AS rwk
        ON rw.reporting_work_id = rwk.reporting_work_id
        WHERE rwk.this_process = #{selectProcesses}
        AND rw.review_status >= 0
        GROUP BY rw.process_id, rw.order_sort, rw.technology_number
        ) AS c
        ON c.process_id = fc.process_id
        AND c.order_sort = fc.order_number
        AND c.technology_number = fc.technology_number
        LEFT JOIN sd.`order` AS o
        ON o.order_id = od.order_id
        LEFT JOIN (
        SELECT
        a.process_id,
        a.teams_groups_name,
        a.next_process,
        b.technology_number,
        b.order_number
        FROM reporting_work AS a
        LEFT JOIN reporting_work_detail AS b
        ON a.reporting_work_id = b.reporting_work_id
        GROUP BY a.process_id, a.teams_groups_name, a.next_process, b.order_number, b.technology_number
        ) AS rws
        ON rws.process_id = fc.process_id
        AND rws.order_number = fc.order_number
        AND rws.technology_number = fc.technology_number
        AND rws.next_process = #{selectProcesses}
        WHERE o.create_order > 0
        AND odpds.reporting_work_num_count + IFNULL(c.patchNumSum, 0) - odpd.reporting_work_num_count - odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
        from pp.rework as rw
        LEFT JOIN
        pp.reporting_work as rwk
        on rw.reporting_work_id = rwk.reporting_work_id
        where  position(rwk.this_process in #{selectProcesses})
        and rwk.this_process!='切割'
        and rw.review_status >= 0
        GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
        on c.process_id = fc.process_id
        and c.order_sort = fc.order_number
        and c.technology_number = fc.technology_number
        left join sd.`order` as o
        on o.order_id = od.order_id
        WHERE
        o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0 and odpd.process!='切割'
        and position(#{selectProcesses} in odpd.process)
        and position(#{orderId} in od.order_id)
        and position(#{inputProject} in o.project)
        <if test="workInProgressDTO.customerName != null and workInProgressDTO.customerName != ''">
@@ -2011,6 +2000,9 @@
        <if test="workInProgressDTO.processId != null and workInProgressDTO.processId != ''">
            and fc.process_id regexp #{workInProgressDTO.processId}
        </if>
        group by fc.process_id, fc.order_number, fc.technology_number,odpd.process
        ) as aa
    </select>
    <select id="processToBeCompletedFootSum">
@@ -2174,7 +2166,7 @@
    </select>
    <select id="workInProgressMpdataList1" resultMap="workInProgressMap">
        select #{selectProcesses} as thisProcess,
        select if(#{selectProcesses}='',odpd.process,#{selectProcesses}) as thisProcess,
               fc.process_id,
               o.customer_name,
               o.project,
@@ -2225,7 +2217,8 @@
                       LEFT JOIN
                    pp.reporting_work as rwk
                   on rw.reporting_work_id = rwk.reporting_work_id
              where rwk.this_process = #{selectProcesses}
              where position(#{selectProcesses} in rwk.this_process)
        and rwk.this_process!='切割'
                and rw.review_status >= 0
              GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
             on c.process_id = fc.process_id
@@ -2235,8 +2228,8 @@
                           on o.order_id = od.order_id
        where  o.create_order>0
          and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
              odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
              odpd.broken_num != 0 and odpd.process!='切割'
        and position(#{selectProcesses} in odpd.process)
        and position(#{orderId} in od.order_id)
        and position(#{inputProject} in o.project)
        <if test="workInProgressDTO.customerName != null and workInProgressDTO.customerName != ''">
@@ -2263,7 +2256,7 @@
        <if test="workInProgressDTO.glassNumber != null and workInProgressDTO.glassNumber != ''">
            and ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') regexp #{workInProgressDTO.glassNumber}
        </if>
        group by fc.process_id, fc.order_number, fc.technology_number
        group by fc.process_id, fc.order_number, fc.technology_number,odpd.process
        order by fc.process_id, fc.order_number, fc.technology_number
        limit #{offset},#{pageSize};
    </select>
@@ -2273,12 +2266,12 @@
            a.process_id,a.teams_groups_name,a.next_process,b.technology_number,b.order_number
        from pp.reporting_work  as a
                 left join pp.reporting_work_detail as b on a.reporting_work_id=b.reporting_work_id
        where a.next_process=#{selectProcesses}
        GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
        where position(#{selectProcesses} in a.next_process) and a.next_process!='切割'
        GROUP BY a.reporting_work_id
    </select>
    <select id="workInProgressOrderMpList1" resultMap="workInProgressMap">
        select #{selectProcesses} as thisProcess,
        select if(#{selectProcesses}='',odpd.process,#{selectProcesses}) as thisProcess,
        o.customer_name,
        o.project,
        o.order_id,
@@ -2318,7 +2311,8 @@
        LEFT JOIN
        reporting_work as rwk
        on rw.reporting_work_id = rwk.reporting_work_id
        where rwk.this_process = #{selectProcesses}
        where position(#{selectProcesses} in rwk.this_process)
        and rwk.this_process!='切割'
        and rw.review_status >= 0
        GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
        on c.process_id = fc.process_id
@@ -2328,8 +2322,8 @@
        on o.order_id = od.order_id
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
        odpd.broken_num != 0 and odpd.process!='切割'
        and position(#{selectProcesses} in odpd.process)
        and position(#{orderId} in od.order_id)
        and position(#{inputProject} in o.project)
        <if test="workInProgressDTO.customerName != null and workInProgressDTO.customerName != ''">
@@ -2350,7 +2344,7 @@
    </select>
    <select id="workInProgressProcessMpList1" resultMap="workInProgressMap">
        select #{selectProcesses} as thisProcess,
        select if(#{selectProcesses}='',odpd.process,#{selectProcesses}) as thisProcess,
        o.customer_name,
        o.project,
        o.order_id,
@@ -2391,7 +2385,8 @@
        LEFT JOIN
        reporting_work as rwk
        on rw.reporting_work_id = rwk.reporting_work_id
        where rwk.this_process = #{selectProcesses}
        where position(#{selectProcesses} in rwk.this_process)
        and rwk.this_process!='切割'
        and rw.review_status >= 0
        GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
        on c.process_id = fc.process_id
@@ -2401,8 +2396,8 @@
        on o.order_id = od.order_id
        where  o.create_order>0
        and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num != 0
        and odpd.process = #{selectProcesses}
        odpd.broken_num != 0 and odpd.process!='切割'
        and position(#{selectProcesses} in odpd.process)
        and position(#{orderId} in od.order_id)
        and position(#{inputProject} in o.project)
        <if test="workInProgressDTO.customerName != null and workInProgressDTO.customerName != ''">
@@ -2424,4 +2419,13 @@
        order by o.order_id, fc.process_id
        limit #{offset},#{pageSize};
    </select>
    <select id="exportWorkInProgressMpdataList2">
        select
            a.process_id,a.teams_groups_name,a.next_process,b.technology_number,b.order_number
        from pp.reporting_work  as a
                 left join pp.reporting_work_detail as b on a.reporting_work_id=b.reporting_work_id
        where position(#{process} in a.next_process) and a.next_process!='切割'
        GROUP BY a.reporting_work_id
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -102,9 +102,7 @@
    </select>
    <select id="SelectWorkBasicTeamsMp">
        SELECT bdp.id,bdp.basic_type,bdp.basic_name, bd.basic_name as basic_category FROM  sd.basic_data as bd left join  `basic_data_produce` as bdp
                                                                                                                          on bd.id=bdp.basic_category
        where bd.basic_category="process" and bdp.basic_type="teamsgroups" and bd.basic_name = #{process}
        select * from erp_user_info.`user` WHERE address=#{process}
    </select>
    <!--    æŸ¥è¯¢æµç¨‹å¡å·¥è‰ºæµç¨‹-->