Browse Source

客户帐余;客户特殊价;修复导入预算异步异常

v1.0
Yen 2 years ago
parent
commit
4715a98793
  1. 9
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 14
      src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java
  3. 2
      src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java
  4. 2
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  5. 9
      src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java
  6. 2
      src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java
  7. 44
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java
  8. 5
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  9. 4
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  10. 1
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java

9
src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java

@ -70,15 +70,17 @@ public class AsyncFactory {
return new TimerTask() {
@Override
public void run() {
String lockKey = "customer_price_lock:"+userId;
String lockKey = "customer_price_lock:"+userId+":"+supplierCode;
String priceDataKey = "customer_price_data:"+userId;
RedisService redisService = SpringUtils.getBean(RedisService.class);
redisService.set(lockKey,1);
redisService.set(lockKey,1,30,TimeUnit.SECONDS);
log.debug("获取客户金额,cusCode:{}",supplierCode);
//请求获取金额
SeeYonRequestBaseService seeYonRequestService = SpringUtils.getBean(SeeYonRequestBaseService.class);
R<String> reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT,"获取客户["+supplierCode+"]金额");
R<String> reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT+"?supplierCode="+supplierCode,"获取客户["+supplierCode+"]金额");
if(reqResult==null || !reqResult.getStatus().equals(200)){
//有错误退出
log.warn("获取客户金额失败,cusCode:{}",supplierCode);
redisService.set(lockKey,0);
return;
}
@ -86,6 +88,7 @@ public class AsyncFactory {
//数据格式:supplierCode_&_amount 如 A235654_&_612.00
String value = supplierCode+"_&_"+amount;
//缓存15分钟
log.debug("获取客户金额成功,cusCode:{},缓存15分钟",supplierCode);
redisService.set(priceDataKey,value,15, TimeUnit.MINUTES);
redisService.set(lockKey,0);
}

14
src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java

@ -43,14 +43,12 @@ public class ErpCustomerController {
public R<ErpCustomerAmountResult> getAmount(@PathVariable String code){
BmsSupplier supplier = supplierService.getByCode(code,null);
if(supplier!=null){
// ErpCustomerAmountResult amountResult = erpCustomerService.getCustomerAmount(code);
// if(amountResult==null){
// //初始化帐余
// erpCustomerService.initAmount(code);
// return new R(201,"客户帐余初始中");
// }
ErpCustomerAmountResult amountResult = new ErpCustomerAmountResult();
amountResult.setAmount(new BigDecimal("123456"));
ErpCustomerAmountResult amountResult = erpCustomerService.getCustomerAmount(code);
if(amountResult==null){
//初始化帐余
erpCustomerService.initAmount(code);
return new R(201,"客户帐余初始中");
}
return R.ok(amountResult);
}
return R.error();

2
src/main/java/com/qs/serve/modules/erp/service/impl/ErpCustomerServiceImpl.java

@ -55,7 +55,7 @@ public class ErpCustomerServiceImpl implements ErpCustomerService {
@Override
public void initAmount(String code) {
String userId = AuthContextUtils.getSysUserId();
String lockKey = "customer_price_lock:"+userId;
String lockKey = "customer_price_lock:"+userId+":"+code;
// lockState=1 锁
Integer lockState = redisService.getInteger(lockKey);
log.debug("customer_price_lock_value:"+lockState);

2
src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java

@ -131,7 +131,7 @@ public class GoodsSpuController {
@SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.QUERY)
@PreAuthorize("hasRole('goods:spu:query')")
public R<GoodsSpuVo> getById(@PathVariable("id") Long id){
GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id);
GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id,null);
return R.ok(goodsSpu);
}

9
src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java

@ -6,8 +6,10 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo;
import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
@ -68,13 +70,12 @@ public class GoodsSpuApi {
/**
* 获取详情
* @param id spuId
* @param supplierId 客户id
* @return
*/
@GetMapping("/getById/{id}")
public R<GoodsSpuVo> getById(@PathVariable("id") Long id,String supplierId){
GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id);
//TODO 获取价格
public R<GoodsSpuVo> getById(@PathVariable("id") Long id){
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier();
GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id, supplier.getCode());
return R.ok(goodsSpu);
}

2
src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java

@ -21,7 +21,7 @@ public interface GoodsSpuService extends IService<GoodsSpu> {
List<GoodsSpu> selectSpuList(GoodsSpu goodsSpu);
GoodsSpuVo getVoById(Long id);
GoodsSpuVo getVoById(Long id,String supplierCode);
GoodsSpu getByCode(String code);

44
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java

@ -82,18 +82,22 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper,GoodsSku> im
InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode);
query.setInvCodes(codes);
R<String> res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
assert inventoryCusPrices != null;
for (InventoryCusPrice cusPrice : inventoryCusPrices) {
for (GoodsSku sku : skus) {
if(sku.getSkuCode().equals(cusPrice.getInvCode())){
sku.setSalesPrice(cusPrice.getPrice());
break;
try {
R<String> res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
assert inventoryCusPrices != null;
for (InventoryCusPrice cusPrice : inventoryCusPrices) {
for (GoodsSku sku : skus) {
if(sku.getSkuCode().equals(cusPrice.getInvCode())){
sku.setSalesPrice(cusPrice.getPrice());
break;
}
}
}
}
} catch (Exception e) {
log.error("客户特殊价异常:{}",e.getMessage());
}
}
}
@ -105,18 +109,22 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper,GoodsSku> im
InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode);
query.setInvCodes(codes);
R<String> res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
assert inventoryCusPrices != null;
for (InventoryCusPrice cusPrice : inventoryCusPrices) {
for (GoodsSku sku : skus) {
if(sku.getSkuCode().equals(cusPrice.getInvCode())){
sku.setSalesPrice(cusPrice.getPrice());
break;
try {
R<String> res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
assert inventoryCusPrices != null;
for (InventoryCusPrice cusPrice : inventoryCusPrices) {
for (GoodsSku sku : skus) {
if(sku.getSkuCode().equals(cusPrice.getInvCode())){
sku.setSalesPrice(cusPrice.getPrice());
break;
}
}
}
}
} catch (Exception e) {
log.error("客户特殊价异常:{}",e.getMessage());
}
}
}

5
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java

@ -60,10 +60,13 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
}
@Override
public GoodsSpuVo getVoById(Long id) {
public GoodsSpuVo getVoById(Long id,String supplierCode) {
GoodsSpu goodsSpu = this.getById(id);
GoodsSpuVo goodsSpuVo = CopierUtil.copy(goodsSpu,new GoodsSpuVo());
List<GoodsSku> skuList = goodsSkuService.getBySpuId(id);
if(StringUtils.hasText(supplierCode)){
goodsSkuService.initSkuCusPrice(supplierCode,skuList);
}
goodsSpuVo.setSkuList(skuList);
List<GoodsSkuSpecValueVo> skuSpecValueList = goodsSkuSpecValueService.listSpecValueBySpuId(id);
goodsSpuVo.setSkuSpecValueList(skuSpecValueList);

4
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.oms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.StringUtils;
@ -112,6 +113,9 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId());
BmsSupplier supplier = confirmOrder.getSupplier();
BmsSupplierAddress address = confirmOrder.getDefaultAddress();
if(address==null){
Assert.throwEx("请补充收货地址");
}
List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts();
OmsOrder order = new OmsOrder();
order.setOrderSn(StringUtils.generateOrderNo());

1
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java

@ -409,6 +409,7 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl<TbsBudgetBatchMapper,
if(ne1 || ne2){
TbsBudgetChangeScheduleItem resultItem = TbsBudgetChangeScheduleItem.toNewObject(itemBudget);
resultItem.setChangeId(changeId);
resultItem.setBudgetAmount(realAmt);
resultItem.setNewBudgetAmount(budgetAmount.getBudgetAmount());
resultItem.setNewPreDispatchAmount(budgetAmount.getPreDispatchAmount());
changeScheduleItemList.add(resultItem);

Loading…
Cancel
Save