|
@@ -8,23 +8,27 @@ import com.gubersail.admin.inventory.service.IStockDescService;
|
|
|
import com.gubersail.admin.zcrm.customer.mapper.ViewItemSelMapper;
|
|
|
import com.gubersail.admin.zcrm.customer.mapper.ViewWhqohSelMapper;
|
|
|
import com.gubersail.dealer.admin.api.inventory.entity.PjStockDesc;
|
|
|
-import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewCustomerSel;
|
|
|
+import com.gubersail.dealer.admin.api.inventory.vo.PjStockDescVo;
|
|
|
import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewItemSel;
|
|
|
import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewWhqohSel;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springblade.common.enums.CommonEnum;
|
|
|
-import org.springblade.common.enums.NumberEnum;
|
|
|
import org.springblade.core.secure.BladeUser;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.system.user.entity.User;
|
|
|
+import org.springblade.system.user.feign.IUserClient;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
+import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.Objects;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -38,6 +42,9 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
|
|
|
|
|
|
private final ViewWhqohSelMapper viewWhqohSelMapper;
|
|
|
|
|
|
+ private final IUserClient userClient;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -57,6 +64,9 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
|
|
|
if (Objects.isNull(stockDesc.getGoodsId())) {
|
|
|
stockDesc.setGoodsId(IdUtil.getSnowflakeNextId());
|
|
|
}
|
|
|
+ if (BigDecimal.ZERO.compareTo(stockDesc.getInventoryCostPrice()) < 0) {
|
|
|
+ stockDesc.setInventoryAmount(stockDesc.getBalanceQuantity().multiply(stockDesc.getInventoryCostPrice()).setScale(2, RoundingMode.DOWN));
|
|
|
+ }
|
|
|
stockDesc.setTenantId(bladeUser.getTenantId());
|
|
|
stockDesc.setUserAndDept(bladeUser);
|
|
|
stockDesc.setStatus(CommonEnum.ONE.info);
|
|
@@ -113,8 +123,11 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
|
|
|
stockDesc.setTenantId(bladeUser.getTenantId());
|
|
|
stockDesc.setUserAndDept(bladeUser);
|
|
|
stockDesc.setStatus(CommonEnum.ZERO.info);
|
|
|
- boolean result = this.saveOrUpdate(stockDesc);
|
|
|
- return result ? R.data(stockDesc.getId(), "提交成功") : R.fail("提交失败");
|
|
|
+ if (BigDecimal.ZERO.compareTo(stockDesc.getInventoryCostPrice()) < 0) {
|
|
|
+ stockDesc.setInventoryAmount(stockDesc.getBalanceQuantity().multiply(stockDesc.getInventoryCostPrice()).setScale(2, RoundingMode.DOWN));
|
|
|
+ }
|
|
|
+ int result = Objects.isNull(stockDesc.getId()) ? baseMapper.insert(stockDesc) : baseMapper.updateById(stockDesc);
|
|
|
+ return result > 0 ? R.data(stockDesc.getId(), "提交成功") : R.fail("提交失败");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -133,15 +146,42 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R revokeGoodsStock(Long id) {
|
|
|
+ public R revokeGoodsStock(PjStockDesc stockDesc) {
|
|
|
BladeUser bladeUser = AuthUtil.getUser();
|
|
|
+ PjStockDesc srcStock = this.getById(stockDesc.getId());
|
|
|
+ if (ObjectUtils.isEmpty(srcStock)) {
|
|
|
+ return R.fail("该单据不存在");
|
|
|
+ }
|
|
|
+ if (!srcStock.getVersion().equals(stockDesc.getVersion())) {
|
|
|
+ return R.fail(601, "数据已被其他用户更新,请等待刷新后重试");
|
|
|
+ }
|
|
|
PjStockDesc updateDesc = new PjStockDesc();
|
|
|
- updateDesc.setId(id);
|
|
|
+ updateDesc.setId(stockDesc.getId());
|
|
|
+ updateDesc.setVersion(stockDesc.getVersion());
|
|
|
updateDesc.setStatus(CommonEnum.ZERO.info);
|
|
|
updateDesc.setUserAndDept(bladeUser);
|
|
|
return R.status(this.updateById(updateDesc));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public PjStockDescVo getDetail(Long id) {
|
|
|
+ PjStockDesc desc = this.getById(id);
|
|
|
+ if (ObjectUtils.isEmpty(desc)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ PjStockDescVo detail = new PjStockDescVo();
|
|
|
+ BeanUtils.copyProperties(desc, detail);
|
|
|
+ String userIds = detail.getCreateUser() + (Objects.isNull(detail.getUpdateUser()) ? "" : "," + detail.getUpdateUser()) ;
|
|
|
+ List<User> userList = userClient.selectUserIds(userIds);
|
|
|
+ if (CollectionUtils.isEmpty(userList)) {
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+ Map<Long, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));
|
|
|
+ Optional.ofNullable(userMap.get(detail.getCreateUser())).ifPresent(user -> detail.setCreateUserName(user.getRealName()));
|
|
|
+ Optional.ofNullable(userMap.get(detail.getUpdateUser())).ifPresent(user -> detail.setUpdateUserName(user.getRealName()));
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+
|
|
|
private R<String> verifyVersion (PjStockDesc stockDesc) {
|
|
|
if (Objects.isNull(stockDesc.getId())) {
|
|
|
return null;
|