Browse Source

出库申请推送车辆利润报表数据

master
dimengzhe 3 weeks ago
parent
commit
72552c0e91
  1. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.java
  2. 10
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml
  3. 71
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java
  4. 6
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfit.java
  5. 6
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitDto.java
  6. 3
      doc/databases/统计报表/车辆利润报表.sql

5
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.java

@ -39,6 +39,7 @@ import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApply;
import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApplyVo;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatecustomer.LoanHomevisitInvestigateCustomer;
import com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGression;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -138,4 +139,8 @@ public interface BusDeliveredApplyMapper extends BaseMapper<BusDeliveredApply> {
List<BaseVehinstall> selectInstall(String linkNo);
LoanHomevisitInvestigateCustomer getHomeVisitCustomerInfo(@Param("sid") String sid,@Param("loanSid") String loanSid);
ScmVehicleGression selectByLocationAndVin(@Param("locationSid") String locationSid, @Param("vinSid") String sid);
int selectCOuntByScmSid(String sid);
}

10
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml

@ -241,4 +241,14 @@
left join anrui_riskcenter.loan_homevisit_investigate_customer lc on lc.mainSid = li.sid
where li.saleOrderSid = #{sid} and li.saleOrderBorrowerSid = #{loanSid}
</select>
<select id="selectByLocationAndVin" resultType="com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGression">
select sg.* from anrui_scm.scm_vehicle_gression sg
left join anrui_scm.scm_vehicle_gression_veh svgv on svgv.mainSid = sg.sid
where sg.locationSid = #{locationSid} and svgv.vehSid = #{vinSid} order by sg.id desc limit 1
</select>
<select id="selectCOuntByScmSid" resultType="int">
select count(*) from scm_vehicle_gression_veh where mainSid = #{sid}
</select>
</mapper>

71
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java

@ -79,6 +79,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscount;
import com.yxt.anrui.buscenter.api.bussalesordermakeup.BusSalesOrderMakeup;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordersubmit.BusSalesOrderSubmit;
import com.yxt.anrui.buscenter.api.bussalesordersubmit.SubmitVo;
import com.yxt.anrui.buscenter.api.bussalesordertrailer.BusSalesOrderTrailer;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
@ -99,6 +100,7 @@ import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService;
import com.yxt.anrui.buscenter.biz.bussalesorderdiscount.BusSalesOrderDiscountService;
import com.yxt.anrui.buscenter.biz.bussalesorderloancontract.BusSalesOrderLoancontractService;
import com.yxt.anrui.buscenter.biz.bussalesordermakeup.BusSalesOrderMakeupService;
import com.yxt.anrui.buscenter.biz.bussalesordersubmit.BusSalesOrderSubmitService;
import com.yxt.anrui.buscenter.biz.bussalesordertrailer.BusSalesOrderTrailerService;
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService;
import com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingService;
@ -137,6 +139,7 @@ import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysparameter.SysParameterFeign;
@ -154,8 +157,12 @@ import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigate.LoanHomevisitInvest
import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatecustomer.LoanHomevisitInvestigateCustomer;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDetailsVo;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGression;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateDto;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateFeign;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVehDto;
@ -178,6 +185,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;
@ -307,6 +315,8 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
@Autowired
private CarsSoldProfitFeign carsSoldProfitFeign;
@Autowired
private BusSalesOrderSubmitService busSalesOrderSubmitService;
/**
* 构造出库申请的查询条件
@ -1189,10 +1199,10 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
Future future10 = pool.submit(() -> {
pushOtherDocument(busDeliveredApply, detailsList);
});
/* Future future13 = pool.submit(() -> {
Future future13 = pool.submit(() -> {
//推送车辆利润报表
pushCarSoldProfit(busDeliveredApply, detailsList);
});*/
});
//推送单车返利管理
String concatNo = busDeliveredApply.getContractNo();
BusSalesOrder busSalesOrder = busSalesOrderService.selectOrderByContractNo(concatNo).getData();
@ -1379,7 +1389,7 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
private void pushCarSoldProfit(BusDeliveredApply busDeliveredApply, List<BusDeliveredApplyDetails> detailsList) {
List<CarsSoldProfitDto> dtoList = new ArrayList<>();
detailsList.removeAll(Collections.singleton(null));
if(!detailsList.isEmpty()){
if (!detailsList.isEmpty()) {
BusSalesOrder busSalesOrder = busSalesOrderService.selectByContractNos(busDeliveredApply.getContractNo());
for (int i = 0; i < detailsList.size(); i++) {
BusDeliveredApplyDetails busDeliveredApplyDetails = detailsList.get(i);
@ -1390,7 +1400,29 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
carsSoldProfitDto.setCustomerSid(busSalesOrder.getCustomerSid());
carsSoldProfitDto.setCustomerName(busSalesOrder.getCustomerName());
//金融服务费
ResultBean<SolutionsDetailsVo> detailsVoResultBean = loanSolutionsFeign.selectDetailsss(busSalesOrder.getSid());
if (detailsVoResultBean.getData() != null) {
SolutionsDetailsVo solutionsDetailsVo = detailsVoResultBean.getData();
if (StringUtils.isNotBlank(solutionsDetailsVo.getServiceAmount())) {
carsSoldProfitDto.setFinanceServiceCharge(solutionsDetailsVo.getServiceAmount());
}
}
//中介返利
BigDecimal zjAll = BigDecimal.ZERO;
BusSalesOrderSubmit busSalesOrderSubmit = busSalesOrderSubmitService.selectBySaleOrderSid(busSalesOrder.getSid());
String zjReturnPrice = "";
boolean isShow = false;
if (StringUtils.isNotBlank(busSalesOrderSubmit.getDistributorName())) {
if (busSalesOrderSubmit.getDistributorPrice() != null) {
zjAll = zjAll.add(busSalesOrderSubmit.getDistributorPrice());
}
}
if (StringUtils.isNotBlank(busSalesOrderSubmit.getDistributorNameTwo())) {
if (busSalesOrderSubmit.getDistributorPriceTwo() != null) {
zjAll = zjAll.add(busSalesOrderSubmit.getDistributorPriceTwo());
}
}
carsSoldProfitDto.setMediatorRebatePrice(zjAll.toString());
//车辆台账中取
carsSoldProfitDto.setOrgSidPath(baseVehicle.getOrgSidPath());
@ -1407,6 +1439,7 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
carsSoldProfitDto.setPurchaseSystemSid(baseVehicle.getPurchaseSystemSid());
carsSoldProfitDto.setPurchaseSystemName(baseVehicle.getPurchaseSystemName());
//入库价
carsSoldProfitDto.setCostPrice(baseVehicle.getCostPrice().toString());
//出库价
carsSoldProfitDto.setExStockPrice(baseVehicle.getContractPrice().toString());
//存放地点
@ -1414,25 +1447,31 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
carsSoldProfitDto.setLocationName(baseVehicle.getLocationName());
//厂家结算价
carsSoldProfitDto.setMakersSettlementPrice(baseVehicle.getSettlePrice().toString());
//排产订单编号
//变速箱
carsSoldProfitDto.setSchedulingId(baseVehicle.getOrderingNo());
//数据日期
carsSoldProfitDto.setCreateDate(new Date());
//事业部
List<String> stringList = Arrays.asList(carsSoldProfitDto.getOrgSidPath().split("/"));
String busSid = stringList.get(1);
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(busSid).getData();
carsSoldProfitDto.setDivision(sysOrganization.getName());
carsSoldProfitDto.setDivisionSid(busSid);
dtoList.add(carsSoldProfitDto);
//查询存放地点变更的申请经费以及台数
ScmVehicleGression scmVehicleGression = baseMapper.selectByLocationAndVin(carsSoldProfitDto.getLocationSid(),baseVehicle.getSid());
if(scmVehicleGression != null){
BigDecimal allMon = BigDecimal.ZERO;
String applicantFunds = scmVehicleGression.getApplicantFunds();
int vount = baseMapper.selectCOuntByScmSid(scmVehicleGression.getSid());
if(StringUtils.isNotBlank(applicantFunds) && new BigDecimal(applicantFunds).compareTo(BigDecimal.ZERO)>0){
allMon = new BigDecimal(applicantFunds).divide(new BigDecimal(vount),2, RoundingMode.HALF_UP);
}
carsSoldProfitDto.setMoveCarPrice(allMon.toString());
}
}
}
if(!dtoList.isEmpty()){
if (!dtoList.isEmpty()) {
ResultBean resultBean = carsSoldProfitFeign.saveOrUpdate(dtoList);
}
}

6
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfit.java

@ -77,4 +77,10 @@ public class CarsSoldProfit extends BaseEntity {
private Date createDate;
@ApiModelProperty("更新日期")
private Date updateDate;
@ApiModelProperty("入库价")
private BigDecimal costPrice;
@ApiModelProperty("事业部")
private String division;
private String divisionSid;
}

6
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/carsSoldProfit/CarsSoldProfitDto.java

@ -75,4 +75,10 @@ public class CarsSoldProfitDto {
private Date createDate;
@ApiModelProperty("更新日期")
private Date updateDate;
private String costPrice;
@ApiModelProperty("事业部")
private String division;
private String divisionSid;
}

3
doc/databases/统计报表/车辆利润报表.sql

@ -20,6 +20,8 @@ CREATE TABLE `car_sold_profit`
`saleDate` varchar(64) DEFAULT NULL COMMENT '销售日期',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司名称',
`division` varchar(64) DEFAULT NULL COMMENT '事业部名称',
`divisionSid` varchar(64) DEFAULT NULL COMMENT '事业部sid',
`vehModelSid` varchar(64) DEFAULT NULL COMMENT '车型sid',
`vehModel` varchar(64) DEFAULT NULL COMMENT '车型',
`vehMConfigSid` varchar(64) DEFAULT NULL COMMENT '车型配置sid',
@ -40,6 +42,7 @@ CREATE TABLE `car_sold_profit`
`financeServiceCharge` decimal(10, 2) DEFAULT NULL COMMENT '金融服务费',
`mediatorRebatePrice` decimal(10, 2) DEFAULT NULL COMMENT '中介返利费',
`moveCarPrice` decimal(10, 2) DEFAULT NULL COMMENT '调车费',
`costPrice` decimal(10, 2) DEFAULT NULL COMMENT '入库价',
`schedulingId` varchar(500) DEFAULT NULL COMMENT '排产订单编号',
`gearbox` varchar(500) DEFAULT NULL COMMENT '变速箱',
`createDate` date DEFAULT NULL COMMENT '数据日期',

Loading…
Cancel
Save