Compare commits
2 Commits
e937ff50f6
...
test.X
| Author | SHA1 | Date | |
|---|---|---|---|
| 75a2623d8b | |||
| 5d046be15b |
@@ -1,5 +1,5 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 科伦普冷轧涂镀数智运营一体化平台
|
VUE_APP_TITLE = MES一体化平台
|
||||||
|
|
||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
ENV = 'development'
|
ENV = 'development'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 科伦普冷轧涂镀数智运营一体化平台
|
VUE_APP_TITLE = MES一体化平台
|
||||||
|
|
||||||
# 生产环境配置
|
# 生产环境配置
|
||||||
ENV = 'production'
|
ENV = 'production'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VUE_APP_TITLE = 科伦普冷轧涂镀数智运营一体化平台
|
VUE_APP_TITLE = MES一体化平台
|
||||||
|
|
||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
ENV = 'development'
|
ENV = 'development'
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
<meta name="renderer" content="webkit">
|
<meta name="renderer" content="webkit">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
<link rel="icon" href="<%= BASE_URL %>favicon.png">
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
<title><%= webpackConfig.name %></title>
|
<title><%= webpackConfig.name %></title>
|
||||||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -345,15 +345,4 @@ export function categoryWidthStatistics() {
|
|||||||
url: '/wms/materialCoil/statistics/categoryWidthStatistics',
|
url: '/wms/materialCoil/statistics/categoryWidthStatistics',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 钢卷被退货,发给客户的钢卷被退货
|
|
||||||
*/
|
|
||||||
export function exportCoilWithAll(data) {
|
|
||||||
return request({
|
|
||||||
url: '/wms/materialCoil/exportAll',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -35,7 +35,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: '科伦普一体化平台',
|
title: 'MES一体化平台',
|
||||||
logo: logoImg
|
logo: logoImg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<img :src="avatar" class="user-avatar" alt="头像" />
|
<img :src="avatar" class="user-avatar" alt="头像" />
|
||||||
<div class="greeting-text">
|
<div class="greeting-text">
|
||||||
<div class="greeting-title">{{ greeting }},{{ name }}</div>
|
<div class="greeting-title">{{ greeting }},{{ name }}</div>
|
||||||
<div class="greeting-desc">欢迎使用科伦普冷轧涂渡数智一体化平台</div>
|
<div class="greeting-desc">欢迎使用MES数智一体化平台</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ export default {
|
|||||||
components: { Home },
|
components: { Home },
|
||||||
mounted() {
|
mounted() {
|
||||||
// 确保容器DOM已渲染后,对容器执行全屏
|
// 确保容器DOM已渲染后,对容器执行全屏
|
||||||
this.$nextTick(() => {
|
// this.$nextTick(() => {
|
||||||
this.enterFullscreen()
|
// this.enterFullscreen()
|
||||||
this.addFullscreenListener()
|
// this.addFullscreenListener()
|
||||||
})
|
// })
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
// 移除监听,避免内存泄漏
|
// 移除监听,避免内存泄漏
|
||||||
@@ -60,7 +60,7 @@ export default {
|
|||||||
!document.mozFullScreenElement &&
|
!document.mozFullScreenElement &&
|
||||||
!document.webkitFullscreenElement &&
|
!document.webkitFullscreenElement &&
|
||||||
!document.msFullscreenElement
|
!document.msFullscreenElement
|
||||||
|
|
||||||
if (isExit) {
|
if (isExit) {
|
||||||
// 退出全屏后返回上一页
|
// 退出全屏后返回上一页
|
||||||
this.$router.back()
|
this.$router.back()
|
||||||
@@ -91,4 +91,4 @@ export default {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
/* 可根据需要添加其他样式(如背景色等) */
|
/* 可根据需要添加其他样式(如背景色等) */
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,68 +1,71 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="dashboard-editor-container">
|
<!-- <div class="dashboard-editor-container">-->
|
||||||
<img src="http://kelunpuzhonggong.com/upload/img/20250427091033.jpg" alt="">
|
<!-- <img src="http://kelunpuzhonggong.com/upload/img/20250427091033.jpg" alt="">-->
|
||||||
|
<!-- -->
|
||||||
<div class="aboutus">
|
<!-- <div class="aboutus">-->
|
||||||
<el-row :gutter="30">
|
<!-- <el-row :gutter="30">-->
|
||||||
<!-- 左栏 -->
|
<!-- <!– 左栏 –>-->
|
||||||
<el-col :span="12" :xs="24">
|
<!-- <el-col :span="12" :xs="24">-->
|
||||||
<div class="aboutus-title">
|
<!-- <div class="aboutus-title">-->
|
||||||
<h2>关于我们</h2>
|
<!-- <h2>关于我们</h2>-->
|
||||||
<p>ABOUT US</p>
|
<!-- <p>ABOUT US</p>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<div class="aboutus-left">
|
<!-- <div class="aboutus-left">-->
|
||||||
<p class="aboutus-desc">
|
<!-- <p class="aboutus-desc">-->
|
||||||
嘉祥科伦普重工有限公司是山东省重点工程项目,是济宁市工程之一,也是科伦普产品结构调整重要的工程项目。工程采用了外方技术总负责、关键设备整体引进、点采集成、国内技术总成、自主创新、单体设备引进等多种建设方案,保证了技术先进和人才的培养,确保工程投产后达产达效。
|
<!-- MES一体化平台是面向制造企业车间执行层的生产信息化管理系统,为企业提供包括制造数据管理、计划排程管理、生产调度管理、库存管理、质量管理、人力资源管理、工作中心管理等多项企业管理功能。-->
|
||||||
</p>
|
<!-- </p>-->
|
||||||
<p class="aboutus-desc">
|
<!-- <p class="aboutus-desc">-->
|
||||||
科伦普冷轧重工有限公司是设计年产量150万吨,能向广大用户提供热轧酸洗、热轧镀锌、冷硬、罩式退火、冷轧镀锌、铝锌合金、锌铝合金、锌铝镁、镀铬等各大类产品。产品覆盖东北、华北、华东、华南等地区。
|
<!-- 平台通过互联网技术实现企业数字化转型,提高生产效率、降低成本、提升产品质量,实现精益化生产管理,帮助企业实现智能制造目标。-->
|
||||||
</p>
|
<!-- </p>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
|
|
||||||
<statistic-group />
|
<!-- <statistic-group />-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
|
|
||||||
<!-- 右栏 -->
|
<!-- <!– 右栏 –>-->
|
||||||
<el-col :span="12" :xs="24">
|
<!-- <el-col :span="12" :xs="24">-->
|
||||||
<img src="http://kelunpuzhonggong.com/upload/img/20251015103934.jpg" alt="">
|
<!-- <img src="http://kelunpuzhonggong.com/upload/img/20251015103934.jpg" alt="">-->
|
||||||
<!-- <div class="aboutus-right">
|
<!-- <!– <div class="aboutus-right">-->
|
||||||
<p class="aboutus-detail">
|
<!-- <p class="aboutus-detail">-->
|
||||||
嘉祥科伦普重工有限公司成立于2017年8月,注册资金33100万元,主要经营高铁设备、配件制造与销售,模具制造与销售,新材料技术研发,高性能有色金属及合金材料销售,机械零件、零部件加工与销售,金属材料制造与销售,锌铝镁新材料等。目前公司拥有10余项具有自主知识产权的发明专利技术,综合技术水平达国内领先,2024年公司主导产品国内市场占有率约占85%。2024年总资产5.98亿元,净资产4.49亿元,收入3.95亿元,公司现有员工238人,研究与试验发展人员57人,其中专职研究与试验发展人员52人,外聘专家5人。
|
<!-- 嘉祥科伦普重工有限公司成立于2017年8月,注册资金33100万元,主要经营高铁设备、配件制造与销售,模具制造与销售,新材料技术研发,高性能有色金属及合金材料销售,机械零件、零部件加工与销售,金属材料制造与销售,锌铝镁新材料等。目前公司拥有10余项具有自主知识产权的发明专利技术,综合技术水平达国内领先,2024年公司主导产品国内市场占有率约占85%。2024年总资产5.98亿元,净资产4.49亿元,收入3.95亿元,公司现有员工238人,研究与试验发展人员57人,其中专职研究与试验发展人员52人,外聘专家5人。-->
|
||||||
</p>
|
<!-- </p>-->
|
||||||
<p class="aboutus-detail">
|
<!-- <p class="aboutus-detail">-->
|
||||||
2024年公司新建科伦普合金新材料研发项目,占地290亩,采用国内先进的镀层核心技术和热处理工艺,专业生产锌铝镁板材和镀铬板材。致力于打造国内工艺链条最完善、产品型号最丰富的涂镀新材料生产企业。全部投产后可实现新增销售收入80亿元,利税4.7亿元,带动就业约500人。项目主要生产的冷轧板、锌铝镁涂层板、镀铬涂层板、镀锡涂层板等产品,涵盖0.08MM-6.0MM区间60多种产品,是国内单个企业产品种类最多的项目。产品因其防锈、耐氧化、耐腐蚀、高电导、高稳定的优秀特性,广泛应用于建筑结构件、汽车制造、轻工家电、食品包装、医疗器械、电子通讯、航空航天领域。
|
<!-- 2024年公司新建科伦普合金新材料研发项目,占地290亩,采用国内先进的镀层核心技术和热处理工艺,专业生产锌铝镁板材和镀铬板材。致力于打造国内工艺链条最完善、产品型号最丰富的涂镀新材料生产企业。全部投产后可实现新增销售收入80亿元,利税4.7亿元,带动就业约500人。项目主要生产的冷轧板、锌铝镁涂层板、镀铬涂层板、镀锡涂层板等产品,涵盖0.08MM-6.0MM区间60多种产品,是国内单个企业产品种类最多的项目。产品因其防锈、耐氧化、耐腐蚀、高电导、高稳定的优秀特性,广泛应用于建筑结构件、汽车制造、轻工家电、食品包装、医疗器械、电子通讯、航空航天领域。-->
|
||||||
</p>
|
<!-- </p>-->
|
||||||
</div> -->
|
<!-- </div> –>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
</el-row>
|
<!-- </el-row>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
|
|
||||||
<!-- <div>
|
<!-- <!– <div>-->
|
||||||
<statistic-group />
|
<!-- <statistic-group />-->
|
||||||
</div> -->
|
<!-- </div> –>-->
|
||||||
|
<!-- -->
|
||||||
<!-- <AllApplications />
|
<!-- <!– <AllApplications /> -->
|
||||||
<el-row :gutter="10">
|
<!-- <el-row :gutter="10">-->
|
||||||
<el-col :span="18">
|
<!-- <el-col :span="18">-->
|
||||||
<el-empty description="办公模块定制开发中"></el-empty>
|
<!-- <el-empty description="办公模块定制开发中"></el-empty>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
<el-col :span="6">
|
<!-- <el-col :span="6">-->
|
||||||
<mini-calendar />
|
<!-- <mini-calendar />-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
</el-row> -->
|
<!-- </el-row> –>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
|
<Dashboard />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import StatisticGroup from '@/components/HomeModules/StatisticGroup.vue'
|
import StatisticGroup from '@/components/HomeModules/StatisticGroup.vue'
|
||||||
// import AllApplications from '@/components/HomeModules/AllApplications.vue'
|
// import AllApplications from '@/components/HomeModules/AllApplications.vue'
|
||||||
// import MiniCalendar from '@/components/HomeModules/MiniCalendar.vue'
|
// import MiniCalendar from '@/components/HomeModules/MiniCalendar.vue'
|
||||||
|
import Dashboard from '@/views/dashboard/demo.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Index',
|
name: 'Index',
|
||||||
components: {
|
components: {
|
||||||
// PanelGroup,
|
// PanelGroup,
|
||||||
StatisticGroup,
|
StatisticGroup,
|
||||||
|
Dashboard,
|
||||||
// AllApplications,
|
// AllApplications,
|
||||||
// MiniCalendar,
|
// MiniCalendar,
|
||||||
},
|
},
|
||||||
@@ -193,4 +196,4 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -3,15 +3,14 @@
|
|||||||
<div class="login-box">
|
<div class="login-box">
|
||||||
<div class="login-left">
|
<div class="login-left">
|
||||||
<div class="login-title-welcome">
|
<div class="login-title-welcome">
|
||||||
<img src="../assets/logo/logo.png" alt="logo" class="logo-img" />
|
<!-- <img src="../assets/logo/logo.png" alt="logo" class="logo-img" />-->
|
||||||
<span class="login-title">欢迎使用科伦普冷轧涂镀数智一体化平台</span>
|
<span class="login-title">欢迎使用MES一体化平台</span>
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
嘉祥科伦普重工有限公司是山东省重点工程项目,是济宁市工程之一,也是科伦普产品结构调整重要的工程项目。工程采用了外方技术总负责、关键设备整体引进、点采集成、国内技术总成、自主创新、单体设备引进等多种建设方
|
MES一体化平台是面向制造企业车间执行层的生产信息化管理系统,为企业提供包括制造数据管理、计划排程管理、生产调度管理、库存管理、质量管理、人力资源管理、工作中心管理等多项企业管理功能。
|
||||||
案,保证了技术先进和人才的培养,确保工程投产后达产达效。
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
科伦普冷轧重工有限公司是设计年产量150万 吨,能向广大用户提供热轧酸洗、热轧镀锌、冷硬、罩式退火、冷轧镀锌、铝锌合金、锌铝合金、锌铝镁、镀铬等各大类产品。产品覆盖东北、华北、华东、华南等地区。
|
平台通过互联网技术实现企业数字化转型,提高生产效率、降低成本、提升产品质量,实现精益化生产管理。
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -300,4 +299,4 @@ $--metal-gradient-light: linear-gradient(145deg, #f5f5f550, #ffffff50);
|
|||||||
color: $--color-text-secondary; // 浅灰色文字
|
color: $--color-text-secondary; // 浅灰色文字
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -114,7 +114,7 @@
|
|||||||
Jiaxiang County,Jining City,Shandong Province</span>
|
Jiaxiang County,Jining City,Shandong Province</span>
|
||||||
<br />
|
<br />
|
||||||
<span>
|
<span>
|
||||||
TEL:1905-3728822 1905-3728835
|
TEL:0537-6625068 0537-6625067
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact-timestamp">
|
<div class="contact-timestamp">
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
v-if="tagType === 'ge'"
|
v-if="tagType === 'ge'"
|
||||||
:content="content"
|
:content="content"
|
||||||
:paperWidthMm="180"
|
:paperWidthMm="180"
|
||||||
:paperHeightMm="100"
|
:paperHeightMm="80"
|
||||||
/>
|
/>
|
||||||
<!-- <SampleTagPreview v-if="labelType === '4'" :content="content" />
|
<!-- <SampleTagPreview v-if="labelType === '4'" :content="content" />
|
||||||
<ForgeTagPreview v-if="labelType === '5'" :content="content" />
|
<ForgeTagPreview v-if="labelType === '5'" :content="content" />
|
||||||
@@ -141,7 +141,7 @@ export default {
|
|||||||
handler(newVal) {
|
handler(newVal) {
|
||||||
const { itemName, itemType, warehouseId } = newVal;
|
const { itemName, itemType, warehouseId } = newVal;
|
||||||
// 在镀锌颜料库的卷使用镀锌原料标签
|
// 在镀锌颜料库的卷使用镀锌原料标签
|
||||||
if (itemType == 'raw_material' && (warehouseId == '1988150263284953089' || warehouseId == '1988150487185289217')) {
|
if (itemType == 'raw_material' && warehouseId == '1988150263284953089') {
|
||||||
this.labelType = '5';
|
this.labelType = '5';
|
||||||
} else if (itemType == 'raw_material') {
|
} else if (itemType == 'raw_material') {
|
||||||
this.labelType = '2';
|
this.labelType = '2';
|
||||||
|
|||||||
@@ -1,138 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="hot-zha-raw">
|
|
||||||
<!-- 使用 el-table 展示数据 -->
|
|
||||||
<el-table
|
|
||||||
v-loading="loading"
|
|
||||||
:data="processedData"
|
|
||||||
border
|
|
||||||
style="width: 100%;"
|
|
||||||
:header-cell-style="{background: '#f2f2f2', fontWeight: 600}"
|
|
||||||
>
|
|
||||||
<!-- 类别列 -->
|
|
||||||
<el-table-column
|
|
||||||
label="类别"
|
|
||||||
prop="category"
|
|
||||||
min-width="180"
|
|
||||||
align="left"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 合并的净边表头 -->
|
|
||||||
<el-table-column
|
|
||||||
label="净边"
|
|
||||||
align="center"
|
|
||||||
>
|
|
||||||
<el-table-column
|
|
||||||
label="1000"
|
|
||||||
prop="width1000"
|
|
||||||
min-width="100"
|
|
||||||
align="center"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
label="1200"
|
|
||||||
prop="width1200"
|
|
||||||
min-width="100"
|
|
||||||
align="center"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
label="1220"
|
|
||||||
prop="width1220"
|
|
||||||
min-width="100"
|
|
||||||
align="center"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
label="1250"
|
|
||||||
prop="width1250"
|
|
||||||
min-width="100"
|
|
||||||
align="center"
|
|
||||||
/>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<!-- 其他宽度及毛边列 -->
|
|
||||||
<el-table-column
|
|
||||||
label="其他宽度及毛边"
|
|
||||||
prop="otherWidth"
|
|
||||||
min-width="120"
|
|
||||||
align="center"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 合计列 -->
|
|
||||||
<el-table-column
|
|
||||||
label="合计"
|
|
||||||
prop="total"
|
|
||||||
min-width="100"
|
|
||||||
align="center"
|
|
||||||
:cell-style="{fontWeight: 600, color: '#1890ff'}"
|
|
||||||
/>
|
|
||||||
</el-table>
|
|
||||||
|
|
||||||
<!-- 无数据提示(el-table 自带空数据提示,这里可保留统一样式) -->
|
|
||||||
<div v-if="!data || data.length === 0" class="empty-data">
|
|
||||||
暂无数据
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: 'HotZhaRaw',
|
|
||||||
props: {
|
|
||||||
data: {
|
|
||||||
type: Array,
|
|
||||||
default: () => []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
loading: false // 可根据实际需求控制加载状态
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
processedData() {
|
|
||||||
if (!this.data || !Array.isArray(this.data)) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
console.log(this.data);
|
|
||||||
// 深拷贝避免修改原数据
|
|
||||||
return this.data;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// el-table 专用的数字格式化方法
|
|
||||||
formatTableNumber(row, column) {
|
|
||||||
const num = row[column.prop];
|
|
||||||
if (num === null || num === undefined || num === '') return '0.000';
|
|
||||||
return Number(num).toFixed(3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.hot-zha-raw {
|
|
||||||
width: 100%;
|
|
||||||
min-height: 200px;
|
|
||||||
padding: 10px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.empty-data {
|
|
||||||
text-align: center;
|
|
||||||
padding: 40px;
|
|
||||||
color: #999;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 覆盖 el-table 样式,保持视觉统一 */
|
|
||||||
:deep(.el-table) {
|
|
||||||
--el-table-header-text-color: #303133;
|
|
||||||
--el-table-row-hover-bg-color: #f8f9fa;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-table th) {
|
|
||||||
border-right: 1px solid #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-table td) {
|
|
||||||
border-right: 1px solid #ddd;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="trim-statistics-table">
|
<div class="trim-statistics-table">
|
||||||
<el-table
|
<el-table
|
||||||
:data="filteredTableData"
|
:data="tableData"
|
||||||
border
|
border
|
||||||
stripe
|
stripe
|
||||||
:span-method="objectSpanMethod"
|
:span-method="objectSpanMethod"
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
align="center"
|
align="center"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 冷硬卷板净边料现货库存 独立表头组 -->
|
<!-- 冷硬卷板净边料现货库存 表头组 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="冷硬卷板净边料现货库存"
|
label="冷硬卷板净边料现货库存"
|
||||||
align="center"
|
align="center"
|
||||||
@@ -27,19 +27,18 @@
|
|||||||
<el-table-column label="数量(件)" prop="trimmedTotalCount" width="80" align="center" />
|
<el-table-column label="数量(件)" prop="trimmedTotalCount" width="80" align="center" />
|
||||||
<el-table-column label="重量(吨)" prop="trimmedTotalWeight" width="80" align="center" />
|
<el-table-column label="重量(吨)" prop="trimmedTotalWeight" width="80" align="center" />
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 净边料独立宽度列(合并后的分组) -->
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-for="group in trimmedWidthGroups"
|
v-for="width in widthList"
|
||||||
:key="'trimmed-' + group.key"
|
:key="'trimmed-' + width"
|
||||||
:label="group.label"
|
:label="width"
|
||||||
align="center"
|
align="center"
|
||||||
>
|
>
|
||||||
<el-table-column label="数量(件)" :prop="`trimmed_${group.key}_count`" width="80" align="center" />
|
<el-table-column label="数量(件)" :prop="`trimmed_${width}_count`" width="80" align="center" />
|
||||||
<el-table-column label="重量(吨)" :prop="`trimmed_${group.key}_weight`" width="80" align="center" />
|
<el-table-column label="重量(吨)" :prop="`trimmed_${width}_weight`" width="80" align="center" />
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<!-- 冷硬卷板毛边料现货库存 独立表头组 -->
|
<!-- 冷硬卷板毛边料现货库存 表头组 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="冷硬卷板毛边料现货库存"
|
label="冷硬卷板毛边料现货库存"
|
||||||
align="center"
|
align="center"
|
||||||
@@ -51,15 +50,14 @@
|
|||||||
<el-table-column label="数量(件)" prop="untrimmedTotalCount" width="80" align="center" />
|
<el-table-column label="数量(件)" prop="untrimmedTotalCount" width="80" align="center" />
|
||||||
<el-table-column label="重量(吨)" prop="untrimmedTotalWeight" width="80" align="center" />
|
<el-table-column label="重量(吨)" prop="untrimmedTotalWeight" width="80" align="center" />
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 毛边料独立宽度列(合并后的分组) -->
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-for="group in untrimmedWidthGroups"
|
v-for="width in widthList"
|
||||||
:key="'untrimmed-' + group.key"
|
:key="'untrimmed-' + width"
|
||||||
:label="group.label"
|
:label="width"
|
||||||
align="center"
|
align="center"
|
||||||
>
|
>
|
||||||
<el-table-column label="数量(件)" :prop="`untrimmed_${group.key}_count`" width="80" align="center" />
|
<el-table-column label="数量(件)" :prop="`untrimmed_${width}_count`" width="80" align="center" />
|
||||||
<el-table-column label="重量(吨)" :prop="`untrimmed_${group.key}_weight`" width="80" align="center" />
|
<el-table-column label="重量(吨)" :prop="`untrimmed_${width}_weight`" width="80" align="center" />
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -73,202 +71,69 @@ export default {
|
|||||||
data: {
|
data: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => []
|
default: () => []
|
||||||
},
|
|
||||||
// 可配置的宽度分组规则(支持自定义)
|
|
||||||
widthGroupRules: {
|
|
||||||
type: Object,
|
|
||||||
default: () => ({
|
|
||||||
'1000系列': ['1000', '1000~1005', '1010/1015'],
|
|
||||||
'1200基础系列': ['1200/1202', '1200~1215'],
|
|
||||||
'1218基础系列': ['1218/1220', '1218~1235', '1210/1215'],
|
|
||||||
'1240系列': ['1240/1252'],
|
|
||||||
'1225系列': ['1225/1235'],
|
|
||||||
'1250+系列': ['1250~1265', '1260-1265']
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// ========== 净边料相关计算 ==========
|
// 定义表格中需要展示的宽度规格(与图片中一致)
|
||||||
// 提取净边料所有原始宽度
|
widthList() {
|
||||||
rawTrimmedWidths() {
|
return [
|
||||||
const widthSet = new Set();
|
'1000', '1200/1202', '1218/1220', '1240/1252',
|
||||||
this.data.forEach(item => {
|
'1010/1015', '1210/1215', '1225/1235', '1260-1265',
|
||||||
item.trimmedList.forEach(trimmed => {
|
'1000~1005', '1200~1215', '1218~1235', '1250~1265'
|
||||||
if (trimmed.width) widthSet.add(trimmed.width);
|
];
|
||||||
});
|
|
||||||
});
|
|
||||||
return Array.from(widthSet);
|
|
||||||
},
|
},
|
||||||
// 净边料宽度分组(合并相近宽度)
|
// 处理后的数据(适配表格列结构)
|
||||||
trimmedWidthGroups() {
|
|
||||||
return this.generateWidthGroups(this.rawTrimmedWidths);
|
|
||||||
},
|
|
||||||
|
|
||||||
// ========== 毛边料相关计算 ==========
|
|
||||||
// 提取毛边料所有原始宽度
|
|
||||||
rawUntrimmedWidths() {
|
|
||||||
const widthSet = new Set();
|
|
||||||
this.data.forEach(item => {
|
|
||||||
item.untrimmedList.forEach(untrimmed => {
|
|
||||||
if (untrimmed.width) widthSet.add(untrimmed.width);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return Array.from(widthSet);
|
|
||||||
},
|
|
||||||
// 毛边料宽度分组(合并相近宽度)
|
|
||||||
untrimmedWidthGroups() {
|
|
||||||
return this.generateWidthGroups(this.rawUntrimmedWidths);
|
|
||||||
},
|
|
||||||
|
|
||||||
// 处理后的原始表格数据
|
|
||||||
tableData() {
|
tableData() {
|
||||||
return this.data.map(item => {
|
return this.data.map(item => {
|
||||||
const row = {
|
const row = {
|
||||||
thickness: item.thickness,
|
thickness: item.thickness,
|
||||||
trimmedTotalCount: 0,
|
trimmedTotalCount: 0, // 净边料总计数量
|
||||||
trimmedTotalWeight: 0,
|
trimmedTotalWeight: 0, // 净边料总计重量
|
||||||
untrimmedTotalCount: 0,
|
untrimmedTotalCount: 0, // 毛边料总计数量
|
||||||
untrimmedTotalWeight: 0
|
untrimmedTotalWeight: 0 // 毛边料总计重量
|
||||||
};
|
};
|
||||||
|
|
||||||
// 初始化净边料分组数据
|
// 初始化所有宽度的数量和重量为0
|
||||||
this.trimmedWidthGroups.forEach(group => {
|
this.widthList.forEach(width => {
|
||||||
row[`trimmed_${group.key}_count`] = 0;
|
row[`trimmed_${width}_count`] = 0;
|
||||||
row[`trimmed_${group.key}_weight`] = 0;
|
row[`trimmed_${width}_weight`] = 0;
|
||||||
|
row[`untrimmed_${width}_count`] = 0;
|
||||||
|
row[`untrimmed_${width}_weight`] = 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 初始化毛边料分组数据
|
// 处理净边料数据
|
||||||
this.untrimmedWidthGroups.forEach(group => {
|
|
||||||
row[`untrimmed_${group.key}_count`] = 0;
|
|
||||||
row[`untrimmed_${group.key}_weight`] = 0;
|
|
||||||
});
|
|
||||||
|
|
||||||
// 处理净边料数据(按分组求和)
|
|
||||||
item.trimmedList.forEach(trimmed => {
|
item.trimmedList.forEach(trimmed => {
|
||||||
const width = trimmed.width;
|
const widthKey = trimmed.width;
|
||||||
const count = Number(trimmed.coilCount) || 0;
|
if (this.widthList.includes(widthKey)) {
|
||||||
const weight = Number(trimmed.totalWeight) || 0;
|
row[`trimmed_${widthKey}_count`] = trimmed.coilCount;
|
||||||
|
row[`trimmed_${widthKey}_weight`] = trimmed.totalWeight;
|
||||||
// 找到宽度所属的分组并累加
|
// 累加总计
|
||||||
this.trimmedWidthGroups.forEach(group => {
|
row.trimmedTotalCount += trimmed.coilCount;
|
||||||
if (group.includesWidth(width)) {
|
row.trimmedTotalWeight = (Number(row.trimmedTotalWeight) + Number(trimmed.totalWeight)).toFixed(3);
|
||||||
row[`trimmed_${group.key}_count`] += count;
|
}
|
||||||
row[`trimmed_${group.key}_weight`] = (row[`trimmed_${group.key}_weight`] + weight).toFixed(3);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 累加总计
|
|
||||||
row.trimmedTotalCount += count;
|
|
||||||
row.trimmedTotalWeight = (Number(row.trimmedTotalWeight) + weight).toFixed(3);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// 处理毛边料数据(按分组求和)
|
// 处理毛边料数据
|
||||||
item.untrimmedList.forEach(untrimmed => {
|
item.untrimmedList.forEach(untrimmed => {
|
||||||
const width = untrimmed.width;
|
const widthKey = untrimmed.width;
|
||||||
const count = Number(untrimmed.coilCount) || 0;
|
if (this.widthList.includes(widthKey)) {
|
||||||
const weight = Number(untrimmed.totalWeight) || 0;
|
row[`untrimmed_${widthKey}_count`] = untrimmed.coilCount;
|
||||||
|
row[`untrimmed_${widthKey}_weight`] = untrimmed.totalWeight;
|
||||||
// 找到宽度所属的分组并累加
|
// 累加总计
|
||||||
this.untrimmedWidthGroups.forEach(group => {
|
row.untrimmedTotalCount += untrimmed.coilCount;
|
||||||
if (group.includesWidth(width)) {
|
row.untrimmedTotalWeight = (Number(row.untrimmedTotalWeight) + Number(untrimmed.totalWeight)).toFixed(3);
|
||||||
row[`untrimmed_${group.key}_count`] += count;
|
}
|
||||||
row[`untrimmed_${group.key}_weight`] = (row[`untrimmed_${group.key}_weight`] + weight).toFixed(3);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 累加总计
|
|
||||||
row.untrimmedTotalCount += count;
|
|
||||||
row.untrimmedTotalWeight = (Number(row.untrimmedTotalWeight) + weight).toFixed(3);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return row;
|
return row;
|
||||||
});
|
});
|
||||||
},
|
|
||||||
|
|
||||||
// 过滤掉全0的行
|
|
||||||
filteredTableData() {
|
|
||||||
return this.tableData.filter(row => {
|
|
||||||
let hasNonZeroData = false;
|
|
||||||
|
|
||||||
// 检查净边料总计
|
|
||||||
if (Number(row.trimmedTotalCount) > 0 || Number(row.trimmedTotalWeight) > 0) {
|
|
||||||
hasNonZeroData = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 检查毛边料总计
|
|
||||||
if (Number(row.untrimmedTotalCount) > 0 || Number(row.untrimmedTotalWeight) > 0) {
|
|
||||||
hasNonZeroData = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 检查净边料分组列
|
|
||||||
if (!hasNonZeroData) {
|
|
||||||
this.trimmedWidthGroups.forEach(group => {
|
|
||||||
if (Number(row[`trimmed_${group.key}_count`]) > 0 || Number(row[`trimmed_${group.key}_weight`]) > 0) {
|
|
||||||
hasNonZeroData = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 检查毛边料分组列
|
|
||||||
if (!hasNonZeroData) {
|
|
||||||
this.untrimmedWidthGroups.forEach(group => {
|
|
||||||
if (Number(row[`untrimmed_${group.key}_count`]) > 0 || Number(row[`untrimmed_${group.key}_weight`]) > 0) {
|
|
||||||
hasNonZeroData = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return hasNonZeroData;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 生成宽度分组(核心方法)
|
// 合并表头的跨度方法(可选,若需要合并行/列可扩展)
|
||||||
generateWidthGroups(rawWidths) {
|
|
||||||
const groups = [];
|
|
||||||
const usedWidths = new Set();
|
|
||||||
|
|
||||||
// 遍历分组规则,匹配原始宽度
|
|
||||||
Object.entries(this.widthGroupRules).forEach(([groupLabel, widthList]) => {
|
|
||||||
// 筛选出当前分组包含的原始宽度
|
|
||||||
const matchedWidths = rawWidths.filter(width => widthList.includes(width));
|
|
||||||
if (matchedWidths.length === 0) return;
|
|
||||||
|
|
||||||
// 创建分组对象
|
|
||||||
const groupKey = groupLabel.replace(/[^a-zA-Z0-9]/g, '_');
|
|
||||||
groups.push({
|
|
||||||
key: groupKey,
|
|
||||||
label: groupLabel,
|
|
||||||
widths: matchedWidths,
|
|
||||||
includesWidth: function(width) {
|
|
||||||
return this.widths.includes(width);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 标记已使用的宽度
|
|
||||||
matchedWidths.forEach(width => usedWidths.add(width));
|
|
||||||
});
|
|
||||||
|
|
||||||
// 处理未匹配到分组的宽度(单独成组)
|
|
||||||
rawWidths.forEach(width => {
|
|
||||||
if (!usedWidths.has(width)) {
|
|
||||||
const groupKey = width.replace(/[^a-zA-Z0-9]/g, '_');
|
|
||||||
groups.push({
|
|
||||||
key: groupKey,
|
|
||||||
label: width,
|
|
||||||
widths: [width],
|
|
||||||
includesWidth: function(width) {
|
|
||||||
return this.widths.includes(width);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return groups;
|
|
||||||
},
|
|
||||||
|
|
||||||
// 合并表头的跨度方法
|
|
||||||
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||||||
|
// 可根据需求实现行/列合并逻辑,例如合并重复的厚度行
|
||||||
|
// 示例:若需合并相同厚度的行,可在此处返回 { rowspan: n, colspan: m }
|
||||||
return { rowspan: 1, colspan: 1 };
|
return { rowspan: 1, colspan: 1 };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,6 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
<el-button icon="el-icon-download" size="mini" @click="handleNewExport" v-if="showNewExport">导出</el-button>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
@@ -74,9 +73,6 @@
|
|||||||
<el-button type="info" plain icon="el-icon-printer" size="mini" :disabled="multiple"
|
<el-button type="info" plain icon="el-icon-printer" size="mini" :disabled="multiple"
|
||||||
@click="handleBatchPrintLabel">批量打印标签</el-button>
|
@click="handleBatchPrintLabel">批量打印标签</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5" v-if="showOrderBy">
|
|
||||||
<el-checkbox v-model="queryParams.orderBy" v-loading="loading" @change="getList" label="orderBy">按实际库区排序</el-checkbox>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
@@ -181,8 +177,7 @@
|
|||||||
|
|
||||||
<el-table-column label="关联订单" align="center" prop="relatedToOrder" v-if="showRelatedToOrder" width="150">
|
<el-table-column label="关联订单" align="center" prop="relatedToOrder" v-if="showRelatedToOrder" width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-switch @change="handleRelatedToOrderChange(scope.row)" v-model="scope.row.isRelatedToOrder"
|
<el-switch @change="handleRelatedToOrderChange(scope.row)" v-model="scope.row.isRelatedToOrder" :active-value="1" :inactive-value="0" />
|
||||||
:active-value="1" :inactive-value="0" />
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
@@ -409,8 +404,7 @@ import {
|
|||||||
exportCoil,
|
exportCoil,
|
||||||
cancelExportCoil,
|
cancelExportCoil,
|
||||||
checkCoilNo,
|
checkCoilNo,
|
||||||
returnCoil,
|
returnCoil
|
||||||
exportCoilWithAll
|
|
||||||
} from "@/api/wms/coil";
|
} from "@/api/wms/coil";
|
||||||
import { listBoundCoil } from "@/api/wms/deliveryWaybillDetail";
|
import { listBoundCoil } from "@/api/wms/deliveryWaybillDetail";
|
||||||
import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
|
import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
|
||||||
@@ -535,14 +529,6 @@ export default {
|
|||||||
showRelatedToOrder: {
|
showRelatedToOrder: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
|
||||||
showOrderBy: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
showNewExport: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -591,7 +577,6 @@ export default {
|
|||||||
itemIds: undefined,
|
itemIds: undefined,
|
||||||
status: undefined,
|
status: undefined,
|
||||||
updateTime: undefined,
|
updateTime: undefined,
|
||||||
orderBy: false,
|
|
||||||
...this.querys,
|
...this.querys,
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
@@ -802,26 +787,8 @@ export default {
|
|||||||
handlePrintLabel(row) {
|
handlePrintLabel(row) {
|
||||||
const item = row.itemType === 'product' ? row.product : row.rawMaterial;
|
const item = row.itemType === 'product' ? row.product : row.rawMaterial;
|
||||||
const itemName = row.itemType === 'product' ? item?.productName || '' : item?.rawMaterialName || '';
|
const itemName = row.itemType === 'product' ? item?.productName || '' : item?.rawMaterialName || '';
|
||||||
const itemType = row.itemType || '';
|
|
||||||
const warehouseId = row.warehouseId || '';
|
this.labelRender.type = row.itemType === 'product' ? '3' : '2';
|
||||||
// 在镀锌颜料库的卷使用镀锌原料标签
|
|
||||||
if (itemType == 'raw_material' && (warehouseId == '1988150263284953089' || warehouseId == '1988150487185289217')) {
|
|
||||||
this.labelRender.type = '5';
|
|
||||||
} else if (itemType == 'raw_material') {
|
|
||||||
this.labelRender.type = '2';
|
|
||||||
} else if (itemType == 'product' && itemName == '冷硬卷') {
|
|
||||||
this.labelRender.type = '3';
|
|
||||||
} else if (itemType == 'product' && itemName == '热轧卷板') {
|
|
||||||
this.labelRender.type = '3';
|
|
||||||
} else if (itemType == 'product' && itemName == '镀锌卷') {
|
|
||||||
this.labelRender.type = '4';
|
|
||||||
} else if (itemType == 'product' && itemName == '冷轧卷') {
|
|
||||||
this.labelRender.type = '3';
|
|
||||||
} else if (itemType == 'product' && itemName == '镀铬卷') {
|
|
||||||
this.labelRender.type = 'ge';
|
|
||||||
} else {
|
|
||||||
this.labelRender.type = '3';
|
|
||||||
}
|
|
||||||
this.labelRender.data = {
|
this.labelRender.data = {
|
||||||
...row,
|
...row,
|
||||||
itemName: itemName,
|
itemName: itemName,
|
||||||
@@ -931,6 +898,12 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleAbnormal(row) {
|
handleAbnormal(row) {
|
||||||
|
// this.$router.push({
|
||||||
|
// path: '/quality/detail',
|
||||||
|
// query: {
|
||||||
|
// coilId: row.coilId,
|
||||||
|
// }
|
||||||
|
// })
|
||||||
this.currentCoilId = row.coilId;
|
this.currentCoilId = row.coilId;
|
||||||
this.abnormalOpen = true;
|
this.abnormalOpen = true;
|
||||||
},
|
},
|
||||||
@@ -1046,33 +1019,6 @@ export default {
|
|||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
this.$modal.msgError("发货失败");
|
this.$modal.msgError("发货失败");
|
||||||
});
|
});
|
||||||
},
|
|
||||||
async handleNewExport(row) {
|
|
||||||
this.loading = true
|
|
||||||
let coilIds = ''
|
|
||||||
const query = {
|
|
||||||
...this.queryParams,
|
|
||||||
selectType: 'product',
|
|
||||||
pageSize: 9999,
|
|
||||||
pageNum: 1,
|
|
||||||
}
|
|
||||||
if (this.showWaybill) {
|
|
||||||
const res = await listBoundCoil(query)
|
|
||||||
coilIds = res.rows.map(item => item.coilId).join(',')
|
|
||||||
this.loading = false
|
|
||||||
this.download('wms/deliveryWaybill/export', {
|
|
||||||
coilIds,
|
|
||||||
}, 'coil.xlsx')
|
|
||||||
} else {
|
|
||||||
const { rows: coils } = await listMaterialCoil(query)
|
|
||||||
coilIds = coils.map(item => item.coilId).join(',')
|
|
||||||
this.loading = false
|
|
||||||
this.download('wms/materialCoil/exportAll', {
|
|
||||||
coilIds,
|
|
||||||
}, 'coil.xlsx')
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
handleCheck(row) {
|
handleCheck(row) {
|
||||||
this.isCheck = true;
|
this.isCheck = true;
|
||||||
@@ -1207,6 +1153,7 @@ export default {
|
|||||||
...this.queryParams
|
...this.queryParams
|
||||||
}, `materialCoil_${new Date().getTime()}.xlsx`)
|
}, `materialCoil_${new Date().getTime()}.xlsx`)
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 批量打印标签按钮 */
|
/** 批量打印标签按钮 */
|
||||||
handleBatchPrintLabel() {
|
handleBatchPrintLabel() {
|
||||||
if (!this.ids || this.ids.length === 0) {
|
if (!this.ids || this.ids.length === 0) {
|
||||||
|
|||||||
@@ -661,7 +661,7 @@ export default {
|
|||||||
const itemType = row.itemType || '';
|
const itemType = row.itemType || '';
|
||||||
const warehouseId = row.warehouseId || '';
|
const warehouseId = row.warehouseId || '';
|
||||||
// 在镀锌颜料库的卷使用镀锌原料标签
|
// 在镀锌颜料库的卷使用镀锌原料标签
|
||||||
if (itemType == 'raw_material' && (warehouseId == '1988150263284953089' || warehouseId == '1988150487185289217')) {
|
if (itemType == 'raw_material' && warehouseId == '1988150263284953089') {
|
||||||
this.labelRender.type = '5';
|
this.labelRender.type = '5';
|
||||||
} else if (itemType == 'raw_material') {
|
} else if (itemType == 'raw_material') {
|
||||||
this.labelRender.type = '2';
|
this.labelRender.type = '2';
|
||||||
|
|||||||
@@ -55,10 +55,12 @@
|
|||||||
|
|
||||||
<!-- 添加或修改钢卷生产统计对话框 -->
|
<!-- 添加或修改钢卷生产统计对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||||
<div v-for="item in tableType" :key="item.statType" @click="handleCreate(item)" class="type-item">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
<div class="type-title">{{ item.title }}</div>
|
<div v-for="item in tableType" :key="item.statType" @click="handleCreate(item)" class="type-item">
|
||||||
<div class="type-desc">{{ item.description }}</div>
|
<div class="type-title">{{ item.title }}</div>
|
||||||
</div>
|
<div class="type-desc">{{ item.description }}</div>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
|||||||
@@ -78,7 +78,19 @@ export default {
|
|||||||
currentRow: {},
|
currentRow: {},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/** 查询钢卷生产统计列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listCoilStatisticsSummary(this.queryParams).then(response => {
|
||||||
|
this.coilStatisticsSummaryList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
this.open = false;
|
this.open = false;
|
||||||
|
|||||||
@@ -29,8 +29,7 @@ export default {
|
|||||||
showStatus: true,
|
showStatus: true,
|
||||||
hideType: true,
|
hideType: true,
|
||||||
showLength: true,
|
showLength: true,
|
||||||
canExportAll: true,
|
canExportAll: true
|
||||||
showOrderBy: true,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,6 @@
|
|||||||
<BasePage :qrcode="qrcode" :querys="querys" :labelType="labelType" :hideWarehouseQuery="hideWarehouseQuery"
|
<BasePage :qrcode="qrcode" :querys="querys" :labelType="labelType" :hideWarehouseQuery="hideWarehouseQuery"
|
||||||
:hideType="hideType" />
|
:hideType="hideType" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="次品" name="third">
|
|
||||||
<BasePage :qrcode="qrcode" :querys="query3" :labelType="labelType" :hideWarehouseQuery="hideWarehouseQuery"
|
|
||||||
:hideType="hideType" />
|
|
||||||
</el-tab-pane>
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -38,10 +34,6 @@ export default {
|
|||||||
nextWarehouseId: '2019583429955104769', // 废品仓
|
nextWarehouseId: '2019583429955104769', // 废品仓
|
||||||
// materialType: '废品'
|
// materialType: '废品'
|
||||||
},
|
},
|
||||||
query3: {
|
|
||||||
dataType: 1,
|
|
||||||
OnlyScrap: true,
|
|
||||||
},
|
|
||||||
hideWarehouseQuery: true,
|
hideWarehouseQuery: true,
|
||||||
showAbnormal: true,
|
showAbnormal: true,
|
||||||
labelType: '2',
|
labelType: '2',
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
<BasePage
|
<BasePage
|
||||||
:qrcode="qrcode"
|
:qrcode="qrcode"
|
||||||
:showWaybill="showWaybill"
|
:showWaybill="showWaybill"
|
||||||
:showNewExport="showNewExport"
|
|
||||||
:querys="querys" :labelType="labelType" :showStatus="showStatus" :hideType="hideType" :showControl="showControl" :showExportTime="showExportTime" />
|
:querys="querys" :labelType="labelType" :showStatus="showStatus" :hideType="hideType" :showControl="showControl" :showExportTime="showExportTime" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -28,7 +27,6 @@ export default {
|
|||||||
hideType: false,
|
hideType: false,
|
||||||
showExportTime: false,
|
showExportTime: false,
|
||||||
showWaybill: true,
|
showWaybill: true,
|
||||||
showNewExport: true,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
<template>
|
|
||||||
<BasePage :qrcode="qrcode"
|
|
||||||
:querys="querys"
|
|
||||||
:labelType="labelType"
|
|
||||||
:showStatus="showStatus"
|
|
||||||
:hideType="hideType"
|
|
||||||
:showLength="showLength"
|
|
||||||
:canExportAll="canExportAll"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import BasePage from '@/views/wms/coil/panels/base.vue';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
BasePage
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
qrcode: false,
|
|
||||||
querys: {
|
|
||||||
dataType: 1,
|
|
||||||
materialType: '成品',
|
|
||||||
itemType: 'product',
|
|
||||||
status: 0,
|
|
||||||
orderBy: true
|
|
||||||
},
|
|
||||||
labelType: '3',
|
|
||||||
showStatus: true,
|
|
||||||
hideType: true,
|
|
||||||
showLength: true,
|
|
||||||
canExportAll: true,
|
|
||||||
showOrderBy: false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@@ -43,20 +43,13 @@
|
|||||||
<el-table-column label="车牌" align="center" prop="licensePlate" width="100" />
|
<el-table-column label="车牌" align="center" prop="licensePlate" width="100" />
|
||||||
<el-table-column label="收货单位" align="center" prop="consigneeUnit" />
|
<el-table-column label="收货单位" align="center" prop="consigneeUnit" />
|
||||||
<!-- <el-table-column label="发货单位" align="center" prop="senderUnit" /> -->
|
<!-- <el-table-column label="发货单位" align="center" prop="senderUnit" /> -->
|
||||||
<el-table-column label="订单编号" align="center" prop="orderNo">
|
<el-table-column label="订单编号" align="center" prop="orderNo" />
|
||||||
<template slot-scope="scope">
|
|
||||||
<span v-if="scope.row.orderId">{{ scope.row.orderCode }}</span>
|
|
||||||
<span v-else>{{ scope.row.principalPhone }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="发货时间" align="center" prop="deliveryTime" width="100">
|
<el-table-column label="发货时间" align="center" prop="deliveryTime" width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.deliveryTime, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.deliveryTime, '{y}-{m}-{d}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="负责人" align="center" prop="principal" width="60" />
|
<el-table-column label="负责人" align="center" prop="principal" width="60" />
|
||||||
<el-table-column label="备注" align="center" prop="remark" width="100" show-overflow-tooltip/>
|
|
||||||
|
|
||||||
<!-- <el-table-column label="负责人电话" align="center" prop="principalPhone" width="100" /> -->
|
<!-- <el-table-column label="负责人电话" align="center" prop="principalPhone" width="100" /> -->
|
||||||
<el-table-column label="完成状态" align="center" prop="status" width="120">
|
<el-table-column label="完成状态" align="center" prop="status" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -116,12 +109,9 @@
|
|||||||
<el-form-item label="负责人" prop="principal">
|
<el-form-item label="负责人" prop="principal">
|
||||||
<el-input v-model="form.principal" placeholder="请输入负责人" />
|
<el-input v-model="form.principal" placeholder="请输入负责人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="订单编号" prop="principalPhone" v-if="!form.orderId">
|
<!-- <el-form-item label="负责人电话" prop="principalPhone">
|
||||||
<el-input v-model="form.principalPhone" placeholder="请输入订单编号"/>
|
<el-input v-model="form.principalPhone" placeholder="请输入负责人电话" />
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="订单编号" prop="principalPhone" v-else title="当前发货单已绑定订单">
|
|
||||||
<el-input v-model="form.orderCode" placeholder="请输入订单编号" readonly disabled/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -348,10 +338,7 @@ export default {
|
|||||||
const waybillId = row.waybillId || this.ids
|
const waybillId = row.waybillId || this.ids
|
||||||
getDeliveryWaybill(waybillId).then(response => {
|
getDeliveryWaybill(waybillId).then(response => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.form = {
|
this.form = response.data;
|
||||||
...response.data,
|
|
||||||
orderCode: row.orderCode
|
|
||||||
};
|
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "修改发货单";
|
this.title = "修改发货单";
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -71,8 +71,8 @@ public class WmsCoilStatisticsSummaryController extends BaseController {
|
|||||||
@Log(title = "钢卷生产统计汇总(数据透视结果持久化)", businessType = BusinessType.INSERT)
|
@Log(title = "钢卷生产统计汇总(数据透视结果持久化)", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public R<WmsCoilStatisticsSummaryVo> add(@Validated(AddGroup.class) @RequestBody WmsCoilStatisticsSummaryBo bo) {
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsCoilStatisticsSummaryBo bo) {
|
||||||
return R.ok(iWmsCoilStatisticsSummaryService.insertByBo(bo));
|
return toAjax(iWmsCoilStatisticsSummaryService.insertByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
package com.klp.controller;
|
package com.klp.controller;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.alibaba.excel.EasyExcel;
|
import com.klp.domain.vo.WmsMaterialCoilExportVo;
|
||||||
import com.alibaba.excel.ExcelWriter;
|
import com.klp.domain.vo.WmsMaterialCoilDeliveryExportVo;
|
||||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
import com.klp.domain.vo.WmsMaterialCoilLocationGridVo;
|
||||||
import com.klp.domain.vo.*;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
@@ -24,6 +22,7 @@ import com.klp.common.core.validate.AddGroup;
|
|||||||
import com.klp.common.core.validate.EditGroup;
|
import com.klp.common.core.validate.EditGroup;
|
||||||
import com.klp.common.enums.BusinessType;
|
import com.klp.common.enums.BusinessType;
|
||||||
import com.klp.common.utils.poi.ExcelUtil;
|
import com.klp.common.utils.poi.ExcelUtil;
|
||||||
|
import com.klp.domain.vo.WmsMaterialCoilVo;
|
||||||
import com.klp.domain.bo.WmsMaterialCoilBo;
|
import com.klp.domain.bo.WmsMaterialCoilBo;
|
||||||
import com.klp.domain.vo.dashboard.CoilTrimStatisticsVo;
|
import com.klp.domain.vo.dashboard.CoilTrimStatisticsVo;
|
||||||
import com.klp.domain.vo.dashboard.CategoryWidthStatisticsVo;
|
import com.klp.domain.vo.dashboard.CategoryWidthStatisticsVo;
|
||||||
@@ -67,7 +66,7 @@ public class WmsMaterialCoilController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出钢卷物料表列表(精简字段版本)
|
* 导出钢卷物料表列表(完整字段版本)
|
||||||
*/
|
*/
|
||||||
@Log(title = "钢卷物料表", businessType = BusinessType.EXPORT)
|
@Log(title = "钢卷物料表", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
@@ -75,16 +74,6 @@ public class WmsMaterialCoilController extends BaseController {
|
|||||||
List<WmsMaterialCoilExportVo> list = iWmsMaterialCoilService.queryExportList(bo);
|
List<WmsMaterialCoilExportVo> list = iWmsMaterialCoilService.queryExportList(bo);
|
||||||
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilExportVo.class, response);
|
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilExportVo.class, response);
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* 导出钢卷物料表列表(完整字段版本)
|
|
||||||
* 导出全部字段
|
|
||||||
*/
|
|
||||||
@Log(title = "钢卷物料表", businessType = BusinessType.EXPORT)
|
|
||||||
@PostMapping("/exportAll")
|
|
||||||
public void exportSimple(WmsMaterialCoilBo bo, HttpServletResponse response) {
|
|
||||||
List<WmsMaterialCoilAllExportVo> list = iWmsMaterialCoilService.queryExportListAll(bo);
|
|
||||||
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilAllExportVo.class, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出发货报表(按 coilIds,联查发货单明细/主表/发货计划)
|
* 导出发货报表(按 coilIds,联查发货单明细/主表/发货计划)
|
||||||
|
|||||||
@@ -46,7 +46,4 @@ public class WmsCoilStatisticsSummary extends BaseEntity {
|
|||||||
@TableLogic
|
@TableLogic
|
||||||
private Long delFlag;
|
private Long delFlag;
|
||||||
|
|
||||||
// 新增附件字段
|
|
||||||
private String attachmentInfo;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,8 +42,5 @@ public class WmsCoilStatisticsSummaryBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
// 新增附件字段
|
|
||||||
private String attachmentInfo;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.klp.common.annotation.ExcelDictFormat;
|
import com.klp.common.annotation.ExcelDictFormat;
|
||||||
import com.klp.common.convert.ExcelDictConvert;
|
import com.klp.common.convert.ExcelDictConvert;
|
||||||
import com.klp.common.core.domain.BaseEntity;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
@@ -16,7 +15,7 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
public class WmsCoilStatisticsSummaryVo extends BaseEntity {
|
public class WmsCoilStatisticsSummaryVo {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@@ -53,7 +52,5 @@ public class WmsCoilStatisticsSummaryVo extends BaseEntity {
|
|||||||
@ExcelProperty(value = "备注")
|
@ExcelProperty(value = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
// 新增附件字段
|
|
||||||
private String attachmentInfo;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,193 +0,0 @@
|
|||||||
package com.klp.domain.vo;
|
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
|
||||||
import com.klp.common.annotation.Excel;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 钢卷物料导出VO
|
|
||||||
*
|
|
||||||
* @author klp
|
|
||||||
* @date 2025-11-27
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@ExcelIgnoreUnannotated
|
|
||||||
public class WmsMaterialCoilAllExportVo {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 类型(成品/原料)
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "类型")
|
|
||||||
private String itemTypeDesc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 逻辑库区
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "逻辑库区")
|
|
||||||
private String warehouseName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实际库区
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "实际库区")
|
|
||||||
private String actualWarehouseName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 入场卷号
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "入场卷号")
|
|
||||||
private String enterCoilNo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 厂家卷号
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "厂家卷号")
|
|
||||||
private String supplierCoilNo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 成品卷号
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "成品卷号")
|
|
||||||
private String currentCoilNo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 日期
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "日期")
|
|
||||||
private Date createTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 发货时间(仅临时存储,不导出)
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "发货时间")
|
|
||||||
private Date exportTime;
|
|
||||||
|
|
||||||
// 发货人
|
|
||||||
@ExcelProperty(value = "发货人")
|
|
||||||
private String exportBy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 重量(kg)
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "重量")
|
|
||||||
private BigDecimal netWeight;
|
|
||||||
|
|
||||||
// 班组
|
|
||||||
private String team;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用途
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "用途")
|
|
||||||
private String purpose;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 切边要求
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "切边要求")
|
|
||||||
private String trimmingRequirement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 包装种类
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "包装种类")
|
|
||||||
private String packagingRequirement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 产品状态
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "产品质量")
|
|
||||||
private String qualityStatus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 打包状态
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "打包状态")
|
|
||||||
private String packingStatus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 库存状态
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "库存状态")
|
|
||||||
private String statusDesc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 备注
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "备注")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 名称
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "名称")
|
|
||||||
private String itemName;
|
|
||||||
|
|
||||||
|
|
||||||
@ExcelProperty(value = "长度")
|
|
||||||
private BigDecimal length;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 规格
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "规格")
|
|
||||||
private String specification;
|
|
||||||
/**
|
|
||||||
* 材质
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "材质")
|
|
||||||
private String material;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 厂家
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "厂家")
|
|
||||||
private String manufacturer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 表面处理
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "表面处理")
|
|
||||||
private String surfaceTreatmentDesc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 锌层
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "锌层")
|
|
||||||
private String zincLayer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 物品ID
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "物品ID")
|
|
||||||
private Long itemId;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新时间(仅临时存储,不导出,用于发货时间为空时兜底)
|
|
||||||
*/
|
|
||||||
private Date updateTime;
|
|
||||||
|
|
||||||
// 数据类型
|
|
||||||
@Excel(name = "数据类型", readConverterExp = "0=历史,1=当前")
|
|
||||||
private Integer dataType;
|
|
||||||
|
|
||||||
// 调制度
|
|
||||||
@ExcelProperty(value = "调制度")
|
|
||||||
private String temperGrade;
|
|
||||||
// 镀层种类
|
|
||||||
@ExcelProperty(value = "镀层种类")
|
|
||||||
private String coatingType;
|
|
||||||
|
|
||||||
// 业务用途
|
|
||||||
@ExcelProperty(value = "业务用途")
|
|
||||||
private String businessPurpose;
|
|
||||||
|
|
||||||
// 是否与订单相关 readConverterExp
|
|
||||||
@Excel(name = "是否与订单相关", readConverterExp = "0=否,1=是")
|
|
||||||
private Integer isRelatedToOrder;
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,6 @@ package com.klp.domain.vo;
|
|||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.klp.common.annotation.Excel;
|
|
||||||
import com.klp.common.annotation.ExcelDictFormat;
|
import com.klp.common.annotation.ExcelDictFormat;
|
||||||
import com.klp.common.convert.ExcelDictConvert;
|
import com.klp.common.convert.ExcelDictConvert;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -175,13 +174,4 @@ public class WmsMaterialCoilExportVo {
|
|||||||
private String temperGrade;
|
private String temperGrade;
|
||||||
// 镀层种类
|
// 镀层种类
|
||||||
private String coatingType;
|
private String coatingType;
|
||||||
|
|
||||||
// 班组
|
|
||||||
private String team;
|
|
||||||
|
|
||||||
// 业务用途
|
|
||||||
private String businessPurpose;
|
|
||||||
|
|
||||||
// 是否与订单相关 readConverterExp
|
|
||||||
private Integer isRelatedToOrder;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public interface IWmsCoilStatisticsSummaryService {
|
|||||||
/**
|
/**
|
||||||
* 新增钢卷生产统计汇总(数据透视结果持久化)
|
* 新增钢卷生产统计汇总(数据透视结果持久化)
|
||||||
*/
|
*/
|
||||||
WmsCoilStatisticsSummaryVo insertByBo(WmsCoilStatisticsSummaryBo bo);
|
Boolean insertByBo(WmsCoilStatisticsSummaryBo bo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改钢卷生产统计汇总(数据透视结果持久化)
|
* 修改钢卷生产统计汇总(数据透视结果持久化)
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.klp.service;
|
package com.klp.service;
|
||||||
|
|
||||||
import com.klp.domain.vo.*;
|
import com.klp.domain.vo.WmsMaterialCoilDeliveryExportVo;
|
||||||
|
import com.klp.domain.vo.WmsMaterialCoilLocationGridVo;
|
||||||
|
import com.klp.domain.vo.WmsMaterialCoilVo;
|
||||||
import com.klp.domain.bo.WmsMaterialCoilBo;
|
import com.klp.domain.bo.WmsMaterialCoilBo;
|
||||||
import com.klp.common.core.page.TableDataInfo;
|
import com.klp.common.core.page.TableDataInfo;
|
||||||
import com.klp.common.core.domain.PageQuery;
|
import com.klp.common.core.domain.PageQuery;
|
||||||
@@ -229,7 +231,5 @@ public interface IWmsMaterialCoilService {
|
|||||||
String enterCoilNo,
|
String enterCoilNo,
|
||||||
String currentCoilNo,
|
String currentCoilNo,
|
||||||
String manufacturer);
|
String manufacturer);
|
||||||
|
|
||||||
List<WmsMaterialCoilAllExportVo> queryExportListAll(WmsMaterialCoilBo bo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,14 +71,14 @@ public class WmsCoilStatisticsSummaryServiceImpl implements IWmsCoilStatisticsSu
|
|||||||
* 新增钢卷生产统计汇总(数据透视结果持久化)
|
* 新增钢卷生产统计汇总(数据透视结果持久化)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public WmsCoilStatisticsSummaryVo insertByBo(WmsCoilStatisticsSummaryBo bo) {
|
public Boolean insertByBo(WmsCoilStatisticsSummaryBo bo) {
|
||||||
WmsCoilStatisticsSummary add = BeanUtil.toBean(bo, WmsCoilStatisticsSummary.class);
|
WmsCoilStatisticsSummary add = BeanUtil.toBean(bo, WmsCoilStatisticsSummary.class);
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
boolean flag = baseMapper.insert(add) > 0;
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
if (flag) {
|
if (flag) {
|
||||||
bo.setSummaryId(add.getSummaryId());
|
bo.setSummaryId(add.getSummaryId());
|
||||||
}
|
}
|
||||||
return queryById(add.getSummaryId());
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2348,7 +2348,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<WmsMaterialCoilExportVo> queryExportList(WmsMaterialCoilBo bo) {
|
public List<WmsMaterialCoilExportVo> queryExportList(WmsMaterialCoilBo bo) {
|
||||||
QueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapperPlus(bo);
|
QueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapper(bo);
|
||||||
List<WmsMaterialCoilExportVo> wmsMaterialCoilExportVos = baseMapper.selectExportList(lqw);
|
List<WmsMaterialCoilExportVo> wmsMaterialCoilExportVos = baseMapper.selectExportList(lqw);
|
||||||
// 遍历数据,根据状态替换日期字段,并处理空值兜底
|
// 遍历数据,根据状态替换日期字段,并处理空值兜底
|
||||||
wmsMaterialCoilExportVos.stream().forEach(vo -> {
|
wmsMaterialCoilExportVos.stream().forEach(vo -> {
|
||||||
@@ -2379,25 +2379,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
});
|
});
|
||||||
return wmsMaterialCoilExportVos;
|
return wmsMaterialCoilExportVos;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* 查询钢卷导出数据列表(完整版)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Transactional(readOnly = true)
|
|
||||||
public List<WmsMaterialCoilAllExportVo> queryExportListAll(WmsMaterialCoilBo bo) {
|
|
||||||
QueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapperPlus(bo);
|
|
||||||
List<WmsMaterialCoilExportVo> wmsMaterialCoilVos = baseMapper.selectExportList(lqw);
|
|
||||||
List<WmsMaterialCoilAllExportVo> exportVoList = BeanUtil.copyToList(wmsMaterialCoilVos, WmsMaterialCoilAllExportVo.class);
|
|
||||||
if (CollectionUtils.isNotEmpty(exportVoList)) {
|
|
||||||
for (WmsMaterialCoilAllExportVo vo : exportVoList) {
|
|
||||||
if (Objects.equals(vo.getDataType(), 0)) {
|
|
||||||
vo.setActualWarehouseName(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return exportVoList;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* 发货报表导出:按 coilIds 查询钢卷 + 发货单明细/主表/计划联查数据
|
* 发货报表导出:按 coilIds 查询钢卷 + 发货单明细/主表/计划联查数据
|
||||||
*/
|
*/
|
||||||
@@ -2550,6 +2532,86 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建查询条件
|
||||||
|
*/
|
||||||
|
private QueryWrapper<WmsMaterialCoil> buildQueryWrapper(WmsMaterialCoilBo bo) {
|
||||||
|
QueryWrapper<WmsMaterialCoil> lqw = Wrappers.query();
|
||||||
|
|
||||||
|
// 基础字段筛选
|
||||||
|
lqw.eq(bo.getCoilId() != null, "mc.coil_id", bo.getCoilId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getEnterCoilNo()), "mc.enter_coil_no", bo.getEnterCoilNo());
|
||||||
|
lqw.like(StringUtils.isNotBlank(bo.getCurrentCoilNo()), "mc.current_coil_no", bo.getCurrentCoilNo());
|
||||||
|
lqw.like(StringUtils.isNotBlank(bo.getSupplierCoilNo()), "mc.supplier_coil_no", bo.getSupplierCoilNo());
|
||||||
|
lqw.eq(bo.getDataType() != null, "mc.data_type", bo.getDataType());
|
||||||
|
lqw.eq(bo.getWarehouseId() != null, "mc.warehouse_id", bo.getWarehouseId());
|
||||||
|
lqw.eq(bo.getActualWarehouseId() != null, "mc.actual_warehouse_id", bo.getActualWarehouseId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType());
|
||||||
|
lqw.eq(bo.getHasMergeSplit() != null, "mc.has_merge_split", bo.getHasMergeSplit());
|
||||||
|
// 修改itemId筛选逻辑,支持逗号分隔的多个ID查询
|
||||||
|
if (StringUtils.isNotBlank(bo.getItemIds())) {
|
||||||
|
String[] itemIdArray = bo.getItemIds().split(",");
|
||||||
|
List<Long> itemIdList = new ArrayList<>();
|
||||||
|
for (String itemIdStr : itemIdArray) {
|
||||||
|
if (StringUtils.isNotBlank(itemIdStr)) {
|
||||||
|
try {
|
||||||
|
itemIdList.add(Long.parseLong(itemIdStr.trim()));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// 忽略无效的ID格式
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!itemIdList.isEmpty()) {
|
||||||
|
lqw.in("mc.item_id", itemIdList);
|
||||||
|
}
|
||||||
|
} else if (bo.getItemId() != null) {
|
||||||
|
// 兼容原来的itemId单值查询
|
||||||
|
lqw.eq("mc.item_id", bo.getItemId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加coilIds查询条件,支持逗号分隔的多个coilId查询
|
||||||
|
if (StringUtils.isNotBlank(bo.getCoilIds())) {
|
||||||
|
String[] coilIdArray = bo.getCoilIds().split(",");
|
||||||
|
List<Long> coilIdList = new ArrayList<>();
|
||||||
|
for (String coilIdStr : coilIdArray) {
|
||||||
|
if (StringUtils.isNotBlank(coilIdStr)) {
|
||||||
|
try {
|
||||||
|
coilIdList.add(Long.parseLong(coilIdStr.trim()));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// 忽略无效的ID格式
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!coilIdList.isEmpty()) {
|
||||||
|
lqw.in("mc.coil_id", coilIdList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lqw.eq(bo.getStatus() != null, "mc.status", bo.getStatus());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getMaterialType()), "mc.material_type", bo.getMaterialType());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getQualityStatus()), "mc.quality_status", bo.getQualityStatus());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getPackingStatus()), "mc.packing_status", bo.getPackingStatus());
|
||||||
|
|
||||||
|
// 把team字段作为筛选条件
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getTeam()), "mc.team", bo.getTeam());
|
||||||
|
|
||||||
|
// 根据开始时间和结束时间筛选修改时间
|
||||||
|
lqw.ge(bo.getStartTime() != null, "mc.update_time", bo.getStartTime());
|
||||||
|
lqw.le(bo.getEndTime() != null, "mc.update_time", bo.getEndTime());
|
||||||
|
|
||||||
|
// 根据发货开始和结束筛选发货时间
|
||||||
|
lqw.ge(bo.getByExportTimeStart() != null, "mc.export_time", bo.getByExportTimeStart());
|
||||||
|
lqw.le(bo.getByExportTimeEnd() != null, "mc.export_time", bo.getByExportTimeEnd());
|
||||||
|
// 逻辑删除
|
||||||
|
lqw.eq("mc.del_flag", 0);
|
||||||
|
|
||||||
|
// 根据创建时间倒序
|
||||||
|
lqw.orderByDesc("mc.create_time");
|
||||||
|
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量更新钢卷发货状态
|
* 批量更新钢卷发货状态
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
<result property="statType" column="stat_type"/>
|
<result property="statType" column="stat_type"/>
|
||||||
<result property="statJson" column="stat_json"/>
|
<result property="statJson" column="stat_json"/>
|
||||||
<result property="remark" column="remark"/>
|
<result property="remark" column="remark"/>
|
||||||
<result property="attachmentInfo" column="attachment_info"/>
|
|
||||||
<result property="createBy" column="create_by"/>
|
<result property="createBy" column="create_by"/>
|
||||||
<result property="createTime" column="create_time"/>
|
<result property="createTime" column="create_time"/>
|
||||||
<result property="updateBy" column="update_by"/>
|
<result property="updateBy" column="update_by"/>
|
||||||
|
|||||||
@@ -373,14 +373,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
mc.current_coil_no AS currentCoilNo,
|
mc.current_coil_no AS currentCoilNo,
|
||||||
-- 日期
|
-- 日期
|
||||||
mc.create_time AS createTime,
|
mc.create_time AS createTime,
|
||||||
-- 班组
|
|
||||||
mc.team AS team,
|
|
||||||
-- 发货时间
|
-- 发货时间
|
||||||
mc.export_time AS exportTime,
|
mc.export_time AS exportTime,
|
||||||
-- 新增:更新时间(用于发货时间为空时兜底)
|
-- 新增:更新时间(用于发货时间为空时兜底)
|
||||||
mc.update_time AS updateTime,
|
mc.update_time AS updateTime,
|
||||||
-- 发货人
|
|
||||||
mc.export_by AS exportBy,
|
|
||||||
-- 重量
|
-- 重量
|
||||||
mc.net_weight AS netWeight,
|
mc.net_weight AS netWeight,
|
||||||
-- 长度
|
-- 长度
|
||||||
|
|||||||
Reference in New Issue
Block a user