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() { return new TimerTask() {
@Override @Override
public void run() { public void run() {
String lockKey = "customer_price_lock:"+userId; String lockKey = "customer_price_lock:"+userId+":"+supplierCode;
String priceDataKey = "customer_price_data:"+userId; String priceDataKey = "customer_price_data:"+userId;
RedisService redisService = SpringUtils.getBean(RedisService.class); 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); 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)){ if(reqResult==null || !reqResult.getStatus().equals(200)){
//有错误退出 //有错误退出
log.warn("获取客户金额失败,cusCode:{}",supplierCode);
redisService.set(lockKey,0); redisService.set(lockKey,0);
return; return;
} }
@ -86,6 +88,7 @@ public class AsyncFactory {
//数据格式:supplierCode_&_amount 如 A235654_&_612.00 //数据格式:supplierCode_&_amount 如 A235654_&_612.00
String value = supplierCode+"_&_"+amount; String value = supplierCode+"_&_"+amount;
//缓存15分钟 //缓存15分钟
log.debug("获取客户金额成功,cusCode:{},缓存15分钟",supplierCode);
redisService.set(priceDataKey,value,15, TimeUnit.MINUTES); redisService.set(priceDataKey,value,15, TimeUnit.MINUTES);
redisService.set(lockKey,0); 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){ public R<ErpCustomerAmountResult> getAmount(@PathVariable String code){
BmsSupplier supplier = supplierService.getByCode(code,null); BmsSupplier supplier = supplierService.getByCode(code,null);
if(supplier!=null){ if(supplier!=null){
// ErpCustomerAmountResult amountResult = erpCustomerService.getCustomerAmount(code); ErpCustomerAmountResult amountResult = erpCustomerService.getCustomerAmount(code);
// if(amountResult==null){ if(amountResult==null){
// //初始化帐余 //初始化帐余
// erpCustomerService.initAmount(code); erpCustomerService.initAmount(code);
// return new R(201,"客户帐余初始中"); return new R(201,"客户帐余初始中");
// } }
ErpCustomerAmountResult amountResult = new ErpCustomerAmountResult();
amountResult.setAmount(new BigDecimal("123456"));
return R.ok(amountResult); return R.ok(amountResult);
} }
return R.error(); 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 @Override
public void initAmount(String code) { public void initAmount(String code) {
String userId = AuthContextUtils.getSysUserId(); String userId = AuthContextUtils.getSysUserId();
String lockKey = "customer_price_lock:"+userId; String lockKey = "customer_price_lock:"+userId+":"+code;
// lockState=1 锁 // lockState=1 锁
Integer lockState = redisService.getInteger(lockKey); Integer lockState = redisService.getInteger(lockKey);
log.debug("customer_price_lock_value:"+lockState); 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) @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.QUERY)
@PreAuthorize("hasRole('goods:spu:query')") @PreAuthorize("hasRole('goods:spu:query')")
public R<GoodsSpuVo> getById(@PathVariable("id") Long id){ public R<GoodsSpuVo> getById(@PathVariable("id") Long id){
GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id); GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id,null);
return R.ok(goodsSpu); 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.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; 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.PageUtil;
import com.qs.serve.common.util.StringUtils; 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.GoodsSpu;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo;
import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
@ -68,13 +70,12 @@ public class GoodsSpuApi {
/** /**
* 获取详情 * 获取详情
* @param id spuId * @param id spuId
* @param supplierId 客户id
* @return * @return
*/ */
@GetMapping("/getById/{id}") @GetMapping("/getById/{id}")
public R<GoodsSpuVo> getById(@PathVariable("id") Long id,String supplierId){ public R<GoodsSpuVo> getById(@PathVariable("id") Long id){
GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id); BmsSupplier supplier = AuthContextUtils.getCurrentSupplier();
//TODO 获取价格 GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id, supplier.getCode());
return R.ok(goodsSpu); 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); List<GoodsSpu> selectSpuList(GoodsSpu goodsSpu);
GoodsSpuVo getVoById(Long id); GoodsSpuVo getVoById(Long id,String supplierCode);
GoodsSpu getByCode(String code); 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(); InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode); query.setCusCode(supplierCode);
query.setInvCodes(codes); query.setInvCodes(codes);
R<String> res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价"); try {
if(res.getStatus().equals(200)){ R<String> res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价");
List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); if(res.getStatus().equals(200)){
assert inventoryCusPrices != null; List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
for (InventoryCusPrice cusPrice : inventoryCusPrices) { assert inventoryCusPrices != null;
for (GoodsSku sku : skus) { for (InventoryCusPrice cusPrice : inventoryCusPrices) {
if(sku.getSkuCode().equals(cusPrice.getInvCode())){ for (GoodsSku sku : skus) {
sku.setSalesPrice(cusPrice.getPrice()); if(sku.getSkuCode().equals(cusPrice.getInvCode())){
break; 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(); InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode); query.setCusCode(supplierCode);
query.setInvCodes(codes); query.setInvCodes(codes);
R<String> res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价"); try {
if(res.getStatus().equals(200)){ R<String> res = seeYonRequestBaseService.postBase(ERP_CUS_INV_PRICE,query,"查询客户特殊价");
List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class); if(res.getStatus().equals(200)){
assert inventoryCusPrices != null; List<InventoryCusPrice> inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
for (InventoryCusPrice cusPrice : inventoryCusPrices) { assert inventoryCusPrices != null;
for (GoodsSku sku : skus) { for (InventoryCusPrice cusPrice : inventoryCusPrices) {
if(sku.getSkuCode().equals(cusPrice.getInvCode())){ for (GoodsSku sku : skus) {
sku.setSalesPrice(cusPrice.getPrice()); if(sku.getSkuCode().equals(cusPrice.getInvCode())){
break; 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 @Override
public GoodsSpuVo getVoById(Long id) { public GoodsSpuVo getVoById(Long id,String supplierCode) {
GoodsSpu goodsSpu = this.getById(id); GoodsSpu goodsSpu = this.getById(id);
GoodsSpuVo goodsSpuVo = CopierUtil.copy(goodsSpu,new GoodsSpuVo()); GoodsSpuVo goodsSpuVo = CopierUtil.copy(goodsSpu,new GoodsSpuVo());
List<GoodsSku> skuList = goodsSkuService.getBySpuId(id); List<GoodsSku> skuList = goodsSkuService.getBySpuId(id);
if(StringUtils.hasText(supplierCode)){
goodsSkuService.initSkuCusPrice(supplierCode,skuList);
}
goodsSpuVo.setSkuList(skuList); goodsSpuVo.setSkuList(skuList);
List<GoodsSkuSpecValueVo> skuSpecValueList = goodsSkuSpecValueService.listSpecValueBySpuId(id); List<GoodsSkuSpecValueVo> skuSpecValueList = goodsSkuSpecValueService.listSpecValueBySpuId(id);
goodsSpuVo.setSkuSpecValueList(skuSpecValueList); 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.R; 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.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.StringUtils; 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()); SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId());
BmsSupplier supplier = confirmOrder.getSupplier(); BmsSupplier supplier = confirmOrder.getSupplier();
BmsSupplierAddress address = confirmOrder.getDefaultAddress(); BmsSupplierAddress address = confirmOrder.getDefaultAddress();
if(address==null){
Assert.throwEx("请补充收货地址");
}
List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts(); List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts();
OmsOrder order = new OmsOrder(); OmsOrder order = new OmsOrder();
order.setOrderSn(StringUtils.generateOrderNo()); 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){ if(ne1 || ne2){
TbsBudgetChangeScheduleItem resultItem = TbsBudgetChangeScheduleItem.toNewObject(itemBudget); TbsBudgetChangeScheduleItem resultItem = TbsBudgetChangeScheduleItem.toNewObject(itemBudget);
resultItem.setChangeId(changeId); resultItem.setChangeId(changeId);
resultItem.setBudgetAmount(realAmt);
resultItem.setNewBudgetAmount(budgetAmount.getBudgetAmount()); resultItem.setNewBudgetAmount(budgetAmount.getBudgetAmount());
resultItem.setNewPreDispatchAmount(budgetAmount.getPreDispatchAmount()); resultItem.setNewPreDispatchAmount(budgetAmount.getPreDispatchAmount());
changeScheduleItemList.add(resultItem); changeScheduleItemList.add(resultItem);

Loading…
Cancel
Save