|
|
@ -10,6 +10,8 @@ import com.yxt.anrui.base.api.basevehicleout.*; |
|
|
|
import com.yxt.anrui.base.biz.basemiddleman.BaseMiddlemanService; |
|
|
|
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService; |
|
|
|
import com.yxt.anrui.base.common.enums.VehicleState; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock; |
|
|
@ -48,9 +50,12 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
private ScmWarehouseFeign scmWarehouseFeign; |
|
|
|
@Autowired |
|
|
|
private BaseMiddlemanService baseMiddlemanService; |
|
|
|
@Autowired |
|
|
|
private CrmCustomerTempFeign crmCustomerTempFeign; |
|
|
|
|
|
|
|
public ResultBean vehicleOut(BaseVehicleOutDto dto) { |
|
|
|
public ResultBean<Boolean> vehicleOut(BaseVehicleOutDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
Boolean b = false; |
|
|
|
/* List<BaseVehicleOutQuery> list = dto.getQueryList(); |
|
|
|
List<String > stringList = list.stream().map(BaseVehicleOutQuery -> BaseVehicleOutQuery.getVinSid()).collect(Collectors.toList()); |
|
|
|
//根据sid查询出库的车辆是否符合出库条件(库存状态为库存或调入、且问题状态为无问题的、且为相同合同内的,车辆才能出库、可以批量选择)、当选择的车辆不满足条件时,点击出库按钮时
|
|
|
@ -61,6 +66,30 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
return rb.setMsg(vinNo + "车辆不满足出库条件"); |
|
|
|
}*/ |
|
|
|
|
|
|
|
String FNumber = HanZiConverterPinYin.getPinYinFirst(dto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); |
|
|
|
Boolean aBoolean = finKingDeeFeign.customerExistState(FNumber).getData(); |
|
|
|
if (!aBoolean){ |
|
|
|
Boolean aBoolean1 = finKingDeeFeign.customerExistState(dto.getCustomerNo()).getData(); |
|
|
|
if (!aBoolean1){ |
|
|
|
List<BdCustomer> bdCustomers = new ArrayList<>(); |
|
|
|
BdCustomer bdCustomer = new BdCustomer(); |
|
|
|
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(dto.getCreateOrgSid()).getData(); |
|
|
|
bdCustomer.setTOrgIds(sysOrganizationVo.getOrgCode()); |
|
|
|
bdCustomer.setFName(dto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length()-8)); |
|
|
|
String FNumber1 = HanZiConverterPinYin.getPinYinFirst(dto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); |
|
|
|
if (FNumber1.length() > 30){ |
|
|
|
FNumber1 = FNumber1.substring(0,30); |
|
|
|
bdCustomer.setFNumber(FNumber1); |
|
|
|
}else { |
|
|
|
bdCustomer.setFNumber(FNumber1); |
|
|
|
} |
|
|
|
bdCustomers.add(bdCustomer); |
|
|
|
finKingDeeFeign.draftBdCustomers(bdCustomers); |
|
|
|
}else { |
|
|
|
b = true; |
|
|
|
return rb.setData(b); |
|
|
|
} |
|
|
|
} |
|
|
|
//查询出库的车辆是否满足出库条件
|
|
|
|
int count = baseMapper.selectCountByVinSid(dto.getVinSid()); |
|
|
|
if (count > 0) { |
|
|
@ -118,6 +147,95 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean isUpdateOrInsertCrm(BaseVehicleOutDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String isUpdateOrInsertCrm = dto.getIsUpdateOrInsertCrm(); |
|
|
|
if ("是".equals(isUpdateOrInsertCrm)){ |
|
|
|
List<BdCustomer> bdCustomers = new ArrayList<>(); |
|
|
|
BdCustomer bdCustomer = new BdCustomer(); |
|
|
|
String FNumber = HanZiConverterPinYin.getPinYinFirst(dto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); |
|
|
|
if (FNumber.length() > 30){ |
|
|
|
FNumber = FNumber.substring(0,30); |
|
|
|
bdCustomer.setFNumber(FNumber); |
|
|
|
}else { |
|
|
|
bdCustomer.setFNumber(FNumber); |
|
|
|
} |
|
|
|
bdCustomer.setFNumber(HanZiConverterPinYin.getPinYinFirst(dto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8)); |
|
|
|
bdCustomer.setOldFNumber(dto.getCustomerNo()); |
|
|
|
bdCustomers.add(bdCustomer); |
|
|
|
finKingDeeFeign.saveBdCustomers(bdCustomers); |
|
|
|
}else if ("否".equals(isUpdateOrInsertCrm)){ |
|
|
|
List<BdCustomer> bdCustomers = new ArrayList<>(); |
|
|
|
BdCustomer bdCustomer = new BdCustomer(); |
|
|
|
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(dto.getCreateOrgSid()).getData(); |
|
|
|
bdCustomer.setTOrgIds(sysOrganizationVo.getOrgCode()); |
|
|
|
bdCustomer.setFName(dto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length()-8)); |
|
|
|
String FNumber1 = HanZiConverterPinYin.getPinYinFirst(dto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); |
|
|
|
if (FNumber1.length() > 30){ |
|
|
|
FNumber1 = FNumber1.substring(0,30); |
|
|
|
bdCustomer.setFNumber(FNumber1); |
|
|
|
}else { |
|
|
|
bdCustomer.setFNumber(FNumber1); |
|
|
|
} |
|
|
|
bdCustomers.add(bdCustomer); |
|
|
|
finKingDeeFeign.draftBdCustomers(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("该车辆已出库,不允许重复出库"); |
|
|
|
} |
|
|
|
BaseVehicleOut baseVehicleOut = new BaseVehicleOut(); |
|
|
|
BeanUtil.copyProperties(dto, baseVehicleOut, "sid"); |
|
|
|
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())); |
|
|
|
} |
|
|
|
baseMapper.insert(baseVehicleOut); |
|
|
|
//更新车辆台账的出库状态等值,库存状态修改为出库,销售日期修改为当天,成交价,备注
|
|
|
|
String remarks = baseVehicleOut.getConcatNo() + baseVehicleOut.getType(); |
|
|
|
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(dto.getVinSid()); |
|
|
|
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 { |
|
|
|
//推送财务客户信息
|
|
|
|
BdCustomer bdCustomer = createBdCustomer(baseVehicle, dto); |
|
|
|
ResultBean resultBeanCustomer = finKingDeeFeign.updateSingleCustomer(bdCustomer); |
|
|
|
//推送财务中介人
|
|
|
|
if (StringUtils.isNotBlank(dto.getMiddleOne())) { |
|
|
|
BdCustomer bdMiddle = createBdMiddle(baseVehicle, dto); |
|
|
|
ResultBean resultBeanMiddle = finKingDeeFeign.draftBdCustomer(bdMiddle); |
|
|
|
} |
|
|
|
//创建出库单数据对象前 需要将客户的编码修改为新生成的客户的编码。
|
|
|
|
dto.setCustomerNo(bdCustomer.getFNumber()); |
|
|
|
SalOutStock salOutStock = createSalOutStock(baseVehicle, dto); |
|
|
|
ResultBean resultBean1 = finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error(e.getMessage()); |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
private BdCustomer createBdCustomer(BaseVehicle baseVehicle, BaseVehicleOutDto dto) { |
|
|
|
BdCustomer bdCustomer = new BdCustomer(); |
|
|
|
String vinNo = baseVehicle.getVinNo(); |
|
|
@ -343,7 +461,6 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
if (StringUtils.isNotBlank(params.getOrgSid())){ |
|
|
|
qw.eq("bvo.createOrgSid",params.getOrgSid()); |
|
|
|
} |
|
|
|
qw.orderByDesc("bvo.saleDate"); |
|
|
|
} |
|
|
|
IPage<BaseVehicleOutVo> pagging = baseMapper.selectPageVo(page, qw); |
|
|
|
for (BaseVehicleOutVo record : pagging.getRecords()) { |
|
|
@ -395,4 +512,6 @@ public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapp |
|
|
|
} |
|
|
|
return rb.success().setData(maps); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|