|
|
@@ -1,109 +1,135 @@
|
|
|
package org.springblade.mocha.feign;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.client.entity.GoodsDesc;
|
|
|
+import org.springblade.client.feign.IGoodsDescClient;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tenant.annotation.NonDS;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.mocha.entity.PriceItem;
|
|
|
import org.springblade.mocha.service.IPriceItemService;
|
|
|
-import org.springblade.mocha.service.IPriceService;
|
|
|
+import org.springblade.stock.entity.StockGoods;
|
|
|
+import org.springblade.stock.feign.IStockGoodsClient;
|
|
|
+import org.springblade.system.feign.ISysClient;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
import springfox.documentation.annotations.ApiIgnore;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.math.BigInteger;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
@NonDS
|
|
|
@ApiIgnore()
|
|
|
@RestController
|
|
|
@AllArgsConstructor
|
|
|
-public class PriceItemClient implements IPriceItemClient{
|
|
|
-
|
|
|
- private IPriceItemService priceItemService;
|
|
|
+public class PriceItemClient implements IPriceItemClient {
|
|
|
|
|
|
+ private final IPriceItemService priceItemService;
|
|
|
|
|
|
+ private final ISysClient sysClient;
|
|
|
|
|
|
+ private final IStockGoodsClient stockGoodsClient;
|
|
|
|
|
|
+ /**
|
|
|
+ * 商品信息
|
|
|
+ */
|
|
|
+ private final IGoodsDescClient goodsDescClient;
|
|
|
|
|
|
/**
|
|
|
* 修改价格管理的销售价格
|
|
|
- * @param code 商品编码
|
|
|
- * @param price 销售价格
|
|
|
+ *
|
|
|
+ * @param code 商品编码
|
|
|
+ * @param price 销售价格
|
|
|
* @param tenantId 租户id
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
@GetMapping(UPDATE_PRICE_ITEM)
|
|
|
public R updatePriceItem(String code, BigDecimal price, String tenantId) {
|
|
|
- return priceItemService.updatePriceItem(code,price,tenantId);
|
|
|
+ return priceItemService.updatePriceItem(code, price, tenantId);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据商品编码获取销售价格信息
|
|
|
+ *
|
|
|
* @param code
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
@GetMapping(GET_MARKET_PRICE)
|
|
|
public R getMarketPrice(String code) {
|
|
|
- return R.data(priceItemService.getMarketPrice(SecureUtil.getTenantId(),code));
|
|
|
+ return R.data(priceItemService.getMarketPrice(SecureUtil.getTenantId(), code));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取商品采购价格
|
|
|
+ *
|
|
|
* @param code
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
@GetMapping(GET_PURCHASE_PRICE)
|
|
|
public R getPurchasePrice(String code) {
|
|
|
- return R.data(priceItemService.getPurchasePrice(SecureUtil.getTenantId(),code));
|
|
|
+ List<Map<String, BigDecimal>> mapList = new ArrayList<>();
|
|
|
+ if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
|
|
|
+ R<GoodsDesc> r = goodsDescClient.GoodsByCode(code);
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ StockGoods stockGoods = new StockGoods();
|
|
|
+ stockGoods.setGoodsId(r.getData().getId());
|
|
|
+ StockGoods stock = stockGoodsClient.getOneStock(stockGoods);
|
|
|
+ if (ObjectUtils.isNotNull(stock)) {
|
|
|
+ Map<String, BigDecimal> map = new HashMap<>();
|
|
|
+ map.put("purchasePrice", stock.getStockPrice());
|
|
|
+ map.put("purchaseRebatePrice", stock.getStockPrice());
|
|
|
+ mapList.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.data(mapList);
|
|
|
+ } else {
|
|
|
+ return R.data(priceItemService.getPurchasePrice(SecureUtil.getTenantId(), code));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取销售价格
|
|
|
+ *
|
|
|
* @param code
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<Map<String,BigDecimal>> getSalePrice(String code, Integer isFreight, Integer isLabel) {
|
|
|
- List<Map<String,BigDecimal>> mapList=new ArrayList<>();
|
|
|
- LambdaQueryWrapper<PriceItem> priceItemLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ public List<Map<String, BigDecimal>> getSalePrice(String code, Integer isFreight, Integer isLabel) {
|
|
|
+ List<Map<String, BigDecimal>> mapList = new ArrayList<>();
|
|
|
+ LambdaQueryWrapper<PriceItem> priceItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
priceItemLambdaQueryWrapper
|
|
|
- .eq(PriceItem::getIsDeleted,0)
|
|
|
+ .eq(PriceItem::getIsDeleted, 0)
|
|
|
.eq(PriceItem::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PriceItem::getCode,code);
|
|
|
+ .eq(PriceItem::getCode, code);
|
|
|
List<PriceItem> priceItemList = priceItemService.list(priceItemLambdaQueryWrapper);
|
|
|
|
|
|
- if(CollectionUtils.isNotEmpty(priceItemList))
|
|
|
- {
|
|
|
- priceItemList.forEach(e->{
|
|
|
- BigDecimal saleMoney=BigDecimal.ZERO;
|
|
|
- BigDecimal reduce=e.getSalesPrice();
|
|
|
- BigDecimal freight=BigDecimal.ZERO;
|
|
|
- BigDecimal label=BigDecimal.ZERO;
|
|
|
- if(isFreight!=null && isFreight==1)
|
|
|
- {
|
|
|
- freight=e.getFreightFees();
|
|
|
+ if (CollectionUtils.isNotEmpty(priceItemList)) {
|
|
|
+ priceItemList.forEach(e -> {
|
|
|
+ BigDecimal saleMoney = BigDecimal.ZERO;
|
|
|
+ BigDecimal reduce = e.getSalesPrice();
|
|
|
+ BigDecimal freight = BigDecimal.ZERO;
|
|
|
+ BigDecimal label = BigDecimal.ZERO;
|
|
|
+ if (isFreight != null && isFreight == 1) {
|
|
|
+ freight = e.getFreightFees();
|
|
|
}
|
|
|
- if(isLabel!=null && isLabel==1)
|
|
|
- {
|
|
|
- label=e.getLabelFees();
|
|
|
+ if (isLabel != null && isLabel == 1) {
|
|
|
+ label = e.getLabelFees();
|
|
|
}
|
|
|
- saleMoney=(reduce.add(freight)).add(label);
|
|
|
+ saleMoney = (reduce.add(freight)).add(label);
|
|
|
|
|
|
- Map<String,BigDecimal> map=new HashMap<>();
|
|
|
- map.put("salePrice",saleMoney);
|
|
|
+ Map<String, BigDecimal> map = new HashMap<>();
|
|
|
+ map.put("salePrice", saleMoney);
|
|
|
mapList.add(map);
|
|
|
});
|
|
|
}
|