Jelajahi Sumber

工厂商品管理bug优化

liyuan 1 Minggu lalu
induk
melakukan
8e7d0daf89

+ 4 - 46
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/inventory/vo/PjStockDescVo.java

@@ -1,13 +1,9 @@
 package com.gubersail.dealer.admin.api.inventory.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.gubersail.dealer.admin.api.inventory.entity.PjStockDesc;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.math.BigDecimal;
-import java.util.List;
-
 /**
  * @author Rain
  */
@@ -16,57 +12,19 @@ import java.util.List;
 public class PjStockDescVo extends PjStockDesc {
 
 
-	private List<Long> goodsIds;
-
 	/**
 	 * 库存是否为零
 	 */
 	private String whether;
-	/**
-	 * 附件
-	 */
-	// private List<PjGoodsFiles> goodsFilesList;
-	/**
-	 * 是否上架
-	 */
-	private String ifGrounding;
-
-
-	/**
-	 * 售价1
-	 */
-	private BigDecimal priceOne;
-	/**
-	 * 售价2
-	 */
-	private BigDecimal priceTwo;
-	/**
-	 * 售价3
-	 */
-	private BigDecimal priceThree;
-	/**
-	 * 售价4
-	 */
-	private BigDecimal priceFour;
-
-	/**
-	 * 商品IDS
-	 */
-	private String goods;
-
-	/**
-	 * 是否是积分商品
-	 */
-	private String whetherIntegral;
 
 	/**
-	 * 兑换积分
+	 * 创建人名称
 	 */
-	private BigDecimal integral;
+	private String createUserName;
 
 	/**
-	 * 所属公司id
+	 * 修改人名称
 	 */
-	private String salesCompanyIds;
+	private String updateUserName;
 
 }

+ 1 - 1
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/inventory/vo/StockDescExcelVo.java

@@ -87,7 +87,7 @@ public class StockDescExcelVo {
 	 * 库存数量
 	 */
 	@ExcelProperty(value = "库存数量")
-	private Integer balanceQuantity;
+	private BigDecimal balanceQuantity;
 
 	/**
 	 * 库存单价

+ 2 - 1
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/fc/customer/impl/FcCustomerDescServiceImpl.java

@@ -24,6 +24,7 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.beans.BeanUtils;
+import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -124,7 +125,7 @@ public class FcCustomerDescServiceImpl extends ServiceImpl<FcCustomerDescMapper,
 		String tenantId = corpsDesc.getTenantId();
 		//保存客户联系人信息
 		R saveOrUpdateAttn = this.saveOrUpdateAttn(corpsDesc, bladeUser.getUserId(), pId, tenantId, date);
-		if (saveOrUpdateAttn.getCode() != 200) {
+		if (saveOrUpdateAttn.getCode() != HttpStatus.OK.value()) {
 			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 			return saveOrUpdateAttn;
 		}

+ 10 - 5
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/inventory/controller/StockDescController.java

@@ -84,9 +84,8 @@ public class StockDescController extends BladeController {
 	}
 
 	@GetMapping("/detail")
-	public R<PjStockDesc> detail(@RequestParam("id") Long id) {
-		PjStockDesc detail = stockDescService.getById(id);
-		return R.data(detail);
+	public R<PjStockDescVo> detail(@RequestParam("id") Long id) {
+		return R.data(stockDescService.getDetail(id));
 	}
 
 
@@ -107,8 +106,8 @@ public class StockDescController extends BladeController {
 	}
 
 	@PostMapping("/revokeGoodsStock")
-	public R revokeGoodsStock(@RequestParam("id") Long id) {
-		return stockDescService.revokeGoodsStock(id);
+	public R revokeGoodsStock(@RequestBody PjStockDesc stockDesc) {
+		return stockDescService.revokeGoodsStock(stockDesc);
 	}
 
 
@@ -136,5 +135,11 @@ public class StockDescController extends BladeController {
 	}
 
 
+	@PostMapping("delGoodsDesc")
+	public R delGoodsDesc(@RequestBody List<Long> ids) {
+		PjStockDesc stockDesc = new PjStockDesc();
+		stockDesc.setIsDeleted(1);
+		return stockDescService.update(stockDesc, new LambdaQueryWrapper<PjStockDesc>().in(PjStockDesc::getId, ids)) ? R.success("删除成功") : R.fail("删除失败");
+	}
 
 }

+ 50 - 10
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/inventory/impl/StockDescServiceImpl.java

@@ -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;

+ 10 - 1
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/inventory/service/IStockDescService.java

@@ -2,6 +2,7 @@ package com.gubersail.admin.inventory.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.gubersail.dealer.admin.api.inventory.entity.PjStockDesc;
+import com.gubersail.dealer.admin.api.inventory.vo.PjStockDescVo;
 import org.springblade.core.tool.api.R;
 
 import javax.validation.Valid;
@@ -41,8 +42,16 @@ public interface IStockDescService extends IService<PjStockDesc> {
 	/**
 	 * 撤销库存
 	 *
+	 * @param stockDesc id
+	 * @return 结果
+	 */
+	R revokeGoodsStock(PjStockDesc stockDesc);
+
+	/**
+	 * 库存详情
+	 *
 	 * @param id id
 	 * @return 结果
 	 */
-	R revokeGoodsStock(Long id);
+	PjStockDescVo getDetail(Long id);
 }