Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | let column = [1,3,8] |
| | | //点击查询 |
| | | const getWorkOrder = () => { |
| | | gridOptions.columns = gridOptions.columns.slice(0, 11); //清除动态生成的列重新查询 |
| | | request.post(`/report/processCardProgress/${form.orderId}`, column).then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.data.data.length === 0) { |
| | | ElMessage.warning(t('report.noDataFoundForThisOrder')) |
| | | return |
| | | } |
| | | |
| | | // 动态添加列 |
| | | res.data.title.forEach((item, index) => { |
| | | let column = { |
| | | slots: { default: 'quantitySum' }, |
| | | width: 90, |
| | | width: 150, |
| | | title: item.process, |
| | | field: `dynamicColumn${index}` // 为动态列添加唯一的 field |
| | | } |
| | |
| | | res.data.data.forEach(item => { |
| | | item.reportWorkQuantity = JSON.parse(item.reportWorkQuantity) |
| | | item.reportWorkQuantityCount = JSON.parse(item.reportWorkQuantityCount) |
| | | item.reportWorkTime = JSON.parse(item.reportWorkTime) |
| | | }) |
| | | mergeCells.value = res.data.mergeCell |
| | | xGrid.value.loadData(res.data.data) |
| | |
| | | const quantitySum = ( row,column )=>{ |
| | | const reportWorkQuantity = row.reportWorkQuantity[column.title] || 0 |
| | | const reportWorkQuantityCount = row.reportWorkQuantityCount[column.title] || 0 |
| | | if(reportWorkQuantity===reportWorkQuantityCount){ |
| | | return reportWorkQuantity |
| | | const reportWorkTime = row.reportWorkTime[column.title] || 0 |
| | | if (reportWorkTime===0){ |
| | | if(reportWorkQuantity===reportWorkQuantityCount){ |
| | | return reportWorkQuantity |
| | | } |
| | | |
| | | return (reportWorkQuantity |
| | | +'(' |
| | | +reportWorkQuantityCount |
| | | +')' ) |
| | | } |
| | | else { |
| | | if(reportWorkQuantity===reportWorkQuantityCount){ |
| | | return (reportWorkQuantity+'[' |
| | | +reportWorkTime |
| | | +']') |
| | | } |
| | | |
| | | return (reportWorkQuantity |
| | | +'(' |
| | | +reportWorkQuantityCount |
| | | +')' |
| | | +'[' |
| | | +reportWorkTime |
| | | +']' |
| | | ) |
| | | } |
| | | |
| | | return (reportWorkQuantity |
| | | +'(' |
| | | +reportWorkQuantityCount |
| | | +')' ) |
| | | //return |
| | | } |
| | | |
| | |
| | | const val = getNestedProperty(dataList[result.start],result.cell)+"" |
| | | if(!/\d$/.test(val)){ |
| | | const matches = val.match(/\D/g); |
| | | const a= val.lastIndexOf(matches[matches.length - 1]) |
| | | const b= val.lastIndexOf(matches[matches.length-1]) |
| | | |
| | | const numbersArr = [] |
| | | const regex = /\d+/g |
| | |
| | | } |
| | | let numbers=numbersArr[numbersArr.length-1] |
| | | var subStr1 = val.substring(numbers.index); |
| | | const matche = subStr1.match(/(\d+)([^0-9]|$)/); |
| | | const a= val.lastIndexOf(matche[2]) |
| | | var subStr2 = val.substring(0, numbers.index); |
| | | var subStr3 = val.substring(a); |
| | | var subStr3 = val.substring(a,b+1); |
| | | let number = parseInt(subStr1) |
| | | var reg =new RegExp(number,"g") |
| | | dataList.forEach((item,index) =>{ |
| | |
| | | let newStr = subStr1.replace(reg, number); |
| | | if(parseInt(newStr)>9){ |
| | | newStr=parseInt(newStr) |
| | | if(!/\d$/.test(val)){ |
| | | newStr=newStr+subStr3 |
| | | } |
| | | } |
| | | setNestedValue(item,result.cell,subStr2+newStr+subStr3) |
| | | setNestedValue(item,result.cell,subStr2+newStr) |
| | | number=number+1 |
| | | } |
| | | |
| | |
| | | const val = getNestedProperty(dataList[result.start], result.cell)+"" |
| | | if(!/\d$/.test(val)){ |
| | | const matches = val.match(/\D/g); |
| | | const a= val.lastIndexOf(matches[matches.length - 1]) |
| | | const b= val.lastIndexOf(matches[matches.length-1]) |
| | | |
| | | const numbersArr = [] |
| | | const regex = /\d+/g |
| | |
| | | } |
| | | let numbers=numbersArr[numbersArr.length-1] |
| | | var subStr1 = val.substring(numbers.index); |
| | | const matche = subStr1.match(/(\d+)([^0-9]|$)/); |
| | | const a= val.lastIndexOf(matche[2]) |
| | | var subStr2 = val.substring(0, numbers.index); |
| | | var subStr3 = val.substring(a); |
| | | var subStr3 = val.substring(a,b+1); |
| | | let number = parseInt(subStr1) |
| | | var reg =new RegExp(number,"g") |
| | | dataList.forEach((item,index) =>{ |
| | |
| | | let newStr = subStr1.replace(reg, number); |
| | | if(parseInt(newStr)>9){ |
| | | newStr=parseInt(newStr) |
| | | newStr=newStr+subStr3 |
| | | } |
| | | setNestedValue(item,result.cell,subStr2+newStr+subStr3) |
| | | setNestedValue(item,result.cell,subStr2+newStr) |
| | | number=number+1 |
| | | } |
| | | |
| | |
| | | package com.example.erp.entity.sd; |
| | | |
| | | import com.alibaba.excel.annotation.ExcelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDate; |
| | | |
| | | @Data |
| | | @TableName("sd.order_process_detail") |
| | |
| | | private int reportingWorkNumCount; |
| | | private int reportingWorkNum; |
| | | private int brokenNum; |
| | | @ExcelProperty("修改日期") |
| | | private LocalDate updateTime; |
| | | |
| | | // private Order order; |
| | | // private OrderDetail orderDetail; |
| | |
| | | getRowCount.forEach(row -> { |
| | | Map<String, Integer> getRow = new HashMap<>(); |
| | | // { row: 0, col: 1, rowspan: 3, colspan: 0}, |
| | | getRow.put("row", row.get("RowNum")); |
| | | Object rowNumObj = row.get("RowNum"); |
| | | if (rowNumObj instanceof Double) { |
| | | getRow.put("row", ((Double) rowNumObj).intValue()); |
| | | } else if (rowNumObj instanceof Integer) { |
| | | getRow.put("row", (Integer) rowNumObj); |
| | | } |
| | | getRow.put("col", col); |
| | | getRow.put("rowspan", row.get("rowCount")); |
| | | getRow.put("colspan", 0); |
| | |
| | | .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber()) |
| | | .setSql("reporting_work_num_count = reporting_work_num_count +" + orderProcessDetail.getReportingWorkNum()) |
| | | .setSql("reporting_work_num =reporting_work_num +" + orderProcessDetail.getReportingWorkNum()) |
| | | .setSql("update_time = now()") |
| | | .setSql("broken_num =broken_num +" + orderProcessDetail.getBrokenNum()); |
| | | orderProcessDetailMapper.update(null, updateWrapper); |
| | | //判断完工数量和刺破数量是否为0,为0则不插入到数据库 |
| | |
| | | mi.inventory_quantity AS inventoryQuantity, |
| | | ou.not_use_count AS availableQuantity, |
| | | ou.not_use_count AS planQuantity, |
| | | ou.not_use_count AS outboundQuantity, |
| | | mi.id, |
| | | mi.inventory_organization as inventoryOrganization, |
| | | mi.material_code AS materialCode, |
| | |
| | | fc.founder, |
| | | date(fc.splitFrame_time) as splitFrame_time, |
| | | fc.print_status, |
| | | processed_part as process |
| | | processed_part as process, |
| | | merge |
| | | |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | |
| | | fc.founder, |
| | | date(fc.splitFrame_time) as splitFrame_time, |
| | | fc.print_status, |
| | | processed_part as process |
| | | processed_part as process, |
| | | merge |
| | | |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | |
| | | c.quantity, |
| | | e.reportWorkQuantity, |
| | | e.reportWorkQuantityCount, |
| | | e.reportWorkTime, |
| | | e.broken_num, |
| | | ifnull(f.inventory, 0) as inventory, |
| | | round(ifnull(f.inventory, 0) * a.area, 2) as inventoryArea, |
| | |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num_count, "\"")), |
| | | '}' |
| | | ) as reportWorkQuantityCount |
| | | ) as reportWorkQuantityCount, |
| | | concat('{', |
| | | GROUP_CONCAT(concat("\"", process, "\":\"", IFNULL(date(update_time),''), "\"")), |
| | | '}' |
| | | ) as reportWorkTime |
| | | FROM sd.order_process_detail as a |
| | | where a.order_id = #{orderId} |
| | | GROUP BY process_id, a.order_number, a.technology_number) as e |