Browse Source

feat: 对接伟成sku同步接口

checkBack
Yen 1 year ago
parent
commit
7821875bc4
  1. 11
      src/main/java/com/qs/serve/common/model/consts/DSName.java
  2. 37
      src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java
  3. 2
      src/main/java/com/qs/serve/modules/bir/entity/BirActivityCenterGoods.java
  4. 2
      src/main/java/com/qs/serve/modules/bir/entity/BirBaseActivity.java
  5. 3
      src/main/java/com/qs/serve/modules/bir/mapper/BirActivityCenterGoodsMapper.java
  6. 3
      src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java
  7. 22
      src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java
  8. 7
      src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java
  9. 2
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java
  10. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  11. 38
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

11
src/main/java/com/qs/serve/common/model/consts/DSName.java

@ -0,0 +1,11 @@
package com.qs.serve.common.model.consts;
/**
* @author YenHex
* @since 2024/3/20
*/
public interface DSName {
String QiSheng = "qisheng";
}

37
src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java

@ -31,7 +31,9 @@ import com.qs.serve.modules.bms.service.BmsSupplierChannelService;
import com.qs.serve.modules.his.service.HisUserChannelPointService;
import com.qs.serve.modules.oss.service.OssService;
import com.qs.serve.modules.tbs.entity.TbsActivityChannel;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.service.TbsActivityChannelService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
@ -40,6 +42,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.io.*;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@ -59,6 +62,7 @@ public class BirActivityCenterGoodsController {
private OssService ossService;
private AliYunOssProperties aliYunOSSProperties;
private BirActivityCenterGoodsService centerGoodsService;
private TbsCostApplyService tbsCostApplyService;
@GetMapping("/toSyncBir")
public R<?> syncBir(Long costId){
@ -66,6 +70,39 @@ public class BirActivityCenterGoodsController {
return R.ok();
}
@GetMapping("/toSyncDev")
public R<?> syncBir(Integer idType){
LambdaQueryWrapper<TbsCostApply> lqw = new LambdaQueryWrapper<>();
// int start = (idType-1)*50000;
// int end = start + 50000;
// lqw.between(TbsCostApply::getId,start,end);
lqw.notIn(TbsCostApply::getChargeState,0,6,5,8)
.select(TbsCostApply::getId)
.eq(TbsCostApply::getCancelFlag,0)
.eq(TbsCostApply::getTmpState,0)
.gt(TbsCostApply::getTotalActivity,0)
//.notIn(TbsCostApply::getId,21452,21598,23104,23148)
.ge(TbsCostApply::getSubmitTime, LocalDate.of(2023,1,1).atStartOfDay())
.last(" limit 100");
boolean ex = extracted(lqw);
while (!ex){
ex = extracted(lqw);
}
return R.ok();
}
private boolean extracted(LambdaQueryWrapper<TbsCostApply> lqw) {
List<TbsCostApply> costApplyList = tbsCostApplyService.list(lqw);
List<Long> costIds = costApplyList.stream().map(a->a.getId()).collect(Collectors.toList());
centerGoodsService.rebuildBir(costIds);
LambdaQueryWrapper<TbsCostApply> updLqw = new LambdaQueryWrapper<>();
updLqw.in(TbsCostApply::getId,costIds);
TbsCostApply costApply = new TbsCostApply();
costApply.setTmpState(1);
tbsCostApplyService.update(costApply,updLqw);
return costIds.size()<100;
}
/**
* 翻页
* @param param

2
src/main/java/com/qs/serve/modules/bir/entity/BirActivityCenterGoods.java

@ -23,7 +23,7 @@ import javax.validation.constraints.NotBlank;
* @since 2023-07-07
*/
@Data
@TableName("bir_activity_center_goods")
@TableName("bir_activity_center_goods_qs")
public class BirActivityCenterGoods implements Serializable {
private static final long serialVersionUID = 1L;

2
src/main/java/com/qs/serve/modules/bir/entity/BirBaseActivity.java

@ -22,7 +22,7 @@ import javax.validation.constraints.NotBlank;
* @since 2023-06-05
*/
@Data
@TableName("bir_base_activity")
@TableName("bir_base_activity_qs")
public class BirBaseActivity implements Serializable {
private static final long serialVersionUID = 1L;

3
src/main/java/com/qs/serve/modules/bir/mapper/BirActivityCenterGoodsMapper.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.bir.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.common.model.consts.DSName;
import com.qs.serve.modules.bir.entity.BirActivityCenterGoods;
import com.qs.serve.modules.bir.entity.so.BirMonthCusCenterSo;
import com.qs.serve.modules.bir.entity.vo.BirActivityCenterGoodsMonthVo;
@ -19,7 +20,7 @@ import java.util.List;
* @author YenHex
* @date 2023-07-06
*/
@DS("erp_stand_ds")
@DS(DSName.QiSheng)
public interface BirActivityCenterGoodsMapper extends BaseMapper<BirActivityCenterGoods> {
//List<BirActivityCenterGoods> selectErrorBir();

3
src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.bir.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.common.model.consts.DSName;
import com.qs.serve.modules.bir.entity.BirBaseActivity;
import com.qs.serve.modules.bir.entity.dto.UnMatchBirRecord;
import com.qs.serve.modules.tbs.entity.TbsActivity;
@ -17,7 +18,7 @@ import java.util.List;
* @author YenHex
* @date 2023-06-05
*/
@DS("erp_stand_ds")
@DS(DSName.QiSheng)
public interface BirBaseActivityMapper extends BaseMapper<BirBaseActivity> {
//List<TbsActivity> selectByBirActivity(@Param("startDate") LocalDate startDate, @Param("endDate")LocalDate endDate);

22
src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java

@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.DateSplitDTO;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.DateSplitUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bir.entity.BirBaseActivity;
import com.qs.serve.modules.bir.entity.BirRemoveId;
import com.qs.serve.modules.bir.entity.dto.BirCenterGoodSplitDTO;
@ -105,9 +102,12 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
}
}
//移除历史记录
LambdaQueryWrapper<BirActivityCenterGoods> rmCostId = new LambdaQueryWrapper<>();
rmCostId.in(BirActivityCenterGoods::getCostApplyId,rmIds);
this.remove(rmCostId);
if(rmIds.size()>0){
LambdaQueryWrapper<BirActivityCenterGoods> rmCostId = new LambdaQueryWrapper<>();
rmCostId.in(BirActivityCenterGoods::getCostApplyId,rmIds);
this.remove(rmCostId);
}
//过滤需要移除的ID
costApplyIds = buildIds;
@ -208,8 +208,12 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl<BirActivityCe
bacgList.add(entity);
}
}
if(bacgList.size()>0){
this.saveBatch(bacgList);
// if(bacgList.size()>0){
// this.saveBatch(bacgList);
// }
for (BirActivityCenterGoods bir : bacgList) {
bir.setId(IdUtil.getSnowFlakeId());
super.getBaseMapper().insert(bir);
}
}
}

7
src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java

@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.DateSplitDTO;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.DateSplitUtil;
import com.qs.serve.common.util.IdUtil;
import com.qs.serve.modules.bir.entity.dto.UnMatchBirRecord;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.tbs.entity.TbsActivity;
@ -173,7 +174,11 @@ public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMappe
}
//保存
this.saveBatch(birBaseActivities);
//this.saveBatch(birBaseActivities);
for (BirBaseActivity baseActivity : birBaseActivities) {
baseActivity.setId(IdUtil.getSnowFlakeId());
super.baseMapper.insert(baseActivity);
}
}
@Override

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

