From bb4425c45dd8668dd72a9194193782e204101e0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Wed, 27 May 2026 21:08:42 +0800 Subject: [PATCH 01/30] =?UTF-8?q?=E8=BD=AC=E5=A4=96=E5=8D=8F=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/produce/pojo/entity/WorkPlan.java | 2 ++ .../impl/YieldOrderCraftServiceImpl.java | 12 ++++--- .../service/impl/WorkOrderRunServiceImpl.java | 34 +++++++++---------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java index eabe6f800..c059e20a3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java @@ -120,6 +120,7 @@ public class WorkPlan extends BaseEntity { * 加工班组 */ @Schema(description = "加工班组") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Long makeTeam; /** * 是否外协 @@ -207,6 +208,7 @@ public class WorkPlan extends BaseEntity { * */ @Schema(description = "附属班组") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Long subsidiaryTeam; /** * 检验颜色标识 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java index f1947fef9..8639e8467 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java @@ -15,10 +15,7 @@ import org.springblade.desk.basic.pojo.entity.BsAssignEntity; import org.springblade.desk.basic.pojo.entity.Oem; import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity; import org.springblade.desk.basic.pojo.entity.WorkCenter; -import org.springblade.desk.basic.service.IBsAssignService; -import org.springblade.desk.basic.service.IOemCraftAbilityService; -import org.springblade.desk.basic.service.IOemService; -import org.springblade.desk.basic.service.IWorkCenterService; +import org.springblade.desk.basic.service.*; import org.springblade.desk.dashboard.pojo.entity.BsCraftAbilityEntity; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; @@ -36,6 +33,7 @@ import org.springblade.desk.order.pojo.entity.YieldOrderCraft; import org.springblade.desk.order.service.IYieldOrderAssignSteerService; import org.springblade.desk.order.service.IYieldOrderCraftService; import org.springblade.desk.order.service.IYieldOrderDailyAssignService; +import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -63,6 +61,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl selectPage(IPage page, YieldOrderCraft entity) { @@ -539,6 +538,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl 0) { List bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId); + CraftAbilityEntity craftAbility = iCraftAbilityService.getById(hostCaId); for (YieldOrderAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) { oemCustomer = oemService.getById(bsPlanAssignSteer.getOemId()); String oemCode = oemCustomer.getCode(); @@ -556,6 +556,10 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl() - .eq(WorkPlan::getFrontWpId, wp.getId())); + WorkPlan frontWorkPlan = workPlanMapper.selectById(wp.getFrontWpId()); if (frontWorkPlan != null) { // 还原上序 frontWorkPlan.setStatus(WorkPlan.STATUS_WORK_OK); @@ -278,14 +278,19 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId()); + Map yieldOrderCraftMap = yieldOrderCrafts.stream().collect(Collectors.toMap(YieldOrderCraft::getProcessNo, v -> v)); if (!wpList.isEmpty()) { //判断工序是否存在外协商,如果存在不进行二次分派 WorkPlan workPlan = workPlanMapper.selectById(wprList.get(0).getWpId()); if (workPlan.getOcId() == null || workPlan.getOcId() < 1 ) { //自动分派 - List yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId()); yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yo, Boolean.FALSE, null); } + for (WorkPlan plan : wpList) { + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(plan.getOrders()); + plan.setOcId(yieldOrderCraft.getOcId()); + } } int days = 5; wo.setOemOut("0"); @@ -306,28 +311,21 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() - .eq(WorkPlan::getId, wp.getNextWpId())); + WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper().eq(WorkPlan::getId, wp.getNextWpId())); if (nextWp != null) { - oemId = nextWp.getOcId(); - craftAbilityId = nextWp.getCaId(); + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(nextWp.getOrders()); + oemId = yieldOrderCraft.getOcId(); + craftAbilityId = yieldOrderCraft.getCaId(); oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, oemId) .eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId)); } } else { - oemId = wp.getOcId(); - craftAbilityId = wp.getCaId(); + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(wp.getOrders()); + oemId = yieldOrderCraft.getOcId(); + craftAbilityId = yieldOrderCraft.getCaId(); oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, oemId) .eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId)); } - //更改订单调度员和计划员 - if (oa == null) { - Oem oem = oemMapper.selectById(oemId); - String oemName = oem != null ? oem.getOcName() : "未知厂商"; - String errorMsg = String.format("外协厂商【%s】(ID:%s)的工艺能力(ID:%s)未维护,可在基础数据-外协工艺能力页面维护", oemName, oemId, craftAbilityId); - log.error(errorMsg); - throw new ServiceException(errorMsg); - } workOrderService.maintainOrder(wo, oa.getPlanner(), oa.getDispatcher(), workOrderRun, true); } Date date = DateUtil.plusDays(wo.getSendDownTime(), days); @@ -343,7 +341,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl Date: Wed, 27 May 2026 21:21:55 +0800 Subject: [PATCH 02/30] =?UTF-8?q?=E7=94=B5=E5=AD=90=E6=A1=A3=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/quality/pojo/entity/AuditFile.java | 6 ++ .../desk/produce/mapper/WorkPlanMapper.xml | 8 +-- .../desk/quality/mapper/AuditFileMapper.java | 6 ++ .../desk/quality/mapper/AuditFileMapper.xml | 31 ++++++++++ .../impl/InspectionTaskServiceImpl.java | 59 +++++++++++++++---- 5 files changed, 95 insertions(+), 15 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java index 5d5d0b7a8..40db021fe 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java @@ -116,4 +116,10 @@ public class AuditFile extends BaseEntity { @Schema(description = "产品应用领域") @JsonSerialize(using = Integer0ToEmptyStringSerializer.class) private Integer prodApplyArea; + + /** + * 工艺能力ID + */ + @Schema(description = "工艺能力ID") + private Long caId; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml index fd0881e83..3f6855026 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml @@ -79,8 +79,8 @@ - select a.PART_CODE, a.BATCH_NO, a.WORK_QTY, a.area, a.sumArea, - a.MTN_CODE, a.prod_ident,a.wo_code,a.material,a.yield_type from ( + select a.PART_CODE as partCode, a.BATCH_NO as batchNo, a.WORK_QTY as workQty, a.area, a.sumArea, + a.MTN_CODE as mtnCode, a.prod_ident as prodIdent,a.wo_code as woCode,a.material,a.yield_type as yieldType from ( select d.PART_CODE, c.BATCH_NO, b.WORK_QTY, b.WORK_QTY*d.YP_AREA as area, sum(b.WORK_QTY*d.YP_AREA) over() as sumArea, a.MTN_CODE, d.PRODUCT_IDENT as prod_ident,c.wo_code,f.material,d.yield_type from MES_MAC_TOOL_USE a diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java index 0ab9c401d..190248582 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java @@ -40,4 +40,10 @@ public interface AuditFileMapper extends BaseMapper { List exportAuditFile(@Param("ew") Wrapper queryWrapper); List listSearch(IPage page, @Param("q") AuditFileSearch search); + + AuditFile getByPpsId(Long ppsId); + + AuditFile getDataByPpsIdAndApplyArea(@Param("ppsId") Long ppsId, @Param("wcId") Long wcId, @Param("prodApplyArea") String prodApplyArea, @Param("prodIdent") String prodIdent, @Param("caId") Long caId); + + AuditFile getDataByPpsIdAndPqName(@Param("ppsId") Long ppsId, @Param("wcId") Long wcId, @Param("prodIdent") String prodIdent, @Param("caId") Long caId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml index bb76cc317..25214b9f5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml @@ -15,6 +15,7 @@ + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java index d3a592bea..1fb99122f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java @@ -28,8 +28,10 @@ import org.springblade.desk.basic.constant.BaseValue; import org.springblade.desk.basic.mapper.OemMapper; import org.springblade.desk.basic.pojo.entity.CenterTeam; import org.springblade.desk.basic.pojo.entity.Oem; +import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.service.ICenterTeamService; import org.springblade.desk.basic.service.IPlatingService; +import org.springblade.desk.basic.service.ITeamSetService; import org.springblade.desk.basic.util.IdUtil; import org.springblade.desk.basic.util.StatusCountMap; import org.springblade.desk.dashboard.pojo.entity.*; @@ -57,6 +59,7 @@ import org.springblade.desk.quality.constant.InspectionItemConst; import org.springblade.desk.quality.constant.InspectionTaskConst; import org.springblade.desk.quality.constant.ReviewSheetConst; import org.springblade.desk.quality.excel.InspectionTaskExcel; +import org.springblade.desk.quality.mapper.AuditFileMapper; import org.springblade.desk.quality.mapper.InspectionTaskMapper; import org.springblade.desk.quality.pojo.entity.*; import org.springblade.desk.quality.pojo.request.InspectionTaskSearch; @@ -147,6 +150,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl checkList = this.getCheckListNotNG(woId, wpList, true); modelJson1.put("checkList", checkList); jsonObj.put("modelThree", modelJson1); - } +// } - List modelTwoList = this.buildModelTwo(wpList, planList); + List modelTwoList = this.buildModelTwo(wo, yo, dsPart, wpList, planList); jsonObj.put("modelTwo", modelTwoList); if (moduleList.get(2)) { @@ -682,6 +689,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl buildModelTwo(List wpList, List modelFlag) { + private List buildModelTwo(WorkOrder wo, YieldOrder yo, DsPartEntity dsPart, List wpList, List modelFlag) { if (wpList == null || wpList.size() == 0) { return null; } @@ -740,9 +749,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl buildDsRbFilePreserveSlotList(WorkPlanExpandVO workPlan){ + private List buildDsRbFilePreserveSlotList(WorkPlanExpandVO workPlan) { List dsRbFilePreserveSlotList = new ArrayList<>(); QueryWrapper qwteam = new QueryWrapper<>(); qwteam.eq("TS_ID", workPlan.getMakeTeam()); From a3a6a8bf6d931fa52d90099287d59ec8d0a3ad18 Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Thu, 28 May 2026 09:03:32 +0800 Subject: [PATCH 03/30] =?UTF-8?q?=E7=94=B5=E5=AD=90=E6=A1=A3=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/quality/service/impl/InspectionTaskServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java index 1fb99122f..abf47e504 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java @@ -666,12 +666,12 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl checkList = this.getCheckListNotNG(woId, wpList, true); modelJson1.put("checkList", checkList); jsonObj.put("modelThree", modelJson1); -// } + } List modelTwoList = this.buildModelTwo(wo, yo, dsPart, wpList, planList); jsonObj.put("modelTwo", modelTwoList); From 90dc879d5b04c348789fc233bf44f08cec2f540d Mon Sep 17 00:00:00 2001 From: wupeng <1591539960@qq.com> Date: Thu, 28 May 2026 09:14:17 +0800 Subject: [PATCH 04/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=B2=A1=E7=94=9F=E6=95=88=E5=92=8C=E6=98=BE=E7=A4=BAerp?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E4=B8=AD=E5=BF=83=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/cost/controller/SubjectFeeDetailController.java | 4 ++++ .../org/springblade/desk/cost/mapper/CostStatisticsMapper.xml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/controller/SubjectFeeDetailController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/controller/SubjectFeeDetailController.java index a01317652..18d7d6200 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/controller/SubjectFeeDetailController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/controller/SubjectFeeDetailController.java @@ -191,6 +191,10 @@ public class SubjectFeeDetailController extends BladeController { if ("辅助人员材料费用".equals(subjectName)) { iterator.remove(); // 只有迭代器的 remove 才安全 } + // 如果“erp作业中心材料费用”,删除 + if ("erp作业中心材料费用".equals(subjectName)) { + iterator.remove(); // 只有迭代器的 remove 才安全 + } } } return R.data(list); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml index c47575138..3853cbb6a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml @@ -25,6 +25,7 @@ + @@ -35,6 +36,9 @@ and MONTH = #{param2.month} + + and JC_ID = #{param2.jcId} + From 83a9cb0386c48a6f721d7423014c028923816a9c Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Thu, 28 May 2026 10:01:21 +0800 Subject: [PATCH 05/30] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/mapper/EquipAbilityMapper.xml | 2 +- .../scheduling/mapper/SameTroughMapper.xml | 14 ++++++++++- .../scheduling/mapper/SintTempCurveMapper.xml | 8 ++++++- .../service/impl/WorkOrderServiceImpl.java | 23 ++++++++++--------- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipAbilityMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipAbilityMapper.xml index 02bd85bb1..c83380893 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipAbilityMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipAbilityMapper.xml @@ -35,7 +35,7 @@ and work_center_name LIKE CONCAT('%', CONCAT(#{param2.workCenterName}, '%')) - and equip_code = #{param2.equipCode} + and equip_code LIKE CONCAT('%', CONCAT(#{param2.equipCode}, '%')) and equip_name LIKE CONCAT('%', CONCAT(#{param2.equipName}, '%')) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml index c470e1a61..11968332f 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml @@ -33,7 +33,19 @@ diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SintTempCurveMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SintTempCurveMapper.xml index 24f096177..051daec3c 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SintTempCurveMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SintTempCurveMapper.xml @@ -24,7 +24,13 @@ diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index c7dc20c00..98f53d0d4 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -850,7 +850,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpllambdaQuery().eq(WorkOrderEntity::getYoId,order.getId())); workOrder.setPlanEndDate(workPlanList.get(workPlanList.size() - 1).getPlanEndTime() == null ? null : workPlanList.get(workPlanList.size() - 1).getPlanEndTime().truncatedTo(ChronoUnit.DAYS).toString().substring(0, 10)); @@ -1027,6 +1026,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 10:41:09 +0800 Subject: [PATCH 06/30] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/pojo/enums/WorkOrderEnum.java | 1 + .../scheduling/service/impl/WorkOrderServiceImpl.java | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/enums/WorkOrderEnum.java b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/enums/WorkOrderEnum.java index 022a2438d..af773325b 100644 --- a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/enums/WorkOrderEnum.java +++ b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/enums/WorkOrderEnum.java @@ -35,6 +35,7 @@ public enum WorkOrderEnum { STATUS_PART_TYPE_1("壳体最大外径", 1), STATUS_PART_TYPE_2("玻璃饼直径", 2), STATUS_PART_TYPE_3("芯数", 3), + STATUS_PART_TYPE_4("涂色标", 4), ; final String name; final int code; diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index 98f53d0d4..aaecbb01d 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -61,6 +61,7 @@ import org.springblade.scheduling.scheduling.service.*; import org.springblade.scheduling.scheduling.vo.PersonAbilityVO; import org.springblade.scheduling.scheduling.vo.SameTroughVO; import org.springblade.scheduling.scheduling.vo.WorkPlanVO; +import org.springblade.system.cache.DictCache; import org.springblade.wms.feign.StGlassCakeOutClient; import org.springblade.wms.pojo.dto.StGlassCakeOutDTO; import org.springframework.beans.BeanUtils; @@ -848,6 +849,15 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 10:43:59 +0800 Subject: [PATCH 07/30] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/process/pojo/entity/FmProjectApprovalConfigEntity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectApprovalConfigEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectApprovalConfigEntity.java index 5adf53ca3..6a4958d9b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectApprovalConfigEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectApprovalConfigEntity.java @@ -63,7 +63,7 @@ public class FmProjectApprovalConfigEntity extends BaseEntity { @Schema(description = "状态:0-禁用,1-启用") private Integer status; - private Integer sortOrde; + private Integer sortOrder; // ==================== 节点编码常量 ==================== /** From e5d74eea212fa9d5cce30beb6fdb370f48eada54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=BE=E7=BF=94?= Date: Thu, 28 May 2026 10:45:30 +0800 Subject: [PATCH 08/30] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FmProjectApprovalConfigServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApprovalConfigServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApprovalConfigServiceImpl.java index e56d43365..a8db7a789 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApprovalConfigServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApprovalConfigServiceImpl.java @@ -98,7 +98,7 @@ public class FmProjectApprovalConfigServiceImpl extends BaseServiceImpl getList() { return list(Wrappers.lambdaQuery(FmProjectApprovalConfigEntity.class) .eq(FmProjectApprovalConfigEntity::getStatus, FmProjectApprovalConfigEntity.STATUS_ENABLED) - .orderByDesc(FmProjectApprovalConfigEntity::getSortOrde)); + .orderByDesc(FmProjectApprovalConfigEntity::getSortOrder)); } } From 9e91b0bbc3cc7784359bb9b90c0c866a84dcbc3c Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Thu, 28 May 2026 11:40:46 +0800 Subject: [PATCH 09/30] =?UTF-8?q?=E5=B7=A5=E8=89=BA=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springblade/desk/quality/pojo/vo/AuditFileVO.java | 3 +++ .../desk/quality/controller/AuditFileController.java | 4 ++-- .../desk/quality/mapper/AuditFileMapper.java | 2 +- .../desk/quality/mapper/AuditFileMapper.xml | 11 +++++++++-- .../desk/quality/service/IAuditFileService.java | 2 +- .../quality/service/impl/AuditFileServiceImpl.java | 2 +- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java index 69b442872..2203825d0 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java @@ -25,4 +25,7 @@ public class AuditFileVO extends AuditFile { @Schema(description = "base") private BaseEntityVO base; + + @Schema(description = "工艺能力") + private String caName; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java index f7f340a54..a5e4c647b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java @@ -85,8 +85,8 @@ public class AuditFileController extends BladeController { Query query) { // QueryWrapper qw = Condition.getQueryWrapper(map, AuditFile.class); AuditFileSearch search = BeanUtil.toBeanIgnoreError(map, AuditFileSearch.class); - IPage pages = service.listSearch(Condition.getPage(query), search); - IPage pagesVO = AuditFileWrapper.build().pageVO(pages); + IPage pagesVO = service.listSearch(Condition.getPage(query), search); +// IPage pagesVO = AuditFileWrapper.build().pageVO(pages); pagesVO.getRecords() .stream() .peek(service::setVOValue) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java index 190248582..72905273a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java @@ -39,7 +39,7 @@ public interface AuditFileMapper extends BaseMapper { */ List exportAuditFile(@Param("ew") Wrapper queryWrapper); - List listSearch(IPage page, @Param("q") AuditFileSearch search); + List listSearch(IPage page, @Param("q") AuditFileSearch search); AuditFile getByPpsId(Long ppsId); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml index 25214b9f5..989123cb6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml @@ -18,6 +18,10 @@ + + + + - SELECT DISTINCT f.ID, f.CREATE_USER, f.CREATE_TIME, @@ -47,8 +51,11 @@ f.PAPERS, f.SORT, f.REMARK, - f.PROD_APPLY_AREA + f.PROD_APPLY_AREA, + f.CA_ID, + ca.CA_NAME FROM QA_AUDIT_FILE f + LEFT JOIN BS_CRAFT_ABILITY ca ON f.ca_id = ca.id LEFT JOIN BLADE_USER u ON (f.CREATE_USER = u.ID OR f.UPDATE_USER = u.ID) WHERE ( diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java index bfeaad70e..8e20cbadc 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IAuditFileService.java @@ -44,7 +44,7 @@ public interface IAuditFileService extends EnBaseService { */ void setVOValue(AuditFileVO vo); - IPage listSearch(IPage page, AuditFileSearch search); + IPage listSearch(IPage page, AuditFileSearch search); R upgradeVer(AuditFile find); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java index d8b19bde9..74bb611c4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/AuditFileServiceImpl.java @@ -68,7 +68,7 @@ public class AuditFileServiceImpl extends EnBaseServiceImpl listSearch(IPage page, AuditFileSearch search) { + public IPage listSearch(IPage page, AuditFileSearch search) { return page.setRecords(baseMapper.listSearch(page, search)); } From 7702e103fa14457b26cc7fc23bd234a54f565b31 Mon Sep 17 00:00:00 2001 From: liweidong-hj Date: Thu, 28 May 2026 11:42:20 +0800 Subject: [PATCH 10/30] =?UTF-8?q?=E7=83=A7=E7=BB=93=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=AD=90=E4=BB=B6=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/YieldOrderServiceImpl.java | 70 ++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 0c078b7e5..83028a5ec 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -476,11 +476,79 @@ public class YieldOrderServiceImpl extends BaseServiceImpl partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId()); + List childPartIdList = partRelationEntityList.stream() + .map(DsPartRelationEntity::getChildPartId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(childPartIdList)) { + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo(partEntity.getPartCode()+" :未查询到子件信息"); + this.updateById(yieldOrder); + return null; + } + + List dsPartEntityList = dsPartService.listByIds(childPartIdList); + + // 收集所有子件的 + Set sinTerTypeSet = dsPartEntityList.stream() + .map(DsPartEntity::getSinTerType) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if(CollectionUtils.isEmpty(sinTerTypeSet)){ + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo(partEntity.getPartCode()+" :子件类型为空"); + this.updateById(yieldOrder); + return null; + } + + // 校验必须包含的零件类型 + List requiredTypes = Arrays.asList(DsPartConstant.SIN_TER_TYPE_CZ, DsPartConstant.SIN_TER_TYPE_KT, DsPartConstant.SIN_TER_TYPE_BLB, DsPartConstant.SIN_TER_TYPE_SMM); + + List missingTypes = new ArrayList<>(); + for (Integer requiredType : requiredTypes) { + if (!sinTerTypeSet.contains(requiredType)) { + missingTypes.add(requiredType); + } + } + + if (!missingTypes.isEmpty()) { + String missingDesc = missingTypes.stream() + .map(type -> { + if (type.equals(DsPartConstant.SIN_TER_TYPE_CZ)) return "插针"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_KT)) return "壳体"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_BLB)) return "玻璃饼"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_SMM)) return "石墨模"; + return "未知类型(" + type + ")"; + }) + .collect(Collectors.joining("、")); + + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo("零件:"+partEntity.getPartCode()+" 缺少子件类型: " + missingDesc); + this.updateById(yieldOrder); + return null; + } + + } Integer rank; // 先判断是否是热表订单 不是返回二级工艺 From 20e0cfe035bf3f5f0d3271889693b7742f7108de Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Thu, 28 May 2026 13:33:19 +0800 Subject: [PATCH 11/30] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E7=BB=93=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/desk/oem/pojo/vo/PriceSheetVO.java | 6 +++--- .../desk/oem/service/impl/OemStatementServiceImpl.java | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java index 1a5aba6e9..b95e0232f 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java @@ -52,10 +52,10 @@ public class PriceSheetVO { private String stairflag; /** - * 阶梯价标记key + * 阶梯价标记value */ - @Schema(description = "阶梯价标记key") - private String stairflagkey; + @Schema(description = "阶梯价标记value") + private String stairflagvalue; /** * 阶梯上限 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java index 3630b02d0..1cad64f28 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java @@ -2067,11 +2067,11 @@ public class OemStatementServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 13:47:04 +0800 Subject: [PATCH 12/30] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/service/impl/FmProjectApplicationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApplicationServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApplicationServiceImpl.java index d43a073e0..e29089c9e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApplicationServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApplicationServiceImpl.java @@ -253,7 +253,7 @@ public class FmProjectApplicationServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 15:07:24 +0800 Subject: [PATCH 13/30] =?UTF-8?q?=E5=BA=8F=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/service/impl/FmProjectMilestoneServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java index 1e39472fb..4e5277516 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java @@ -350,9 +350,9 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 15:11:27 +0800 Subject: [PATCH 14/30] =?UTF-8?q?=E8=BF=94=E5=B7=A5=E5=B7=A5=E8=89=BA?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dashboard/controller/DsCraftController.java | 15 ++++++++++++++- .../desk/dashboard/mapper/PartMapper.xml | 2 +- .../desk/dashboard/service/IDsCraftService.java | 7 +++++++ .../service/impl/DsCraftServiceImpl.java | 14 ++++++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java index a789b5e0d..9f677aec9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java @@ -151,7 +151,7 @@ public class DsCraftController extends BladeController { */ @GetMapping("/listByPart") @ApiOperationSupport(order = 1) - @Operation(summary = "获取版本号", description = "传入零件ID") + @Operation(summary = "根据零件ID查询工艺", description = "传入零件ID") public R> listByPart(Long partId) { return R.data(dsCraftService.selectDsCraftByPartId(partId)); } @@ -183,4 +183,17 @@ public class DsCraftController extends BladeController { return R.status(dsCraftService.craftBatchCopy(craftVO)); } + /** + * 根据零件号查询工艺 + */ + @GetMapping("/listByPartCode") + @ApiOperationSupport(order = 1) + @Operation(summary = "根据零件号查询工艺", description = "传入零件partCode") + public R> listByPartCode(String partCode) { + return R.data(dsCraftService.selectDsCraftByPartCode(partCode)); + } + + + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml index abcb64253..d5d9f1e68 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml @@ -213,7 +213,7 @@ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java index 1cad64f28..4806fd8d2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java @@ -616,6 +616,9 @@ public class OemStatementServiceImpl extends BaseServiceImpl downloadExcelTemplate() { return ExcelExtUtil.downloadXlsTemplate( - "Excel/QA/槽液信息.xls", + "Excel/QA/槽液信息模板.xls", "导入模版-槽液信息.xls"); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java index 1dc84f568..23fecf075 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java @@ -31,7 +31,6 @@ public class LiquidTankExcel implements Serializable { @Serial private static final long serialVersionUID = 1L; - /** * 任务前缀 */ @@ -48,9 +47,6 @@ public class LiquidTankExcel implements Serializable { /** * 槽液编码/槽号 */ - @ColumnWidth(20) - @ExcelProperty("槽液编码/槽号") - private String code; /** * [作业槽]id @@ -128,42 +124,20 @@ public class LiquidTankExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("添加值单位") private String addUnit; - /** - * 添加值[计量单位]id - */ - @ColumnWidth(20) - @ExcelProperty("添加值[计量单位]id") - private BigDecimal addUnitId; /** * 加药量[计算公式]id */ @ColumnWidth(20) @ExcelProperty("加药量计算公式") -// private BigDecimal addDrugFormulaId; private String addDrugFormulaName; /** * 添加后理论值[计算公式]id */ @ColumnWidth(20) @ExcelProperty("添加后理论值计算公式") -// private BigDecimal afterTheoryFormulaId; private String afterTheoryFormulaName; - /** - * 温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围; - */ - @ColumnWidth(20) - @ExcelProperty("温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围;") - private Long temperatureType; - - /** - * PH范围类型:[1]:无;[2]:PH值范围; - */ - @ColumnWidth(20) - @ExcelProperty("PH范围类型:[1]:无;[2]:PH值范围;") - private Long phType; - /** @@ -172,12 +146,7 @@ public class LiquidTankExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("药品名称") private String drugName; - /** - * 药品[物料]id - */ - @ColumnWidth(20) - @ExcelProperty("药品[物料]id") - private BigDecimal drugMaterialId; + /** * 药品[物料]编码 */ @@ -232,6 +201,62 @@ public class LiquidTankExcel implements Serializable { private LocalDate validDate; + /** + * 生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON + */ + @ColumnWidth(20) +// @ExcelProperty("生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON") + @ExcelProperty("生成周期类型:[1]:每周;[2]:每月;[3]:每年;") + private Integer jobType; +// private String jobTypeName; + /** + * 定时WEEK值 + */ + @ColumnWidth(20) + @ExcelProperty("每周") + private String jobTypeWeekValue; + /** + * 定时MONTH值 + */ + @ColumnWidth(20) + @ExcelProperty("每月") + private String jobTypeMonthValue; + /** + * 定时YEAR值 + */ + @ColumnWidth(20) + @ExcelProperty("每年") + private String jobTypeYearValue; + + @ColumnWidth(20) + @ExcelProperty("槽液编码/槽号") + private String code; + /** + * 添加值[计量单位]id + */ + @ColumnWidth(20) + @ExcelProperty("添加值[计量单位]id") + private BigDecimal addUnitId; + /** + * 温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围; + */ + @ColumnWidth(20) + @ExcelProperty("温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围;") + private Long temperatureType; + + /** + * PH范围类型:[1]:无;[2]:PH值范围; + */ + @ColumnWidth(20) + @ExcelProperty("PH范围类型:[1]:无;[2]:PH值范围;") + private Long phType; + /** + * 药品[物料]id + */ + @ColumnWidth(20) + @ExcelProperty("药品[物料]id") + private BigDecimal drugMaterialId; + /** * 工艺含量 */ @@ -339,32 +364,6 @@ public class LiquidTankExcel implements Serializable { @ExcelProperty("环境温度") private BigDecimal temperatureEnv; - /** - * 生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON - */ - @ColumnWidth(20) -// @ExcelProperty("生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON") - @ExcelProperty("生成周期类型:[1]:每周;[2]:每月;[3]:每年;") - private Integer jobType; -// private String jobTypeName; - /** - * 定时WEEK值 - */ - @ColumnWidth(20) - @ExcelProperty("每周") - private String jobTypeWeekValue; - /** - * 定时MONTH值 - */ - @ColumnWidth(20) - @ExcelProperty("每月") - private String jobTypeMonthValue; - /** - * 定时YEAR值 - */ - @ColumnWidth(20) - @ExcelProperty("每年") - private String jobTypeYearValue; /** * 生成任务 json config */ diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/槽液信息模板.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/槽液信息模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..177553dee912f9ca9da5c828d9e0992fb90d2fcf GIT binary patch literal 23552 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 Date: Thu, 28 May 2026 15:59:34 +0800 Subject: [PATCH 19/30] =?UTF-8?q?=E7=94=B5=E5=AD=90=E6=A1=A3=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IErpDataCheckerSealClient.java | 21 +++ .../IErpDataCheckerSealClientFallback.java | 13 ++ .../desk/produce/mapper/WorkPlanMapper.java | 3 +- .../desk/produce/mapper/WorkPlanMapper.xml | 8 +- .../service/impl/WorkOrderServiceImpl.java | 6 +- .../impl/InspectionTaskServiceImpl.java | 166 +++++++++++++++--- .../feign/ErpDataCheckerSealClient.java | 22 +++ .../mapper/ErpDataCheckerSealMapper.java | 9 + .../mapper/ErpDataCheckerSealMapper.xml | 9 + .../service/IErpDataCheckerSealService.java | 7 + .../impl/ErpDataCheckerSealServiceImpl.java | 21 +++ 11 files changed, 249 insertions(+), 36 deletions(-) create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClient.java create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClientFallback.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataCheckerSealClient.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataCheckerSealMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataCheckerSealMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataCheckerSealService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataCheckerSealServiceImpl.java diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClient.java new file mode 100644 index 000000000..6d5427ec6 --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClient.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.feign; + +import org.springblade.common.constant.LauncherConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient( + value = LauncherConstant.APPLICATION_ERP_DATA_NAME, + fallback = IErpDataCheckerSealClientFallback.class +) +public interface IErpDataCheckerSealClient { + + String API_PREFIX = "/feign/erpdata/checkerseal"; + + String GET_CHECK_MAN_BY_NEW_ERP_MES = API_PREFIX + "/getCheckManByNewErpMes"; + + @GetMapping(GET_CHECK_MAN_BY_NEW_ERP_MES) + String getCheckManByNewErpMes(@RequestParam("userName") String userName); + +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClientFallback.java new file mode 100644 index 000000000..ae5f02f65 --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClientFallback.java @@ -0,0 +1,13 @@ +package org.springblade.erpdata.feign; + +import org.springframework.stereotype.Component; + +@Component +public class IErpDataCheckerSealClientFallback implements IErpDataCheckerSealClient{ + + @Override + public String getCheckManByNewErpMes(String userName) { + return null; + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java index 72e71d0aa..ec54d0f96 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java @@ -64,7 +64,7 @@ public interface WorkPlanMapper extends BaseMapper { MacToolUse getHangNumIsNull(Long wpId); MacToolUse getDataByWpIdAndIndex(Long wpId, String numberIndex); // List getDataByWcIdAndPpsId(Long wcId, Long ppsId,boolean aTrue); - List getDataByWcIdAndPpsId(Long wcId, Long ppsId, boolean aTrue); + List getDataByWcIdAndPpsId(Long wcId, Long ppsId, String line); List getByRfpId(Long rfpId); // MesQcProduceRunEntity getBoxInfoByWpIdMtnCode(Long wpId); @@ -80,7 +80,6 @@ public interface WorkPlanMapper extends BaseMapper { List listByPartCodeNew(String partCode, Short indexNum); List findByPartCodeAndMemoMes(String partCode, String memo); DsPartSub getByPartCodeAndSubCodeMes(String partCode, String subCode); - String getCheckManByNewErpMes(String userName); List listByWpiIdMes(Long wpiId); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml index 3f6855026..badf5c11b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml @@ -162,10 +162,6 @@ select * from MES_WORK_ORDER a inner join MES_YIELD_ORDER b on a.YO_ID = b.ID where b.PART_CODE= #{partCode} and b.YP_CODE = #{memo} - - diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index 66766221e..1bc7ba655 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -64,6 +64,7 @@ import org.springblade.desk.quality.pojo.entity.*; import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO; import org.springblade.desk.quality.service.*; import org.springblade.desk.util.date.DateUtils; +import org.springblade.erpdata.feign.IErpDataCheckerSealClient; import org.springblade.erpdata.feign.IErpDataLogisticsClient; import org.springblade.erpdata.feign.IErpDataProduceClient; import org.springblade.scheduling.pojo.entity.QualityGradeEntity; @@ -204,6 +205,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectWorkOrderPage(IPage page, WorkOrderDTO workOrder) { return page.setRecords(baseMapper.selectWorkOrderPage(page, workOrder)); @@ -2824,7 +2828,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl itemDetails = itemDetailMap.get(planItem.getId()); String checkManByNewErp = null; try { - checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(planItem.getCheckUserAccount()); + checkManByNewErp = erpDataCheckerSealClient.getCheckManByNewErpMes(planItem.getCheckUserRealName()); } catch (Exception e) { // DB Link 等异常降级,避免阻塞 PDF 生成 } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java index abf47e504..a1bb23f70 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java @@ -67,6 +67,7 @@ import org.springblade.desk.quality.pojo.request.InspectionTaskStartNew; import org.springblade.desk.quality.pojo.vo.*; import org.springblade.desk.quality.service.*; import org.springblade.desk.quality.wrapper.InspectionTaskListWrapper; +import org.springblade.erpdata.feign.IErpDataCheckerSealClient; import org.springblade.scheduling.pojo.entity.WorkPlanEntity; import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IUserClient; @@ -77,6 +78,8 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -154,6 +157,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl checkList = this.getCheckListNotNG(woId, wpList, true); - modelJson1.put("checkList", checkList); - jsonObj.put("modelThree", modelJson1); + modelThree.put("checkList", checkList); + jsonObj.put("modelThree", modelThree); } - List modelTwoList = this.buildModelTwo(wo, yo, dsPart, wpList, planList); - jsonObj.put("modelTwo", modelTwoList); + List modelTwo = this.buildModelTwo(wo, yo, dsPart, wpList, planList); + jsonObj.put("modelTwo", modelTwo); if (moduleList.get(2)) { // 镀后入库记录 @@ -708,12 +715,19 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl basList = feiBaSetService.listByIds(bas); List cardList = mesEquipmentCardService.listByIds(cards); // 设备编号 - String gj = StringUtils.join(rackList.stream().filter(j -> j.getRsType() != null).map(j -> j.getRsType()).collect(Collectors.toList()), "'、'"); - String fb = StringUtils.join(basList.stream().filter(j -> j.getFsType() != null).map(j -> j.getFsType()).collect(Collectors.toList()), "、"); + String gj = StringUtils.join(rackList.stream().filter(j -> j.getRsCode() != null).map(j -> j.getRsCode()).collect(Collectors.toList()), "'、'"); + String fb = StringUtils.join(basList.stream().filter(j -> j.getFsCode() != null).map(j -> j.getFsCode()).collect(Collectors.toList()), "、"); String eq = StringUtils.join(cardList.stream().filter(j -> j.getDeviceCode() != null).map(j -> j.getDeviceCode()).collect(Collectors.toList()), "、"); modelTwo.put("gjCode", gj); modelTwo.put("fbCode", fb); @@ -832,7 +859,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl getCheckListNotNG(Long woId, List wpList, Boolean eleOrPrint) { List checkList = new ArrayList<>(); //组装检测项集合 + Map ccMap = new LinkedHashMap<>(); + JSONObject cc; List piLst = workPlanItemService.listByWoIdNotNG(woId); Map workPlanMap = wpList.stream() .collect(Collectors.toMap( WorkPlanExpandVO::getId, Function.identity() )); + Map> piMap = new LinkedHashMap<>(); + List lst; if (CollectionUtils.isNotEmpty(piLst)) { for (WorkPlanItemVO pi : piLst) { + lst = piMap.get(pi.getItemCode()); WorkPlanExpandVO workPlan = workPlanMap.get(pi.getWpId()); String testOrder = workPlan.getOrders() + "-" + pi.getItemCode(); - JSONObject checkDetail = new JSONObject(); - checkDetail.put("testOrders", testOrder); - checkDetail.put("checkName", pi.getCheckUserRealName()); - if (StringUtils.isNotEmpty(pi.getCheckUserAccount())) { - String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(pi.getCheckUserAccount()); - if (eleOrPrint) { - checkDetail.put("imgUrl", checkManByNewErp); + if (CollectionUtils.isEmpty(lst)) { + lst = new ArrayList<>(); + piMap.put(testOrder, lst); + cc = new JSONObject(); + cc.put("testOrders", testOrder); + if (pi.getCheckQty() != null && pi.getCheckQty() > 0) { + cc.put("checkQty", pi.getCheckQty()); + } + if (pi.getTestQty() != null && pi.getTestQty() > 0) { + cc.put("testQty", pi.getTestQty()); } else { - if (checkManByNewErp != null && checkManByNewErp.indexOf("base64,") > 0) { - String checkManByNewErpSubString = checkManByNewErp.substring(checkManByNewErp.indexOf("base64,") + 7); - checkDetail.put("imgUrl", checkManByNewErpSubString); + cc.put("testQty", ""); + } + cc.put("checkResult", WorkPlanItem.checkResultMap.get(pi.getCheckResult())); + if (StringUtils.isNotEmpty(pi.getCheckUserRealName())) { + String checkManByNewErp = null; + try { + checkManByNewErp = erpDataCheckerSealClient.getCheckManByNewErpMes(pi.getCheckUserRealName()); + } catch (Exception e) { + // DB Link 等异常降级,避免阻塞 PDF 生成 + } + cc.put("checkName", pi.getCheckUserRealName()); + if (eleOrPrint) { + cc.put("imgUrl", checkManByNewErp); + } else { + if (checkManByNewErp != null && checkManByNewErp.indexOf("base64,") > 0) { + String checkManByNewErpSubString = checkManByNewErp.substring(checkManByNewErp.indexOf("base64,") + 7); + cc.put("imgUrl", checkManByNewErpSubString); + } + } + if (pi.getCheckDate() != null) { + cc.put("checkDate", pi.getCheckDate().toLocalDate().toString()); + } else { + cc.put("checkDate", ""); + } + } + ccMap.put(testOrder, cc); + } + if ("厚度检测".equals(pi.getItemName())) { + for (int i = 0; i < 3; i++) { + lst.add(this.buildCCC(pi.getItemName(), pi.getStandardName(), pi.getCheckValue(), pi.getId(), null, pi.getCreateTime())); + } + } + lst.add(this.buildCCC(pi.getItemName(), pi.getStandardName(), pi.getCheckValue(), pi.getId(), null, pi.getCreateTime())); + List idLst; + for (Map.Entry entry : ccMap.entrySet()) { + cc = ccMap.get(entry.getKey()); + if (cc != null) { + lst = piMap.get(cc.get("testOrders")); + lst = lst.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() + -> new TreeSet<>(Comparator.comparing(i -> (Date) i.get("createTime")))), ArrayList::new)); + if (lst != null && lst.size() > 0) { + for (JSONObject ccc : lst) { + idLst = workPlanItemDetailService.listVOByWorkPlanItemId((Long) ccc.get("wpiId")); + if (idLst != null && idLst.size() > 0) { + lst = new ArrayList<>(); + for (WorkPlanItemDetailVO itemDetail : idLst) { + if ("厚度检测".equals(ccc.get("testName"))) { + cc.put("deviceCode", itemDetail.getGaugeValue8()); + lst.add(this.buildCCC((String) ccc.get("testName"), (String) ccc.get("trialStandard"), itemDetail.getGaugeValueNotNUll(), null, itemDetail.getGaugeValue8(), (Date) ccc.get("createTime"))); + } else if (itemDetail.getMtId() != null) { + lst.add(this.buildCCC((String) ccc.get("testName"), itemDetail.getRuleSize(), + itemDetail.getGaugeValue1(), (Long) ccc.get("wpiId"), itemDetail.getTools(), (Date) ccc.get("createTime"))); + cc.put("deviceCode", itemDetail.getTools()); + if (cc.get("trialStandard") != null) { + cc.put("trialStandard", (String) cc.get("trialStandard") + ';' + itemDetail.getRuleSize()); + } else { + cc.put("trialStandard", itemDetail.getRuleSize()); + } + if (cc.get("checkResult") != null) { + cc.put("checkResult", cc.get("checkResult")); + } else { + cc.put("checkResult", itemDetail.getGaugeValue1()); + } + } + } + } + cc.put("cccList", lst); + checkList.add(cc); + break; + } } } } - checkList.add(checkDetail); } } return checkList; } + private JSONObject buildCCC(String testName, String trialStandard, String checkValue, Long wpiId, String tools, Date createTime) { + JSONObject ccc = new JSONObject(); + ccc.put("testName", testName); + ccc.put("trialStandard", trialStandard); + ccc.put("checkValue", checkValue); + ccc.put("wpiId", wpiId); + ccc.put("emTools", tools); + ccc.put("createTime", createTime); + return ccc; + } + public void getNewProcess(List wpList, JSONObject jsonObj, List modelFlag) { if (wpList == null || wpList.size() == 0) { return; @@ -1246,10 +1358,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl user = userClient.userInfoById(pi.getCheckUserId()); - String userName = user.getData().getAccount(); + String userName = user.getData().getRealName(); if (null != user && user.getData() != null) { cc.setCheckName(user.getData().getRealName()); } //zxh 20250212 从nerp获取检验员印章 - String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(userName); + String checkManByNewErp = erpDataCheckerSealClient.getCheckManByNewErpMes(userName); if (eleOrPrint) { diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataCheckerSealClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataCheckerSealClient.java new file mode 100644 index 000000000..0bbef1816 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataCheckerSealClient.java @@ -0,0 +1,22 @@ +package org.springblade.erpdata.feign; + +import io.swagger.v3.oas.annotations.Hidden; +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.erpdata.service.IErpDataCheckerSealService; +import org.springframework.web.bind.annotation.RestController; + +@NonDS +@Hidden +@RestController +@AllArgsConstructor +public class ErpDataCheckerSealClient implements IErpDataCheckerSealClient { + + @Resource + private final IErpDataCheckerSealService erpDataCheckerSealService; + @Override + public String getCheckManByNewErpMes(String userName) { + return erpDataCheckerSealService.getCheckManByNewErpMes(userName); + } +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataCheckerSealMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataCheckerSealMapper.java new file mode 100644 index 000000000..26146ad49 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataCheckerSealMapper.java @@ -0,0 +1,9 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.Mapper; + +public interface ErpDataCheckerSealMapper extends Mapper { + + String getCheckManByNewErpMes(String userName); + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataCheckerSealMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataCheckerSealMapper.xml new file mode 100644 index 000000000..b22339b26 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataCheckerSealMapper.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataCheckerSealService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataCheckerSealService.java new file mode 100644 index 000000000..f9254101f --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataCheckerSealService.java @@ -0,0 +1,7 @@ +package org.springblade.erpdata.service; + +public interface IErpDataCheckerSealService { + + String getCheckManByNewErpMes(String userName); + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataCheckerSealServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataCheckerSealServiceImpl.java new file mode 100644 index 000000000..c8ad2166d --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataCheckerSealServiceImpl.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.service.impl; + +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import org.springblade.erpdata.mapper.ErpDataCheckerSealMapper; +import org.springblade.erpdata.service.IErpDataCheckerSealService; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class ErpDataCheckerSealServiceImpl implements IErpDataCheckerSealService { + + + @Resource + private final ErpDataCheckerSealMapper erpDataCheckerSealMapper; + + @Override + public String getCheckManByNewErpMes(String userName) { + return erpDataCheckerSealMapper.getCheckManByNewErpMes(userName); + } +} From 9fe2be4d89549f97e0f14f3cd7ef4e7eefcd3d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=BE=E7=BF=94?= Date: Thu, 28 May 2026 16:50:51 +0800 Subject: [PATCH 20/30] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/FmProjectMilestoneEntity.java | 13 +++--- .../impl/FmProjectMilestoneServiceImpl.java | 43 +++++++++++-------- 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java index a1a88f0bd..e608b3865 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java @@ -122,6 +122,7 @@ public class FmProjectMilestoneEntity extends BaseEntity { private Double score; /** * 执行结果 + * -- 旧 mes 中存储执行类型,改执行类型存储字段executeType,该字段弃用 */ @Schema(description = "执行结果") private Short executeResult=0; @@ -243,21 +244,21 @@ public class FmProjectMilestoneEntity extends BaseEntity { /** * 执行类型 无 */ - public static Short EXECUTE_RESULT_NO = 0; + public static String EXECUTE_RESULT_NO = "0"; /** * 执行类型 延期 */ - public static Short EXECUTE_RESULT_YQ = 1; + public static String EXECUTE_RESULT_YQ = "1"; /** * 执行类型 终止 */ - public static Short EXECUTE_RESULT_ZZ = 2; + public static String EXECUTE_RESULT_ZZ = "2"; /** * 执行类型 完成 */ - public static Short EXECUTE_RESULT_JXSQ = 3; + public static String EXECUTE_RESULT_JXSQ = "3"; - public static Map executeResultMap = new HashMap<>(3); + public static Map executeResultMap = new HashMap<>(3); static { executeResultMap.put(EXECUTE_RESULT_NO, "无"); @@ -267,7 +268,7 @@ public class FmProjectMilestoneEntity extends BaseEntity { } public String getExecuteResultTitle() { - return executeResultMap.get(this.executeResult); + return executeResultMap.get(this.executeType); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java index 372f6df62..5a3942c4f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java @@ -63,6 +63,8 @@ import java.util.Date; import java.util.List; import java.util.Objects; +import static org.springblade.desk.process.pojo.entity.FmProjectMilestoneEntity.EXECUTE_RESULT_NO; + /** * 项目里程碑 服务实现类 * @@ -180,7 +182,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl userR = userClient.userInfoById(fmProjectMilestone.getNextApproverId()); if (!userR.isSuccess() || BeanUtil.isEmpty(userR.getData())) { @@ -263,20 +265,20 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl fmProjectMilestoneList = baseMapper @@ -284,7 +286,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl Double.parseDouble(paIndex)) { - projectMilestone.setExecuteResult(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ); + projectMilestone.setExecuteType(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ); baseMapper.updateById(projectMilestone); } } @@ -335,14 +337,13 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 16:59:49 +0800 Subject: [PATCH 21/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springblade/desk/quality/mapper/InspectionTemplateMapper.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml index 694212ce0..1c8c1c723 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml @@ -57,6 +57,7 @@ AND t.UPDATE_TIME <= #{q.updateTimeEnd} + order by t.UPDATE_TIME desc - select * ,slot.rfps_type as rfpsType from MES_RB_FILE_PRESERVE_DETAIL a - inner join MES_RB_FILE_PRESERVE_SLOT slot on a.rfps_id = slot.rfp_id + select DISTINCT + a.RFPS_ID as rfpsId, + a.DETAIL_NAME as detailName, + a.DETAIL_INDEX as detailIndex, + a.ASK, + a.RFPD_TIME as rfpdTime, + a.QUALIFIED, + a.PARAM_NAME as paramName, + a.PARAM_VALUE as paramValue, + slot.rfps_type as rfpsType + from MES_RB_FILE_PRESERVE_DETAIL a + inner join MES_RB_FILE_PRESERVE_SLOT slot on a.rfps_id = slot.rfp_id where slot.rfp_id =#{rfpsId} - + order by a.DETAIL_INDEX asc From a759e85e1415fa6e0fe4c39bbc5347e6e07a8460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=BE=E7=BF=94?= Date: Thu, 28 May 2026 17:29:25 +0800 Subject: [PATCH 24/30] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/FmProjectMilestoneEntity.java | 2 ++ .../impl/FmProjectMilestoneServiceImpl.java | 14 +++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java index e608b3865..0b6bf19a8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java @@ -83,6 +83,8 @@ public class FmProjectMilestoneEntity extends BaseEntity { */ @Schema(description = "里程碑负责人") private String milestoneMan; + @Schema(description = "里程碑负责人ID ") + private String milestoneManId; /** * 里程碑输出物 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java index eabc8b02e..e284dd635 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java @@ -248,7 +248,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 17:56:49 +0800 Subject: [PATCH 25/30] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/service/impl/FmProjectMilestoneServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java index e284dd635..94aab553b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java @@ -367,7 +367,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 18:17:47 +0800 Subject: [PATCH 26/30] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FmProjectMilestoneServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java index 94aab553b..6039c83ba 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java @@ -101,19 +101,19 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl Date: Thu, 28 May 2026 18:33:31 +0800 Subject: [PATCH 27/30] =?UTF-8?q?=E6=A0=B8=E6=9F=A5=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/process/pojo/entity/FmProjectMilestoneEntity.java | 3 +++ .../service/impl/FmProjectMilestoneServiceImpl.java | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java index 0b6bf19a8..1d2f20d83 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java @@ -150,6 +150,9 @@ public class FmProjectMilestoneEntity extends BaseEntity { */ @Schema(description = "核查人") private String checkMan; + + @Schema(description = "核查人ID") + private String checkManId; /** * 核查时间 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java index 6039c83ba..d9e8eedd6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java @@ -121,7 +121,12 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl userR1 = userClient.userInfoById(entity.getNextApproverId()); + if (!userR1.isSuccess() || BeanUtil.isEmpty(userR1.getData())) { + throw new RuntimeException("当前里程碑的核查人不存在"); + } + fmProjectMilestone.setCheckMan(userR1.getData().getRealName()); + fmProjectMilestone.setCheckManId(entity.getNextApproverId().toString()); // 如果核查通过,需要流转到核准节点 if (FmProjectMilestoneEntity.CHECK_RESULT_OK.equals(fmProjectMilestone.getCheckResult())) { From cfaa8d4ce4e593d6fda5d774c3e09029a8b27b85 Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Fri, 29 May 2026 09:45:47 +0800 Subject: [PATCH 28/30] =?UTF-8?q?=E7=94=B5=E5=AD=90=E6=A1=A3=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/InspectionTaskServiceImpl.java | 510 +++++++++++++++--- 1 file changed, 433 insertions(+), 77 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java index a1bb23f70..80cf88b7d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java @@ -36,6 +36,7 @@ import org.springblade.desk.basic.util.IdUtil; import org.springblade.desk.basic.util.StatusCountMap; import org.springblade.desk.dashboard.pojo.entity.*; import org.springblade.desk.dashboard.service.IBsProcessSetService; +import org.springblade.desk.dashboard.service.IBsTeamSetService; import org.springblade.desk.dashboard.service.IDsPartService; import org.springblade.desk.dashboard.service.IDsPartVersionService; import org.springblade.desk.device.pojo.entity.EquipmentEntity; @@ -52,6 +53,7 @@ import org.springblade.desk.produce.mapper.WorkPlanMapper; import org.springblade.desk.produce.pojo.dto.*; import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.vo.MakeRecExpandVO; +import org.springblade.desk.produce.pojo.vo.ProduceMonitorFileSlotVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; import org.springblade.desk.produce.pojo.vo.WorkPlanExpandVO; import org.springblade.desk.produce.service.*; @@ -68,7 +70,6 @@ import org.springblade.desk.quality.pojo.vo.*; import org.springblade.desk.quality.service.*; import org.springblade.desk.quality.wrapper.InspectionTaskListWrapper; import org.springblade.erpdata.feign.IErpDataCheckerSealClient; -import org.springblade.scheduling.pojo.entity.WorkPlanEntity; import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; @@ -161,6 +162,14 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl dsRbFilePreserveSlotList = new ArrayList<>(); + List dsRbFilePreserveSlotList = new ArrayList<>(); if (WorkPlan.PRINT_TYPE_PROCESS.equals(prWorkPlan.getPrintType())) { // 同槽信息(从设备,工装使用记录获取) - List slotVOList = null; - //zxh 20250626 增加固溶工序同炉数据 - if ("固溶".equals(prWorkPlan.getPpsName())) { - slotVOList = workPlanMapper.listSlotInfoGr(prWorkPlan.getId(), Boolean.FALSE); - } else { - slotVOList = workPlanMapper.listSlotInfoList(prWorkPlan.getId(), Boolean.TRUE); - if (slotVOList == null || slotVOList.size() == 0) { - slotVOList = workPlanMapper.listSlotInfoList(prWorkPlan.getId(), Boolean.FALSE); - } - } + List slotVOList = macToolUseService.listSlotInfo(prWorkPlan); if (CollectionUtils.isNotEmpty(slotVOList)) { for (ProduceMonitorSlotListVO slot : slotVOList) { JSONObject slotJson = new JSONObject(); @@ -902,107 +903,87 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl buildDsRbFilePreserveSlotList(WorkPlanExpandVO workPlan) { - List dsRbFilePreserveSlotList = new ArrayList<>(); - QueryWrapper qwteam = new QueryWrapper<>(); - qwteam.eq("TS_ID", workPlan.getMakeTeam()); - List teamList = centerTeamService.list(qwteam); - CenterTeam bsCenterTeam = null; - if (teamList != null && teamList.size() > 0) { - bsCenterTeam = teamList.get(0); - } - if (bsCenterTeam != null && bsCenterTeam.getWcId() != null) { + private List buildDsRbFilePreserveSlotList(WorkPlanExpandVO workPlan) { + List qcProduceRunsList; + List dsRbFilePreserveSlotList = new ArrayList<>(); + BsTeamSetEntity bsTeamSet = bsTeamSetService.getById(workPlan.getMakeTeam()); + if (bsTeamSet != null) { MacToolUse prMacToolUse; List preserveSlotList; - List qcProduceRunsList; - MesQcProduceRunEntity boxInfo = new MesQcProduceRunEntity(); + MesQcProduceRunEntity boxInfo; + // 根据电子档案维护组装数据(上线前) 分槽 - List dataByWpIdAndIndexList = workPlanMapper.getDataByWpIdAndIndexList(workPlan.getId(), "1"); - if (dataByWpIdAndIndexList != null && dataByWpIdAndIndexList.size() > 0) { + List dataByWpIdAndIndexList = macToolUseService.getDataByWpIdAndIndexList(workPlan.getId(), "1"); + if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(dataByWpIdAndIndexList)) { for (MacToolUse prMacToolUseItem : dataByWpIdAndIndexList) { if (prMacToolUseItem != null && prMacToolUseItem.getId() != null) { // 获取模板数据 preserveSlotList = mesRbFilePreserveSlotService.getByRfpId(Long.valueOf(prMacToolUseItem.getRfpId())); - qcProduceRunsList = workPlanMapper.listPrByWpIdIndexAndMtnCode(workPlan.getId(), 1, prMacToolUseItem.getMtnCode()); + qcProduceRunsList = qcProduceRunService.listPrByWpIdIndexAndMtnCode(dataByWpIdAndIndexList.stream().map(MacToolUse::getMtnCode).toList(), prMacToolUseItem.getMtnCode()); // 烘箱信息(从设备,工装使用记录获取) - List runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); - if (runs != null && runs.size() > 0) { - boxInfo = runs.get(0); - } - if (StringUtils.isNotBlank(boxInfo.getInDate())) { + boxInfo = macToolUseService.getBoxInfoByWpIdMtnCode(workPlan.getId()); + if (boxInfo.getInDate() != null) { qcProduceRunsList.add(boxInfo); } - - if (qcProduceRunsList != null && qcProduceRunsList.size() > 0) { - + if (qcProduceRunsList != null && !qcProduceRunsList.isEmpty()) { // 2025-07-23 线上迁移修改删除了日志打印 // cdl 20250218 修改分槽同一槽号连续出现 - this.setRbFilePreserveData(preserveSlotList, qcProduceRunsList, workPlan, - dsRbFilePreserveSlotList, prMacToolUseItem); + this.setRbFilePreserveDateNew(preserveSlotList, qcProduceRunsList, workPlan, dsRbFilePreserveSlotList, prMacToolUseItem); } } } } + // 根据电子档案维护组装数据(自动) - prMacToolUse = workPlanMapper.getDataByWpIdAndIndex(workPlan.getId(), "2"); + prMacToolUse = macToolUseService.getDataByWpIdAndIndex(workPlan.getId(), "2"); if (prMacToolUse != null && prMacToolUse.getId() != null) { - - List dsRbFilePreserveList = null; - if (workPlan.getPpsId() != null) { - BsProcessSetEntity process = processSetService.getById(workPlan.getPpsId()); - if ("喷砂".equals(process.getName()) || "涂色标".equals(process.getName())) { - dsRbFilePreserveList = workPlanMapper.getDataByWcIdAndPpsId(null, - workPlan.getPpsId(), "0"); - } else { - dsRbFilePreserveList = workPlanMapper.getDataByWcIdAndPpsId(bsCenterTeam.getWcId(), - workPlan.getPpsId(), "0"); - } + // 获取模板数据 + List dsRbFilePreserveList; + BsProcessSetEntity processSet = bsProcessSetService.getById(workPlan.getPpsId()); + if (workPlan.getPpsId() != null && ("喷砂".equals(processSet.getName()) || "涂色标".equals(processSet.getName()))) { + dsRbFilePreserveList = proReTemplateService.getDataByWcIdAndPpsId(null, workPlan.getPpsId(), Boolean.TRUE); + } else { + dsRbFilePreserveList = proReTemplateService.getDataByWcIdAndPpsId(bsTeamSet.getWcId(), workPlan.getPpsId(), Boolean.TRUE); } + if (dsRbFilePreserveList != null && !dsRbFilePreserveList.isEmpty()) { + preserveSlotList = mesRbFilePreserveSlotService.getByRfpId(dsRbFilePreserveList.get(0).getId()); + qcProduceRunsList = qcProduceRunService.listPrByWpIdIndex(workPlan.getId(), 2, Boolean.TRUE); - //sql不对 - if (dsRbFilePreserveList != null && dsRbFilePreserveList.size() > 0) { - //00000000000000 - preserveSlotList = workPlanMapper.getByRfpId(dsRbFilePreserveList.get(0).getId()); - qcProduceRunsList = workPlanMapper.listPrByWpIdIndex(workPlan.getId(), 2, Boolean.TRUE); - List runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); - if (runs != null && runs.size() > 0) { - boxInfo = runs.get(0); - } // 烘箱信息(从设备,工装使用记录获取) - if (qcProduceRunsList != null && qcProduceRunsList.size() > 0 && StringUtils.isNotBlank(boxInfo.getInDate())) { + boxInfo = macToolUseService.getBoxInfoByWpIdMtnCode(workPlan.getId()); + if (qcProduceRunsList != null && !qcProduceRunsList.isEmpty() && boxInfo.getInDate() != null) { qcProduceRunsList.add(boxInfo); } - if (qcProduceRunsList != null && qcProduceRunsList.size() > 0) { + if (qcProduceRunsList != null && !qcProduceRunsList.isEmpty()) { // cdl 20250218 修改分槽同一槽号连续出现 - this.setRbFilePreserveData(preserveSlotList, qcProduceRunsList, workPlan, - dsRbFilePreserveSlotList, prMacToolUse); + this.setRbFilePreserveDateNew(preserveSlotList, qcProduceRunsList, workPlan, dsRbFilePreserveSlotList, prMacToolUse); } } + // 获取额外面积数据 +// BsAdditionalMess dataByMtuCode = bsAdditionalMessDao.getDataByOneData(prMacToolUse.getMtnCode(), BsAdditionalMess.TYPE_ONE); +// workPlan.setBsAdditionalMess(dataByMtuCode); } + + // 根据电子档案维护组装数据(线下) //zxh 20250117 解决单工序绑定两个手动记录只显示一个问题 - List prMacToolUseList = workPlanMapper.getDataByWpIdAndIndexList(workPlan.getId(), "3"); - if (prMacToolUseList != null && prMacToolUseList.size() > 0) { + List prMacToolUseList = macToolUseService.getDataByWpIdAndIndexList(workPlan.getId(), "3"); + if (prMacToolUseList != null && !prMacToolUseList.isEmpty()) { for (MacToolUse prMacToolUseSd : prMacToolUseList) { if (prMacToolUseSd != null && prMacToolUseSd.getId() != null) { // 获取模板数据 - preserveSlotList = workPlanMapper.getByRfpId(Long.valueOf(prMacToolUseSd.getRfpId())); - qcProduceRunsList = workPlanMapper.listPrByWpIdIndexAndMtnCode(workPlan.getId(), 3, prMacToolUseSd.getMtnCode()); + preserveSlotList = mesRbFilePreserveSlotService.getByRfpId(Long.valueOf(prMacToolUseSd.getRfpId())); + qcProduceRunsList = qcProduceRunService.listPrByWpIdIndexAndMtnCode(prMacToolUseList.stream().map(MacToolUse::getMtnCode).toList(), prMacToolUseSd.getMtnCode()); // 烘箱信息(从设备,工装使用记录获取) - List runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); - if (runs != null && runs.size() > 0) { - boxInfo = runs.get(0); - } - - if (StringUtils.isNotBlank(boxInfo.getInDate())) { + boxInfo = macToolUseService.getBoxInfoByWpIdMtnCode(workPlan.getId()); + if (boxInfo.getInDate() != null) { qcProduceRunsList.add(boxInfo); } - if (qcProduceRunsList != null && qcProduceRunsList.size() > 0) { + if (qcProduceRunsList != null && !qcProduceRunsList.isEmpty()) { // cdl 20250218 修改分槽同一槽号连续出现 - this.setRbFilePreserveData(preserveSlotList, qcProduceRunsList, workPlan, - dsRbFilePreserveSlotList, prMacToolUseSd); + this.setRbFilePreserveDateNew(preserveSlotList, qcProduceRunsList, workPlan, dsRbFilePreserveSlotList, prMacToolUseSd); } } } @@ -1011,6 +992,381 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl preserveSlotList, List qcProduceRunsList, WorkPlan workPlan, List dsRbFilePreserveSlotList, MacToolUse prMacToolUse) { + List dsRbFilePreserveDetailList = null; + ProduceMonitorFileSlotVO newDsRbFilePreserveSlot = null; + MesRbFilePreserveDetailEntity newDsRbFilePreserveDetail = null; + + Map preserveSlotMap = preserveSlotList.stream().collect(Collectors.toMap(MesRbFilePreserveSlotEntity::getSlotName, java.util.function.Function.identity())); + List temporaryList = new ArrayList<>(); + for (MesQcProduceRunEntity qcProduceRun : qcProduceRunsList) { + // 根据维护的电子档案的槽号找寻对应生产追溯的的数据 + if (StringUtils.isBlank(qcProduceRun.getWorkSlot())) { + continue; + } + MesRbFilePreserveSlotEntity dsRbFilePreserveSlot = preserveSlotMap.get(qcProduceRun.getWorkSlot().trim()); + + if ("水膜连续性检查".equals(qcProduceRun.getWorkSlot().trim())) { + qcProduceRun.setQualified("1"); + } + + // cdl 20250218 修改分槽同一槽号连续出现 + this.setTemplateData(dsRbFilePreserveSlot, qcProduceRun, newDsRbFilePreserveSlot, dsRbFilePreserveDetailList, newDsRbFilePreserveDetail, workPlan, temporaryList, prMacToolUse); + } + + // 判断是不是自动线并且有水墨连续性 + MacToolUse macToolUse = macToolUseService.getHangNumIsNull(workPlan.getId()); + if (macToolUse != null && macToolUse.getId() != null) { + List smSlotList = preserveSlotList.stream().filter(i -> i.getSlotName().contains("水膜连续性")).toList(); + for (MesRbFilePreserveSlotEntity dsRbFilePreserveSlot : smSlotList) { + if (dsRbFilePreserveSlot.getSlotName().contains("水膜连续性")) { + MesQcProduceRunEntity qcProduceRun = new MesQcProduceRunEntity(); + qcProduceRun.setQualified("1"); + // cdl 20250218 修改分槽同一槽号连续出现 + this.setTemplateData(dsRbFilePreserveSlot, qcProduceRun, newDsRbFilePreserveSlot, dsRbFilePreserveDetailList, newDsRbFilePreserveDetail, workPlan, temporaryList, prMacToolUse); + } + } + } + dsRbFilePreserveSlotList.addAll(temporaryList.stream().sorted(Comparator.comparing(ProduceMonitorFileSlotVO::getSlotIndex)).toList()); + } + + private void setTemplateData(MesRbFilePreserveSlotEntity dsRbFilePreserveSlot, MesQcProduceRunEntity qcProduceRun, ProduceMonitorFileSlotVO newDsRbFilePreserveSlot, List dsRbFilePreserveDetailList, MesRbFilePreserveDetailEntity newDsRbFilePreserveDetail, WorkPlan workPlan, List temporaryList, MacToolUse prMacToolUse) { + if (dsRbFilePreserveSlot != null && dsRbFilePreserveSlot.getId() != null) { + // Date转String + + // 装入槽子对应的信息 + newDsRbFilePreserveSlot = new ProduceMonitorFileSlotVO(); + newDsRbFilePreserveSlot.setRfpsType(dsRbFilePreserveSlot.getRfpsType()); + newDsRbFilePreserveSlot.setInsertIndex(dsRbFilePreserveSlot.getInsertIndex()); + newDsRbFilePreserveSlot.setSlotName(dsRbFilePreserveSlot.getSlotName()); + newDsRbFilePreserveSlot.setSlotIndex(dsRbFilePreserveSlot.getSlotIndex()); + + List preserveDetailList = mesRbFilePreserveDetailService.getByRfpsId(dsRbFilePreserveSlot.getId()); + if (!preserveDetailList.isEmpty()) { + dsRbFilePreserveDetailList = new ArrayList<>(); + for (int i = 0; i < preserveDetailList.size(); i++) { + MesRbFilePreserveDetailEntity dsRbFilePreserveDetail = preserveDetailList.get(i); + Short rfpsType = 0; + if (dsRbFilePreserveDetail != null && dsRbFilePreserveDetail.getRfpsId() != null) { + rfpsType = mesRbFilePreserveSlotService.getById(dsRbFilePreserveDetail.getRfpsId()).getRfpsType(); + } + newDsRbFilePreserveDetail = new MesRbFilePreserveDetailEntity(); + newDsRbFilePreserveDetail.setDetailName(dsRbFilePreserveDetail.getDetailName()); + newDsRbFilePreserveDetail.setDetailIndex(dsRbFilePreserveDetail.getDetailIndex()); + // 工艺要求 + newDsRbFilePreserveDetail.setAsk(dsRbFilePreserveDetail.getAsk()); + newDsRbFilePreserveDetail.setParamName(dsRbFilePreserveDetail.getParamName()); + if (i == 0) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getInDate()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getOutDate()); + } + if (rfpsType == 1) { // 模板一 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } + } else if (rfpsType == 2) { // 模板二 + if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } + } else if (rfpsType == 3) { // 模板三 + if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } + } else if (rfpsType == 4) { // 模板四 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } else if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } + } else if (rfpsType == 5 || rfpsType == 22) { // 模板五 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } else if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFour()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } + } else if (rfpsType == 6) { // 模板六 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } else if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFour()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } + } else if (rfpsType == 7) { // 模板七 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } + } else if (rfpsType == 8) { // 模板八 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } + } else if (rfpsType == 9) { // 模板九 + if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } + } else if (rfpsType == 10) { // 模板十 + if (i == 0) { + newDsRbFilePreserveDetail.setQualified(qcProduceRun.getQualified()); + } + } else if (rfpsType == 11) { // 模板十一 + if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } + } else if (rfpsType == 12) { // 模板十二 + if (i == 0) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataTwo()); + } else if (i == 2) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataThree()); + } + } else if (rfpsType == 13) { // 模板十三 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } else if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFour()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } else if (i == 6) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSeven()); + } else if (i == 7) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEight()); + } else if (i == 8) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataNine()); + } else if (i == 9) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTen()); + } + } else if (rfpsType == 14) { // 模板十四 + if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataTwo()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFour()); + } else if (i == 6) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 7) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } else if (i == 8) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSeven()); + } else if (i == 9) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEight()); + } else if (i == 10) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataNine()); + } else if (i == 11) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTen()); + } + } else if (rfpsType == 15) { // 模板十五 + if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataFour()); + } else if (i == 6) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 7) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } else if (i == 8) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSeven()); + } else if (i == 9) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEight()); + } else if (i == 10) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataNine()); + } else if (i == 11) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTen()); + } else if (i == 12) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEleven()); + } else if (i == 13) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwelve()); + } + } else if (rfpsType == 16) { // 模板十六 + if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataTwo()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFour()); + } else if (i == 6) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 7) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } else if (i == 8) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSeven()); + } else if (i == 9) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEight()); + } else if (i == 10) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataNine()); + } else if (i == 11) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTen()); + } else if (i == 12) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEleven()); + } else if (i == 13) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwelve()); + } else if (i == 14) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThirteen()); + } else if (i == 15) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFourteen()); + } + } else if (rfpsType == 17) { // 模板十七 + if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataTwo()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFour()); + } else if (i == 6) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 7) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } + } else if (rfpsType == 18) { // 模板十八 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } + } else if (rfpsType == 19) { // 模板十九 //zxh 20250519 新增模板19和模板20 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } else if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFour()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } else if (i == 6) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSeven()); + } else if (i == 7) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataEight()); + } else if (i == 8) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataNine()); + } else if (i == 9) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTen()); + } else if (i == 10) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEleven()); + } else if (i == 11) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getDataTwelve()); + } + } else if (rfpsType == 20) { // 模板二十 + if (i == 0) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getInDate()); + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getInDate()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getInDate()); + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getInDate()); + } else if (i == 2) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getOutDate()); + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getOutDate()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setRfpdTime(qcProduceRun.getOutDate()); + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getOutDate()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } else if (i == 6) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSeven()); + } else if (i == 7) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEight()); + } + } else if (rfpsType == 21) { // 模板十三 + if (i == 0) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataOne()); + } else if (i == 1) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataTwo()); + } else if (i == 2) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataThree()); + } else if (i == 3) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFour()); + } else if (i == 4) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataFive()); + } else if (i == 5) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSix()); + } else if (i == 6) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataSeven()); + } else if (i == 7) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataEight()); + } else if (i == 8) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getDataNine()); + } + } + String detailName = dsRbFilePreserveDetail.getDetailName(); + if (detailName != null) { + if (detailName.contains("温度")) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getTempSlot()); + } else if (detailName.contains("电导率")) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getEleRate()); + } else if (detailName.contains("电流") && !(detailName.contains("壳体") || detailName.contains("插针"))) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getEleStream()); + } else if (detailName.contains("链速")) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getVSpeed()); + } else if (detailName.contains("镍离子")) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getNiValue()); + } else if (detailName.contains("pH值")) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getPhValue()); + } + //zxh 20250604 新增软起时间和工作电压 + else if (detailName.contains("软起时间")) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getSoftWorkTime()); + } else if (detailName.contains("工作电压")) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getVoltage()); + } else if (detailName.contains("初始电压")) { + newDsRbFilePreserveDetail.setParamValue(qcProduceRun.getStartVol()); + } + + } + dsRbFilePreserveDetailList.add(newDsRbFilePreserveDetail); + } + newDsRbFilePreserveSlot.setChildrenList(dsRbFilePreserveDetailList); + } + temporaryList.add(newDsRbFilePreserveSlot); + } + } + private List getCheckListNotNG(Long woId, List wpList, Boolean eleOrPrint) { List checkList = new ArrayList<>(); //组装检测项集合 From 07811ca3352309d3cf515c49764b51456eef6956 Mon Sep 17 00:00:00 2001 From: zangzhipeng Date: Fri, 29 May 2026 10:00:39 +0800 Subject: [PATCH 29/30] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=94=B6=E5=9B=9E=E7=9A=84=E5=BD=93=E5=89=8D=E5=B7=A5=E5=BA=8F?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oem/controller/OemOrderController.java | 6 ++--- .../service/impl/WorkOrderRunServiceImpl.java | 22 ++++++++++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java index 5f2611a35..62a133add 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java @@ -83,12 +83,12 @@ public class OemOrderController extends BladeController { } /** - * 协订单收回 + * 外协订单收回 */ @PostMapping("/oemTakeBack") @ApiOperationSupport(order = 2) - @Operation(summary = "协订单收回", description = "") - @ApiLog("协订单 收回") + @Operation(summary = "外协订单收回", description = "") + @ApiLog("外协订单 收回") public R oemTakeBack(@Valid @RequestBody OemTakeBack oemTakeBack) { return workOrderRunService.oemTakeBack(oemTakeBack); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java index f48d54875..a8ec495b7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -134,6 +134,10 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl workPlans) { - return workPlans.stream() + WorkPlan firstInternalPlan = workPlans.stream() .filter(plan -> "0".equals(plan.getOem()) && plan.getStatus() == 1) .min(Comparator.comparing(WorkPlan::getOrders)) .orElse(null); + if (firstInternalPlan == null) { + return null; + } + Long frontWpId = firstInternalPlan.getFrontWpId(); + return workPlans.stream() + .filter(plan -> plan.getId().equals(frontWpId)) + .findFirst() + .orElse(null); } private void executeBusinessLogic(YieldOrder yieldOrder, WorkOrder workOrder, WorkOrderRun workOrderRun, @@ -593,6 +609,10 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl Date: Fri, 29 May 2026 10:10:30 +0800 Subject: [PATCH 30/30] =?UTF-8?q?=E7=94=B5=E5=AD=90=E6=A1=A3=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/springblade/desk/util/PriceMatcher.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java index 82f3f4be5..aaa6c1348 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java @@ -1,5 +1,7 @@ package org.springblade.desk.util; +import com.alibaba.excel.util.StringUtils; + import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashSet; @@ -45,6 +47,9 @@ public class PriceMatcher { * 判断备注是否包含目标价格 */ private static boolean containsPrice(String remark, BigDecimal targetPrice) { + if(StringUtils.isEmpty(remark)){ + return false; + } // 正则表达式匹配价格范围或单价 // 匹配如:350.01-360、467.5、100.5-200.8 String regex = "(\\d+(?:\\.\\d+)?)(?:-(\\d+(?:\\.\\d+)?))?";