From 872df89038c0e477179db6f30fa0e4f81cf186ea Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Tue, 2 Jun 2026 18:00:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=B4=A8=E9=87=8F=E6=A3=80?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../produce/pojo/vo/PdaProRelevantVO.java | 33 +++++++++ .../quality/pojo/entity/WorkPlanItem.java | 12 +++ .../pojo/entity/WorkPlanItemDetail.java | 3 + .../desk/quality/pojo/vo/WorkPlanItemVO.java | 54 +++++++++++++- .../produce/controller/PdaLoadController.java | 4 +- .../desk/produce/service/IPdaLoadService.java | 6 +- .../service/impl/PdaLoadServiceImpl.java | 74 ++++++++++++++++++- .../mapper/WorkPlanItemDetailMapper.xml | 1 + .../quality/mapper/WorkPlanItemMapper.xml | 4 + .../service/IInspectionTaskService.java | 2 + .../quality/service/IWorkPlanItemService.java | 2 + .../impl/InspectionTaskServiceImpl.java | 5 +- .../service/impl/WorkPlanItemServiceImpl.java | 17 +++++ 13 files changed, 204 insertions(+), 13 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PdaProRelevantVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PdaProRelevantVO.java index b922d815a..8d32efc56 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PdaProRelevantVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PdaProRelevantVO.java @@ -1,9 +1,13 @@ package org.springblade.desk.produce.pojo.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO; + +import java.util.List; /** * @ClassName PdaProRelevant @@ -67,5 +71,34 @@ public class PdaProRelevantVO { */ private Double makeQty; + /** + * 检测项目List + */ + private List wpItemList; + + /** + * 材料 + */ + private String material; + + /** + * 生产标识 + */ + private String prodIdent; + + /** + * 订单-镀种信息 + */ + private String platingInfo; + + /** + * 镀种代码 + */ + private String plateCode; + + /** + * 配置码 + */ + private String configCode; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java index ac1bffd03..9fa998251 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java @@ -119,4 +119,16 @@ public class WorkPlanItem extends BaseEntity { */ @Schema(description = "特殊类型-[0]:普通;[1]:测厚;[2]:测硬;[3]:尺寸;") private Integer specialType; + + @Schema(description = "镀层类型-[1]:表层;[2]:底镀层;") + private Integer coatingType; + + @Schema(description = "来源类型-[1]:实测值;[2]:共享值;") + private Integer sourceType; + + @Schema(description = "来源车间订单号") + private String sourceWoCode; + + @Schema(description = "来源工序号") + private String sourceOrders; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItemDetail.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItemDetail.java index 4913278c0..15eddc284 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItemDetail.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItemDetail.java @@ -97,6 +97,9 @@ public class WorkPlanItemDetail extends BaseEntity { @Schema(description = "[量具]名称") private String mtName; + @Schema(description = "序列号") + private Integer seqNo; + @TableField(exist = false) private String trialItem; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java index 733c1b521..9693537a3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java @@ -3,13 +3,12 @@ package org.springblade.desk.quality.pojo.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; -import org.springblade.desk.quality.pojo.entity.InspectionItem; -import org.springblade.desk.quality.pojo.entity.Standard; import org.springblade.desk.quality.pojo.entity.WorkPlanItem; -import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail; import java.io.Serial; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * [工序检验项] 视图实体类 @@ -23,6 +22,41 @@ public class WorkPlanItemVO extends WorkPlanItem { @Serial private static final long serialVersionUID = 1L; + /** + * 表层 + */ + private static Integer SURFACE_COAT = 1; + /** + * 底镀层 + */ + private static Integer UNDER_COAT = 2; + + + private static Map coatTypeMap = new HashMap<>(3); + + static { + coatTypeMap.put(SURFACE_COAT, "表层"); + coatTypeMap.put(UNDER_COAT, "底镀层"); + } + + /** + * 实测值 + */ + private static Integer ACTUAL_SOURCE = 1; + + /** + * 共享值 + */ + private static Integer SHARE_SOURCE = 2; + + private static Map sourceTypeMap = new HashMap<>(3); + + static { + sourceTypeMap.put(ACTUAL_SOURCE, "实测值"); + sourceTypeMap.put(SHARE_SOURCE, "共享值"); + } + + @Schema(description = "检验员 真名") private String checkUserRealName; @Schema(description = "检验项目 Obj") @@ -37,4 +71,18 @@ public class WorkPlanItemVO extends WorkPlanItem { private List thicknessList; @Schema(description = "检验员账号") private String checkUserAccount; + + @Schema(description = "镀层类型值") + private String coatingTypeValue; + + @Schema(description = "来源类型值") + private String sourceTypeValue; + + public String getCoatingTypeValue(){ + return coatTypeMap.get(getCoatingType()); + } + + public String getSourceTypeValue() { + return sourceTypeMap.get(getSourceType()); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java index 2c1867a98..851cc631a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java @@ -15,7 +15,7 @@ import org.springblade.desk.device.pojo.entity.RackSetEntity; import org.springblade.desk.produce.pojo.vo.BindModelVO; import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO; import org.springblade.desk.produce.service.IPdaLoadService; -import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -97,7 +97,7 @@ public class PdaLoadController { @PostMapping(value = "/saveProCheck") @ApiOperationSupport(order = 9) @Operation(summary = "工序检验保存") - public R saveProCheck(@RequestBody InspectionTask inspectionTask) { + public R saveProCheck(@RequestBody InspectionTaskDetailVO inspectionTask) { // SaveProCheckDTO下次修改为SaveProCheckDTO实体类接收 return R.status(pdaLoadService.saveProCheck(inspectionTask)); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java index 657a4956b..17c7ad37e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java @@ -6,15 +6,13 @@ import org.springblade.core.mp.base.BaseService; import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.entity.RackSetEntity; -import org.springblade.desk.energy.pojo.entity.BsEpciuPatrolInspectionEntity; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.vo.BindModelVO; import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO; import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO; -import org.springblade.desk.quality.pojo.dto.SaveProCheckDTO; -import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO; import java.util.List; @@ -72,7 +70,7 @@ public interface IPdaLoadService extends BaseService { void handleBaoZhuangWorkPlan(List wpList, YieldOrder yo); - boolean saveProCheck(InspectionTask inspectionTask); + boolean saveProCheck(InspectionTaskDetailVO inspectionTask); List getHangNum(String deviceCode); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java index 3ac6f771d..0407bb78c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java @@ -1,6 +1,8 @@ package org.springblade.desk.produce.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONObject; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import jakarta.servlet.http.HttpServletRequest; @@ -35,10 +37,19 @@ import org.springblade.desk.produce.pojo.vo.BindModelVO; import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO; import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO; import org.springblade.desk.produce.service.*; +import org.springblade.desk.quality.pojo.entity.InspectionItem; import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.entity.WorkPlanItem; +import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail; +import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO; +import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO; +import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO; +import org.springblade.desk.quality.service.IInspectionItemService; import org.springblade.desk.quality.service.IInspectionTaskService; +import org.springblade.desk.quality.service.IWorkPlanItemDetailService; import org.springblade.desk.quality.service.IWorkPlanItemService; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -97,6 +108,10 @@ public class PdaLoadServiceImpl extends BaseServiceImpl ppsId = new ArrayList<>(List.of(prWorkPlan.getPpsId())); WorkPlan frontWorkPlan = this.getById(prWorkPlan.getFrontWpId()); @@ -221,6 +237,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl processSetMap = processSets.stream().collect(Collectors.toMap(BsProcessSetEntity::getId, processSet -> processSet)); BsTeamSetEntity teamSet = bsTeamSetService.getById(prWorkPlan.getSubsidiaryTeam() != null ? prWorkPlan.getSubsidiaryTeam() : prWorkPlan.getMakeTeam()); + List wpItemList = workPlanItemService.listVOByWpIdAndItemName(prWorkPlan.getId(), "厚度检测"); PdaProRelevantVO jsonObj = PdaProRelevantVO.builder() .cardNo(cardNo) .woCode(prWorkOrder.getWoCode()) @@ -233,7 +250,20 @@ public class PdaLoadServiceImpl extends BaseServiceImpl inspectionItems = inspectionItemService.list(); + for (WorkPlanItemVO workPlanItemVO : inspectionTask.getWpItemList()) { + WorkPlanItem workPlanItem = new WorkPlanItem(); + BeanUtils.copyProperties(workPlanItemVO, workPlanItem); + workPlanItem.setTaskId(inspectionTask.getId()); + // 检验项目基础数据中项目名称匹配 + for (InspectionItem inspectionItem : inspectionItems) { + if (inspectionItem.getName().equals(workPlanItem.getItemName())) { + workPlanItem.setItemId(inspectionItem.getId()); + break; + } + } + workPlanItemService.save(workPlanItem); + if (CollectionUtils.isNotEmpty(workPlanItemVO.getWpItemDetailList())) { + for (WorkPlanItemDetailVO wpItemDetailVO : workPlanItemVO.getWpItemDetailList()) { + WorkPlanItemDetail wpItemDetail = new WorkPlanItemDetail(); + BeanUtil.copyProperties(wpItemDetailVO, wpItemDetail); + wpItemDetail.setWorkPlanItemId(workPlanItem.getId()); + workPlanItemDetailService.save(wpItemDetail); + } + } + } + } + // 不合格生成生产处置单 + if (InspectionTask.CHECK_RESULT_NO.equals(inspectionTask.getCheckResult())) { + inspectionTaskService.addRsSheet(inspectionTask.getId()); + } // 保存镀后检验数据 // if (save) { // WorkPlanItemVO workPlanItemVO = saveProCheckDTO.getWorkPlanItemVO(); @@ -450,7 +518,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java index 86b886ec7..1c1f669c1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java @@ -136,4 +136,6 @@ public interface IInspectionTaskService extends BaseService { void saveOrEditMes(List submitList, List deleteIds, BladeUser curUserInfo, Long rfpId); void computeOrderQty(WorkPlan wp, InspectionTask task, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty); + + void addRsSheet(Long id); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java index 98e84eaaa..68a80c9ff 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java @@ -63,4 +63,6 @@ public interface IWorkPlanItemService extends BaseService { List listByWoId(Long woId); List listByWoIdNotNG(Long woId); + + List listVOByWpIdAndItemName(Long wpId, String itemName); } 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 e51f70a5b..747f32d52 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 @@ -2890,6 +2890,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl listByWoIdNotNG(Long woId) { return baseMapper.listByWoIdNotNG(woId); } + + @Override + public List listVOByWpIdAndItemName(Long wpId, String itemName){ + LambdaQueryWrapper qw = Wrappers.lambdaQuery(); + qw.eq(WorkPlanItem::getWpId, wpId); + qw.eq(WorkPlanItem::getItemName, itemName); + qw.orderByAsc(WorkPlanItem::getItemCode); + List list = list(qw); + List listVO = WorkPlanItemWrapper.build().listVO(list); + for (WorkPlanItemVO vo : listVO) { + setVOValue(vo); + } + return listVO; + } }