| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchPurchaseSourceRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchSalesTargetRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.batch.MesProBatchDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.sn.MesWmSnDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.batch.MesWmBatchMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.sn.MesWmSnMapper; |
| | | import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants; |
| | | import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService; |
| | | import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; |
| | |
| | | return batchMapper.selectByCode(snDO.getBatchCode()); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public MesWmBatchDO getOrCreateByProBatch(MesProBatchDO proBatch) { |
| | | if (proBatch == null || StrUtil.isBlank(proBatch.getCode())) { |
| | | return null; |
| | | } |
| | | // 1. 复用已有仓库批次(同一生产批次号) |
| | | MesWmBatchDO existing = batchMapper.selectByCode(proBatch.getCode()); |
| | | if (existing != null) { |
| | | return existing; |
| | | } |
| | | // 2. 新建仓库批次:以生产批次号作为仓库批次号,质量状态置为待检验 |
| | | MesWmBatchDO batch = MesWmBatchDO.builder() |
| | | .code(proBatch.getCode()) |
| | | .itemId(proBatch.getItemId()) |
| | | .produceDate(proBatch.getProduceDate()) |
| | | .receiptDate(java.time.LocalDateTime.now()) |
| | | .qualityStatus(MesWmQualityStatusEnum.PENDING.getStatus()) |
| | | .remark("生产批次自动桥接") |
| | | .build(); |
| | | batchMapper.insert(batch); |
| | | return batch; |
| | | } |
| | | |
| | | } |