feat(normal-pgi): 新增出库物料扫码记录功能
- 引入 OutMaterialScanRecordRespository 和相关文档类 - 添加 Instant 时间类型支持 - 注入出库物料扫码记录仓库实例 - 修改数据分组逻辑以支持 CrossQO 类型 - 创建出库物料扫码记录列表并初始化 - 在工单项目创建时同步生成扫码记录 - 为每个二维码生成对应的扫码记录详情 - 批量保存出库物料扫码记录到数据库
This commit is contained in:
parent
8b087ce00a
commit
194e3c8a75
|
|
@ -11,6 +11,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.crypto.digest.DigestUtil;
|
import cn.hutool.crypto.digest.DigestUtil;
|
||||||
import com.nflg.wms.admin.pojo.dto.*;
|
import com.nflg.wms.admin.pojo.dto.*;
|
||||||
|
import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository;
|
||||||
import com.nflg.wms.admin.repository.SrmMaterialReceiptNoScanCodesRepository;
|
import com.nflg.wms.admin.repository.SrmMaterialReceiptNoScanCodesRepository;
|
||||||
import com.nflg.wms.admin.repository.SrmMaterialReceiptScanCodesRepository;
|
import com.nflg.wms.admin.repository.SrmMaterialReceiptScanCodesRepository;
|
||||||
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
||||||
|
|
@ -22,6 +23,7 @@ import com.nflg.wms.common.constant.STATE;
|
||||||
import com.nflg.wms.common.exception.NflgException;
|
import com.nflg.wms.common.exception.NflgException;
|
||||||
import com.nflg.wms.common.pojo.ApiResult;
|
import com.nflg.wms.common.pojo.ApiResult;
|
||||||
import com.nflg.wms.common.pojo.PageData;
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
|
import com.nflg.wms.common.pojo.document.OutMaterialScanRecord;
|
||||||
import com.nflg.wms.common.pojo.document.SrmMaterialReceiptNoScanCodes;
|
import com.nflg.wms.common.pojo.document.SrmMaterialReceiptNoScanCodes;
|
||||||
import com.nflg.wms.common.pojo.document.SrmMaterialReceiptScanCodes;
|
import com.nflg.wms.common.pojo.document.SrmMaterialReceiptScanCodes;
|
||||||
import com.nflg.wms.common.pojo.dto.*;
|
import com.nflg.wms.common.pojo.dto.*;
|
||||||
|
|
@ -44,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -115,6 +118,9 @@ public class NormalPGIController extends BaseController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IWmsWarehouseService wmsWarehouseService;
|
private IWmsWarehouseService wmsWarehouseService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OutMaterialScanRecordRespository outMaterialScanRecordRespository;
|
||||||
//收货单分页
|
//收货单分页
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1299,10 +1305,11 @@ public class NormalPGIController extends BaseController {
|
||||||
// );
|
// );
|
||||||
// });
|
// });
|
||||||
// qos.forEach(this::takeDeliveryConfirm);
|
// qos.forEach(this::takeDeliveryConfirm);
|
||||||
Map<String, List<Zwm3a07VO>> maps = datas.stream().collect(Collectors.groupingBy(Zwm3a07VO::getKey2));
|
Map<String, List<CrossQO>> maps = datas.stream().collect(Collectors.groupingBy(CrossQO::getKey2));
|
||||||
List<WmsOutProduce> pOrders = new ArrayList<>();
|
List<WmsOutProduce> pOrders = new ArrayList<>();
|
||||||
List<WmsOutProduceTicket> tickets = new ArrayList<>();
|
List<WmsOutProduceTicket> tickets = new ArrayList<>();
|
||||||
List<WmsOutProduceTicketItem> ticketItems = new ArrayList<>();
|
List<WmsOutProduceTicketItem> ticketItems = new ArrayList<>();
|
||||||
|
List<OutMaterialScanRecord> records = new ArrayList<>();
|
||||||
maps.forEach((key, items) -> {
|
maps.forEach((key, items) -> {
|
||||||
WmsOutProduce order = Convert.convert(WmsOutProduce.class, items.get(0));
|
WmsOutProduce order = Convert.convert(WmsOutProduce.class, items.get(0));
|
||||||
order.setId(IdUtil.getSnowflakeNextId());
|
order.setId(IdUtil.getSnowflakeNextId());
|
||||||
|
|
@ -1336,12 +1343,38 @@ public class NormalPGIController extends BaseController {
|
||||||
} else {
|
} else {
|
||||||
throw new NflgException(STATE.BusinessError, "获取锁失败");
|
throw new NflgException(STATE.BusinessError, "获取锁失败");
|
||||||
}
|
}
|
||||||
ticketItems.add(
|
WmsOutProduceTicketItem ticketItem=new WmsOutProduceTicketItem()
|
||||||
new WmsOutProduceTicketItem()
|
.setId(IdUtil.getSnowflakeNextId())
|
||||||
.setTicketId(ticket.getId())
|
.setTicketId(ticket.getId())
|
||||||
.setProduceItemId(itemId)
|
.setProduceItemId(itemId)
|
||||||
.setNum(item.getSqsl())
|
.setNum(item.getSqsl());
|
||||||
|
ticketItems.add(ticketItem);
|
||||||
|
item.getQrCodes().forEach(qr->{
|
||||||
|
WmsQrCodeMaster qrCodeMaster = qrCodeMasters.stream()
|
||||||
|
.filter(qit -> qit.getBarcodeCode().equals(qr.getCodeId()))
|
||||||
|
.findFirst()
|
||||||
|
.get();
|
||||||
|
records.add(new OutMaterialScanRecord()
|
||||||
|
.setSource(1)
|
||||||
|
.setSourceId(order.getId())
|
||||||
|
.setSourceItemId(itemId)
|
||||||
|
.setTicketId(ticket.getId())
|
||||||
|
.setTicketItemId(ticketItem.getId())
|
||||||
|
.setMaterialNo(item.getMatnr())
|
||||||
|
.setContent(qr.getCodeId())
|
||||||
|
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||||
|
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||||
|
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||||
|
.setQiTao(false)
|
||||||
|
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||||
|
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||||
|
.setUnit(qrCodeMaster.getUnit())
|
||||||
|
.setRspos(item.getRspos())
|
||||||
|
.setNum(qrCodeMaster.getQuantity())
|
||||||
|
.setCreateBy(UserUtil.getUserName())
|
||||||
|
.setCreateTime(Instant.now())
|
||||||
);
|
);
|
||||||
|
});
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new NflgException(STATE.BusinessError, e.getMessage());
|
throw new NflgException(STATE.BusinessError, e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -1357,6 +1390,7 @@ public class NormalPGIController extends BaseController {
|
||||||
outProduceService.saveBatch(pOrders);
|
outProduceService.saveBatch(pOrders);
|
||||||
outProduceTicketService.saveBatch(tickets);
|
outProduceTicketService.saveBatch(tickets);
|
||||||
outProduceTicketItemService.saveBatch(ticketItems);
|
outProduceTicketItemService.saveBatch(ticketItems);
|
||||||
|
outMaterialScanRecordRespository.saveAll(records);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue