|
|
@ -26,10 +26,15 @@ |
|
|
|
package com.yxt.anrui.scm.biz.scmspecialrebatecheckapply; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturer; |
|
|
|
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturerFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand; |
|
|
|
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrandFeign; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
|
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; |
|
|
@ -37,6 +42,8 @@ import com.yxt.anrui.flowable.api.flow2.FlowFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; |
|
|
|
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; |
|
|
|
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; |
|
|
@ -44,41 +51,43 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.scm.api.flow.FlowTaskVo; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebate; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateVo; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.*; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.flow.GetNodeQuery; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.flow.GetNodeVo; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.flow.ScmSpecialRebateCheckApplyDelegateQuery; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.flow.SubmitScmSpecialRebateCheckApplyDto; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapplydetail.ScmSpecialrebateCheckapplydetail; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapplydetail.ScmSpecialrebateCheckapplydetailDetailsVo; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapplydetail.ScmSpecialrebateCheckapplydetailDto; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapplydetail.ScmSpecialrebateCheckapplydetailVo; |
|
|
|
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebate; |
|
|
|
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailVo; |
|
|
|
import com.yxt.anrui.scm.biz.scmspecialrebate.ScmSpecialRebateService; |
|
|
|
import com.yxt.anrui.scm.biz.scmspecialrebatecheckapplydetail.ScmSpecialrebateCheckapplydetailService; |
|
|
|
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.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapply; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyQuery; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyVo; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyDetailsVo; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.ScmSpecialrebateCheckapplyDto; |
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class ScmSpecialrebateCheckapplyService extends MybatisBaseService<ScmSpecialrebateCheckapplyMapper, ScmSpecialrebateCheckapply> { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private FinKingDeeFeign finKingDeeFeign; |
|
|
|
@Autowired |
|
|
|
private BaseVehicleBrandFeign baseVehicleBrandFeign; |
|
|
|
@Autowired |
|
|
|
private BaseManufacturerFeign baseManufacturerFeign; |
|
|
|
@Autowired |
|
|
|
private SysOrganizationFeign sysOrganizationFeign; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
private ScmSpecialrebateCheckapplydetailService scmSpecialrebateCheckapplydetailService; |
|
|
|
@Autowired |
|
|
@ -380,6 +389,452 @@ public class ScmSpecialrebateCheckapplyService extends MybatisBaseService<ScmSpe |
|
|
|
return baseMapper.updateFlowFiled(beanToMap); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 推送单车返利核对凭证 |
|
|
|
* |
|
|
|
* @param sid,tag (0代表核对申请通过推送,1代表重推功能) |
|
|
|
*/ |
|
|
|
public void pushSpecialRebateWithVoucher(String sid, String tag) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
Calendar calendar = Calendar.getInstance(); |
|
|
|
int month = calendar.get(Calendar.MONTH); |
|
|
|
calendar.set(Calendar.MONTH, month - 1); |
|
|
|
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); |
|
|
|
Date endTime = calendar.getTime();//上个月最后一天
|
|
|
|
String format = sdf.format(endTime); |
|
|
|
String summaryTag = "";//摘要前缀
|
|
|
|
ScmSpecialrebateCheckapply entity = fetchBySid(sid); |
|
|
|
if (null != entity) { |
|
|
|
if (StringUtils.isNotBlank(entity.getCheckApply())) { |
|
|
|
summaryTag = entity.getCheckApply(); |
|
|
|
} |
|
|
|
} |
|
|
|
List<ScmSpecialRebate> scmVehRebates = new ArrayList<>(); |
|
|
|
List<ScmSpecialrebateCheckapplydetailVo> scmVehrebateCheckapplydetailVos = scmSpecialrebateCheckapplydetailService.selByMainSid(sid); |
|
|
|
if (!scmVehrebateCheckapplydetailVos.isEmpty()) { |
|
|
|
for (ScmSpecialrebateCheckapplydetailVo s : scmVehrebateCheckapplydetailVos) { |
|
|
|
ScmSpecialRebate v = scmSpecialRebateService.fetchBySid(s.getSpecialRebateSid()); |
|
|
|
if (null != v) { |
|
|
|
scmVehRebates.add(v); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//按照采购系统分组
|
|
|
|
if (!scmVehRebates.isEmpty()) { |
|
|
|
Map<String, List<ScmSpecialRebate>> map = scmVehRebates.stream().collect(Collectors.groupingBy(ScmSpecialRebate::getPurchaseSystemSid)); |
|
|
|
String finalSummaryTag = summaryTag; |
|
|
|
String[] split = finalSummaryTag.split("年"); |
|
|
|
String y1 = split[0]; //预提申请标题年份
|
|
|
|
map.forEach((k, v) -> { |
|
|
|
List<ScmSpecialRebate> rebates = v; |
|
|
|
GeneralVoucher generalVoucher = new GeneralVoucher(); |
|
|
|
generalVoucher.setBussDate(format); |
|
|
|
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>(); |
|
|
|
if (!v.isEmpty()) { |
|
|
|
for (ScmSpecialRebate rebate : v) { |
|
|
|
if (StringUtils.isNotBlank(rebate.getUseOrgSid())) { |
|
|
|
String useOrgSid = rebate.getUseOrgSid(); |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); |
|
|
|
if (null != organizationVo) { |
|
|
|
generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
String deptCode = "";//部门编码
|
|
|
|
String gysCode = "";//厂商编码
|
|
|
|
SysOrganizationVo data = sysOrganizationFeign.fetchBySid(rebate.getPurchaseSystemSid()).getData(); |
|
|
|
if (null != data) { |
|
|
|
deptCode = data.getOrgCode(); |
|
|
|
|
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(rebate.getBrandSid())) { |
|
|
|
String brandSid = rebate.getBrandSid(); |
|
|
|
BaseVehicleBrand baseVehicleBrand = baseVehicleBrandFeign.fetchBySid(brandSid); |
|
|
|
if (null != baseVehicleBrand) { |
|
|
|
String manufacturerSid = baseVehicleBrand.getManufacturerSid(); |
|
|
|
if (StringUtils.isNotBlank(manufacturerSid)) { |
|
|
|
BaseManufacturer baseManufacturer = baseManufacturerFeign.fetchBySid(manufacturerSid).getData(); |
|
|
|
if (null != baseManufacturer) { |
|
|
|
gysCode = baseManufacturer.getManufacturerCode(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (!rebate.getRebateTypeValue().equals("行销活动")) { |
|
|
|
if (rebate.getOnceCheckState().intValue() == 0 || tag.equals("1")) { |
|
|
|
//没有进行过核对申请
|
|
|
|
BigDecimal oneMoney = BigDecimal.ZERO;//一次上传金额
|
|
|
|
BigDecimal yicifanli = BigDecimal.ZERO;//一次应收返利返利
|
|
|
|
BigDecimal yicididing = BigDecimal.ZERO;//一次抵顶费用
|
|
|
|
BigDecimal yizhichufeiyong = BigDecimal.ZERO;//一次支出费用
|
|
|
|
BigDecimal feiyong = BigDecimal.ZERO;//一次合计费用
|
|
|
|
if (StringUtils.isNotBlank(rebate.getUploadMoney())) { |
|
|
|
oneMoney = new BigDecimal(rebate.getUploadMoney()); |
|
|
|
if (oneMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setType("非行销"); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(oneMoney); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != rebate.getOnceItureCost()) { |
|
|
|
yizhichufeiyong = rebate.getOnceItureCost(); |
|
|
|
} |
|
|
|
if (null != rebate.getOnceSuppCost()) { |
|
|
|
yicididing = rebate.getOnceSuppCost(); |
|
|
|
} |
|
|
|
yicifanli = oneMoney.subtract(yicididing).subtract(yizhichufeiyong); |
|
|
|
if (yicifanli.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setType("非行销"); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(yicifanli); |
|
|
|
String palceGenDate = rebate.getPalceGenDate(); |
|
|
|
String[] palceGenDateSplit = palceGenDate.split("-"); |
|
|
|
String y2 = palceGenDateSplit[0];//所属年份
|
|
|
|
if (y1.equals(y2)) { |
|
|
|
voucherDetail.setSceneCode("1161.01.15"); |
|
|
|
} else { |
|
|
|
voucherDetail.setSceneCode("1161.02.15"); |
|
|
|
} |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
feiyong = yizhichufeiyong.add(yicididing); |
|
|
|
if (feiyong.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setType("非行销"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(feiyong); |
|
|
|
voucherDetail.setSceneCode("1161.04.00"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
BigDecimal twoMoney = BigDecimal.ZERO;//二次次上传金额
|
|
|
|
BigDecimal ercifanli = BigDecimal.ZERO;//二次应收返利返利
|
|
|
|
BigDecimal ercididing = BigDecimal.ZERO;//二次抵顶费用
|
|
|
|
BigDecimal erzhichufeiyong = BigDecimal.ZERO;//一次支出费用
|
|
|
|
BigDecimal erfeiyong = BigDecimal.ZERO;//二次合计费用
|
|
|
|
if (StringUtils.isNotBlank(rebate.getSecondaryUploadMoney())) { |
|
|
|
twoMoney = new BigDecimal(rebate.getSecondaryUploadMoney()); |
|
|
|
if (twoMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setType("非行销"); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(twoMoney); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != rebate.getSecondItureCost()) { |
|
|
|
erzhichufeiyong = rebate.getSecondItureCost(); |
|
|
|
} |
|
|
|
if (null != rebate.getSecondSuppCost()) { |
|
|
|
ercididing = rebate.getSecondSuppCost(); |
|
|
|
} |
|
|
|
ercifanli = twoMoney.subtract(ercididing).subtract(erzhichufeiyong); |
|
|
|
if (ercifanli.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setType("非行销"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(ercifanli); |
|
|
|
String palceGenDate = rebate.getPalceGenDate(); |
|
|
|
String[] palceGenDateSplit = palceGenDate.split("-"); |
|
|
|
String y2 = palceGenDateSplit[0];//所属年份
|
|
|
|
if (y1.equals(y2)) { |
|
|
|
voucherDetail.setSceneCode("1161.01.15"); |
|
|
|
} else { |
|
|
|
voucherDetail.setSceneCode("1161.02.15"); |
|
|
|
} |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
erfeiyong = erzhichufeiyong.add(ercididing); |
|
|
|
if (ercididing.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setType("非行销"); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(erfeiyong); |
|
|
|
voucherDetail.setSceneCode("1161.04.00"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
//确认调整时
|
|
|
|
if (StringUtils.isNotBlank(rebate.getIsAdjustment())) { |
|
|
|
if (rebate.getIsAdjustment().equals("是")) { |
|
|
|
BigDecimal adMoney = BigDecimal.ZERO;//返利差额
|
|
|
|
BigDecimal daizhifuchaMoney = BigDecimal.ZERO;//待支付差额
|
|
|
|
BigDecimal yingshouMoney = BigDecimal.ZERO;//应收返利
|
|
|
|
if (StringUtils.isNotBlank(rebate.getAdjustmentMoney())) { |
|
|
|
adMoney = new BigDecimal(rebate.getAdjustmentMoney()); |
|
|
|
} |
|
|
|
if (null != rebate.getOnceTreatCost()) { |
|
|
|
daizhifuchaMoney = daizhifuchaMoney.add(rebate.getOnceTreatCost()); |
|
|
|
} |
|
|
|
if (null != rebate.getSecondTreatCost()) { |
|
|
|
daizhifuchaMoney = daizhifuchaMoney.add(rebate.getSecondTreatCost()); |
|
|
|
} |
|
|
|
if (null != rebate.getExpectTreatCost()) { |
|
|
|
daizhifuchaMoney = daizhifuchaMoney.subtract(rebate.getExpectTreatCost()); |
|
|
|
} |
|
|
|
yingshouMoney = adMoney.add(daizhifuchaMoney); |
|
|
|
if (yingshouMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail1.setType("非行销"); |
|
|
|
voucherDetail1.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail1.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail1.setManufacturer(gysCode); |
|
|
|
voucherDetail1.setAmount(yingshouMoney); |
|
|
|
String palceGenDate = rebate.getPalceGenDate(); |
|
|
|
String[] palceGenDateSplit = palceGenDate.split("-"); |
|
|
|
String y2 = palceGenDateSplit[0];//所属年份
|
|
|
|
if (y1.equals(y2)) { |
|
|
|
voucherDetail1.setSceneCode("1161.01.15"); |
|
|
|
} else { |
|
|
|
voucherDetail1.setSceneCode("1161.02.15"); |
|
|
|
} |
|
|
|
voucherDetail1.setRemarks("返利调整"); |
|
|
|
voucherDetails.add(voucherDetail1); |
|
|
|
} |
|
|
|
if (adMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail1.setType("非行销"); |
|
|
|
voucherDetail1.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail1.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail1.setAmount(adMoney); |
|
|
|
voucherDetail1.setSceneCode("6401.13"); |
|
|
|
voucherDetail1.setRemarks("返利调整"); |
|
|
|
voucherDetails.add(voucherDetail1); |
|
|
|
} |
|
|
|
if (daizhifuchaMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail2.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail2.setType("非行销"); |
|
|
|
voucherDetail2.setCustomerCode("DZFCJFL"); //客户编码
|
|
|
|
voucherDetail2.setAmount(daizhifuchaMoney); |
|
|
|
voucherDetail2.setSceneCode("2181.07.00"); |
|
|
|
voucherDetail2.setRemarks("返利调整"); |
|
|
|
voucherDetails.add(voucherDetail2); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (rebate.getOnceCheckState().intValue() == 0 || tag.equals("1")) { |
|
|
|
//没有进行过核对申请
|
|
|
|
BigDecimal oneMoney = BigDecimal.ZERO;//一次上传金额
|
|
|
|
BigDecimal yicidaizhifu = BigDecimal.ZERO;//一次待支付金额
|
|
|
|
BigDecimal yicididing = BigDecimal.ZERO;//一次抵顶费用
|
|
|
|
BigDecimal yizhichufeiyong = BigDecimal.ZERO;//一次支出费用
|
|
|
|
BigDecimal feiyong = BigDecimal.ZERO;//一次合计费用
|
|
|
|
if (StringUtils.isNotBlank(rebate.getUploadMoney())) { |
|
|
|
oneMoney = new BigDecimal(rebate.getUploadMoney()); |
|
|
|
|
|
|
|
} |
|
|
|
if (null != rebate.getOnceItureCost()) { |
|
|
|
yizhichufeiyong = rebate.getOnceItureCost(); |
|
|
|
} |
|
|
|
if (null != rebate.getOnceSuppCost()) { |
|
|
|
yicididing = rebate.getOnceSuppCost(); |
|
|
|
} |
|
|
|
if (null != rebate.getOnceTreatCost()) { |
|
|
|
yicidaizhifu = rebate.getOnceTreatCost(); |
|
|
|
} |
|
|
|
feiyong = oneMoney.subtract(yicidaizhifu).subtract(yizhichufeiyong).subtract(yicididing); |
|
|
|
if (oneMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(oneMoney); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
if (yicidaizhifu.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setCustomerCode("DZFCJFL"); |
|
|
|
voucherDetail.setSceneCode("2181.07.00"); |
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(yicidaizhifu); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
if (yizhichufeiyong.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(yizhichufeiyong); |
|
|
|
voucherDetail.setSceneCode("1161.03.00"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
if (yicididing.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(yicididing); |
|
|
|
voucherDetail.setSceneCode("1161.04.00"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
if (feiyong.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setAmount(feiyong); |
|
|
|
voucherDetail.setSceneCode("6401.14"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
BigDecimal twoMoney = BigDecimal.ZERO;//二次上传金额
|
|
|
|
BigDecimal ercidaizhifu = BigDecimal.ZERO;//二次待支付金额
|
|
|
|
BigDecimal ercididing = BigDecimal.ZERO;//二次抵顶费用
|
|
|
|
BigDecimal erzhichufeiyong = BigDecimal.ZERO;//二次支出费用
|
|
|
|
BigDecimal erfeiyong = BigDecimal.ZERO;//二次合计费用
|
|
|
|
if (StringUtils.isNotBlank(rebate.getSecondaryUploadMoney())) { |
|
|
|
twoMoney = new BigDecimal(rebate.getSecondaryUploadMoney()); |
|
|
|
} |
|
|
|
if (null != rebate.getSecondItureCost()) { |
|
|
|
erzhichufeiyong = rebate.getSecondItureCost(); |
|
|
|
} |
|
|
|
if (null != rebate.getSecondSuppCost()) { |
|
|
|
ercididing = rebate.getSecondSuppCost(); |
|
|
|
} |
|
|
|
if (null != rebate.getSecondTreatCost()) { |
|
|
|
ercidaizhifu = rebate.getSecondTreatCost(); |
|
|
|
} |
|
|
|
erfeiyong = twoMoney.subtract(ercidaizhifu).subtract(erzhichufeiyong).subtract(ercididing); |
|
|
|
if (twoMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(twoMoney); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
if (ercidaizhifu.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setCustomerCode("DZFCJFL"); |
|
|
|
voucherDetail.setSceneCode("2181.07.00"); |
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(ercidaizhifu); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
if (erzhichufeiyong.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(erzhichufeiyong); |
|
|
|
voucherDetail.setSceneCode("1161.03.00"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
if (ercididing.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(ercididing); |
|
|
|
voucherDetail.setSceneCode("1161.04.00"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
if (erfeiyong.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setType("行销活动"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setAmount(erfeiyong); |
|
|
|
voucherDetail.setSceneCode("6401.14"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
//确认调整时
|
|
|
|
if (StringUtils.isNotBlank(rebate.getIsAdjustment())) { |
|
|
|
if (rebate.getIsAdjustment().equals("是")) { |
|
|
|
BigDecimal daizhifuchaMoney = BigDecimal.ZERO;//待支付差额
|
|
|
|
if (null != rebate.getOnceItureCost()) { |
|
|
|
daizhifuchaMoney = daizhifuchaMoney.add(rebate.getOnceItureCost()); |
|
|
|
} |
|
|
|
if (null != rebate.getSecondItureCost()) { |
|
|
|
daizhifuchaMoney = daizhifuchaMoney.add(rebate.getSecondItureCost()); |
|
|
|
} |
|
|
|
if (null != rebate.getExpectItureCost()) { |
|
|
|
daizhifuchaMoney = daizhifuchaMoney.subtract(rebate.getExpectItureCost()); |
|
|
|
} |
|
|
|
if (daizhifuchaMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail1.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail1.setType("行销活动"); |
|
|
|
voucherDetail1.setDeptCode(deptCode); |
|
|
|
voucherDetail1.setManufacturer(gysCode); |
|
|
|
voucherDetail1.setAmount(daizhifuchaMoney); |
|
|
|
voucherDetail1.setSceneCode("1161.03.00"); |
|
|
|
voucherDetail1.setRemarks("返利调整"); |
|
|
|
voucherDetails.add(voucherDetail1); |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail2.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail2.setType("行销活动"); |
|
|
|
voucherDetail2.setDeptCode(deptCode); |
|
|
|
voucherDetail2.setAmount(daizhifuchaMoney); |
|
|
|
voucherDetail2.setSceneCode("6401.14"); |
|
|
|
voucherDetail2.setRemarks("返利调整"); |
|
|
|
voucherDetails.add(voucherDetail2); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if (!voucherDetails.isEmpty()) { |
|
|
|
generalVoucher.setVoucherDetails(voucherDetails); |
|
|
|
finKingDeeFeign.saveRebateSpecialReviewVoucher(generalVoucher); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ResultBean complete(BusinessVariables bv) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
ScmSpecialrebateCheckapply scmSpecialrebateCheckapply = fetchBySid(bv.getBusinessSid()); |
|
|
@ -401,6 +856,8 @@ public class ScmSpecialrebateCheckapplyService extends MybatisBaseService<ScmSpe |
|
|
|
} |
|
|
|
scmSpecialRebateService.updateOnceCheckState(scmSpecialrebateCheckapplydetailVo.getSpecialRebateSid(), 1); |
|
|
|
} |
|
|
|
|
|
|
|
pushSpecialRebateWithVoucher(bv.getBusinessSid(),"0"); |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
|