|
|
@@ -410,6 +410,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
*/
|
|
|
@Transactional(rollbackFor = {Exception.class})
|
|
|
public ResponseResultVO<?> purchaseInboundUpdate(InboundVO inboundVO) {
|
|
|
+ String gradeCode = authUtils.getStaff().getGradeCode();
|
|
|
|
|
|
//region 小编辑
|
|
|
if (!inboundVO.getLimitEdit()) {
|
|
|
@@ -455,8 +456,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 修改明细
|
|
|
- List<InboundItemVO> itemList = inboundVO.getItemList();
|
|
|
- for (InboundItemVO inboundItemVO : itemList) {
|
|
|
+ for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
|
|
|
//根据id查询
|
|
|
InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
|
|
|
|
|
|
@@ -492,6 +492,10 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
new UpdateWrapper<InboundItem>().lambda()
|
|
|
.eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
|
|
|
);
|
|
|
+
|
|
|
+ //反算上游单据时小将这两个值清空
|
|
|
+ inboundItemVO.setIntoingQty(BigDecimal.ZERO);
|
|
|
+ inboundItemVO.setIntoingAmt(BigDecimal.ZERO);
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
@@ -522,14 +526,17 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
- //region 销售明细
|
|
|
+ //region 采购明细
|
|
|
if (inboundItemVO.getFromItemId() != null) {
|
|
|
//根据id查询
|
|
|
PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
|
|
|
PurchaseItem purchaseItem = new PurchaseItem();
|
|
|
purchaseItem.setItemId(inboundItemVO.getFromItemId());
|
|
|
- purchaseItem.setIntoQty(inboundItemResponse.getIntoQty().negate().add(inboundItemVO.getIntoQty()));
|
|
|
- purchaseItem.setIntoAmt(inboundItemResponse.getIntoAmt().negate().add(inboundItemVO.getIntoAmt()));
|
|
|
+ purchaseItem.setIntoQty((purchaseItemResponse != null ? purchaseItemResponse.getIntoQty().negate() : BigDecimal.ZERO).add(inboundItemVO.getIntoQty()));
|
|
|
+ purchaseItem.setIntoAmt((purchaseItemResponse != null ? purchaseItemResponse.getIntoAmt().negate() : BigDecimal.ZERO).add(inboundItemVO.getIntoAmt()));
|
|
|
+ purchaseItem.setIntoingQty((purchaseItemResponse != null && purchaseItemResponse.getIntoingQty().compareTo(BigDecimal.ZERO) > 0) ? inboundItemVO.getIntoQty().negate() : BigDecimal.ZERO);
|
|
|
+ purchaseItem.setIntoingAmt((purchaseItemResponse != null && purchaseItemResponse.getIntoingAmt().compareTo(BigDecimal.ZERO) > 0) ? inboundItemVO.getIntoAmt().negate() : BigDecimal.ZERO);
|
|
|
+ purchaseItem.setUpdateIntoMessageFlag(true);
|
|
|
//入库状态
|
|
|
String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty(),
|
|
|
purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()), purchaseItemResponse.getItemQty());
|
|
|
@@ -545,11 +552,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 删除明细
|
|
|
- BigDecimal delIntoQty = BigDecimal.ZERO;
|
|
|
- BigDecimal delIntoAmt = BigDecimal.ZERO;
|
|
|
if (inboundVO.getDeleteItemList() != null && inboundVO.getDeleteItemList().size() > 0) {
|
|
|
- delIntoQty = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- delIntoAmt = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
|
|
|
if (inboundItemVO.getItemId() != null) {
|
|
|
|
|
|
@@ -569,24 +572,24 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- //region 销售明细
|
|
|
- if (inboundItemVO.getFromItemId() != null) {
|
|
|
- //根据id查询
|
|
|
- PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
|
|
|
- PurchaseItem purchaseItem = new PurchaseItem();
|
|
|
- purchaseItem.setItemId(inboundItemVO.getFromItemId());
|
|
|
- purchaseItem.setIntoQty(inboundItemVO.getIntoQty().negate());
|
|
|
- purchaseItem.setIntoAmt(inboundItemVO.getIntoAmt().negate());
|
|
|
- purchaseItem.setIntoingQty(inboundItemVO.getIntoQty());
|
|
|
- purchaseItem.setIntoingAmt(inboundItemVO.getIntoAmt());
|
|
|
- //入库状态
|
|
|
- String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty().add(purchaseItem.getIntoingQty()),
|
|
|
- purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()), purchaseItemResponse.getItemQty());
|
|
|
- purchaseItem.setIntoStatus(intoStatus);
|
|
|
- int countRow = purchaseItemMapper.updateById(purchaseItem);
|
|
|
- //数量超出
|
|
|
- if (countRow == 0) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
|
|
|
+ //region 采购明细
|
|
|
+ if (!Constant.GradeCode.STD.getName().equals(gradeCode)) {
|
|
|
+ if (inboundItemVO.getFromItemId() != null) {
|
|
|
+ //根据id查询
|
|
|
+ PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
|
|
|
+ PurchaseItem purchaseItem = new PurchaseItem();
|
|
|
+ purchaseItem.setItemId(inboundItemVO.getFromItemId());
|
|
|
+ purchaseItem.setIntoQty(inboundItemVO.getIntoQty().negate());
|
|
|
+ purchaseItem.setIntoAmt(inboundItemVO.getIntoAmt().negate());
|
|
|
+ //入库状态
|
|
|
+ String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty(),
|
|
|
+ purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()), purchaseItemResponse.getItemQty());
|
|
|
+ purchaseItem.setIntoStatus(intoStatus);
|
|
|
+ int countRow = purchaseItemMapper.updateById(purchaseItem);
|
|
|
+ //数量超出
|
|
|
+ if (countRow == 0) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_QUANTITY_EXCEEDED.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//endregion
|
|
|
@@ -597,8 +600,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//region 修改入库总单
|
|
|
Inbound inbound = new Inbound();
|
|
|
inbound.setIntoId(inboundVO.getIntoId());
|
|
|
- inbound.setIntoQty(sumQty);
|
|
|
- inbound.setIntoAmt(sumAmt);
|
|
|
+ inbound.setIntoQty(inboundVO.getIntoingQty());
|
|
|
+ inbound.setIntoAmt(inboundVO.getIntoingAmt());
|
|
|
//修改
|
|
|
inboundMapper.update(inbound,
|
|
|
new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
|
|
|
@@ -629,8 +632,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
Constant.IntoStatus.DAIRUKU.getName().equals(inboundResponse.getIntoStatus())) {
|
|
|
|
|
|
//region 修改明细
|
|
|
- List<InboundItemVO> itemList = inboundVO.getItemList();
|
|
|
- for (InboundItemVO inboundItemVO : itemList) {
|
|
|
+ for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
|
|
|
|
|
|
//根据id查询 获取到还未进行修改的数据
|
|
|
InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
|
|
|
@@ -672,15 +674,15 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
- //region 销售明细
|
|
|
+ //region 采购明细
|
|
|
if (inboundItemVO.getFromItemId() != null) {
|
|
|
//根据id查询
|
|
|
PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
|
|
|
PurchaseItem purchaseItem = new PurchaseItem();
|
|
|
purchaseItem.setItemId(inboundItemVO.getFromItemId());
|
|
|
- //本次修改几个传几个(负数) sql中是原数据+本次修改数据
|
|
|
- purchaseItem.setIntoingQty(inboundItemResponse.getIntoingQty().negate().add(inboundItemVO.getIntoingQty()));
|
|
|
- purchaseItem.setIntoingAmt(inboundItemResponse.getIntoingAmt().negate().add(inboundItemVO.getIntoingAmt()));
|
|
|
+ purchaseItem.setIntoingQty((purchaseItemResponse != null ? purchaseItemResponse.getIntoingQty().negate() : BigDecimal.ZERO).add(inboundItemVO.getIntoingQty()));
|
|
|
+ purchaseItem.setIntoingQty((purchaseItemResponse != null ? purchaseItemResponse.getIntoingAmt().negate() : BigDecimal.ZERO).add(inboundItemVO.getIntoingAmt()));
|
|
|
+ purchaseItem.setUpdateIntoingMessageFlag(true);
|
|
|
//入库状态
|
|
|
String intoStatus = this.setIntoStatus(purchaseItemResponse.getIntoingQty().add(purchaseItem.getIntoingQty()),
|
|
|
purchaseItemResponse.getIntoQty().add(purchaseItem.getIntoQty()), purchaseItemResponse.getItemQty());
|
|
|
@@ -696,11 +698,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 删除明细
|
|
|
- BigDecimal delIntoQty = BigDecimal.ZERO;
|
|
|
- BigDecimal delIntoAmt = BigDecimal.ZERO;
|
|
|
if (inboundVO.getDeleteItemList() != null && inboundVO.getDeleteItemList().size() > 0) {
|
|
|
- delIntoQty = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- delIntoAmt = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
|
|
|
//region 明细
|
|
|
if (inboundItemVO.getItemId() != null) {
|
|
|
@@ -714,7 +712,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
- //region 销售明细
|
|
|
+ //region 采购明细
|
|
|
if (inboundItemVO.getFromItemId() != null) {
|
|
|
//根据id查询
|
|
|
PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemVO.getFromItemId());
|
|
|
@@ -740,8 +738,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//region 修改入库总单
|
|
|
Inbound inbound = new Inbound();
|
|
|
inbound.setIntoId(inboundVO.getIntoId());
|
|
|
- inbound.setIntoingQty(sumQty);
|
|
|
- inbound.setIntoingAmt(sumAmt);
|
|
|
+ inbound.setIntoingQty(inboundVO.getIntoingQty());
|
|
|
+ inbound.setIntoingAmt(inboundVO.getIntoingAmt());
|
|
|
//修改
|
|
|
inboundMapper.update(inbound,
|
|
|
new UpdateWrapper<Inbound>().lambda().eq(Inbound::getIntoId, UUID.fromString(inbound.getIntoId()))
|
|
|
@@ -827,11 +825,11 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
if (Constant.IntoStatus.YIRUKU.getName().equals(inboundResponse.getIntoStatus())) {
|
|
|
purchase.setIntoQty(purchaseSumQty.subtract(updatePurchaseIntoQty).subtract(purchaseDelOutQty));
|
|
|
purchase.setIntoAmt(purchaseSumAmt.subtract(updatePurchaseIntoAmt).subtract(purchaseDelOutAmt));
|
|
|
- purchase.setIntoingQty(purchaseDelOutQty);
|
|
|
- purchase.setIntoingAmt(purchaseDelOutAmt);
|
|
|
- purchase.setUpdateIntoingMessageFlag(true);
|
|
|
+// purchase.setIntoingQty(purchaseDelOutQty);
|
|
|
+// purchase.setIntoingAmt(purchaseDelOutAmt);
|
|
|
+ purchase.setUpdateIntoMessageFlag(true);
|
|
|
//入库状态
|
|
|
- String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty().add(purchase.getIntoingQty()),
|
|
|
+ String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty(),
|
|
|
purchaseResponse.getIntoQty().add(purchase.getIntoQty()), purchaseResponse.getSumQuantity());
|
|
|
purchase.setIntoStatus(intoStatus);
|
|
|
}
|
|
|
@@ -961,7 +959,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
// );
|
|
|
//endregion
|
|
|
|
|
|
- //region 销售明细
|
|
|
+ //region 采购明细
|
|
|
if (inboundItemResponse.getFromItemId() != null) {
|
|
|
//根据id查询
|
|
|
PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemResponse.getFromItemId());
|
|
|
@@ -1029,7 +1027,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
);
|
|
|
//endregion
|
|
|
|
|
|
- //region 销售明细
|
|
|
+ //region 采购明细
|
|
|
if (inboundItemResponse.getFromItemId() != null) {
|
|
|
//根据id查询
|
|
|
PurchaseItemResponse purchaseItemResponse = purchaseItemMapper.selectById(inboundItemResponse.getFromItemId());
|
|
|
@@ -1316,10 +1314,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 编辑总单
|
|
|
- BigDecimal sumIntoQty = inboundVO.getItemList().stream().map(InboundItemVO::getIntoQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
|
|
|
- BigDecimal sumIntoAmt = inboundVO.getItemList().stream().map(InboundItemVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- inboundVO.setIntoQty(sumIntoQty);
|
|
|
- inboundVO.setIntoAmt(sumIntoAmt);
|
|
|
+ inboundVO.setIntoQty(inboundVO.getIntoingQty());
|
|
|
+ inboundVO.setIntoAmt(inboundVO.getIntoingAmt());
|
|
|
inboundVO.setIntoingQty(BigDecimal.ZERO);
|
|
|
inboundVO.setIntoingAmt(BigDecimal.ZERO);
|
|
|
//入库状态
|
|
|
@@ -1639,7 +1635,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
*/
|
|
|
@Transactional(rollbackFor = {Exception.class})
|
|
|
public ResponseResultVO<?> oneKeyPurchaseInboundRepeal(String orderId) {
|
|
|
- List<InboundItemResponse> InboundItemResponses = inboundItemMapper.selectByCond(new InboundItemQuery().setSPurId(orderId));
|
|
|
+ List<InboundItemResponse> InboundItemResponses = inboundItemMapper.selectByCond(new InboundItemQuery().setFromId(orderId));
|
|
|
if (InboundItemResponses != null && InboundItemResponses.size() > 0) {
|
|
|
Map<String, List<InboundItemResponse>> inboundItemMap = InboundItemResponses.stream().collect(Collectors.groupingBy(InboundItemResponse::getIntoId));
|
|
|
for (String str : inboundItemMap.keySet()) {
|
|
|
@@ -1647,7 +1643,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
|
|
|
//根据id查询 此条入库单的数据还未更改前的数据
|
|
|
InboundResponse inboundResponse = inboundMapper.selectById(str);
|
|
|
//根据总单id查询
|
|
|
- List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setOutId(inboundResponse.getIntoId()));
|
|
|
+ List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inboundResponse.getIntoId()));
|
|
|
//endregion
|
|
|
|
|
|
//region 已入库状态作废
|