Merge branch 'master' of http://bore.pub:10439/r/ERP_override
| | |
| | | {field: 'area',width: '100', title: t('productStock.totalArea'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'computeArea',width: '140', title: t('order.computeArea'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'computeGrossArea',width: '100', title: t('order.computeGrossArea'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'weight',width: '100', title: t('processCard.weight'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'weight',width: '100', title: t('processCard.weight')}, |
| | | |
| | | {field: 'storageRegion',width: '100', title: t('productStock.inventoryArea'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'status',width: '100', title: t('productStock.status'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | |
| | | </div>
|
| | | </div>
|
| | |
|
| | | <!-- <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #409eff; color: white; border: none; border-radius: 5px; cursor: pointer;">-->
|
| | | <!-- 保存调整-->
|
| | | <!-- </button>-->
|
| | | <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #409eff; color: white; border: none; border-radius: 5px; cursor: pointer;">
|
| | | 保存调整
|
| | | </button>
|
| | | </div>
|
| | | </template>
|
| | |
|
| | |
| | | const submitLayouts = async () => {
|
| | | layouts.value.forEach(layout => {
|
| | | layout.glassDetails.forEach(glassDetail => {
|
| | | glassDetail.x = Math.round(glassDetail.x);
|
| | | glassDetail.y = Math.round(glassDetail.y);
|
| | | glassDetail.width = Math.round(glassDetail.width);
|
| | | glassDetail.height = Math.round(glassDetail.height);
|
| | | glassDetail.x = parseFloat(glassDetail.x.toFixed(2));
|
| | | glassDetail.y = parseFloat(glassDetail.y.toFixed(2));
|
| | | glassDetail.width = parseFloat(glassDetail.width.toFixed(2));
|
| | | glassDetail.height = parseFloat(glassDetail.height.toFixed(2));
|
| | | });
|
| | | });
|
| | | const savedProjectNo = localStorage.getItem('projectNo');
|
| | |
| | | glassDetail.glassPoint.forEach(point => {
|
| | | point.X += offsetX;
|
| | | point.Y += offsetY;
|
| | | // 添加精度控制
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | |
|
| | |
| | | (props.gh - 100) / layout.height
|
| | | );
|
| | |
|
| | | glassDetail.x = Math.round(glassDetail.x);
|
| | | glassDetail.y = Math.round(glassDetail.y);
|
| | | glassDetail.x = parseFloat(glassDetail.x.toFixed(2));
|
| | | glassDetail.y = parseFloat(glassDetail.y.toFixed(2));
|
| | | adjustAlignmentPosition(layoutIndex, rectIndex);
|
| | | }
|
| | |
|
| | |
| | | else {
|
| | | // 无法合并,保存当前矩形,开始新的合并
|
| | | merged.push({
|
| | | x: Math.round(current.x),
|
| | | y: Math.round(current.y),
|
| | | width: Math.round(current.width),
|
| | | height: Math.round(current.height),
|
| | | x: current.x,
|
| | | y: current.y,
|
| | | width: current.width,
|
| | | height: current.height,
|
| | | isRemain: true
|
| | | });
|
| | | current = { ...next };
|
| | |
| | |
|
| | | // 添加最后一个矩形
|
| | | merged.push({
|
| | | x: Math.round(current.x),
|
| | | y: Math.round(current.y),
|
| | | width: Math.round(current.width),
|
| | | height: Math.round(current.height),
|
| | | x: current.x,
|
| | | y: current.y,
|
| | | width: current.width,
|
| | | height: current.height,
|
| | | isRemain: true
|
| | | });
|
| | |
|
| | |
| | | // 添加新的余料矩形
|
| | | uniqueArr.forEach((area) => {
|
| | | newGlassDetails.push({
|
| | | x: Math.round(area.x),
|
| | | y: Math.round(area.y),
|
| | | width: Math.round(area.width),
|
| | | height: Math.round(area.height),
|
| | | x: area.x,
|
| | | y: area.y,
|
| | | width: area.width,
|
| | | height: area.height,
|
| | | isRemain: true
|
| | | });
|
| | | });
|
| | |
| | | // 旋转90度后的坐标(顺时针)
|
| | | point.X = originalState.x + relY;
|
| | | point.Y = originalState.y + (originalState.width - relX);
|
| | | // 添加精度控制
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | | adjustGrayRectangles(layoutIndex);
|
| | |
| | | glassDetail.glassPoint.forEach(point => {
|
| | | point.X += offsetX;
|
| | | point.Y += offsetY;
|
| | | // 添加精度控制
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | | adjustGrayRectangles(layoutIndex);
|
| | |
| | | if (glassDetail.glassPoint && Array.isArray(glassDetail.glassPoint)) {
|
| | | glassDetail.glassPoint.forEach(point => {
|
| | | point.X = width - point.X;
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | | });
|
| | |
| | | if (glassDetail.glassPoint && Array.isArray(glassDetail.glassPoint)) {
|
| | | glassDetail.glassPoint.forEach(point => {
|
| | | point.Y = height - point.Y;
|
| | | // 添加精度控制
|
| | | point.X = parseFloat(point.X.toFixed(2));
|
| | | point.Y = parseFloat(point.Y.toFixed(2));
|
| | | });
|
| | | }
|
| | | });
|
| | |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'product_name', |
| | | field: 'productName', |
| | | width: 150, |
| | | title: t('order.product'), |
| | | filters: [{data: ''}], |
| | |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'building_number', |
| | | field: 'buildingNumber', |
| | | width: 150, |
| | | title: '楼层号', |
| | | filters: [{data: ''}], |
| | |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'icon', |
| | | field: 'markIcon', |
| | | width: 150, |
| | | title: '印标类型', |
| | | filters: [{data: ''}], |
| | |
| | | } |
| | | emit('getSmallPieceData', 1); |
| | | optimizeData.value.glassDetails = []; |
| | | // 从后端接口获取 glassDetail 数据,而不是从表格中读取 |
| | | fetchGlassDetailData(); |
| | | // 从表格中获取 glassDetail 数据,而不是从后端接口读取 |
| | | const tableData = xGrid.value.getTableData().fullData; |
| | | const glassDetailData = tableData.map(item => { |
| | | let rackNoValue = 0; |
| | | if (item.rackNo !== undefined && item.rackNo !== null && item.rackNo !== '') { |
| | | rackNoValue = item.rackNo; |
| | | } |
| | | return { |
| | | width: item.width, |
| | | height: item.height, |
| | | processId: item.processId, |
| | | layer: item.layer, |
| | | totalLayer: item.totalLayer, |
| | | orderSort: item.order_number, |
| | | markIcon: item.markIcon, |
| | | quantity: item.quantity, |
| | | patchState: item.patchState, |
| | | upGrind: item.longGrind1, |
| | | downGrind: item.longGrind2, |
| | | leftGrind: item.shortGrind1, |
| | | rightGrind: item.shortGrind2, |
| | | heatLayoutId: item.heatLayoutId, |
| | | process: item.process, |
| | | orderNo: item.orderNo, |
| | | customerName: item.customerName, |
| | | processingNote: item.processingNote, |
| | | projectName: item.projectName, |
| | | productName: item.productName, |
| | | buildingNumber: item.buildingNumber, |
| | | rackNo: rackNoValue |
| | | }; |
| | | }); |
| | | |
| | | // xGrid.value.getTableData().fullData.forEach(items=>{ |
| | | // let rackNoValue = 0; |
| | | // if (items.rackNo !== undefined && items.rackNo !== null && items.rackNo !== '') { |
| | | // rackNoValue = items.rackNo; |
| | | // } |
| | | // const detail={ |
| | | // width :null, |
| | | // height :null, |
| | | // processId :null, |
| | | // layer :null, |
| | | // totalLayer :null, |
| | | // orderSort :null, |
| | | // markIcon :null, |
| | | // quantity:null, |
| | | // patchState :null, |
| | | // upGrind :null, |
| | | // downGrind :null, |
| | | // leftGrind:null, |
| | | // rightGrind :null, |
| | | // rackNo: rackNoValue |
| | | // } |
| | | // detail.width=items.width |
| | | // detail.height=items.height |
| | | // detail.processId=items.process_ids |
| | | // detail.layer=items.layer |
| | | // detail.totalLayer=items.total_layer |
| | | // detail.orderSort=items.order_number |
| | | // detail.markIcon=items.icon |
| | | // detail.patchState=items.patch_state |
| | | // detail.quantity=items.quantity |
| | | // detail.upGrind=items.longGrind1 |
| | | // detail.downGrind=items.longGrind2 |
| | | // detail.leftGrind=items.shortGrind1 |
| | | // detail.rightGrind=items.shortGrind2 |
| | | // detail.rackNo=items.rackNo |
| | | // |
| | | // optimizeData.value.glassDetails .push(detail) |
| | | // }) |
| | | // 更新 optimizeData 中的 glassDetails |
| | | optimizeData.value.glassDetails = glassDetailData; |
| | | |
| | | // 打开优化对话框 |
| | | dialogVisible.value[4] = true; |
| | | |
| | | }else{ |
| | | dialogVisible.value[index] = true; |
| | | } |
| | | }; |
| | | |
| | | const fetchGlassDetailData = async () => { |
| | | try { |
| | | const res = await request.post(`/glassOptimize/optimizeInfo/${projectNo.value}/${username}`); |
| | | console.log(res); |
| | | if (res.code === "200" && res.data && res.data.data) { |
| | | // 处理从后端获取的数据 |
| | | const glassDetailData = res.data.data.map(item => { |
| | | let rackNoValue = 0; |
| | | if (item.rackNo !== undefined && item.rackNo !== null && item.rackNo !== '') { |
| | | rackNoValue = item.rackNo; |
| | | } |
| | | return { |
| | | width: item.width, |
| | | height: item.height, |
| | | processId: item.processId, |
| | | layer: item.layer, |
| | | totalLayer: item.totalLayer, |
| | | orderSort: item.order_number, |
| | | markIcon: item.markIcon, |
| | | quantity: item.quantity, |
| | | patchState: item.patchState, |
| | | upGrind: item.upGrind, |
| | | downGrind: item.downGrind, |
| | | leftGrind: item.leftGrind, |
| | | rightGrind:item.rightGrind, |
| | | heatLayoutId:item.heatLayoutId, |
| | | process:item.process, |
| | | orderNo:item.orderNo, |
| | | customerName:item.customerName, |
| | | processingNote:item.processingNote, |
| | | projectName:item.projectName, |
| | | productName:item.productName, |
| | | buildingNumber:item.buildingNumber, |
| | | rackNo: rackNoValue |
| | | }; |
| | | }); |
| | | |
| | | // 更新 optimizeData 中的 glassDetails |
| | | optimizeData.value.glassDetails = glassDetailData; |
| | | |
| | | // 打开优化对话框 |
| | | dialogVisible.value[4] = true; |
| | | |
| | | console.log('获取到的 glassDetail 数据:', glassDetailData); |
| | | } else { |
| | | ElMessage.error('获取玻璃详情数据失败'); |
| | | } |
| | | } catch (error) { |
| | | console.error('获取 glassDetail 数据出错:', error); |
| | | ElMessage.error('获取玻璃详情数据时发生错误'); |
| | | } |
| | | }; |
| | | |
| | |
| | | const fetchData = () => { |
| | | //启用表格拖动选中 |
| | | addListener(xGrid.value,gridOptions,cellArea.value) |
| | | request.post(`/glassOptimize/projectInfo/${projectNo.value}/${username}`).then((res) => { |
| | | request.post(`/glassOptimize/optimizeInfo/${projectNo.value}/${username}`).then((res) => { |
| | | if ((Number(res.code) === 200)) { |
| | | let data = res.data.data; |
| | | const grindingTrimming = res.data.grindingTrimming; |
| | |
| | | } |
| | | } |
| | | } |
| | | map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString())); |
| | | map.put("data", dataList); |
| | | map.put("project", glassOptimizeMapper.selectProjectCount(projectNo)); |
| | | map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username)); |
| | | return map; |
| | | } |
| | | |
| | |
| | | <where> |
| | | and fgi.status = 0 and fgi.quantity_available>0 and o.create_order>0 |
| | | <if test="finishedGoodsInventory.orderDetail.width != null and finishedGoodsInventory.orderDetail.width != ''"> |
| | | and od.width regexp #{finishedGoodsInventory.orderDetail.width} |
| | | and od.width regexp REGEXP_REPLACE(#{finishedGoodsInventory.orderDetail.width},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.orderDetail.orderNumber != null and finishedGoodsInventory.orderDetail.orderNumber != ''"> |
| | | and od.order_number regexp #{finishedGoodsInventory.orderDetail.orderNumber} |
| | | and od.order_number like concat('%', #{finishedGoodsInventory.orderDetail.orderNumber}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.orderDetail.productName != null and finishedGoodsInventory.orderDetail.productName != ''"> |
| | | and od.product_name regexp #{finishedGoodsInventory.orderDetail.productName} |
| | | and od.product_name like concat('%', #{finishedGoodsInventory.orderDetail.productName}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.orderDetail.productId != null and finishedGoodsInventory.orderDetail.productId != ''"> |
| | | and od.product_id regexp #{finishedGoodsInventory.orderDetail.productId} |
| | | and od.product_id like concat('%', #{finishedGoodsInventory.orderDetail.productId}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.orderDetail.buildingNumber != null and finishedGoodsInventory.orderDetail.buildingNumber != ''"> |
| | | and od.building_number regexp #{finishedGoodsInventory.orderDetail.buildingNumber} |
| | | and od.building_number like concat('%', #{finishedGoodsInventory.orderDetail.buildingNumber}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.orderId != null and finishedGoodsInventory.order.orderId != ''"> |
| | | and o.order_id regexp #{finishedGoodsInventory.order.orderId} |
| | | and o.order_id like concat('%', #{finishedGoodsInventory.order.orderId}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.project != null and finishedGoodsInventory.order.project != ''"> |
| | | and o.project regexp #{finishedGoodsInventory.order.project} |
| | | and o.project like concat('%', #{finishedGoodsInventory.order.project}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.orderType != null and finishedGoodsInventory.order.orderType != ''"> |
| | | and o.order_type regexp #{finishedGoodsInventory.order.orderType} |
| | | and o.order_type like concat('%', #{finishedGoodsInventory.order.orderType}, '%') |
| | | </if> |
| | | |
| | | <if test="finishedGoodsInventory.order.customerId != null and finishedGoodsInventory.order.customerId != ''"> |
| | | and o.customer_id regexp #{finishedGoodsInventory.order.customerId} |
| | | and o.customer_id like concat('%', #{finishedGoodsInventory.order.customerId}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.customerName != null and finishedGoodsInventory.order.customerName != ''"> |
| | | and o.customer_name regexp #{finishedGoodsInventory.order.customerName} |
| | | and o.customer_name like concat('%', #{finishedGoodsInventory.order.customerName}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.batch != null and finishedGoodsInventory.order.batch != ''"> |
| | | and o.batch regexp #{finishedGoodsInventory.order.batch} |
| | | and o.batch like concat('%', #{finishedGoodsInventory.order.batch}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.salesman != null and finishedGoodsInventory.order.salesman != ''"> |
| | | and o.salesman regexp #{finishedGoodsInventory.order.salesman} |
| | | and o.salesman like concat('%', #{finishedGoodsInventory.order.salesman}, '%') |
| | | </if> |
| | | |
| | | <if test="finishedGoodsInventory.orderDetail.height != null and finishedGoodsInventory.orderDetail.height != ''"> |
| | | and od.height regexp REGEXP_REPLACE(#{finishedGoodsInventory.orderDetail.height},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.inventory != null and finishedGoodsInventory.inventory != ''"> |
| | | and fgi.inventory regexp #{finishedGoodsInventory.inventory} |
| | | and fgi.inventory like concat('%', #{finishedGoodsInventory.inventory}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.quantityAvailable != null and finishedGoodsInventory.quantityAvailable != ''"> |
| | | and fgi.quantity_available regexp #{finishedGoodsInventory.quantityAvailable} |
| | | and fgi.quantity_available like concat('%', #{finishedGoodsInventory.quantityAvailable}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''"> |
| | | and fgi.actual_signal_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.actualSignalArea},'\\.0+$','') |
| | |
| | | and fgi.area regexp REGEXP_REPLACE(#{finishedGoodsInventory.area},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''"> |
| | | and fgi.warehouse_number regexp #{finishedGoodsInventory.warehouseNumber} |
| | | and fgi.warehouse_number like concat('%', #{finishedGoodsInventory.warehouseNumber}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.storageRegion != null and finishedGoodsInventory.storageRegion != ''"> |
| | | and fgi.storage_region regexp #{finishedGoodsInventory.storageRegion} |
| | | and fgi.storage_region like concat('%', #{finishedGoodsInventory.storageRegion}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.status != null and finishedGoodsInventory.status != ''"> |
| | | and fgi.`status` regexp #{finishedGoodsInventory.status} |
| | | and fgi.`status` like concat('%', #{finishedGoodsInventory.status}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.enterStorageTime != null and finishedGoodsInventory.enterStorageTime != ''"> |
| | | and fgi.enter_storage_time regexp #{finishedGoodsInventory.enterStorageTime} |
| | | and fgi.enter_storage_time like concat('%', #{finishedGoodsInventory.enterStorageTime}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.updateTime != null and finishedGoodsInventory.updateTime != ''"> |
| | | and fgi.update_time regexp #{finishedGoodsInventory.updateTime} |
| | | and fgi.update_time like concat('%', #{finishedGoodsInventory.updateTime}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.endTime != null and finishedGoodsInventory.endTime != ''"> |
| | | and fgi.end_time regexp #{finishedGoodsInventory.endTime} |
| | | and fgi.end_time like concat('%', #{finishedGoodsInventory.endTime}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.remark != null and finishedGoodsInventory.remark != ''"> |
| | | and fgi.remark regexp #{finishedGoodsInventory.remark} |
| | | and fgi.remark like concat('%', #{finishedGoodsInventory.remark}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.boxNo != null and finishedGoodsInventory.boxNo != ''"> |
| | | and fgi.box_no regexp #{finishedGoodsInventory.boxNo} |
| | | and fgi.box_no like concat('%', #{finishedGoodsInventory.boxNo}, '%') |
| | | </if> |
| | | |
| | | </where> |
| | |
| | | <where> |
| | | and fgi.status = 0 and fgi.quantity_available>0 and o.create_order>0 |
| | | <if test="finishedGoodsInventory.orderDetail.width != null and finishedGoodsInventory.orderDetail.width != ''"> |
| | | and od.width regexp #{finishedGoodsInventory.orderDetail.width} |
| | | and od.width regexp REGEXP_REPLACE(#{finishedGoodsInventory.orderDetail.width},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.orderDetail.orderNumber != null and finishedGoodsInventory.orderDetail.orderNumber != ''"> |
| | | and od.order_number regexp #{finishedGoodsInventory.orderDetail.orderNumber} |
| | | and od.order_number like concat('%', #{finishedGoodsInventory.orderDetail.orderNumber}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.orderDetail.productName != null and finishedGoodsInventory.orderDetail.productName != ''"> |
| | | and od.product_name regexp #{finishedGoodsInventory.orderDetail.productName} |
| | | and od.product_name like concat('%', #{finishedGoodsInventory.orderDetail.productName}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.orderDetail.productId != null and finishedGoodsInventory.orderDetail.productId != ''"> |
| | | and od.product_id regexp #{finishedGoodsInventory.orderDetail.productId} |
| | | and od.product_id like concat('%', #{finishedGoodsInventory.orderDetail.productId}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.orderDetail.buildingNumber != null and finishedGoodsInventory.orderDetail.buildingNumber != ''"> |
| | | and od.building_number regexp #{finishedGoodsInventory.orderDetail.buildingNumber} |
| | | and od.building_number like concat('%', #{finishedGoodsInventory.orderDetail.buildingNumber}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.orderId != null and finishedGoodsInventory.order.orderId != ''"> |
| | | and o.order_id regexp #{finishedGoodsInventory.order.orderId} |
| | | and o.order_id like concat('%', #{finishedGoodsInventory.order.orderId}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.project != null and finishedGoodsInventory.order.project != ''"> |
| | | and o.project regexp #{finishedGoodsInventory.order.project} |
| | | and o.project like concat('%', #{finishedGoodsInventory.order.project}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.orderType != null and finishedGoodsInventory.order.orderType != ''"> |
| | | and o.order_type regexp #{finishedGoodsInventory.order.orderType} |
| | | and o.order_type like concat('%', #{finishedGoodsInventory.order.orderType}, '%') |
| | | </if> |
| | | |
| | | <if test="finishedGoodsInventory.order.customerId != null and finishedGoodsInventory.order.customerId != ''"> |
| | | and o.customer_id regexp #{finishedGoodsInventory.order.customerId} |
| | | and o.customer_id like concat('%', #{finishedGoodsInventory.order.customerId}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.customerName != null and finishedGoodsInventory.order.customerName != ''"> |
| | | and o.customer_name regexp #{finishedGoodsInventory.order.customerName} |
| | | and o.customer_name like concat('%', #{finishedGoodsInventory.order.customerName}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.batch != null and finishedGoodsInventory.order.batch != ''"> |
| | | and o.batch regexp #{finishedGoodsInventory.order.batch} |
| | | and o.batch like concat('%', #{finishedGoodsInventory.order.batch}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.order.salesman != null and finishedGoodsInventory.order.salesman != ''"> |
| | | and o.salesman regexp #{finishedGoodsInventory.order.salesman} |
| | | and o.salesman like concat('%', #{finishedGoodsInventory.order.salesman}, '%') |
| | | </if> |
| | | |
| | | <if test="finishedGoodsInventory.orderDetail.height != null and finishedGoodsInventory.orderDetail.height != ''"> |
| | | and od.height regexp REGEXP_REPLACE(#{finishedGoodsInventory.orderDetail.height},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.inventory != null and finishedGoodsInventory.inventory != ''"> |
| | | and fgi.inventory regexp #{finishedGoodsInventory.inventory} |
| | | and fgi.inventory like concat('%', #{finishedGoodsInventory.inventory}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.quantityAvailable != null and finishedGoodsInventory.quantityAvailable != ''"> |
| | | and fgi.quantity_available regexp #{finishedGoodsInventory.quantityAvailable} |
| | | and fgi.quantity_available like concat('%', #{finishedGoodsInventory.quantityAvailable}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''"> |
| | | and fgi.actual_signal_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.actualSignalArea},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''"> |
| | | and fgi.area regexp REGEXP_REPLACE(#{finishedGoodsInventory.area},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.computeArea != null and finishedGoodsInventory.computeArea != ''"> |
| | | and fgi.compute_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.computeArea},'\\.0+$','') |
| | |
| | | <if test="finishedGoodsInventory.computeGrossArea != null and finishedGoodsInventory.computeGrossArea != ''"> |
| | | and fgi.compute_gross_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.computeGrossArea},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''"> |
| | | and fgi.area regexp REGEXP_REPLACE(#{finishedGoodsInventory.area},'\\.0+$','') |
| | | </if> |
| | | <if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''"> |
| | | and fgi.warehouse_number regexp #{finishedGoodsInventory.warehouseNumber} |
| | | and fgi.warehouse_number like concat('%', #{finishedGoodsInventory.warehouseNumber}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.storageRegion != null and finishedGoodsInventory.storageRegion != ''"> |
| | | and fgi.storage_region regexp #{finishedGoodsInventory.storageRegion} |
| | | and fgi.storage_region like concat('%', #{finishedGoodsInventory.storageRegion}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.status != null and finishedGoodsInventory.status != ''"> |
| | | and fgi.`status` regexp #{finishedGoodsInventory.status} |
| | | and fgi.`status` like concat('%', #{finishedGoodsInventory.status}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.enterStorageTime != null and finishedGoodsInventory.enterStorageTime != ''"> |
| | | and fgi.enter_storage_time regexp #{finishedGoodsInventory.enterStorageTime} |
| | | and fgi.enter_storage_time like concat('%', #{finishedGoodsInventory.enterStorageTime}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.updateTime != null and finishedGoodsInventory.updateTime != ''"> |
| | | and fgi.update_time regexp #{finishedGoodsInventory.updateTime} |
| | | and fgi.update_time like concat('%', #{finishedGoodsInventory.updateTime}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.endTime != null and finishedGoodsInventory.endTime != ''"> |
| | | and fgi.end_time regexp #{finishedGoodsInventory.endTime} |
| | | and fgi.end_time like concat('%', #{finishedGoodsInventory.endTime}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.remark != null and finishedGoodsInventory.remark != ''"> |
| | | and fgi.remark regexp #{finishedGoodsInventory.remark} |
| | | and fgi.remark like concat('%', #{finishedGoodsInventory.remark}, '%') |
| | | </if> |
| | | <if test="finishedGoodsInventory.boxNo != null and finishedGoodsInventory.boxNo != ''"> |
| | | and fgi.box_no regexp #{finishedGoodsInventory.boxNo} |
| | | and fgi.box_no like concat('%', #{finishedGoodsInventory.boxNo}, '%') |
| | | </if> |
| | | |
| | | </where> |
| | |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | (d.child_width + d.child_height) * 2 as 'perimeter', |
| | | c.quantity, |
| | | od.shape, |
| | | concat( c.process_id, '-', c.technology_number ) AS 'process_id', |
| | | c.process_id AS processId, |
| | | c.technology_number as layer, |
| | | c.layers_number as totalLayer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * c.quantity, 4 ) as 'area', |
| | | c.order_number, |
| | | d.icon AS markIcon, |
| | | op.project_name, |
| | | 0 as patchState, |
| | | c.rack AS rackNo, |
| | | 0 as heatLayoutId, |
| | | d.process, |
| | | o.order_id AS orderNo, |
| | | o.customer_name AS customerName, |
| | |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | (d.child_width + d.child_height) * 2 as 'perimeter', |
| | | c.patch_num as quantity, |
| | | od.shape, |
| | | concat( c.process_id, '-', c.technology_number ) AS 'process_id', |
| | | c.process_id AS 'process_ids', |
| | | c.technology_number as layer, |
| | | fc.layers_number as total_layer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * c.patch_num, 4 ) as 'area', |
| | | c.order_sort as order_number, |
| | | d.icon, |
| | | op.project_name, |
| | | 1 as patch_state, |
| | | a.id as rackNo, |
| | | 0 as heatLayoutId, |
| | | d.process, |
| | | o.order_id AS orderNo, |
| | | o.customer_name AS customerName, |
| | |
| | | <!--优化查询--> |
| | | <select id="computeAndOptimization"> |
| | | SELECT |
| | | c.project_no, |
| | | c.rack AS rackNo, |
| | | h.layout_id as heatLayoutId, |
| | | # h.layout_id as heatLayoutId, |
| | | h.width AS width, |
| | | h.height AS height, |
| | | (h.width + h.height) * 2 as 'perimeter', |
| | | od.shape, |
| | | count( 1 ) AS quantity, |
| | | concat( h.process_id, '-', h.layer ) AS processId, |
| | | concat( h.process_id, '-', h.layer ) AS process_id, |
| | | c.process_id AS processId, |
| | | h.process_id as process_ids, |
| | | h.layer, |
| | | c.layers_number as totalLayer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * count( 1 ), 4 ) AS 'area', |
| | | c.order_number, |
| | | h.order_sort AS orderSort, |
| | |
| | | WHERE |
| | | h.project_no = #{projectNo} |
| | | GROUP BY |
| | | h.layout_id, |
| | | # h.layout_id, |
| | | h.width, |
| | | h.height, |
| | | h.process_id, |