From d05dd9448a6d7dbc81ddaf9752adc2734b48a5d0 Mon Sep 17 00:00:00 2001 From: wangyu <823267011@qq.com> Date: Fri, 3 Jul 2026 15:04:45 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=BE=E5=AE=9A?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../micro/pages/acid/components/ActualPerformance.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/klp-ui/src/views/micro/pages/acid/components/ActualPerformance.vue b/klp-ui/src/views/micro/pages/acid/components/ActualPerformance.vue index f421d9969..9fdce0e97 100644 --- a/klp-ui/src/views/micro/pages/acid/components/ActualPerformance.vue +++ b/klp-ui/src/views/micro/pages/acid/components/ActualPerformance.vue @@ -663,8 +663,17 @@ export default { if (v == null || rv == null || rv === 0) return null return parseFloat(v.toFixed(3)) }) - const chartTitle = title + // 设定值(绝对厚度 mm):取首个非空 REF,写入标题 + let refVal = null + for (const r of rows) { + const rv = getRowVal(r, refCol) + if (rv != null && rv !== 0) { refVal = rv; break } + } + const chartTitle = refVal != null ? `${title} - 设定值: ${refVal.toFixed(3)}[mm]` : title + const extras = [] + // 设定基准线恒为 0 + extras.push({ name: '设定值(0)', data: yData.map(v => v == null ? null : 0), color: '#909399', dash: false }) // TOPLIMIT/BOTLIMIT 是冷轧机出口厚度的 AGC 公差带(逐行变化, // 头尾加减速段约 ±2.5%、稳态段收紧到约 ±1%),只约束出口厚度。 From 6fce4105ab98bed27364702fe32302ebc3580280 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 3 Jul 2026 15:14:08 +0800 Subject: [PATCH 02/12] =?UTF-8?q?refactor(flow):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=BB=B4=E6=8A=A4=E8=AE=A1=E5=88=92=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E4=B8=AD=E7=9A=84=E5=B7=A1=E6=A3=80=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=92=8C=E8=AE=BE=E5=A4=87ID=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 从 EqpMaintenancePlanDetail 实体类中移除 recordId 和 equipmentId 字段 - 从 EqpMaintenancePlanDetailBo 中删除 recordId 和 equipmentId 属性定义 - 在 MyBatis 映射文件中移除 recordId 和 equipmentId 的结果映射 - 从查询条件中移除对 recordId 和 equipmentId 的过滤逻辑 - 从 EqpMaintenancePlanDetailVo 中删除相关字段及其 Excel 导出注解 - 修改前端代码以适应该字段移除,在添加维护计划异常时不再传递 recordId 参数 --- .../klp/flow/domain/EqpMaintenancePlanDetail.java | 8 -------- .../flow/domain/bo/EqpMaintenancePlanDetailBo.java | 10 ---------- .../flow/domain/vo/EqpMaintenancePlanDetailVo.java | 14 -------------- .../impl/EqpMaintenancePlanDetailServiceImpl.java | 2 -- .../mapper/flow/EqpMaintenancePlanDetailMapper.xml | 2 -- klp-ui/src/views/wms/post/eqp/index.vue | 3 +-- 6 files changed, 1 insertion(+), 38 deletions(-) diff --git a/klp-flow/src/main/java/com/klp/flow/domain/EqpMaintenancePlanDetail.java b/klp-flow/src/main/java/com/klp/flow/domain/EqpMaintenancePlanDetail.java index f24cd1a7d..1be5a9ede 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/EqpMaintenancePlanDetail.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/EqpMaintenancePlanDetail.java @@ -31,14 +31,6 @@ public class EqpMaintenancePlanDetail extends BaseEntity { * 维修计划ID */ private Long planId; - /** - * 巡检记录ID(来源异常工单) - */ - private Long recordId; - /** - * 设备ID(用户手动选择,关联 eqp_equipment_management.equipment_id) - */ - private Long equipmentId; /** * 产线名称 */ diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/EqpMaintenancePlanDetailBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/EqpMaintenancePlanDetailBo.java index 026a495ef..e30dc53b0 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/bo/EqpMaintenancePlanDetailBo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/EqpMaintenancePlanDetailBo.java @@ -30,16 +30,6 @@ public class EqpMaintenancePlanDetailBo extends BaseEntity { */ private Long planId; - /** - * 巡检记录ID(来源异常工单) - */ - private Long recordId; - - /** - * 设备ID(用户手动选择,关联 eqp_equipment_management.equipment_id) - */ - private Long equipmentId; - /** * 产线名称 */ diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/EqpMaintenancePlanDetailVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/EqpMaintenancePlanDetailVo.java index d2f3743bc..61569a24a 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/vo/EqpMaintenancePlanDetailVo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/EqpMaintenancePlanDetailVo.java @@ -34,20 +34,6 @@ public class EqpMaintenancePlanDetailVo { @ExcelProperty(value = "维修计划ID") private Long planId; - /** - * 巡检记录ID(来源异常工单) - */ - @ExcelProperty(value = "巡检记录ID", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "来=源异常工单") - private Long recordId; - - /** - * 设备ID(用户手动选择,关联 eqp_equipment_management.equipment_id) - */ - @ExcelProperty(value = "设备ID", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "用=户手动选择,关联,e=qp_equipment_management.equipment_id") - private Long equipmentId; - /** * 产线名称 */ diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/EqpMaintenancePlanDetailServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/EqpMaintenancePlanDetailServiceImpl.java index 5da87b2f4..3298c9cb6 100644 --- a/klp-flow/src/main/java/com/klp/flow/service/impl/EqpMaintenancePlanDetailServiceImpl.java +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/EqpMaintenancePlanDetailServiceImpl.java @@ -62,8 +62,6 @@ public class EqpMaintenancePlanDetailServiceImpl implements IEqpMaintenancePlanD Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getPlanId() != null, EqpMaintenancePlanDetail::getPlanId, bo.getPlanId()); - lqw.eq(bo.getRecordId() != null, EqpMaintenancePlanDetail::getRecordId, bo.getRecordId()); - lqw.eq(bo.getEquipmentId() != null, EqpMaintenancePlanDetail::getEquipmentId, bo.getEquipmentId()); lqw.eq(StringUtils.isNotBlank(bo.getProductionLine()), EqpMaintenancePlanDetail::getProductionLine, bo.getProductionLine()); lqw.like(StringUtils.isNotBlank(bo.getComponentName()), EqpMaintenancePlanDetail::getComponentName, bo.getComponentName()); lqw.eq(bo.getItemPlanDate() != null, EqpMaintenancePlanDetail::getItemPlanDate, bo.getItemPlanDate()); diff --git a/klp-flow/src/main/resources/mapper/flow/EqpMaintenancePlanDetailMapper.xml b/klp-flow/src/main/resources/mapper/flow/EqpMaintenancePlanDetailMapper.xml index 7242f9763..a51a88805 100644 --- a/klp-flow/src/main/resources/mapper/flow/EqpMaintenancePlanDetailMapper.xml +++ b/klp-flow/src/main/resources/mapper/flow/EqpMaintenancePlanDetailMapper.xml @@ -7,8 +7,6 @@ - - diff --git a/klp-ui/src/views/wms/post/eqp/index.vue b/klp-ui/src/views/wms/post/eqp/index.vue index a3b573f35..01702573a 100644 --- a/klp-ui/src/views/wms/post/eqp/index.vue +++ b/klp-ui/src/views/wms/post/eqp/index.vue @@ -508,7 +508,7 @@ export default { var self = this; var planId = this.currentRow.planId; var addPromises = this.abnormalSelectedRecords.map(function(rec) { - return addMaintenancePlanAbnormal({ planId: planId, recordId: rec.recordId }); + return addMaintenancePlanAbnormal({ planId: planId }); }); // Also auto-create detail rows from selected records this.$modal.loading("正在关联异常记录并生成维修明细..."); @@ -517,7 +517,6 @@ export default { var detailPromises = self.abnormalSelectedRecords.map(function(rec) { return addMaintenancePlanDetail({ planId: planId, - recordId: rec.recordId, componentName: rec.partName || '', productionLine: rec.productionLine || '', maintenanceCategory: 1, From 89e7a9d56aa5ce06fcfe86e5b63b853461f02f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com> Date: Fri, 3 Jul 2026 15:37:37 +0800 Subject: [PATCH 03/12] =?UTF-8?q?style:=20=E7=BB=9F=E4=B8=80=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=BC=82=E8=AE=AE=E5=A4=84=E7=90=86=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E6=95=B4=E4=BD=93UI=E6=A0=B7=E5=BC=8F=E9=A3=8E?= =?UTF-8?q?=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本次提交对wms异议处理页面的所有组件样式进行了统一调整: 1. 替换了老旧的复古文档风格配色,统一使用现代中性色调的Tailwind CSS风格色值 2. 调整了字体大小、行高、间距等排版参数,优化页面整体可读性 3. 统一了卡片、边框、圆角的样式规范,移除冗余的衬线字体配置 4. 调整了页面容器背景色,从暖白纸色改为更清爽的工业风浅色主题 5. 优化了空状态、流程步骤等组件的视觉表现,保持整体风格统一 --- .../objection/components/BasicInfoSection.vue | 40 +++-- .../objection/components/CoilInfoSection.vue | 34 ++-- .../components/ContractInfoSection.vue | 34 ++-- .../components/DepartmentOpinionSection.vue | 90 +++++------ .../components/DeptOpinionPreview.vue | 23 ++- .../components/ExecutionFeedbackSection.vue | 90 +++++------ .../components/FlowOverviewSection.vue | 48 +++--- .../components/HandlingSchemeSection.vue | 46 +++--- .../components/HeaderControlSection.vue | 50 +++--- klp-ui/src/views/wms/post/objection/index.vue | 145 +++++++++--------- 10 files changed, 276 insertions(+), 324 deletions(-) diff --git a/klp-ui/src/views/wms/post/objection/components/BasicInfoSection.vue b/klp-ui/src/views/wms/post/objection/components/BasicInfoSection.vue index ea532d661..fe3cda40a 100644 --- a/klp-ui/src/views/wms/post/objection/components/BasicInfoSection.vue +++ b/klp-ui/src/views/wms/post/objection/components/BasicInfoSection.vue @@ -110,59 +110,57 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/CoilInfoSection.vue b/klp-ui/src/views/wms/post/objection/components/CoilInfoSection.vue index 19348a41d..e22a4de0d 100644 --- a/klp-ui/src/views/wms/post/objection/components/CoilInfoSection.vue +++ b/klp-ui/src/views/wms/post/objection/components/CoilInfoSection.vue @@ -60,19 +60,18 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/ContractInfoSection.vue b/klp-ui/src/views/wms/post/objection/components/ContractInfoSection.vue index f8e969990..c0e529616 100644 --- a/klp-ui/src/views/wms/post/objection/components/ContractInfoSection.vue +++ b/klp-ui/src/views/wms/post/objection/components/ContractInfoSection.vue @@ -51,19 +51,18 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/DepartmentOpinionSection.vue b/klp-ui/src/views/wms/post/objection/components/DepartmentOpinionSection.vue index 89bca06f9..3fd2d73a3 100644 --- a/klp-ui/src/views/wms/post/objection/components/DepartmentOpinionSection.vue +++ b/klp-ui/src/views/wms/post/objection/components/DepartmentOpinionSection.vue @@ -93,19 +93,18 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/DeptOpinionPreview.vue b/klp-ui/src/views/wms/post/objection/components/DeptOpinionPreview.vue index 1c238dee9..b8bdafa47 100644 --- a/klp-ui/src/views/wms/post/objection/components/DeptOpinionPreview.vue +++ b/klp-ui/src/views/wms/post/objection/components/DeptOpinionPreview.vue @@ -97,16 +97,16 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/ExecutionFeedbackSection.vue b/klp-ui/src/views/wms/post/objection/components/ExecutionFeedbackSection.vue index 0ad4c1fc0..ddd669749 100644 --- a/klp-ui/src/views/wms/post/objection/components/ExecutionFeedbackSection.vue +++ b/klp-ui/src/views/wms/post/objection/components/ExecutionFeedbackSection.vue @@ -78,19 +78,18 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/FlowOverviewSection.vue b/klp-ui/src/views/wms/post/objection/components/FlowOverviewSection.vue index 7c100866e..c13b69a54 100644 --- a/klp-ui/src/views/wms/post/objection/components/FlowOverviewSection.vue +++ b/klp-ui/src/views/wms/post/objection/components/FlowOverviewSection.vue @@ -65,55 +65,52 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/HandlingSchemeSection.vue b/klp-ui/src/views/wms/post/objection/components/HandlingSchemeSection.vue index aeb4e6785..d0ddd9a1e 100644 --- a/klp-ui/src/views/wms/post/objection/components/HandlingSchemeSection.vue +++ b/klp-ui/src/views/wms/post/objection/components/HandlingSchemeSection.vue @@ -71,19 +71,18 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/HeaderControlSection.vue b/klp-ui/src/views/wms/post/objection/components/HeaderControlSection.vue index 60d7dd74c..ff6a054f8 100644 --- a/klp-ui/src/views/wms/post/objection/components/HeaderControlSection.vue +++ b/klp-ui/src/views/wms/post/objection/components/HeaderControlSection.vue @@ -106,21 +106,21 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/index.vue b/klp-ui/src/views/wms/post/objection/index.vue index 0cdb182a6..8651aff9f 100644 --- a/klp-ui/src/views/wms/post/objection/index.vue +++ b/klp-ui/src/views/wms/post/objection/index.vue @@ -561,8 +561,9 @@ export default { From d03cd926bc9ad99aa1a97dc6a25fadaa2c84c64c Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 3 Jul 2026 15:58:43 +0800 Subject: [PATCH 05/12] =?UTF-8?q?feat(attendance):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=80=83=E5=8B=A4=E8=AE=B0=E5=BD=95=E8=A1=A8=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在前端API中添加exportAttendanceReport方法用于导出考勤记录 - 在AttendanceRecordsController中添加exportReport接口支持考勤表导出 - 在AttendanceRecordsServiceImpl中实现完整的考勤记录表Excel导出逻辑 - 添加员工分组、按日期汇总打卡时间的业务处理 - 创建多种Excel样式包括标题、表头、日期列和明细行样式 - 在前端页面中新增导出按钮和导出参数设置对话框 - 实现导出前确认同步状态的交互逻辑 - 支持按工号、姓名、部门筛选条件进行考勤表导出 --- klp-ui/src/api/wms/attendance.js | 10 + klp-ui/src/views/wms/hrm/attendance/sync.vue | 124 ++++++++- .../AttendanceRecordsController.java | 11 + .../service/IAttendanceRecordsService.java | 6 + .../impl/AttendanceRecordsServiceImpl.java | 259 +++++++++++++++++- 5 files changed, 406 insertions(+), 4 deletions(-) diff --git a/klp-ui/src/api/wms/attendance.js b/klp-ui/src/api/wms/attendance.js index 8de38d68e..d1d4090c9 100644 --- a/klp-ui/src/api/wms/attendance.js +++ b/klp-ui/src/api/wms/attendance.js @@ -56,3 +56,13 @@ export function syncRecords({ starttime, endtime }) { } }) } + +// 导出考勤记录表 +export function exportAttendanceReport(params) { + return request({ + url: '/wms/attendanceRecords/exportReport', + method: 'post', + params: params, + responseType: 'blob' + }) +} diff --git a/klp-ui/src/views/wms/hrm/attendance/sync.vue b/klp-ui/src/views/wms/hrm/attendance/sync.vue index bd66c16d9..6253c0caf 100644 --- a/klp-ui/src/views/wms/hrm/attendance/sync.vue +++ b/klp-ui/src/views/wms/hrm/attendance/sync.vue @@ -69,6 +69,7 @@ 搜索 重置 同步 + 导出考勤表 @@ -187,11 +188,42 @@ 取消 + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-ui/src/views/wms/coil/do/warehousing.vue b/klp-ui/src/views/wms/coil/do/warehousing.vue index 124e4521b..010347110 100644 --- a/klp-ui/src/views/wms/coil/do/warehousing.vue +++ b/klp-ui/src/views/wms/coil/do/warehousing.vue @@ -20,7 +20,7 @@ + @click.native="$router.push('/wip/receive/plan')"> From 4bea8bdb17910254e531fb51ac3e6b4c4c95e82d Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 3 Jul 2026 17:30:33 +0800 Subject: [PATCH 10/12] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=88=97=E8=A1=A8=E9=99=84=E5=B8=A6=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E6=94=B9=E5=88=A4=E8=AE=B0=E5=BD=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IWmsCoilQualityRejudgeService 中新增 queryCoilListWithRejudge 方法 - 实现批量查询钢卷并附带最新质量改判记录的功能 - 添加 WmsMaterialCoilRejudgeVo 和 WmsMaterialCoilBo 数据传输对象 - 在 WmsCoilQualityRejudgeController 中新增 coilListWithRejudge 接口 - 实现服务层逻辑,通过 wmsMaterialCoilService 查询钢卷列表 - 批量查询每个钢卷的最新改判记录并组装返回结果 --- .../WmsCoilQualityRejudgeController.java | 11 ++++ .../IWmsCoilQualityRejudgeService.java | 11 ++++ .../WmsCoilQualityRejudgeServiceImpl.java | 57 ++++++++++++++++++- 3 files changed, 76 insertions(+), 3 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java b/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java index f38ab986d..5428150a4 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java @@ -18,7 +18,9 @@ import com.klp.common.core.validate.EditGroup; import com.klp.common.enums.BusinessType; import com.klp.common.utils.poi.ExcelUtil; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.service.IWmsCoilQualityRejudgeService; import com.klp.common.core.page.TableDataInfo; @@ -44,6 +46,15 @@ public class WmsCoilQualityRejudgeController extends BaseController { return iWmsCoilQualityRejudgeService.queryPageList(bo, pageQuery); } + /** + * 查询钢卷信息并附带质量改判记录 + * 调用钢卷物料表 queryList 查询钢卷列表,同时批量查询每个钢卷的最新一条质量改判记录 + */ + @GetMapping("/coilListWithRejudge") + public R> coilListWithRejudge(WmsMaterialCoilBo bo) { + return R.ok(iWmsCoilQualityRejudgeService.queryCoilListWithRejudge(bo)); + } + /** * 导出钢卷质量改判记录列表 */ diff --git a/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java b/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java index 61462f956..f9323fc48 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java @@ -2,7 +2,9 @@ package com.klp.service; import com.klp.domain.WmsCoilQualityRejudge; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; @@ -46,4 +48,13 @@ public interface IWmsCoilQualityRejudgeService { * 校验并批量删除钢卷质量改判记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 查询钢卷列表并附带质量改判记录 + * 调用 IWmsMaterialCoilService.queryList 查询钢卷,然后批量查询每个钢卷的最新改判记录并回填 + * + * @param bo 钢卷查询条件 + * @return 钢卷列表(每个钢卷附带最新一条改判记录) + */ + List queryCoilListWithRejudge(WmsMaterialCoilBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java index 05bfc714a..0e5e2c9f2 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java @@ -10,14 +10,17 @@ import com.klp.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.WmsCoilQualityRejudge; import com.klp.mapper.WmsCoilQualityRejudgeMapper; import com.klp.service.IWmsCoilQualityRejudgeService; +import com.klp.service.IWmsMaterialCoilService; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 钢卷质量改判记录Service业务层处理 @@ -30,6 +33,7 @@ import java.util.Collection; public class WmsCoilQualityRejudgeServiceImpl implements IWmsCoilQualityRejudgeService { private final WmsCoilQualityRejudgeMapper baseMapper; + private final IWmsMaterialCoilService wmsMaterialCoilService; /** * 查询钢卷质量改判记录 @@ -99,6 +103,53 @@ public class WmsCoilQualityRejudgeServiceImpl implements IWmsCoilQualityRejudgeS //TODO 做一些数据校验,如唯一约束 } + /** + * 查询钢卷列表并附带质量改判记录 + */ + @Override + public List queryCoilListWithRejudge(WmsMaterialCoilBo bo) { + List coils = wmsMaterialCoilService.queryList(bo); + if (coils == null || coils.isEmpty()) { + return Collections.emptyList(); + } + + // 收集所有钢卷ID + List coilIds = coils.stream() + .map(WmsMaterialCoilVo::getCoilId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + if (coilIds.isEmpty()) { + return coils.stream().map(vo -> { + WmsMaterialCoilRejudgeVo rvo = new WmsMaterialCoilRejudgeVo(); + BeanUtil.copyProperties(vo, rvo); + return rvo; + }).collect(Collectors.toList()); + } + + // 批量查询每个钢卷的最新一条改判记录 + List latestRejudges = baseMapper.selectLatestByCoilIds(coilIds); + + Map rejudgeMap = new HashMap<>(); + if (latestRejudges != null && !latestRejudges.isEmpty()) { + latestRejudges.forEach(r -> { + if (r.getCoilId() != null) { + rejudgeMap.put(r.getCoilId(), r); + } + }); + } + + // 组装返回结果 + return coils.stream().map(vo -> { + WmsMaterialCoilRejudgeVo rvo = new WmsMaterialCoilRejudgeVo(); + BeanUtil.copyProperties(vo, rvo); + if (vo.getCoilId() != null && rejudgeMap.containsKey(vo.getCoilId())) { + rvo.setRejudgeInfo(rejudgeMap.get(vo.getCoilId())); + } + return rvo; + }).collect(Collectors.toList()); + } + /** * 批量删除钢卷质量改判记录 */ From 053f3ea01eae49f3102969533937c0a758d3d76a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com> Date: Fri, 3 Jul 2026 17:42:05 +0800 Subject: [PATCH 11/12] =?UTF-8?q?feat(wms/coil):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=92=A2=E5=8D=B7=E8=B4=A8=E9=87=8F=E7=8A=B6=E6=80=81=E6=B5=81?= =?UTF-8?q?=E8=BD=AC=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 添加属性箭头样式类用于展示状态流转箭头 2. 新增初始质量状态props传递,在基础信息和生命周期追踪组件中展示质量状态变更 3. 在 futuristic 钢卷卡片中展示初始到当前的质量状态流转 --- klp-ui/src/views/wms/coil/info/coil-info.scss | 8 ++++++++ .../coil/info/components/BasicInfoSection.vue | 17 +++++++++++++++-- .../coil/info/components/CoilCardFuturistic.vue | 16 ++++++++++++++-- .../wms/coil/info/components/LifecycleTrace.vue | 4 +++- klp-ui/src/views/wms/coil/info/index.vue | 15 +++++++++++++-- 5 files changed, 53 insertions(+), 7 deletions(-) diff --git a/klp-ui/src/views/wms/coil/info/coil-info.scss b/klp-ui/src/views/wms/coil/info/coil-info.scss index ad84da384..1f24d2092 100644 --- a/klp-ui/src/views/wms/coil/info/coil-info.scss +++ b/klp-ui/src/views/wms/coil/info/coil-info.scss @@ -598,6 +598,14 @@ text-shadow: 0 0 6px rgba(100, 116, 139, 0.4) !important; } +.attr-arrow { + display: inline-block; + margin: 0 4px; + color: #94a3b8; + font-size: 11px; + font-weight: 400; +} + .coil-futuristic-footer { display: flex; justify-content: space-around; diff --git a/klp-ui/src/views/wms/coil/info/components/BasicInfoSection.vue b/klp-ui/src/views/wms/coil/info/components/BasicInfoSection.vue index f90c0ad6a..d1d9bbaab 100644 --- a/klp-ui/src/views/wms/coil/info/components/BasicInfoSection.vue +++ b/klp-ui/src/views/wms/coil/info/components/BasicInfoSection.vue @@ -5,7 +5,7 @@ 基本信息
- +
@@ -14,7 +14,20 @@ export default { name: 'BasicInfoSection', props: { - coilInfo: { type: Object, default: () => ({}) } + coilInfo: { type: Object, default: () => ({}) }, + initialQualityStatus: { type: String, default: '' } + }, + computed: { + displayCoilInfo() { + const currentStatus = this.coilInfo.qualityStatus || '-' + if (this.initialQualityStatus && this.initialQualityStatus !== currentStatus) { + return { + ...this.coilInfo, + qualityStatus: `${this.initialQualityStatus} → ${currentStatus}` + } + } + return this.coilInfo + } } } diff --git a/klp-ui/src/views/wms/coil/info/components/CoilCardFuturistic.vue b/klp-ui/src/views/wms/coil/info/components/CoilCardFuturistic.vue index 5dbe514c8..5f0b00865 100644 --- a/klp-ui/src/views/wms/coil/info/components/CoilCardFuturistic.vue +++ b/klp-ui/src/views/wms/coil/info/components/CoilCardFuturistic.vue @@ -55,7 +55,11 @@
{{ leftLabel }} - {{ coil.qualityStatus || '-' }} + {{ initialQualityStatus || '-' }} +
@@ -116,7 +120,8 @@ export default { name: 'CoilCardFuturistic', props: { coil: { type: Object, default: () => ({}) }, - type: { type: String, default: 'inbound' } + type: { type: String, default: 'inbound' }, + initialQualityStatus: { type: String, default: '' } }, data() { uid++ @@ -142,6 +147,13 @@ export default { }, leftLabel() { return this.type === 'inbound' ? '质量状态' : '状态' + }, + currentQualityStatus() { + return this.coil.qualityStatus || '-' + }, + hasQualityChanged() { + return this.initialQualityStatus && this.currentQualityStatus !== '-' + && this.initialQualityStatus !== this.currentQualityStatus } }, methods: { diff --git a/klp-ui/src/views/wms/coil/info/components/LifecycleTrace.vue b/klp-ui/src/views/wms/coil/info/components/LifecycleTrace.vue index c195d607f..ff74dfe18 100644 --- a/klp-ui/src/views/wms/coil/info/components/LifecycleTrace.vue +++ b/klp-ui/src/views/wms/coil/info/components/LifecycleTrace.vue @@ -38,6 +38,7 @@ 📦 入库
无钢卷信息 @@ -147,7 +148,8 @@ export default { components: { CoilTraceResult, CoilCardFuturistic, CoilCardCompact, ShipmentCard }, props: { traceResult: { type: Object, default: null }, - coilInfo: { type: Object, default: () => ({}) } + coilInfo: { type: Object, default: () => ({}) }, + initialQualityStatus: { type: String, default: '' } }, methods: { isEmpty(list) { diff --git a/klp-ui/src/views/wms/coil/info/index.vue b/klp-ui/src/views/wms/coil/info/index.vue index 212b65572..e56a40741 100644 --- a/klp-ui/src/views/wms/coil/info/index.vue +++ b/klp-ui/src/views/wms/coil/info/index.vue @@ -1,12 +1,12 @@