|
|
@ -55,6 +55,7 @@ import com.yxt.anrui.base.api.commoncontract.CommonContractBuscenterVo; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContractVo; |
|
|
|
import com.yxt.anrui.base.common.enums.BillTypeEnum; |
|
|
|
import com.yxt.anrui.base.common.enums.CommonContractEnum; |
|
|
|
import com.yxt.anrui.base.common.enums.VehicleState; |
|
|
|
import com.yxt.anrui.base.common.enums.VehicleStateTempOrLast; |
|
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
@ -117,6 +118,8 @@ import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; |
|
|
|
import com.yxt.anrui.crm.api.crmvehicledemand.CrmOrderVo; |
|
|
|
import com.yxt.anrui.crm.api.crmvehicledemand.CrmVehicleDemandOrderVo; |
|
|
|
import com.yxt.anrui.crm.api.crmvehicledemand.CrmVehicledemandFeign; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign; |
|
|
|
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.UnCollectionDto; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; |
|
|
@ -135,6 +138,8 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo; |
|
|
|
import com.yxt.anrui.portal.config.DictCommonType; |
|
|
|
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseFeign; |
|
|
|
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseVo; |
|
|
|
import com.yxt.common.base.config.component.FileUploadComponent; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.DateUtils; |
|
|
@ -242,6 +247,10 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
private BaseVehicleModelFeign baseVehicleModelFeign; |
|
|
|
@Autowired |
|
|
|
private BaseMiddlemanFeign baseMiddlemanFeign; |
|
|
|
@Autowired |
|
|
|
private ScmWarehouseFeign scmWarehouseFeign; |
|
|
|
@Autowired |
|
|
|
private FinUncollectedReceivablesDetailedFeign finUncollectedDetailedFeign; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
@ -3231,6 +3240,191 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
return r; |
|
|
|
} |
|
|
|
|
|
|
|
public void saveContract(OrderContractQuery orderContractQuery){ |
|
|
|
String sid = orderContractQuery.getSid(); |
|
|
|
String userSid = orderContractQuery.getUserSid(); |
|
|
|
ResultBean<AppOrderDetailsVo> resultBean = getSaleOrderDetails(sid); |
|
|
|
AppOrderDetailsVo appOrderDetailsVo = resultBean.getData(); |
|
|
|
//查询销售订单的车型信息
|
|
|
|
AppOrderModelInfoVo appOrderModelInfoVo = appOrderDetailsVo.getModelInfo(); |
|
|
|
AppOrderPriceInfoVo priceInfo = appOrderDetailsVo.getPriceInfo(); |
|
|
|
AppOrderDepositInfoVo depositInfo = appOrderDetailsVo.getDepositInfo(); |
|
|
|
String modelSid = appOrderModelInfoVo.getModelSid(); |
|
|
|
String finalContractNo = commonContractFeign.selectContractNo(userSid,modelSid).getData(); |
|
|
|
//甲方
|
|
|
|
String createOrgName = appOrderDetailsVo.getSalesOrg(); |
|
|
|
//乙方
|
|
|
|
String customerName = appOrderDetailsVo.getName(); |
|
|
|
//联系电话
|
|
|
|
String mobile = appOrderDetailsVo.getPhone(); |
|
|
|
//车辆交付地点
|
|
|
|
//根据存放地点查询
|
|
|
|
ScmWarehouseVo scmWarehouseVo = scmWarehouseFeign.fetchBySid(priceInfo.getPlannedPickUpLocationKey()).getData(); |
|
|
|
String finalAddress = ""; |
|
|
|
if(scmWarehouseVo != null){ |
|
|
|
finalAddress = scmWarehouseVo.getWarehouseAttribute(); |
|
|
|
} |
|
|
|
String depositTotal = depositInfo.getDepositTotal(); |
|
|
|
//查询台数
|
|
|
|
String num = priceInfo.getNumber(); |
|
|
|
//单台成交价
|
|
|
|
String transactionPrice = priceInfo.getSingleFinalPrice(); |
|
|
|
//新增合同信息
|
|
|
|
CommonContract commonContract = new CommonContract(); |
|
|
|
//合同编号
|
|
|
|
commonContract.setContractNo(finalContractNo); |
|
|
|
//合同类型
|
|
|
|
if (BusSalesOrderConstantUtils.TypeEnum.EXISTING_CAR.getRemarks().equals(appOrderDetailsVo.getOrderType())) { |
|
|
|
commonContract.setContractTypeKey(CommonContractEnum.contractType.XC_CONTRACT.getCode()); |
|
|
|
commonContract.setContractType(CommonContractEnum.contractType.XC_CONTRACT.getRemarks()); |
|
|
|
} else { |
|
|
|
commonContract.setContractTypeKey(CommonContractEnum.contractType.DC_CONTRACT.getCode()); |
|
|
|
commonContract.setContractType(CommonContractEnum.contractType.DC_CONTRACT.getRemarks()); |
|
|
|
} |
|
|
|
//客户sid
|
|
|
|
commonContract.setCustomerSid(appOrderDetailsVo.getCustomerSid()); |
|
|
|
//业务员sid、业务员
|
|
|
|
commonContract.setStaffSid(appOrderDetailsVo.getStaffSid()); |
|
|
|
commonContract.setCreateBySid(appOrderDetailsVo.getUserSid()); |
|
|
|
commonContract.setStaffName(appOrderDetailsVo.getSellerName()); |
|
|
|
//部门sid
|
|
|
|
commonContract.setOrgSid(appOrderDetailsVo.getOrgSid()); |
|
|
|
//业务表sid
|
|
|
|
commonContract.setBusSid(sid); |
|
|
|
//甲方名称、乙方名称、其他方名称、
|
|
|
|
commonContract.setPartyA(createOrgName); |
|
|
|
commonContract.setPartyB(customerName); |
|
|
|
//签订日期、签订地点
|
|
|
|
commonContract.setCreateDate(new Date()); |
|
|
|
commonContract.setAddress(finalAddress); |
|
|
|
//订金
|
|
|
|
commonContract.setDeposit(new BigDecimal(depositTotal)); |
|
|
|
//合同金额
|
|
|
|
commonContract.setContractAmount(appOrderDetailsVo.getPriceInfo().getTotalPrice()); |
|
|
|
//合同附件
|
|
|
|
//身份证信息附件
|
|
|
|
//车型sid
|
|
|
|
commonContract.setModelSid(appOrderModelInfoVo.getModelSid()); |
|
|
|
//车型名称
|
|
|
|
commonContract.setModelName(appOrderModelInfoVo.getModelName()); |
|
|
|
commonContract.setConfigSid(appOrderModelInfoVo.getConfigSid()); |
|
|
|
//车辆台数
|
|
|
|
commonContract.setNum(Integer.valueOf(num).intValue()); |
|
|
|
//车辆单价
|
|
|
|
commonContract.setPrice(new BigDecimal(transactionPrice)); |
|
|
|
//单台订金
|
|
|
|
commonContract.setOneDeposit(new BigDecimal(depositInfo.getDeposit())); |
|
|
|
commonContract.setCustomerType(appOrderDetailsVo.getCustomerType()); |
|
|
|
commonContract.setCustomerTypeKey(appOrderDetailsVo.getCustomerKey()); |
|
|
|
commonContractFeign.saveContract(commonContract); |
|
|
|
baseMapper.updateContractNoBySid(commonContract.getContractNo(),sid); |
|
|
|
saveFinSelect(appOrderDetailsVo,commonContract,userSid); |
|
|
|
} |
|
|
|
|
|
|
|
public void saveFinSelect(AppOrderDetailsVo appOrderDetailsVo,CommonContract commonContract,String userSid){ |
|
|
|
AppOrderModelInfoVo appOrderModelInfoVo = appOrderDetailsVo.getModelInfo(); |
|
|
|
AppOrderPriceInfoVo priceInfo = appOrderDetailsVo.getPriceInfo(); |
|
|
|
AppOrderDepositInfoVo depositInfo = appOrderDetailsVo.getDepositInfo(); |
|
|
|
//查询销售订单的单台订金与单台成交价是否相等,若不相等,则推送车款为成交价减去订金的,推送订金的为单台订金的
|
|
|
|
String singleFinalPrice = priceInfo.getSingleFinalPrice(); |
|
|
|
String deposit = depositInfo.getDeposit(); |
|
|
|
//查询台数
|
|
|
|
String num = priceInfo.getNumber(); |
|
|
|
//单台成交价
|
|
|
|
String transactionPrice = priceInfo.getSingleFinalPrice(); |
|
|
|
//单台成交价与单台订金相等
|
|
|
|
if (new BigDecimal(singleFinalPrice).compareTo(new BigDecimal(deposit)) != 0) {//推送车款
|
|
|
|
String money = new BigDecimal(singleFinalPrice).subtract(new BigDecimal(deposit)).toString(); |
|
|
|
List<VinListsVo> vinList = appOrderModelInfoVo.getVinListsVos(); |
|
|
|
for (int i = 0; i < vinList.size(); i++) { |
|
|
|
UnCollectionDto unCollectionDto = new UnCollectionDto(); |
|
|
|
//合同sid
|
|
|
|
unCollectionDto.setContractSid(commonContract.getSid()); |
|
|
|
//合同编号
|
|
|
|
unCollectionDto.setContractNo(commonContract.getContractNo()); |
|
|
|
//客户名称
|
|
|
|
unCollectionDto.setCustomerName(appOrderDetailsVo.getName()); |
|
|
|
//客户sid
|
|
|
|
unCollectionDto.setCustomerSid(appOrderDetailsVo.getCustomerSid()); |
|
|
|
//客户类型
|
|
|
|
unCollectionDto.setCustomerClass(appOrderDetailsVo.getCustomerKey()); |
|
|
|
//客户类型
|
|
|
|
unCollectionDto.setCustomerClassKey(appOrderDetailsVo.getCustomerType()); |
|
|
|
//客户头像
|
|
|
|
unCollectionDto.setCustomerImage(appOrderDetailsVo.getCustomerImage()); |
|
|
|
unCollectionDto.setReceivablesName("车款"); |
|
|
|
unCollectionDto.setCustomerPhone(appOrderDetailsVo.getPhone()); |
|
|
|
unCollectionDto.setUseOrgSid(appOrderDetailsVo.getUseOrgSid()); |
|
|
|
unCollectionDto.setVinNo(vinList.get(i).getVinNo()); |
|
|
|
unCollectionDto.setCurrentReceivableMoney(money); |
|
|
|
unCollectionDto.setUserSid(userSid); |
|
|
|
unCollectionDto.setReveivableMoney(money); |
|
|
|
unCollectionDto.setBusVinSid(vinList.get(i).getSid()); |
|
|
|
unCollectionDto.setPayType(appOrderDetailsVo.getPayType()); |
|
|
|
unCollectionDto.setPayTypeKey(appOrderDetailsVo.getPayTypeKey()); |
|
|
|
unCollectionDto.setPurchaseSystemName(appOrderDetailsVo.getPurchaseSystemName()); |
|
|
|
unCollectionDto.setPurchaseSystemSid(appOrderDetailsVo.getPurchaseSystemSid()); |
|
|
|
finUncollectedDetailedFeign.saveUnCollection(unCollectionDto); |
|
|
|
} |
|
|
|
} |
|
|
|
//添加推送至款项确认的应收未收明细中
|
|
|
|
List<VinListsVo> vinList = appOrderModelInfoVo.getVinListsVos(); |
|
|
|
//更新销售订单的临时号
|
|
|
|
if("2".equals(appOrderDetailsVo.getPayTypeKey())){//贷款
|
|
|
|
for(int i = 0; i < vinList.size(); i++){ |
|
|
|
//销售订单中车辆表的sid
|
|
|
|
String salesOrderVinSid = vinList.get(i).getSid(); |
|
|
|
String temporaryNum = String.format("%02d", i + 1); |
|
|
|
String temporaryNo = commonContract.getContractNo()+temporaryNum; |
|
|
|
//更新临时号
|
|
|
|
ResultBean busSalesOrderResultBean = busSalesOrderVehicleService.updateTemporaryNo(salesOrderVinSid,temporaryNo); |
|
|
|
} |
|
|
|
} |
|
|
|
//查询是否是结转金额,如果是,则订金金额为补交金额/台数。若为现金则为单台订金
|
|
|
|
String key = depositInfo.getDepositTypeKey(); |
|
|
|
BigDecimal bigDecimalKeyAll = new BigDecimal("0"); |
|
|
|
if ("02".equals(key)) { |
|
|
|
String makeUpAll = depositInfo.getMakeUpDeposit(); |
|
|
|
if (makeUpAll != null) { |
|
|
|
bigDecimalKeyAll = bigDecimalKeyAll.add(new BigDecimal(makeUpAll).divide(new BigDecimal(num))); |
|
|
|
} |
|
|
|
} else { |
|
|
|
bigDecimalKeyAll = bigDecimalKeyAll.add(new BigDecimal(depositInfo.getDeposit())); |
|
|
|
} |
|
|
|
if (bigDecimalKeyAll.compareTo(BigDecimal.ZERO) != 0) { |
|
|
|
for (int i = 0; i < vinList.size(); i++) { |
|
|
|
UnCollectionDto unCollectionDto = new UnCollectionDto(); |
|
|
|
//合同sid
|
|
|
|
unCollectionDto.setContractSid(commonContract.getSid()); |
|
|
|
//合同编号
|
|
|
|
unCollectionDto.setContractNo(commonContract.getContractNo()); |
|
|
|
//客户名称
|
|
|
|
unCollectionDto.setCustomerName(appOrderDetailsVo.getName()); |
|
|
|
//客户sid
|
|
|
|
unCollectionDto.setCustomerSid(appOrderDetailsVo.getCustomerSid()); |
|
|
|
//客户类型
|
|
|
|
unCollectionDto.setCustomerClass(appOrderDetailsVo.getCustomerKey()); |
|
|
|
//客户类型
|
|
|
|
unCollectionDto.setCustomerClassKey(appOrderDetailsVo.getCustomerType()); |
|
|
|
//客户头像
|
|
|
|
unCollectionDto.setCustomerImage(appOrderDetailsVo.getCustomerImage()); |
|
|
|
unCollectionDto.setReceivablesName("订金"); |
|
|
|
unCollectionDto.setCustomerPhone(appOrderDetailsVo.getPhone()); |
|
|
|
unCollectionDto.setUseOrgSid(appOrderDetailsVo.getUseOrgSid()); |
|
|
|
unCollectionDto.setVinNo(vinList.get(i).getVinNo()); |
|
|
|
unCollectionDto.setCurrentReceivableMoney(bigDecimalKeyAll.toString()); |
|
|
|
unCollectionDto.setUserSid(userSid); |
|
|
|
unCollectionDto.setReveivableMoney(depositInfo.getDeposit()); |
|
|
|
unCollectionDto.setBusVinSid(vinList.get(i).getSid()); |
|
|
|
unCollectionDto.setPayType(appOrderDetailsVo.getPayType()); |
|
|
|
unCollectionDto.setPayTypeKey(appOrderDetailsVo.getPayTypeKey()); |
|
|
|
unCollectionDto.setPurchaseSystemName(appOrderDetailsVo.getPurchaseSystemName()); |
|
|
|
unCollectionDto.setPurchaseSystemSid(appOrderDetailsVo.getPurchaseSystemSid()); |
|
|
|
finUncollectedDetailedFeign.saveUnCollection(unCollectionDto); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 办理 |
|
|
|
* |
|
|
@ -3250,6 +3444,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
} |
|
|
|
UpdateFlowFieldVo ufVo = resultBean.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
|
|
|
|
//极光推送
|
|
|
|
if (!"Event_end".equals(resultBean.getData().getTaskDefKey())) { |
|
|
|
//极光推送
|
|
|
@ -3812,6 +4007,14 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
String salesOrderSid = orderFlowableQuery.getBusinessSid(); |
|
|
|
updatePurchaseSystem(purchaseSystemName, purchaseSystemSid, salesOrderSid); |
|
|
|
} |
|
|
|
//销售订单在销售支持部经理审核后,自动生成应收,此时也可以生成合同,生成合同的同时生成合同审核待办。
|
|
|
|
if("Activity_10w0sy1".equals(bv.getTaskDefKey())){ |
|
|
|
//保存合同
|
|
|
|
OrderContractQuery orderContractQuery = new OrderContractQuery(); |
|
|
|
orderContractQuery.setSid(bv.getBusinessSid()); |
|
|
|
orderContractQuery.setUserSid(busSalesOrder.getCreateBySid()); |
|
|
|
saveContract(orderContractQuery); |
|
|
|
} |
|
|
|
} else { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
@ -3901,4 +4104,6 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper |
|
|
|
} |
|
|
|
return rb.success().setData(busSaleOrderVehicleOutVo); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |