Browse Source

fix: 修复合并核销状态异常

checkBack
Yen 1 year ago
parent
commit
1d5589ac33
  1. 7
      src/main/java/com/qs/serve/common/util/HttpUtil.java
  2. 11
      src/main/java/com/qs/serve/modules/goods/controller/GoodsCustomerPriceController.java
  3. 2
      src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java
  4. 7
      src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java
  5. 78
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCustomerPriceServiceImpl.java
  6. 1
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  7. 4
      src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java
  8. 5
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java
  9. 10
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

7
src/main/java/com/qs/serve/common/util/HttpUtil.java

@ -8,6 +8,7 @@ import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
@ -54,6 +55,12 @@ public class HttpUtil {
post.addHeader(key,headers.get(key));
}
}
post.setConfig(
RequestConfig.custom()
//连接超时60秒
.setConnectTimeout(60*1000)
.build()
);
//执行post请求
response = client.execute(post);
//访问成功状态码为200

11
src/main/java/com/qs/serve/modules/goods/controller/GoodsCustomerPriceController.java

@ -115,5 +115,16 @@ public class GoodsCustomerPriceController {
return R.isTrue(result);
}
/**
* 同步客户特殊价
* @return
*/
@GetMapping("/sync")
public R<GoodsCustomerPrice> syncCusInvPrice(){
goodsCustomerPriceService.syncCustomerPrice();
return R.ok();
}
}

2
src/main/java/com/qs/serve/modules/goods/entity/dto/InventoryCusPrice.java

@ -13,6 +13,8 @@ import java.util.Date;
@Data
public class InventoryCusPrice {
private Long rowId;
private String cusCode;
private String invCode;

7
src/main/java/com/qs/serve/modules/goods/service/GoodsCustomerPriceService.java

@ -24,7 +24,14 @@ public interface GoodsCustomerPriceService extends IService<GoodsCustomerPrice>
GoodsCustomerPrice getBySupplierIdAndCode(String supplierId,String skuCode);
GoodsCustomerPrice getByCusCodeAndSkuCode(String supplierCode,String skuCode);
List<GoodsCustomerPrice> getBySupplierCodeAndCode(String supplierCode, List<String> skuCode);
/**
* 同步客户特殊价
*/
void syncCustomerPrice();
}

78
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCustomerPriceServiceImpl.java

@ -2,16 +2,24 @@ package com.qs.serve.modules.goods.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.JsonUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.bo.GoodsCustomerPriceBo;
import com.qs.serve.modules.goods.entity.bo.GoodsCustomerPriceSingleBo;
import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice;
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService;
import com.qs.serve.modules.sys.entity.SysDictData;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysDictDataMapper;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -34,9 +42,11 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class GoodsCustomerPriceServiceImpl extends ServiceImpl<GoodsCustomerPriceMapper,GoodsCustomerPrice> implements GoodsCustomerPriceService {
private final SysDictDataMapper sysDictDataMapper;
private final BmsSupplierMapper bmsSupplierMapper;
private final GoodsSkuMapper goodsSkuMapper;
private final SysUserMapper sysUserMapper;
private final SeeYonRequestBaseService seeYonRequestBaseService;
@Override
public List<GoodsCustomerPrice> selectGoodsCustomerPriceList(GoodsCustomerPrice query) {
@ -125,6 +135,14 @@ public class GoodsCustomerPriceServiceImpl extends ServiceImpl<GoodsCustomerPric
return this.getOne(lqw,false);
}
@Override
public GoodsCustomerPrice getByCusCodeAndSkuCode(String supplierCode, String skuCode) {
LambdaQueryWrapper<GoodsCustomerPrice> lqw = new LambdaQueryWrapper<>();
lqw.eq(GoodsCustomerPrice::getSupplierCode,supplierCode)
.eq(GoodsCustomerPrice::getSkuCode,skuCode);
return this.getOne(lqw,false);
}
@Override
public List<GoodsCustomerPrice> getBySupplierCodeAndCode(String supplierCode, List<String> skuCodes) {
LambdaQueryWrapper<GoodsCustomerPrice> lqw = new LambdaQueryWrapper<>();
@ -133,5 +151,65 @@ public class GoodsCustomerPriceServiceImpl extends ServiceImpl<GoodsCustomerPric
return this.list(lqw);
}
@Override
public void syncCustomerPrice() {
final String DICT_KEY = "sync-customer-price-max-id";
SysDictData dictData = sysDictDataMapper
.selectOne(new LambdaQueryWrapper<SysDictData>()
.eq(SysDictData::getGroupKey,DICT_KEY));
Long maxId = 0L;
if(dictData!=null&&dictData.getKeyVal()!=null){
maxId = Long.parseLong(dictData.getKeyVal());
}
List<InventoryCusPrice> cusPriceList = new ArrayList<>();
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_LAST_UPD+"/"+maxId,null,"查询最近更新的客户特殊价");
if(res.getStatus().equals(200)){
cusPriceList = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
}
assert cusPriceList != null;
for (InventoryCusPrice cusPrice : cusPriceList) {
if(maxId==null || cusPrice.getRowId() > maxId){
maxId = cusPrice.getRowId();
}
GoodsCustomerPrice customerPrice = this.getByCusCodeAndSkuCode(cusPrice.getCusCode(),cusPrice.getInvCode());
if(customerPrice==null){
GoodsSku goodsSku = goodsSkuMapper.selectBySkuCode(cusPrice.getInvCode());
BmsSupplier supplier = bmsSupplierMapper.selectOne(new LambdaQueryWrapper<BmsSupplier>()
.eq(BmsSupplier::getCode,cusPrice.getCusCode()));
customerPrice = new GoodsCustomerPrice();
customerPrice.setSupplierId(supplier.getId());
customerPrice.setSupplierCode(supplier.getCode());
customerPrice.setSupplierName(supplier.getName());
customerPrice.setSkuId(goodsSku.getId()+"");
customerPrice.setSkuCode(goodsSku.getSkuCode());
customerPrice.setSkuName(goodsSku.getSkuName());
customerPrice.setSkuUnit(goodsSku.getUnitName());
customerPrice.setInitPrice(cusPrice.getPrice());
customerPrice.setRealPrice(cusPrice.getPrice());
this.save(customerPrice);
}else {
customerPrice.setRealPrice(cusPrice.getPrice());
this.updateById(customerPrice);
}
}
if(maxId!=0){
if(dictData==null){
dictData = new SysDictData();
dictData.setDictId(0L);
dictData.setGroupKey(DICT_KEY);
dictData.setKeyVal(maxId+"");
dictData.setLabel("同步客户特殊价最大值ID");
dictData.setSort(0);
dictData.setRemark("同步客户特殊价最大值ID");
sysDictDataMapper.insert(dictData);
}else {
dictData.setKeyVal(maxId+"");
sysDictDataMapper.updateById(dictData);
}
}
}
}

