|
|
@ -31,6 +31,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicle; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; |
|
|
|
import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApplyFeign; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusOrderAndVehInfo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; |
|
|
|
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; |
|
|
@ -89,6 +94,10 @@ import java.util.stream.Collectors; |
|
|
|
@Service |
|
|
|
public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehrebateCheckapplyMapper, ScmVehrebateCheckapply> { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private CrmCustomerTempFeign crmCustomerTempFeign; |
|
|
|
@Autowired |
|
|
|
private BusDeliveredApplyFeign busDeliveredApplyFeign; |
|
|
|
@Autowired |
|
|
|
ScmVehrebateCheckapplydetailService scmVehrebateCheckapplydetailService; |
|
|
|
@Autowired |
|
|
@ -109,6 +118,8 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba |
|
|
|
private BaseVehicleFeign baseVehicleFeign; |
|
|
|
@Autowired |
|
|
|
private FinKingDeeFeign finKingDeeFeign; |
|
|
|
@Autowired |
|
|
|
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign; |
|
|
|
public PagerVo<ScmVehrebateCheckapplyVo> listPageVo(PagerQuery<ScmVehrebateCheckapplyQuery> pq) { |
|
|
|
ScmVehrebateCheckapplyQuery query = pq.getParams(); |
|
|
|
QueryWrapper<ScmVehrebateCheckapply> qw = new QueryWrapper<>(); |
|
|
@ -417,6 +428,8 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba |
|
|
|
} |
|
|
|
scmVehRebateService.updateOnceCheckState(scmVehrebateCheckapplydetailVo.getVehRebateSid(), 1); |
|
|
|
} |
|
|
|
|
|
|
|
pushVehRebateWithVoucher(bv.getBusinessSid(),"0"); //推送返利核对凭证
|
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
@ -426,17 +439,18 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba |
|
|
|
|
|
|
|
/** |
|
|
|
* 推送单车返利核对凭证 |
|
|
|
* |
|
|
|
* @param sid,tag (0代表核对申请通过推送,1代表重推功能) |
|
|
|
*/ |
|
|
|
public void pushVehRebateWithVoucher(String sid,String tag) { |
|
|
|
public void pushVehRebateWithVoucher(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 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 = "";//摘要前缀
|
|
|
|
String summaryTag = "";//摘要前缀
|
|
|
|
ScmVehrebateCheckapply entity = fetchBySid(sid); |
|
|
|
if (null != entity) { |
|
|
|
if (StringUtils.isNotBlank(entity.getCheckApply())) { |
|
|
@ -480,8 +494,25 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba |
|
|
|
if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) { |
|
|
|
gysCode = vehicle.getManufacturerCode(); |
|
|
|
} |
|
|
|
vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8); |
|
|
|
} |
|
|
|
BusOrderAndVehInfo vehInfo = busSalesOrderVehicleFeign.selVehOrderInfoByVinNo(vinCode).getData(); |
|
|
|
if (null != vehInfo) { |
|
|
|
String deptSid = vehInfo.getDeptSid(); |
|
|
|
SysOrganizationVo salesData = sysOrganizationFeign.fetchBySid(deptSid).getData(); |
|
|
|
if (null != salesData) { |
|
|
|
salesDeptCode = salesData.getOrgCode(); |
|
|
|
} |
|
|
|
String busVinSid = vehInfo.getBusVinSid(); |
|
|
|
String customerSid = busDeliveredApplyFeign.selCustomerByBusVinSid(busVinSid).getData(); |
|
|
|
if (StringUtils.isNotBlank(customerSid)) { |
|
|
|
CrmCustomerTemp customerTemp = crmCustomerTempFeign.fetchEntity(customerSid).getData(); |
|
|
|
if (null != customerTemp) { |
|
|
|
customerCode = customerTemp.getCustomerNo(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(rebate.getUseOrgSid())) { |
|
|
|
String useOrgSid = rebate.getUseOrgSid(); |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); |
|
|
@ -489,50 +520,209 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba |
|
|
|
generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (tag.equals("0")) { |
|
|
|
if (!rebate.getRebateTypeValue().equals("金融贴息")) { |
|
|
|
//确认调整时
|
|
|
|
if (rebate.getOnceCheckState().intValue() == 0) { |
|
|
|
//没有进行过核对申请
|
|
|
|
if (StringUtils.isNotBlank(rebate.getUploadMoney())) { |
|
|
|
//一次上传金额
|
|
|
|
BigDecimal oneMoney = new BigDecimal(rebate.getUploadMoney()); |
|
|
|
if (oneMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(oneMoney); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
// String palceGenDate = rebate.getPalceGenDate();
|
|
|
|
// String[] palceGenDateSplit = palceGenDate.split("-");
|
|
|
|
// String y2 = palceGenDateSplit[0];//所属年份
|
|
|
|
// if (y1.equals(y2)) {
|
|
|
|
// voucherDetail.setSceneCode("本年");
|
|
|
|
// } else {
|
|
|
|
// voucherDetail.setSceneCode("上年");
|
|
|
|
// }
|
|
|
|
} |
|
|
|
BigDecimal yicifanli = BigDecimal.ZERO;//一次上传返利
|
|
|
|
BigDecimal yicidaizhifu= BigDecimal.ZERO;//一次待支付
|
|
|
|
BigDecimal yicidaiqueding = BigDecimal.ZERO;//一次待确定
|
|
|
|
// if (StringUtils.isNotBlank())
|
|
|
|
|
|
|
|
|
|
|
|
if (!rebate.getRebateTypeValue().equals("金融贴息")) { |
|
|
|
if (rebate.getOnceCheckState().intValue() == 0 || tag.equals("1")) { |
|
|
|
//没有进行过核对申请
|
|
|
|
BigDecimal oneMoney = BigDecimal.ZERO;//一次上传金额
|
|
|
|
BigDecimal yicifanli = BigDecimal.ZERO;//一次应收返利返利
|
|
|
|
BigDecimal yicididing = 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.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(oneMoney); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != rebate.getOnceSuppCost()) { |
|
|
|
yicididing = rebate.getOnceSuppCost(); |
|
|
|
} |
|
|
|
yicifanli = oneMoney.subtract(yicididing); |
|
|
|
if (yicifanli.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
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); |
|
|
|
} |
|
|
|
if (yicididing.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(yicididing); |
|
|
|
voucherDetail.setSceneCode("1161.04.00"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
BigDecimal twoMoney = BigDecimal.ZERO;//二次次上传金额
|
|
|
|
BigDecimal ercifanli = BigDecimal.ZERO;//二次应收返利返利
|
|
|
|
BigDecimal ercididing = 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.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(twoMoney); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != rebate.getSecondSuppCost()) { |
|
|
|
ercididing = rebate.getSecondSuppCost(); |
|
|
|
} |
|
|
|
ercifanli = twoMoney.subtract(ercididing); |
|
|
|
if (ercifanli.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
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); |
|
|
|
} |
|
|
|
if (ercididing.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(ercididing); |
|
|
|
voucherDetail.setSceneCode("1161.04.00"); |
|
|
|
voucherDetail.setRemarks("返利上传"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
//确认调整时
|
|
|
|
if (StringUtils.isNotBlank(rebate.getIsAdjustment())) { |
|
|
|
if (rebate.getIsAdjustment().equals("是")) { |
|
|
|
if (StringUtils.isNotBlank(rebate.getAdjustmentMoney())) { |
|
|
|
BigDecimal adMoney = new BigDecimal(rebate.getAdjustmentMoney()); |
|
|
|
if (adMoney.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail1.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail1.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail1.setManufacturer(gysCode); |
|
|
|
voucherDetail1.setAmount(adMoney); |
|
|
|
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); |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail2.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail2.setCustomerCode("DZFCJFL"); //客户编码
|
|
|
|
voucherDetail2.setAmount(adMoney); |
|
|
|
voucherDetail2.setSceneCode("1161.04.00"); |
|
|
|
voucherDetail2.setRemarks("预留费用调整"); |
|
|
|
voucherDetails.add(voucherDetail2); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
} else { |
|
|
|
if (rebate.getOnceCheckState().intValue() == 0 || tag.equals("1")) { |
|
|
|
//没有进行过核对申请
|
|
|
|
BigDecimal oneMoney = 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.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(oneMoney); |
|
|
|
voucherDetail.setRemarks("金融贴息"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
|
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail2.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail2.setDeptCode(salesDeptCode); //部门编码赋值
|
|
|
|
voucherDetail2.setManufacturer(gysCode); |
|
|
|
voucherDetail2.setCustomerCode(customerCode); |
|
|
|
voucherDetail2.setMaterial(vinCode); |
|
|
|
voucherDetail2.setAmount(oneMoney); |
|
|
|
String palceGenDate = rebate.getPalceGenDate(); |
|
|
|
String[] palceGenDateSplit = palceGenDate.split("-"); |
|
|
|
String y2 = palceGenDateSplit[0];//所属年份
|
|
|
|
if (y1.equals(y2)) { |
|
|
|
voucherDetail2.setSceneCode("1161.01.19"); |
|
|
|
} else { |
|
|
|
voucherDetail2.setSceneCode("1161.02.19"); |
|
|
|
} |
|
|
|
voucherDetail2.setRemarks("金融贴息"); |
|
|
|
voucherDetails.add(voucherDetail2); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
BigDecimal twoMoney = 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.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail.setSceneCode("1161.01.16"); |
|
|
|
voucherDetail.setDeptCode(deptCode); //部门编码赋值
|
|
|
|
voucherDetail.setManufacturer(gysCode); |
|
|
|
voucherDetail.setAmount(twoMoney); |
|
|
|
voucherDetail.setRemarks("金融贴息"); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail2 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail2.setTimeFlag(finalSummaryTag); |
|
|
|
voucherDetail2.setDeptCode(salesDeptCode); //部门编码赋值
|
|
|
|
voucherDetail2.setManufacturer(gysCode); |
|
|
|
voucherDetail2.setCustomerCode(customerCode); |
|
|
|
voucherDetail2.setMaterial(vinCode); |
|
|
|
voucherDetail2.setAmount(twoMoney); |
|
|
|
String palceGenDate = rebate.getPalceGenDate(); |
|
|
|
String[] palceGenDateSplit = palceGenDate.split("-"); |
|
|
|
String y2 = palceGenDateSplit[0];//所属年份
|
|
|
|
if (y1.equals(y2)) { |
|
|
|
voucherDetail2.setSceneCode("1161.01.19"); |
|
|
|
} else { |
|
|
|
voucherDetail2.setSceneCode("1161.02.19"); |
|
|
|
} |
|
|
|
voucherDetail2.setRemarks("金融贴息"); |
|
|
|
voucherDetails.add(voucherDetail2); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (tag.equals("1")) { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if (!voucherDetails.isEmpty()) { |
|
|
|
generalVoucher.setVoucherDetails(voucherDetails); |
|
|
|