diff --git a/src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java b/src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java index 115bda86..aa4a86bb 100644 --- a/src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java +++ b/src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java @@ -14,6 +14,7 @@ import com.spring.modules.part.vo.AgentInformationVo; import com.spring.modules.request.entity.PlmRequestDetailEntity; import com.spring.modules.request.vo.PlmRequestDetailVo; import com.spring.modules.request.vo.PlmRequestHeaderVo; +import com.spring.modules.sampleManagement.data.PlmTechnicalSpecificationSheetData; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; @@ -155,4 +156,8 @@ public interface ChangeManagementMapper extends BaseMapper{ void updateProcessNode(@Param("site") String site, @Param("bu") String bu, @Param("requestId") String requestId, @Param("classificationNo") String classificationNo, @Param("nodeId") String nodeId, @Param("nodeConclusion") String nodeConclusion, @Param("rejectOpinion") String rejectOpinion); List getApprovalList(ProcessFormVo data); + + PlmTechnicalSpecificationSheetData getTechnicalSpecification(@Param("site") String site, @Param("codeNo") String codeNo); + + void updatePartActive(@Param("site") String site, @Param("partNo") String partNo); } diff --git a/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java b/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java index 47413a63..db38fef6 100644 --- a/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java +++ b/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java @@ -29,6 +29,7 @@ import com.spring.modules.oss.dao.SysOssDao; import com.spring.modules.oss.entity.SysOssEntity; import com.spring.modules.part.entity.PartInformationEntity; import com.spring.modules.part.entity.RoutingToolEntity; +import com.spring.modules.part.mapper.PartInformationMapper; import com.spring.modules.report.dao.ProcedureDao; import com.spring.modules.request.entity.PlmRequestDetailEntity; import com.spring.modules.request.entity.PlmRequestHeaderEntity; @@ -37,10 +38,12 @@ import com.spring.modules.request.mapper.RequestManageMapper; import com.spring.modules.request.vo.PlmRequestDetailVo; import com.spring.modules.request.vo.PlmRequestHeaderVo; import com.spring.modules.request.vo.TableDataVo; +import com.spring.modules.sampleManagement.data.PlmTechnicalSpecificationSheetData; import com.spring.modules.sys.dao.SysUserDao; import com.spring.modules.sys.entity.GetParamInData; import com.spring.modules.sys.entity.SysUserEntity; import com.spring.modules.sys.oauth2.TokenGenerator; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.Offset; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1536,6 +1539,42 @@ public class ChangeManagementServiceImpl extends ServiceImpl nodeDetailLast = changeManagementMapper.queryNodeDetailLast(paramData.getSite(), paramData.getClassificationNo(), paramData.getWorkflowId()); paramData.setStepId(nodeDetailLast.get(0).getStepId()); changeManagementMapper.updateChangeStatus2(paramData); + // 如果是ECN则执行升版操作 + if ("ECN".equals(type)) { + ChangeRequestEntity changeRequestEntity = new ChangeRequestEntity(); + changeRequestEntity.setSite(paramData.getSite()); + changeRequestEntity.setChangeNo(paramData.getDocNo()); + List codelist = changeManagementMapper.requestDetailSearch(changeRequestEntity); + for (ChangeRequestDetailEntity detail : codelist) { + // 查出BM版本号 + PlmTechnicalSpecificationSheetData ptssd = changeManagementMapper.getTechnicalSpecification(detail.getSite(), detail.getCodeNo()); + int revNo; + try { + revNo = Integer.parseInt(ptssd.getRevNo()) + 1; + } catch (NumberFormatException e) { + throw new RuntimeException("转换错误: 版本号不是一个有效的整数!"); + } + List params = new ArrayList<>(); + params.add(detail.getSite()); + params.add(detail.getCodeNo()); + params.add(ptssd.getRevNo()); + params.add(ptssd.getOriCodeNo()); + params.add(revNo); + params.add(paramData.getUserName()); + //执行方法 + List> resultList = procedureDao.getProcedureData("plm_bm_upRevNo", params); + //判断是否成功 + String code = String.valueOf(resultList.get(0).get("resultCode")); + if ("400".equalsIgnoreCase(code)) { + String msg = String.valueOf(resultList.get(0).get("resultMsg")); + throw new RuntimeException(msg); + } + // 如果有新物料编码,则停用之前的物料 + if (StringUtils.isNotBlank(detail.getNewPartNo())) { + changeManagementMapper.updatePartActive(detail.getSite(), detail.getPartNo()); + } + } + } } else { // 未结束 // 存放isRemark为0的域控账号 Map dcas = new HashMap<>(); diff --git a/src/main/java/com/spring/modules/part/vo/PartInformationVo.java b/src/main/java/com/spring/modules/part/vo/PartInformationVo.java index 6785025d..36d1ef23 100644 --- a/src/main/java/com/spring/modules/part/vo/PartInformationVo.java +++ b/src/main/java/com/spring/modules/part/vo/PartInformationVo.java @@ -144,4 +144,5 @@ public class PartInformationVo extends PartInformationEntity { private String alternativeNo; private String alternativeDescription; private String statusDesc; + private String activeDesc; } diff --git a/src/main/resources/mapper/change/ChangeManagementMapper.xml b/src/main/resources/mapper/change/ChangeManagementMapper.xml index c5426008..4f90ce7d 100644 --- a/src/main/resources/mapper/change/ChangeManagementMapper.xml +++ b/src/main/resources/mapper/change/ChangeManagementMapper.xml @@ -1017,4 +1017,21 @@ WHERE a.site = #{site} AND a.menu_id = #{menuId} ORDER BY b.step_id ASC + + + + + update part + set active = 'N' + where site = #{site} and part_no = #{partNo} + diff --git a/src/main/resources/mapper/part/PartInformationMapper.xml b/src/main/resources/mapper/part/PartInformationMapper.xml index f76cefd3..ed52c6fc 100644 --- a/src/main/resources/mapper/part/PartInformationMapper.xml +++ b/src/main/resources/mapper/part/PartInformationMapper.xml @@ -23,6 +23,7 @@ uom_for_volume_net, lot_tracking_code, active, + case when active = 'Y' then '是' when active = 'N' then '否' else '' end as activeDesc, product_group_id1, dbo.get_product_group_name(site, product_group_id1, '1') as productGroupName1, product_group_id2, @@ -103,6 +104,9 @@ FROM part site = #{query.site} + + AND active = #{query.active} + AND part_no like #{query.partNo}