From 5c72a92f9a1fa6cd82a55bd30dc1208ba23861db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Wed, 17 Jun 2026 10:21:32 +0800 Subject: [PATCH] 1 --- .../xujie/modules/part/dao/PartMapper.java | 5 ++++ .../part/service/Impl/PartServiceImpl.java | 28 +++++++++++++++---- .../mapper/part/mapperXml/PartMapper.xml | 14 ++++++++-- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/xujie/modules/part/dao/PartMapper.java b/src/main/java/com/xujie/modules/part/dao/PartMapper.java index 94e92eb..dd19008 100644 --- a/src/main/java/com/xujie/modules/part/dao/PartMapper.java +++ b/src/main/java/com/xujie/modules/part/dao/PartMapper.java @@ -30,4 +30,9 @@ public interface PartMapper extends BaseMapper { List getAvailableValueList(PartSubPropertiesValueData partSubPropertiesValueData); IPage searchPartApproveList(Page partVoPage,@Param("query")PartVo data); + + /** 按站点+料号更新物料阶段 */ + int updatePartStageBySiteAndPartNo(@Param("site") String site, + @Param("partNo") String partNo, + @Param("partStage") String partStage); } diff --git a/src/main/java/com/xujie/modules/part/service/Impl/PartServiceImpl.java b/src/main/java/com/xujie/modules/part/service/Impl/PartServiceImpl.java index e75097f..2d9cd56 100644 --- a/src/main/java/com/xujie/modules/part/service/Impl/PartServiceImpl.java +++ b/src/main/java/com/xujie/modules/part/service/Impl/PartServiceImpl.java @@ -9,6 +9,7 @@ import com.xujie.modules.part.dao.PartMapper; import com.xujie.modules.part.entity.Part; import com.xujie.modules.part.service.Iface.IPartService; import com.xujie.modules.part.vo.PartVo; +import com.xujie.modules.supplierLocalization.entity.SupplierLocalizationTaskEntity; import com.xujie.modules.workFlow.data.ErfFlowInstanceData; import com.xujie.modules.workFlow.data.ErfFlowNodeData; import com.xujie.modules.workFlow.data.ErfFlowNodeInstanceData; @@ -113,6 +114,7 @@ public class PartServiceImpl extends ServiceImpl implements IP * @param username */ @Override + @Transactional public void partApprove(PartVo data, String username) { ErfFlowNodeInstanceData nodeInstanceData = new ErfFlowNodeInstanceData(); nodeInstanceData.setApplyNo(data.getApplyNo()); @@ -125,12 +127,26 @@ public class PartServiceImpl extends ServiceImpl implements IP //流程审批 erfFlowInstanceService.approveNodeInstance(nodeInstanceData, username); //判断是否最后一个节点,修改产品类型为已审批 - ErfFlowNodeData flowNodeData = erfFlowInstanceMapper.getFlowNodeData(nodeInstanceData.getNodeCode(),data.getSite()); - if (flowNodeData == null || "END".equals(flowNodeData.getNodeType()) || Objects.equals(data.getSpecialRelease(), "Y")) { - Part part = new Part(); - part.setId(data.getId()); - part.setPartStage("Approved"); - baseMapper.updateById(part); + // ErfFlowNodeData flowNodeData = erfFlowInstanceMapper.getFlowNodeData(nodeInstanceData.getNodeCode(),data.getSite()); + // if (flowNodeData == null || "END".equals(flowNodeData.getNodeType()) || Objects.equals(data.getSpecialRelease(), "Y")) { + // Part part = new Part(); + // part.setId(data.getId()); + // part.setPartStage("Approved"); + // baseMapper.updateById(part); + // } + ErfFlowInstanceData flowInstance = erfFlowInstanceService.getInstanceByApplyNo( + data.getApplyNo(), data.getSite(), data.getOrderType()); + + if (flowInstance != null && "COMPLETED".equals(flowInstance.getStatus())) { + String site = flowInstance.getSite(); + String partNo = flowInstance.getOrderRef1(); + if (StringUtils.isBlank(site) || StringUtils.isBlank(partNo)) { + throw new RuntimeException("流程实例缺少工厂编码或料号,无法更新物料阶段"); + } + int rows = baseMapper.updatePartStageBySiteAndPartNo(site, partNo, "Approved"); + if (rows <= 0) { + throw new RuntimeException("更新物料阶段失败,未找到对应物料记录(按site+part_no)"); + } } } diff --git a/src/main/resources/mapper/part/mapperXml/PartMapper.xml b/src/main/resources/mapper/part/mapperXml/PartMapper.xml index 56f03d3..2fa4333 100644 --- a/src/main/resources/mapper/part/mapperXml/PartMapper.xml +++ b/src/main/resources/mapper/part/mapperXml/PartMapper.xml @@ -23,12 +23,13 @@ + - site, part_no, part_desc, remark, create_by, create_date, update_by, update_date, npc, part_spec, buyer_name, buyer_id, sourcing_name, sourcing_id, category, unit, status, code_no, id,sku + site, part_no, part_desc, remark, create_by, create_date, update_by, update_date, npc, part_spec, buyer_name, buyer_id, sourcing_name, sourcing_id, category, unit, status, code_no, part_stage, id, sku + + UPDATE part + SET part_stage = #{partStage}, + update_date = GETDATE() + WHERE site = #{site} + AND part_no = #{partNo} +