From e45c8a89a5a0fd8b2470a6b1282da41f88ac246c Mon Sep 17 00:00:00 2001 From: Aoi_Tori <2547614904@qq.com> Date: Mon, 14 Jul 2025 17:36:40 +0800 Subject: [PATCH] 2025/7/14 --- .../ProjectToolingApplyController.java | 7 ++ .../mapper/ProjectToolingApplyMapper.java | 4 +- .../service/ProjectToolingApplyService.java | 3 + .../impl/ProjectToolingApplyServiceImpl.java | 53 +++++++++++ .../project/data/PlmProjectInfoData.java | 92 +++++++++++++++++++ .../Tooling/ProjectToolingApplyMapper.xml | 35 ++++++- 6 files changed, 190 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/spring/modules/Tooling/controller/ProjectToolingApplyController.java b/src/main/java/com/spring/modules/Tooling/controller/ProjectToolingApplyController.java index e9361bd5..25676c1e 100644 --- a/src/main/java/com/spring/modules/Tooling/controller/ProjectToolingApplyController.java +++ b/src/main/java/com/spring/modules/Tooling/controller/ProjectToolingApplyController.java @@ -5,6 +5,7 @@ import com.spring.common.utils.PageUtils; import com.spring.common.utils.R; import com.spring.modules.Tooling.data.*; import com.spring.modules.Tooling.service.ProjectToolingApplyService; +import com.spring.modules.base.entity.PlmProjectToolApplyDetail; import com.spring.modules.change.vo.ChangeRequestVo; import com.spring.modules.part.entity.ToolHeader; import com.spring.modules.project.data.PlmProjectInfoData; @@ -99,6 +100,12 @@ public class ProjectToolingApplyController { projectToolingApplyService.toolDetailBatchDelete(inList); return R.ok(); } + @PostMapping(value="/toolDetailBatchSave") + @ResponseBody + public R toolDetailBatchSave(@RequestBody List inList){ + projectToolingApplyService.toolDetailBatchSave(inList); + return R.ok(); + } @PostMapping(value="/comfirmProjectToolApply") @ResponseBody diff --git a/src/main/java/com/spring/modules/Tooling/mapper/ProjectToolingApplyMapper.java b/src/main/java/com/spring/modules/Tooling/mapper/ProjectToolingApplyMapper.java index 424fea09..1bc30cae 100644 --- a/src/main/java/com/spring/modules/Tooling/mapper/ProjectToolingApplyMapper.java +++ b/src/main/java/com/spring/modules/Tooling/mapper/ProjectToolingApplyMapper.java @@ -95,7 +95,9 @@ public interface ProjectToolingApplyMapper { IPage queryProjectPartToolForApplyAny(Page plmProjectInfoDataPage, @Param("query") Map params); - void toolDetailBatchDelete(@Param("list") List inList); + void toolDetailBatchDelete(@Param("list") List list); List getToolApplyByPart(@Param("site") String site, @Param("testPartNo") String testPartNo, @Param("finalPartNo") String finalPartNo); + + void toolDetailBatchSave(@Param("list")List inList); } diff --git a/src/main/java/com/spring/modules/Tooling/service/ProjectToolingApplyService.java b/src/main/java/com/spring/modules/Tooling/service/ProjectToolingApplyService.java index 5e66a08e..586f62a8 100644 --- a/src/main/java/com/spring/modules/Tooling/service/ProjectToolingApplyService.java +++ b/src/main/java/com/spring/modules/Tooling/service/ProjectToolingApplyService.java @@ -3,6 +3,7 @@ package com.spring.modules.Tooling.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.spring.common.utils.PageUtils; import com.spring.modules.Tooling.data.*; +import com.spring.modules.base.entity.PlmProjectToolApplyDetail; import com.spring.modules.part.entity.ToolHeader; import com.spring.modules.project.data.PlmProjectInfoData; import com.spring.modules.sift.vo.QuerySavedVo; @@ -58,4 +59,6 @@ public interface ProjectToolingApplyService { PageUtils queryProjectPartToolForApplyAny(QuerySavedVo data); void toolDetailBatchDelete(List inList); + + void toolDetailBatchSave(List inList); } diff --git a/src/main/java/com/spring/modules/Tooling/service/impl/ProjectToolingApplyServiceImpl.java b/src/main/java/com/spring/modules/Tooling/service/impl/ProjectToolingApplyServiceImpl.java index 2195e9ed..62762bf2 100644 --- a/src/main/java/com/spring/modules/Tooling/service/impl/ProjectToolingApplyServiceImpl.java +++ b/src/main/java/com/spring/modules/Tooling/service/impl/ProjectToolingApplyServiceImpl.java @@ -435,6 +435,59 @@ public class ProjectToolingApplyServiceImpl implements ProjectToolingApplyServic projectToolingApplyMapper.toolDetailBatchDelete(inList); } + @Override + public void toolDetailBatchSave(List inList) { + String applyNo = inList.get(0).getApplyNo(); + String site = inList.get(0).getSite(); + inList.forEach(item -> item.setApplyNo(applyNo)); + + PlmProjectToolApplyHeaderData inData = new PlmProjectToolApplyHeaderData(); + inData.setSite(site); + inData.setApplyNo(applyNo); + List list = projectToolingApplyMapper.searchToolApplyDetail(inData); + + Set existingSeqNos = new HashSet<>(); + Set existingKeys = new HashSet<>(); + if (list != null) { + for (PlmProjectToolApplyDetailData data : list) { + if (data != null && data.getSeqNo() != null) { + existingSeqNos.add(data.getSeqNo()); + } + } + for (PlmProjectToolApplyDetailData data : list) { + if (data != null) { + String key = data.getSite() + "|" + + data.getOrderRef1() + "|" + + data.getOrderRef2() + "|" + + data.getToolId(); + existingKeys.add(key); + } + } + } + inList.removeIf(item -> { + if (item == null) return false; + String key = item.getSite() + "|" + + item.getProjectId() + "|" + + item.getTestPartNo() + "|" + + item.getToolId(); + return existingKeys.contains(key); + }); + int currentSeq = 1; + Set usedSeqNos = new HashSet<>(); + + for (RoutingToolApplyData item : inList) { + while (existingSeqNos.contains(currentSeq) || usedSeqNos.contains(currentSeq)) { + currentSeq++; + } + item.setSeqNo(currentSeq); + usedSeqNos.add(currentSeq); + currentSeq++; + } + if (!inList.isEmpty()) { + projectToolingApplyMapper.toolDetailBatchSave(inList); + } + } + /** * 流程干预提交 * @param data diff --git a/src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java b/src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java index 74b8e290..b4e24826 100644 --- a/src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java +++ b/src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java @@ -38,6 +38,22 @@ public class PlmProjectInfoData extends PlmProjectInfo { private String userId; @TableField(exist = false) private String SearchType; + @TableField(exist = false) + private String customerPartNo; + @TableField(exist = false) + private String finalPartNo; + @TableField(exist = false) + private String partName; + @TableField(exist = false) + private String projectId; + @TableField(exist = false) + private String projectName; + @TableField(exist = false) + private String testPartNo; + @TableField(exist = false) + private String toolDescription; + @TableField(exist = false) + private String toolId; @TableField(exist = false) private List projectList; @@ -233,4 +249,80 @@ public class PlmProjectInfoData extends PlmProjectInfo { public void setFinalCustomerName(String finalCustomerName) { this.finalCustomerName = finalCustomerName; } + + public String getSearchType() { + return SearchType; + } + + public void setSearchType(String searchType) { + SearchType = searchType; + } + + public String getCustomerPartNo() { + return customerPartNo; + } + + public void setCustomerPartNo(String customerPartNo) { + this.customerPartNo = customerPartNo; + } + + public String getFinalPartNo() { + return finalPartNo; + } + + public void setFinalPartNo(String finalPartNo) { + this.finalPartNo = finalPartNo; + } + + public String getPartName() { + return partName; + } + + public void setPartName(String partName) { + this.partName = partName; + } + + @Override + public String getProjectId() { + return projectId; + } + + @Override + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + @Override + public String getProjectName() { + return projectName; + } + + @Override + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getTestPartNo() { + return testPartNo; + } + + public void setTestPartNo(String testPartNo) { + this.testPartNo = testPartNo; + } + + public String getToolDescription() { + return toolDescription; + } + + public void setToolDescription(String toolDescription) { + this.toolDescription = toolDescription; + } + + public String getToolId() { + return toolId; + } + + public void setToolId(String toolId) { + this.toolId = toolId; + } } diff --git a/src/main/resources/mapper/Tooling/ProjectToolingApplyMapper.xml b/src/main/resources/mapper/Tooling/ProjectToolingApplyMapper.xml index 147626e4..36d2d5fe 100644 --- a/src/main/resources/mapper/Tooling/ProjectToolingApplyMapper.xml +++ b/src/main/resources/mapper/Tooling/ProjectToolingApplyMapper.xml @@ -150,6 +150,7 @@ left join part h on b.site = h.site and (case when b.final_part_no is not null then final_part_no else test_part_no end) = h.part_no + and b.site = #{params.site} @@ -177,9 +178,27 @@ and e.tool_id like #{params.toolNo} + + and e.tool_id like #{params.toolId} + and e.tool_description like #{params.toolDesc} + + and e.tool_description like #{params.toolDescription} + + + and h.plm_part_no like #{params.testPartNo} + + + and h.ifs_part_no like #{params.finalPartNo} + + + and h.part_desc like #{params.partName} + + + and g.customer_part_no like #{params.customerPartNo} + order by b.project_id, d.part_no, c.routing_revision, c.routing_type, c.alternative_no, c.operation_no @@ -203,6 +222,16 @@ #{item.orderRef2}, #{item.orderRef3}, #{item.orderRef4}, #{item.orderRef5}, #{item.orderRef6}) + + insert into plm_project_tool_applyDetail (site, apply_no, seqNo, tool_id, standard_cost, applyQty, remark, + orderRef1, orderRef2, orderRef3, orderRef4, orderRef5, + orderRef6) values + + (#{item.site}, #{item.applyNo}, #{item.seqNo}, #{item.toolId}, #{item.standardCost}, #{item.applyQty}, + #{item.remark}, #{item.projectId}, + #{item.testPartNo}, #{item.routingRevision}, #{item.routingType}, #{item.alternativeNo}, #{item.operationId}) + + update routing_tool set ApplyFlag='Y' @@ -395,9 +424,9 @@ delete from plm_project_tool_applyDetail - WHERE (site, apply_no, seq_no) IN - - (#{item.site}, #{item.applyNo}, #{item.seqNo}) + WHERE + + (site = #{item.site} AND apply_no = #{item.applyNo} AND seqNo = #{item.seqNo})