|
|
@ -998,7 +998,6 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
} else { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<BaseVehicleOutVo> pagerList(PagerQuery<BaseVehicleOutQuery> query) { |
|
|
@ -1423,27 +1422,36 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
baseVehicleOutApply.setBusSid(baseVehicleZSOutApplyDto.getBusSid()); |
|
|
|
//保存车辆出库单主表
|
|
|
|
baseVehicleOutApplyService.save(baseVehicleOutApply); |
|
|
|
//出库类型是否为全款车(001全款车)
|
|
|
|
//获取主车sid
|
|
|
|
String materialSid = zcDtos.get(0).getMaterialSid(); |
|
|
|
BaseVehicleZSOutDto baseVehicleZSOutDto1 = zcDtos.get(0); |
|
|
|
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(materialSid); |
|
|
|
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
List<BdCustomer> bdCustomersQKC = new ArrayList<>(); |
|
|
|
BdCustomer bdCustomerQKC = new BdCustomer(); |
|
|
|
String payTypeKey = baseVehicleZSOutApplyDto.getSaleTypeKey(); |
|
|
|
if ("001".equals(payTypeKey)) {//全款
|
|
|
|
Boolean aBoolean = finKingDeeFeign.customerExistState(baseVehicleZSOutApplyDto.getContractNo()).getData(); |
|
|
|
//不存在
|
|
|
|
if (!aBoolean) { |
|
|
|
bdCustomerQKC.setFNumber(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
bdCustomerQKC.setFName(baseVehicleZSOutApplyDto.getCustomerName() + bdCustomerQKC.getFNumber()); |
|
|
|
bdCustomerQKC.setTOrgIds(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
bdCustomersQKC.add(bdCustomerQKC); |
|
|
|
finKingDeeFeign.draftBdCustomers(bdCustomersQKC); |
|
|
|
} |
|
|
|
} |
|
|
|
//声明贷款时,合同编号数字
|
|
|
|
int j = 1; |
|
|
|
//主车
|
|
|
|
for (BaseVehicleZSOutDto dto : zcDtos) { |
|
|
|
Boolean b = false; |
|
|
|
//获取主车sid
|
|
|
|
String materialSid = dto.getMaterialSid(); |
|
|
|
List<BdCustomer> bdCustomers = new ArrayList<>(); |
|
|
|
BdCustomer bdCustomer = new BdCustomer(); |
|
|
|
String payTypeKey = baseVehicleZSOutApplyDto.getSaleTypeKey(); |
|
|
|
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(materialSid); |
|
|
|
BasePurchaseSystemDetailsVo data = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
bdCustomer.setTOrgIds(data.getOrgCode()); |
|
|
|
bdCustomer.setTOrgIds(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
//出库类型是否为全款车(001全款车)
|
|
|
|
if ("001".equals(payTypeKey)) { |
|
|
|
Boolean aBoolean = finKingDeeFeign.customerExistState(baseVehicleZSOutApplyDto.getContractNo()).getData(); |
|
|
|
if (!aBoolean) { |
|
|
|
bdCustomer.setFNumber(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + bdCustomer.getFNumber()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (!"001".equals(payTypeKey)) {//贷款
|
|
|
|
String num = String.format("%02d", j); |
|
|
|
String FNumber = baseVehicleZSOutApplyDto.getContractNo() + num; |
|
|
|
j = j++; |
|
|
@ -1451,12 +1459,12 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
if (!aBoolean) { |
|
|
|
bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length() - 8)); |
|
|
|
bdCustomer.setFNumber(FNumber); |
|
|
|
bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getCustomerName() + FNumber); |
|
|
|
} else { |
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.fetchByLSBM(FNumber).getData(); |
|
|
|
//修改客户简称为合同编号
|
|
|
|
bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + busSalesOrderVehicle.getLinkNo().substring(busSalesOrderVehicle.getLinkNo().length() - 8)); |
|
|
|
bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getContractNo()); |
|
|
|
bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getCustomerName() + busSalesOrderVehicle.getLinkNo()); |
|
|
|
bdCustomer.setFNumber(FNumber); |
|
|
|
bdCustomer.setOldFNumber(FNumber); |
|
|
|
bdCustomers.add(bdCustomer); |
|
|
@ -1554,37 +1562,46 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
baseVehicle.setSalePrice(Integer.valueOf(dto.getPrice())); |
|
|
|
} |
|
|
|
baseVehicleService.updateById(baseVehicle); |
|
|
|
////ToDo:推送财务中介单位、推送金蝶客户、推送金蝶出库单
|
|
|
|
try { |
|
|
|
//推送财务中介人
|
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleOne())) { |
|
|
|
BdCustomer bdMiddle = createZSBdMiddle(baseVehicle, dto); |
|
|
|
finKingDeeFeign.draftBdCustomer(bdMiddle); |
|
|
|
if (!"001".equals(payTypeKey)) {//贷款
|
|
|
|
try { |
|
|
|
bdCustomers.add(bdCustomer); |
|
|
|
finKingDeeFeign.draftBdCustomers(bdCustomers); |
|
|
|
//推送主车销售出库单
|
|
|
|
SalOutStock salOutStock = createZSSalOutStock(baseVehicle, baseVehicleOut, baseVehicleZSOutApplyDto); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
//推送主车对应的上装或挂车销售出库单
|
|
|
|
SalOutStock salOutStockGcOrSz = createZSGCOrSZOutStock(gcOrSzDtos, baseVehicleZSOutApplyDto); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStockGcOrSz); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error(e.getMessage()); |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
bdCustomers.add(bdCustomer); |
|
|
|
finKingDeeFeign.draftBdCustomers(bdCustomers); |
|
|
|
//推送主车销售出库单
|
|
|
|
SalOutStock salOutStock = createZSSalOutStock(baseVehicle, baseVehicleOut, 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 basePurchaseSystemDetailsVo = 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(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
bdEmpinfo.setFUseOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
bdEmpinfo.setFMobile(sysStaffinfoDetailsVo.getMobile()); |
|
|
|
finKingDeeFeign.saveBDEmpinfo(bdEmpinfo); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error(e.getMessage()); |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
if ("001".equals(payTypeKey)) {//全款
|
|
|
|
//推送所有主车销售出库单
|
|
|
|
SalOutStock salOutStock = createZSSalOutStockQKC(baseVehicleOutApply, zcDtos); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
//推送所有上装或挂车销售出库单
|
|
|
|
SalOutStock salOutStockGcOrSz = createZSGCOrSZOutStock(gcOrSzDtos, baseVehicleZSOutApplyDto); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStockGcOrSz); |
|
|
|
} |
|
|
|
//推送财务中介人
|
|
|
|
if (StringUtils.isNotBlank(baseVehicleZSOutDto1.getMiddleOne())) { |
|
|
|
BdCustomer bdMiddle = createZSBdMiddle(baseVehicle, baseVehicleZSOutDto1); |
|
|
|
finKingDeeFeign.draftBdCustomer(bdMiddle); |
|
|
|
} |
|
|
|
//推送销售专员信息
|
|
|
|
BDEmpinfo bdEmpinfo = new BDEmpinfo(); |
|
|
|
String staffSid = baseVehicleZSOutApplyDto.getStaffSid(); |
|
|
|
SysStaffinfoDetailsVo sysStaffinfoDetailsVo = sysStaffinfoFeign.fetchBySid(staffSid).getData(); |
|
|
|
bdEmpinfo.setFName(baseVehicleZSOutApplyDto.getStaffName()); |
|
|
|
bdEmpinfo.setFNumber(sysStaffinfoDetailsVo.getJobNumber()); |
|
|
|
bdEmpinfo.setFAddress(sysStaffinfoDetailsVo.getAddress()); |
|
|
|
bdEmpinfo.setFCreateOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
bdEmpinfo.setFUseOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
bdEmpinfo.setFMobile(sysStaffinfoDetailsVo.getMobile()); |
|
|
|
finKingDeeFeign.saveBDEmpinfo(bdEmpinfo); |
|
|
|
//挂车或上装子表实体类数据封装、推送挂车或上装的销售出库单
|
|
|
|
for (BaseVehicleZSOutDto gcOrSzDto : gcOrSzDtos) { |
|
|
|
String vinSid = gcOrSzDto.getVinSid(); |
|
|
@ -1615,10 +1632,6 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
baseMapper.insert(baseVehicleOut); |
|
|
|
//推送金蝶上装/挂车销售出库单
|
|
|
|
String materialTypeKey = gcOrSzDto.getMaterialTypeKey(); |
|
|
|
//推送挂车或上装销售出库单
|
|
|
|
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(gcOrSzDto.getVinSid()); |
|
|
|
SalOutStock salOutStock = createZSGCOrSZOutStock(baseVehicle, baseVehicleOut, baseVehicleZSOutApplyDto); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
if (materialTypeKey.equals("002")) { |
|
|
|
String gcSid = gcOrSzDto.getMaterialSid(); |
|
|
|
BaseTrailer baseTrailer = baseTrailerService.fetchBySid(gcSid); |
|
|
@ -1640,4 +1653,154 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
private SalOutStock createZSGCOrSZOutStock(List<BaseVehicleZSOutDto> gcOrSzDtos, BaseVehicleZSOutApplyDto baseVehicleZSOutApplyDto) { |
|
|
|
SalOutStock salOutStock = new SalOutStock(); |
|
|
|
//单据编号
|
|
|
|
salOutStock.setFBillNo(baseVehicleZSOutApplyDto.getBillNo() + "-1"); |
|
|
|
//日期
|
|
|
|
salOutStock.setFDate(DateUtil.today()); |
|
|
|
//分公司id
|
|
|
|
BaseVehicleZSOutDto baseVehicleZSOutDto = gcOrSzDtos.get(0); |
|
|
|
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(baseVehicleZSOutDto.getVinSid()); |
|
|
|
String purchaseSystemSid = baseVehicle.getPurchaseSystemSid(); |
|
|
|
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemService.fetchDetailsByDeptSid(purchaseSystemSid).getData(); |
|
|
|
salOutStock.setFSaleOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
//客户
|
|
|
|
salOutStock.setFCustomerID(baseVehicleZSOutDto.getCwCustomerNo()); |
|
|
|
//销售部门id
|
|
|
|
String orgDeptSid = baseVehicleZSOutApplyDto.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<>(); |
|
|
|
for (BaseVehicleZSOutDto dto : gcOrSzDtos) { |
|
|
|
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 createZSSalOutStockQKC(BaseVehicleOutApply baseVehicleOutApply, List<BaseVehicleZSOutDto> zcDtos) { |
|
|
|
SalOutStock salOutStock = new SalOutStock(); |
|
|
|
BaseVehicleZSOutDto baseVehicleZSOutDto = zcDtos.get(0); |
|
|
|
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(baseVehicleZSOutDto.getMaterialSid()); |
|
|
|
//单据编号
|
|
|
|
salOutStock.setFBillNo(baseVehicleOutApply.getBillNo()); |
|
|
|
//日期
|
|
|
|
salOutStock.setFDate(baseVehicleOutApply.getSaleDate()); |
|
|
|
//分公司id
|
|
|
|
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
salOutStock.setFSaleOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
//客户
|
|
|
|
salOutStock.setFCustomerID(baseVehicleOutApply.getContractNo()); |
|
|
|
//销售部门id
|
|
|
|
String orgDeptSid = baseVehicleOutApply.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(baseVehicleOutApply.getSaleTypeKey()); |
|
|
|
} |
|
|
|
//中介单位
|
|
|
|
salOutStock.setF_PAEZ_Base(baseVehicleZSOutDto.getMiddleCodeOne()); |
|
|
|
//物料列表
|
|
|
|
List<SalOutStock.FEntity> fEntityList = new ArrayList<>(); |
|
|
|
for (BaseVehicleZSOutDto dto : zcDtos) { |
|
|
|
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(dto.getRebateMoneyOne()); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleTwo() + dto.getRebateMoneyTwo() + "。"; |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal(dto.getRebateMoneyTwo()); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal(dto.getRebateMoneyOne()); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleTwo())) { |
|
|
|
if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { |
|
|
|
note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; |
|
|
|
//返利金额
|
|
|
|
fEntity.setF_PAEZ_Decimal(dto.getRebateMoneyOne()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(note)) { |
|
|
|
fEntity.setFEntrynote(note); |
|
|
|
} |
|
|
|
fEntityList.add(fEntity); |
|
|
|
if (fEntityList.size() > 0) { |
|
|
|
salOutStock.setFEntity(fEntityList); |
|
|
|
return salOutStock; |
|
|
|
} |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|