|
|
@ -38,6 +38,7 @@ import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModelDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicle; |
|
|
|
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificate; |
|
|
|
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOut; |
|
|
|
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutDetailsNewVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicleoutapply.BaseVehicleOutApply; |
|
|
|
import com.yxt.anrui.base.api.basevehinstall.BaseVehinstall; |
|
|
@ -97,10 +98,7 @@ import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
/** |
|
|
|
* Project: anrui-base(基础信息) <br/> |
|
|
@ -238,7 +236,7 @@ public class BaseTrailerService extends MybatisBaseService<BaseTrailerMapper, Ba |
|
|
|
baseTrailerDetailsVo.setZcBrandName(baseVehicle.getCarBrandName()); |
|
|
|
baseTrailerDetailsVo.setZcModelName(baseVehicle.getModelName()); |
|
|
|
BaseVehicleCertificate baseVehicleCertificate = baseVehicleCertificateService.selectByVehicleSid(baseVehicle.getSid()); |
|
|
|
if (baseVehicleCertificate != null){ |
|
|
|
if (baseVehicleCertificate != null) { |
|
|
|
baseTrailerDetailsVo.setZcAnnouncementmodelName(baseVehicleCertificate.getCarModel()); |
|
|
|
} |
|
|
|
List<BusSalesOrderVehicle> busSalesOrderVehicles = busSalesOrderVehicleFeign.fetchByVehSid(vehSid).getData(); |
|
|
@ -284,7 +282,7 @@ public class BaseTrailerService extends MybatisBaseService<BaseTrailerMapper, Ba |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String vinNo = dto.getVinNo(); |
|
|
|
BaseTrailerDetailsVo baseTrailerDetailsVo = baseMapper.fetchByGcVinNo(vinNo); |
|
|
|
if (baseTrailerDetailsVo != null){ |
|
|
|
if (baseTrailerDetailsVo != null) { |
|
|
|
return rb.success().setMsg("该挂车车架号已存在"); |
|
|
|
} |
|
|
|
BaseTrailer baseTrailer = new BaseTrailer(); |
|
|
@ -454,7 +452,7 @@ public class BaseTrailerService extends MybatisBaseService<BaseTrailerMapper, Ba |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String vinNo = dto.getVinNo(); |
|
|
|
BaseTrailerDetailsVo baseTrailerDetailsVo = baseMapper.fetchByGcVinNoAndSid(vinNo, sid); |
|
|
|
if (baseTrailerDetailsVo != null){ |
|
|
|
if (baseTrailerDetailsVo != null) { |
|
|
|
return rb.success().setMsg("该挂车车架号已存在"); |
|
|
|
} |
|
|
|
int count = updateBySid(dto, sid); |
|
|
@ -544,12 +542,12 @@ public class BaseTrailerService extends MybatisBaseService<BaseTrailerMapper, Ba |
|
|
|
} |
|
|
|
FinBillVehicleDetailsVo finBillVehicleDetailsVo = finBillVehicleFeign.fetchByVehSid(vehSid).getData(); |
|
|
|
FinBillApplicationDetailsVo finBillApplicationDetailsVo = null; |
|
|
|
if (finBillVehicleDetailsVo == null){ |
|
|
|
if (finBillVehicleDetailsVo == null) { |
|
|
|
return rb.setMsg("关联的主车未开票,不可出库"); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
String billAppSid = finBillVehicleDetailsVo.getBillAppSid(); |
|
|
|
finBillApplicationDetailsVo = finBillApplicationFeign.fetchDetailsBySid(billAppSid).getData(); |
|
|
|
if (!finBillApplicationDetailsVo.getNodeState().equals("已办结")){ |
|
|
|
if (!finBillApplicationDetailsVo.getNodeState().equals("已办结")) { |
|
|
|
return rb.setMsg("关联的主车未开票,不可出库"); |
|
|
|
} |
|
|
|
} |
|
|
@ -655,14 +653,14 @@ public class BaseTrailerService extends MybatisBaseService<BaseTrailerMapper, Ba |
|
|
|
finVehicleInvoiceDto.setBusinessState(finBillApplicationDetailsVo.getBillStateValue()); |
|
|
|
finVehicleInvoiceDto.setUseOrgSid(finBillApplicationDetailsVo.getUseOrgSid()); |
|
|
|
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsBySid(finBillVehicleDetailsVo.getOpenTickSid()).getData(); |
|
|
|
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())){ |
|
|
|
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) { |
|
|
|
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); |
|
|
|
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); |
|
|
|
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName()); |
|
|
|
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount()); |
|
|
|
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo()); |
|
|
|
finVehicleInvoiceDto.setIsTakeTicket("是"); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(finBillVehicleDetailsVo.getOpenTickSid()).getData(); |
|
|
|
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); |
|
|
|
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); |
|
|
@ -746,13 +744,51 @@ public class BaseTrailerService extends MybatisBaseService<BaseTrailerMapper, Ba |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<TraliveredVo> trailerList(String vinSid,String contractNo) { |
|
|
|
private SalOutStock createSzOrGcSalOutStockNew(BaseVehicle baseVehicle, BaseVehicleOut baseVehicleOut, BaseVehicleOutApply baseVehicleOutApply) { |
|
|
|
SalOutStock salOutStock = new SalOutStock(); |
|
|
|
//单据编号
|
|
|
|
salOutStock.setFBillNo(baseVehicleOutApply.getBillNo()); |
|
|
|
//日期
|
|
|
|
salOutStock.setFDate(DateUtil.today()); |
|
|
|
//分公司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"); |
|
|
|
//销售类型-外采挂车映射
|
|
|
|
salOutStock.setF_PAEZ_AssistantKey("009"); |
|
|
|
//物料列表
|
|
|
|
List<SalOutStock.FEntity> fEntityList = new ArrayList<>(); |
|
|
|
SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); |
|
|
|
//单价
|
|
|
|
fEntity.setFPrice(baseVehicleOut.getPrice().toString()); |
|
|
|
//物料编码
|
|
|
|
fEntity.setFMaterialID(baseVehicleOut.getMaterialCode()); |
|
|
|
//仓库id
|
|
|
|
fEntity.setFStockID("ARZSCK"); |
|
|
|
fEntityList.add(fEntity); |
|
|
|
salOutStock.setFEntity(fEntityList); |
|
|
|
return salOutStock; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<TraliveredVo> trailerList(String vinSid, String contractNo) { |
|
|
|
ResultBean<TraliveredVo> rb = ResultBean.fireFail(); |
|
|
|
//查询销售订单的上装价格
|
|
|
|
String price = ""; |
|
|
|
ResultBean<AppOrderDetailsVo> detailsVoResultBean = busSalesOrderFeign.getSaleOrderDetailsByContractNo(contractNo); |
|
|
|
if(detailsVoResultBean.getData() != null){ |
|
|
|
if(detailsVoResultBean.getData().getTopInfo() != null){ |
|
|
|
if (detailsVoResultBean.getData() != null) { |
|
|
|
if (detailsVoResultBean.getData().getTopInfo() != null) { |
|
|
|
price = detailsVoResultBean.getData().getTopInfo().getTopPrice(); |
|
|
|
} |
|
|
|
} |
|
|
@ -764,23 +800,23 @@ public class BaseTrailerService extends MybatisBaseService<BaseTrailerMapper, Ba |
|
|
|
traliveredVo.setModelName(baseVehicle.getModelName()); |
|
|
|
List<TrailerVo> voList = baseMapper.trailerList(vinSid); |
|
|
|
voList.removeAll(Collections.singleton(null)); |
|
|
|
if(!voList.isEmpty()){ |
|
|
|
if (!voList.isEmpty()) { |
|
|
|
traliveredVo.setList(voList); |
|
|
|
} |
|
|
|
//查询车辆的上装配置
|
|
|
|
List<BaseVehinstall> baseVehinstallsList = baseVehinstallService.selectByOrgSidAndVin(baseVehicle.getCreateOrgSid(), baseVehicle.getVinNo().substring(baseVehicle.getVinNo().length()-8)); |
|
|
|
List<BaseVehinstall> baseVehinstallsList = baseVehinstallService.selectByOrgSidAndVin(baseVehicle.getCreateOrgSid(), baseVehicle.getVinNo().substring(baseVehicle.getVinNo().length() - 8)); |
|
|
|
baseVehinstallsList.removeAll(Collections.singleton(null)); |
|
|
|
for (int i = 0; i < baseVehinstallsList.size(); i++) { |
|
|
|
BaseVehinstallmodelDetailsVo baseVehinstallmodelDetailsVo = new BaseVehinstallmodelDetailsVo(); |
|
|
|
BaseVehinstall baseVehinstall = baseVehinstallsList.get(i); |
|
|
|
String topSid = baseVehinstall.getMainSid(); |
|
|
|
BaseVehinstallmodel baseVehinstallmodel = baseVehinstallmodelService.fetchBySid(topSid); |
|
|
|
BeanUtil.copyProperties(baseVehinstallmodel,baseVehinstallmodelDetailsVo); |
|
|
|
BeanUtil.copyProperties(baseVehinstallmodel, baseVehinstallmodelDetailsVo); |
|
|
|
baseVehinstallmodelDetailsVo.setTopPrice(price); |
|
|
|
vehillModelList.add(baseVehinstallmodelDetailsVo); |
|
|
|
} |
|
|
|
vehillModelList.removeAll(Collections.singleton(null)); |
|
|
|
if(!vehillModelList.isEmpty()){ |
|
|
|
if (!vehillModelList.isEmpty()) { |
|
|
|
traliveredVo.setVehillModelList(vehillModelList); |
|
|
|
} |
|
|
|
return rb.success().setData(traliveredVo); |
|
|
@ -795,4 +831,112 @@ public class BaseTrailerService extends MybatisBaseService<BaseTrailerMapper, Ba |
|
|
|
public List<BaseTrailerVo> fetchAllByVehSid(String materialSid) { |
|
|
|
return baseMapper.fetchAllByVehSid(materialSid); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean trailerOutNew(String sid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
BaseTrailer baseTrailer = fetchBySid(sid); |
|
|
|
if (baseTrailer.getStockStateKey().equals("0002")) { |
|
|
|
return rb.setMsg("该挂车已出库"); |
|
|
|
} |
|
|
|
String vehSid = baseTrailer.getVehSid(); |
|
|
|
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(vehSid); |
|
|
|
String vehicleState = baseVehicle.getVehicleState(); |
|
|
|
if (!vehicleState.equals("0002")) { |
|
|
|
return rb.setMsg("此主车车辆库存状态不是出库,请重新选择"); |
|
|
|
} |
|
|
|
FinBillVehicleDetailsVo finBillVehicleDetailsVo = finBillVehicleFeign.fetchByVehSid(vehSid).getData(); |
|
|
|
FinBillApplicationDetailsVo finBillApplicationDetailsVo = null; |
|
|
|
if (finBillVehicleDetailsVo == null) { |
|
|
|
return rb.setMsg("关联的主车未开票,不可出库"); |
|
|
|
} else { |
|
|
|
String billAppSid = finBillVehicleDetailsVo.getBillAppSid(); |
|
|
|
finBillApplicationDetailsVo = finBillApplicationFeign.fetchDetailsBySid(billAppSid).getData(); |
|
|
|
if (!finBillApplicationDetailsVo.getNodeState().equals("已办结")) { |
|
|
|
return rb.setMsg("关联的主车未开票,不可出库"); |
|
|
|
} |
|
|
|
} |
|
|
|
//生成单据编号
|
|
|
|
String billNo = ""; |
|
|
|
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
String date = DateUtil.format(DateUtil.date(), "yyyyMM"); |
|
|
|
billNo = "XSCKD" + basePurchaseSystemDetailsVo.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); |
|
|
|
} |
|
|
|
BaseVehicleOutDetailsVo baseVehicleOutDetailsVo = baseVehicleOutService.selByOrgSidAndVehSid(baseTrailer.getUseOrgSid(), vehSid); |
|
|
|
BaseVehicleOutApply baseVehicleOutApply = baseVehicleOutApplyService.fetchBySid(baseVehicleOutDetailsVo.getMainSid()); |
|
|
|
//出库主表信息录入
|
|
|
|
baseVehicleOutApply.setSid(UUID.randomUUID().toString()); |
|
|
|
baseVehicleOutApply.setBillNo(billNo); |
|
|
|
//保存车辆出库单主表
|
|
|
|
baseVehicleOutApplyService.save(baseVehicleOutApply); |
|
|
|
BaseVehicleOut baseVehicleOut = new BaseVehicleOut(); |
|
|
|
baseVehicleOut.setCreateBySid(baseVehicleOutApply.getCreateBySid()); |
|
|
|
baseVehicleOut.setZcMGroupCode("99.02"); |
|
|
|
baseVehicleOut.setZcMGroupName("挂车"); |
|
|
|
baseVehicleOut.setVinNo(baseTrailer.getVinNo()); |
|
|
|
baseVehicleOut.setVinSid(vehSid); |
|
|
|
baseVehicleOut.setPrice(baseTrailer.getDealPrice()); |
|
|
|
//出库单子表关联主表sid
|
|
|
|
baseVehicleOut.setMainSid(baseVehicleOutApply.getSid()); |
|
|
|
baseVehicleOut.setManPurOrderTypeKey(baseVehicle.getManPurOrderTypeKey()); |
|
|
|
baseVehicleOut.setManPurOrderTypeValue(baseVehicle.getManPurOrderTypeValue()); |
|
|
|
baseVehicleOut.setMaterialCode(baseTrailer.getVinNo().substring(baseTrailer.getVinNo().length() - 8) + "G"); |
|
|
|
baseVehicleOut.setMaterialName("挂车"); |
|
|
|
baseVehicleOut.setMaterialTypeKey("002"); |
|
|
|
baseVehicleOut.setMaterialTypeValue("挂车"); |
|
|
|
baseVehicleOut.setMaterialSid(baseTrailer.getSid()); |
|
|
|
//保存车辆出库单子表
|
|
|
|
baseVehicleOutService.save(baseVehicleOut); |
|
|
|
//推送金蝶挂车销售出库单
|
|
|
|
SalOutStock salOutStock = createSzOrGcSalOutStockNew(baseVehicle, baseVehicleOut, baseVehicleOutApply); |
|
|
|
finKingDeeFeign.draftSalOutStock(salOutStock); |
|
|
|
List<SalOutStock.FEntity> fEntity = salOutStock.getFEntity(); |
|
|
|
for (SalOutStock.FEntity entity : fEntity) { |
|
|
|
baseTrailer.setStockStateKey(VehicleState.StockEnum.OUT_STOCK.getCode()); |
|
|
|
baseTrailer.setStockStateValue(VehicleState.StockEnum.OUT_STOCK.getRemarks()); |
|
|
|
baseTrailer.setDealPrice(baseVehicleOut.getPrice()); |
|
|
|
baseTrailer.setIssueDate(DateUtil.formatDate(new Date())); |
|
|
|
saveOrUpdate(baseTrailer); |
|
|
|
} |
|
|
|
FinVehicleInvoiceDto finVehicleInvoiceDto = new FinVehicleInvoiceDto(); |
|
|
|
finVehicleInvoiceDto.setInvoiceTitle(finBillApplicationDetailsVo.getOpenTickUnitName()); |
|
|
|
finVehicleInvoiceDto.setContractNo(finBillApplicationDetailsVo.getContractNo()); |
|
|
|
finVehicleInvoiceDto.setCustomerName(finBillApplicationDetailsVo.getCustomerName()); |
|
|
|
finVehicleInvoiceDto.setVehicleSid(baseTrailer.getSid()); |
|
|
|
finVehicleInvoiceDto.setVIN(baseTrailer.getVinNo()); |
|
|
|
finVehicleInvoiceDto.setInvoiceTypeKey(finBillVehicleDetailsVo.getBillTypeKey()); |
|
|
|
finVehicleInvoiceDto.setInvoiceType(finBillVehicleDetailsVo.getBillTypeValue()); |
|
|
|
finVehicleInvoiceDto.setInvoiceAmount(baseTrailer.getOneBillMoney()); |
|
|
|
finVehicleInvoiceDto.setBillingStateKey("001"); |
|
|
|
finVehicleInvoiceDto.setBillingState("未开票"); |
|
|
|
finVehicleInvoiceDto.setTransferStateKey("001"); |
|
|
|
finVehicleInvoiceDto.setTransferState("未移交"); |
|
|
|
finVehicleInvoiceDto.setVehicleType("挂车"); |
|
|
|
finVehicleInvoiceDto.setBillingSid(finBillApplicationDetailsVo.getSid()); |
|
|
|
finVehicleInvoiceDto.setInvoicingName(finBillVehicleDetailsVo.getOpenTickName()); |
|
|
|
finVehicleInvoiceDto.setCreateBySid(finBillApplicationDetailsVo.getCreateBySid()); |
|
|
|
finVehicleInvoiceDto.setBusinessStateKey(finBillApplicationDetailsVo.getBillStateKey()); |
|
|
|
finVehicleInvoiceDto.setBusinessState(finBillApplicationDetailsVo.getBillStateValue()); |
|
|
|
finVehicleInvoiceDto.setUseOrgSid(finBillApplicationDetailsVo.getUseOrgSid()); |
|
|
|
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsBySid(finBillVehicleDetailsVo.getOpenTickSid()).getData(); |
|
|
|
if (StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) { |
|
|
|
finVehicleInvoiceDto.setAddress(finCompanyInvoicingDetailsVo.getAddress()); |
|
|
|
finVehicleInvoiceDto.setTelPhone(finCompanyInvoicingDetailsVo.getPhone()); |
|
|
|
finVehicleInvoiceDto.setOpeningBank(finCompanyInvoicingDetailsVo.getBankName()); |
|
|
|
finVehicleInvoiceDto.setBankNum(finCompanyInvoicingDetailsVo.getBankAccount()); |
|
|
|
finVehicleInvoiceDto.setTaxpayerNo(finCompanyInvoicingDetailsVo.getTaxpayerNo()); |
|
|
|
finVehicleInvoiceDto.setIsTakeTicket("是"); |
|
|
|
} else { |
|
|
|
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(finBillVehicleDetailsVo.getOpenTickSid()).getData(); |
|
|
|
finVehicleInvoiceDto.setTelPhone(crmCustomerTempVo.getMobile()); |
|
|
|
finVehicleInvoiceDto.setTaxpayerNo(crmCustomerTempVo.getIDNumber()); |
|
|
|
finVehicleInvoiceDto.setIsTakeTicket("是"); |
|
|
|
} |
|
|
|
finVehicleInvoiceFeign.saveOrUpdate(finVehicleInvoiceDto); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |