From dc5d468b1af44237b04b29eb18e76485b975d33b Mon Sep 17 00:00:00 2001 From: qiezi <15576055375@163.com> Date: Wed, 30 Apr 2025 14:03:04 +0800 Subject: [PATCH] 2025-04-30 --- .../dao/TechnicalSpecificationMapper.java | 1 + .../PlmTechnicalSpecificationSheetData.java | 26 ++++++ .../TechnicalSpecificationServiceImpl.java | 84 ++++++++++++++++--- .../TechnicalSpecificationMapper.xml | 30 ++++--- 4 files changed, 121 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/spring/modules/sampleManagement/dao/TechnicalSpecificationMapper.java b/src/main/java/com/spring/modules/sampleManagement/dao/TechnicalSpecificationMapper.java index 1862e294..184dec0f 100644 --- a/src/main/java/com/spring/modules/sampleManagement/dao/TechnicalSpecificationMapper.java +++ b/src/main/java/com/spring/modules/sampleManagement/dao/TechnicalSpecificationMapper.java @@ -55,6 +55,7 @@ public interface TechnicalSpecificationMapper { void updateProjectPartNowBm(PlmTechnicalSpecificationSheetData inData); void saveTechnicalSpecificationTeams(PlmTechnicalSpecificationTeamData inData); + void saveBatchTechnicalSpecificationTeams(List list); void updateTechnicalSpecificationSheet(PlmTechnicalSpecificationSheetData inData); /** diff --git a/src/main/java/com/spring/modules/sampleManagement/data/PlmTechnicalSpecificationSheetData.java b/src/main/java/com/spring/modules/sampleManagement/data/PlmTechnicalSpecificationSheetData.java index e10fa628..8d12d7a7 100644 --- a/src/main/java/com/spring/modules/sampleManagement/data/PlmTechnicalSpecificationSheetData.java +++ b/src/main/java/com/spring/modules/sampleManagement/data/PlmTechnicalSpecificationSheetData.java @@ -72,6 +72,32 @@ public class PlmTechnicalSpecificationSheetData extends PlmTechnicalSpecificatio private String plmPartNo; private String partSpec; + /** + * CQC人员多选 + */ + private List cqcOperatorList; + + /** + * FAI人员多选 + */ + private List faiOperatorList; + + public List getCqcOperatorList() { + return cqcOperatorList; + } + + public void setCqcOperatorList(List cqcOperatorList) { + this.cqcOperatorList = cqcOperatorList; + } + + public List getFaiOperatorList() { + return faiOperatorList; + } + + public void setFaiOperatorList(List faiOperatorList) { + this.faiOperatorList = faiOperatorList; + } + public String getPartSpec() { return partSpec; } diff --git a/src/main/java/com/spring/modules/sampleManagement/service/Impl/TechnicalSpecificationServiceImpl.java b/src/main/java/com/spring/modules/sampleManagement/service/Impl/TechnicalSpecificationServiceImpl.java index bbe4d692..fd6bd8e3 100644 --- a/src/main/java/com/spring/modules/sampleManagement/service/Impl/TechnicalSpecificationServiceImpl.java +++ b/src/main/java/com/spring/modules/sampleManagement/service/Impl/TechnicalSpecificationServiceImpl.java @@ -1,5 +1,6 @@ package com.spring.modules.sampleManagement.service.Impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -113,20 +114,21 @@ public class TechnicalSpecificationServiceImpl implements TechnicalSpecification searchTestPart.setSite(inData.getSite()); searchTestPart.setTestPartNo(inData.getTestPartNo()); List checkPart=quotationInformationMapper.getProjectPartList(searchTestPart); - if(checkPart.size()==0){ + if(checkPart.isEmpty()){ throw new RuntimeException("项目物料不存在"); } if("".equals(checkPart.get(0).getFinalPartNo())||checkPart.get(0).getFinalPartNo()==null){ throw new RuntimeException("该物料没有生成正式物料!"); } List partList = - partInformationMapper.selectList(new QueryWrapper() - .eq("part_no", checkPart.get(0).getFinalPartNo()) - .eq("site", inData.getSite())); - if(partList.size()==0){ + partInformationMapper.selectList(new LambdaQueryWrapper() + .eq(PartInformationEntity::getPartNo, checkPart.get(0).getFinalPartNo()) + .eq(PartInformationEntity::getSite, inData.getSite())); + if(partList.isEmpty()){ throw new RuntimeException("该正式料号不在物料清单内!"); } if(inData.getId()==0){ + // 新增 //根据生效日期查询bom版本号 BomHeaderEntity bomHeaderEntity=technicalSpecificationMapper.getBomNowRevNo(inData.getSite(),checkPart.get(0).getFinalPartNo()); if(!Objects.isNull(bomHeaderEntity)){ @@ -147,15 +149,17 @@ public class TechnicalSpecificationServiceImpl implements TechnicalSpecification inData.setRoutingAlternativeNo(routingDetailEntity.getAlternativeNo()); } } + // 获取单号 String codeId = transNoControlService.transNo(inData.getSite(),"technical_specification"); inData.setCodeNo(codeId); inData.setOriCodeNo(codeId); inData.setCreateBy(sysUserEntity.getUsername()); inData.setStatus("cg"); technicalSpecificationMapper.saveTechnicalSpecificationSheet(inData); + // 修改参数 technicalSpecificationMapper.updateProjectPartNowBm(inData); - }else { + // 修改操作 // PlmProjectInfoData checkPlmProjectInfoData=projectDao.checkPlmProjectInfoData(inData); // if(!checkPlmProjectInfoData.getCustomerId().equals(inData.getCustomerId())){ // PlmProjectContactData projectContactData=new PlmProjectContactData(); @@ -165,8 +169,11 @@ public class TechnicalSpecificationServiceImpl implements TechnicalSpecification // } inData.setUpdateBy(sysUserEntity.getUsername()); technicalSpecificationMapper.updateTechnicalSpecificationSheet(inData); + // 删除所有人员 technicalSpecificationMapper.deleteTechnicalSpecificationTeamsForBase(inData); } + // --处理人员数据 修改已提前删除所有人员 + // 前端已注释 for (int i = 0; i teams = plmTechnicalSpecificationTeams; + int totalSize = teams.size(); + for (int startIndex = 0; startIndex < totalSize; startIndex += batchSize) { + int endIndex = Math.min(startIndex + batchSize, totalSize); + List batchList = teams.subList(startIndex, endIndex); + technicalSpecificationMapper.saveBatchTechnicalSpecificationTeams(batchList); } // PlmProjectInfo plmProjectInfo=projectDao.getProjectData(inData.getSite(),inData.getProjectId()); inData.setBuNo(checkPart.get(0).getBuNo()); @@ -291,8 +328,35 @@ public class TechnicalSpecificationServiceImpl implements TechnicalSpecification teamData.setType("dcc"); plmTechnicalSpecificationTeams.add(teamData); } - for (int i = 0; i teams = plmTechnicalSpecificationTeams; + int totalSize = teams.size(); + for (int startIndex = 0; startIndex < totalSize; startIndex += batchSize) { + int endIndex = Math.min(startIndex + batchSize, totalSize); + List batchList = teams.subList(startIndex, endIndex); + technicalSpecificationMapper.saveBatchTechnicalSpecificationTeams(batchList); } } diff --git a/src/main/resources/mapper/sampleManagement/TechnicalSpecificationMapper.xml b/src/main/resources/mapper/sampleManagement/TechnicalSpecificationMapper.xml index c5d51ed2..990818c9 100644 --- a/src/main/resources/mapper/sampleManagement/TechnicalSpecificationMapper.xml +++ b/src/main/resources/mapper/sampleManagement/TechnicalSpecificationMapper.xml @@ -219,6 +219,13 @@ insert into plm_technicalSpecification_team (site,code_no,operator_id,type) values (#{site},#{codeNo},#{operatorId},#{type}) + + insert into plm_technicalSpecification_team (site,code_no,operator_id,type) + values + + (#{item.site},#{item.codeNo},#{item.operatorId},#{item.type}) + + update plm_technical_specification_sheet set project_id=#{projectId},test_part_no=#{testPartNo},status=#{status} @@ -229,7 +236,7 @@ - delete from plm_technicalSpecification_team where site=#{site} and code_no=#{codeNo} and type in ('quotationOfficer','engineer','technician','dcc') + delete from plm_technicalSpecification_team where site=#{site} and code_no=#{codeNo} and type in ('quotationOfficer','engineer','technician','dcc','cqc','fai') delete from plm_technicalSpecification_team where site=#{site} and code_no=#{codeNo} and type in ('reviewEngineer','peEngineer','cqe') @@ -293,10 +300,6 @@ dbo.get_technicalSpecificationTeamName(a.site, a.code_no, 'quotationOfficer') quotationOfficer, c.customer_Id, a.ori_code_no, - a.cqcOperator, - a.faiOperator, - dbo.get_userDisPlay(a.cqcOperator) cqcOperatorName, - dbo.get_userDisPlay(a.faiOperator) faiOperatorName, a.overPrintOperator, a.printOperator, dbo.get_userDisPlay(a.overPrintOperator) overPrintOperatorName, @@ -316,6 +319,12 @@ dbo.get_technicalSpecificationTeamNo(a.site, a.code_no, 'engineer') engineerNo, dbo.get_technicalSpecificationTeamNames(a.site, a.code_no, 'dcc') dcc, dbo.get_technicalSpecificationTeamNo(a.site, a.code_no, 'technician') technicianNo, + dbo.get_technicalSpecificationTeamNames(a.site, a.code_no, 'cqc') cqcOperatorName, + dbo.get_technicalSpecificationTeamNames(a.site, a.code_no, 'fai') faiOperatorName, + + + + a.rev, a.customer_rev, relevance_part_no @@ -1431,16 +1440,17 @@ step_id,reject_flag,reject_step_id,mpOperator,pod a.pod, a.mpOperator, dbo.get_userDisPlay(a.mpOperator) as mpOperatorName, - a.cqcOperator, - dbo.get_userDisPlay(a.cqcOperator) as cqcOperatorName, - a.faiOperator, - dbo.get_userDisPlay(a.faiOperator) as faiOperatorName, a.peOperater, dbo.get_userDisPlay(a.peOperater) as peOperaterName, a.csOperater, dbo.get_userDisPlay(a.csOperater) as csOperaterName, - dbo.get_technicalSpecificationTeamNo(a.site, a.code_no, 'dcc') as dccOperater, dbo.get_technicalSpecificationTeamNames(a.site, a.code_no, 'dcc') as dccOperaterName, + dbo.get_technicalSpecificationTeamNames(a.site, a.code_no, 'cqc') as cqcOperatorName, + dbo.get_technicalSpecificationTeamNames(a.site, a.code_no, 'fai') as faiOperatorName, + + + + d.is_reject as isReject, d.node_id as nodeId, d.node_name as nodeName,