|
|
@ -5,10 +5,15 @@ import cn.hutool.core.date.DateUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddleman; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicle; |
|
|
|
import com.yxt.anrui.base.api.basevehicleout.*; |
|
|
|
import com.yxt.anrui.base.api.basevehinstall.BaseVehinstallDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basevehinstall.BaseVehinstallDto; |
|
|
|
import com.yxt.anrui.base.biz.basemiddleman.BaseMiddlemanService; |
|
|
|
import com.yxt.anrui.base.biz.basetrailer.BaseTrailerService; |
|
|
|
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService; |
|
|
|
import com.yxt.anrui.base.biz.basevehinstall.BaseVehinstallService; |
|
|
|
import com.yxt.anrui.base.common.enums.VehicleState; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; |
|
|
@ -57,6 +62,10 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
private CrmCustomerTempFeign crmCustomerTempFeign; |
|
|
|
@Autowired |
|
|
|
private SysStaffinfoFeign sysStaffinfoFeign; |
|
|
|
@Autowired |
|
|
|
private BaseTrailerService baseTrailerService; |
|
|
|
@Autowired |
|
|
|
private BaseVehinstallService baseVehinstallService; |
|
|
|
|
|
|
|
public ResultBean<Boolean> vehicleOut(BaseVehicleOutDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
@ -171,10 +180,207 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
} catch (Exception e) { |
|
|
|
log.error(e.getMessage()); |
|
|
|
} |
|
|
|
|
|
|
|
//推送金蝶上装/挂车销售出库单
|
|
|
|
SalOutStock salOutStock = createSzOrGcSalOutStock(baseVehicle, dto); |
|
|
|
ResultBean resultBean1 = finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
private SalOutStock createSzOrGcSalOutStock(BaseVehicle baseVehicle, BaseVehicleOutDto dto) { |
|
|
|
SalOutStock salOutStock = new SalOutStock(); |
|
|
|
BaseTrailerDetailsVo baseTrailerDetailsVo = baseTrailerService.fetchByVehSid(baseVehicle.getSid()); |
|
|
|
BaseVehinstallDetailsVo baseVehinstallDetailsVo = baseVehinstallService.fetchByVinNoAndOrgSid(baseVehicle.getVinNo(), baseVehicle.getCreateOrgSid()); |
|
|
|
if (baseTrailerDetailsVo != null){ |
|
|
|
//日期
|
|
|
|
salOutStock.setFDate(DateUtil.today()); |
|
|
|
//分公司id
|
|
|
|
salOutStock.setFSaleOrgId(baseVehicle.getOrgCode()); |
|
|
|
//客户
|
|
|
|
salOutStock.setFCustomerID(dto.getCustomerNo()); |
|
|
|
//销售部门id
|
|
|
|
String orgDeptSid = dto.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(dto.getTypeKey()); |
|
|
|
//中介单位
|
|
|
|
salOutStock.setF_PAEZ_Base(dto.getMiddleCodeOne()); |
|
|
|
//物料列表
|
|
|
|
List<SalOutStock.FEntity> fEntityList = new ArrayList<>(); |
|
|
|
SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); |
|
|
|
//单价
|
|
|
|
fEntity.setFPrice(baseTrailerDetailsVo.getDealPrice()); |
|
|
|
//物料编码
|
|
|
|
fEntity.setFMaterialID(baseTrailerDetailsVo.getVinNo().substring(dto.getVinNo().length() - 8) + "G"); |
|
|
|
//仓库id
|
|
|
|
fEntity.setFStockID(baseVehicle.getLocationCode()); |
|
|
|
//销售折让
|
|
|
|
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.setFEntrynote(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; |
|
|
|
} |
|
|
|
}else if (baseVehinstallDetailsVo != null){ |
|
|
|
//日期
|
|
|
|
salOutStock.setFDate(DateUtil.today()); |
|
|
|
//分公司id
|
|
|
|
salOutStock.setFSaleOrgId(baseVehicle.getOrgCode()); |
|
|
|
//客户
|
|
|
|
salOutStock.setFCustomerID(dto.getCustomerNo()); |
|
|
|
//销售部门id
|
|
|
|
String orgDeptSid = dto.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(dto.getTypeKey()); |
|
|
|
//中介单位
|
|
|
|
salOutStock.setF_PAEZ_Base(dto.getMiddleCodeOne()); |
|
|
|
//物料列表
|
|
|
|
List<SalOutStock.FEntity> fEntityList = new ArrayList<>(); |
|
|
|
SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); |
|
|
|
//单价
|
|
|
|
fEntity.setFPrice(baseVehinstallDetailsVo.getCostPrice()); |
|
|
|
//物料编码
|
|
|
|
fEntity.setFMaterialID(baseVehinstallDetailsVo.getVinNo().substring(dto.getVinNo().length() - 8) + "SZ"); |
|
|
|
//仓库id
|
|
|
|
fEntity.setFStockID(baseVehicle.getLocationCode()); |
|
|
|
//销售折让
|
|
|
|
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; |
|
|
|
} |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean isUpdateOrInsertCrm(BaseVehicleOutDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String isUpdateOrInsertCrm = dto.getIsUpdateOrInsertCrm(); |
|
|
|