From 988fe7c2840c330be7fc7a9f633760a07eb974b8 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Mon, 2 Feb 2026 14:32:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E5=88=B6=E5=A2=9E=E5=8A=A0=E5=8E=9F?= =?UTF-8?q?=E6=9D=90=E6=96=99=E6=B8=85=E5=8D=95=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erf/controller/ErfExpApplyController.java | 19 +++++++----- .../erf/service/ErfExpApplyService.java | 2 +- .../erf/service/ErfExpRawMaterialService.java | 8 +++++ .../service/impl/ErfExpApplyServiceImpl.java | 29 ++++++++++++++----- .../impl/ErfExpRawMaterialServiceImpl.java | 27 +++++++++++++++++ 5 files changed, 69 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/erf/controller/ErfExpApplyController.java b/src/main/java/com/xujie/sys/modules/erf/controller/ErfExpApplyController.java index a11e3d8c..2c3e2b63 100644 --- a/src/main/java/com/xujie/sys/modules/erf/controller/ErfExpApplyController.java +++ b/src/main/java/com/xujie/sys/modules/erf/controller/ErfExpApplyController.java @@ -216,19 +216,22 @@ public class ErfExpApplyController extends AbstractController { public R copyExpApply(@RequestBody Map params) { try { String sourceApplyNo = (String) params.get("sourceApplyNo"); - Boolean copyTriConfirm = params.get("copyTriConfirm") != null - ? (Boolean) params.get("copyTriConfirm") + Boolean copyTriConfirm = params.get("copyTriConfirm") != null + ? (Boolean) params.get("copyTriConfirm") : false; - Boolean copyAttachment = params.get("copyAttachment") != null - ? (Boolean) params.get("copyAttachment") + Boolean copyAttachment = params.get("copyAttachment") != null + ? (Boolean) params.get("copyAttachment") : false; - Long currentUserId = params.get("currentUserId") != null - ? Long.valueOf(params.get("currentUserId").toString()) + Boolean copyRawMaterialList = params.get("copyRawMaterialList") != null + ? (Boolean) params.get("copyRawMaterialList") + : false; + Long currentUserId = params.get("currentUserId") != null + ? Long.valueOf(params.get("currentUserId").toString()) : null; String newApplyNo = erfExpApplyService.copyExpApply( - sourceApplyNo, copyTriConfirm, copyAttachment, currentUserId); - + sourceApplyNo, copyTriConfirm, copyAttachment,copyRawMaterialList, currentUserId); + return R.ok("复制成功").put("newApplyNo", newApplyNo); } catch (Exception e) { log.error("复制失败: " + e.getMessage(), e); diff --git a/src/main/java/com/xujie/sys/modules/erf/service/ErfExpApplyService.java b/src/main/java/com/xujie/sys/modules/erf/service/ErfExpApplyService.java index 5db22f6a..89b01f98 100644 --- a/src/main/java/com/xujie/sys/modules/erf/service/ErfExpApplyService.java +++ b/src/main/java/com/xujie/sys/modules/erf/service/ErfExpApplyService.java @@ -160,5 +160,5 @@ public interface ErfExpApplyService extends IService { * @param currentUserId 当前操作用户ID * @return 新申请单号 */ - String copyExpApply(String sourceApplyNo, Boolean copyTriConfirm, Boolean copyAttachment, Long currentUserId); + String copyExpApply(String sourceApplyNo, Boolean copyTriConfirm, Boolean copyAttachment,Boolean copyRawMaterialList, Long currentUserId); } diff --git a/src/main/java/com/xujie/sys/modules/erf/service/ErfExpRawMaterialService.java b/src/main/java/com/xujie/sys/modules/erf/service/ErfExpRawMaterialService.java index e86ae1d2..f33cc69d 100644 --- a/src/main/java/com/xujie/sys/modules/erf/service/ErfExpRawMaterialService.java +++ b/src/main/java/com/xujie/sys/modules/erf/service/ErfExpRawMaterialService.java @@ -70,4 +70,12 @@ public interface ErfExpRawMaterialService { * @return 物料描述(如果不存在返回null) */ String getPartDescByPartNo(String partNo, String site,String buNo); + + /** + * 复制原材料清单从一个申请单到另一个申请单 + * + * @param sourceApplyNo 源申请单号 + * @param targetApplyNo 目标申请单号 + */ + void copyRawMaterialList(String sourceApplyNo, String targetApplyNo); } diff --git a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java index 6370bc21..8ad2af31 100644 --- a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java @@ -18,9 +18,11 @@ import com.xujie.sys.modules.erf.mapper.ErfExpApplyMapper; import com.xujie.sys.modules.erf.mapper.ErfFlowInstanceMapper; import com.xujie.sys.modules.erf.mapper.ErfFlowNodeInstanceMapper; import com.xujie.sys.modules.erf.service.ErfExpApplyService; +import com.xujie.sys.modules.erf.service.ErfExpRawMaterialService; import com.xujie.sys.modules.erf.service.ErfFlowEngineService; import com.xujie.sys.modules.erf.entity.ErfFlowApproveLog; import com.xujie.sys.modules.erf.mapper.ErfFlowApproveLogMapper; +import com.xujie.sys.modules.erf.service.ErfTriConfirmService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -66,7 +68,10 @@ public class ErfExpApplyServiceImpl extends ServiceImpl> attachments = jdbcTemplate.queryForList(sql, "ERF", sourceApplyNo, "EXP_APPLY"); - + if (attachments.isEmpty()) { log.info("源申请单没有附件,跳过复制"); return; @@ -1330,7 +1345,7 @@ public class ErfExpApplyServiceImpl extends ServiceImpl attachment : attachments) { jdbcTemplate.update(insertSql, attachment.get("url"), diff --git a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpRawMaterialServiceImpl.java b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpRawMaterialServiceImpl.java index f2787a4f..5d36f76d 100644 --- a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpRawMaterialServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpRawMaterialServiceImpl.java @@ -8,6 +8,7 @@ import com.xujie.sys.modules.erf.service.ErfExpRawMaterialService; import com.xujie.sys.modules.part.entity.PartInformationEntity; import com.xujie.sys.modules.part.mapper.PartInformationMapper; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -251,4 +252,30 @@ public class ErfExpRawMaterialServiceImpl implements ErfExpRawMaterialService { throw new XJException("数量必须大于0"); } } + + public void copyRawMaterialList(String sourceApplyNo, String targetApplyNo) { + log.info("复制原材料清单,从申请单 {} 到申请单 {}", sourceApplyNo, targetApplyNo); + + if (!StringUtils.hasText(sourceApplyNo) || !StringUtils.hasText(targetApplyNo)) { + throw new XJException("源申请单号和目标申请单号不能为空"); + } + + try { + List sourceList = getRawMaterialListByApplyNo(sourceApplyNo); + for (ErfExpRawMaterial item : sourceList) { + ErfExpRawMaterial newItem = new ErfExpRawMaterial(); + BeanUtils.copyProperties(item, newItem); + newItem.setId(null); // 清空ID以便插入新记录 + newItem.setApplyNo(targetApplyNo); + newItem.setCreatedBy(item.getCreatedBy()); + newItem.setCreatedDate(new Date()); + newItem.setIsDeleted("0"); + erfExpRawMaterialMapper.insert(newItem); + } + log.info("复制原材料清单成功,复制了 {} 条记录", sourceList.size()); + } catch (Exception e) { + log.error("复制原材料清单失败: " + e.getMessage(), e); + throw new XJException("复制原材料清单失败: " + e.getMessage()); + } + } }