Compare commits

...

4 Commits

Author SHA1 Message Date
zhangke 21fb7417f6 Merge branch 'develop' into dev_zhangke 2025-08-26 11:15:14 +08:00
曹鹏飞 722bd067fc Merge remote-tracking branch 'refs/remotes/惠信/dev_zhangke' into develop 2025-08-25 18:02:17 +08:00
曹鹏飞 69adc3fb18 Merge remote-tracking branch 'refs/remotes/惠信/dev_zhangke' into develop 2025-08-25 17:54:39 +08:00
曹鹏飞 f52f34eb66 添加功能 2025-08-25 17:47:54 +08:00
35 changed files with 439 additions and 176 deletions

View File

@ -180,7 +180,7 @@ public class InCostCenterBackController extends BaseController {
@Transactional @Transactional
@PostMapping("pda/submit") @PostMapping("pda/submit")
public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) { public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) {
WmsInCostcenterBack order = inCostcenterBackService.getById(request.getId()); WmsInCostcenterBack order = inCostcenterBackService.lambdaQuery().eq(WmsInCostcenterBack::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
WmsInCostcenterBackTicket ticket = new WmsInCostcenterBackTicket() WmsInCostcenterBackTicket ticket = new WmsInCostcenterBackTicket()
.setNo(NoUtil.getOutProduceTicketNo()) .setNo(NoUtil.getOutProduceTicketNo())

View File

@ -170,7 +170,7 @@ public class InProduceBackController extends BaseController {
@Transactional @Transactional
@PostMapping("pda/submit") @PostMapping("pda/submit")
public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) { public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) {
WmsInProduceBack order = inProduceBackService.getById(request.getId()); WmsInProduceBack order = inProduceBackService.lambdaQuery().eq(WmsInProduceBack::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
WmsInProduceBackTicket ticket = new WmsInProduceBackTicket() WmsInProduceBackTicket ticket = new WmsInProduceBackTicket()
.setNo(NoUtil.getOutProduceTicketNo()) .setNo(NoUtil.getOutProduceTicketNo())

View File

@ -147,9 +147,7 @@ public class InPurchaseController extends BaseController {
*/ */
@GetMapping("pda/getInfo") @GetMapping("pda/getInfo")
public ApiResult<OutProduce1VO> getInfo(@Valid @RequestParam @NotNull String no) { public ApiResult<OutProduce1VO> getInfo(@Valid @RequestParam @NotNull String no) {
WmsInPurchase order = inPurchaseService.lambdaQuery() WmsInPurchase order = inPurchaseService.lambdaQuery().eq(WmsInPurchase::getNo, no).one();
.eq(WmsInPurchase::getNo, no)
.one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("退库单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("退库单不存在");
List<WmsInPurchaseItem> datas = inPurchaseItemService.getList(order.getId()); List<WmsInPurchaseItem> datas = inPurchaseItemService.getList(order.getId());
return ApiResult.success(new OutProduce1VO() return ApiResult.success(new OutProduce1VO()
@ -174,7 +172,7 @@ public class InPurchaseController extends BaseController {
@Transactional @Transactional
@GetMapping("pda/submitForIn") @GetMapping("pda/submitForIn")
public ApiResult<Void> submitForIn(@Valid @RequestBody OutProduceSubmitQO request) { public ApiResult<Void> submitForIn(@Valid @RequestBody OutProduceSubmitQO request) {
WmsInPurchase order = inPurchaseService.getById(request.getId()); WmsInPurchase order = inPurchaseService.lambdaQuery().eq(WmsInPurchase::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("退库单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("退库单不存在");
List<WmsInPurchaseItem> datas = inPurchaseItemService.getList(order.getId()); List<WmsInPurchaseItem> datas = inPurchaseItemService.getList(order.getId());
List<InMaterialScanRecord> records = new ArrayList<>(); List<InMaterialScanRecord> records = new ArrayList<>();

View File

@ -101,6 +101,7 @@ public class InventoryController extends BaseController {
.setId(Objects.isNull(item) ? null : item.getId()) .setId(Objects.isNull(item) ? null : item.getId())
.setTaskId(id) .setTaskId(id)
.setFactoryNo(warehouseVO.getFactoryName()) .setFactoryNo(warehouseVO.getFactoryName())
.setWarehouseId(warehouseVO.getId())
.setWarehouseNo(warehouseVO.getNo()) .setWarehouseNo(warehouseVO.getNo())
.setWarehouseName(warehouseVO.getName()) .setWarehouseName(warehouseVO.getName())
.setChargeUserId(Objects.isNull(item) ? null : item.getChargeUserId()) .setChargeUserId(Objects.isNull(item) ? null : item.getChargeUserId())

View File

@ -184,7 +184,7 @@ public class OutAssistanceController extends BaseController {
@Transactional @Transactional
@PostMapping("pda/submit") @PostMapping("pda/submit")
public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) { public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) {
WmsOutAssistance order = outAssistanceService.getById(request.getId()); WmsOutAssistance order = outAssistanceService.lambdaQuery().eq(WmsOutAssistance::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
WmsOutAssistanceTicket ticket = new WmsOutAssistanceTicket() WmsOutAssistanceTicket ticket = new WmsOutAssistanceTicket()
.setId(IdUtil.getSnowflakeNextId()) .setId(IdUtil.getSnowflakeNextId())

View File

@ -180,7 +180,7 @@ public class OutCostCenterController extends BaseController {
@Transactional @Transactional
@PostMapping("pda/submit") @PostMapping("pda/submit")
public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) { public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) {
WmsOutCostcenter order = outCostcenterService.getById(request.getId()); WmsOutCostcenter order = outCostcenterService.lambdaQuery().eq(WmsOutCostcenter::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
WmsOutCostcenterTicket ticket = new WmsOutCostcenterTicket() WmsOutCostcenterTicket ticket = new WmsOutCostcenterTicket()
.setId(IdUtil.getSnowflakeNextId()) .setId(IdUtil.getSnowflakeNextId())

View File

@ -287,7 +287,7 @@ public class OutProduceController extends BaseController {
@Transactional @Transactional
@PostMapping("pda/submit") @PostMapping("pda/submit")
public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) { public ApiResult<Void> submit(@Valid @RequestBody OutProduceSubmitQO request) {
WmsOutProduce order = outProduceService.getById(request.getId()); WmsOutProduce order = outProduceService.lambdaQuery().eq(WmsOutProduce::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
WmsOutProduceTicket ticket = new WmsOutProduceTicket() WmsOutProduceTicket ticket = new WmsOutProduceTicket()
.setNo(NoUtil.getOutProduceTicketNo()) .setNo(NoUtil.getOutProduceTicketNo())

View File

@ -135,9 +135,6 @@ public class StructuralPackageOrderController extends BaseController {
@Resource @Resource
private IWmsBinService wmsBinService; private IWmsBinService wmsBinService;
@Resource
private IWmsSrmQualityInspectionService srmQualityInspectionService;
@Resource @Resource
private BinService binService; private BinService binService;
@ -226,6 +223,13 @@ public class StructuralPackageOrderController extends BaseController {
@Transactional @Transactional
@PostMapping("save") @PostMapping("save")
public ApiResult<Void> save(@Valid @RequestBody PackageDeliverOrderSaveQO request) { public ApiResult<Void> save(@Valid @RequestBody PackageDeliverOrderSaveQO request) {
VUtil.trueThrowBusinessError(request.getItems()
.stream()
.collect(Collectors.groupingBy(PackageDeliverOrderSaveItemQO::getKey1))
.values()
.stream()
.anyMatch(it -> it.size() > 1)
).throwMessage("同一个采购单号下的相同物料不能重复配置");
String orderNo; String orderNo;
List<Long> ids = request.getItems().stream().map(PackageDeliverOrderSaveItemQO::getId).filter(Objects::nonNull).toList(); List<Long> ids = request.getItems().stream().map(PackageDeliverOrderSaveItemQO::getId).filter(Objects::nonNull).toList();
if (CollectionUtil.isNotEmpty(ids)) { if (CollectionUtil.isNotEmpty(ids)) {

View File

@ -3,6 +3,7 @@ package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Pair;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -34,6 +35,7 @@ import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -152,23 +154,26 @@ public class TransferCompanyController extends BaseController {
} }
/** /**
* 获取出库PDA使用 * 获取转储PDA使用
*/ */
@GetMapping("pda/getInfoForOut") @GetMapping("pda/getInfoForOut")
public ApiResult<OutProduce1VO> getInfoForOut(@Valid @RequestParam @NotNull String no) { public ApiResult<TransferCompanyPdaVO> getInfoForOut(@Valid @RequestParam @NotNull String no) {
WmsTransferCompany order = transferCompanyService.lambdaQuery().eq(WmsTransferCompany::getNo, no).one(); WmsTransferCompany order = transferCompanyService.lambdaQuery().eq(WmsTransferCompany::getNo, no).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("转储单不存在");
List<WmsTransferCompanyItem> datas = transferCompanyItemService.getList(order.getId()); List<WmsTransferCompanyItem> datas = transferCompanyItemService.getList(order.getId());
return ApiResult.success(new OutProduce1VO() return ApiResult.success(new TransferCompanyPdaVO()
.setId(order.getId()) .setBukrs(order.getBukrs())
.setAufnr("") .setReswk(order.getReswk())
.setRsnum("") .setLgfsb1(order.getLgfsb1())
.setBukrs1(order.getBukrs1())
.setWerks(order.getWerks())
.setLgort(order.getLgort())
.setItems(datas.stream() .setItems(datas.stream()
.map(item -> new OutProduceItemVO() .map(item -> new TransferCompanyPdaItemVO()
.setLgort2(order.getLgort()) .setEbelp(item.getEbelp())
.setLgpbe(item.getLgpbe()) .setEbeln(order.getEbeln())
.setMaktx2(item.getMaktx())
.setMatnr(item.getMatnr()) .setMatnr(item.getMatnr())
.setMaktx(item.getMaktx())
.setNum(item.getLeft()) .setNum(item.getLeft())
).toList() ).toList()
) )
@ -181,8 +186,8 @@ public class TransferCompanyController extends BaseController {
@Transactional @Transactional
@PostMapping("pda/submitForOut") @PostMapping("pda/submitForOut")
public ApiResult<Void> submitForOut(@Valid @RequestBody OutProduceSubmitQO request) { public ApiResult<Void> submitForOut(@Valid @RequestBody OutProduceSubmitQO request) {
WmsTransferCompany order = transferCompanyService.getById(request.getId()); WmsTransferCompany order = transferCompanyService.lambdaQuery().eq(WmsTransferCompany::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("转储单不存在");
List<WmsTransferCompanyItem> datas = transferCompanyItemService.getList(order.getId()); List<WmsTransferCompanyItem> datas = transferCompanyItemService.getList(order.getId());
List<OutMaterialScanRecord> records = new ArrayList<>(); List<OutMaterialScanRecord> records = new ArrayList<>();
List<WmsTransferCompanyTicketItem> ticketItems = new ArrayList<>(); List<WmsTransferCompanyTicketItem> ticketItems = new ArrayList<>();
@ -196,14 +201,14 @@ public class TransferCompanyController extends BaseController {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode); MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
String materialNo = qrCodeContent.getMaterialNo(); String materialNo = qrCodeContent.getMaterialNo();
WmsTransferCompanyItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null); WmsTransferCompanyItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料"); VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
BigDecimal num = item.getLeft(); VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
VUtil.trueThrowBusinessError(num.compareTo(qrCodeContent.getNum()) < 0) .throwMessage("物料" + materialNo + "的出库数量超出申请限制");
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
records.add(new OutMaterialScanRecord() records.add(new OutMaterialScanRecord()
.setSource(5) .setSource(5)
.setSourceId(order.getId()) .setSourceId(order.getId())
.setSourceItemId(item.getId()) .setSourceItemId(item.getId())
.setTicketId(ticket.getId())
.setMaterialNo(materialNo) .setMaterialNo(materialNo)
.setUnit(item.getMeins()) .setUnit(item.getMeins())
.setContent(qrCode) .setContent(qrCode)
@ -231,7 +236,16 @@ public class TransferCompanyController extends BaseController {
return ti; return ti;
}); });
pti.setNum(pti.getNum().add(qrCodeContent.getNum())); pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
}); });
transferCompanyItemService.updateBatchById(datas);
transferCompanyService.lambdaUpdate()
.set(WmsTransferCompany::getUpdateBy, UserUtil.getUserName())
.set(WmsTransferCompany::getUpdateTime, LocalDateTime.now())
.eq(WmsTransferCompany::getId, order.getId())
.update();
transferCompanyTicketItemService.saveBatch(ticketItems);
outMaterialScanRecordRespository.saveAll(records);
ZWM00_MB116VO vo = sapService.zwm00_mb116(new ZWM00_MB116QO() ZWM00_MB116VO vo = sapService.zwm00_mb116(new ZWM00_MB116QO()
.setEbeln("") .setEbeln("")
.setUsnam(UserUtil.getUserName()) .setUsnam(UserUtil.getUserName())
@ -260,41 +274,33 @@ public class TransferCompanyController extends BaseController {
ticket.setDocYear(vo.getMjahr()); ticket.setDocYear(vo.getMjahr());
ticket.setMatDoc(vo.getMblnr()); ticket.setMatDoc(vo.getMblnr());
transferCompanyTicketService.save(ticket); transferCompanyTicketService.save(ticket);
transferCompanyItemService.updateBatchById(datas);
outMaterialScanRecordRespository.saveAll(records);
transferCompanyService.lambdaUpdate()
.set(WmsTransferCompany::getUpdateBy, UserUtil.getUserName())
.set(WmsTransferCompany::getUpdateTime, LocalDateTime.now())
.eq(WmsTransferCompany::getId, order.getId())
.update();
transferCompanyTicketItemService.saveBatch(ticketItems);
return ApiResult.success(); return ApiResult.success();
} }
/** /**
* 获取入库单PDA使用 * 查询出库单信息PDA使用
* @param no 出库单单号
*/ */
@GetMapping("pda/getInfoForIn") @GetMapping("pda/getInfoForIn")
public ApiResult<OutProduce1VO> getInfoForIn(@Valid @RequestParam @NotNull String no) { public ApiResult<TransferCompanyPdaVO> getInfoForIn(@Valid @RequestParam @NotNull String no) {
WmsTransferCompanyTicket ticket = transferCompanyTicketService.lambdaQuery() TransferCompanyTicketVO ticket = transferCompanyTicketService.getByNo(no);
.eq(WmsTransferCompanyTicket::getState, 0) VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("出库单不存在");
.eq(WmsTransferCompanyTicket::getNo, no) VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效");
.one(); List<TransferCompanyItemVO> datas = transferCompanyTicketItemService.getList(ticket.getId());
VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("入库单不存在"); return ApiResult.success(new TransferCompanyPdaVO()
WmsTransferCompany order = transferCompanyService.getById(ticket.getOrderId()); .setBukrs(ticket.getBukrs())
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("转储单不存在"); .setReswk(ticket.getReswk())
List<TransferCompanyItemVO> datas = transferCompanyTicketItemService.getList(order.getId()); .setLgfsb1(ticket.getLgfsb1())
return ApiResult.success(new OutProduce1VO() .setBukrs1(ticket.getBukrs1())
.setId(order.getId()) .setWerks(ticket.getWerks())
.setAufnr("") .setLgort(ticket.getLgort())
.setRsnum("")
.setItems(datas.stream() .setItems(datas.stream()
.map(item -> new OutProduceItemVO() .map(item -> new TransferCompanyPdaItemVO()
.setLgort2(order.getLgort()) .setEbelp(item.getEbelp())
.setLgpbe(item.getLgobe()) .setEbeln(ticket.getEbeln())
.setMaktx2(item.getMaktx())
.setMatnr(item.getMatnr()) .setMatnr(item.getMatnr())
.setNum(item.getSqsl()) .setMaktx(item.getMaktx())
.setNum(item.getLeft())
).toList() ).toList()
) )
); );
@ -305,16 +311,14 @@ public class TransferCompanyController extends BaseController {
*/ */
@Transactional @Transactional
@GetMapping("pda/submitForIn") @GetMapping("pda/submitForIn")
public ApiResult<Void> submitForIn(@Valid @RequestParam @NotNull Long id) { public ApiResult<Void> submitForIn(@Valid @RequestParam @NotBlank String no) {
WmsTransferCompanyTicket ticket = transferCompanyTicketService.getById(id); TransferCompanyTicketVO ticket = transferCompanyTicketService.getByNo(no);
VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("入库单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("出库单不存在");
WmsTransferCompany order = transferCompanyService.getById(ticket.getOrderId()); VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效");
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("转储单不存在"); List<OutMaterialScanRecord> records = outMaterialScanRecordRespository.findByTicketId(ticket.getId());
List<TransferCompanyItemVO> datas = transferCompanyTicketItemService.getList(ticket.getId()); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(records)).throwMessage("未找到出库扫码记录");
List<OutMaterialScanRecord> records = outMaterialScanRecordRespository.findBySourceId(ticket.getOrderId()); Pair<Pair<String, String>, Pair<String, String>> vos = sapService.zwm3a17(new ZWM3A17DTO()
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(datas)).throwMessage("未找到出库扫码记录"); .setEbeln(ticket.getEbeln())
sapService.zwm3a17(new ZWM3A17DTO()
.setEbeln("")
.setUsnam(UserUtil.getUserName()) .setUsnam(UserUtil.getUserName())
.setItem1(records.stream().collect(Collectors.groupingBy(OutMaterialScanRecord::getKey4)) .setItem1(records.stream().collect(Collectors.groupingBy(OutMaterialScanRecord::getKey4))
.values() .values()
@ -322,9 +326,9 @@ public class TransferCompanyController extends BaseController {
.map(ls -> new ZWM3A17Item1DTO() .map(ls -> new ZWM3A17Item1DTO()
.setMATNR(ls.get(0).getMaterialNo()) .setMATNR(ls.get(0).getMaterialNo())
.setCHARG(ls.get(0).getBatchNo()) .setCHARG(ls.get(0).getBatchNo())
.setLGORT(order.getLgort()) .setLGORT(ticket.getLgort())
.setERFMG(ls.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)) .setERFMG(ls.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
.setWERKS(order.getWerks()) .setWERKS(ticket.getWerks())
.setEBELP(ls.get(0).getEbelp()) .setEBELP(ls.get(0).getEbelp())
.setMEINS(ls.get(0).getUnit()) .setMEINS(ls.get(0).getUnit())
).toList() ).toList()
@ -340,8 +344,14 @@ public class TransferCompanyController extends BaseController {
.toList() .toList()
) )
); );
ticket.setState(1); transferCompanyTicketService.lambdaUpdate()
transferCompanyTicketService.save(ticket); .set(WmsTransferCompanyTicket::getMatDoc, vos.getKey().getKey())
.set(WmsTransferCompanyTicket::getDocYear, vos.getKey().getValue())
.set(WmsTransferCompanyTicket::getUpdateBy, UserUtil.getUserName())
.set(WmsTransferCompanyTicket::getUpdateTime, LocalDateTime.now())
.set(WmsTransferCompanyTicket::getState, 1)
.eq(WmsTransferCompanyTicket::getId, ticket.getId())
.update();
return ApiResult.success(); return ApiResult.success();
} }

View File

@ -32,6 +32,7 @@ import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -73,6 +74,9 @@ public class TransferFactoryController extends BaseController {
@Resource @Resource
private IWmsTransferFactoryTicketItemService transferFactoryTicketItemService; private IWmsTransferFactoryTicketItemService transferFactoryTicketItemService;
@Resource
private IWmsStorageService storageService;
/** /**
* 查询SAP领料订单数据 * 查询SAP领料订单数据
*/ */
@ -109,6 +113,7 @@ public class TransferFactoryController extends BaseController {
.throwMessage("物料" + item.getMatnr() + "的申请数量超出库存限制"); .throwMessage("物料" + item.getMatnr() + "的申请数量超出库存限制");
WmsTransferFactoryItem data = Convert.convert(WmsTransferFactoryItem.class, item); WmsTransferFactoryItem data = Convert.convert(WmsTransferFactoryItem.class, item);
data.setOrderId(order.getId()); data.setOrderId(order.getId());
data.setLeft(data.getNum());
transferFactoryItemService.save(data); transferFactoryItemService.save(data);
}); });
}); });
@ -137,6 +142,17 @@ public class TransferFactoryController extends BaseController {
return ApiResult.success(); return ApiResult.success();
} }
/**
* 删除
*/
@PostMapping("delete")
public ApiResult<Void> delete(@Valid @RequestParam @NotNull Long id) {
VUtil.trueThrowBusinessError(transferFactoryTicketService.lambdaQuery().eq(WmsTransferFactoryTicket::getOrderId, id).exists())
.throwMessage("已生成出库单,禁止删除!");
transferFactoryService.removeById(id);
return ApiResult.success();
}
/** /**
* 获取订单详情 * 获取订单详情
*/ */
@ -150,24 +166,26 @@ public class TransferFactoryController extends BaseController {
} }
/** /**
* 获取出库PDA使用 * 获取调拨PDA使用
*/ */
@GetMapping("pda/getInfoForOut") @GetMapping("pda/getInfoForOut")
public ApiResult<OutProduce1VO> getInfoForOut(@Valid @RequestParam @NotNull String no) { public ApiResult<TransferFactoryPdaVO> getInfoForOut(@Valid @RequestParam @NotNull String no) {
WmsTransferFactory order = transferFactoryService.lambdaQuery().eq(WmsTransferFactory::getState, 0).eq(WmsTransferFactory::getNo, no).one(); WmsTransferFactory order = transferFactoryService.lambdaQuery().eq(WmsTransferFactory::getNo, no).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在或已出库"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("调拨单不存在");
List<WmsTransferFactoryItem> datas = transferFactoryItemService.getList(order.getId()); List<WmsTransferFactoryItem> datas = transferFactoryItemService.getList(order.getId());
return ApiResult.success(new OutProduce1VO() return ApiResult.success(new TransferFactoryPdaVO()
.setId(order.getId())
.setAufnr(order.getMblnr())
.setRsnum(order.getRsnum()) .setRsnum(order.getRsnum())
.setMblnr(order.getMblnr())
.setBwart(order.getBwart())
.setItems(datas.stream() .setItems(datas.stream()
.map(item -> new OutProduceItemVO() .map(item -> new TransferFactoryPdaItemVO()
.setLgort2(order.getLgort())
.setLgpbe(item.getLgpbe())
.setMaktx2(item.getMaktx())
.setMatnr(item.getMatnr()) .setMatnr(item.getMatnr())
.setNum(item.getNum()) .setMaktx(item.getMaktx())
.setUmlgo(order.getUmlgo())
.setLgort(order.getLgort())
.setNum(item.getLeft())
.setBinIn(storageService.getBinNos(item.getMatnr(), order.getWerks(), order.getUmlgo()))
.setBinOut(storageService.getBinNos(item.getMatnr(), order.getWerks(), order.getLgort()))
).toList() ).toList()
) )
); );
@ -179,22 +197,43 @@ public class TransferFactoryController extends BaseController {
@Transactional @Transactional
@PostMapping("pda/submitForOut") @PostMapping("pda/submitForOut")
public ApiResult<Void> submitForOut(@Valid @RequestBody OutProduceSubmitQO request) { public ApiResult<Void> submitForOut(@Valid @RequestBody OutProduceSubmitQO request) {
WmsTransferFactory order = transferFactoryService.getById(request.getId()); WmsTransferFactory order = transferFactoryService.lambdaQuery().eq(WmsTransferFactory::getNo, request.getNo()).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("调拨单不存在");
List<WmsTransferFactoryItem> datas = transferFactoryItemService.getList(order.getId()); List<WmsTransferFactoryItem> datas = transferFactoryItemService.getList(order.getId());
List<OutMaterialScanRecord> records = new ArrayList<>(); List<OutMaterialScanRecord> records = new ArrayList<>();
WmsTransferFactoryTicket ticket = new WmsTransferFactoryTicket()
.setId(IdUtil.getSnowflakeNextId())
.setNo(NoUtil.getTransferFactoryTicketNo())
.setOrderId(order.getId())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(LocalDateTime.now());
transferFactoryTicketService.save(ticket);
List<WmsTransferFactoryTicketItem> ticketItems = new ArrayList<>();
request.getQrCodes().forEach(qrCode -> { request.getQrCodes().forEach(qrCode -> {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode); MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode);
String materialNo = qrCodeContent.getMaterialNo(); String materialNo = qrCodeContent.getMaterialNo();
WmsTransferFactoryItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null); WmsTransferFactoryItem item = datas.stream().filter(d -> StrUtil.equals(d.getMatnr(), materialNo)).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料"); VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
BigDecimal num = item.getNum(); WmsTransferFactoryTicketItem pti = ticketItems.stream()
VUtil.trueThrowBusinessError(num.compareTo(qrCodeContent.getNum()) < 0) .filter(ti -> Objects.equals(ti.getOrderItemId(), item.getId()))
.throwMessage("物料" + materialNo + "的领取数量超出申请限制"); .findFirst()
.orElseGet(() -> {
WmsTransferFactoryTicketItem ti = new WmsTransferFactoryTicketItem()
.setTicketId(ticket.getId())
.setOrderItemId(item.getId())
.setNum(BigDecimal.ZERO);
ticketItems.add(ti);
return ti;
});
pti.setNum(pti.getNum().add(qrCodeContent.getNum()));
item.setLeft(item.getLeft().subtract(qrCodeContent.getNum()));
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
.throwMessage("物料" + materialNo + "的出库数量超出申请限制");
records.add(new OutMaterialScanRecord() records.add(new OutMaterialScanRecord()
.setSource(4) .setSource(4)
.setSourceId(order.getId()) .setSourceId(order.getId())
.setSourceItemId(item.getId()) .setSourceItemId(item.getId())
.setTicketId(ticket.getId())
.setMaterialNo(materialNo) .setMaterialNo(materialNo)
.setUnit(item.getMeins()) .setUnit(item.getMeins())
.setContent(qrCode) .setContent(qrCode)
@ -208,20 +247,10 @@ public class TransferFactoryController extends BaseController {
.setCreateTime(Instant.now()) .setCreateTime(Instant.now())
); );
}); });
List<String> materialNos = datas.stream() transferFactoryTicketItemService.saveBatch(ticketItems);
.filter(it -> it.getNum().compareTo(records
.stream()
.filter(record -> StrUtil.equals(record.getMaterialNo(), it.getMatnr()))
.map(OutMaterialScanRecord::getNum)
.reduce(BigDecimal.ZERO, BigDecimal::add)) != 0
)
.map(WmsTransferFactoryItem::getMatnr)
.toList();
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(materialNos)).throwMessage("以下物料的数量与调拨数量不一致:" + StrUtil.join(",", materialNos));
transferFactoryItemService.updateBatchById(datas); transferFactoryItemService.updateBatchById(datas);
outMaterialScanRecordRespository.saveAll(records); outMaterialScanRecordRespository.saveAll(records);
transferFactoryService.lambdaUpdate() transferFactoryService.lambdaUpdate()
.set(WmsTransferFactory::getState, 1)
.set(WmsTransferFactory::getUpdateBy, UserUtil.getUserName()) .set(WmsTransferFactory::getUpdateBy, UserUtil.getUserName())
.set(WmsTransferFactory::getUpdateTime, LocalDateTime.now()) .set(WmsTransferFactory::getUpdateTime, LocalDateTime.now())
.eq(WmsTransferFactory::getId, order.getId()) .eq(WmsTransferFactory::getId, order.getId())
@ -230,61 +259,41 @@ public class TransferFactoryController extends BaseController {
} }
/** /**
* 获取入库单PDA使用 * 查询出库单信息PDA使用
* @param no 出库单单号
*/ */
@GetMapping("pda/getInfoForIn") @GetMapping("pda/getInfoForIn")
public ApiResult<OutProduce1VO> getInfoForIn(@Valid @RequestParam @NotNull String no) { public ApiResult<TransferFactoryPdaVO> getInfoForIn(@Valid @RequestParam @NotBlank String no) {
WmsTransferFactory order = transferFactoryService.lambdaQuery().eq(WmsTransferFactory::getState, 1).eq(WmsTransferFactory::getNo, no).one(); TransferFactoryTicketInfoVO ticket = transferFactoryTicketService.getByNo(no);
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在或已入库"); VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("出库单不存在");
List<WmsTransferFactoryItem> datas = transferFactoryItemService.getList(order.getId()); VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效");
return ApiResult.success(new OutProduce1VO() List<TransferFactoryItemVO> itemVOS = transferFactoryTicketItemService.getList(ticket.getId());
.setId(order.getId()) return ApiResult.success(new TransferFactoryPdaVO()
.setAufnr(order.getMblnr()) .setBwart(ticket.getBwart())
.setRsnum(order.getRsnum()) .setRsnum(ticket.getRsnum())
.setItems(datas.stream() .setMblnr(ticket.getMblnr())
.map(item -> new OutProduceItemVO() .setItems(itemVOS.stream().map(it -> new TransferFactoryPdaItemVO()
.setLgort2(order.getLgort()) .setMatnr(it.getMatnr())
.setLgpbe(item.getLgpbe()) .setMaktx(it.getMaktx())
.setMaktx2(item.getMaktx()) .setLgort(ticket.getLgort())
.setMatnr(item.getMatnr()) .setUmlgo(ticket.getUmlgo())
.setNum(item.getNum()) .setNum(it.getNum())
).toList() .setBinIn(storageService.getBinNos(it.getMatnr(), ticket.getWerks(), ticket.getUmlgo()))
) .setBinOut(storageService.getBinNos(it.getMatnr(), ticket.getWerks(), ticket.getLgort()))).toList())
); );
} }
/** /**
* 入库PDA使用 * 入库PDA使用
* @param no 出库单单号
*/ */
@Transactional @Transactional
@PostMapping("pda/submitForIn") @PostMapping("pda/submitForIn")
public ApiResult<Void> submitForIn(@Valid @RequestParam @NotNull Long id) { public ApiResult<Void> submitForIn(@Valid @RequestParam @NotBlank String no) {
WmsTransferFactory order = transferFactoryService.getById(id); TransferFactoryTicketInfoVO ticket = transferFactoryTicketService.getByNo(no);
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("出库单不存在");
List<OutMaterialScanRecord> records = outMaterialScanRecordRespository.findBySourceId(id); VUtil.trueThrowBusinessError(!Objects.equals(ticket.getState(), 0)).throwMessage("出库单无效");
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(records)).throwMessage("未找到出库扫码记录"); List<OutMaterialScanRecord> records = outMaterialScanRecordRespository.findByTicketId(ticket.getId());
WmsTransferFactoryTicket ticket = new WmsTransferFactoryTicket()
.setId(IdUtil.getSnowflakeNextId())
.setNo(NoUtil.getTransferFactoryTicketNo())
.setOrderId(order.getId())
.setCreateBy(UserUtil.getUserName())
.setCreateTime(LocalDateTime.now());
List<WmsTransferFactoryTicketItem> ticketItems = new ArrayList<>();
records.forEach(record -> {
WmsTransferFactoryTicketItem pti = ticketItems.stream()
.filter(ti -> Objects.equals(ti.getOrderItemId(), record.getSourceItemId()))
.findFirst()
.orElseGet(() -> {
WmsTransferFactoryTicketItem ti = new WmsTransferFactoryTicketItem()
.setTicketId(ticket.getId())
.setOrderItemId(record.getSourceItemId())
.setNum(BigDecimal.ZERO);
ticketItems.add(ti);
return ti;
});
pti.setNum(pti.getNum().add(record.getNum()));
});
transferFactoryTicketItemService.saveBatch(ticketItems);
inventoryService.out(records.stream() inventoryService.out(records.stream()
.collect(Collectors.groupingBy(OutMaterialScanRecord::getKey)) .collect(Collectors.groupingBy(OutMaterialScanRecord::getKey))
.values() .values()
@ -292,8 +301,8 @@ public class TransferFactoryController extends BaseController {
.map(list -> new InventoryDTO() .map(list -> new InventoryDTO()
.setMaterialNo(list.get(0).getMaterialNo()) .setMaterialNo(list.get(0).getMaterialNo())
.setBatchNumber(list.get(0).getBatchNo()) .setBatchNumber(list.get(0).getBatchNo())
.setFactoryNo(order.getWerks()) .setFactoryNo(ticket.getWerks())
.setWarehouseNo(order.getLgort()) .setWarehouseNo(ticket.getLgort())
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)) .setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
).toList() ).toList()
); );
@ -304,22 +313,22 @@ public class TransferFactoryController extends BaseController {
.map(list -> new InventoryDTO() .map(list -> new InventoryDTO()
.setMaterialNo(list.get(0).getMaterialNo()) .setMaterialNo(list.get(0).getMaterialNo())
.setBatchNumber(list.get(0).getBatchNo()) .setBatchNumber(list.get(0).getBatchNo())
.setFactoryNo(order.getWerks()) .setFactoryNo(ticket.getWerks())
.setWarehouseNo(order.getUmlgo()) .setWarehouseNo(ticket.getUmlgo())
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)) .setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
).toList() ).toList()
); );
ZWM00MB113DTO vo = sapService.zwm00_mb113(new ZWM00MB113QO() ZWM00MB113DTO vo = sapService.zwm00_mb113(new ZWM00MB113QO()
.setIRsnum(order.getRsnum()) .setIRsnum(ticket.getRsnum())
.setIUmlgo(order.getUmlgo()) .setIUmlgo(ticket.getUmlgo())
.setT_list1(records.stream().collect(Collectors.groupingBy(OutMaterialScanRecord::getKey)) .setT_list1(records.stream().collect(Collectors.groupingBy(OutMaterialScanRecord::getKey))
.values().stream().map(its -> new ZWM00MB113LIST1QO() .values().stream().map(its -> new ZWM00MB113LIST1QO()
.setRspos(order.getRsnum()) .setRspos(ticket.getRsnum())
.setMatnr(its.get(0).getMaterialNo()) .setMatnr(its.get(0).getMaterialNo())
.setErfmg(its.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)) .setErfmg(its.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
.setMeins(its.get(0).getUnit()) .setMeins(its.get(0).getUnit())
.setWerks(order.getWerks()) .setWerks(ticket.getWerks())
.setLgort(order.getLgort())).toList() .setLgort(ticket.getLgort())).toList()
) )
.setT_list2(records.stream() .setT_list2(records.stream()
.filter(record -> StrUtil.isNotBlank(record.getKey1())) .filter(record -> StrUtil.isNotBlank(record.getKey1()))
@ -327,20 +336,19 @@ public class TransferFactoryController extends BaseController {
.values() .values()
.stream() .stream()
.map(ls -> new ZWM00MB113LIST2QO() .map(ls -> new ZWM00MB113LIST2QO()
.setRspos(order.getRsnum()) .setRspos(ticket.getRsnum())
.setSernr(ls.get(0).getSerialNo()) .setSernr(ls.get(0).getSerialNo())
.setFlag("X") .setFlag("X")
) )
.toList()) .toList())
); );
ticket.setMatDoc(vo.getEMblnr()); transferFactoryTicketService.lambdaUpdate()
ticket.setDocYear(vo.getEMjahr()); .set(WmsTransferFactoryTicket::getMatDoc, vo.getEMblnr())
transferFactoryTicketService.save(ticket); .set(WmsTransferFactoryTicket::getDocYear, vo.getEMjahr())
transferFactoryService.lambdaUpdate() .set(WmsTransferFactoryTicket::getUpdateBy, UserUtil.getUserName())
.set(WmsTransferFactory::getState, 2) .set(WmsTransferFactoryTicket::getUpdateTime, LocalDateTime.now())
.set(WmsTransferFactory::getSapStatus, true) .set(WmsTransferFactoryTicket::getState, 1)
.set(WmsTransferFactory::getSapError, "") .eq(WmsTransferFactoryTicket::getId, ticket.getId())
.eq(WmsTransferFactory::getId, order.getId())
.update(); .update();
return ApiResult.success(); return ApiResult.success();
} }

View File

@ -77,6 +77,11 @@ public class OutMaterialScanRecord {
*/ */
private Long sourceItemId; private Long sourceItemId;
/**
* 凭证ID
*/
private Long ticketId;
/** /**
* 采购凭证号 * 采购凭证号
*/ */

View File

@ -9,5 +9,5 @@ import java.util.List;
@Repository @Repository
public interface OutMaterialScanRecordRespository extends MongoRepository<OutMaterialScanRecord, String> { public interface OutMaterialScanRecordRespository extends MongoRepository<OutMaterialScanRecord, String> {
List<OutMaterialScanRecord> findBySourceId(Long sourceId); List<OutMaterialScanRecord> findByTicketId(Long ticketId);
} }

View File

@ -135,6 +135,6 @@ public class TransferOrderDTO {
private String key; private String key;
public String getKey() { public String getKey() {
return werks + "|" + rsnum + "|" + bwart + "|" + mblnr + "|" + lgort + "|" + umlgo; return werks + "|" + rsnum + "|" + bwart + "|" + mblnr + "|" + lgort + "|" + umlgo + "|" + bdter;
} }
} }

View File

@ -1,6 +1,5 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
@Data @Data
@ -9,12 +8,10 @@ public class BomSearchQO extends PageQO{
/** /**
* SAP料号 * SAP料号
*/ */
@NotBlank
private String no; private String no;
/** /**
* 物料描述 * 物料描述
*/ */
@NotBlank
private String describe; private String describe;
} }

View File

@ -1,7 +1,7 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -9,8 +9,8 @@ import java.util.List;
@Data @Data
public class OutProduceSubmitQO { public class OutProduceSubmitQO {
@NotNull @NotBlank
private Long id; private String no;
/** /**
* 二维码列表 * 二维码列表

View File

@ -1,5 +1,6 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@ -72,4 +73,11 @@ public class PackageDeliverOrderSaveItemQO {
*/ */
@NotBlank @NotBlank
private String unit; private String unit;
@JsonIgnore
private String key1;
public String getKey1() {
return externalOrderNo + "|" + packageId;
}
} }

View File

@ -44,6 +44,11 @@ public class InventoryCheckTaskItemVO {
*/ */
private String factoryNo; private String factoryNo;
/**
* 仓库id
*/
private Long warehouseId;
/** /**
* 仓库编号 * 仓库编号
*/ */

View File

@ -0,0 +1,36 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class TransferCompanyPdaItemVO {
/**
* 采购凭证号
*/
private String ebeln;
/**
* 采购凭证的项目编号
*/
private String ebelp;
/**
* 物料号
*/
private String matnr;
/**
* 物料描述
*/
private String maktx;
/**
* 数量
*/
private BigDecimal num;
}

View File

@ -0,0 +1,43 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
public class TransferCompanyPdaVO {
/**
* 转入工厂
*/
private String werks;
/**
* 转入公司
*/
private String bukrs;
/**
* 转出工厂
*/
private String reswk;
/**
* 转出公司
*/
private String bukrs1;
/**
* 转出库位
*/
private String lgfsb1;
/**
* 转入库位
*/
private String lgort;
private List<TransferCompanyPdaItemVO> items;
}

View File

@ -75,5 +75,10 @@ public class TransferCompanyTicketVO {
*/ */
private String docYear; private String docYear;
/**
* 状态0已出库1已入库
*/
private Integer state;
private List<TransferCompanyItemVO> items; private List<TransferCompanyItemVO> items;
} }

View File

@ -0,0 +1,47 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Set;
@Data
@Accessors(chain = true)
public class TransferFactoryPdaItemVO {
/**
* 物料号
*/
private String matnr;
/**
* 物料描述
*/
private String maktx;
/**
* 调出库位
*/
private String lgort;
/**
* 调入库位
*/
private String umlgo;
/**
* 调出储位
*/
private Set<String> binOut;
/**
* 调入储位
*/
private Set<String> binIn;
/**
* 数量
*/
private BigDecimal num;
}

View File

@ -0,0 +1,28 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
public class TransferFactoryPdaVO {
/**
* 预留/相关需求的编号
*/
private String rsnum;
/**
* 物料凭证编号
*/
private String mblnr;
/**
* 移动类型库存管理
*/
private String bwart;
private List<TransferFactoryPdaItemVO> items;
}

View File

@ -100,5 +100,10 @@ public class TransferFactoryTicketInfoVO {
*/ */
private String docYear; private String docYear;
/**
* 状态0已出库1已入库
*/
private Integer state;
private List<TransferFactoryItemVO> items; private List<TransferFactoryItemVO> items;
} }

View File

@ -64,4 +64,14 @@ public class WmsTransferCompanyTicket implements Serializable {
* 状态0已出库1已入库 * 状态0已出库1已入库
*/ */
private Integer state; private Integer state;
/**
* 入库人
*/
private String updateBy;
/**
* 入库时间
*/
private LocalDateTime updateTime;
} }

View File

@ -105,8 +105,8 @@ public class WmsTransferFactory implements Serializable {
*/ */
private String rsnum; private String rsnum;
/** // /**
* 状态0待出库1已出库2已入库 // * 状态0待出库1已出库2已入库
*/ // */
private Integer state; // private Integer state;
} }

View File

@ -119,4 +119,9 @@ public class WmsTransferFactoryItem implements Serializable {
* 调库数量 * 调库数量
*/ */
private BigDecimal num; private BigDecimal num;
/**
* 剩余数量
*/
private BigDecimal left;
} }

View File

@ -59,4 +59,19 @@ public class WmsTransferFactoryTicket implements Serializable {
* 物料凭证年度 * 物料凭证年度
*/ */
private String docYear; private String docYear;
/**
* 状态0已出库1已入库
*/
private Integer state;
/**
* 入库人
*/
private String updateBy;
/**
* 入库时间
*/
private LocalDateTime updateTime;
} }

View File

@ -19,4 +19,6 @@ public interface WmsTransferCompanyTicketMapper extends BaseMapper<WmsTransferCo
IPage<TransferCompanyTicketVO> search(TransferCompanySearchQO request, Page<?> objectPage); IPage<TransferCompanyTicketVO> search(TransferCompanySearchQO request, Page<?> objectPage);
TransferCompanyTicketVO getInfo(Long id); TransferCompanyTicketVO getInfo(Long id);
TransferCompanyTicketVO getByNo(String no);
} }

View File

@ -20,4 +20,6 @@ public interface WmsTransferFactoryTicketMapper extends BaseMapper<WmsTransferFa
IPage<TransferFactoryTicketVO> search(TransferFactorySearchQO request, Page<Object> objectPage); IPage<TransferFactoryTicketVO> search(TransferFactorySearchQO request, Page<Object> objectPage);
TransferFactoryTicketInfoVO getInfo(Long id); TransferFactoryTicketInfoVO getInfo(Long id);
TransferFactoryTicketInfoVO getByNo(String no);
} }

View File

@ -20,4 +20,6 @@ public interface IWmsTransferCompanyTicketService extends IService<WmsTransferCo
IPage<TransferCompanyTicketVO> search(@Valid TransferCompanySearchQO request); IPage<TransferCompanyTicketVO> search(@Valid TransferCompanySearchQO request);
TransferCompanyTicketVO getInfo(@Valid @NotNull Long id); TransferCompanyTicketVO getInfo(@Valid @NotNull Long id);
TransferCompanyTicketVO getByNo(String no);
} }

View File

@ -7,6 +7,7 @@ import com.nflg.wms.common.pojo.vo.TransferFactoryTicketInfoVO;
import com.nflg.wms.common.pojo.vo.TransferFactoryTicketVO; import com.nflg.wms.common.pojo.vo.TransferFactoryTicketVO;
import com.nflg.wms.repository.entity.WmsTransferFactoryTicket; import com.nflg.wms.repository.entity.WmsTransferFactoryTicket;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
/** /**
@ -21,4 +22,6 @@ public interface IWmsTransferFactoryTicketService extends IService<WmsTransferFa
IPage<TransferFactoryTicketVO> search(@Valid TransferFactorySearchQO request); IPage<TransferFactoryTicketVO> search(@Valid TransferFactorySearchQO request);
TransferFactoryTicketInfoVO getInfo(@Valid @NotNull Long id); TransferFactoryTicketInfoVO getInfo(@Valid @NotNull Long id);
TransferFactoryTicketInfoVO getByNo(@Valid @NotBlank String no);
} }

View File

@ -29,4 +29,9 @@ public class WmsTransferCompanyTicketServiceImpl extends ServiceImpl<WmsTransfer
public TransferCompanyTicketVO getInfo(Long id) { public TransferCompanyTicketVO getInfo(Long id) {
return baseMapper.getInfo(id); return baseMapper.getInfo(id);
} }
@Override
public TransferCompanyTicketVO getByNo(String no) {
return baseMapper.getByNo(no);
}
} }

View File

@ -30,4 +30,9 @@ public class WmsTransferFactoryTicketServiceImpl extends ServiceImpl<WmsTransfer
public TransferFactoryTicketInfoVO getInfo(Long id) { public TransferFactoryTicketInfoVO getInfo(Long id) {
return baseMapper.getInfo(id); return baseMapper.getInfo(id);
} }
@Override
public TransferFactoryTicketInfoVO getByNo(String no) {
return baseMapper.getByNo(no);
}
} }

View File

@ -38,9 +38,16 @@
</select> </select>
<select id="getInfo" resultType="com.nflg.wms.common.pojo.vo.TransferCompanyTicketVO"> <select id="getInfo" resultType="com.nflg.wms.common.pojo.vo.TransferCompanyTicketVO">
select tct.id,tct.no as "ticket_no",tct.create_by,tct.create_time,tct.mat_doc,tct.doc_year,tct.* select tct.id,tct.no as "ticket_no",tct.create_by,tct.create_time,tct.mat_doc,tct.doc_year,tct.state,tct.*
from wms_transfer_company tc from wms_transfer_company tc
inner join wms_transfer_company_ticket tct on tc.id = tct.order_id inner join wms_transfer_company_ticket tct on tc.id = tct.order_id
where tct.id=#{id} where tct.id=#{id}
</select> </select>
<select id="getByNo" resultType="com.nflg.wms.common.pojo.vo.TransferCompanyTicketVO">
select tct.id,tct.no as "ticket_no",tct.create_by,tct.create_time,tct.mat_doc,tct.doc_year,tct.state,tct.*
from wms_transfer_company tc
inner join wms_transfer_company_ticket tct on tc.id = tct.order_id
where tct."no"=#{no}
</select>
</mapper> </mapper>

View File

@ -32,9 +32,16 @@
</select> </select>
<select id="getInfo" resultType="com.nflg.wms.common.pojo.vo.TransferFactoryTicketInfoVO"> <select id="getInfo" resultType="com.nflg.wms.common.pojo.vo.TransferFactoryTicketInfoVO">
SELECT tft."id",tft."no" AS "ticket_no",tft.create_by,tft.create_time,tft.doc_year,tft.mat_doc,tf.* SELECT tft."id",tft."no" AS "ticket_no",tft.create_by,tft.create_time,tft.doc_year,tft.mat_doc,tft.state,tf.*
FROM wms_transfer_factory_ticket tft FROM wms_transfer_factory_ticket tft
INNER JOIN wms_transfer_factory tf ON tft.order_id=tf."id" INNER JOIN wms_transfer_factory tf ON tft.order_id=tf."id"
WHERE tft."id"=#{id} WHERE tft."id"=#{id}
</select> </select>
<select id="getByNo" resultType="com.nflg.wms.common.pojo.vo.TransferFactoryTicketInfoVO">
SELECT tft."id",tft."no" AS "ticket_no",tft.create_by,tft.create_time,tft.doc_year,tft.mat_doc,tft.state,tf.*
FROM wms_transfer_factory_ticket tft
INNER JOIN wms_transfer_factory tf ON tft.order_id=tf."id"
WHERE tft."no"=#{no}
</select>
</mapper> </mapper>