1
src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java

@ -105,6 +105,7 @@ public interface TbsSeeYonConst {
String ERP_CUS_AMOUNT = "/erp/customer/amount";
String ERP_CUS_AMOUNT_QUO = "/erp/customer/quoAmount";
String ERP_CUS_INV_PRICE = "/erp/inventory/invPrices";
String ERP_CUS_INV_LAST_UPD = "/erp/inventory/lastUpdateCusInvPrices";
String ERP_CUS_INV_STAND = "/erp/inventory/standList";
String ERP_CUS_INV_SYNC_PRICE = "/erp/inventory/syncPrice";
String ERP_CUS_INV_SPECIAL = "/erp/inventory/specialSyncCrm";

4
src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java

@ -18,6 +18,10 @@ import java.util.List;
*/
public interface VtbVerificationMapper extends BaseMapper<VtbVerification> {
@Select("select COALESCE(sum(amount),0) from vtb_verification where del_flag = 0 and batchId = #{batchId} ")
BigDecimal totalVtbAmtByBatchId(@Param("batchId")Long batchId);
@Select("select COALESCE(sum(amount),0) from vtb_verification where del_flag = 0 and activity_id = #{activityId} and verification_state = 1")
BigDecimal totalActivityVerification(@Param("activityId")String activityId);

5
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java

@ -16,6 +16,7 @@ import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.*;
import com.qs.serve.modules.vtb.entity.vo.VtbVerificationActReleaseVo;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
import com.qs.serve.modules.vtb.service.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -39,6 +40,7 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
private final VtbVerificationBatchService vtbVerificationBatchService;
private final VtbVerificationService vtbVerificationService;
private final VtbVerificationMapper vtbVerificationMapper;
private final SysUserService sysUserService;
private final VtbVerificationApplication verificationApplication;
private final VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService;
@ -80,12 +82,11 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
List<VtbVerification> verificationList = vtbVerificationBatchService.listVerifications(batch.getId());
batch.setVtbBatchStatus(VtbVerificationBatch.BatchState.CHECK_OK);
batch.setBackedTime(LocalDateTime.now());
BigDecimal totalAmt = BigDecimal.ZERO;
for (VtbVerification verification : verificationList) {
//循环调用每个核销
vtbVerificationService.successCommit(verification.getId());
totalAmt.add(verification.getAmount());
}
BigDecimal totalAmt = vtbVerificationMapper.totalVtbAmtByBatchId(batch.getId());
batch.setResultCheckAmount(totalAmt);
vtbVerificationBatchService.updateById(batch);
return null;

10
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -1428,7 +1428,15 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
activityUpdate.setId(verification.getActivityId());
activityService.updateById(activityUpdate);
}
//更新释放的核销(通过batchId区分旧版核销)
if(verification.getBatchId()!=null&&verification.getInputReleaseFlag()!=null&&verification.getInputReleaseFlag().equals(1)){
//更新活动状态
TbsActivity activityUpdate = new TbsActivity();
activityUpdate.setActivityState(TbsActivityState.STATE_4_Release);
activityUpdate.setReleaseTime(LocalDateTime.now());
activityUpdate.setId(verification.getActivityId());
activityService.updateById(activityUpdate);
}
BigDecimal totalCostApplyUsed = costApplyService.totalCostUsed(activity.getCostApplyId());
TbsCostApply updCost = new TbsCostApply();

Loading…
Cancel
Save