From bd391094a82bc04af6421f13bd6b97598fc3dc64 Mon Sep 17 00:00:00 2001 From: pangyang <475446853@qq.com> Date: Sat, 21 Mar 2026 13:41:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E7=89=88=E4=BF=9D=E5=AD=98=EF=BC=8C?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/MesRbFilePreserveSlotEntity.java | 3 + .../desk/produce/mapper/WorkPlanMapper.xml | 4 +- .../controller/InspectionTaskController.java | 54 ++++++++++----- .../service/IInspectionTaskService.java | 4 ++ .../impl/InspectionTaskServiceImpl.java | 68 +++++++++++++++++-- 5 files changed, 109 insertions(+), 24 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesRbFilePreserveSlotEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesRbFilePreserveSlotEntity.java index 5ab2e78f..f8a98227 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesRbFilePreserveSlotEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesRbFilePreserveSlotEntity.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; import org.springblade.desk.produce.pojo.dto.MesRbFilePreserveDetailDTO; +import org.springblade.desk.quality.pojo.entity.ProReTemplate; import java.io.Serial; import java.math.BigDecimal; @@ -67,4 +68,6 @@ public class MesRbFilePreserveSlotEntity extends BaseEntity { private List childrenList; // @TableField(exist = false) // List childrenListNew; + @TableField(exist = false) + private ProReTemplate dsRbFilePreserve; } 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 3d488d5a..b0402ef3 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 @@ -292,9 +292,9 @@ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java index 82564f24..ada2cf1f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java @@ -289,26 +289,29 @@ public class InspectionTaskController extends BladeController { private IMesRbFilePreserveSlotService mesRbFilePreserveSlotService; @Operation(summary = "获取热表电子档案维护-槽子明细及对应的明细") - @RequestMapping(value = "/getByRfpId/{pssId}", method = RequestMethod.GET) - public R getByRfpId(@PathVariable Long pssId) { + @RequestMapping(value = "/getByRfpId/{rfpId}", method = RequestMethod.GET) + public R getByRfpId(@PathVariable Long rfpId) { List preserveSlotList = new ArrayList<>(); - - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("PPS_ID", pssId); - List workPlanList = workPlanMapper.selectList(queryWrapper); - WorkPlan plan = new WorkPlan(); - if(null != workPlanList && workPlanList.size() > 0){ - plan = workPlanList.get(0); - } - - if(plan != null && plan.getId() != null){ - List toolUseList = workPlanMapper.getDataByWpIdAndIndexListNew(plan.getId()); - for(MacToolUse toolUse : toolUseList){ - List list = mesRbFilePreserveSlotService.getByRfpId(Long.valueOf(toolUse.getRfpId())); - preserveSlotList.addAll(list); - } - } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RFP_ID", rfpId); + preserveSlotList = mesRbFilePreserveSlotService.list(queryWrapper); + +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("PPS_ID", pssId); +// List workPlanList = workPlanMapper.selectList(queryWrapper); +// WorkPlan plan = new WorkPlan(); +// if(null != workPlanList && workPlanList.size() > 0){ +// plan = workPlanList.get(0); +// } +// +// if(plan != null && plan.getId() != null){ +// List toolUseList = workPlanMapper.getDataByWpIdAndIndexListNew(plan.getId()); +// for(MacToolUse toolUse : toolUseList){ +// List list = mesRbFilePreserveSlotService.getByRfpId(Long.valueOf(toolUse.getRfpId())); +// preserveSlotList.addAll(list); +// } +// } JSONObject obj = new JSONObject(); @@ -339,6 +342,21 @@ public class InspectionTaskController extends BladeController { } + @Operation(summary = "新增或修改热表电子档案维护-槽子明细及对应的明细") + @PostMapping(value = "/saveOrEdit") + public R saveOrEdit(@RequestBody JSONObject data, HttpServletRequest request) throws Exception { + + List submitList = JSONArray.parseArray(data.get("submitList").toString(), MesRbFilePreserveSlotEntity.class); + List deleteIds = JSONArray.parseArray(data.get("deleteIds").toString(), Long.class); + BladeUser curUserInfo = AuthUtil.getUser(); +// PfUserInfo curUserInfo = (PfUserInfo) ControllerUtils.getCurUserInfo(request); + Long rfpId = data.getLong("rfpId"); + service.saveOrEditMes(submitList, deleteIds, curUserInfo, rfpId); + return R.status(true); + } + + + /** * [检验任务] 自定义分页 */ 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 71f1b9e8..c521d7d4 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 @@ -11,9 +11,11 @@ import io.swagger.v3.oas.annotations.Parameter; import org.apache.ibatis.annotations.Param; import org.springblade.common.exception.BusinessException; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.desk.produce.pojo.dto.PrintThicknessCraftCard; import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveDetailEntity; +import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity; import org.springblade.desk.quality.excel.InspectionTaskExcel; import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.desk.quality.pojo.request.InspectionTaskSearch; @@ -128,4 +130,6 @@ public interface IInspectionTaskService extends BaseService { Object pagePrintSjEleFiles(Long woId, Integer yieldType,List planList, List moduleList); List printThicknessList(List idArr); List getByRfpsIdMesNew(Long rfpsId); + + public void saveOrEditMes(List submitList, List deleteIds, BladeUser curUserInfo,Long rfpId); } 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 02269436..10f3cb6b 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 @@ -51,10 +51,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.ProduceMonitorSlotListVO; -import org.springblade.desk.produce.service.IMesEquipmentCardService; -import org.springblade.desk.produce.service.IMesRbFilePreserveSlotService; -import org.springblade.desk.produce.service.IWorkOrderService; -import org.springblade.desk.produce.service.IWorkPlanService; +import org.springblade.desk.produce.service.*; import org.springblade.desk.quality.constant.InspectionItemConst; import org.springblade.desk.quality.constant.InspectionTaskConst; import org.springblade.desk.quality.constant.ReviewSheetConst; @@ -70,6 +67,7 @@ import org.springblade.scheduling.pojo.entity.ProcessSetEntity; import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; +import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -142,6 +140,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl list = workPlanMapper.getByRfpsIdMesNew(id); return list; } + @Override + public void saveOrEditMes(List submitList, List deleteIds, BladeUser curUserInfo,Long rfpId){ + Map slotNameCountMap = submitList.stream() + // 按slotName分组,key=slotName,value=该名称的元素数量 + .collect(Collectors.groupingBy(MesRbFilePreserveSlotEntity::getSlotName, Collectors.counting())); + List duplicateSlotNames = slotNameCountMap.entrySet().stream().filter(entry -> entry.getValue() > 1).map(Map.Entry::getKey).collect(Collectors.toList()); + if (!duplicateSlotNames.isEmpty()) { + String errorMsg = String.format("以下槽位名称存在重复,不允许保存:%s", String.join(",", duplicateSlotNames)); + throw new RuntimeException(errorMsg); + } + + if (submitList.size() > 0) { + ProReTemplate dsRbFilePreserve = proReTemplateService.getById(rfpId); + for (MesRbFilePreserveSlotEntity dsRbFilePreserveSlot : submitList) { + dsRbFilePreserveSlot.setKeepTime(new Date()); + dsRbFilePreserveSlot.setKeepMan(curUserInfo.getNickName()); + dsRbFilePreserveSlot.setDsRbFilePreserve(dsRbFilePreserve); + dsRbFilePreserveSlot.setRfpId(rfpId); + if(StringUtils.isBlank(dsRbFilePreserveSlot.getSlotName())){ + throw new RuntimeException("请将槽号/工位填写完成"); + } + if (dsRbFilePreserveSlot.getRfpId() != null) { + mesRbFilePreserveSlotService.updateById(dsRbFilePreserveSlot); + } else { + mesRbFilePreserveSlotService.save(dsRbFilePreserveSlot); + } +// List subList = dsRbFilePreserveSlot.getChildrenList(); + List subList = dsRbFilePreserveSlot.getChildrenList(); + if (subList.size() > 0) { + for (MesRbFilePreserveDetailDTO dsRbFilePreserveDetail : subList) { +// dsRbFilePreserveDetail.setDsRbFilePreserveSlot(dsRbFilePreserveSlot); + dsRbFilePreserveDetail.setRfpsId(dsRbFilePreserveSlot.getId()); + if (dsRbFilePreserveDetail.getRfpsId() != null) { + MesRbFilePreserveDetailEntity dsRbFilePreserveDetailDao = new MesRbFilePreserveDetailEntity(); + BeanUtils.copyProperties(dsRbFilePreserveDetail, dsRbFilePreserveDetailDao); + mesRbFilePreserveDetailService.updateById(dsRbFilePreserveDetailDao); + } else { + mesRbFilePreserveDetailService.save(dsRbFilePreserveDetail); + } + } + } + + + if (deleteIds.size() > 0) { + for (Long rfpsId : deleteIds) { + // 删除槽号对应的明细 +// dsRbFilePreserveDetailDao.deleteByRfpsId(rfpsId); +// dsRbFilePreserveSlotDao.delete(rfpsId); + mesRbFilePreserveSlotService.removeById(rfpsId); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("rfps_id", rfpsId); + mesRbFilePreserveDetailService.remove(queryWrapper); + } + } + + } + } + } private JSONObject metalParts(Long woId) { JSONObject obj = new JSONObject();