@ -231,7 +231,7 @@ public class GoodsSkuController {
* @return
*/
@PostMapping("/updateBySkuCode")
public R<?> updateBySkuCode(GoodsSku param){
public R<?> updateBySkuCode(@RequestBody GoodsSku param){
param.setId(null);
param.setSpuId(null);
GoodsSku sku = goodsSkuService.getByCode(param.getSkuCode());

3
src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java

@ -235,6 +235,8 @@ public class TbsCostApply implements Serializable {
/** 验收状态: 0->未验收;1-验收中;2-部分验收;3完成 */
private Integer agreeCheckStatus;
private Integer tmpState;
@TableField(exist = false)
private String affairId;
@ -278,5 +280,6 @@ public class TbsCostApply implements Serializable {
*/
@TableField(exist = false)
List<?> changeInfoLogs;
}

38
src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

@ -680,6 +680,10 @@ public class PortalOfCostApplication {
String costCode = createBo.getCostCode();
String costTheme = createBo.getCostTheme();
if(totalAmount.compareTo(BigDecimal.ZERO)==0){
Assert.throwEx("统计金额不能为0");
}
String activityCode = costCode;
if(StringUtils.hasText(activityCode)){
@ -767,6 +771,10 @@ public class PortalOfCostApplication {
}
//活动-商品与成本中心记录
List<TbsActivityCenterGoods> activityCenterGoodsList = new ArrayList<>();
BigDecimal yx06Surplus = totalAmount;
BigDecimal yx06SurplusRate = new BigDecimal("100");
BigDecimal yx06ItemAmt = totalAmount.divide(new BigDecimal(activityGoodsList.size()), RoundingMode.DOWN);
BigDecimal yx06Rate = yx06ItemAmt.divide(totalAmount, RoundingMode.DOWN);
for (int i = 0; i < activityGoodsList.size(); i++) {
TbsActivityGoods activityGoods = activityGoodsList.get(i);
TbsActivityCenterGoods centerGoods = new TbsActivityCenterGoods();
@ -800,16 +808,30 @@ public class PortalOfCostApplication {
centerGoods.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds());
centerGoods.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames());
// 分配金额
BigDecimal totalSkuAmt = BigDecimal.ZERO;
for (ProcessGoodsItem goodsItem : processGoodsItems) {
if(goodsItem.getInventoryCode().equals(activityGoods.getTargetCode())){
totalSkuAmt = totalSkuAmt.add(goodsItem.getAmount());
if (costCode.contains("YX06")){
if(i+1==activityGoodsList.size()){
centerGoods.setCenterGoodsAmount(yx06Surplus);
centerGoods.setCenterGoodsRate(yx06SurplusRate);
centerGoods.setUsedAmount(yx06Surplus);
}else {
yx06SurplusRate = yx06SurplusRate.subtract(yx06Rate);
yx06Surplus = yx06Surplus.subtract(yx06ItemAmt);
centerGoods.setCenterGoodsAmount(yx06ItemAmt);
centerGoods.setCenterGoodsRate(yx06Rate);
centerGoods.setUsedAmount(yx06ItemAmt);
}
}else {
BigDecimal totalSkuAmt = BigDecimal.ZERO;
for (ProcessGoodsItem goodsItem : processGoodsItems) {
if(goodsItem.getInventoryCode().equals(activityGoods.getTargetCode())){
totalSkuAmt = totalSkuAmt.add(goodsItem.getAmount());
}
}
BigDecimal rate = totalSkuAmt.divide(totalAmount, RoundingMode.UP);
centerGoods.setCenterGoodsAmount(totalSkuAmt);
centerGoods.setCenterGoodsRate(rate);
centerGoods.setUsedAmount(totalSkuAmt);
}
BigDecimal rate = totalSkuAmt.divide(totalAmount, RoundingMode.UP);
centerGoods.setCenterGoodsAmount(totalSkuAmt);
centerGoods.setCenterGoodsRate(rate);
centerGoods.setUsedAmount(totalSkuAmt);
activityCenterGoodsList.add(centerGoods);
}

Loading…
Cancel
Save