|
|
@ -32,6 +32,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.sms.biz.smsgoods.SmsGoods; |
|
|
|
import com.yxt.sms.biz.smsgoods.SmsGoodsService; |
|
|
|
import com.yxt.sms.biz.smspricestrategybill.flowable.*; |
|
|
|
import com.yxt.sms.biz.smspricestrategybilldetail.SmsPricestrategyBillDetailDetailsVo; |
|
|
|
import com.yxt.sms.biz.smspricestrategybilldetail.SmsPricestrategyBillDetailDto; |
|
|
@ -55,39 +57,20 @@ import com.yxt.sms.feign.portal.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.sms.feign.portal.sysuserrole.SysUserRoleFeign; |
|
|
|
import com.yxt.sms.feign.privilege.PrivilegeQuery; |
|
|
|
import com.yxt.sms.feign.sysuser.SysUserFeign; |
|
|
|
import com.yxt.sms.feign.wms.wmsinventory.WmsInventoryFeign; |
|
|
|
import com.yxt.sms.feign.wms.wmsinventoryrecord.WmsInventoryRecordFeign; |
|
|
|
import com.yxt.sms.feign.yxtbase.BaseGoodsSkuExtendFeign; |
|
|
|
import com.yxt.sms.feign.yxtbase.BaseGoodsSkuFeign; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
|
|
|
|
import org.apache.tomcat.util.threads.ThreadPoolExecutor; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* Project: yxt-sms(价格策略) <br/> |
|
|
|
* File: SmsPricestrategyBillService.java <br/> |
|
|
|
* Class: com.yxt.sms.biz.smspricestrategybill.SmsPricestrategyBillService <br/> |
|
|
|
* Description: 价格策略申请 业务逻辑. <br/> |
|
|
|
* Copyright: Copyright (c) 2011 <br/> |
|
|
|
* Company: https://gitee.com/liuzp315 <br/>
|
|
|
|
* Makedate: 2024-03-28 14:32:24 <br/> |
|
|
|
* |
|
|
|
* @author liupopo |
|
|
|
* @version 1.0 |
|
|
|
* @since 1.0 |
|
|
|
*/ |
|
|
|
@Service |
|
|
|
public class SmsPricestrategyBillService extends MybatisBaseService<SmsPricestrategyBillMapper, SmsPricestrategyBill> { |
|
|
|
|
|
|
@ -112,13 +95,7 @@ public class SmsPricestrategyBillService extends MybatisBaseService<SmsPricestra |
|
|
|
@Autowired |
|
|
|
private SysUserRoleFeign sysUserRoleFeign; |
|
|
|
@Autowired |
|
|
|
private BaseGoodsSkuFeign baseGoodsSkuFeign; |
|
|
|
@Resource |
|
|
|
private WmsInventoryFeign wmsInventoryFeign; |
|
|
|
@Autowired |
|
|
|
private WmsInventoryRecordFeign wmsInventoryRecordFeign; |
|
|
|
@Autowired |
|
|
|
private BaseGoodsSkuExtendFeign baseGoodsSkuExtendFeign; |
|
|
|
private SmsGoodsService smsGoodsService; |
|
|
|
|
|
|
|
public PagerVo<SmsPricestrategyBillVo> listPageVo(PagerQuery<SmsPricestrategyBillQuery> pq) { |
|
|
|
SmsPricestrategyBillQuery query = pq.getParams(); |
|
|
@ -456,28 +433,14 @@ public class SmsPricestrategyBillService extends MybatisBaseService<SmsPricestra |
|
|
|
List<SmsPricestrategyBillDetailDetailsVo> smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(businessSid); |
|
|
|
for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { |
|
|
|
List<SmsPricestrategyBillGoodstypedetailDetailsVo> smsPricestrategyBillGoodstypedetailDetailsVos = smsPricestrategyBillGoodstypedetailService.selByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); |
|
|
|
List<String> skuSids = baseGoodsSkuFeign.fetchSkuSid(smsPricestrategyBillDetailDetailsVo.getGoodsTypeSid()).getData(); |
|
|
|
for (String skuSid : skuSids) { |
|
|
|
BigDecimal price = wmsInventoryFeign.compute(skuSid).getData(); |
|
|
|
if (price.compareTo(BigDecimal.ZERO) == 0) { |
|
|
|
//查找出入库记录中最后一次销售出库的销售价
|
|
|
|
BigDecimal cost = wmsInventoryRecordFeign.selCost(skuSid).getData(); |
|
|
|
if (cost.compareTo(BigDecimal.ZERO) == 1){ |
|
|
|
for (SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo : smsPricestrategyBillGoodstypedetailDetailsVos) { |
|
|
|
if (cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeStart()) != -1 && cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd()) != 1) { |
|
|
|
BigDecimal markupRate = smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate(); |
|
|
|
cost = cost.add(cost.multiply(markupRate).divide(new BigDecimal("100"))); |
|
|
|
baseGoodsSkuExtendFeign.updateSalesPrice(skuSid, cost.toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
List<SmsGoods> smsGoods = smsGoodsService.selByGoodsTypeSid(smsPricestrategyBillDetailDetailsVo.getGoodsTypeSid()); |
|
|
|
for (SmsGoods smsGood : smsGoods) { |
|
|
|
BigDecimal price = smsGood.getPrice(); |
|
|
|
for (SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo : smsPricestrategyBillGoodstypedetailDetailsVos) { |
|
|
|
if (price.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeStart()) != -1 && price.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd()) != 1) { |
|
|
|
BigDecimal markupRate = smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate(); |
|
|
|
price = price.add(price.multiply(markupRate).divide(new BigDecimal("100"))); |
|
|
|
baseGoodsSkuExtendFeign.updateSalesPrice(skuSid, price.toString()); |
|
|
|
} |
|
|
|
smsGoodsService.updateSalesPrice(smsGood.getSid(), price.toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -710,4 +673,15 @@ public class SmsPricestrategyBillService extends MybatisBaseService<SmsPricestra |
|
|
|
flowFeign.delegate(delegateQuery); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<SmsPricestrategyBillDetailDetailsVo> selByGoodsTypeSid(String goodsTypeSid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo = smsPricestrategyBillDetailService.selByGoodsTypeSid(goodsTypeSid); |
|
|
|
if (smsPricestrategyBillDetailDetailsVo == null){ |
|
|
|
return rb.success().setData(null); |
|
|
|
} |
|
|
|
List<SmsPricestrategyBillGoodstypedetailDetailsVo> smsPricestrategyBillGoodstypedetailDetailsVos = smsPricestrategyBillGoodstypedetailService.selByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); |
|
|
|
smsPricestrategyBillDetailDetailsVo.setSmsPricestrategyBillGoodstypedetailList(smsPricestrategyBillGoodstypedetailDetailsVos); |
|
|
|
return rb.success().setData(smsPricestrategyBillDetailDetailsVo); |
|
|
|
} |
|
|
|
} |