Browse Source

2025/7/14

master
Aoi_Tori 1 year ago
parent
commit
e45c8a89a5
  1. 7
      src/main/java/com/spring/modules/Tooling/controller/ProjectToolingApplyController.java
  2. 4
      src/main/java/com/spring/modules/Tooling/mapper/ProjectToolingApplyMapper.java
  3. 3
      src/main/java/com/spring/modules/Tooling/service/ProjectToolingApplyService.java
  4. 53
      src/main/java/com/spring/modules/Tooling/service/impl/ProjectToolingApplyServiceImpl.java
  5. 92
      src/main/java/com/spring/modules/project/data/PlmProjectInfoData.java
  6. 35
      src/main/resources/mapper/Tooling/ProjectToolingApplyMapper.xml

7
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<RoutingToolApplyData> inList){
projectToolingApplyService.toolDetailBatchSave(inList);
return R.ok();
}
@PostMapping(value="/comfirmProjectToolApply")
@ResponseBody

4
src/main/java/com/spring/modules/Tooling/mapper/ProjectToolingApplyMapper.java

@ -95,7 +95,9 @@ public interface ProjectToolingApplyMapper {
IPage<RoutingToolApplyData> queryProjectPartToolForApplyAny(Page<RoutingToolApplyData> plmProjectInfoDataPage, @Param("query") Map<String, String> params);
void toolDetailBatchDelete(@Param("list") List<PlmProjectToolApplyDetailData> inList);
void toolDetailBatchDelete(@Param("list") List<PlmProjectToolApplyDetailData> list);
List<PlmProjectToolApplyDetailData> getToolApplyByPart(@Param("site") String site, @Param("testPartNo") String testPartNo, @Param("finalPartNo") String finalPartNo);
void toolDetailBatchSave(@Param("list")List<RoutingToolApplyData> inList);
}

3
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<PlmProjectToolApplyDetailData> inList);
void toolDetailBatchSave(List<RoutingToolApplyData> inList);
}

53
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<RoutingToolApplyData> 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<PlmProjectToolApplyDetailData> list = projectToolingApplyMapper.searchToolApplyDetail(inData);
Set<Integer> existingSeqNos = new HashSet<>();
Set<String> 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<Integer> 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

92
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<PlmProjectInfoData> 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;
}
}

35
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
<where>
<if test="params.site != null and params.site != ''">
and b.site = #{params.site}
</if>
@ -177,9 +178,27 @@
<if test="params.toolNo != null and params.toolNo != ''">
and e.tool_id like #{params.toolNo}
</if>
<if test="params.toolId != null and params.toolId != ''">
and e.tool_id like #{params.toolId}
</if>
<if test="params.toolDesc != null and params.toolDesc != ''">
and e.tool_description like #{params.toolDesc}
</if>
<if test="params.toolDescription != null and params.toolDescription != ''">
and e.tool_description like #{params.toolDescription}
</if>
<if test="params.testPartNo != null and params.testPartNo != ''">
and h.plm_part_no like #{params.testPartNo}
</if>
<if test="params.finalPartNo != null and params.finalPartNo != ''">
and h.ifs_part_no like #{params.finalPartNo}
</if>
<if test="params.partName != null and params.partName != ''">
and h.part_desc like #{params.partName}
</if>
<if test="params.customerPartNo != null and params.customerPartNo != ''">
and g.customer_part_no like #{params.customerPartNo}
</if>
</where>
order by b.project_id, d.part_no, c.routing_revision, c.routing_type, c.alternative_no, c.operation_no
</select>
@ -203,6 +222,16 @@
#{item.orderRef2}, #{item.orderRef3}, #{item.orderRef4}, #{item.orderRef5}, #{item.orderRef6})
</foreach>
</insert>
<insert id="toolDetailBatchSave">
insert into plm_project_tool_applyDetail (site, apply_no, seqNo, tool_id, standard_cost, applyQty, remark,
orderRef1, orderRef2, orderRef3, orderRef4, orderRef5,
orderRef6) values
<foreach collection="list" item="item" index="index" separator=",">
(#{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})
</foreach>
</insert>
<update id="updateRoutingToolRequireFlag">
update routing_tool
set ApplyFlag='Y'
@ -395,9 +424,9 @@
<delete id="toolDetailBatchDelete">
delete from plm_project_tool_applyDetail
WHERE (site, apply_no, seq_no) IN
<foreach collection="list" item="item" open="(" separator="," close=")">
(#{item.site}, #{item.applyNo}, #{item.seqNo})
WHERE
<foreach collection="list" item="item" separator=" OR ">
(site = #{item.site} AND apply_no = #{item.applyNo} AND seqNo = #{item.seqNo})
</foreach>
</delete>

Loading…
Cancel
Save