Compare commits
No commits in common. "5548591b84d6d20e6bf26e92c2e5af8563137135" and "534451400f5202f80022bb0a14f0b01efa0e9d34" have entirely different histories.
5548591b84
...
534451400f
|
|
@ -1,6 +1,17 @@
|
||||||
|
HELP.md
|
||||||
target/
|
target/
|
||||||
logs/
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
*.log
|
!**/src/main/**/target/
|
||||||
|
!**/src/test/**/target/
|
||||||
|
|
||||||
|
### STS ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
|
||||||
### IntelliJ IDEA ###
|
### IntelliJ IDEA ###
|
||||||
.idea
|
.idea
|
||||||
|
|
@ -8,5 +19,17 @@ logs/
|
||||||
*.iml
|
*.iml
|
||||||
*.ipr
|
*.ipr
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
build/
|
||||||
|
!**/src/main/**/build/
|
||||||
|
!**/src/test/**/build/
|
||||||
|
|
||||||
### VS Code ###
|
### VS Code ###
|
||||||
.vscode/
|
.vscode/
|
||||||
|
/dev_jco_rfc.log
|
||||||
|
logs
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,7 @@ 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.dto.*;
|
import com.nflg.wms.common.pojo.dto.*;
|
||||||
import com.nflg.wms.common.pojo.qo.*;
|
import com.nflg.wms.common.pojo.qo.*;
|
||||||
import com.nflg.wms.common.pojo.vo.ComponentOutboundEditVO;
|
import com.nflg.wms.common.pojo.vo.*;
|
||||||
import com.nflg.wms.common.pojo.vo.ComponentOutboundItemVO;
|
|
||||||
import com.nflg.wms.common.pojo.vo.ComponentOutboundVO;
|
|
||||||
import com.nflg.wms.common.pojo.vo.ScanCodeVO;
|
|
||||||
import com.nflg.wms.common.util.PageUtil;
|
import com.nflg.wms.common.util.PageUtil;
|
||||||
import com.nflg.wms.common.util.UserUtil;
|
import com.nflg.wms.common.util.UserUtil;
|
||||||
import com.nflg.wms.common.util.VUtil;
|
import com.nflg.wms.common.util.VUtil;
|
||||||
|
|
@ -27,6 +24,7 @@ import com.nflg.wms.repository.service.IWmsComponentOutboundItemService;
|
||||||
import com.nflg.wms.repository.service.IWmsComponentOutboundService;
|
import com.nflg.wms.repository.service.IWmsComponentOutboundService;
|
||||||
import com.nflg.wms.repository.service.IWmsComponentPackingItemService;
|
import com.nflg.wms.repository.service.IWmsComponentPackingItemService;
|
||||||
import com.nflg.wms.repository.service.IWmsComponentPackingService;
|
import com.nflg.wms.repository.service.IWmsComponentPackingService;
|
||||||
|
import com.nflg.wms.starter.annotation.ApiMark;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
@ -34,10 +32,9 @@ import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.Objects;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 零部件出库单
|
* 零部件出库单
|
||||||
|
|
@ -116,39 +113,6 @@ public class ComponentOutboundController {
|
||||||
return ApiResult.success(vos);
|
return ApiResult.success(vos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 出库单冲销
|
|
||||||
*
|
|
||||||
* @param request 确认出库单的参数对象
|
|
||||||
*/
|
|
||||||
@PostMapping("reverse")
|
|
||||||
public ApiResult<Void> reverse(@Valid @RequestBody PackingOutBoundReverseQO request) {
|
|
||||||
// 通过出库单ID获取到出库单
|
|
||||||
WmsComponentOutbound outbound = wmsComponentOutboundService.getById(request.getId());
|
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(outbound)).throwMessage("出库单不存在");
|
|
||||||
VUtil.trueThrowBusinessError(outbound.getIsReverse()).throwMessage("此出库单已经被冲销,不可以二次冲销");
|
|
||||||
List<WmsComponentOutboundItem> outboundItems = wmsComponentOutboundItemService.lambdaQuery()
|
|
||||||
.eq(WmsComponentOutboundItem::getOutboundId, request.getId())
|
|
||||||
.list();
|
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(outboundItems)).throwMessage("无有效的出库单明细项");
|
|
||||||
|
|
||||||
// 组装库存信息
|
|
||||||
List<InventoryDTO> inventoryDTOS = new ArrayList<>();
|
|
||||||
for (WmsComponentOutboundItem item : outboundItems) {
|
|
||||||
List<WmsComponentOutboundScanCodes> codes = wmsComponentOutboundScanCodesService.findByOutboundItemId(item.getId());
|
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(codes)).throwMessage("无有效的扫码记录");
|
|
||||||
for (WmsComponentOutboundScanCodes code : codes) {
|
|
||||||
setInventoryDTO(inventoryDTOS, item.getIdnrk(), outbound.getFactoryNo(), item.getLgort(), code.getBatchNumber(), code.getCodeNum());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 组装SAP的信息
|
|
||||||
ZWM3A20DTO zwm3a20DTO = new ZWM3A20DTO()
|
|
||||||
.setIType("B")
|
|
||||||
.setIvDelivery(outbound.getVbelv());
|
|
||||||
componentOutboundControllerService.reverse(outbound.getId(), outbound.getPackingId(), inventoryDTOS, zwm3a20DTO);
|
|
||||||
return ApiResult.success();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 确认出库单
|
* 确认出库单
|
||||||
*
|
*
|
||||||
|
|
@ -162,35 +126,16 @@ public class ComponentOutboundController {
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(packing)).throwMessage("此装箱单不存在");
|
VUtil.trueThrowBusinessError(Objects.isNull(packing)).throwMessage("此装箱单不存在");
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request.getItems())).throwMessage("无发货详情信息");
|
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request.getItems())).throwMessage("无发货详情信息");
|
||||||
|
|
||||||
|
List<Long> packingItemId = request.getItems()
|
||||||
|
.stream()
|
||||||
|
.map(ComponentOutboundItemInputQO::getPackingItemId)
|
||||||
|
.toList();
|
||||||
|
|
||||||
List<WmsComponentPackingItem> packingItems = wmsComponentPackingItemService
|
List<WmsComponentPackingItem> packingItems = wmsComponentPackingItemService
|
||||||
.lambdaQuery()
|
.lambdaQuery()
|
||||||
.eq(WmsComponentPackingItem::getPackingId, packing.getId())
|
.in(WmsComponentPackingItem::getId, packingItemId)
|
||||||
.list();
|
.list();
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(packingItems)).throwMessage("无法找到有效的装箱单详情");
|
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(packingItems)).throwMessage("无法找到有效的装箱单详情");
|
||||||
//判断是否存在了相同的交货单了
|
|
||||||
WmsComponentOutbound outboundSelect = wmsComponentOutboundService.lambdaQuery()
|
|
||||||
.eq(WmsComponentOutbound::getVbelv, packing.getVbelv())
|
|
||||||
.eq(WmsComponentOutbound::getIsReverse, false)
|
|
||||||
.one();
|
|
||||||
VUtil.trueThrowBusinessError(Objects.nonNull(outboundSelect), () -> "交货单已出库,单号为【" + outboundSelect.getOutboundNo() + "】");
|
|
||||||
//判断数量是否一致,且已经存在了相同的收货单了
|
|
||||||
for (WmsComponentPackingItem item : packingItems) {
|
|
||||||
List<ComponentOutboundItemInputQO> items = request.getItems()
|
|
||||||
.stream()
|
|
||||||
.filter(d -> d.getPackingItemId().equals(item.getId()))
|
|
||||||
.toList();
|
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items))
|
|
||||||
.throwMessage("物料【" + item.getIdnrk() + "】的实际出库数量为0,小于了出库数量【" + item.getMenge() + "】");
|
|
||||||
|
|
||||||
BigDecimal totalCodeNum = request.getItems().stream()
|
|
||||||
.flatMap(i -> i.getScanCodes() != null ? i.getScanCodes().stream() : Stream.empty())
|
|
||||||
.map(ScanCodeQO::getCodeNum)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
VUtil.trueThrowBusinessError(item.getMenge().subtract(totalCodeNum).compareTo(BigDecimal.ZERO) != 0)
|
|
||||||
.throwMessage("物料【" + item.getIdnrk() + "】的实际出库数量为【" + totalCodeNum + "】,小于了出库数量【" + item.getMenge() + "】");
|
|
||||||
}
|
|
||||||
|
|
||||||
WmsComponentOutbound outbound = setWmsComponentOutbound(packing);
|
WmsComponentOutbound outbound = setWmsComponentOutbound(packing);
|
||||||
List<WmsComponentOutboundItem> outboundItems = new ArrayList<>();
|
List<WmsComponentOutboundItem> outboundItems = new ArrayList<>();
|
||||||
List<WmsComponentOutboundScanCodes> outboundScanCodes = new ArrayList<>();
|
List<WmsComponentOutboundScanCodes> outboundScanCodes = new ArrayList<>();
|
||||||
|
|
@ -212,14 +157,18 @@ public class ComponentOutboundController {
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
|
if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
|
||||||
List<ScanCodeQO> scanCodesGroup=new ArrayList<>();
|
List<ScanCodeQO> scanCodesGroup=new ArrayList<>();
|
||||||
for (ScanCodeQO code : item.getScanCodes()) {
|
for (ScanCodeQO code : item.getScanCodes())
|
||||||
|
{
|
||||||
ScanCodeQO codeItem=scanCodesGroup.stream().filter(c->c.getBatchNumber().equals(code.getBatchNumber())
|
ScanCodeQO codeItem=scanCodesGroup.stream().filter(c->c.getBatchNumber().equals(code.getBatchNumber())
|
||||||
&& c.getSerialNumber().equals(code.getSerialNumber())
|
&& c.getSerialNumber().equals(code.getSerialNumber())
|
||||||
).findFirst().orElse(null);
|
).findFirst().orElse(null);
|
||||||
|
|
||||||
if (Objects.isNull(codeItem)) {
|
if(Objects.isNull(codeItem))
|
||||||
|
{
|
||||||
scanCodesGroup.add(code);
|
scanCodesGroup.add(code);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
codeItem.setCodeNum(codeItem.getCodeNum().add(code.getCodeNum()));
|
codeItem.setCodeNum(codeItem.getCodeNum().add(code.getCodeNum()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -261,12 +210,14 @@ public class ComponentOutboundController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (ScanCodeQO code : scanCodesGroup) {
|
for (ScanCodeQO code : scanCodesGroup) {
|
||||||
|
// VUtil.trueThrowBusinessError(codeIds.contains(code.getCodeId())).throwMessage("物料[" + outboundItem.getIdnrk() + "]的条码[" + code.getCodeId() + "]被重复使用");
|
||||||
|
// codeIds.add(code.getCodeId());
|
||||||
// 组装条码信息
|
// 组装条码信息
|
||||||
WmsComponentOutboundScanCodes scanCodes = new WmsComponentOutboundScanCodes();
|
WmsComponentOutboundScanCodes scanCodes = new WmsComponentOutboundScanCodes();
|
||||||
scanCodes.setOutboundItemId(outboundItem.getId())
|
scanCodes.setOutboundItemId(outboundItem.getId())
|
||||||
.setCodeId(code.getCodeId())
|
.setCodeId(code.getCodeId())
|
||||||
.setOutboundId(outbound.getId())
|
|
||||||
.setSerialNumbers(code.getSerialNumber())
|
.setSerialNumbers(code.getSerialNumber())
|
||||||
.setCodeNum(code.getCodeNum())
|
.setCodeNum(code.getCodeNum())
|
||||||
.setBatchNumber(code.getBatchNumber())
|
.setBatchNumber(code.getBatchNumber())
|
||||||
|
|
@ -275,10 +226,17 @@ public class ComponentOutboundController {
|
||||||
//组装下库存信息
|
//组装下库存信息
|
||||||
setInventoryDTO(inventories, outboundItem.getIdnrk(),
|
setInventoryDTO(inventories, outboundItem.getIdnrk(),
|
||||||
packing.getFactoryNo(), outboundItem.getLgort(), code.getBatchNumber(), code.getCodeNum());
|
packing.getFactoryNo(), outboundItem.getLgort(), code.getBatchNumber(), code.getCodeNum());
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
setInventoryDTO(inventories, outboundItem.getIdnrk(), packing.getFactoryNo(), outboundItem.getLgort(), "", outboundItem.getOutQty());
|
||||||
|
set3A20Item("", outboundItem, outboundItem.getOutQty(), zwm3a20DTO);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
// 判断下当前的条码是否有已经使用过得
|
||||||
|
// List<WmsComponentOutboundScanCodes> existScanCodes = wmsComponentOutboundScanCodesService.findByCodeIdIn(codeIds);
|
||||||
|
// VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(existScanCodes)).throwMessage("存在已经使用过的条码");
|
||||||
componentOutboundControllerService.confirmPda(outbound, outboundItems, outboundScanCodes, zwm3a20DTO, inventories);
|
componentOutboundControllerService.confirmPda(outbound, outboundItems, outboundScanCodes, zwm3a20DTO, inventories);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
@ -312,7 +270,6 @@ public class ComponentOutboundController {
|
||||||
.setPackingId(packing.getId())
|
.setPackingId(packing.getId())
|
||||||
.setCreateName(UserUtil.getUserName())
|
.setCreateName(UserUtil.getUserName())
|
||||||
.setCreateId(UserUtil.getUserId())
|
.setCreateId(UserUtil.getUserId())
|
||||||
.setIsReverse(false)
|
|
||||||
.setCreateTime(LocalDateTime.now());
|
.setCreateTime(LocalDateTime.now());
|
||||||
return outbound;
|
return outbound;
|
||||||
}
|
}
|
||||||
|
|
@ -351,9 +308,6 @@ public class ComponentOutboundController {
|
||||||
return outboundItem;
|
return outboundItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
组装库存信息
|
|
||||||
*/
|
|
||||||
private void setInventoryDTO(List<InventoryDTO> inventories, String materialNo,
|
private void setInventoryDTO(List<InventoryDTO> inventories, String materialNo,
|
||||||
String factoryNo, String warehouseNo, String batchNumber, BigDecimal outQty
|
String factoryNo, String warehouseNo, String batchNumber, BigDecimal outQty
|
||||||
) {
|
) {
|
||||||
|
|
|
||||||
|
|
@ -96,14 +96,6 @@ public class ComponentPackingController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("getorders")
|
@PostMapping("getorders")
|
||||||
public ApiResult<ZWM3A19DTO> getComponentOrders(@Valid @RequestBody ComponentOrderQO request) {
|
public ApiResult<ZWM3A19DTO> getComponentOrders(@Valid @RequestBody ComponentOrderQO request) {
|
||||||
// 判断交货单号是否已经存在了
|
|
||||||
WmsComponentPacking packing = wmscomponentPackingService.lambdaQuery()
|
|
||||||
.eq(WmsComponentPacking::getVbelv, request.getVbelv())
|
|
||||||
.eq(WmsComponentPacking::getIsCompleted, 2)
|
|
||||||
.one();
|
|
||||||
|
|
||||||
VUtil.trueThrowBusinessError(Objects.nonNull(packing))
|
|
||||||
.throwMessage("已存在相同的交货单,单号为【" + packing.getNo() + "】,状态为【" + (packing.getIsCompleted() == 0 ? "未出库" : "已出库") + "】");
|
|
||||||
ZWM3A19DTO result = sapService.zwm3a19(request.getVbelv(), request.getWerks());
|
ZWM3A19DTO result = sapService.zwm3a19(request.getVbelv(), request.getWerks());
|
||||||
VUtil.trueThrowBusinessError(StrUtil.isBlank(result.getHeadDTO().getWbstk())
|
VUtil.trueThrowBusinessError(StrUtil.isBlank(result.getHeadDTO().getWbstk())
|
||||||
|| result.getHeadDTO().getWbstk().equalsIgnoreCase("C"))
|
|| result.getHeadDTO().getWbstk().equalsIgnoreCase("C"))
|
||||||
|
|
@ -145,7 +137,7 @@ public class ComponentPackingController {
|
||||||
public ApiResult<Void> deletePacking(@Valid @RequestBody List<Long> ids) {
|
public ApiResult<Void> deletePacking(@Valid @RequestBody List<Long> ids) {
|
||||||
//首先判断是否存在已完成的单据
|
//首先判断是否存在已完成的单据
|
||||||
List<WmsComponentPacking> packingList = wmscomponentPackingService.lambdaQuery()
|
List<WmsComponentPacking> packingList = wmscomponentPackingService.lambdaQuery()
|
||||||
.ne(WmsComponentPacking::getIsCompleted, 0)
|
.eq(WmsComponentPacking::getIsCompleted, 2)
|
||||||
.in(WmsComponentPacking::getId, ids)
|
.in(WmsComponentPacking::getId, ids)
|
||||||
.list();
|
.list();
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(packingList)).throwMessage("存在已完成的装车单,请勿删除");
|
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(packingList)).throwMessage("存在已完成的装车单,请勿删除");
|
||||||
|
|
|
||||||
|
|
@ -15,11 +15,6 @@ public class WmsComponentOutboundScanCodes {
|
||||||
@Id
|
@Id
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
/**
|
|
||||||
* 出库单ID
|
|
||||||
*/
|
|
||||||
private Long outboundId;
|
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 出库单的单行ID号
|
* 出库单的单行ID号
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,6 @@ import java.util.List;
|
||||||
@Repository
|
@Repository
|
||||||
public interface WmsComponentOutboundScanCodesRepository extends MongoRepository<WmsComponentOutboundScanCodes, String> {
|
public interface WmsComponentOutboundScanCodesRepository extends MongoRepository<WmsComponentOutboundScanCodes, String> {
|
||||||
List<WmsComponentOutboundScanCodes> findByOutboundItemId(Long outboundItemId);
|
List<WmsComponentOutboundScanCodes> findByOutboundItemId(Long outboundItemId);
|
||||||
|
|
||||||
List<WmsComponentOutboundScanCodes> findByoutboundId(Long outboundId);
|
|
||||||
|
|
||||||
List<WmsComponentOutboundScanCodes> findByCodeIdIn(List<String> attr0);
|
List<WmsComponentOutboundScanCodes> findByCodeIdIn(List<String> attr0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -10,10 +10,7 @@ import com.nflg.wms.common.pojo.dto.ZWM3A20DTO;
|
||||||
import com.nflg.wms.common.pojo.qo.ComponentOutboundInputQO;
|
import com.nflg.wms.common.pojo.qo.ComponentOutboundInputQO;
|
||||||
import com.nflg.wms.common.pojo.qo.ComponentOutboundItemInputQO;
|
import com.nflg.wms.common.pojo.qo.ComponentOutboundItemInputQO;
|
||||||
import com.nflg.wms.common.pojo.qo.ComponentOutboundQO;
|
import com.nflg.wms.common.pojo.qo.ComponentOutboundQO;
|
||||||
import com.nflg.wms.common.pojo.qo.PackingOutBoundReverseQO;
|
|
||||||
import com.nflg.wms.common.pojo.vo.ComponentOutboundVO;
|
import com.nflg.wms.common.pojo.vo.ComponentOutboundVO;
|
||||||
import com.nflg.wms.common.util.DateTimeUtil;
|
|
||||||
import com.nflg.wms.common.util.UserUtil;
|
|
||||||
import com.nflg.wms.common.util.VUtil;
|
import com.nflg.wms.common.util.VUtil;
|
||||||
import com.nflg.wms.repository.entity.*;
|
import com.nflg.wms.repository.entity.*;
|
||||||
import com.nflg.wms.repository.service.*;
|
import com.nflg.wms.repository.service.*;
|
||||||
|
|
@ -22,7 +19,6 @@ import jakarta.validation.Valid;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
@ -86,36 +82,4 @@ public class ComponentOutboundControllerService {
|
||||||
wmsComponentOutboundScanCodesService.insert(outboundScanCodes);
|
wmsComponentOutboundScanCodesService.insert(outboundScanCodes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public void reverse(Long outboundId, Long packingId, List<InventoryDTO> inventories, ZWM3A20DTO zwm3a20DTO) {
|
|
||||||
//修改出库单的冲销状态为true
|
|
||||||
wmsComponentOutboundService.lambdaUpdate()
|
|
||||||
.set(WmsComponentOutbound::getIsReverse, true)
|
|
||||||
.set(WmsComponentOutbound::getModifyId, UserUtil.getUserId())
|
|
||||||
.set(WmsComponentOutbound::getModifyName, UserUtil.getUserName())
|
|
||||||
.set(WmsComponentOutbound::getModifyTime, LocalDateTime.now())
|
|
||||||
.eq(WmsComponentOutbound::getId, outboundId)
|
|
||||||
.update();
|
|
||||||
// 修改包装单的冲销状态为true
|
|
||||||
wmscomponentPackingService.lambdaUpdate()
|
|
||||||
.set(WmsComponentPacking::getIsCompleted, 1)
|
|
||||||
.set(WmsComponentPacking::getModifyId, UserUtil.getUserId())
|
|
||||||
.set(WmsComponentPacking::getModifyName, UserUtil.getUserName())
|
|
||||||
.set(WmsComponentPacking::getModifyTime, LocalDateTime.now())
|
|
||||||
.eq(WmsComponentPacking::getId, packingId)
|
|
||||||
.update();
|
|
||||||
//修改库存信息
|
|
||||||
if (CollectionUtil.isNotEmpty(inventories)) {
|
|
||||||
inventoryService.in(inventories);
|
|
||||||
}
|
|
||||||
//SAP冲销
|
|
||||||
Pair<String, String> result = sapService.zwm3a20(zwm3a20DTO);
|
|
||||||
wmsComponentOutboundService.lambdaUpdate()
|
|
||||||
.set(WmsComponentOutbound::getMaterialDoc, result.getKey())
|
|
||||||
.set(WmsComponentOutbound::getMaterialDocYear, result.getValue())
|
|
||||||
.eq(WmsComponentOutbound::getId, outboundId)
|
|
||||||
.update();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1225,7 +1225,6 @@ public class SapService {
|
||||||
JCoFunction function = exec("ZWM3A20", parameters, tables);
|
JCoFunction function = exec("ZWM3A20", parameters, tables);
|
||||||
|
|
||||||
JCoStructure structure = function.getExportParameterList().getStructure("OUTPUT");
|
JCoStructure structure = function.getExportParameterList().getStructure("OUTPUT");
|
||||||
print("输出参数OUTPUT", structure);
|
|
||||||
VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S"))
|
VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S"))
|
||||||
.throwMessage("SAP错误:" + structure.getString("MSG"));
|
.throwMessage("SAP错误:" + structure.getString("MSG"));
|
||||||
return Pair.of(structure.getString("MAT_DOC"), structure.getString("DOC_YEAR"));
|
return Pair.of(structure.getString("MAT_DOC"), structure.getString("DOC_YEAR"));
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import java.util.concurrent.TimeUnit;
|
||||||
public class DeployTest {
|
public class DeployTest {
|
||||||
|
|
||||||
private static final String serviceName = "admin";
|
private static final String serviceName = "admin";
|
||||||
private static final String localPath = System.getProperty("user.dir") + "//target//";
|
private static final String localPath = System.getProperty("user.dir") + "\\target\\";
|
||||||
private static final String remotePath = "/mnt/app/wms/" + serviceName + "/";
|
private static final String remotePath = "/mnt/app/wms/" + serviceName + "/";
|
||||||
private static final String jarName = "nflg-wms-" + serviceName + "-1.0.0-SNAPSHOT.jar";
|
private static final String jarName = "nflg-wms-" + serviceName + "-1.0.0-SNAPSHOT.jar";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
package com.nflg.wms.common.pojo.qo;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.experimental.Accessors;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Accessors(chain = true)
|
|
||||||
public class PackingOutBoundReverseQO {
|
|
||||||
// 出库单ID
|
|
||||||
private Long id;
|
|
||||||
}
|
|
||||||
|
|
@ -150,9 +150,4 @@ public class ComponentOutboundVO {
|
||||||
private String modifyName;
|
private String modifyName;
|
||||||
|
|
||||||
private LocalDateTime modifyTime;
|
private LocalDateTime modifyTime;
|
||||||
|
|
||||||
/**
|
|
||||||
* 是否冲销
|
|
||||||
*/
|
|
||||||
private Boolean isReverse;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ public class ComponentPackingVO {
|
||||||
private String wbstk;
|
private String wbstk;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 0 未出库;1 对冲;2 出库完成
|
* 0 未出库;1 完成出库
|
||||||
*/
|
*/
|
||||||
private Short isCompleted;
|
private Short isCompleted;
|
||||||
|
|
||||||
|
|
@ -136,5 +136,4 @@ public class ComponentPackingVO {
|
||||||
* 所属工厂
|
* 所属工厂
|
||||||
*/
|
*/
|
||||||
private String factoryNo;
|
private String factoryNo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,6 @@ import com.nflg.wms.common.function.ThrowBusinessExceptionFunction;
|
||||||
import com.nflg.wms.common.function.ThrowExceptionFunction;
|
import com.nflg.wms.common.function.ThrowExceptionFunction;
|
||||||
import com.nflg.wms.common.function.TrueHandleFunction;
|
import com.nflg.wms.common.function.TrueHandleFunction;
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
public class VUtil {
|
public class VUtil {
|
||||||
|
|
||||||
public static ThrowBusinessExceptionFunction trueThrowBusinessError(boolean flag) {
|
public static ThrowBusinessExceptionFunction trueThrowBusinessError(boolean flag) {
|
||||||
|
|
@ -20,12 +18,6 @@ public class VUtil {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void trueThrowBusinessError(boolean flag, Supplier<String> supplier) {
|
|
||||||
if (flag) {
|
|
||||||
throw new NflgException(STATE.BusinessError, supplier.get());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ThrowExceptionFunction trueThrow(boolean flag) {
|
public static ThrowExceptionFunction trueThrow(boolean flag) {
|
||||||
|
|
||||||
return (state,errorMessage) -> {
|
return (state,errorMessage) -> {
|
||||||
|
|
|
||||||
|
|
@ -177,9 +177,4 @@ public class WmsComponentOutbound implements Serializable {
|
||||||
* 物料年度凭证
|
* 物料年度凭证
|
||||||
*/
|
*/
|
||||||
private String materialDocYear;
|
private String materialDocYear;
|
||||||
|
|
||||||
/**
|
|
||||||
* 是否冲销
|
|
||||||
*/
|
|
||||||
private Boolean isReverse;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ public class WmsComponentPacking implements Serializable {
|
||||||
private String factoryNo;
|
private String factoryNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 0 未出库;1 对冲;2 出库完成
|
* 0 未出库;1 部分出库;2 出库完成
|
||||||
*/
|
*/
|
||||||
private Short isCompleted;
|
private Short isCompleted;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
select id,packing_no,
|
select id,packing_no,
|
||||||
outbound_no,matnr,name1,uname,vbeln,maktx,datum,xnum,cnum,bname,zjshz,zchep,tel_number,sernr,huodh,vbelv,
|
outbound_no,matnr,name1,uname,vbeln,maktx,datum,xnum,cnum,bname,zjshz,zchep,tel_number,sernr,huodh,vbelv,
|
||||||
p_name,l_bezei,l_name,g_streen,g_str_suppl2,wbstk,create_name,create_time,factory_no,create_id,
|
p_name,l_bezei,l_name,g_streen,g_str_suppl2,wbstk,create_name,create_time,factory_no,create_id,
|
||||||
create_name,create_time,packing_id,is_reverse
|
create_name,create_time,packing_id
|
||||||
from wms_component_outbound
|
from wms_component_outbound
|
||||||
<where>
|
<where>
|
||||||
<if test="request.packingNo !=null and request.packingNo !=''">
|
<if test="request.packingNo !=null and request.packingNo !=''">
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public class CodeGeneratorTest {
|
||||||
)
|
)
|
||||||
.strategyConfig(builder -> {
|
.strategyConfig(builder -> {
|
||||||
builder
|
builder
|
||||||
.addInclude("wms_component_outbound") //只生成指定表
|
.addInclude("wms_inventory_barcode_printing") //只生成指定表
|
||||||
.entityBuilder().idType(IdType.ASSIGN_ID)
|
.entityBuilder().idType(IdType.ASSIGN_ID)
|
||||||
.enableLombok()
|
.enableLombok()
|
||||||
.enableChainModel()
|
.enableChainModel()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue