inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java
@@ -3,7 +3,9 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper; import com.ruoyi.basic.pojo.IfsInventoryQuantity; import com.ruoyi.common.numgen.NumberGenerator; import com.ruoyi.common.utils.api.MesApiUtils; import com.ruoyi.inspect.pojo.IfsSplitOrderRecord; import com.ruoyi.inspect.service.IfsSplitOrderRecordService; @@ -16,10 +18,7 @@ import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.*; /** * 执行ifs移库操作后,同步推送mes实时库存 @@ -36,6 +35,12 @@ private MesApiUtils mesApiUtils; private final static String LOCATION_NO = "WG-02-001";//mes外购合格库位 @Autowired private IfsInventoryQuantityMapper ifsInventoryQuantityMapper; @Autowired private NumberGenerator<IfsSplitOrderRecord> splitOrderRecordNumberGenerator; @AfterReturning(value = "execution(* com.ruoyi.inspect.service.impl.InsOrderServiceImpl.moveRawMaterial(..))") @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED) @@ -55,6 +60,18 @@ .last("limit 1") ); if(Objects.nonNull(one)){ //查询对应记录是否有相同批号和零件的订单记录 List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery() .eq(IfsInventoryQuantity::getUpdateBatchNo, one.getLotBatchNo()) .eq(IfsInventoryQuantity::getPartNo, one.getPartNo()) .ne(IfsInventoryQuantity::getId,ifsInventoryQuantity.getId()) ); //获取已检验的数据条数 long count = quantityList.stream().filter(f -> f.getIsFinish().equals(1)).count(); if(!quantityList.isEmpty() && count>0){ //生成新的系统编号 one.setSystemNo(splitOrderRecordNumberGenerator.generateNumberWithPrefix(IfsSplitOrderRecord.DIGIT,IfsSplitOrderRecord.PREFIX,IfsSplitOrderRecord::getSystemNo)); } //同步MES实时库存 Map<String, Object> requestMap = new HashMap<>(); requestMap.put("partNo", one.getPartNo()); // 零件编号 inspect-server/src/main/java/com/ruoyi/inspect/pojo/IfsSplitOrderRecord.java
@@ -21,6 +21,10 @@ @TableField(exist = false) private static final long serialVersionUID = 1L; public static final int DIGIT = 6;//系统编号生成位数 public static final String PREFIX ="WG";//系统编号生成前缀 /** * 主键id */ inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -100,7 +100,7 @@ private IfsSplitOrderRecordService ifsSplitOrderRecordService; private final NumberGenerator<IfsSplitOrderRecord> splitOrderRecordNumberGenerator; @Override public Result selectStandardTreeListByPartNo(String partNo) { @@ -112,7 +112,7 @@ for (FactoryDto factoryDto : factoryDtos) { for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) { for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) { if (sampleTypeDto.getChildren().size() == 0) { if (sampleTypeDto.getChildren().isEmpty()) { sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue())); } // 判断绑定的是否是当前零件号 @@ -952,16 +952,17 @@ } //勾选同步到MES,保存订单拆分记录 if(orderSplitDTO.getPushToMes()){ List<IfsSplitOrderRecord> collect = orderSplitDTO.getSplitDetailList().stream().map(m -> { orderSplitDTO.getSplitDetailList().forEach(m -> { IfsSplitOrderRecord record = new IfsSplitOrderRecord(); BeanUtil.copyProperties(m, record); record.setSystemNo(splitOrderRecordNumberGenerator.generateNumberWithPrefix(IfsSplitOrderRecord.DIGIT, IfsSplitOrderRecord.PREFIX, IfsSplitOrderRecord::getSystemNo)); record.setOrderNo(ifsInventoryQuantity.getOrderNo()); record.setLineNo(ifsInventoryQuantity.getLineNo()); record.setReleaseNo(ifsInventoryQuantity.getReleaseNo()); record.setReceiptNo(ifsInventoryQuantity.getReceiptNo()); return record; }).collect(Collectors.toList()); return ifsSplitOrderRecordService.saveBatch(collect); ifsSplitOrderRecordService.save(record); }); return true; } return false; }