|
|
@ -140,7 +140,7 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
ResultBean<CommonContract> commonContract = commonContractService.selectByNo(dto.getConcatNo()); |
|
|
|
if (commonContract.getSuccess()) { |
|
|
|
//查询合同编号和车辆sid客户的临时编码
|
|
|
|
ResultBean<String> stringResultBean = busSalesOrderFeign.selectTemporaryNo(dto.getVinSid(),dto.getConcatNo()); |
|
|
|
ResultBean<String> stringResultBean = busSalesOrderFeign.selectTemporaryNo(dto.getVinSid(), dto.getConcatNo()); |
|
|
|
if (!stringResultBean.getSuccess()) { |
|
|
|
return rb.setMsg("请检查合同是否存在"); |
|
|
|
} |
|
|
@ -459,6 +459,90 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
private SalOutStock createZSGCOutStock(BaseVehicle baseVehicle, BaseVehicleZSOutDto dto, BaseVehicleZSOutApplyDto appDto) { |
|
|
|
SalOutStock salOutStock = new SalOutStock(); |
|
|
|
//单据编号
|
|
|
|
salOutStock.setFBillNo(appDto.getBillNo() + "-1"); |
|
|
|
//日期
|
|
|
|
salOutStock.setFDate(DateUtil.today()); |
|
|
|
//分公司id
|
|
|
|
String purchaseSystemSid = baseVehicle.getPurchaseSystemSid(); |
|
|
|
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemService.fetchDetailsByDeptSid(purchaseSystemSid).getData(); |
|
|
|
salOutStock.setFSaleOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
//客户
|
|
|
|
salOutStock.setFCustomerID(appDto.getCwCustomerNo()); |
|
|
|
//销售部门id
|
|
|
|
String orgDeptSid = appDto.getOrgSid(); |
|
|
|
ResultBean<SysOrganizationVo> resultBean = sysOrganizationFeign.fetchBySid(orgDeptSid); |
|
|
|
if (resultBean.getSuccess()) { |
|
|
|
SysOrganizationVo vo = resultBean.getData(); |
|
|
|
if (vo != null) { |
|
|
|
salOutStock.setFSaleDeptID(vo.getOrgCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
//项目类别key和项目类别type
|
|
|
|
salOutStock.setF_PAEZ_AssistantType("payType"); |
|
|
|
//销售类型-外采挂车映射
|
|
|
|
salOutStock.setF_PAEZ_AssistantKey("009"); |
|
|
|
//物料列表
|
|
|
|
List<SalOutStock.FEntity> fEntityList = new ArrayList<>(); |
|
|
|
SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); |
|
|
|
//单价
|
|
|
|
fEntity.setFPrice(dto.getPrice()); |
|
|
|
//物料编码
|
|
|
|
fEntity.setFMaterialID(dto.getMaterialCode()); |
|
|
|
//仓库id
|
|
|
|
fEntity.setFStockID("ARZSCK"); |
|
|
|
fEntityList.add(fEntity); |
|
|
|
if (fEntityList.size() > 0) { |
|
|
|
salOutStock.setFEntity(fEntityList); |
|
|
|
return salOutStock; |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
private SalOutStock createZSSZOutStock(BaseVehicle baseVehicle, BaseVehicleZSOutDto dto, BaseVehicleZSOutApplyDto appDto) { |
|
|
|
SalOutStock salOutStock = new SalOutStock(); |
|
|
|
//单据编号
|
|
|
|
salOutStock.setFBillNo(appDto.getBillNo() + "-1"); |
|
|
|
//日期
|
|
|
|
salOutStock.setFDate(DateUtil.today()); |
|
|
|
//分公司id
|
|
|
|
String purchaseSystemSid = baseVehicle.getPurchaseSystemSid(); |
|
|
|
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemService.fetchDetailsByDeptSid(purchaseSystemSid).getData(); |
|
|
|
salOutStock.setFSaleOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
//客户
|
|
|
|
salOutStock.setFCustomerID(appDto.getCwCustomerNo()); |
|
|
|
//销售部门id
|
|
|
|
String orgDeptSid = appDto.getOrgSid(); |
|
|
|
ResultBean<SysOrganizationVo> resultBean = sysOrganizationFeign.fetchBySid(orgDeptSid); |
|
|
|
if (resultBean.getSuccess()) { |
|
|
|
SysOrganizationVo vo = resultBean.getData(); |
|
|
|
if (vo != null) { |
|
|
|
salOutStock.setFSaleDeptID(vo.getOrgCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
//项目类别key和项目类别type
|
|
|
|
salOutStock.setF_PAEZ_AssistantType("payType"); |
|
|
|
//销售类型-外采挂车映射
|
|
|
|
salOutStock.setF_PAEZ_AssistantKey("009"); |
|
|
|
//物料列表
|
|
|
|
List<SalOutStock.FEntity> fEntityList = new ArrayList<>(); |
|
|
|
SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); |
|
|
|
//单价
|
|
|
|
fEntity.setFPrice(dto.getPrice()); |
|
|
|
//物料编码
|
|
|
|
fEntity.setFMaterialID(dto.getMaterialCode()); |
|
|
|
//仓库id
|
|
|
|
fEntity.setFStockID("ARZSCK"); |
|
|
|
fEntityList.add(fEntity); |
|
|
|
if (fEntityList.size() > 0) { |
|
|
|
salOutStock.setFEntity(fEntityList); |
|
|
|
return salOutStock; |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean isUpdateOrInsertCrm(BaseVehicleOutDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String isUpdateOrInsertCrm = dto.getIsUpdateOrInsertCrm(); |
|
|
@ -702,6 +786,25 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
return bdCustomer; |
|
|
|
} |
|
|
|
|
|
|
|
private BdCustomer createZSBdMiddle(BaseVehicle baseVehicle, BaseVehicleZSOutDto dto) { |
|
|
|
BdCustomer bdCustomer = new BdCustomer(); |
|
|
|
BasePurchaseSystemDetailsVo data = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
bdCustomer.setTOrgIds(data.getOrgCode()); |
|
|
|
//TODO 去中介人表 查询手机号码 根据中介人sid: middleOneSid
|
|
|
|
// 拼接: bdCustomer.setFName(中介人名称(MiddleOne) + 手机号后四位);
|
|
|
|
BaseMiddleman baseMiddleman = baseMiddlemanService.fetchBySid(dto.getMiddleOneSid()); |
|
|
|
if (baseMiddleman != null) { |
|
|
|
String mobile = baseMiddleman.getMobile(); |
|
|
|
String middleOne = dto.getMiddleOne(); |
|
|
|
middleOne = middleOne + mobile.substring(mobile.length() - 4); |
|
|
|
bdCustomer.setFName(middleOne); |
|
|
|
bdCustomer.setFNumber(baseMiddleman.getMiddleCode()); |
|
|
|
} else { |
|
|
|
bdCustomer.setFName(""); |
|
|
|
} |
|
|
|
return bdCustomer; |
|
|
|
} |
|
|
|
|
|
|
|
private SalOutStock createSalOutStock(BaseVehicle baseVehicle, BaseVehicleOutDto dto) { |
|
|
|
SalOutStock salOutStock = new SalOutStock(); |
|
|
|
//单据编号
|
|
|
@ -832,6 +935,108 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private SalOutStock createZSSalOutStock(BaseVehicle baseVehicle, BaseVehicleZSOutDto dto, BaseVehicleZSOutApplyDto appDto) { |
|
|
|
SalOutStock salOutStock = new SalOutStock(); |
|
|
|
//单据编号
|
|
|
|
salOutStock.setFBillNo(appDto.getBillNo()); |
|
|
|
//日期
|
|
|
|
salOutStock.setFDate(appDto.getSaleDate()); |
|
|
|
//分公司id
|
|
|
|
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
salOutStock.setFSaleOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
//客户
|
|
|
|
salOutStock.setFCustomerID(appDto.getCwCustomerNo()); |
|
|
|
//销售部门id
|
|
|
|
String orgDeptSid = appDto.getOrgSid(); |
|
|
|
ResultBean<SysOrganizationVo> resultBean = sysOrganizationFeign.fetchBySid(orgDeptSid); |
|
|
|
if (resultBean.getSuccess()) { |
|
|
|
SysOrganizationVo vo = resultBean.getData(); |
|
|
|
if (vo != null) { |
|
|
|
salOutStock.setFSaleDeptID(vo.getOrgCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
//项目类别key和项目类别type
|
|
|
|
salOutStock.setF_PAEZ_AssistantType("payType"); |
|
|
|
//外采主车
|
|
|
|
if (baseVehicle.getManPurOrderTypeKey().equals("002")) { |
|
|
|
salOutStock.setF_PAEZ_AssistantKey("008"); |
|
|
|
} else { |
|
|
|
salOutStock.setF_PAEZ_AssistantKey(appDto.getSaleTypeKey()); |
|
|
|
} |
|
|
|
//中介单位
|
|
|
|
salOutStock.setF_PAEZ_Base(dto.getMiddleCodeOne()); |
|
|
|
//物料列表
|
|
|
|
List<SalOutStock.FEntity> fEntityList = new ArrayList<>(); |
|
|
|
SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); |
|
|
|
//单价
|
|
|
|
fEntity.setFPrice(dto.getPrice()); |
|
|
|
//物料编码
|
|
|
|
fEntity.setFMaterialID(dto.getVinNo().substring(dto.getVinNo().length() - 8)); |
|
|
|
//仓库id
|
|
|
|
fEntity.setFStockID("ARZSCK"); |
|
|
|
//销售折让
|
|
|
|
if (StringUtils.isNotBlank(dto.getSalesAllowance())) { |
|
|
|
fEntity.setF_PAEZ_Decimal3(dto.getSalesAllowance()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(dto.getGiftsDescription())) { |
|
|
|
fEntity.setF_PAEZ_Decimal4(dto.getGiftsDescription()); |
|
|
|
} |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal("0"); |
|
|
|
String remarks = dto.getRemarks(); |
|
|
|
String note = ""; |
|
|
|
if (StringUtils.isNotBlank(remarks)) { |
|
|
|
note = note + remarks; |
|
|
|
} |
|
|
|
//备注
|
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleOne())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleTwo())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "," + dto.getMiddleTwo() + dto.getRebateMoneyTwo() + "。"; |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyOne()).add(new BigDecimal(dto.getRebateMoneyTwo())).toString()); |
|
|
|
} else { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyOne()).toString()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleTwo() + dto.getRebateMoneyTwo() + "。"; |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyTwo()).toString());//dto.getRebateMoneyOne()
|
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyOne()).toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleTwo())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyOne()).toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(note)) { |
|
|
|
fEntity.setFEntrynote(note); |
|
|
|
} |
|
|
|
fEntityList.add(fEntity); |
|
|
|
if (fEntityList.size() > 0) { |
|
|
|
salOutStock.setFEntity(fEntityList); |
|
|
|
return salOutStock; |
|
|
|
} else { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<BaseVehicleOutVo> pagerList(PagerQuery<BaseVehicleOutQuery> query) { |
|
|
|
IPage<BaseVehicleOut> page = PagerUtil.queryToPage(query); |
|
|
|
BaseVehicleOutQuery params = query.getParams(); |
|
|
@ -997,10 +1202,10 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
tRebateMoney = tRebateMoney.add(rebateMoney); |
|
|
|
baseVehicleOutMaterialZC.setZstc(baseVehicleOut.getGiftsDescription()); |
|
|
|
String giftsDescription = baseVehicleOut.getGiftsDescription(); |
|
|
|
if (StringUtils.isNotBlank(giftsDescription)){ |
|
|
|
if (StringUtils.isNotBlank(giftsDescription)) { |
|
|
|
tGiftsDescription = tGiftsDescription.add(new BigDecimal(giftsDescription)); |
|
|
|
} |
|
|
|
if (baseVehicleOut.getSalesAllowance() != null){ |
|
|
|
if (baseVehicleOut.getSalesAllowance() != null) { |
|
|
|
baseVehicleOutMaterialZC.setXszr(baseVehicleOut.getSalesAllowance().toString()); |
|
|
|
tSalesAllowance = tSalesAllowance.add(baseVehicleOut.getSalesAllowance()); |
|
|
|
} |
|
|
@ -1106,6 +1311,38 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
return note; |
|
|
|
} |
|
|
|
|
|
|
|
private String createZSRemarks(BaseVehicleZSOutDto dto) { |
|
|
|
String note = ""; |
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleOne())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleTwo())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "," + dto.getMiddleTwo() + dto.getRebateMoneyTwo() + "。"; |
|
|
|
} else { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleTwo() + dto.getRebateMoneyTwo() + "。"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleTwo())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return note; |
|
|
|
} |
|
|
|
|
|
|
|
public BaseVehicleOutDetailsVo selByOrgSidAndVehSid(String useOrgSid, String vehSid) { |
|
|
|
return baseMapper.selByOrgSidAndVehSid(useOrgSid, vehSid); |
|
|
|
} |
|
|
@ -1179,4 +1416,268 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
} |
|
|
|
return baseVehicleOutVoExecls; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean vehicleZSOut(BaseVehicleZSOutApplyDto baseVehicleZSOutApplyDto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
List<BaseVehicleZSOutDto> dtos = baseVehicleZSOutApplyDto.getBaseVehicleZSOutDtos(); |
|
|
|
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(baseVehicleZSOutApplyDto.getCreateOrgSid()).getData(); |
|
|
|
for (BaseVehicleZSOutDto dto : dtos) { |
|
|
|
Boolean b = false; |
|
|
|
String vinSid = dto.getVinSid(); |
|
|
|
BdCustomer bdCustomer = new BdCustomer(); |
|
|
|
List<BdCustomer> bdCustomers = new ArrayList<>(); |
|
|
|
BaseVehicle baseVehicle = null; |
|
|
|
if (StringUtils.isNotBlank(vinSid)) { |
|
|
|
String payTypeKey = baseVehicleZSOutApplyDto.getSaleTypeKey(); |
|
|
|
baseVehicle = baseVehicleService.fetchBySid(vinSid); |
|
|
|
BasePurchaseSystemDetailsVo data = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
bdCustomer.setTOrgIds(data.getOrgCode()); |
|
|
|
//出库类型是否为全款车(001全款车)
|
|
|
|
if ("001".equals(payTypeKey)) { |
|
|
|
Boolean aBoolean = finKingDeeFeign.customerExistState(baseVehicleZSOutApplyDto.getCustomerNo()).getData(); |
|
|
|
bdCustomer.setFNumber(baseVehicleZSOutApplyDto.getCustomerNo()); |
|
|
|
if (!aBoolean) { |
|
|
|
bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + baseVehicleZSOutApplyDto.getMobile()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
String FNumber = HanZiConverterPinYin.getPinYinFirst(baseVehicleZSOutApplyDto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); |
|
|
|
Boolean aBoolean = finKingDeeFeign.customerExistState(FNumber).getData(); |
|
|
|
if (!aBoolean) { |
|
|
|
//查询合同是否存在
|
|
|
|
ResultBean<CommonContract> commonContract = commonContractService.selectByNo(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
if (commonContract.getSuccess()) { |
|
|
|
//查询合同编号和车辆sid客户的临时编码
|
|
|
|
ResultBean<String> stringResultBean = busSalesOrderFeign.selectTemporaryNo(dto.getVinSid(), baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
if (!stringResultBean.getSuccess()) { |
|
|
|
return rb.setMsg("请检查合同是否存在"); |
|
|
|
} |
|
|
|
String temporaryNo = stringResultBean.getData(); |
|
|
|
Boolean aBoolean1 = finKingDeeFeign.customerExistState(temporaryNo).getData(); |
|
|
|
if (!aBoolean1) { |
|
|
|
Boolean aBoolean2 = finKingDeeFeign.customerExistState(baseVehicleZSOutApplyDto.getCustomerNo()).getData(); |
|
|
|
if (!aBoolean2) { |
|
|
|
bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length() - 8)); |
|
|
|
String FNumber1 = HanZiConverterPinYin.getPinYinFirst(baseVehicleZSOutApplyDto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); |
|
|
|
if (FNumber1.length() > 30) { |
|
|
|
FNumber1 = FNumber1.substring(0, 30); |
|
|
|
bdCustomer.setFNumber(FNumber1); |
|
|
|
} else { |
|
|
|
bdCustomer.setFNumber(FNumber1); |
|
|
|
} |
|
|
|
bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
} else { |
|
|
|
b = true; |
|
|
|
return rb.success().setData(b); |
|
|
|
} |
|
|
|
} else { |
|
|
|
finCollectionConfirmationFeign.updateVin(dto.getVinNo(), baseVehicleZSOutApplyDto.getContractNo(), temporaryNo.substring(temporaryNo.length() - 2)); |
|
|
|
} |
|
|
|
} else { |
|
|
|
Boolean aBoolean1 = finKingDeeFeign.customerExistState(baseVehicleZSOutApplyDto.getCustomerNo()).getData(); |
|
|
|
if (!aBoolean1) { |
|
|
|
bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length() - 8)); |
|
|
|
String FNumber1 = HanZiConverterPinYin.getPinYinFirst(baseVehicleZSOutApplyDto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); |
|
|
|
if (FNumber1.length() > 30) { |
|
|
|
FNumber1 = FNumber1.substring(0, 30); |
|
|
|
bdCustomer.setFNumber(FNumber1); |
|
|
|
} else { |
|
|
|
bdCustomer.setFNumber(FNumber1); |
|
|
|
} |
|
|
|
bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
} else { |
|
|
|
b = true; |
|
|
|
return rb.success().setData(b); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//修改客户简称为合同编号
|
|
|
|
bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length() - 8)); |
|
|
|
bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
bdCustomer.setFNumber(FNumber); |
|
|
|
bdCustomer.setOldFNumber(FNumber); |
|
|
|
bdCustomers.add(bdCustomer); |
|
|
|
finKingDeeFeign.saveBdCustomers(bdCustomers); |
|
|
|
} |
|
|
|
} |
|
|
|
//查询出库的车辆是否满足出库条件
|
|
|
|
int count = baseMapper.selectCountByVinSid(dto.getVinSid()); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg(dto.getVinNo() + "车辆不满足出库条件"); |
|
|
|
} |
|
|
|
//查询是否已出库
|
|
|
|
int counts = baseMapper.selectCountBySidVin(dto.getVinSid()); |
|
|
|
if (counts > 0) { |
|
|
|
return rb.setMsg("该车辆已出库,不允许重复出库"); |
|
|
|
} |
|
|
|
//生成出库单据编号
|
|
|
|
String billNo = ""; |
|
|
|
String date = DateUtil.format(DateUtil.date(), "yyyyMM"); |
|
|
|
billNo = "XSCKD" + sysOrganizationVo.getOrgCode() + date; |
|
|
|
String i = baseMapper.selectNum(billNo); |
|
|
|
if (StringUtils.isNotBlank(i)) { |
|
|
|
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); |
|
|
|
} else { |
|
|
|
billNo = Rule.getBillNo(billNo, 0); |
|
|
|
} |
|
|
|
//出库主表信息录入
|
|
|
|
BaseVehicleOutApply baseVehicleOutApply = new BaseVehicleOutApply(); |
|
|
|
baseVehicleOutApply.setBillNo(billNo); |
|
|
|
baseVehicleOutApply.setSaleDate(baseVehicleZSOutApplyDto.getSaleDate()); |
|
|
|
baseVehicleOutApply.setCustomerSid(baseVehicleZSOutApplyDto.getCustomerSid()); |
|
|
|
baseVehicleOutApply.setCustomerName(baseVehicleZSOutApplyDto.getCustomerName()); |
|
|
|
baseVehicleOutApply.setMobile(baseVehicleZSOutApplyDto.getMobile()); |
|
|
|
baseVehicleOutApply.setOrgSid(baseVehicleZSOutApplyDto.getOrgSid()); |
|
|
|
baseVehicleOutApply.setOrgName(baseVehicleZSOutApplyDto.getOrgName()); |
|
|
|
baseVehicleOutApply.setStaffSid(baseVehicleZSOutApplyDto.getStaffSid()); |
|
|
|
baseVehicleOutApply.setStaffName(baseVehicleZSOutApplyDto.getStaffName()); |
|
|
|
baseVehicleOutApply.setMakeListSid(baseVehicleZSOutApplyDto.getCreateBySid()); |
|
|
|
baseVehicleOutApply.setMakeListName(baseVehicleZSOutApplyDto.getCreateByName()); |
|
|
|
baseVehicleOutApply.setMakeListDate(DateUtil.format(new Date(), "yyyy-MM-dd")); |
|
|
|
baseVehicleOutApply.setSaleTypeKey(baseVehicleZSOutApplyDto.getSaleTypeKey()); |
|
|
|
baseVehicleOutApply.setSaleTypeValue(baseVehicleZSOutApplyDto.getSaleTypeValue()); |
|
|
|
baseVehicleOutApply.setCreateOrgSid(baseVehicleZSOutApplyDto.getCreateOrgSid()); |
|
|
|
baseVehicleOutApply.setCreateBySid(baseVehicleZSOutApplyDto.getCreateBySid()); |
|
|
|
//内部引荐人、内部引荐人sid
|
|
|
|
baseVehicleOutApply.setInnerName(baseVehicleZSOutApplyDto.getInnerName()); |
|
|
|
baseVehicleOutApply.setInnerUserSid(baseVehicleZSOutApplyDto.getInnerUserSid()); |
|
|
|
baseVehicleOutApply.setContractNo(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
baseVehicleOutApply.setIsTerminal(baseVehicleZSOutApplyDto.getIsTerminal()); |
|
|
|
baseVehicleOutApply.setCustomerNo(bdCustomer.getFNumber()); |
|
|
|
baseVehicleOutApply.setCwCustomerNo(bdCustomer.getFNumber()); |
|
|
|
baseVehicleOutApply.setBusSid(baseVehicleZSOutApplyDto.getBusSid()); |
|
|
|
//保存车辆出库单主表
|
|
|
|
baseVehicleOutApplyService.save(baseVehicleOutApply); |
|
|
|
//构建子表数据
|
|
|
|
BaseVehicleOut baseVehicleOut = new BaseVehicleOut(); |
|
|
|
BeanUtil.copyProperties(dto, baseVehicleOut, "sid"); |
|
|
|
//主车
|
|
|
|
if (dto.getMaterialTypeKey().equals("001")) { |
|
|
|
if ("002".equals(baseVehicle.getManPurOrderTypeKey())) { |
|
|
|
baseVehicleOut.setZcMGroupCode("99.01"); |
|
|
|
baseVehicleOut.setZcMGroupName("外采主车"); |
|
|
|
} else { |
|
|
|
BaseVehicleBrand baseVehicleBrand = baseVehicleBrandService.fetchBySid(baseVehicle.getCarBrandSid()); |
|
|
|
baseVehicleOut.setZcMGroupCode(baseVehicleBrand.getBrandCode()); |
|
|
|
baseVehicleOut.setZcMGroupName(baseVehicleBrand.getBrandName()); |
|
|
|
} |
|
|
|
} else if (dto.getMaterialTypeKey().equals("002")) {//挂车
|
|
|
|
baseVehicleOut.setZcMGroupCode("99.02"); |
|
|
|
baseVehicleOut.setZcMGroupName("挂车"); |
|
|
|
//BaseTrailer baseTrailer = baseTrailerService.fetchBySid(dto.getMaterialSid());
|
|
|
|
//baseVehicleOut.setMaterialCode(baseTrailer.getVinNo().substring(baseTrailer.getVinNo().length() - 8) + "G");
|
|
|
|
baseVehicleOut.setMaterialCode(dto.getMaterialCode()); |
|
|
|
} else if (dto.getMaterialTypeKey().equals("003")) {//上装
|
|
|
|
baseVehicleOut.setZcMGroupCode("99.02"); |
|
|
|
baseVehicleOut.setZcMGroupName("挂车"); |
|
|
|
//baseVehicleOut.setMaterialCode(baseVehicleOut.getVinNo().substring(baseVehicleOut.getVinNo().length() - 8) + "SZ");
|
|
|
|
baseVehicleOut.setMaterialCode(dto.getMaterialCode()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(dto.getPrice())) { |
|
|
|
baseVehicleOut.setPrice(new BigDecimal(dto.getPrice())); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(dto.getSalesAllowance())) { |
|
|
|
baseVehicleOut.setSalesAllowance(new BigDecimal(dto.getSalesAllowance())); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { |
|
|
|
baseVehicleOut.setRebateMoneyOne(new BigDecimal(dto.getRebateMoneyOne())); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
baseVehicleOut.setRebateMoneyTwo(new BigDecimal(dto.getRebateMoneyTwo())); |
|
|
|
} |
|
|
|
//备注
|
|
|
|
String remarks1 = createZSRemarks(dto); |
|
|
|
String remarks2 = dto.getRemarks(); |
|
|
|
String remarks3 = remarks2 + remarks1; |
|
|
|
if ("null".equals(remarks3)) { |
|
|
|
remarks3 = ""; |
|
|
|
} |
|
|
|
baseVehicleOut.setRemarks(remarks3); |
|
|
|
//出库单子表关联主表sid
|
|
|
|
baseVehicleOut.setMainSid(baseVehicleOutApply.getSid()); |
|
|
|
baseVehicleOut.setCreateBySid(baseVehicleOutApply.getCreateBySid()); |
|
|
|
baseVehicleOut.setCwCustomerNo(bdCustomer.getFNumber()); |
|
|
|
baseVehicleOut.setManPurOrderTypeKey(baseVehicle.getManPurOrderTypeKey()); |
|
|
|
baseVehicleOut.setManPurOrderTypeValue(baseVehicle.getManPurOrderTypeValue()); |
|
|
|
baseVehicleOut.setBillNo(billNo); |
|
|
|
//保存车辆出库单子表
|
|
|
|
baseMapper.insert(baseVehicleOut); |
|
|
|
if (baseVehicle != null) { |
|
|
|
//更新车辆台账的出库状态等值,库存状态修改为出库,销售日期修改为当天,成交价,备注
|
|
|
|
String remarks = baseVehicleZSOutApplyDto.getContractNo() + baseVehicleZSOutApplyDto.getSaleTypeValue(); |
|
|
|
baseVehicle.setRemarks(remarks); |
|
|
|
baseVehicle.setVehicleState(VehicleState.StockEnum.OUT_STOCK.getCode()); |
|
|
|
baseVehicle.setVehicleStateValue(VehicleState.StockEnum.OUT_STOCK.getRemarks()); |
|
|
|
baseVehicle.setSalesDate(new Date()); |
|
|
|
if (StringUtils.isNotBlank(dto.getPrice())) { |
|
|
|
baseVehicle.setSalePrice(Integer.valueOf(dto.getPrice())); |
|
|
|
} |
|
|
|
baseVehicleService.updateById(baseVehicle); |
|
|
|
} |
|
|
|
////ToDo:推送财务中介单位、推送金蝶客户、推送金蝶出库单
|
|
|
|
try { |
|
|
|
if (baseVehicle != null) { |
|
|
|
//推送财务中介人
|
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleOne())) { |
|
|
|
BdCustomer bdMiddle = createZSBdMiddle(baseVehicle, dto); |
|
|
|
finKingDeeFeign.draftBdCustomer(bdMiddle); |
|
|
|
} |
|
|
|
} |
|
|
|
//创建出库单数据对象前 需要将客户的编码修改为新生成的客户的编码。
|
|
|
|
if (StringUtils.isNotBlank(bdCustomer.getFNumber())) { |
|
|
|
baseVehicleZSOutApplyDto.setCustomerNo(bdCustomer.getFNumber()); |
|
|
|
} |
|
|
|
bdCustomers.add(bdCustomer); |
|
|
|
finKingDeeFeign.draftBdCustomers(bdCustomers); |
|
|
|
baseVehicleZSOutApplyDto.setCwCustomerNo(bdCustomer.getFNumber()); |
|
|
|
if (baseVehicle != null) { |
|
|
|
//推送销售出库单
|
|
|
|
SalOutStock salOutStock = createZSSalOutStock(baseVehicle, dto, baseVehicleZSOutApplyDto); |
|
|
|
log.info("BaseVehicleOutService-vehicleOut-287:{}", JSONObject.toJSONString(salOutStock)); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
log.info("BaseVehicleOutService-vehicleOut-289:{}", JSONObject.toJSONString(salOutStock)); |
|
|
|
//推送销售专员信息
|
|
|
|
BDEmpinfo bdEmpinfo = new BDEmpinfo(); |
|
|
|
BasePurchaseSystemDetailsVo data = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
String staffSid = baseVehicleZSOutApplyDto.getStaffSid(); |
|
|
|
SysStaffinfoDetailsVo sysStaffinfoDetailsVo = sysStaffinfoFeign.fetchBySid(staffSid).getData(); |
|
|
|
bdEmpinfo.setFName(baseVehicleZSOutApplyDto.getStaffName()); |
|
|
|
bdEmpinfo.setFNumber(sysStaffinfoDetailsVo.getJobNumber()); |
|
|
|
bdEmpinfo.setFAddress(sysStaffinfoDetailsVo.getAddress()); |
|
|
|
bdEmpinfo.setFCreateOrgId(data.getOrgCode()); |
|
|
|
bdEmpinfo.setFUseOrgId(data.getOrgCode()); |
|
|
|
bdEmpinfo.setFMobile(sysStaffinfoDetailsVo.getMobile()); |
|
|
|
finKingDeeFeign.saveBDEmpinfo(bdEmpinfo); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error(e.getMessage()); |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
//推送金蝶上装/挂车销售出库单
|
|
|
|
String materialTypeKey = dto.getMaterialTypeKey(); |
|
|
|
BaseVehicle baseVehicle1 = baseVehicleService.fetchBySid(dto.getVinSid()); |
|
|
|
if (materialTypeKey.equals("002")) { |
|
|
|
SalOutStock salOutStock = createZSGCOutStock(baseVehicle1, dto, baseVehicleZSOutApplyDto); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
String gcSid = dto.getMaterialSid(); |
|
|
|
BaseTrailer baseTrailer = baseTrailerService.fetchBySid(gcSid); |
|
|
|
baseTrailer.setStockStateKey(VehicleState.StockEnum.OUT_STOCK.getCode()); |
|
|
|
baseTrailer.setStockStateValue(VehicleState.StockEnum.OUT_STOCK.getRemarks()); |
|
|
|
BigDecimal dealPrice = new BigDecimal(dto.getPrice()); |
|
|
|
baseTrailer.setDealPrice(dealPrice); |
|
|
|
baseTrailer.setIssueDate(DateUtil.formatDate(new Date())); |
|
|
|
baseTrailerService.saveOrUpdate(baseTrailer); |
|
|
|
} |
|
|
|
if (materialTypeKey.equals("003")) { |
|
|
|
SalOutStock salOutStock = createZSSZOutStock(baseVehicle1, dto, baseVehicleZSOutApplyDto); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
String szSid = dto.getMaterialSid(); |
|
|
|
BaseVehinstall baseVehinstall = baseVehinstallService.fetchBySid(szSid); |
|
|
|
baseVehinstall.setVehicleStateKey(VehicleState.StockEnum.OUT_STOCK.getCode()); |
|
|
|
baseVehinstall.setVehicleStateValue(VehicleState.StockEnum.OUT_STOCK.getRemarks()); |
|
|
|
baseVehinstall.setSalesDate(DateUtil.formatDate(new Date())); |
|
|
|
baseVehinstallService.saveOrUpdate(baseVehinstall); |
|
|
|
} |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |
|
|
|